*{box-sizing:border-box}:root{--bg:#f5f6f8;--bg-elevated:#fff;--bg-elevated-hover:#f8f9fb;--bg-input:#f1f3f6;--bg-inset:#eceff3;--border:#d9dee7;--border-strong:#c5cbd6;--text:#171a1f;--text-secondary:#596273;--text-muted:#7a8392;--text-disabled:#a5acb7;--link:#3567f5;--btn-primary-bg:#3567f5;--btn-primary-hover:#2855d9;--btn-danger-bg:#dc2626;--primary-soft:#eaf0ff;--accent-hover:#d97706;--accent-soft:#fff7e6;--color-ok:#16a34a;--success-soft:#eaf8ef;--warning-soft:#fff7e6;--color-danger:#dc2626;--danger-soft:#fdecec;--color-info:#2563eb;--info-soft:#eaf0ff;--color-error:#dc2626;--waveform:#8b95a5;--waveform-progress:#3567f5;--waveform-marker-border:#fff;--focus-ring:#3567f540;--overlay:#0f111566;--shadow-sm:0 1px 2px #0000000a;--sidebar-bg:#fff;--sidebar-active-bg:#eaf0ff;--sidebar-active-text:#3567f5;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px}:root,[data-theme=dark]{--accent:#f59e0b;--color-warning:#f59e0b;--waveform-marker:#f59e0b}[data-theme=dark]{--bg:#101216;--bg-elevated:#181b21;--bg-elevated-hover:#1e222a;--bg-input:#20242c;--bg-inset:#252a33;--border:#2d333d;--border-strong:#3b4350;--text:#f1f3f5;--text-secondary:#aeb6c2;--text-muted:#7f8997;--text-disabled:#59616e;--link:#4b73f6;--btn-primary-bg:#4b73f6;--btn-primary-hover:#6387f8;--btn-danger-bg:#ef4444;--primary-soft:#1d2b55;--accent-hover:#fbbf24;--accent-soft:#3a2b0f;--color-ok:#22c55e;--success-soft:#12351f;--warning-soft:#3a2b0f;--color-danger:#ef4444;--danger-soft:#3b1717;--color-info:#60a5fa;--info-soft:#172a4a;--color-error:#ef4444;--waveform:#687384;--waveform-progress:#4b73f6;--waveform-marker-border:#181b21;--focus-ring:#4b73f659;--overlay:#0009;--shadow-sm:none;--sidebar-bg:#181b21;--sidebar-active-bg:#1d2b55;--sidebar-active-text:#4b73f6}body{background:var(--bg);color:var(--text);overflow-wrap:break-word;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--link);text-decoration:none}button{cursor:pointer;font-family:inherit}.app-shell{min-height:100vh;display:flex}.main-column{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:18px;width:232px;height:100vh;padding:20px 14px;display:none;position:sticky;top:0;overflow-y:auto}.sidebar .brand{color:var(--text);align-items:center;gap:8px;padding:0 8px;font-size:1.05rem;font-weight:700;display:flex}.brand-icon{color:var(--btn-primary-bg);display:inline-flex}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.drawer-nav a,.nav-link{color:var(--text-muted);border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:.9rem;font-weight:500;display:flex}.drawer-nav a svg,.nav-link svg{flex:none}.drawer-nav a:hover,.nav-link:hover{background:var(--bg-inset);color:var(--text)}.drawer-nav a.router-link-active,.nav-link.router-link-active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.theme-toggle.sidebar-theme-toggle{justify-content:flex-start;gap:10px;width:100%;height:auto;margin-top:auto;padding:9px 10px;font-size:.85rem;font-weight:500}.sidebar-user{border-top:1px solid var(--border);gap:10px;padding-top:14px}.avatar,.sidebar-user{align-items:center;display:flex}.avatar{background:var(--btn-primary-bg);color:#fff;border-radius:50%;flex:none;justify-content:center;width:34px;height:34px;font-size:.8rem;font-weight:700}.sidebar-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.sidebar-logout{color:var(--text-muted);background:0 0;border:none;align-self:flex-start;padding:0;font-size:.78rem;text-decoration:underline}.guest-topbar{justify-content:flex-end;padding:12px 16px 0;display:flex}.topbar{background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:12px 16px}.topbar-row{flex-wrap:nowrap;align-items:center;gap:12px;display:flex}.topbar .brand{margin-right:auto;font-size:1.05rem;font-weight:700}.topbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.user-name{color:var(--text-muted);white-space:nowrap;font-size:.82rem}.drawer-nav{flex-direction:column;gap:4px;margin-top:10px;display:none}.drawer-nav.open{display:flex}.drawer-logout{color:var(--color-error);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:.9rem;display:flex}.theme-toggle{background:var(--bg-inset);width:32px;height:32px;color:var(--text);display:inline-flex}.menu-toggle,.theme-toggle{border:1px solid var(--border-strong);border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0}.menu-toggle{background:0 0;flex-direction:column;gap:4px;width:34px;height:34px;display:flex}.menu-toggle span{background:var(--text);border-radius:1px;width:16px;height:2px;display:block}input,select,textarea{background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text);max-width:100%;accent-color:var(--btn-primary-bg);border-radius:6px;padding:8px 10px;font-size:.9rem}a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.btn{background:var(--btn-primary-bg);color:#fff;border:none;border-radius:8px;padding:9px 14px;font-size:.9rem;font-weight:600;transition:background .15s}.btn:hover{background:var(--btn-primary-hover)}.btn.secondary{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text);font-weight:500}.btn.secondary:hover{background:var(--bg-elevated-hover)}.btn.danger{background:var(--btn-danger-bg)}.btn.danger:hover{opacity:.9}.card{background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:16px;padding:20px}.list-item{overflow-wrap:anywhere;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.list-item:hover{background:var(--bg-inset)}.muted{color:var(--text-muted)}.error,.muted{font-size:.85rem}.error{color:var(--color-error)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row input,.row select{flex:140px;min-width:0}.table-scroll{width:100%;overflow-x:auto}@media (width>=1024px){.sidebar{display:flex}.topbar{display:none}}@media (width<=768px){.app-content{padding:16px}}@media (width<=480px){.app-content,.card{padding:12px}}
