.lock{z-index:9999;padding:var(--s-5);-webkit-backdrop-filter:blur(8px);background:#0f172aeb;place-items:center;display:grid;position:fixed;inset:0}.lock__card{width:min(24rem,100%);padding:var(--s-6) var(--s-6) var(--s-5);border-radius:var(--r-lg);background:var(--surface);text-align:center;box-shadow:0 24px 70px #0006}.lock__icon{font-size:40px}.lock__card h2{margin:var(--s-2) 0 var(--s-1);font-size:var(--t-lg)}.lock__card p{margin:0 0 var(--s-4);font-size:var(--t-sm);color:var(--text-secondary);line-height:1.5}.lock__go,.lock__out{border-radius:var(--r-md);cursor:pointer;width:100%;font-weight:700}.lock__go{background:var(--brand);color:var(--brand-contrast);font-size:var(--t-md);margin-bottom:var(--s-2);border:none;padding:11px}.lock__out{border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:var(--t-sm);padding:9px}.nb{position:relative}.nb__btn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.nb__btn:hover,.nb__btn:focus-visible{color:var(--text);background:#0000000d}.nb__btn.is-unread{color:var(--brand)}.nb__dot{border-radius:var(--r-full);background:var(--danger);color:#fff;min-width:14px;height:14px;font-size:calc(9px * var(--type-scale));text-align:center;padding:0 3px;font-weight:800;line-height:14px;position:absolute;top:2px;right:1px}.nb__panel{z-index:70;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-solid);width:340px;max-height:420px;box-shadow:var(--shadow-lg);position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.nb__panel header{border-bottom:1px solid var(--border);background:var(--surface-solid);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex;position:sticky;top:0}.nb__panel header strong{font-size:calc(12.5px * var(--type-scale));font-weight:800}.nb__panel header button{color:var(--brand);font-size:calc(11px * var(--type-scale));cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-weight:700;display:inline-flex}.nb__panel ul{margin:0;padding:4px;list-style:none}.nb__panel li>button{border-radius:var(--r-sm);text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:9px;width:100%;padding:9px;display:flex}.nb__panel li>button:hover,.nb__panel li>button:focus-visible{background:#0000000a}.nb__panel li.is-unread>button{box-shadow:inset 2px 0 0 var(--brand)}.nb__icon{font-size:calc(14px * var(--type-scale));flex-shrink:0;line-height:1.3}.nb__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nb__text{font-size:calc(12.5px * var(--type-scale));line-height:1.45}.nb__panel li.is-unread .nb__text{font-weight:700}.nb__body small{font-size:calc(10.5px * var(--type-scale));color:var(--text-subtle)}.nb__note{font-size:calc(12px * var(--type-scale));color:var(--text-subtle);text-align:center;margin:0;padding:22px 16px;line-height:1.6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .nb__btn:hover,:root:not([data-theme=light]) .nb__btn:focus-visible,:root:not([data-theme=light]) .nb__panel li>button:hover,:root:not([data-theme=light]) .nb__panel li>button:focus-visible{background:#ffffff12}}:root[data-theme=dark] .nb__btn:hover,:root[data-theme=dark] .nb__btn:focus-visible,:root[data-theme=dark] .nb__panel li>button:hover,:root[data-theme=dark] .nb__panel li>button:focus-visible{background:#ffffff12}@media (width<=520px){.nb__panel{width:min(340px,100vw - 24px)}}.nb__panel li{align-items:stretch;display:flex}.nb__panel li>button:first-child{flex:1;min-width:0}.nb__panel li>button.nb__dismiss{width:28px;color:var(--text-subtle);opacity:0;flex:none;place-items:center;padding:0;display:grid}.nb__panel li:hover>button.nb__dismiss,.nb__panel li>button.nb__dismiss:focus-visible{opacity:1}.nb__panel li>button.nb__dismiss:hover{color:var(--danger);background:var(--danger-bg)}.shell{height:100%;display:flex}.shell__rail{width:var(--sidebar-w-collapsed);background:var(--surface);-webkit-backdrop-filter:blur(var(--surface-blur));border-right:1px solid var(--border-glass);flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding:10px 6px;display:flex;overflow-y:auto}.shell__mark{background:var(--brand);width:34px;height:34px;color:var(--brand-contrast);border-radius:11px;flex-shrink:0;place-items:center;margin-bottom:8px;font-weight:800;display:grid}.shell__nav{flex-direction:column;gap:2px;width:100%;display:flex}.shell__link{border-radius:var(--r-md);color:var(--text-subtle);font-size:calc(9.5px * var(--type-scale));letter-spacing:.01em;text-align:center;flex-direction:column;align-items:center;gap:3px;padding:7px 2px 6px;font-weight:600;text-decoration:none;display:flex}.shell__link:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.shell__link--active{color:var(--brand);background:var(--brand-soft)}.shell__linkicon{place-items:center;display:grid;position:relative}.shell__badge{background:var(--danger);color:#fff;min-width:14px;height:14px;font-size:calc(9px * var(--type-scale));border-radius:var(--r-full);border:2px solid var(--surface-solid);box-sizing:content-box;place-items:center;padding:0 4px;font-weight:800;display:grid;position:absolute;top:-5px;right:-9px}.shell__linklabel{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.shell__body{flex-direction:column;flex:1;min-width:0;display:flex}.shell__topbar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:8px var(--s-5);background:var(--surface);-webkit-backdrop-filter:blur(var(--surface-blur));border-bottom:1px solid var(--border-glass);display:flex}.shell__pagehead{min-width:0}.shell__pagetitle{font-size:var(--t-lg);margin:0;font-weight:800;line-height:1.2}.shell__pagesub{font-size:var(--t-xs);color:var(--text-subtle)}.shell__topright{align-items:center;gap:var(--s-2);display:flex}.shell__due{border-radius:var(--r-full);border:1.5px solid var(--warn);background:var(--warn-bg);color:var(--warn);font-size:calc(11px * var(--type-scale));white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-weight:800;display:inline-flex}.shell__duecount{font-size:calc(9.5px * var(--type-scale));color:#fff;background:var(--warn);border-radius:var(--r-full);padding:1px 6px;font-weight:900}.shell__due strong{color:var(--text);font-size:calc(11.5px * var(--type-scale))}.shell__cc{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:calc(11px * var(--type-scale));white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-weight:700;transition:all .15s;display:inline-flex}.shell__cc--open{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.shell__user{align-items:center;gap:var(--s-2);display:flex}.shell__avatar{border-radius:var(--r-full);background:var(--surface-3);width:30px;height:30px;color:var(--text-muted);font-size:var(--t-xs);place-items:center;font-weight:700;display:grid}.shell__userinfo{flex-direction:column;line-height:1.2;display:flex}.shell__username{font-size:var(--t-sm);font-weight:700}.shell__userrole{font-size:var(--t-xs);color:var(--text-subtle)}.shell__logout{border-radius:var(--r-md);width:30px;height:30px;color:var(--text-subtle);background:0 0;border:none;place-items:center;display:grid}.shell__logout:hover{color:var(--text);background:var(--surface-2)}.shell__content{flex:1;min-height:0;display:flex}.shell__main{min-width:0;padding:var(--s-5);flex:1;overflow:auto}.shell__main--flush{padding:0;overflow:hidden}.shell__panel{width:296px;padding:var(--s-4);background:var(--surface);-webkit-backdrop-filter:blur(var(--surface-blur));border-left:1px solid var(--border-glass);flex-shrink:0;animation:.18s shellPanelIn;overflow-y:auto}@keyframes shellPanelIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.shell__panel h2{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin:0 0 var(--s-2)}.shell__panel h2+.shell__quick,.shell__alerts+h2{margin-top:var(--s-4)}.shell__panelquiet{color:var(--text-muted);font-size:var(--t-sm);margin:0 0 var(--s-4)}.shell__alerts{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.shell__alert{text-align:left;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);width:100%;font:inherit;align-items:flex-start;gap:8px;padding:9px 11px;display:flex}.shell__alert--ok{background:var(--ok-bg);border-color:color-mix(in srgb, var(--ok) 25%, transparent)}.shell__alert--warn{background:var(--warn-bg);border-color:color-mix(in srgb, var(--warn) 25%, transparent)}.shell__alert--danger{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 25%, transparent)}.shell__alerttext{flex-direction:column;gap:1px;display:flex}.shell__alerttext strong{font-size:var(--t-sm);color:var(--text)}.shell__alerttext small{font-size:var(--t-xs);color:var(--text-muted)}.shell__quick{flex-direction:column;gap:6px;display:flex}.shell__quick button{text-align:left;border-radius:var(--r-md);border:1px dashed var(--border);color:var(--text);font:inherit;font-size:var(--t-sm);background:0 0;padding:9px 11px;font-weight:600}.shell__quick button:hover{border-color:var(--brand);background:var(--brand-soft)}@media (width<=900px){.shell__pagesub,.shell__userinfo{display:none}.shell__panel{z-index:var(--z-modal);box-shadow:var(--shadow-lg);position:fixed;inset:0 0 0 auto}}@media (width<=640px){.shell{flex-direction:column}.shell__rail{width:100%;height:auto;padding:4px 2px calc(4px + env(safe-area-inset-bottom,0px));border-right:none;border-top:1px solid var(--border-glass);z-index:var(--z-sticky,20);scrollbar-width:none;flex-direction:row;order:2;align-items:stretch;gap:0;position:sticky;bottom:0;overflow:auto hidden}.shell__rail::-webkit-scrollbar{display:none}.shell__mark{display:none}.shell__nav{flex-direction:row;width:auto}.shell__link{min-width:62px;padding:6px 4px 4px}.shell__body{order:1;min-height:0}.shell__topbar{gap:6px;padding:6px 10px}.shell__pagetitle{font-size:var(--t-md)}.shell__duelabel,.shell__cclabel{display:none}.shell__due,.shell__cc{padding:5px 9px}.shell__main{padding:var(--s-3)}.shell__panel{width:100%}}.login{min-height:100%;padding:var(--s-5);background:radial-gradient(1000px 500px at 50% -10%, var(--brand-soft), transparent 70%), var(--bg);place-items:center;display:grid}.login__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:var(--s-6) var(--s-5) var(--s-5)}.login__brand{align-items:center;gap:var(--s-2);margin-bottom:var(--s-5);text-align:center;flex-direction:column;display:flex}.login__logo{max-width:180px;max-height:48px}.login__mark{border-radius:var(--r-md);background:var(--brand);width:48px;height:48px;color:var(--brand-contrast);font-size:var(--t-xl);place-items:center;font-weight:700;display:grid}.login__title{font-size:var(--t-xl)}.login__subtitle{font-size:var(--t-sm);color:var(--text-muted)}.login__form{gap:var(--s-4);flex-direction:column;display:flex}.login__error{font-size:var(--t-sm);color:var(--danger);background:var(--danger-bg);border-radius:var(--r-md);padding:var(--s-2) var(--s-3)}.login__back{font-size:var(--t-sm);color:var(--text-muted);background:0 0;border:none;text-decoration:underline}.login__support{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--border);font-size:var(--t-sm);color:var(--text-muted);text-align:center}.login__demo{margin-bottom:var(--s-5);padding:var(--s-4);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface-2)}.login__demo-title{margin:0 0 var(--s-1);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.login__demo-note{margin:0 0 var(--s-3);font-size:var(--t-sm);line-height:var(--lh-normal);color:var(--text-muted)}.login__demo-creds{margin:0 0 var(--s-4);gap:var(--s-2);display:grid}.login__demo-creds>div{align-items:center;gap:var(--s-3);display:flex}.login__demo-creds dt{min-width:4.5rem;font-size:var(--t-sm);color:var(--text-muted);flex:none}.login__demo-creds dd{min-width:0;margin:0}.login__demo-creds code{padding:.15rem var(--s-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-mono);font-size:var(--t-sm);color:var(--text);-webkit-user-select:all;user-select:all;word-break:break-all;display:inline-block}:root{--brand:#3f3f8f;--brand-contrast:#fff;--brand-soft:color-mix(in srgb, var(--brand) 10%, transparent);--brand-border:color-mix(in srgb, var(--brand) 28%, transparent);--brand-hover:color-mix(in srgb, var(--brand) 88%, black);--bg:radial-gradient(ellipse at 18% 18%, #dde8f8 0%, #f0f2f5 55%, #eceef4 100%);--bg-flat:#f0f2f5;--surface:#ffffffd6;--surface-solid:#fff;--surface-2:#f0f2f8d9;--surface-3:#e7eaf3;--surface-blur:22px;--overlay:#0f122273;--text:#0a0f1e;--text-muted:#64748b;--text-subtle:#94a3b8;--text-inverse:#fff;--border:#e2e8f0;--border-strong:#c6cbdd;--border-glass:#ffffffed;--card-border-w:1px;--focus:color-mix(in srgb, var(--brand) 45%, transparent);--ok:#16a34a;--ok-bg:#dcfce7;--warn:#d97706;--warn-bg:#fef3c7;--danger:#e11d48;--danger-bg:#fff1f2;--info:#2563eb;--info-bg:#eff6ff;--alt:#7c3aed;--alt-bg:#ede9fe;--soft:#00000009;--soft-2:#00000005;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-sm:6px;--r-md:10px;--r-lg:18px;--r-full:999px;--shadow-sm:0 1px 2px #1014280f;--shadow-md:0 4px 12px #10142814;--shadow-lg:0 12px 32px #10142824;--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--type-scale:1;--t-xs:calc(11px * var(--type-scale));--t-sm:calc(13px * var(--type-scale));--t-md:calc(14px * var(--type-scale));--t-lg:calc(16px * var(--type-scale));--t-xl:calc(20px * var(--type-scale));--t-2xl:calc(26px * var(--type-scale));--lh-tight:1.25;--lh-normal:1.5;--sidebar-w:calc(232px * var(--type-scale));--sidebar-w-collapsed:calc(68px * max(1, var(--type-scale)));--topbar-h:calc(56px * var(--type-scale));--surface-1:var(--surface);--surface-sunken:var(--surface-2);--border-1:var(--border);--text-1:var(--text);--text-2:var(--text-muted);--r-1:var(--r-sm);--r-2:var(--r-md);--z-dropdown:100;--z-sticky:200;--z-modal:400;--z-toast:500}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1220;--bg-flat:#0f1220;--surface:#171a2b;--surface-solid:#171a2b;--surface-2:#1e2136;--surface-3:#272b44;--surface-blur:0px;--border-glass:#2b2f47;--overlay:#0009;--text:#eceefa;--text-muted:#a2a8c4;--text-subtle:#7b819c;--border:#2b2f47;--border-strong:#3b4060;--ok:#4ade80;--ok-bg:#4ade8024;--warn:#fbbf24;--warn-bg:#fbbf2424;--danger:#fb7185;--danger-bg:#fb718524;--info:#60a5fa;--info-bg:#60a5fa24;--soft:#94a3b81a;--soft-2:#94a3b80f;--alt:#a78bfa;--alt-bg:#2a2350;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000073}}:root[data-theme=dark]{--bg:#0f1220;--bg-flat:#0f1220;--surface:#171a2b;--surface-2:#1e2136;--surface-3:#272b44;--surface-solid:#171a2b;--overlay:#0009;--text:#eceefa;--text-muted:#a2a8c4;--text-subtle:#7b819c;--border:#2b2f47;--border-strong:#3b4060;--ok:#4ade80;--ok-bg:#4ade8024;--warn:#fbbf24;--warn-bg:#fbbf2424;--danger:#fb7185;--danger-bg:#fb718524;--info:#60a5fa;--info-bg:#60a5fa24;--soft:#94a3b81a;--soft-2:#94a3b80f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000073}:root[data-appearance=studio]{--r-sm:4px;--r-md:6px;--r-lg:8px;--surface:#fff;--surface-2:#f4f6fa;--surface-blur:0px;--bg:#f7f8fa;--bg-flat:#f7f8fa;--text:#101828;--text-muted:#475467;--text-subtle:#98a2b3;--border:#e4e7ec;--border-glass:#e4e7ec;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 1px 3px #10182812;--shadow-lg:0 4px 10px #1018281a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--type-scale:.96;--s-3:10px;--s-4:14px;--s-5:20px}:root[data-appearance=cabinet]{--r-sm:6px;--r-md:8px;--r-lg:10px;--surface:#fff;--surface-2:#eef1f7;--surface-blur:0px;--bg:#eef0f4;--bg-flat:#eef0f4;--text:#000;--text-muted:#334155;--text-subtle:#5b6b7f;--border:#94a3b8;--border-strong:#64748b;--border-glass:#94a3b8;--card-border-w:2px;--shadow-sm:0 1px 0 #1018281a;--shadow-md:0 2px 0 #1018281a;--shadow-lg:0 4px 12px #10182829;--type-scale:1.12;--s-3:13px;--s-4:18px;--s-5:26px}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-appearance=studio],:root:not([data-theme=light])[data-appearance=cabinet]{--surface:var(--surface-solid);--surface-2:var(--surface-3);--bg-flat:#0f1220;--bg:#0f1220;--text:#eceefa;--text-muted:#a2a8c4;--text-subtle:#7b819c;--border:#2b2f47;--border-strong:#3b4060;--border-glass:#2b2f47}}:root[data-theme=dark][data-appearance=studio],:root[data-theme=dark][data-appearance=cabinet]{--surface:var(--surface-solid);--surface-2:var(--surface-3);--bg-flat:#0f1220;--bg:#0f1220;--text:#eceefa;--text-muted:#a2a8c4;--text-subtle:#7b819c;--border:#2b2f47;--border-strong:#3b4060;--border-glass:#2b2f47}[hidden]{display:none!important}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--t-md);line-height:var(--lh-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed}.tabular{font-variant-numeric:tabular-nums}h1,h2,h3,h4{line-height:var(--lh-tight);font-weight:600}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--brand-soft)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);background-clip:padding-box;border:2px solid #0000}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}
