:root{--bg:#f4f7fb;--surface:#ffffffb8;--surface-strong:#ffffffeb;--border:#94a3b847;--border-soft:#94a3b82e;--text:#0f172a;--muted:#64748b;--accent:#10b981;--accent-2:#059669;--accent-grad:linear-gradient(135deg, #10b981, #0ea5e9);--accent-soft:#10b9811f;--danger:#ef4444;--warn:#d97706;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #0f172a0a, 0 8px 28px -10px #0f172a1a;--shadow-lg:0 12px 40px -12px #0f172a2e;--sidebar-w:248px;--sidebar-w-collapsed:76px;--topbar-h:64px;font-size:15px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 520px at 92% -8%, #0ea5e91a, transparent 60%), radial-gradient(900px 480px at -8% 18%, #10b9811a, transparent 55%), radial-gradient(700px 420px at 55% 110%, #8b5cf612, transparent 60%), var(--bg);color:var(--text);background-attachment:fixed;min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text);margin:0 0 .6rem;font-weight:700;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{color:var(--muted);margin:0 0 1rem}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}pre{background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:1rem;overflow-x:auto}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border-soft);z-index:60;background:#fff;flex-direction:column;flex-shrink:0;gap:.25rem;height:100vh;padding:1.25rem .9rem;transition:width .22s,transform .25s;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.brand{color:var(--text);border-bottom:1px solid var(--border-soft);white-space:nowrap;align-items:center;gap:.6rem;margin-bottom:.4rem;padding:0 .5rem .9rem;font-size:1.08rem;font-weight:800;display:flex;overflow:hidden}.brand .logo{background:var(--accent-grad);color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:1.7rem;height:1.7rem;font-weight:800;display:grid;box-shadow:0 4px 12px -2px #10b98180}.nav-label{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);white-space:nowrap;padding:1rem .5rem .35rem;font-size:.68rem;font-weight:700;overflow:hidden}.nav-link{color:var(--muted);white-space:nowrap;border-radius:10px;align-items:center;gap:.6rem;padding:.5rem .6rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex;overflow:hidden}.nav-link .nav-icon{flex-shrink:0;place-items:center;width:1.25rem;display:grid}.nav-link:hover{color:var(--text);background:#f1f5f9;text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent-2)}.nav-link.active .nav-icon{color:var(--accent-2)}.sidebar .spacer{flex:1}.sidebar-user{border-top:1px solid var(--border-soft);white-space:nowrap;align-items:center;gap:.6rem;margin-top:.5rem;padding:.5rem .5rem .25rem;display:flex;overflow:hidden}.sidebar-user .u-email{color:var(--muted);text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.sidebar-foot{padding:.25rem .5rem 0}.app.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed);padding:1.25rem .6rem}.app.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app.sidebar-collapsed .nav-text,.app.sidebar-collapsed .nav-label,.app.sidebar-collapsed .brand-text,.app.sidebar-collapsed .u-email{display:none}.app.sidebar-collapsed .nav-link{justify-content:center;padding:.6rem 0}.app.sidebar-collapsed .sidebar-user{justify-content:center}.app.sidebar-collapsed .sidebar-foot{justify-content:center;display:flex}.backdrop{-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;z-index:55;background:#0f172a66;transition:opacity .22s;position:fixed;inset:0}@media (width<=1023px){.sidebar{box-shadow:var(--shadow-lg);transform:translate(-105%)}.app.drawer-open .sidebar{transform:translate(0)}.app.drawer-open .backdrop{opacity:1;pointer-events:auto}.app.sidebar-collapsed .sidebar{width:var(--sidebar-w)}}.main{margin-left:var(--sidebar-w);flex:1;min-width:0;max-width:1280px;padding:1.5rem clamp(1rem,3vw,2.25rem) 4rem;transition:margin-left .22s}.app.sidebar-collapsed .main{margin-left:var(--sidebar-w-collapsed)}@media (width<=1023px){.main,.app.sidebar-collapsed .main{margin-left:0}}.topbar{z-index:40;-webkit-backdrop-filter:blur(16px)saturate(1.3);border-bottom:1px solid var(--border-soft);background:#f4f7fbcc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:-1.5rem clamp(-1rem,-3vw,-2.25rem) 1.5rem;padding:.75rem clamp(1rem,3vw,2.25rem);display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:.6rem;min-width:0;display:flex}.topbar .crumbs{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.topbar .user{color:var(--muted);white-space:nowrap;align-items:center;gap:.65rem;font-size:.88rem;display:flex}.avatar{background:var(--accent-grad);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:2.1rem;height:2.1rem;font-size:.85rem;font-weight:700;display:grid;box-shadow:0 3px 10px -2px #10b98173}.icon-btn{background:var(--surface-strong);border:1px solid var(--border);width:2.3rem;height:2.3rem;color:var(--muted);cursor:pointer;border-radius:10px;flex-shrink:0;place-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-grid}.icon-btn:hover{color:var(--text);border-color:var(--accent);background:#fff}.icon-btn svg{width:1.15rem;height:1.15rem}@media (width>=1024px){.icon-btn.mobile-only{display:none}}@media (width<=1023px){.icon-btn.desktop-only{display:none}}.grid{gap:1rem;display:grid}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.card{background:var(--surface);-webkit-backdrop-filter:blur(16px)saturate(1.3);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card.clickable{transition:transform .15s,box-shadow .15s,border-color .15s}.card.clickable:hover{box-shadow:var(--shadow-lg);border-color:#10b98180;transform:translateY(-2px)}.card .big{color:var(--text);background:var(--accent-grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:800}.card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.4rem;font-size:.78rem;font-weight:700}.card .sub{color:var(--muted);margin:0;font-size:.9rem}.split{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.split-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:1.25rem;display:grid}@media (width<=960px){.split{grid-template-columns:1fr}}label{color:var(--text);margin:0 0 .3rem;font-size:.85rem;font-weight:600;display:block}input,select,textarea{background:var(--surface-strong);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);font:inherit;padding:.55rem .75rem;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}textarea{font-family:ui-monospace,monospace;font-size:.88rem;line-height:1.5}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem;display:grid}.field{margin-bottom:.9rem}.hint{color:var(--muted);margin-top:.25rem;font-size:.8rem}.btn{background:var(--accent-grad);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .1s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 4px 14px -4px #10b98180}.btn:hover{color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 18px -4px #10b9818c}.btn:active{transform:translateY(0)}.btn.secondary{background:var(--surface-strong);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.secondary:hover{border-color:var(--accent);color:var(--text);box-shadow:var(--shadow)}.btn.danger{color:var(--danger);box-shadow:none;background:0 0;border:1px solid #ef444480}.btn.danger:hover{color:var(--danger);box-shadow:none;background:#ef444414}.btn.sm{padding:.3rem .7rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.table-wrap{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border-soft);white-space:nowrap;padding:.6rem .85rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff80}td .muted{color:var(--muted)}@media (width<=767px){table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{width:100%;display:block}table.responsive thead{display:none}table.responsive tr{background:var(--surface-strong);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.75rem;padding:.35rem 1rem}table.responsive tr:hover td{background:0 0}table.responsive td{white-space:normal;word-break:break-word;border:none;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}table.responsive td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;font-size:.72rem;font-weight:700}table.responsive td[data-label=""]:before,table.responsive td.no-label:before{content:none}table.responsive td:last-child{border-bottom:none}}.badge{border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.badge.green{color:var(--accent-2);background:#10b98124}.badge.red{color:var(--danger);background:#ef44441f}.badge.amber{color:var(--warn);background:#d9770624}.badge.gray{color:var(--muted);background:#64748b1f}.alert{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-strong);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert.error{color:var(--danger);background:#ef44440f;border-color:#ef444473}.alert.success{color:var(--accent-2);background:#10b98112;border-color:#10b98173}.alert.warn{color:var(--warn);background:#d9770612;border-color:#d9770673}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.between{justify-content:space-between}.mt{margin-top:1.25rem}.muted{color:var(--muted)}.mono{word-break:break-all;font-family:ui-monospace,monospace;font-size:.85em}.empty{text-align:center;color:var(--muted);padding:3rem 1rem}.empty .big{margin-bottom:.5rem;font-size:2rem}.login-wrap{background:radial-gradient(700px 400px at 15% 20%, #10b9811f, transparent 60%), radial-gradient(800px 450px at 85% 80%, #0ea5e91f, transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--surface);-webkit-backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--border-soft);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:22px;padding:2.25rem}.login-card h1{text-align:center}.login-logo{background:var(--accent-grad);color:#fff;border-radius:14px;place-items:center;width:3.2rem;height:3.2rem;margin:0 auto 1rem;font-size:1.4rem;font-weight:800;display:grid;box-shadow:0 6px 18px -4px #10b98180}.tabs{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;gap:.25rem;margin-bottom:1.25rem;display:flex}.tab{color:var(--muted);border-bottom:2px solid #0000;padding:.5rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none}.tab:hover{color:var(--text);text-decoration:none}.tab.active{color:var(--accent-2);border-bottom-color:var(--accent)}pre.code{position:relative}.copy-btn{position:absolute;top:.5rem;right:.5rem}kbd{background:var(--surface-strong);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:0 .35rem;font-size:.8em}@media (width<=640px){.topbar{border-radius:0 0 var(--radius) var(--radius);margin:-1rem -1rem 1rem;padding:.6rem 1rem}.main{padding:1rem 1rem 3rem}.topbar .user span:first-child{display:none}h1{font-size:1.3rem}.grid.cols-3{grid-template-columns:1fr}}
