:root{--thead-sticky-2:38px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:24px;--font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--tabular:"Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;--shell-max:1220px;--gutter:clamp(14px,4.5vw,42px);color-scheme:light;--bg-deep:#eceff3;--body-gradient:radial-gradient(ellipse 88% 58% at 50% -14%,rgba(124,58,237,.09),transparent 54%),linear-gradient(180deg,#f8fafc,#eef1f5 50%,#e8ebf0);--top-bar-bg:hsla(0,0%,100%,.78);--roster-controls-bg:transparent;--tabs-strip-bg:transparent;--table-wrap-bg:#fff;--footer-bg:transparent;--bg:#fff;--bg-elevated:#f8fafc;--surface:hsla(0,0%,100%,.92);--surface-solid:#fff;--border:rgba(15,23,42,.1);--border-strong:rgba(15,23,42,.14);--ink:#0f172a;--ink-soft:#334155;--muted:#5b6470;--muted-dim:#7c8796;--accent:#7c3aed;--accent-2:#4c1d95;--accent-glow:rgba(124,58,237,.32);--accent-soft:rgba(124,58,237,.1);--roster-today-row-bg:color-mix(in srgb,var(--accent) 16%,var(--row));--roster-today-row-hover:color-mix(in srgb,var(--accent) 26%,var(--row-alt));--hdr-top:#5b21b6;--hdr-mid:#7c3aed;--hdr-date:#4c1d95;--thead-row2-fg:#f5f3ff;--row:#fafafa;--row-alt:#f4f4f5;--row-hover:rgba(124,58,237,.07);--shadow-sm:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 8px 28px rgba(15,23,42,.07);--shadow-glow:0 0 0 1px rgba(15,23,42,.05),0 14px 44px -14px rgba(91,33,182,.16);--card-hover-ring:rgba(124,58,237,.18);--shift-input-bg:#fff;--shift-focus-ring:rgba(124,58,237,.22);--title-g1:#0f172a;--title-g2:#6d28d9;--title-g3:#57534e;--tab-active-fg:#fff;--tab-active-bg:linear-gradient(145deg,#4c1d95,#5b21b6 38%,#4c1d95 72%,#3b0764);--tab-active-shadow:0 4px 20px rgba(59,7,100,.42);--tab-inactive-bg:hsla(0,0%,100%,.55);--tab-hover-bg:rgba(124,58,237,.08);--seg-active-bg:linear-gradient(135deg,#9333ea,#7c3aed 45%,#5b21b6);--seg-active-fg:#fff;--seg-hover-bg:rgba(124,58,237,.12);--view-toggle-bg:transparent;--thead-row1-grad:linear-gradient(180deg,#4c1d95 0%,var(--hdr-mid) 52%,#5b21b6 100%);--thead-row2-grad:linear-gradient(180deg,#3b0764 0%,var(--hdr-date) 100%);--btn-ghost-bg:hsla(0,0%,100%,.72);--btn-ghost-bg-hover:hsla(0,0%,100%,.95);--scrollbar-thumb:rgba(124,58,237,.4);--scrollbar-track:transparent;--table-scroll-thumb-bg:linear-gradient(135deg,rgba(124,58,237,.52),rgba(91,33,182,.45));--table-scroll-track-bg:rgba(15,23,42,.06);--table-scroll-thumb-border:hsla(0,0%,100%,.85);--off:#e11d48;--night:#475569;--seven:#6d28d9;--two:#5b21b6;--green:#059669;--amber:#d97706;--red:#dc2626}html[data-theme=dark]{color-scheme:dark;--bg-deep:#060810;--body-gradient:radial-gradient(ellipse 120% 80% at 50% -28%,rgba(91,33,182,.24),transparent 56%),radial-gradient(ellipse 70% 50% at 100% 0%,rgba(139,92,246,.1),transparent 46%),radial-gradient(ellipse 60% 40% at 0% 20%,rgba(76,29,149,.09),transparent 42%);--top-bar-bg:rgba(6,10,16,.78);--roster-controls-bg:rgba(8,12,20,.45);--tabs-strip-bg:rgba(8,12,20,.4);--table-wrap-bg:rgba(6,10,16,.5);--footer-bg:rgba(6,10,16,.5);--bg:#0a101a;--bg-elevated:#0f1724;--surface:rgba(15,23,36,.72);--surface-solid:#121c2e;--border:hsla(0,0%,100%,.07);--border-strong:hsla(0,0%,100%,.12);--ink:#f1f5f9;--ink-soft:#e2e8f0;--muted:#94a3b8;--muted-dim:#64748b;--accent:#c4b5fd;--accent-2:#a78bfa;--accent-glow:rgba(167,139,250,.34);--hdr-top:#4c1d95;--hdr-mid:#7c3aed;--hdr-date:#3b0764;--row:rgba(8,12,22,.55);--row-alt:rgba(15,23,42,.65);--row-hover:rgba(91,33,182,.3);--roster-today-row-bg:color-mix(in srgb,var(--accent) 18%,var(--row));--roster-today-row-hover:color-mix(in srgb,var(--accent) 28%,var(--row-alt));--shadow-sm:0 1px 2px rgba(0,0,0,.45);--shadow-md:0 12px 40px rgba(0,0,0,.55);--shadow-glow:0 0 0 1px rgba(139,92,246,.14),0 20px 50px -20px rgba(59,7,100,.45);--card-hover-ring:rgba(167,139,250,.24);--shift-input-bg:rgba(4,8,14,.75);--shift-focus-ring:rgba(167,139,250,.22);--title-g1:#f8fafc;--title-g2:#ddd6fe;--title-g3:#c4b5fd;--tab-active-fg:#fff;--tab-active-bg:linear-gradient(145deg,#5b21b6,#4c1d95 45%,#3b0764);--tab-active-shadow:0 4px 22px rgba(76,29,149,.55);--tab-inactive-bg:var(--surface-solid);--tab-hover-bg:rgba(76,29,149,.38);--seg-active-bg:linear-gradient(135deg,#6d28d9,#5b21b6 50%,#4c1d95);--seg-active-fg:#fff;--seg-hover-bg:rgba(167,139,250,.12);--view-toggle-bg:var(--surface-solid);--thead-row1-grad:linear-gradient(180deg,#4c1d95 0%,var(--hdr-mid) 52%,#5b21b6 100%);--thead-row2-grad:linear-gradient(180deg,#3b0764 0%,var(--hdr-date) 100%);--accent-soft:rgba(124,58,237,.16);--btn-ghost-bg:rgba(15,23,42,.6);--btn-ghost-bg-hover:rgba(30,41,59,.85);--thead-row2-fg:#f5f3ff;--scrollbar-thumb:rgba(167,139,250,.38);--scrollbar-track:transparent;--table-scroll-thumb-bg:linear-gradient(135deg,rgba(124,58,237,.55),rgba(91,33,182,.45));--table-scroll-track-bg:rgba(15,23,42,.6);--table-scroll-thumb-border:rgba(6,10,16,.6);--off:#fb7185;--seven:#8b5cf6;--two:#7c3aed;--green:#10b981;--amber:#f59e0b;--red:#ef4444}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%;max-height:100vh;max-height:100dvh;overflow:hidden;text-size-adjust:100%}body{font-family:var(--font);color:var(--ink-soft);overflow:hidden;overflow-x:clip;max-width:100%;margin:0;background-color:var(--bg-deep);background-image:var(--body-gradient);background-attachment:fixed;line-height:1.5;-webkit-font-smoothing:antialiased}.app,body{height:100%;max-height:100vh;max-height:100dvh;width:100%}.app{min-height:0;display:flex;flex-direction:column;overflow:hidden}.top-bar{position:-webkit-sticky;position:sticky;top:0;z-index:50;flex-shrink:0;padding-top:env(safe-area-inset-top,0);border-bottom:1px solid var(--border);background:var(--top-bar-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.top-bar__inner{width:100%;max-width:min(var(--shell-max),calc(100vw - 2 * var(--gutter)));padding:clamp(1rem,2vw,1.5rem) var(--gutter);flex-wrap:wrap;justify-content:center;flex-direction:column;gap:1.25rem 1.5rem}.brand,.top-bar__inner{margin-inline:auto;display:flex;align-items:center;text-align:center}.brand{flex:1 1 auto;min-width:0;max-width:38rem;flex-direction:column}.brand h1{font-size:clamp(1.65rem,2.5vw + .5rem,2.35rem);font-weight:800;letter-spacing:-.03em;line-height:1.15;background:linear-gradient(105deg,var(--title-g1) 0,var(--title-g2) 48%,var(--title-g3) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:0}.top-bar__actions{--header-action-size:2.75rem;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.5rem .65rem}.top-bar__actions .toolbar{display:contents}.top-bar__actions .btn--icon{flex-shrink:0}.top-bar__actions .btn--icon,.top-bar__actions .lang-dropdown__toggle.btn{width:var(--header-action-size);height:var(--header-action-size);min-width:var(--header-action-size);min-height:var(--header-action-size);border-radius:50%}.top-bar__actions .lang-dropdown__toggle.btn{padding:0;gap:.12rem}.top-bar__actions .lang-dropdown__toggle .flag-icon{font-size:1.05rem}.top-bar__actions .lang-dropdown__toggle .lang-dropdown__chev{font-size:.5rem}.dl-save-btn__icon{display:inline-flex;align-items:center;justify-content:center}.dl-save-btn__icon svg{width:1.1rem;height:1.1rem}@media (min-width:901px){.top-bar__inner{flex-direction:row;justify-content:space-between;gap:1.25rem 2rem}.brand,.top-bar__inner{align-items:flex-start;text-align:left}.brand{margin-inline:0;max-width:none;flex:1 1 280px}.top-bar__actions{justify-content:flex-end;flex-shrink:0}}.lang-dropdown{position:relative;flex-shrink:0}.lang-dropdown,.lang-dropdown__toggle{display:inline-flex;align-items:center}.lang-dropdown__toggle{justify-content:center;gap:.2rem;min-height:2.5rem;min-width:2.5rem;padding:.3rem .45rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm)}.lang-dropdown__toggle .flag-icon{font-size:1.25rem}.lang-dropdown__chev{font-size:.6rem;line-height:1;opacity:.75}.lang-dropdown__panel{position:absolute;z-index:90;min-width:11.5rem;padding:.35rem;border-radius:var(--radius-md);background:var(--surface-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-md),0 12px 36px rgba(15,23,42,.12);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .18s ease,visibility .18s ease,transform .18s ease}.lang-dropdown:not(.lang-dropdown--footer) .lang-dropdown__panel{top:calc(100% + .35rem);right:0;left:auto}.lang-dropdown--footer .lang-dropdown__panel{top:auto;bottom:calc(100% + .35rem);left:50%;right:auto;transform:translateX(-50%) translateY(-6px)}.lang-dropdown.is-open .lang-dropdown__panel,.lang-dropdown:focus-within .lang-dropdown__panel{opacity:1;visibility:visible;pointer-events:auto}.lang-dropdown:not(.lang-dropdown--footer).is-open .lang-dropdown__panel,.lang-dropdown:not(.lang-dropdown--footer):focus-within .lang-dropdown__panel{transform:translateY(0)}.lang-dropdown--footer.is-open .lang-dropdown__panel,.lang-dropdown--footer:focus-within .lang-dropdown__panel{transform:translateX(-50%) translateY(0)}.lang-dropdown__opt{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink-soft);font-weight:600;font-size:.875rem;line-height:1.25;transition:background .15s ease,color .15s ease}.lang-dropdown__opt.is-active,.lang-dropdown__opt:hover{background:var(--accent-soft);color:var(--ink)}.lang-dropdown__opt.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.lang-dropdown__opt .flag-icon{font-size:1.25rem;flex-shrink:0}.lang-dropdown__opt-label{flex:1 1;min-width:0}.flag-icon{font-size:1.4rem;line-height:1}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem .65rem;align-items:center}.btn{border:none;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;letter-spacing:.02em;padding:.65rem 1.25rem;border-radius:999px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn:disabled{cursor:not-allowed;opacity:.48}.btn:disabled,.btn:disabled:hover{transform:none}.btn--primary{color:#042f2e;background:linear-gradient(135deg,#5eead4,#38bdf8 50%,#818cf8);box-shadow:var(--shadow-sm),0 4px 24px rgba(56,189,248,.35);filter:url(#btnGlow)}.btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm),0 8px 32px rgba(56,189,248,.45)}html:not([data-theme=dark]) .btn--primary{color:#fff;background:linear-gradient(135deg,#a78bfa,#8b5cf6 38%,#7c3aed 72%,#5b21b6);box-shadow:var(--shadow-sm),0 4px 22px rgba(91,33,182,.32);filter:none}html:not([data-theme=dark]) .btn--primary:hover{box-shadow:var(--shadow-sm),0 8px 30px rgba(91,33,182,.38)}html[data-theme=dark] .btn--primary{color:#fff;background:linear-gradient(135deg,#a78bfa,#7c3aed 45%,#5b21b6);box-shadow:var(--shadow-sm),0 4px 26px rgba(91,33,182,.42);filter:none}html[data-theme=dark] .btn--primary:hover{box-shadow:var(--shadow-sm),0 8px 34px rgba(91,33,182,.52)}.btn--ghost{color:var(--ink-soft);background:var(--btn-ghost-bg);border:1px solid var(--border-strong);filter:none}.btn--ghost:hover{background:var(--btn-ghost-bg-hover);border-color:color-mix(in srgb,var(--ink-soft) 22%,transparent);transform:translateY(-2px)}.btn--sm{font-size:.82rem;padding:.35rem .65rem;border-radius:var(--radius-sm)}.btn--icon{width:2.75rem;height:2.75rem;padding:0;border-radius:var(--radius-sm);font-size:1.4rem;line-height:1;font-weight:700;display:inline-flex}.btn--icon,.roster-controls{align-items:center;justify-content:center}.roster-controls{flex-shrink:0;display:flex;flex-direction:row;flex-wrap:nowrap;gap:clamp(.5rem,2.5vw,1.25rem);width:100%;max-width:min(var(--shell-max),calc(100vw - 2 * var(--gutter)));margin-inline:auto;padding:.4rem var(--gutter) .45rem;border-bottom:1px solid var(--border);background:var(--roster-controls-bg);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.roster-controls::-webkit-scrollbar{display:none}.nav-month{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto}.roster-controls .btn--icon{width:2.35rem;height:2.35rem;min-width:2.35rem;font-size:1.15rem;flex-shrink:0}.month-field{font-family:inherit;font-size:.875rem;font-weight:600;color:var(--ink-soft);background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .45rem;min-height:2.35rem;height:2.35rem;width:11.25rem;min-width:11.25rem;max-width:11.25rem;flex-shrink:0;line-height:1.2}.month-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.view-toggle{display:inline-flex;border-radius:999px;border:1px solid var(--border);overflow:hidden;background:var(--view-toggle-bg);flex-shrink:0}.view-toggle .seg-btn{border-radius:0;margin:0;filter:none;box-shadow:none;background:transparent;color:var(--muted);border:none;padding:.42rem .85rem;font-size:.8125rem;white-space:nowrap;min-height:2.35rem;display:inline-flex;align-items:center;justify-content:center}.view-toggle .seg-btn:hover{background:var(--seg-hover-bg);color:var(--ink-soft);transform:none}.view-toggle .seg-btn.is-active{background:var(--seg-active-bg);color:var(--seg-active-fg);font-weight:600}.tabs-strip.is-hidden{display:none}.roster-table thead th{text-align:left;padding:clamp(.58rem,1.35vw,.88rem) .8rem;font-size:clamp(.78rem,.48vw + .7rem,.9rem);line-height:1.4;vertical-align:middle}.roster-table .col-day{width:28%;min-width:min(10rem,24vw);white-space:nowrap}.roster-table .col-shift{width:50%;min-width:min(9rem,26vw)}.roster-table .col-break{width:22%;min-width:4.25rem;max-width:6.5rem;text-align:center}.roster-day-cell{text-align:left!important;font-weight:600;color:var(--ink-soft)!important;letter-spacing:.01em}.roster-shift-cell{text-align:left!important;vertical-align:middle}.roster-break-cell{text-align:center!important;vertical-align:middle}.roster-table tbody td,.roster-table tbody th{padding:.28rem .5rem;font-size:clamp(.78rem,.4vw + .7rem,.9rem);line-height:1.3}@media (max-width:640px){.card.week .table-wrap{border-radius:var(--radius-md);border-color:var(--border-strong)}.roster-table{table-layout:fixed;width:100%;min-width:0;border-collapse:separate;border-spacing:0}.roster-table thead th{text-align:center;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;word-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;line-height:1.22;font-size:clamp(.7rem,2.3vw + .52rem,.84rem);font-weight:700;letter-spacing:.015em;padding:.52rem .26rem}.roster-table .col-day{width:28%}.roster-table .col-shift{width:52%}.roster-table .col-break{width:20%;max-width:none}.roster-table tbody .roster-day-cell,.roster-table tbody .roster-shift-cell,.roster-table thead .col-day,.roster-table thead .col-shift{border-right:1px solid var(--border)}.roster-day-cell{text-align:center!important;white-space:normal;line-height:1.32;padding:.3rem .26rem!important;font-size:clamp(.68rem,2vw + .5rem,.8rem)!important}.roster-shift-cell{text-align:center!important;padding:.3rem .28rem!important}.roster-break-cell{padding:.3rem .18rem!important}.roster-table tbody td,.roster-table tbody th{padding:.32rem .22rem;vertical-align:middle;font-size:clamp(.72rem,2vw + .52rem,.84rem)}.roster-table .break-input,.roster-table .shift-input{box-sizing:border-box;width:100%;text-align:center;min-height:2.75rem;padding:.38rem .28rem;font-size:clamp(.76rem,2.2vw + .52rem,.88rem);line-height:1.2;overflow-wrap:anywhere;word-break:break-word}.roster-table .break-input{padding-inline:.16rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.break-input,.shift-input{text-align:center}}.break-input,.shift-input{width:100%;min-height:2.05rem;padding:.32rem .55rem;font-family:inherit;font-size:clamp(.8rem,.35vw + .72rem,.95rem);font-weight:500;color:var(--ink);background:var(--shift-input-bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.break-input{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.break-input::-webkit-inner-spin-button,.break-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.break-input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.break-input:hover,.shift-input:hover{border-color:rgba(148,163,184,.45)}.break-input:focus,.shift-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--shift-focus-ring);background:var(--shift-input-bg)}html[data-theme=dark] .break-input:focus,html[data-theme=dark] .shift-input:focus{border-color:var(--accent)}.break-input::placeholder,.shift-input::placeholder{color:var(--muted-dim);font-weight:400}.main{flex:1 1;display:flex;flex-direction:column;width:100%;min-height:0;overflow:hidden;padding-top:clamp(1.25rem,3.2vw,2.1rem)}.tabs-strip{flex-shrink:0;width:100%;max-width:min(var(--shell-max),calc(100vw - 2 * var(--gutter)));margin-inline:auto;padding:.5rem var(--gutter) .65rem;border-bottom:1px solid var(--border);background:var(--tabs-strip-bg)}.tabs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:none}.tab{position:relative;font-family:inherit;padding:.55rem 1.2rem;border-radius:999px;background:var(--tab-inactive-bg);border:1px solid var(--border);color:var(--muted);font-weight:600;font-size:.875rem;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}.tab:hover{color:var(--ink-soft);background:var(--tab-hover-bg);border-color:var(--border-strong);transform:translateY(-1px)}.tab.active,.tab[aria-selected=true]{color:var(--tab-active-fg);background:var(--tab-active-bg);border-color:transparent;box-shadow:var(--tab-active-shadow)}.tab.active:focus-visible,.tab.active:hover,.tab[aria-selected=true]:focus-visible,.tab[aria-selected=true]:hover{color:var(--tab-active-fg);background:var(--tab-active-bg);border-color:transparent;box-shadow:var(--tab-active-shadow);transform:translateY(-1px)}.tab.active:after{display:none}.table-stage{flex:1 1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;width:100%;max-width:min(var(--shell-max),calc(100vw - 2 * var(--gutter)));margin-inline:auto;padding-top:clamp(.65rem,2vw,1.25rem);padding-inline:var(--gutter);padding-bottom:clamp(.25rem,.85vw,.5rem)}.roster-hint{flex-shrink:0;width:100%;max-width:52rem;margin:clamp(.4rem,1.1vw,.65rem) auto clamp(.2rem,.55vw,.4rem);padding:0 .25rem;text-align:center;line-height:1.45;min-height:2.25rem;display:flex;align-items:center;justify-content:center}.roster-hint .roster-hours-total{margin-inline:auto}.theme-toggle{font-size:1.15rem;line-height:1}.weeks-grid{flex:0 1 auto;min-height:0;max-height:min(68dvh,calc(100dvh - 14rem));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-inline:auto}.card.week,.weeks-grid{width:100%;max-width:none}.card.week{margin:0 auto .55rem;padding:clamp(.45rem,1vw,.7rem) clamp(.55rem,1.5vw,.95rem);background:var(--surface);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:none;transition:border-color .2s ease}.card.week:hover,html[data-theme=dark] .card.week:hover{border-color:var(--border-strong);box-shadow:none}.roster-hours-total{flex:0 1 auto;max-width:100%;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:clamp(.82rem,.85vw + .72rem,.95rem);color:var(--accent-2,var(--accent));white-space:normal;text-align:center;line-height:1.35;padding:.28rem .65rem;border-radius:var(--radius-sm,.35rem);background:var(--accent-soft,color-mix(in srgb,var(--accent) 12%,transparent));border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.week-card__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem .9rem;margin-bottom:.62rem;text-align:center}.week-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.22rem .55rem}.week-range{font-size:clamp(.85rem,1vw,.95rem);font-weight:500}.muted{color:var(--muted)}.hidden{display:none!important}.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--table-wrap-bg)}.table-wrap,html[data-theme=dark] .table-wrap{box-shadow:none}.table-wrap::-webkit-scrollbar{height:10px;width:10px}.table-wrap::-webkit-scrollbar-track{background:var(--table-scroll-track-bg);border-radius:8px}.table-wrap::-webkit-scrollbar-thumb{background:var(--table-scroll-thumb-bg);border-radius:8px;border:2px solid var(--table-scroll-thumb-border)}.table-wrap{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--table-scroll-track-bg)}table{width:100%;min-width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--tabular)}thead th{font-size:clamp(.8rem,.5vw + .72rem,.95rem);font-weight:700;padding:clamp(.65rem,1.2vw,.95rem) clamp(.5rem,1.5vw,1rem);text-align:center;color:#f8fafc;border-right:1px solid rgba(0,0,0,.2);border-bottom:1px solid rgba(0,0,0,.25);letter-spacing:.02em;white-space:nowrap;position:-webkit-sticky;position:sticky;z-index:2;background-clip:padding-box}thead tr:first-child th{top:0;z-index:4;background:var(--thead-row1-grad);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.06)}thead tr:nth-child(2) th{top:var(--thead-sticky-2,52px);z-index:3;background:var(--thead-row2-grad);color:var(--thead-row2-fg);font-weight:600;font-size:clamp(.75rem,.45vw + .68rem,.88rem)}tbody tr:nth-child(odd){background:var(--row)}tbody tr:nth-child(2n){background:var(--row-alt)}tbody tr:hover{background:var(--row-hover)}.roster-table tbody tr.roster-row--today{background:var(--roster-today-row-bg)}.roster-table tbody tr.roster-row--today:hover{background:var(--roster-today-row-hover)}tbody td,tbody th{font-size:clamp(.8rem,.45vw + .72rem,.95rem);padding:clamp(.55rem,1vw,.85rem) clamp(.45rem,1.2vw,.95rem);border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;transition:background .15s ease;background:transparent}tbody th{color:#cbd5e1;font-weight:600;white-space:nowrap}tbody tr th:not(.dept){text-align:center;color:var(--ink-soft)}tbody th.dept{font-weight:800;color:#7dd3fc!important;text-align:center;vertical-align:middle;background:rgba(12,74,110,.55)!important;font-size:clamp(.72rem,.4vw + .68rem,.85rem);letter-spacing:.02em;line-height:1.35;max-width:11rem}html[data-theme=dark] tbody th.dept{color:#ddd6fe!important;background:rgba(76,29,149,.48)!important}.off{background:rgba(251,113,133,.12);color:#fda4af;font-weight:600;border:1px dashed rgba(251,113,133,.45);padding:.35rem .65rem;font-size:max(.75rem,.85em)}.badge,.off{border-radius:var(--radius-sm);display:inline-block}.badge{padding:.35rem .55rem;font-weight:700;color:#fff;font-size:max(.75rem,.88em);box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .15s ease,filter .15s ease}.badge:hover{transform:scale(1.04);filter:brightness(1.08)}.t-N{background:var(--night)}.t-7{background:var(--seven)}.badge.t-7.week-badge{border-radius:999px;padding:.3rem .75rem;color:#fff;background:linear-gradient(145deg,#4c1d95,#5b21b6 48%,#3b0764);border:1px solid hsla(0,0%,100%,.14);box-shadow:0 2px 12px rgba(59,7,100,.38)}.t-2{background:var(--two)}.t-9{background:var(--green)}.t-930{background:#0ea5e9}.t-1030{background:var(--amber);color:#1c1917}.t-730{background:#0891b2}.t-800{background:#ea580c}.t-1130{background:var(--red)}.week{opacity:0;transform:translateY(16px);transition:opacity .4s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1)}.week:not(.hidden){opacity:1;transform:translateY(0)}.site-footer{flex-shrink:0;gap:clamp(.95rem,2.8vw,1.45rem);margin-top:0;max-width:min(var(--shell-max),calc(100vw - 2 * var(--gutter)));box-sizing:border-box;padding:.4rem max(var(--gutter),env(safe-area-inset-left,0px)) calc(clamp(1.4rem, 3.8vw, 2.1rem) + env(safe-area-inset-bottom, 0px)) max(var(--gutter),env(safe-area-inset-right,0px));font-size:.8rem;color:var(--muted-dim);text-align:center;border-top:1px solid var(--border);background:var(--footer-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.site-footer,.site-footer__credit-wrap{display:flex;flex-direction:column;align-items:center;margin-inline:auto;width:100%}.site-footer__credit-wrap{justify-content:center;gap:.35rem;max-width:40rem}.site-footer__credit{margin:0;max-width:40rem;line-height:1.45;text-align:center}.site-footer__maker{display:inline-block;line-height:0;opacity:.88;transition:opacity .15s ease}.site-footer__maker:hover{opacity:1}.site-footer__maker:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.site-footer__maker-logo{display:block;height:1.55rem;width:auto;max-width:7.25rem;object-fit:contain}.site-footer--solo{gap:.5rem}.site-chrome{min-height:100vh;min-height:100dvh;min-height:100svh;height:100%;display:flex;flex-direction:column}.site-chrome,.site-chrome>:first-child{width:100%;max-width:100%;box-sizing:border-box}.site-chrome>:first-child{flex:1 0 auto;min-height:0;min-width:0}.site-footer--global{flex-shrink:0;position:relative;z-index:2}.site-footer .lang-dropdown__toggle{min-height:2.35rem;min-width:2.35rem;font-size:.78rem;padding:.26rem .4rem}html:not([data-theme=dark]) .site-footer{backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--muted)}button:disabled{opacity:.65;cursor:not-allowed}button.loading{animation:pulseGlow 1.1s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 rgba(124,58,237,.35)}50%{box-shadow:0 0 0 10px rgba(124,58,237,0)}}button.loading .spinner-spin{display:inline-block;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}button.loading .spinner-bounce{display:inline-block;animation:bounce .55s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}body,html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px;border:2px solid var(--bg-deep)}::-webkit-scrollbar-thumb:hover{background:var(--accent);opacity:.85}@media (min-width:641px) and (max-width:1024px){:root{--shell-max:920px}.break-input,.shift-input{min-height:2.35rem;font-size:clamp(.85rem,1.2vw,.95rem)}.tab{padding:.62rem 1.25rem;font-size:.9rem;min-height:2.75rem}.card.week{padding:clamp(.65rem,1.8vw,.95rem) clamp(.75rem,2.2vw,1.15rem)}.table-wrap{border-radius:var(--radius-md)}}@media (max-width:900px){.toolbar{justify-content:center}}@media (max-width:640px){html{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;text-size-adjust:100%}body,html{height:auto;max-height:none}body{min-height:100%;min-height:100dvh;min-height:100svh;overflow-x:clip;overflow-y:visible}.admin-field__input,.admin-toolbar__input,.admin-toolbar__select,.login-form__input,.login-modal .login-form__input{font-size:max(16px,1rem)!important}.login-form__input--invite,.roster-table .break-input,.roster-table .shift-input{font-size:max(16px,.95rem)!important}.app{min-height:100dvh;height:auto;max-height:none;overflow:visible;display:flex;flex-direction:column}.main{flex:1 0 auto;padding-top:clamp(.5rem,2vw,.95rem)}.main,.table-stage{min-height:0;overflow:visible}.table-stage{flex:0 0 auto;padding-top:.4rem;padding-inline:clamp(10px,3.2vw,var(--gutter));padding-bottom:.15rem}.roster-hint{font-size:clamp(.65rem,2vw + .48rem,.78rem);line-height:1.32;margin:.3rem auto .12rem;max-width:100%;padding-inline:.35rem}.weeks-grid{max-height:none;overflow:visible;flex:0 0 auto;min-height:0}.card.week .table-wrap{overflow-x:hidden;overflow-y:visible}.tabs-strip{padding:.3rem var(--gutter) .4rem}.top-bar__inner{padding:clamp(.55rem,1.8vw,.85rem) var(--gutter);gap:.55rem .85rem}.top-bar__actions{--header-action-size:2.35rem;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;max-width:none;margin-inline:auto}.brand h1{font-size:clamp(1.35rem,5vw + .4rem,1.85rem)}.roster-controls{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:.32rem clamp(.28rem,1.2vw,.55rem);padding:.28rem var(--gutter) .32rem}.roster-controls .month-field{width:min(10.5rem,calc(100vw - 7.75rem));min-width:0;max-width:min(10.5rem,calc(100vw - 7.75rem));font-size:.78rem;min-height:2.1rem;height:2.1rem;padding:.28rem .38rem}.roster-controls .btn--icon{width:2.05rem;height:2.05rem;min-width:2.05rem;font-size:1rem}.view-toggle .seg-btn{padding:.34rem .52rem;font-size:.74rem;min-height:2.05rem}.lang-dropdown,.toolbar{justify-content:center}.toolbar{width:auto}.toolbar .btn:not(.btn--icon){width:100%;max-width:min(320px,100%);justify-content:center;text-align:center}.tabs{justify-content:center;gap:.35rem}.tab{flex:0 1 auto;text-align:center;min-width:min(5.5rem,22vw);max-width:min(9.5rem,34vw);padding:.38rem .65rem;font-size:.78rem;min-height:0}.card.week{padding:.45rem clamp(6px,2.4vw,10px);margin-bottom:.4rem;border-radius:var(--radius-md)}.week-card__meta{margin-bottom:.45rem;gap:.3rem .5rem}.week-range{font-size:clamp(.78rem,2.2vw + .55rem,.88rem)}.roster-period-badge{font-size:.68rem}.table-wrap{margin-inline:auto;max-width:100%;overflow-x:hidden;overflow-y:visible}.site-footer{gap:.55rem;padding:.3rem var(--gutter) calc(.95rem + env(safe-area-inset-bottom, 0px));font-size:.74rem}.site-footer .lang-dropdown__toggle{min-height:2.1rem;min-width:2.1rem;padding:.22rem .35rem}}@media (max-width:480px){:root{--gutter:clamp(10px,3.5vw,18px)}.brand h1{font-size:clamp(1.22rem,5.5vw + .35rem,1.48rem)}.btn{font-size:.85rem;padding:.52rem .95rem}.view-toggle .seg-btn{padding:.32rem .45rem;font-size:.7rem;min-height:1.95rem}.week-card__meta{flex-direction:column;gap:.35rem}.roster-controls .month-field{width:min(9.25rem,calc(100vw - 6.85rem));max-width:min(9.25rem,calc(100vw - 6.85rem));font-size:.74rem}.roster-hint{font-size:clamp(.62rem,1.8vw + .45rem,.74rem);margin-top:.25rem}.top-bar__actions{--header-action-size:2.2rem;gap:.4rem .5rem}.roster-table .col-day{width:26%}.roster-table .col-shift{width:54%}.roster-table .col-break{width:20%}.roster-table thead th{font-size:clamp(.66rem,2.4vw + .42rem,.78rem);padding:.46rem .18rem;line-height:1.18}.roster-table tbody td,.roster-table tbody th{padding:.28rem .16rem}.roster-table .break-input,.roster-table .shift-input{min-height:2.6rem;padding:.34rem .2rem;font-size:clamp(.74rem,2.6vw + .48rem,.86rem)}.roster-table .break-input{padding-inline:.12rem}.roster-day-cell{padding-inline:.2rem!important;font-size:clamp(.66rem,2.2vw + .45rem,.76rem)!important}}@media (min-width:1600px){table:not(.roster-table){font-size:1.02rem}table:not(.roster-table) tbody td,table:not(.roster-table) tbody th,table:not(.roster-table) thead th{padding:1rem 1.1rem}.roster-table thead th{padding:clamp(.55rem,1.1vw,.8rem) .9rem}.roster-table tbody td,.roster-table tbody th{padding:.32rem .6rem}.roster-table .break-input,.roster-table .shift-input{min-height:2.1rem;font-size:.9rem}}.landing{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--gutter)}.landing__card{width:100%;max-width:26rem;padding:clamp(1.5rem,4vw,2rem);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);text-align:center}.landing__title{font-size:clamp(1.5rem,4vw,1.85rem);font-weight:800;margin-bottom:.75rem;color:var(--ink)}.landing .app-brand-mark .landing__title{margin-bottom:0}.landing__lead{color:var(--muted);font-size:.95rem;line-height:1.5;margin-bottom:1.25rem}.landing__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center}.landing__btn{min-width:8rem}.login-page{min-height:100dvh;min-height:100svh;flex-direction:column;align-items:stretch;padding-top:max(var(--gutter),env(safe-area-inset-top,0px));padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));padding-bottom:0}.login-page,.login-page__main{display:flex;width:100%;max-width:100%;box-sizing:border-box}.login-page__main{flex:1 1;align-items:center;justify-content:center;padding-bottom:var(--gutter)}.login-card{width:100%;max-width:min(22rem,100%);padding:clamp(1.35rem,3.5vw,1.75rem);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.login-card__brand-stack{text-align:center;margin-bottom:1.1rem}.login-card .app-brand-mark{justify-content:center;margin-bottom:.35rem}.login-card__brand-title{font-size:clamp(1.35rem,4vw,1.75rem);font-weight:800;color:var(--ink);letter-spacing:-.02em}.login-card__subtitle{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink-soft)}.login-form{gap:.85rem}.login-form,.login-form__label{display:flex;flex-direction:column}.login-form__label{gap:.35rem;font-size:.82rem;font-weight:600;color:var(--ink-soft);text-align:left}.login-form__input{font:inherit;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--shift-input-bg);color:var(--ink)}.login-form__error{color:var(--red);font-size:.85rem}.login-form__label--compact{gap:.28rem}.login-form__label-text{font-size:.78rem}.login-form__input--invite{max-width:11rem;padding:.38rem .55rem;font-size:.82rem}.login-form__hint{font-size:.68rem;line-height:1.38;color:var(--muted);font-weight:500;margin-top:.1rem}.admin-settings-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.admin-settings-form .admin-field{flex:1 1 12rem;min-width:0;max-width:22rem}.login-form__submit{width:100%;margin-top:.25rem}.login-card__register-btn{width:100%;margin-top:.75rem}.login-card__free-note{margin:.65rem 0 0;font-size:.76rem;font-style:italic;color:var(--muted);text-align:center;line-height:1.45}.login-card__notice{margin:0 0 .85rem;padding:.65rem .75rem;font-size:.88rem;line-height:1.45;text-align:center;color:var(--ink-soft);background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:var(--radius-sm)}.login-modal{margin:auto;padding:0;border:none;width:100%;max-width:min(22rem,calc(100vw - 1.25rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));background:transparent;box-sizing:border-box}.login-modal::-webkit-backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.login-modal::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}html[data-theme=dark] .login-modal::-webkit-backdrop{background:rgba(0,0,0,.65)}html[data-theme=dark] .login-modal::backdrop{background:rgba(0,0,0,.65)}.login-modal__panel{padding:clamp(1.25rem,3vw,1.55rem);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:0 25px 50px -12px rgba(0,0,0,.28)}.login-modal__title{margin:0 0 1rem;font-size:1.15rem;font-weight:800;color:var(--ink);text-align:center}.login-modal__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-top:.35rem}.login-card__footer{margin-top:1rem;font-size:.85rem}.login-card__footer a{color:var(--accent);font-weight:600;text-decoration:none}.top-bar__logout-form{display:inline-flex;margin:0;align-items:center}html:has(.admin-shell){height:auto;max-height:none;overflow-x:hidden;overflow-y:auto;text-size-adjust:100%}html:has(.admin-shell) body{height:auto;min-height:100dvh;min-height:100svh;max-height:none;overflow-x:clip;overflow-y:auto}html:has(.login-page){height:auto;max-height:none;overflow-x:hidden;overflow-y:auto;text-size-adjust:100%}html:has(.login-page) body{height:auto;min-height:100dvh;min-height:100svh;max-height:none;overflow-x:clip;overflow-y:auto}.admin-shell{position:relative;min-height:100dvh;min-height:100svh;width:100%;max-width:100%;box-sizing:border-box;background:var(--body-gradient)}.admin-shell__bg{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse 70% 42% at 100% 0,color-mix(in srgb,var(--accent) 14%,transparent),transparent 58%),radial-gradient(ellipse 55% 36% at 0 100%,color-mix(in srgb,var(--hdr-mid) 10%,transparent),transparent 52%);opacity:.85;z-index:0}.admin-page{position:relative;z-index:1;max-width:min(1120px,calc(100vw - 2 * var(--gutter)));margin:0 auto;padding:clamp(1rem,3vw,1.35rem) var(--gutter) 2.5rem;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));width:100%;box-sizing:border-box}.admin-topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1.35rem;padding:1rem 1.15rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md)}.admin-topbar .app-brand-mark{align-items:center}.admin-topbar__title{font-size:clamp(1.35rem,3.2vw,1.65rem);font-weight:800;letter-spacing:-.03em;background:linear-gradient(120deg,var(--title-g1) 0,var(--title-g2) 55%,var(--ink-soft) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme=dark] .admin-topbar__title{background:linear-gradient(120deg,var(--ink) 0,var(--accent) 55%,var(--muted) 100%);-webkit-background-clip:text;background-clip:text}.admin-topbar__meta{margin:.35rem 0 0;font-size:.84rem;color:var(--muted);line-height:1.45;max-width:36rem}.admin-topbar__email{color:var(--ink-soft);font-weight:600}.admin-topbar__pill{display:inline-block;padding:.12rem .45rem;border-radius:999px;font-size:.75rem;font-weight:700;color:var(--accent-2);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}html[data-theme=dark] .admin-topbar__pill{color:var(--ink)}.admin-topbar__nav{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.admin-topbar__logout{margin:0;display:inline-flex}.admin-toast{margin-bottom:1rem;padding:.65rem .85rem;border-radius:var(--radius-md);font-size:.88rem;font-weight:600;border:1px solid var(--border)}.admin-toast--ok{color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface-solid));border-color:color-mix(in srgb,var(--green) 28%,var(--border))}.admin-toast--err{color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--surface-solid));border-color:color-mix(in srgb,var(--red) 25%,var(--border))}.admin-skeleton-grid{display:grid;grid-gap:.85rem;gap:.85rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem}@media (max-width:820px){.admin-skeleton-grid{grid-template-columns:repeat(2,1fr)}}.admin-skeleton{border-radius:var(--radius-md);background:linear-gradient(110deg,var(--bg-elevated) 8%,var(--row-alt) 18%,var(--bg-elevated) 33%);background-size:200% 100%;animation:admin-shimmer 1.1s ease-in-out infinite;min-height:3.25rem}.admin-skeleton--stat{min-height:4.5rem}.admin-skeleton--wide{grid-column:1/-1;min-height:8rem}@keyframes admin-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1.1rem}@media (max-width:820px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-stat{padding:1rem 1.05rem;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.2rem}.admin-stat--accent{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:var(--shadow-sm),0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}.admin-stat__value{font-size:1.65rem;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-stat__label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.admin-stat__hint{font-size:.72rem;color:var(--muted-dim);margin-top:.15rem}.admin-card{margin-bottom:1.1rem;padding:1.1rem 1.15rem 1.15rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md)}.admin-card--alert{border-color:color-mix(in srgb,var(--amber) 42%,var(--border));background:linear-gradient(145deg,var(--surface) 0,color-mix(in srgb,var(--amber) 6%,var(--surface-solid)) 100%)}.admin-card__head{margin-bottom:1rem}.admin-card__head--row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:flex-start}.admin-card__title{margin:0;font-size:1.05rem;font-weight:800;color:var(--ink);letter-spacing:-.02em}.admin-card__lead{margin:.35rem 0 0;font-size:.86rem;line-height:1.5;color:var(--muted);max-width:46rem}.admin-inline-notice{margin:0 0 .85rem;padding:.55rem .7rem;font-size:.84rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--ink-soft)}.admin-inline-notice--warn{border-color:color-mix(in srgb,var(--amber) 35%,var(--border));background:color-mix(in srgb,var(--amber) 8%,var(--surface-solid))}.admin-create-form{display:grid;grid-gap:.85rem;gap:.85rem;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}@media (max-width:900px){.admin-create-form{grid-template-columns:1fr}}.admin-create-form__submit{display:flex;align-items:flex-end}.admin-create-form__submit .btn{width:100%}.admin-field{display:flex;flex-direction:column;gap:.35rem}.admin-field__label{font-size:.78rem;font-weight:700;color:var(--ink-soft)}.admin-field__input{font:inherit;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--shift-input-bg);color:var(--ink)}.admin-field__readonly{margin:0;padding:.45rem .55rem;font-size:.88rem;color:var(--muted);background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px dashed var(--border)}.admin-field--checkbox{flex-direction:row;align-items:center;gap:.5rem;font-size:.88rem;font-weight:600;color:var(--ink-soft);cursor:pointer}.admin-field--checkbox input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end;margin-bottom:.85rem}.admin-toolbar__search{flex:1 1 12rem;min-width:0}.admin-toolbar__input{width:100%;font:inherit;padding:.5rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--shift-input-bg);color:var(--ink)}.admin-toolbar__filters{display:flex;flex-wrap:wrap;gap:.5rem}.admin-toolbar__filter{display:flex;flex-direction:column;gap:.25rem}.admin-toolbar__filter-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.admin-toolbar__select{font:inherit;min-width:9.5rem;padding:.45rem .55rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--shift-input-bg);color:var(--ink)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--table-wrap-bg)}.admin-table-wrap--flush{margin-left:-1.15rem;margin-right:-1.15rem;margin-bottom:-1.15rem;border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--border)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table td,.admin-table th{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody td{padding:.45rem .75rem}.admin-table thead th{font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.22);background:var(--thead-row1-grad);border-bottom:1px solid hsla(0,0%,100%,.14);padding:.5rem .75rem}.admin-table tbody tr:hover{background:var(--row-hover)}.admin-table__th-actions{text-align:right;min-width:5.25rem;width:1%;white-space:nowrap}.admin-table__actions{text-align:right;vertical-align:middle;white-space:nowrap;width:1%;padding-block:.35rem}.admin-table__email{display:block;font-weight:600;color:var(--ink);word-break:break-word}.admin-table__meta{display:block;font-size:.72rem;color:var(--muted-dim);margin-top:.12rem}.admin-table__num{text-align:right;color:var(--ink-soft)}.admin-table__date,.admin-table__num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-table__date{color:var(--muted)}.admin-table__dash{color:var(--muted-dim);font-size:.9rem}.admin-badge{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em}.admin-badge--user{color:var(--night);background:color-mix(in srgb,var(--night) 12%,var(--surface-solid));border:1px solid color-mix(in srgb,var(--night) 22%,transparent)}.admin-badge--staff{color:var(--accent-2);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}html[data-theme=dark] .admin-badge--staff{color:var(--ink)}.admin-status{font-size:.78rem;font-weight:700;padding:.18rem .45rem;border-radius:var(--radius-sm)}.admin-status--ok{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent)}.admin-status--wait{color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent)}.admin-btn--danger{color:var(--red)!important}.admin-btn--danger:hover{background:color-mix(in srgb,var(--red) 10%,var(--btn-ghost-bg-hover))!important}.admin-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-dialog{margin:auto;padding:0;border:none;max-width:calc(100vw - 1.5rem);width:26rem;background:transparent}.admin-dialog::-webkit-backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.admin-dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}html[data-theme=dark] .admin-dialog::-webkit-backdrop{background:rgba(0,0,0,.62)}html[data-theme=dark] .admin-dialog::backdrop{background:rgba(0,0,0,.62)}.admin-dialog__panel{padding:1.15rem 1.2rem 1.2rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:0 28px 60px -20px rgba(0,0,0,.35)}.admin-dialog__header{margin-bottom:1rem}.admin-dialog__title{margin:0;font-size:1.15rem;font-weight:800;color:var(--ink)}.admin-dialog__subtitle{margin:.3rem 0 0;font-size:.84rem;color:var(--muted);word-break:break-all}.admin-dialog__form{display:flex;flex-direction:column;gap:.85rem}.admin-dialog__error{margin:0;font-size:.84rem;font-weight:600;color:var(--red)}.admin-dialog__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.admin-view-dl{margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.55rem}.admin-view-dl__row{display:grid;grid-template-columns:8.5rem 1fr;grid-gap:.5rem .75rem;gap:.5rem .75rem;font-size:.88rem;align-items:baseline}@media (max-width:400px){.admin-view-dl__row{grid-template-columns:1fr}}.admin-view-dl__row dt{margin:0;font-weight:700;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.admin-view-dl__row dd{margin:0;color:var(--ink);font-weight:600;word-break:break-word}.admin-table__action-row{display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:.05rem;justify-content:flex-end;align-items:center}.admin-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease,transform .15s ease}.admin-icon-btn svg{width:.95rem;height:.95rem;flex-shrink:0}.admin-icon-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-2);transform:translateY(-1px)}html[data-theme=dark] .admin-icon-btn:hover:not(:disabled){color:var(--accent)}.admin-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-icon-btn:disabled{cursor:not-allowed;opacity:.35;transform:none}.admin-icon-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}.admin-icon-btn--danger:focus-visible{outline-color:var(--red)}.admin-page__error{color:var(--red);margin-bottom:1rem}.admin-section{margin-bottom:2rem}.admin-section h2{font-size:1.05rem;font-weight:700;margin-bottom:.75rem;color:var(--ink-soft)}.admin-section__hint{font-size:.86rem;color:var(--muted);line-height:1.45;margin:-.25rem 0 .85rem;max-width:40rem}.admin-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-form__input{font:inherit;padding:.45rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--shift-input-bg);color:var(--ink);min-width:10rem}.admin-table__del{font-size:.8rem;padding:.35rem .55rem}.app-brand-mark{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap;min-width:0}.landing .app-brand-mark{justify-content:center;margin-bottom:.35rem}.app-brand-mark__icon{flex-shrink:0;border-radius:10px;box-shadow:var(--shadow-sm),0 6px 20px rgba(91,33,182,.22)}.app-brand-mark__title{margin:0;line-height:1.12}