@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue-50:#eef4fb;--blue-100:#dce8f6;--blue-200:#b9d1ec;--blue-300:#8bb3df;--blue-400:#548fcb;--blue-500:#2b6fb6;--blue-600:#16559d;--blue-700:#124682;--blue-800:#0f3867;--blue-900:#0c2b4f;--blue-950:#081d36;--gray-0:#fff;--gray-25:#fbfcfd;--gray-50:#f5f7f9;--gray-100:#edf0f3;--gray-200:#e2e6eb;--gray-300:#cdd3da;--gray-400:#a2abb6;--gray-500:#78828f;--gray-600:#59636f;--gray-700:#414a55;--gray-800:#2a313a;--gray-900:#171d25;--green-50:#e7f5ed;--green-600:#1a7f4b;--amber-50:#fff4d6;--amber-500:#d99a00;--amber-700:#8a5a00;--red-50:#fdeceb;--red-600:#b42318;--color-bg:var(--gray-50);--color-surface:var(--gray-0);--color-surface-sunken:var(--gray-50);--color-surface-hover:var(--gray-100);--color-border:var(--gray-200);--color-border-strong:var(--gray-300);--color-text:var(--gray-900);--color-text-muted:var(--gray-600);--color-text-subtle:var(--gray-500);--color-text-inverse:var(--gray-0);--color-primary:var(--blue-600);--color-primary-hover:var(--blue-700);--color-primary-active:var(--blue-800);--color-primary-soft:var(--blue-50);--color-primary-soft-border:var(--blue-100);--color-on-primary:var(--gray-0);--color-link:var(--blue-600);--color-focus:var(--blue-400);--color-success:var(--green-600);--color-success-soft:var(--green-50);--color-warning:var(--amber-700);--color-warning-soft:var(--amber-50);--color-warning-dot:var(--amber-500);--color-danger:var(--red-600);--color-danger-soft:var(--red-50);--color-nav-bg:var(--blue-950);--color-nav-text:#c3d2e6;--color-nav-text-strong:#fff;--shift-tint:26%;--shift-m:#2f74c0;--shift-m-ink:#15467c;--shift-e:#3f4856;--shift-e-ink:#2b323d;--shift-n:#cf4a42;--shift-n-ink:#8c241e;--shift-x:#7463c9;--shift-x-ink:#3d2f86;--shift-v:#d39a1c;--shift-v-ink:#694600;--shift-s:#3f9a59;--shift-s-ink:#1c5730;--roster-off:var(--color-text-muted);--roster-row-alt:color-mix(in srgb, var(--gray-900) 5.5%, var(--color-surface));--roster-row-hover:color-mix(in srgb, var(--gray-900) 10%, var(--color-surface));--color-nav-hover:#ffffff12;--color-nav-active:#ffffff21;--color-nav-border:#ffffff1a;--color-backdrop:#081d3673;--font-sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--leading-tight:1.25;--leading-normal:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--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;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #10182814, 0 1px 2px #1018280d;--shadow-md:0 6px 16px #10182817, 0 2px 4px #1018280d;--shadow-lg:0 16px 40px #081d362e, 0 4px 12px #081d3614;--duration-fast:.14s;--duration-normal:.24s;--duration-slow:.38s;--ease-out:cubic-bezier(.2, .8, .2, 1);--tap-target:44px;--control-height:44px;--control-height-sm:34px;--card-padding:var(--space-4);--sidebar-width:248px;--topbar-height:56px;--tabbar-height:60px;--content-max:760px;--content-max-wide:1180px;--z-sticky:20;--z-overlay:40;--z-toast:60}@media (width>=900px) and (pointer:fine){:root{--control-height:38px;--control-height-sm:30px}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gray-0:#151b23;--gray-25:#19202a;--gray-50:#0d1218;--gray-100:#1d2530;--gray-200:#28323e;--gray-300:#384452;--gray-400:#5d6a79;--gray-500:#8793a1;--gray-600:#a6b1bd;--gray-700:#c3cbd4;--gray-800:#dde2e8;--gray-900:#eef1f4;--blue-50:#13263d;--blue-100:#1a3454;--blue-200:#23466f;--blue-300:#6ea8e6;--blue-400:#5b93d1;--blue-500:#5a9be0;--blue-600:#5b9fe6;--blue-700:#78b1ee;--blue-800:#a9cdf3;--blue-900:#0f2440;--blue-950:#0a1017;--green-50:#11301f;--green-600:#4cc38a;--amber-50:#33270a;--amber-500:#e0a92a;--amber-700:#f0c35a;--red-50:#3a1715;--red-600:#f27c72;--violet-50:#2a2145;--violet-700:#b9a4f5;--color-on-primary:#07121e;--color-text-inverse:#0d1218;--color-nav-bg:#0a1017;--color-backdrop:#0000009e;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 6px 16px #0006, 0 2px 4px #0000004d;--shadow-lg:0 18px 44px #0000008c, 0 4px 12px #00000059}[data-theme=dracula]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gray-0:#282a36;--gray-25:#2c2e3b;--gray-50:#21222c;--gray-100:#343746;--gray-200:#44475a;--gray-300:#565a73;--gray-400:#6272a4;--gray-500:#8d95ba;--gray-600:#abb2d0;--gray-700:#cfd3e6;--gray-800:#e6e8f2;--gray-900:#f8f8f2;--blue-50:#3a3255;--blue-100:#473d69;--blue-200:#5a4d85;--blue-300:#a685e8;--blue-400:#ff79c6;--blue-500:#b48cf5;--blue-600:#bd93f9;--blue-700:#cba8fb;--blue-800:#dcc6fd;--blue-900:#2a2540;--blue-950:#191a21;--green-50:#1f3b2a;--green-600:#50fa7b;--amber-50:#40311f;--amber-500:#ffb86c;--amber-700:#ffb86c;--red-50:#45232a;--red-600:#f55;--violet-50:#3d2a48;--violet-700:#ff79c6;--color-on-primary:#21222c;--color-text-inverse:#21222c;--color-link:#8be9fd;--color-nav-bg:#191a21;--color-nav-text:#b9bdd8;--color-nav-active:#bd93f93d;--color-backdrop:#0000009e;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 6px 16px #0006, 0 2px 4px #0000004d;--shadow-lg:0 18px 44px #0000008c, 0 4px 12px #00000059}[data-theme=nord]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gray-0:#3b4252;--gray-25:#3f4758;--gray-50:#2e3440;--gray-100:#434c5e;--gray-200:#4c566a;--gray-300:#5d6880;--gray-400:#7b88a1;--gray-500:#a3aec2;--gray-600:#c2cad9;--gray-700:#d8dee9;--gray-800:#e5e9f0;--gray-900:#eceff4;--blue-50:#3f4f63;--blue-100:#4a6078;--blue-200:#5e81ac;--blue-300:#8fbcbb;--blue-400:#81a1c1;--blue-500:#81a1c1;--blue-600:#88c0d0;--blue-700:#9fd0de;--blue-800:#c5e3ec;--blue-900:#2b3a4d;--blue-950:#242933;--green-50:#3d4a41;--green-600:#a3be8c;--amber-50:#4d4636;--amber-500:#ebcb8b;--amber-700:#ebcb8b;--red-50:#4d353b;--red-600:#e0858e;--violet-50:#473d4e;--violet-700:#c9a6c3;--color-on-primary:#2e3440;--color-text-inverse:#2e3440;--color-nav-bg:#242933;--color-backdrop:#0000008c;--shadow-xs:0 1px 2px #00000040;--shadow-sm:0 1px 3px #00000059, 0 1px 2px #00000040;--shadow-md:0 6px 16px #00000059, 0 2px 4px #00000040;--shadow-lg:0 18px 44px #00000080, 0 4px 12px #0000004d}[data-theme=dark],[data-theme=dracula],[data-theme=nord]{--shift-tint:26%;--roster-off:var(--color-text-subtle);--shift-m-ink:#93c2f2;--shift-e:#a9b3c2;--shift-e-ink:#d3d9e2;--shift-n-ink:#f6aaa4;--shift-x-ink:#c3b6f6;--shift-v-ink:#ecc671;--shift-s-ink:#9fd8ae;--roster-row-alt:color-mix(in srgb, var(--gray-900) 5%, var(--color-surface));--roster-row-hover:color-mix(in srgb, var(--gray-900) 10%, var(--color-surface))}.theme-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.theme-option:first-child{grid-column:1/-1}@media (width>=600px){.theme-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.theme-option:first-child{grid-column:auto}}.theme-option{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:left;cursor:pointer;transition:border-color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast);flex-direction:column;display:flex}.theme-option:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.theme-option[aria-pressed=true]{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.theme-preview{border-radius:var(--radius-md);border:1px solid #7f7f7f40;height:64px;display:flex;overflow:hidden}.theme-preview-nav{width:26%}.theme-preview-page{flex-direction:column;flex:1;gap:5px;padding:8px;display:flex}.theme-preview-card{border-radius:4px;flex:1}.theme-preview-button{border-radius:3px;width:46%;height:9px}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss03";-webkit-tap-highlight-color:transparent}body{min-height:100dvh;font-size:var(--text-lg);overscroll-behavior-y:none;margin:0}@media (width>=900px){body{font-size:var(--text-md)}}h1,h2,h3,p,dl,dd{margin:0}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--blue-100)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.muted{color:var(--color-text-muted)}.subtle{color:var(--color-text-subtle)}.small{font-size:var(--text-sm)}.strong{font-weight:var(--weight-semibold)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.92em}.nowrap{white-space:nowrap}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stack{gap:var(--space-3);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.stack-lg{gap:var(--space-6);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-2);display:flex}.row-wrap{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.grow{flex:1;min-width:0}.grid-2{gap:var(--space-3);grid-template-columns:1fr 1fr;align-items:end;display:grid}.grid-auto{gap:var(--space-3);display:grid}@media (width>=600px){.grid-auto{grid-template-columns:1fr 1fr}}@media (width<=479px){.hide-narrow{display:none}}@media (width<=899px){.only-wide{display:none!important}}@media (width>=900px){.only-compact{display:none!important}}.shell{flex-direction:column;min-height:100dvh;display:flex}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:var(--z-sticky);align-items:center;gap:var(--space-1);min-height:calc(var(--topbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(var(--space-2), env(safe-area-inset-right)) 0 max(var(--space-2), env(safe-area-inset-left));background:var(--color-nav-bg);color:var(--color-nav-text-strong);display:flex;position:sticky;top:0}.topbar-title{min-width:0;padding:0 var(--space-2);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.topbar .icon-button{color:inherit}.topbar .icon-button:hover{background:var(--color-nav-hover)}.page{width:100%;max-width:var(--content-max);padding:var(--space-4) max(var(--space-4), env(safe-area-inset-right)) calc(var(--tabbar-height) + var(--space-6) + env(safe-area-inset-bottom)) max(var(--space-4), env(safe-area-inset-left));flex:1;margin:0 auto}.page-wide{max-width:var(--content-max-wide)}.page-head{display:none}.tabbar{z-index:var(--z-sticky);height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;inset:auto 0 0}.tabbar a{min-width:0;font-size:.6875rem;font-weight:var(--weight-medium);color:var(--color-text-subtle);transition:color var(--duration-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex}.tabbar a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar a.active{color:var(--color-primary)}.tabbar-icon{border-radius:var(--radius-full);width:56px;height:28px;transition:background var(--duration-fast);place-items:center;display:grid}.tabbar a.active .tabbar-icon{background:var(--color-primary-soft)}.sidebar{display:none}@media (width>=900px){.shell{flex-direction:row}.sidebar{width:var(--sidebar-width);gap:var(--space-1);height:100dvh;padding:var(--space-4) var(--space-3);background:var(--color-nav-bg);color:var(--color-nav-text);flex-direction:column;flex:none;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-5);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--color-nav-text-strong);display:flex}.sidebar-brand img{border-radius:var(--radius-md);width:30px;height:30px;box-shadow:0 0 0 1px var(--color-nav-border)}.sidebar-group{padding:var(--space-4) var(--space-3) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.06em;text-transform:uppercase;color:#c3d2e699}.sidebar a.nav-link{align-items:center;gap:var(--space-3);min-height:38px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-nav-text);transition:background var(--duration-fast), color var(--duration-fast);text-decoration:none;display:flex}.sidebar a.nav-link:hover{background:var(--color-nav-hover);color:var(--color-nav-text-strong)}.sidebar a.nav-link.active{background:var(--color-nav-active);color:var(--color-nav-text-strong)}.sidebar-user{align-items:center;gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--color-nav-border);color:var(--color-nav-text);border-radius:0;margin-top:auto;text-decoration:none;display:flex}.sidebar-user:hover{color:var(--color-nav-text-strong);text-decoration:none}.sidebar-user-name{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-nav-text-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar,.tabbar{display:none}.page{margin-inline:max(0px, calc((100% - var(--content-max-wide)) / 2)) auto;padding:var(--space-8) var(--space-10) var(--space-12)}.page-head{gap:var(--space-2);margin-bottom:var(--space-6);flex-direction:column;display:flex}.page-full{max-width:none;margin-inline:0}.page-back{align-self:flex-start;align-items:center;gap:var(--space-1);margin-left:calc(-1 * var(--space-2));padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;display:inline-flex}.page-back:hover{background:var(--color-surface-hover);color:var(--color-text)}.page-title{font-size:var(--text-3xl);font-weight:var(--weight-regular);line-height:var(--leading-tight);letter-spacing:-.02em}}.split{gap:var(--space-6);flex-direction:column;display:flex}@media (width>=1200px){.split{grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.split-aside{top:var(--space-8);position:sticky}}.login{flex-direction:column;min-height:100dvh;display:flex}.login-brand{gap:var(--space-3);padding:calc(var(--space-10) + env(safe-area-inset-top)) var(--space-6) var(--space-10);background:var(--color-nav-bg);color:var(--color-nav-text);flex-direction:column;display:flex}.login-brand-name{align-items:center;gap:var(--space-3);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:-.02em;color:var(--color-nav-text-strong);display:flex}.login-brand-name img{border-radius:var(--radius-lg);width:44px;height:44px;box-shadow:0 0 0 1px var(--color-nav-border)}.login-brand-features{display:none}.login-body{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));margin-top:calc(-1 * var(--space-5));border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-bg);flex-direction:column;flex:1;display:flex}.login-body>*{width:100%;max-width:400px}@media (width>=900px){.login{flex-direction:row}.login-brand{padding:var(--space-12);flex:1;justify-content:center}.login-brand>*{max-width:440px}.login-brand-features{gap:var(--space-3);margin:var(--space-6) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.login-brand-features li{gap:var(--space-3);align-items:flex-start;display:flex}.login-brand-features svg{color:var(--blue-300);flex:none;margin-top:2px}.login-body{border-radius:0;flex:1;justify-content:center;margin-top:0;overflow-y:auto}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:calc(var(--control-height-sm) + 2 * var(--space-3));margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.card-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}.card-header .card-title{margin:0}a.card-link{color:inherit;transition:border-color var(--duration-fast), box-shadow var(--duration-fast);text-decoration:none;display:block}a.card-link:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);text-decoration:none}a.card-link:active{background:var(--color-surface-sunken)}.card-disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);border-style:dashed}.card-flush{padding:0;overflow:hidden}.section-title{margin:var(--space-2) 2px 0;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-subtle)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-md);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast), border-color var(--duration-fast), transform var(--duration-fast);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.button:hover{background:var(--color-primary-hover);text-decoration:none}.button:active{background:var(--color-primary-active);transform:scale(.98)}.button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.button-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button-secondary:hover{background:var(--color-surface-hover)}.button-secondary:active{background:var(--gray-200)}.button-ghost{color:var(--color-primary);background:0 0}.button-ghost:hover{background:var(--color-primary-soft)}.button-ghost:active{background:var(--color-primary-soft-border)}.button-danger{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.button-danger:hover,.button-danger:active{background:var(--color-danger-soft)}.button-small{min-height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--text-sm)}.button-block{width:100%}.icon-button{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--color-surface-hover);color:var(--color-text)}.icon-button-bordered{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:var(--control-height);height:var(--control-height)}.icon-button-small{width:30px;height:30px}.field{gap:var(--space-1);flex-direction:column;display:flex}.field>span:first-child{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field-hint{font-size:var(--text-sm);color:var(--color-text-subtle)}.input{width:100%;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-lg);transition:border-color var(--duration-fast), box-shadow var(--duration-fast)}.input::placeholder{color:var(--color-text-subtle)}.input:hover{border-color:var(--gray-400)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft-border);outline:none}textarea.input{min-height:104px;padding:var(--space-3);line-height:var(--leading-normal);resize:vertical}select.input{padding-right:var(--space-8);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2359636f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}@media (width>=900px) and (pointer:fine){.input{font-size:var(--text-md)}}.search-field{align-items:center;display:flex;position:relative}.search-field svg{left:var(--space-3);color:var(--color-text-subtle);pointer-events:none;position:absolute}.search-field .input{padding-left:calc(var(--space-3) + 28px);border-radius:var(--radius-full);background:var(--color-surface)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--gray-100);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;line-height:1.5;display:inline-flex}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge-ok{background:var(--color-success-soft);color:var(--color-success)}.badge-warn{background:var(--color-warning-soft);color:var(--color-warning)}.badge-bad{background:var(--color-danger-soft);color:var(--color-danger)}.dot{background:var(--gray-400);border-radius:50%;width:8px;height:8px;display:inline-block}.dot-ok{background:var(--color-success)}.dot-warn{background:var(--color-warning-dot)}.dot-bad{background:var(--color-danger)}.note{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-primary-soft-border);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--blue-800);font-size:var(--text-sm);line-height:var(--leading-normal);align-items:flex-start;display:flex}.note svg{flex:none;margin-top:1px}.note-warn{background:var(--color-warning-soft);color:var(--color-warning);border-color:#f3dfa2}.note-bad{background:var(--color-danger-soft);color:var(--color-danger);border-color:#f7c9c5}.note-ok{background:var(--color-success-soft);color:var(--color-success);border-color:#bfe3cf}.segmented{border-radius:var(--radius-md);background:var(--gray-100);padding:3px;display:flex}.segmented button{min-height:calc(var(--control-height) - 8px);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:0;flex:auto}.segmented button[aria-pressed=true]{background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-text)}.chip{min-height:var(--control-height-sm);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast);align-items:center;text-decoration:none;display:inline-flex}.chip:hover{background:var(--color-surface-hover);text-decoration:none}.chip[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}@media (pointer:coarse){.chip{min-height:38px}}.tabs{gap:var(--space-5);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:var(--space-3) 0;color:var(--color-text-muted);font-size:var(--text-md);white-space:nowrap;transition:color var(--duration-fast);border-bottom:2px solid #0000;margin-bottom:-1px;text-decoration:none}.tabs a:hover{color:var(--color-text)}.tabs a.active{border-bottom-color:var(--color-primary);color:var(--color-text);font-weight:var(--weight-medium)}.dl{gap:var(--space-2) var(--space-4);font-size:var(--text-md);grid-template-columns:minmax(104px,max-content) 1fr;align-items:baseline;display:grid}.dl dt{color:var(--color-text-muted)}.dl dd{overflow-wrap:anywhere;min-width:0}.dl dd.row .mono{white-space:nowrap}@media (width<=479px){.dl{column-gap:var(--space-3);grid-template-columns:minmax(84px,max-content) 1fr}.dl dd.row{gap:0}}.list{flex-direction:column;display:flex}.list>*+*{border-top:1px solid var(--color-border)}.list-item{align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3) 0;color:inherit;text-decoration:none;display:flex}a.list-item:hover,button.list-item:hover{background:var(--color-surface-sunken);text-decoration:none}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.card:not(.card-flush)>.table-wrap{margin-inline:calc(-1 * var(--card-padding))}.card:not(.card-flush)>.table-wrap:last-child{margin-bottom:calc(-1 * var(--card-padding))}.card:not(.card-flush)>.table-wrap .table th:first-child,.card:not(.card-flush)>.table-wrap .table td:first-child{padding-left:var(--card-padding)}.card:not(.card-flush)>.table-wrap .table th:last-child,.card:not(.card-flush)>.table-wrap .table td:last-child{padding-right:var(--card-padding)}.table-compact th,.table-compact td{padding-inline:var(--space-2)}@media (width<=479px){.table-compact th,.table-compact td{padding-inline:6px}}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.table th,.table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);text-align:left;vertical-align:middle}.table thead th{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-subtle);white-space:nowrap;border-top:0}.card-flush .table thead th{background:var(--color-surface-sunken)}.table tbody tr.highlight td{background:var(--color-primary-soft)}.table tbody tr.row-link{cursor:pointer;transition:background var(--duration-fast)}.table tbody tr.row-link:hover td{background:var(--color-surface-sunken)}.table tbody tr.row-muted td{color:var(--color-text-subtle)}.stat{flex-direction:column;gap:2px;display:flex}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}.stat-value{font-size:var(--text-3xl);font-weight:var(--weight-regular);line-height:var(--leading-tight);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;flex:none;place-items:center;display:grid}.avatar-inverse{background:var(--color-nav-active);color:var(--color-nav-text-strong)}.avatar-lg{width:56px;height:56px;font-size:var(--text-xl)}.empty{align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center;color:var(--color-text-muted);flex-direction:column;display:flex}.empty svg{color:var(--gray-400)}.spinner{padding:var(--space-8);color:var(--color-text-subtle);justify-content:center;display:flex}.spinner svg{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 37%, var(--gray-100) 63%);background-size:400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.toast{left:50%;bottom:calc(var(--tabbar-height) + var(--space-4) + env(safe-area-inset-bottom));z-index:var(--z-toast);max-width:calc(100vw - var(--space-8));padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);background:var(--gray-900);color:var(--color-text-inverse);font-size:var(--text-sm);font-weight:var(--weight-medium);box-shadow:var(--shadow-lg);animation:toast-in var(--duration-normal) var(--ease-out);position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (width>=900px){.toast{bottom:var(--space-8)}}.steps{gap:var(--space-2);display:flex}.steps span{border-radius:var(--radius-full);background:var(--color-border);height:4px;transition:background var(--duration-normal);flex:1}.steps span.done{background:var(--color-primary)}.choice{align-items:flex-start;gap:var(--space-3);width:100%;min-height:var(--tap-target);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;cursor:pointer;transition:border-color var(--duration-fast), background var(--duration-fast);display:flex}.choice:hover{background:var(--color-surface-sunken)}.choice[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:inset 0 0 0 1px var(--color-primary)}.sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-surface);width:100%;max-width:100%;max-height:88dvh;color:var(--color-text);box-shadow:var(--shadow-lg);border:0;margin:auto 0 0;padding:0;overflow:hidden}.sheet[open]{animation:sheet-up var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.sheet::backdrop{background:var(--color-backdrop)}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}.sheet-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-xl);font-weight:var(--weight-semibold);display:flex}.sheet-body{padding:var(--space-4);flex:1;overflow-y:auto}.sheet-footer{gap:var(--space-3);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);display:flex}.sheet-footer>*{flex:1}@media (width>=600px){.sheet{border-radius:var(--radius-xl);width:480px;margin:auto}}.order-time{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.date-switch{align-items:center;gap:var(--space-1);display:flex}.date-switch .input{text-align:center;flex:1;min-width:0}.toolbar{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=900px){.toolbar{flex-direction:row;align-items:center}.toolbar .segmented{flex:none}.toolbar .date-switch{flex:none;width:260px}.toolbar-end{margin-left:auto}}.actions{gap:var(--space-2);flex-direction:column;display:flex}@media (width>=900px){.actions{gap:var(--space-3);flex-flow:wrap}}.cards-grid{gap:var(--space-3);align-items:stretch;display:grid}@media (width>=600px){.cards-grid{grid-template-columns:1fr 1fr}}.swatches{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.swatch{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);overflow:hidden}.swatch-color{height:48px}.swatch-label{padding:var(--space-1) var(--space-2);background:var(--color-surface)}.prose{overflow-wrap:anywhere;line-height:1.6}.prose>*+*{margin-top:var(--space-3)}.prose h2{margin-top:var(--space-6);font-size:var(--text-xl);font-weight:var(--weight-semibold)}.prose h3{margin-top:var(--space-5);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.prose ul,.prose ol{padding-left:var(--space-5);margin:0}.prose li+li{margin-top:var(--space-1)}.prose code{background:var(--gray-100);font-family:var(--font-mono);border-radius:4px;padding:1px 5px;font-size:.9em}.prose pre{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);font-family:var(--font-mono);font-size:var(--text-sm);margin:0;overflow-x:auto}.tile{align-items:flex-start;gap:var(--space-3);display:flex}.tile-icon{border-radius:var(--radius-md);background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);flex:none;place-items:center;display:grid}.log{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);max-height:280px;font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre;margin:0;line-height:1.6;overflow:auto}.emulator-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));display:grid}.emulator-card{--tone:hsl(var(--hue) 55% 48%);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out), border-color var(--duration-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.emulator-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.emulator-cover{background:color-mix(in srgb, var(--tone) 14%, var(--color-surface));height:104px;color:color-mix(in srgb, var(--tone) 75%, var(--color-text));place-items:center;display:grid}.emulator-star{top:var(--space-2);right:var(--space-2);z-index:2;border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-surface) 80%, transparent);width:36px;height:36px;color:var(--color-text-subtle);cursor:pointer;transition:color var(--duration-fast), background var(--duration-fast), transform var(--duration-fast) var(--ease-out);border:0;place-items:center;display:grid;position:absolute}.emulator-star:hover{background:var(--color-surface);color:var(--color-text)}.emulator-star:active{transform:scale(.88)}.emulator-star[aria-pressed=true]{background:var(--color-surface);color:var(--amber-500)}.emulator-body{gap:var(--space-2);padding:var(--space-4);flex-direction:column;flex:1;display:flex}.emulator-name{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.emulator-main{color:inherit;text-decoration:none}.emulator-main:hover{text-decoration:none}.emulator-main:after{content:"";z-index:1;position:absolute;inset:0}.emulator-main:focus-visible{outline:none}.emulator-main:focus-visible:after{border-radius:var(--radius-lg);outline:2px solid var(--color-focus);outline-offset:-2px}.emulator-main-variant{margin-top:calc(-1 * var(--space-1))}.emulator-facts{font-size:var(--text-sm);flex-direction:column;gap:2px;display:flex}.emulator-facts dt{font-size:var(--text-xs);color:var(--color-text-subtle)}.emulator-facts dd{font-family:var(--font-mono);font-size:var(--text-xs);flex-direction:column;gap:2px;display:flex}.emulator-variants{padding:var(--space-2) 0 0;border-top:1px solid var(--color-border);flex-direction:column;gap:2px;margin:0;list-style:none;display:flex}.emulator-variants a{z-index:2;align-items:center;gap:var(--space-2);margin-inline:calc(-1 * var(--space-2));padding:6px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--duration-fast);text-decoration:none;display:flex;position:relative}.emulator-variants a:hover{background:var(--color-surface-hover);text-decoration:none}.emulator-variants svg{flex:none}.emulator-open{justify-content:center;align-items:center;gap:var(--space-2);margin:0 var(--space-4) var(--space-4);min-height:var(--control-height-sm);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background var(--duration-fast), color var(--duration-fast);display:flex}.emulator-card:hover .emulator-open{background:var(--color-primary);color:var(--color-on-primary)}@media (width<=599px){.emulator-cover{height:76px}}.dl dd.row,.mac-row{flex-wrap:wrap}.mac-vendor{font-size:var(--text-sm);line-height:var(--leading-normal);animation:rise-in var(--duration-normal) var(--ease-out) both;flex-basis:100%}.mac-result{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-sunken)}.image-picker{align-items:center;gap:var(--space-3);display:flex}.image-preview{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);width:64px;height:64px;color:var(--color-text-subtle);flex:none;place-items:center;display:grid;overflow:hidden}.image-preview-wide{width:128px;height:72px}.image-preview img{object-fit:contain;width:100%;height:100%}.tile-image{background:var(--color-surface-sunken);overflow:hidden}.tile-image img{object-fit:contain;width:100%;height:100%}.link-preview{background:var(--color-surface-sunken);box-shadow:none}.icon-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(44px,1fr));display:grid}.icon-choice{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);height:44px;color:var(--color-text-muted);cursor:pointer;transition:border-color var(--duration-fast), background var(--duration-fast), color var(--duration-fast);place-items:center;display:grid}.icon-choice:hover{border-color:var(--color-border-strong);color:var(--color-text)}.icon-choice[aria-checked=true]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.link-card-arranging{cursor:grab}.link-card-dragging{opacity:.45}.link-card-over{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.link-grip{color:var(--color-text-subtle);flex:none;align-self:center}.editor{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--duration-fast), box-shadow var(--duration-fast);overflow:hidden}.editor:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 30%, transparent)}.editor-toolbar{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-surface-sunken);display:flex}.editor-button{justify-content:center;align-items:center;gap:var(--space-2);min-width:36px;height:36px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:0;display:inline-flex}.editor-button:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.editor-button:disabled{opacity:.4;cursor:default}.editor-bold{font-weight:var(--weight-semibold);font-size:var(--text-md)}.editor-toggle[aria-pressed=true]{color:var(--color-primary)}.editor-area{width:100%;min-height:340px;padding:var(--space-3) var(--space-4);color:inherit;font:inherit;font-size:var(--text-lg);line-height:var(--leading-normal);resize:vertical;background:0 0;border:0;display:block}.editor-area:focus{outline:none}.editor-preview{min-height:340px;padding:var(--space-3) var(--space-4)}@media (width>=900px){.editor-area{font-size:var(--text-md)}}.emulator-cover-image{padding:var(--space-3);background:var(--color-surface-sunken)}.emulator-cover-image img{object-fit:contain;width:100%;height:100%}.emulator-image-button{right:auto;left:var(--space-2)}.group-head{min-height:30px}.group-empty{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-2) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.group-empty-target{border-color:var(--color-primary);background:var(--color-primary-soft)}.roster-cell{border-radius:var(--radius-md);min-width:56px;font-size:var(--text-xs);font-weight:var(--weight-medium);text-align:center;white-space:nowrap;padding:5px 8px;line-height:1.4;display:inline-block}.roster-m,.shift-m{background:color-mix(in srgb, var(--shift-m) var(--shift-tint), transparent);color:var(--shift-m-ink)}.roster-e,.shift-e{background:color-mix(in srgb, var(--shift-e) var(--shift-tint), transparent);color:var(--shift-e-ink)}.roster-n,.shift-n{background:color-mix(in srgb, var(--shift-n) var(--shift-tint), transparent);color:var(--shift-n-ink)}.roster-x,.shift-x{background:color-mix(in srgb, var(--shift-x) var(--shift-tint), transparent);color:var(--shift-x-ink)}.roster-v{background:color-mix(in srgb, var(--shift-v) var(--shift-tint), transparent);color:var(--shift-v-ink)}.roster-s{background:color-mix(in srgb, var(--shift-s) var(--shift-tint), transparent);color:var(--shift-s-ink)}.roster-off{color:var(--roster-off);font-weight:var(--weight-regular)}.shift{border-radius:var(--radius-sm);width:28px;height:28px;font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;place-items:center;display:inline-grid}.roster-legend{align-items:center;gap:var(--space-2) var(--space-5);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.roster-legend>span{align-items:center;gap:var(--space-2);display:inline-flex}.roster-legend .roster-cell{min-width:0}.roster-senior-mark{border-radius:var(--radius-full);background:var(--color-primary);width:18px;height:3px;display:inline-block}.roster-wrap{max-height:max(420px,100dvh - 300px);overflow:auto}.roster{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm)}.roster tbody tr{--row-bg:var(--color-surface)}.roster tbody tr:nth-child(2n){--row-bg:var(--roster-row-alt)}.roster tbody tr:hover{--row-bg:var(--roster-row-hover)}.roster th,.roster td{background:var(--row-bg,var(--color-surface));text-align:center;white-space:nowrap;transition:background var(--duration-fast);padding:5px 4px}.roster thead th{z-index:2;padding:var(--space-3) var(--space-1);border-bottom:1px solid var(--color-border-strong);background:var(--color-surface);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1.35;position:sticky;top:0}.roster thead th.senior{box-shadow:inset 0 3px 0 var(--color-primary);color:var(--color-primary)}.roster thead th.me{background:var(--color-primary-soft)}.roster-first-name{color:var(--color-text-subtle);font-weight:var(--weight-regular)}.roster .roster-weekday,.roster .roster-day,.roster .roster-date{z-index:1;text-align:left;position:sticky;left:0}.roster thead .roster-date{z-index:3}.roster .roster-weekday{width:56px;min-width:56px;padding-left:var(--space-4);color:var(--color-text-muted)}.roster .roster-day{width:64px;padding-right:var(--space-3);border-right:1px solid var(--color-border);font-variant-numeric:tabular-nums;left:56px}.roster .roster-date{padding-left:var(--space-4);border-right:1px solid var(--color-border);font-weight:var(--weight-medium)}.roster .wd-full{display:none}.roster tr.weekend .roster-weekday{color:var(--shift-n-ink)}.roster tbody tr.today{--row-bg:var(--color-primary-soft)}.roster tbody tr.today .roster-weekday{box-shadow:inset 3px 0 0 var(--color-primary);color:var(--color-primary);font-weight:var(--weight-semibold)}.roster-day-button{border-radius:var(--radius-sm);color:inherit;font-weight:var(--weight-medium);cursor:pointer;background:0 0;border:0;padding:3px 8px}.roster-day-button:hover{background:var(--color-surface-hover);color:var(--color-primary)}.roster td .roster-cell{display:block}.roster thead .roster-cell{min-width:0;padding-inline:6px}.roster td.editable{cursor:pointer}.roster td.editable:hover .roster-cell{outline:2px solid var(--color-focus);outline-offset:1px}.roster .roster-count{border-left:1px solid var(--color-border);width:56px;min-width:56px;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.roster .roster-count+.roster-count{border-left:0}.roster td.roster-count.empty{color:var(--color-danger)}.roster tfoot td{padding:var(--space-2) 4px;border-top:1px solid var(--color-border);background:var(--color-surface-sunken);font-variant-numeric:tabular-nums}.roster tfoot tr:first-child td{border-top:1px solid var(--color-border-strong)}.roster tfoot tr.total td{font-weight:var(--weight-semibold)}.roster-day-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));align-items:stretch;display:grid}@media (width>=900px){.roster-day-grid{gap:var(--space-4)}}@media (width>=1600px) and (width<=1799px){.roster th,.roster td{padding-inline:2px}.roster .roster-cell{min-width:50px;padding-inline:4px}}@media (width>=1800px){.roster .wd-full{display:inline}.roster .wd-short{display:none}.roster .roster-weekday{width:124px;min-width:124px}.roster .roster-day{left:124px}.roster th,.roster td{padding:6px 3px}.roster .roster-cell{min-width:56px;padding-block:6px}}@media (width<=599px){.roster-wrap{max-height:70dvh}.roster .roster-weekday{display:none}.roster .roster-day{padding-left:var(--space-2);left:0}.roster-cell{min-width:50px;padding:4px 6px}.roster-legend{gap:var(--space-2) var(--space-3)}}.roster-editable tbody{-webkit-user-select:none;user-select:none}.roster td.selected{background:color-mix(in srgb, var(--color-primary) 20%, var(--row-bg));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 55%, transparent)}.roster-person{border-radius:var(--radius-sm);width:100%;color:inherit;font:inherit;line-height:inherit;cursor:pointer;transition:background var(--duration-fast);background:0 0;border:0;padding:2px 4px}.roster-person:hover{background:var(--color-surface-hover)}.roster-filter{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-primary-soft-border);border-radius:var(--radius-lg);background:var(--color-primary-soft);animation:rise-in var(--duration-normal) var(--ease-out) both;flex-wrap:wrap;display:flex}.roster-card-solo{align-self:flex-start;width:min(100%,420px)}.roster-solo .roster-cell{min-width:120px}.popover{z-index:50;width:236px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);animation:rise-in var(--duration-fast) var(--ease-out) both;flex-direction:column;gap:2px;display:flex;position:fixed}.popover-title{padding:var(--space-1) var(--space-2) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle)}.popover-item{align-items:center;gap:var(--space-3);min-height:38px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--duration-fast);background:0 0;border:0;display:flex}.popover-item:hover,.popover-item:focus-visible{background:var(--color-surface-hover)}.popover-item .roster-cell{flex:none;min-width:64px}@media (width>=900px){:root{--card-padding:var(--space-5)}.stack,.cards-grid,.grid-auto{gap:var(--space-4)}}.card:not(.card-flush){padding:var(--card-padding)}.card-header{margin:calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) var(--card-padding);padding:var(--space-3) var(--card-padding)}.card-flush .list-item{padding-inline:var(--card-padding)}.card-flush .table th:first-child,.card-flush .table td:first-child{padding-left:var(--card-padding)}.card-flush .table th:last-child,.card-flush .table td:last-child{padding-right:var(--card-padding)}.card{box-shadow:var(--shadow-xs);transition:box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-fast), transform var(--duration-normal) var(--ease-out), background var(--duration-fast)}.card-disabled{box-shadow:none}a.card-link:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}a.card-link:active{box-shadow:var(--shadow-xs);transform:translateY(0)scale(.99)}.button{transition:background var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast) var(--ease-out)}.button:not(.button-secondary):not(.button-ghost):not(.button-danger){box-shadow:0 1px 2px #081d362e,inset 0 1px #ffffff1f}.button:hover:not(:disabled){transform:translateY(-1px)}.button:not(.button-secondary):not(.button-ghost):not(.button-danger):hover:not(:disabled){box-shadow:0 4px 12px #081d3638,inset 0 1px #ffffff1f}.button:active:not(:disabled){transform:translateY(0)scale(.97)}.button-secondary{box-shadow:var(--shadow-xs)}.icon-button{transition:background var(--duration-fast), color var(--duration-fast), transform var(--duration-fast) var(--ease-out)}.icon-button:active{transform:scale(.9)}.chip,.choice,.segmented button{transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast) var(--ease-out)}.chip:active,.choice:active{transform:scale(.97)}.input{transition:border-color var(--duration-fast), box-shadow var(--duration-fast), background var(--duration-fast)}.list-item,.table tbody tr td{transition:background var(--duration-fast)}.tabbar a:active .tabbar-icon{transform:scale(.9)}.tabbar-icon{transition:background var(--duration-normal) var(--ease-out), transform var(--duration-fast) var(--ease-out)}.sidebar a.nav-link{position:relative}.sidebar a.nav-link:before{content:"";background:var(--blue-300);width:3px;height:0;transition:height var(--duration-normal) var(--ease-out);border-radius:0 3px 3px 0;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.sidebar a.nav-link.active:before{height:18px}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}.page-enter,.cards-grid>*,.stagger>*{animation:rise-in var(--duration-normal) var(--ease-out) both}.cards-grid>:nth-child(2),.stagger>:nth-child(2){animation-delay:30ms}.cards-grid>:nth-child(3),.stagger>:nth-child(3){animation-delay:60ms}.cards-grid>:nth-child(4),.stagger>:nth-child(4){animation-delay:90ms}.cards-grid>:nth-child(5),.stagger>:nth-child(5){animation-delay:.12s}.cards-grid>:nth-child(n+6),.stagger>:nth-child(n+6){animation-delay:.15s}.note,.empty{animation:fade-in var(--duration-normal) var(--ease-out) both}.badge{animation:pop-in var(--duration-fast) var(--ease-out) both}.sheet::backdrop{animation:fade-in var(--duration-normal) var(--ease-out) both}@keyframes sheet-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}}@media (width>=600px){.sheet[open]{animation:sheet-pop var(--duration-normal) var(--ease-out)}}.reveal{animation:rise-in var(--duration-normal) var(--ease-out) both}@keyframes pulse{50%{opacity:.35}}.pulse{animation:1.1s ease-in-out infinite pulse}.note{border-color:color-mix(in srgb, var(--color-primary) 22%, transparent)}.note-warn{border-color:color-mix(in srgb, var(--color-warning) 35%, transparent)}.note-bad{border-color:color-mix(in srgb, var(--color-danger) 35%, transparent)}.note-ok{border-color:color-mix(in srgb, var(--color-success) 35%, transparent)}html.theme-switching,html.theme-switching *{transition:background-color var(--duration-slow) ease, border-color var(--duration-slow) ease, color var(--duration-slow) ease!important}
