@font-face{font-family:poppins;src:url(/_next/static/media/da25ec4a02bc2c64-s.p.ttf) format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:poppins;src:url(/_next/static/media/9a29a5714fdf2de9-s.p.ttf) format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:poppins;src:url(/_next/static/media/604a0b4bab2e51ad-s.p.ttf) format("truetype");font-display:swap;font-weight:900;font-style:normal}@font-face{font-family:poppins Fallback;src:local("Arial");ascent-override:93.08%;descent-override:31.03%;line-gap-override:8.87%;size-adjust:112.80%}.__className_54f7dc{font-family:poppins,poppins Fallback}.__variable_54f7dc{--font-poppins:"poppins","poppins Fallback"}@font-face{font-family:playfairDisplay;src:url(/_next/static/media/d5465c14549382d3-s.p.ttf) format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:playfairDisplay;src:url(/_next/static/media/a4784f5d67403b9b-s.p.ttf) format("truetype");font-display:swap;font-weight:900;font-style:normal}@font-face{font-family:playfairDisplay Fallback;src:local("Arial");ascent-override:106.51%;descent-override:24.71%;line-gap-override:0.00%;size-adjust:101.58%}.__className_173e32{font-family:playfairDisplay,playfairDisplay Fallback}.__variable_173e32{--font-playfair-display:"playfairDisplay","playfairDisplay Fallback"}:root{--torch-coral:#ed6767;--torch-gold:#eeb75f;--torch-yellow:#eceb67;--torch-purple:#713c97;--torch-lavender:#adaed7;--torch-green:#289a48;--torch-lime:#93cc86;--torch-neutral-100:#f1f1f1;--torch-neutral-300:#d3d3d3;--torch-neutral-700:#7f8080;--torch-neutral-900:#2c2c2c;--torch-white:#ffffff;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 16px 32px rgba(44,44,44,0.1);--shadow-soft:0 8px 20px rgba(44,44,44,0.06)}[data-theme=dark]{--torch-neutral-100:#1e1e1e;--torch-neutral-300:#3a3a3a;--torch-neutral-700:#a0a1a1;--torch-neutral-900:#f0f0f0;--torch-white:#141414;--shadow-card:0 16px 32px rgba(0,0,0,0.4);--shadow-soft:0 8px 20px rgba(0,0,0,0.3)}[data-theme=dark] body{background:radial-gradient(840px 520px at -5% -15%,rgba(180,60,60,.12),transparent 55%),radial-gradient(740px 420px at 108% -5%,rgba(180,130,50,.1),transparent 52%),radial-gradient(680px 420px at 100% 100%,rgba(60,130,70,.09),transparent 56%),linear-gradient(180deg,#141414,#1a1a1a 45%,#1e1e1e)}[data-theme=dark] .topbar{background:linear-gradient(160deg,rgba(30,30,30,.97),rgba(22,22,22,.96));border-color:rgba(255,255,255,.08)}[data-theme=dark] .card{background:rgba(22,22,22,.95);border-color:rgba(255,255,255,.07)}[data-theme=dark] .surface{background:linear-gradient(180deg,rgba(32,32,32,.94),rgba(28,28,28,.88));border-color:rgba(255,255,255,.07)}[data-theme=dark] .admin-collapsible,[data-theme=dark] .admin-inline-expander{background:rgba(28,28,28,.95);border-color:rgba(255,255,255,.08)}[data-theme=dark] .admin-collapsible-title{color:#f0f0f0}[data-theme=dark] .admin-collapsible-meta,[data-theme=dark] .roster-activity-meta,[data-theme=dark] .roster-activity-path,[data-theme=dark] .roster-subtle{color:#a0a1a1}[data-theme=dark] .input,[data-theme=dark] .select,[data-theme=dark] .textarea{background:#1e1e1e;border-color:#3a3a3a;color:#f0f0f0}[data-theme=dark] .button-ghost{background:#1e1e1e;color:#c0c1c1;border-color:#3a3a3a}[data-theme=dark] .app-footer,[data-theme=dark] .bottom-nav,[data-theme=dark] .urgent-banner{background:rgba(20,20,20,.97);border-color:rgba(255,255,255,.1)}[data-theme=dark] .schedule-table{background:#1a1a1a}[data-theme=dark] .schedule-table th{background:rgba(30,30,30,.85)}[data-theme=dark] .schedule-table td,[data-theme=dark] .schedule-table th{border-color:rgba(255,255,255,.06)}[data-theme=dark] .nav-link{color:#9a9b9b}[data-theme=dark] .nav-link-active{background:rgba(237,103,103,.2);border-color:rgba(237,103,103,.5);color:#f08080}[data-theme=dark] .nav-more-menu{background:rgba(22,22,22,.98);border-color:rgba(255,255,255,.08)}[data-theme=dark] .row-menu summary{background:rgba(28,28,28,.95);border-color:rgba(255,255,255,.14);color:#c0c1c1}[data-theme=dark] .admin-stat-sub,[data-theme=dark] .roster-activity-details summary,[data-theme=dark] .row-menu summary:after{color:#a0a1a1}[data-theme=dark] .row-menu-panel{background:rgba(28,28,28,.95);border-color:rgba(255,255,255,.08)}[data-theme=dark] .row-menu-item-danger{border-top-color:rgba(255,255,255,.08)}[data-theme=dark] .view-as-controls .schedule-table-action:not(.view-as-current):hover,[data-theme=dark] .view-as-controls summary:hover,[data-theme=dark] .view-as-controls[open] summary,[data-theme=dark] .view-as-current{border-color:rgba(173,174,215,.5);background:rgba(173,174,215,.16);color:#d5d5f2}[data-theme=dark] .modal-backdrop{background:rgba(0,0,0,.6)}[data-theme=dark] .modal-card{background:rgba(28,28,28,.98);border-color:rgba(255,255,255,.14)}[data-theme=dark] .checkin-note{background:rgba(240,200,90,.12)}[data-theme=dark] .mobile-nav-panel{background:rgba(22,22,22,.98);border-color:rgba(255,255,255,.08)}[data-theme=dark] .nav-more-link{color:#c0c1c1}[data-theme=dark] .nav-more-link-active,[data-theme=dark] .nav-more-link:hover{background:rgba(237,103,103,.2);color:#f08080}[data-theme=dark] .bottom-nav-link{color:#9a9b9b}[data-theme=dark] .bottom-nav-link-active{background:rgba(237,103,103,.2);border-color:rgba(237,103,103,.5);color:#f08080}[data-theme=dark] .muted{color:#b1b2b2}[data-theme=dark] .text-link{color:#ad8cd7}[data-theme=dark] .empty{background:rgba(255,255,255,.04);color:#a0a1a1}[data-theme=dark] .timeline-shell{background:rgba(22,22,22,.95);border-color:rgba(255,255,255,.08)}[data-theme=dark] .timeline-scale{background:rgba(28,28,28,.85);border-color:rgba(255,255,255,.08)}[data-theme=dark] .timeline-scale-tick span{color:#a0a1a1}[data-theme=dark] .timeline-lane{background:repeating-linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.055) 1px,transparent 0,transparent 96px),linear-gradient(180deg,rgba(26,26,26,.98),rgba(22,22,22,.95));border-color:rgba(255,255,255,.07)}[data-theme=dark] .timeline-block-title{color:#e8e9e9}[data-theme=dark] .timeline-block-time{color:rgba(231,232,232,.86)}[data-theme=dark] .timeline-block-location{color:rgba(230,231,231,.82)}[data-theme=dark] .timeline-block-meta{color:rgba(220,221,221,.78)}[data-theme=dark] .timeline-block-group-label{color:rgba(220,221,221,.82)}[data-theme=dark] .student-schedule-group-label{color:rgba(180,181,181,.85)}[data-theme=dark] .app-footer-help span,[data-theme=dark] .schedule-item-detail,[data-theme=dark] .schedule-item-details summary,[data-theme=dark] .schedule-item-meta,[data-theme=dark] .student-schedule-location,[data-theme=dark] .urgent-banner-item span{color:#d6d7d7}[data-theme=dark] .schedule-item-details{background:rgba(34,34,34,.78);border-color:rgba(255,255,255,.08)}[data-theme=dark] .timeline-legend-chip{background:rgba(44,44,44,.86);border-color:rgba(255,255,255,.12);color:#b0b1b1}[data-theme=dark] .brand-kicker{color:#b1b2b2}[data-theme=dark] .schedule-duration{color:#a0a1a1}[data-theme=dark] .schedule-detail{color:#c8c9c9}[data-theme=dark] .schedule-item-badge-lead{color:#d7bdf0;background:rgba(113,60,151,.28);border-color:rgba(180,140,220,.4)}[data-theme=dark] .guild-balance-bar{background:rgba(30,30,30,.9);border-color:rgba(255,255,255,.12)}[data-theme=dark] .guild-balance-title{color:#b1b2b2}[data-theme=dark] .guild-balance-row{border-bottom-color:rgba(255,255,255,.08)}[data-theme=dark] .guild-board-team-header{color:#b1b2b2}[data-theme=dark] .guild-pref-descriptions{background:rgba(30,30,30,.85);border-color:rgba(255,255,255,.12)}[data-theme=dark] .guild-pref-desc-item{border-bottom-color:rgba(255,255,255,.08)}[data-theme=dark] .schedule-label{color:#a8a9a9}[data-theme=dark] .schedule-view-tabs{background:rgba(20,20,20,.78)}[data-theme=dark] .schedule-view-tab{background:rgba(30,30,30,.95);color:#c0c1c1}[data-theme=dark] .schedule-view-tab:hover{background:rgba(173,174,215,.18);color:#d5c3ed}[data-theme=dark] .schedule-view-tab.active{background:var(--torch-coral);color:#fff}[data-theme=dark] .schedule-view-tab.active:hover{background:#d65555;color:#fff}[data-theme=dark] .schedule-view-tab:focus-visible{outline-color:#f0f0f0}[data-theme=dark] .schedule-card{background:rgba(28,28,28,.95);border-color:rgba(255,255,255,.08)}[data-theme=dark] .schedule-card-action{background:rgba(28,28,28,.9);color:#c0c1c1}[data-theme=dark] .schedule-jump-link{background:rgba(30,30,30,.9);color:#b8b9b9;border-color:rgba(255,255,255,.12)}[data-theme=dark] .schedule-jump-link:hover{border-color:rgba(173,174,215,.4);color:#ad8cd7}[data-theme=dark] .day-tab{background:rgba(30,30,30,.9);color:#b8b9b9;border-color:rgba(255,255,255,.12)}[data-theme=dark] .day-tab:hover{border-color:rgba(173,174,215,.35);color:#c8c9c9}[data-theme=dark] .day-tab-active{border-color:var(--torch-purple);background:rgba(113,60,151,.2);color:#c9a8e8}[data-theme=dark] .resource-item{background:rgba(28,28,28,.9);border-color:rgba(255,255,255,.08)}[data-theme=dark] .schedule-view-tabs{border-color:rgba(255,255,255,.12)}[data-theme=dark] .mobile-menu-toggle{border-color:rgba(255,255,255,.15);background:rgba(30,30,30,.8);color:#c0c1c1}[data-theme=dark] .mobile-menu-toggle-active{background:rgba(237,103,103,.18);border-color:rgba(237,103,103,.35);color:#f08080}[data-theme=dark] .mobile-menu-divider,[data-theme=dark] .mobile-menu-utils{border-color:rgba(255,255,255,.08)}[data-theme=dark] .mobile-menu-footer{color:#a0a1a1}[data-theme=dark] .mobile-menu-help strong{color:#c0c1c1}[data-theme=dark] .mobile-menu-legal-links a{color:#a0a1a1}[data-theme=dark] .timeline-single-location{color:#b0b1b1}[data-theme=dark] .timeline-single-location strong{color:#c0c1c1}[data-theme=dark] .timeline-timezone{color:#a0a1a1}[data-theme=dark] .timeline-conflicts{color:#f08080;background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.35)}[data-theme=dark] .team-roster-card{background:rgba(28,28,28,.95);border-color:rgba(255,255,255,.08)}[data-theme=dark] .team-roster-card-unassigned{background:rgba(238,183,95,.06);border-color:rgba(238,183,95,.3)}[data-theme=dark] .team-roster-role-label{color:#a0a1a1}[data-theme=dark] .roster-checkout-toggle{background:rgba(30,30,30,.82);border-color:rgba(255,255,255,.15);color:#c0c1c1}.theme-toggle{background:none;border:1px solid rgba(44,44,44,.18);border-radius:999px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#5f6060;transition:border-color .12s ease,color .12s ease;flex-shrink:0}.theme-toggle:hover{border-color:rgba(113,60,151,.3);color:var(--torch-purple)}[data-theme=dark] .theme-toggle{border-color:rgba(255,255,255,.15);color:#c0c1c1}[data-theme=dark] .theme-toggle:hover{border-color:rgba(173,174,215,.4);color:#ad8cd7}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-poppins),sans-serif;color:var(--torch-neutral-900);background:radial-gradient(840px 520px at -5% -15%,rgba(237,103,103,.18),transparent 55%),radial-gradient(740px 420px at 108% -5%,rgba(238,183,95,.2),transparent 52%),radial-gradient(680px 420px at 100% 100%,rgba(147,204,134,.17),transparent 56%),linear-gradient(180deg,#ffffff,#f7f7f7 45%,#f1f1f1);min-height:100vh;line-height:1.45}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1.25rem}.auth-card{width:min(560px,100%);background:var(--torch-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid rgba(44,44,44,.09);padding:1.5rem;position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,var(--torch-coral) 0,var(--torch-gold) 33%,var(--torch-yellow) 66%,var(--torch-purple) 100%)}.brand-lockup{display:flex;align-items:center;gap:.8rem}.theme-logo-stack{display:inline-flex;align-items:center}.theme-logo-light{display:block}.theme-logo-dark,[data-theme=dark] .theme-logo-light{display:none}[data-theme=dark] .theme-logo-dark{display:block}.brand-lockup h1{margin:0;font-family:var(--font-playfair-display),serif;font-size:clamp(1.65rem,3vw,2rem);letter-spacing:.015em}.brand-kicker{margin:.7rem 0 0;color:#555555}.surface{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-md);background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.88));box-shadow:var(--shadow-soft)}.surface-pad{padding:.85rem}.surface-pad-sm{padding:.8rem}.surface-pad-md{padding:.9rem}.stack{display:grid;grid-gap:1rem;gap:1rem}.stack-sm{display:grid;grid-gap:.45rem;gap:.45rem}.mobile-only{display:none}.desktop-only{display:block}.field{display:grid;grid-gap:.4rem;gap:.4rem}.label{font-weight:700;font-size:.9rem}.input,.select,.textarea{width:100%;border:1px solid var(--torch-neutral-300);border-radius:var(--radius-sm);padding:.75rem .8rem;font:inherit;color:var(--torch-neutral-900);background:var(--torch-white)}.textarea{min-height:7rem;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid rgba(113,60,151,.28);border-color:var(--torch-purple)}.button{border:0;border-radius:999px;padding:.68rem 1rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{opacity:.7;cursor:not-allowed;transform:none}.button-primary{background:linear-gradient(132deg,var(--torch-purple),#5f2f81 54%,#8c4fbc);color:var(--torch-white);box-shadow:0 6px 18px rgba(113,60,151,.3)}.button-primary:hover{filter:brightness(1.04)}.button-secondary{background:rgba(237,103,103,.13);color:#882d2d}.button-sm{font-size:.8rem;padding:.28rem .75rem;min-height:32px}.button-ghost{background:var(--torch-white);color:#5c5d5d;border:1px solid var(--torch-neutral-300)}.button-ghost:hover{border-color:rgba(113,60,151,.35);color:var(--torch-purple)}.pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.22rem .62rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pill-sm{padding:.1rem .45rem;font-size:.65rem}.pill-student{background:rgba(237,103,103,.18);color:#8a2f2f}.pill-staff{background:rgba(147,204,134,.24);color:#245f36}.pill-admin{background:rgba(113,60,151,.18);color:#4a2268}.pill-role-lead{background:rgba(173,174,215,.38);color:#35356b}.pill-role-support{background:rgba(40,154,72,.18);color:#1a5a30}.pill-role-src{background:rgba(236,235,103,.35);color:#605a00}.pill-meta{background:rgba(44,44,44,.08);color:#4f5050}.alert{border-radius:var(--radius-sm);padding:.68rem .82rem;font-size:.9rem}.alert-error{background:rgba(237,103,103,.13);color:#922929;border:1px solid rgba(237,103,103,.25)}.alert-success{background:rgba(40,154,72,.12);color:#1e5b2f;border:1px solid rgba(40,154,72,.23)}.alert-warn{background:rgba(238,183,95,.18);color:#794800;border:1px solid rgba(212,141,25,.34)}.app-shell{max-width:1140px;margin:0 auto;padding:1rem 1rem calc(11.25rem + env(safe-area-inset-bottom))}.topbar{border-radius:var(--radius-lg);background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(247,247,247,.95));border:1px solid rgba(44,44,44,.08);box-shadow:var(--shadow-soft);padding:1rem;position:-webkit-sticky;position:sticky;top:.6rem;z-index:10;overflow:visible}.topbar:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,var(--torch-coral) 0,var(--torch-gold) 33%,var(--torch-yellow) 66%,var(--torch-purple) 100%)}.topbar-row{margin-top:.2rem;justify-content:space-between;gap:.9rem;flex-wrap:wrap}.topbar-brand,.topbar-row{display:flex;align-items:center}.topbar-brand{gap:.85rem;min-width:0}.topbar-logo{width:clamp(132px,20vw,188px);height:auto}.topbar-profile{min-width:0}.topbar-title{margin:0;font-size:.76rem;color:var(--torch-neutral-700);text-transform:uppercase;letter-spacing:.09em}.topbar-name{margin:.1rem 0 0;font-size:1.16rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.45rem}.mobile-menu-toggle{display:none;width:38px;height:38px;border-radius:999px;border:1px solid rgba(44,44,44,.14);background:rgba(255,255,255,.82);color:#4d4e4e;align-items:center;justify-content:center;gap:.18rem;flex-direction:column;padding:0}.mobile-menu-toggle span{display:block;width:16px;height:2px;border-radius:999px;background:currentColor}.mobile-menu-toggle-active{background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.3);color:#8c2d2d}.topbar-signout{min-height:32px;padding:.22rem .58rem;font-size:.78rem;font-weight:700}.nav-row{margin-top:.95rem;display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.75rem;overflow:visible;border-top:1px solid rgba(44,44,44,.08)}.nav-more{position:relative}.nav-more summary{list-style:none}.nav-more summary::-webkit-details-marker{display:none}.nav-more-summary:after{content:"▾";display:inline-block;margin-left:.35rem;font-size:.72rem}.nav-more[open] .nav-more-summary:after{transform:rotate(180deg)}.nav-more-menu{position:absolute;top:calc(100% + .45rem);right:0;min-width:190px;display:grid;grid-gap:.3rem;gap:.3rem;padding:.5rem;border-radius:var(--radius-md);border:1px solid rgba(44,44,44,.08);background:rgba(255,255,255,.98);box-shadow:var(--shadow-soft);z-index:40}.nav-more-link{display:block;border-radius:10px;padding:.55rem .7rem;font-weight:600;color:#545555;transition:background-color .12s ease,color .12s ease}.nav-more-link:hover{background:rgba(173,174,215,.18);color:var(--torch-purple)}.nav-more-link-active{background:rgba(237,103,103,.12);color:#8c2d2d}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:999px;border:1px solid transparent;padding:.45rem .8rem;font-weight:700;color:#626363;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:color .12s ease,background-color .12s ease,border-color .12s ease;white-space:nowrap}.nav-link:hover{background:rgba(173,174,215,.2);border-color:rgba(113,60,151,.2);color:#4d4e4e}.nav-link-active{background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.36);color:#8c2d2d}.mobile-nav-panel{display:none;margin-top:.85rem;border-top:1px solid rgba(44,44,44,.08);padding-top:.8rem}.mobile-nav-panel-open{display:block}.mobile-nav-grid{display:grid;grid-gap:.45rem;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:12px;padding:.45rem .65rem;border:1px solid rgba(44,44,44,.08);color:#5a5b5b;font-weight:700;text-align:center;background:rgba(255,255,255,.74)}.mobile-nav-link-active{background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.36);color:#8c2d2d}.mobile-menu-utils{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(44,44,44,.08);display:grid;grid-gap:.65rem;gap:.65rem}.mobile-menu-settings{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mobile-menu-divider{border:none;border-top:1px solid rgba(44,44,44,.08);margin:0}.mobile-menu-footer{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.82rem;color:#666666}.mobile-menu-help{display:grid;grid-gap:.12rem;gap:.12rem}.mobile-menu-help strong{font-size:.82rem}.mobile-menu-help span{font-size:.78rem;line-height:1.3}.mobile-menu-legal-links{display:flex;gap:.7rem;font-size:.78rem;margin-top:.15rem}.mobile-menu-legal-links a{color:#626363;text-decoration:underline;text-underline-offset:2px}.mobile-menu-signout{width:100%;justify-content:center}.topbar-hidden{transform:translateY(-100%);pointer-events:none}.view-as-banner{position:-webkit-sticky;position:sticky;top:0;z-index:40;margin-top:.9rem;display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.6rem .9rem;border-radius:var(--radius-md);border:1px solid rgba(113,60,151,.35);background:rgba(113,60,151,.14);color:#4a2268;font-size:.92rem;box-shadow:var(--shadow-soft)}[data-theme=dark] .view-as-banner{background:rgba(113,60,151,.35);color:#e6d6f5}.view-as-exit{white-space:nowrap}.view-as-controls summary{cursor:pointer;font-size:.82rem}.view-as-controls summary:hover,.view-as-controls[open] summary{border-color:rgba(113,60,151,.38);background:rgba(113,60,151,.1);color:var(--torch-purple)}.view-as-controls .schedule-table-action{cursor:pointer;transition:color .12s ease,background-color .12s ease,border-color .12s ease,transform .12s ease}.view-as-controls .schedule-table-action:not(.view-as-current):hover{border-color:rgba(113,60,151,.38);background:rgba(113,60,151,.1);color:var(--torch-purple)}.view-as-controls .schedule-table-action:active:not(.view-as-current){transform:scale(.98)}.view-as-controls .schedule-table-action:disabled{cursor:not-allowed;opacity:.6}.view-as-controls .view-as-current{border-color:rgba(113,60,151,.42);background:rgba(113,60,151,.14);color:var(--torch-purple);font-weight:700}.urgent-banner{margin-top:.9rem;display:grid;grid-gap:.5rem;gap:.5rem;grid-template-columns:auto 1fr;align-items:start;padding:.72rem .9rem;border-radius:var(--radius-md);border:1px solid rgba(237,103,103,.18);background:rgba(255,249,249,.96);box-shadow:var(--shadow-soft)}.urgent-banner-label{display:inline-flex;align-items:center;min-height:1.8rem;padding:.16rem .55rem;border-radius:999px;background:rgba(237,103,103,.14);color:#8c2d2d;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.urgent-banner-items{display:grid;grid-gap:.45rem;gap:.45rem}.urgent-banner-item{display:grid;grid-gap:.1rem;gap:.1rem;color:inherit}.urgent-banner-item span{color:var(--torch-neutral-700);font-size:.9rem}.content-area{margin-top:1rem;display:grid;grid-gap:1rem;gap:1rem}.content-area>*{min-width:0}.install-hint{margin-top:.95rem}.install-hint-title{margin:0 0 .25rem;font-weight:800}.install-hint-actions{margin-top:.65rem;display:flex;flex-wrap:wrap;gap:.55rem}.bottom-nav{position:fixed;bottom:calc(4.4rem + env(safe-area-inset-bottom));left:0;right:0;display:flex;gap:.45rem;padding:.55rem .7rem calc(.65rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid rgba(44,44,44,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;width:100%;box-shadow:0 -6px 18px rgba(44,44,44,.08);z-index:50}.bottom-nav-link{flex:0 0 auto;min-width:88px;min-height:44px;padding:.42rem .58rem;border-radius:12px;font-size:.82rem;font-weight:700;color:#626363;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;scroll-snap-align:center;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18)}.bottom-nav-link-active{background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.36);color:#8c2d2d}.app-footer{position:fixed;left:.85rem;right:.85rem;bottom:.85rem;z-index:25;padding:.68rem .85rem calc(.68rem + env(safe-area-inset-bottom));display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-radius:var(--radius-md);border:1px solid rgba(44,44,44,.08);background:rgba(255,255,255,.96);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.83rem;color:#666666}.app-footer-help{display:grid;grid-gap:.12rem;gap:.12rem;min-width:0}.app-footer-help span{color:var(--torch-neutral-700)}.app-footer-links{display:flex;flex-wrap:wrap;gap:.9rem}.app-footer .text-link,.app-footer a{text-decoration:underline;text-underline-offset:.15em}.card{background:rgba(255,255,255,.95);border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-soft)}.card h2{margin:0 0 .55rem;font-family:var(--font-playfair-display),serif;font-size:clamp(1.45rem,2.6vw,2.1rem);line-height:1.16}.card h3{margin:0 0 .4rem;font-size:1rem;line-height:1.25}.card p{margin:.35rem 0}.section-anchor{scroll-margin-top:.75rem}.card-subtitle{margin-top:0}.grid-two{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem}.roster-year-form{align-items:end}.roster-year-submit{width:100%}.admin-users-roster-year-form,.admin-users-roster-year-form>*,.admin-users-stat-grid,.admin-users-stat-grid>*{min-width:0}.admin-users-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.admin-quick-grid,.admin-stat-grid,.admin-support-grid{display:grid;grid-gap:.8rem;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-quick-card,.admin-support-card{display:block;min-height:100%;transition:transform .12s ease,border-color .12s ease,color .12s ease}.admin-quick-card:hover,.admin-support-card:hover{transform:translateY(-1px);border-color:rgba(113,60,151,.24)}.admin-collapsible,.admin-inline-expander{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);background:rgba(255,255,255,.94);padding:.65rem .75rem}.admin-collapsible summary,.admin-inline-expander summary{list-style:none;cursor:pointer;display:grid;grid-gap:.15rem;gap:.15rem;padding-right:1.5rem;position:relative}.admin-collapsible summary::-webkit-details-marker,.admin-inline-expander summary::-webkit-details-marker{display:none}.admin-collapsible summary:after,.admin-inline-expander summary:after{content:"▾";position:absolute;right:0;top:0;font-size:.78rem;color:#666767;transition:transform .12s ease}.admin-collapsible[open] summary:after,.admin-inline-expander[open] summary:after{transform:rotate(180deg)}.admin-collapsible-title{font-weight:700;font-size:.98rem;color:#3f4040}.admin-collapsible-meta{font-size:.84rem;color:#666666}.admin-inline-expander summary{font-weight:700;color:#4f5050}.directory-contact-expander summary{font-size:.78rem;line-height:1.15;padding-right:1.05rem}.desktop-only .directory-contact-expander{padding:.42rem .55rem}.desktop-only .directory-contact-expander summary{white-space:nowrap}.table-wrap{overflow-x:auto}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid rgba(44,44,44,.08);border-radius:12px;overflow:hidden;background:var(--torch-white)}.admin-schedule-page{display:grid;grid-gap:1rem;gap:1rem;grid-template-areas:"controls" "items" "add" "overview" "preview" "tools"}.admin-schedule-filter-grid{display:grid;grid-gap:.75rem;gap:.75rem}.admin-schedule-page #schedule-controls{grid-area:controls}.admin-schedule-page #schedule-items{grid-area:items}.admin-schedule-page #schedule-add{grid-area:add}.admin-schedule-page #schedule-overview{grid-area:overview}.admin-schedule-page #schedule-student-preview{grid-area:preview}.admin-schedule-page #schedule-year-tools{grid-area:tools}.schedule-table td,.schedule-table th{border-bottom:1px solid rgba(44,44,44,.08);padding:.58rem .5rem;vertical-align:top;text-align:left;font-size:.93rem}.schedule-table tr:last-child td{border-bottom:0}.schedule-table th{color:#5f6060;font-size:.8rem;text-transform:uppercase;letter-spacing:.045em;background:rgba(241,241,241,.8)}.admin-schedule-editor-card{scroll-margin-top:1rem}.admin-schedule-card-edit-list{display:block}.admin-schedule-legacy-table{display:none}.admin-schedule-edit-backdrop{position:fixed;inset:0;z-index:100;background:rgba(20,20,20,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-schedule-edit-modal{position:fixed;z-index:101;top:1rem;left:50%;width:min(920px,calc(100vw - 1.5rem));max-height:calc(100vh - 2rem);overflow:auto;transform:translateX(-50%);box-shadow:0 24px 80px rgba(0,0,0,.28)}.admin-schedule-edit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.admin-schedule-edit-header h2{margin:0}.day-tabs,.schedule-jump-nav{display:flex;flex-wrap:wrap;gap:.45rem}.schedule-jump-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(44,44,44,.12);padding:.35rem .72rem;font-size:.84rem;font-weight:700;color:#5a5b5b;background:rgba(255,255,255,.92);touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:color .12s ease,background-color .12s ease,border-color .12s ease}.schedule-jump-link:hover{border-color:rgba(113,60,151,.34);color:var(--torch-purple)}.schedule-jump-primary{background:var(--torch-coral,#ed6767);color:#fff;border-color:var(--torch-coral,#ed6767)}.schedule-jump-primary:hover{background:#d65555;border-color:#d65555;color:#fff}.dependency-preview{padding:.5rem .6rem;border-radius:var(--radius-sm);background:rgba(238,183,95,.1);border:1px solid rgba(212,141,25,.2)}.dependency-preview-item{margin:.2rem 0 0;font-size:.78rem;line-height:1.3;color:#4a4b4b}.day-tab,.dependency-preview-item strong{font-weight:600}.day-tab{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--torch-neutral-300);padding:.35rem .72rem;font-size:.86rem;color:#6a6b6b;background:var(--torch-white);touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:color .12s ease,background-color .12s ease,border-color .12s ease}.day-tab:hover{border-color:rgba(113,60,151,.3);color:#4e4f4f}.day-tab-active{border-color:var(--torch-purple);background:rgba(113,60,151,.13);color:var(--torch-purple)}.announcement-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.resource-item{border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-sm);padding:.65rem .8rem;background:rgba(255,255,255,.9)}.resource-item+.resource-item{margin-top:.65rem}.schedule-card-list{display:grid;grid-gap:.75rem;gap:.75rem}.schedule-card{border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-sm);background:rgba(255,255,255,.94);padding:.62rem;box-shadow:var(--shadow-soft)}.schedule-card-header{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.14rem}.schedule-card-time-group{display:inline-flex;align-items:baseline;gap:.36rem;min-width:0}.schedule-time{font-weight:500;font-size:.79rem;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.schedule-duration{color:#5f6060;font-size:.72rem;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.schedule-activity{margin:.06rem 0 .16rem;font-weight:400;font-size:.82rem;line-height:1.24}.schedule-detail{margin:.1rem 0;color:#555656;font-size:.79rem;line-height:1.24}.schedule-label{font-weight:500;color:#5f6060}.schedule-card-inline-actions{display:inline-flex;align-items:center;gap:.24rem;flex:0 0 auto}.schedule-card-action-form{margin:0;display:inline-flex}.schedule-card-action{min-height:28px;border-radius:999px;padding:.12rem .46rem;font-size:.68rem;font-weight:500;border:1px solid;background:var(--torch-white);color:#4f5050;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:color .12s ease,background-color .12s ease,border-color .12s ease}.schedule-card-action-edit{flex:0 0 auto;border-color:rgba(113,60,151,.26);background:rgba(113,60,151,.08);color:#5a3b76}.schedule-card-action-edit:hover{border-color:rgba(113,60,151,.44);color:#4a2e63}.schedule-card-action-remove{flex:0 0 auto;white-space:nowrap;border-color:rgba(237,103,103,.32);background:rgba(237,103,103,.14);color:#8c2d2d}.schedule-card-action-remove:hover{background:rgba(237,103,103,.2);border-color:rgba(237,103,103,.46)}.schedule-table-actions{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.schedule-table-action-form{margin:0;display:inline-flex}.schedule-table-action{min-height:27px;border-radius:9px;padding:.16rem .46rem;font-size:.7rem;font-weight:500;border:1px solid;background:var(--torch-white);color:#4f5050;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:color .12s ease,background-color .12s ease,border-color .12s ease}.schedule-table-action-edit{border-color:rgba(113,60,151,.26);background:rgba(113,60,151,.08);color:#5a3b76}.schedule-table-action-edit:hover{border-color:rgba(113,60,151,.44);color:#4a2e63}.schedule-table-action-remove{border-color:rgba(237,103,103,.32);background:rgba(237,103,103,.12);color:#8c2d2d}.schedule-table-action-remove:hover{background:rgba(237,103,103,.2);border-color:rgba(237,103,103,.46)}.schedule-item-editor-panel{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);background:rgba(255,255,255,.95);padding:.45rem .5rem}.schedule-item-editor-panel summary{list-style:none;cursor:pointer;font-weight:700;font-size:.86rem;color:#4f5050;display:inline-flex;align-items:center;gap:.35rem}.schedule-item-editor-panel summary::-webkit-details-marker{display:none}.schedule-item-editor-panel summary:focus-visible{outline:2px solid rgba(113,60,151,.46);outline-offset:2px}.schedule-item-editor-panel summary:before{content:"▸";color:#666767;transition:transform .12s ease}.schedule-item-editor-panel[open] summary:before{transform:rotate(90deg)}.schedule-view-tabs{display:flex;gap:.15rem;border:1px solid rgba(44,44,44,.15);border-radius:var(--radius-md);padding:.15rem;overflow:visible;width:-moz-fit-content;width:fit-content;background:rgba(255,255,255,.74)}.schedule-view-tab{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:calc(var(--radius-md) - 3px);padding:.42rem 1rem;font-size:.82rem;font-weight:600;border:none;background:rgba(248,248,248,.95);color:#636464;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(113,60,151,.18);transition:background-color .12s ease,color .12s ease,transform .12s ease}.schedule-view-tab+.schedule-view-tab{border-left:0}.schedule-view-tab:hover{background:rgba(173,174,215,.18);color:var(--torch-purple)}.schedule-view-tab:active{transform:translateY(1px)}.schedule-view-tab.active{background:var(--torch-coral,#ed6767);color:#fff}.schedule-view-tab.active:hover{background:#d65555;color:#fff}.schedule-view-tab:focus-visible{position:relative;z-index:1;outline:2px solid #2c2c2c;outline-offset:2px}.schedule-mobile-details{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);background:rgba(255,255,255,.95);padding:.48rem .52rem}.schedule-mobile-details summary{list-style:none;cursor:pointer;font-weight:500;font-size:.8rem;color:#4f5050;display:inline-flex;align-items:center;gap:.35rem}.schedule-mobile-details summary::-webkit-details-marker{display:none}.schedule-mobile-details summary:before{content:"▸";color:#666767;transition:transform .12s ease}.schedule-mobile-details[open] summary:before{transform:rotate(90deg)}.schedule-mobile-details summary:focus-visible{outline:2px solid rgba(113,60,151,.46);outline-offset:2px}.time-preview{margin:.1rem 0 0;padding:.55rem .65rem;border-radius:var(--radius-sm);border:1px solid rgba(113,60,151,.22);background:rgba(113,60,151,.08);color:#4f3367;font-size:.9rem}.time-preview-end{margin-left:.45rem;color:#5f6060}.timeline-shell{border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-md);background:rgba(255,255,255,.95);box-shadow:var(--shadow-soft);padding:.65rem}.timeline-conflicts{margin:0 0 .6rem;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid rgba(237,103,103,.35);background:rgba(237,103,103,.12);color:#7b2929;font-size:.82rem;line-height:1.35}.timeline-legend{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.timeline-single-location{margin:0 0 .5rem;font-size:.78rem;color:#484949}.timeline-single-location strong{color:#2c2d2d}.timeline-timezone{margin:0 0 .5rem;font-size:.74rem;color:#525353}.timeline-legend-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;color:#3f4040;padding:.18rem .44rem;border-radius:999px;background:rgba(241,241,241,.86);border:1px solid rgba(44,44,44,.12)}.timeline-legend-swatch{width:.7rem;height:.7rem;border-radius:999px;border:1px solid;display:inline-block}.timeline-grid{display:grid;grid-template-columns:58px minmax(0,1fr);grid-gap:0;gap:0;position:relative}.timeline-lane{position:relative;border:1px solid rgba(44,44,44,.1);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:repeating-linear-gradient(180deg,rgba(44,44,44,.07),rgba(44,44,44,.07) 1px,transparent 0,transparent 96px),linear-gradient(180deg,rgba(255,255,255,.95),rgba(248,248,248,.9))}.timeline-now-line{position:absolute;left:.35rem;right:.35rem;height:0;border-top:2px solid rgba(40,154,72,.9);z-index:1;pointer-events:none}.timeline-now-line span{position:absolute;top:-.72rem;left:0;border-radius:999px;padding:.06rem .42rem;background:rgba(40,154,72,.96);color:#ffffff;font-size:.68rem;font-weight:700}.timeline-block{position:absolute;left:.5rem;width:calc(100% - 1rem);box-sizing:border-box;border:1px solid;border-left:4px solid;border-radius:8px;padding:.22rem .34rem;box-shadow:0 4px 9px rgba(44,44,44,.07);overflow:hidden;z-index:2}.timeline-block-overlap{box-shadow:0 5px 12px rgba(44,44,44,.06)}.timeline-block-current{border-color:rgba(40,154,72,.9)!important;border-left-width:6px;box-shadow:0 0 0 2px rgba(40,154,72,.22),0 6px 14px rgba(44,44,44,.12);z-index:3}.timeline-block-next{border-left-width:6px;box-shadow:0 0 0 2px rgba(113,60,151,.18),0 6px 14px rgba(44,44,44,.1);z-index:3}.timeline-block-title{margin:0;font-weight:700;font-size:.74rem;line-height:1.18;letter-spacing:.003em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;word-break:break-word}.timeline-block-title-single{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-overflow:clip}.timeline-block-compact .timeline-block-title{font-size:.68rem;line-height:1.14;-webkit-line-clamp:2}.timeline-block-no-time .timeline-block-title{-webkit-line-clamp:3}.timeline-block-tiny .timeline-block-title{font-size:.66rem;line-height:1.08;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}.timeline-block-time{margin:.08rem 0 0;font-size:.64rem;font-weight:500;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:#3a3b3b;white-space:nowrap}.timeline-block-location{margin:.08rem 0 0;font-size:.66rem;font-weight:600;color:#484949;line-height:1.22;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-block-meta{margin:.14rem 0 0;font-size:.6rem;color:#484949;display:flex;flex-wrap:wrap;gap:.35rem}.timeline-block-group-label{margin:0 0 .1rem;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#5a5b5b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-block-label-tight .timeline-block-title{-webkit-line-clamp:1}.card .timeline-block p{margin:0}.card .timeline-block .timeline-block-group-label{margin-bottom:.1rem}.card .timeline-block .timeline-block-location,.card .timeline-block .timeline-block-time{margin-top:.08rem}.card .timeline-block .timeline-block-meta{margin-top:.14rem}.timeline-block-compact{padding:.18rem .28rem}.timeline-block-tiny{padding:.14rem .22rem}.timeline-block-compact .timeline-block-title{font-size:.64rem;line-height:1.1}.timeline-block-compact .timeline-block-time{margin-top:.06rem;font-size:.58rem}.timeline-block-compact .timeline-block-location{margin-top:.04rem;font-size:.58rem}.timeline-block-compact.timeline-block-no-time .timeline-block-title{max-height:2.3em}.timeline-scale{position:relative;border:1px solid rgba(44,44,44,.1);border-right-color:rgba(44,44,44,.15);border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:rgba(250,250,250,.7);overflow:visible}.timeline-scale-tick{position:absolute;left:0;right:0;transform:translateY(-50%)}.timeline-scale-tick span{display:block;text-align:right;padding-right:.4rem;font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:#3f4040;white-space:nowrap}.status-grid{display:grid;grid-gap:.7rem;gap:.7rem}.status-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.status-pill{justify-content:center;padding:.2rem .62rem;font-size:.78rem;white-space:nowrap}.status-pill-good{color:#1e5b2f;background:rgba(40,154,72,.14);border:1px solid rgba(40,154,72,.25)}.status-pill-warn{color:#8c2d2d;background:rgba(237,103,103,.15);border:1px solid rgba(237,103,103,.26)}.status-pill-note{color:#5b4f22;background:rgba(238,183,95,.18);border:1px solid rgba(212,141,25,.3)}.launch-checklist{margin:.65rem 0 0;padding-left:1.2rem;display:grid;grid-gap:.35rem;gap:.35rem}.user-card-list{display:grid;grid-gap:.75rem;gap:.75rem}.user-card{border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-sm);background:rgba(255,255,255,.94);padding:.75rem;box-shadow:var(--shadow-soft)}.user-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem}.user-card-name{margin:0;font-weight:800}.user-card-name-link{color:inherit;text-decoration:underline;-webkit-text-decoration-color:rgba(113,60,151,.45);text-decoration-color:rgba(113,60,151,.45);text-underline-offset:.15em}.user-card-name-link:hover{color:var(--torch-purple);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.user-card-name-link:focus-visible{outline:2px solid rgba(236,113,79,.55);outline-offset:2px;border-radius:.2rem}.attendance-name-off-campus{color:var(--color-text-muted)}.guild-selection-note{margin:.45rem 0 0;font-size:.82rem}.user-card-email{margin:.16rem 0 0;color:#5f6060;word-break:break-word}.user-card-meta{margin:.42rem 0 0;color:#555656;font-size:.92rem}.muted{color:#666666}.text-link{color:var(--torch-purple);text-decoration:underline;text-underline-offset:.15em}.inline-check{display:flex;align-items:flex-start;gap:.4rem}.item-actions{display:flex;flex-wrap:wrap;gap:.55rem}.empty{padding:.8rem;border-radius:var(--radius-sm);background:rgba(44,44,44,.04);color:#676868}.inline-form{display:inline}.align-end{align-content:end}.mt-sm{margin-top:.6rem}.mt-md{margin-top:.8rem}.mt-lg{margin-top:1rem}.auth-legal-links{margin-top:.8rem;display:flex;flex-wrap:wrap;gap:.45rem;font-size:.84rem;color:#666666}.auth-checklist{margin:.7rem 0 0;padding-left:1.15rem;color:#5f6060;font-size:.9rem;display:grid;grid-gap:.3rem;gap:.3rem}.code-focus{border-color:rgba(212,141,25,.48);box-shadow:0 0 0 2px rgba(238,183,95,.22),var(--shadow-soft)}.auth-legal-links a{text-decoration:underline;text-underline-offset:.15em}.admin-collapsible summary:focus-visible,.admin-inline-expander summary:focus-visible,.app-footer a:focus-visible,.auth-legal-links a:focus-visible,.bottom-nav-link:focus-visible,.button:focus-visible,.day-tab:focus-visible,.input:focus-visible,.mobile-menu-legal-links a:focus-visible,.mobile-menu-toggle:focus-visible,.mobile-nav-link:focus-visible,.nav-link:focus-visible,.nav-more-link:focus-visible,.roster-activity-details summary:focus-visible,.roster-filter-more summary:focus-visible,.roster-th-btn:focus-visible,.row-menu summary:focus-visible,.schedule-card-action:focus-visible,.schedule-jump-link:focus-visible,.schedule-table-action:focus-visible,.select:focus-visible,.text-link:focus-visible,.textarea:focus-visible,.theme-toggle:focus-visible,.urgent-banner-item:focus-visible{outline:2px solid rgba(113,60,151,.46);outline-offset:2px}.legal-shell{min-height:100vh;display:grid;place-items:start center;padding:1rem}.legal-card{width:min(860px,100%);position:relative}.legal-close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:2rem;height:2rem;display:grid;place-items:center;border:none;background:none;font-size:1.25rem;line-height:1;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius);text-decoration:none}.legal-close:hover{background:var(--color-surface);color:var(--color-text)}.legal-prose h3{margin:1rem 0 .35rem}.legal-prose a{color:var(--torch-purple);text-decoration:underline}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (min-width:761px){.bottom-nav{display:none}}@media (min-width:760px){.auth-card{padding:2rem}.grid-two{grid-template-columns:1fr 1fr}.roster-year-form{grid-template-columns:minmax(0,1fr) minmax(180px,280px)}.grid-two.admin-users-roster-year-form{grid-template-columns:1fr}.card{padding:1.15rem}.app-shell{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}}@media (min-width:760px) and (max-width:980px){.roster-year-form{grid-template-columns:1fr}}@media (min-width:1280px){.grid-two.admin-users-roster-year-form{grid-template-columns:minmax(0,1fr) minmax(180px,240px)}.admin-schedule-page{grid-template-columns:minmax(0,1fr);grid-template-areas:"controls" "items" "add" "overview" "preview" "tools";align-items:stretch}.admin-schedule-filter-grid{grid-template-columns:minmax(150px,1fr) minmax(130px,.7fr) minmax(150px,1fr) auto;align-items:end}.admin-schedule-page #schedule-items .schedule-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1}}@media (max-width:540px){.app-shell{padding:.75rem .75rem calc(4.5rem + env(safe-area-inset-bottom))}.topbar{position:-webkit-sticky;position:sticky;top:0;padding:.66rem;margin-left:-.75rem;margin-right:-.75rem}.topbar:before{height:6px}.topbar-row{margin-top:.08rem;flex-direction:row;align-items:flex-start;gap:.5rem;flex-wrap:nowrap}.topbar-brand{flex:1 1 auto;min-width:0;gap:.56rem;align-items:flex-start}.topbar-logo{width:116px}.topbar-title{font-size:.66rem}.topbar-name{margin-top:.08rem;font-size:.94rem;line-height:1.16;max-width:100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.topbar-actions{display:none}.mobile-menu-toggle{display:inline-flex;align-self:center}.card{padding:.9rem}.card h2{font-size:clamp(1.25rem,7vw,1.5rem)}.schedule-jump-link{min-width:104px}.bottom-nav{padding:.45rem .55rem calc(.45rem + env(safe-area-inset-bottom))}.bottom-nav-link{min-width:80px;padding:.38rem .24rem;font-size:.76rem;line-height:1.15}.app-footer-links{gap:.72rem}.status-row{flex-wrap:wrap;align-items:flex-start}.item-actions{display:grid}.item-actions .button{width:100%}.timeline-grid{grid-template-columns:44px minmax(0,1fr);gap:0}.timeline-block{left:.3rem;width:calc(100% - .6rem);padding:.2rem .24rem}.timeline-block-meta{font-size:.7rem}.schedule-card-action{min-height:28px;padding:.08rem .4rem;font-size:.65rem}.timeline-scale-tick span{padding-right:.3rem;font-size:.62rem}}@media (max-width:760px){.app-shell{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.topbar{border-radius:0;margin-left:-.75rem;margin-right:-.75rem;border-left:none;border-right:none;border-top:none}.nav-row{display:none}.bottom-nav{bottom:0;gap:.3rem;overflow-x:hidden;scroll-snap-type:none;padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom, 0px))}.bottom-nav-link{flex:1 1;min-width:0;white-space:normal;line-height:1.1;padding:.36rem .2rem}.bottom-nav-admin{overflow-x:hidden;scroll-snap-type:none;justify-content:stretch}.bottom-nav-admin .bottom-nav-link{flex:1 1;min-width:0;white-space:normal;line-height:1.08;padding:.36rem .2rem;font-size:.72rem}.mobile-menu-toggle,.theme-toggle{width:44px;height:44px}.mobile-nav-link{min-height:44px}.urgent-banner{grid-template-columns:1fr}.timeline-legend{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.08rem;margin-bottom:.46rem;scrollbar-width:thin}.timeline-single-location{margin-bottom:.42rem;font-size:.74rem}.timeline-legend-chip{flex:0 0 auto;max-width:9.2rem;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-tabs,.schedule-jump-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:.1rem}.day-tab,.schedule-jump-link{flex:0 0 auto}.card[id]{scroll-margin-top:.75rem}.mobile-only{display:block}.desktop-only,.mobile-only .schedule-duration{display:none}.schedule-card-list-student .schedule-duration{display:inline}.app-footer{display:none}}@media (prefers-reduced-motion:no-preference){.auth-card,.card,.topbar{animation:rise-in .24s ease}.topbar{transition:transform .25s ease}.mobile-nav-panel-open{animation:slideDown .2s ease}@keyframes rise-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.student-preview-card{border-left:4px solid var(--torch-purple)}.student-schedule-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:.5rem;gap:.5rem}.student-schedule-item{display:grid;grid-template-columns:5.5rem 1fr;grid-template-rows:auto auto;grid-column-gap:.75rem;column-gap:.75rem;align-items:start;padding:.7rem .85rem .7rem .75rem;border-radius:var(--radius-sm);border-left:4px solid;box-shadow:0 2px 8px rgba(44,44,44,.05)}.student-schedule-time{grid-row:1/-1;align-self:center;font-size:.78rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--torch-neutral-900);letter-spacing:.01em;line-height:1.2;text-align:right;padding-right:.1rem}.student-schedule-activity{font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--torch-neutral-900)}.schedule-list-body{display:grid;grid-gap:.15rem;gap:.15rem;grid-row:1/-1;align-self:center;min-width:0}.schedule-list-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.schedule-item-badges{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;flex:0 0 auto}.schedule-item-badge{display:inline-flex;align-items:center;min-height:1.4rem;padding:.1rem .45rem;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap;border:1px solid transparent}.schedule-item-badge-staff{color:#7b2929;background:rgba(237,103,103,.14);border-color:rgba(237,103,103,.24)}.schedule-item-badge-lead{color:#4f3367;background:rgba(113,60,151,.1);border-color:rgba(113,60,151,.2)}.student-schedule-location{font-size:.82rem;color:#4f5050;margin-top:.15rem;line-height:1.3}.schedule-item-meta{display:flex;flex-wrap:wrap;gap:.35rem .6rem;margin-top:.3rem;font-size:.74rem;color:#4f5050}.schedule-item-details{margin-top:.4rem;border:1px solid rgba(44,44,44,.1);border-radius:10px;background:rgba(255,255,255,.66);padding:.38rem .48rem}.schedule-item-details summary{list-style:none;cursor:pointer;font-size:.74rem;font-weight:700;color:#4f5050;display:inline-flex;align-items:center;gap:.35rem}.schedule-item-details summary::-webkit-details-marker{display:none}.schedule-item-details summary:before{content:"▸";color:#666767;transition:transform .12s ease}.schedule-item-details[open] summary:before{transform:rotate(90deg)}.schedule-item-details-grid{display:grid;grid-gap:.24rem;gap:.24rem;margin-top:.42rem}.schedule-item-detail{margin:0;font-size:.78rem;color:#4f5050;line-height:1.3}.student-schedule-earlier-row{list-style:none}.student-schedule-earlier-list{margin-top:.5rem}.student-schedule-list-staff{gap:.65rem}.schedule-list-item-staff{grid-template-columns:5.5rem minmax(0,1fr)}.student-schedule-split-row{display:grid;grid-template-columns:5.5rem 1fr;grid-column-gap:.75rem;column-gap:.75rem;align-items:start}.student-schedule-split-row>.student-schedule-time{align-self:center}.student-schedule-split-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:.4rem;gap:.4rem}.student-schedule-split-block{border-left:4px solid;border-radius:var(--radius-sm);padding:.65rem .75rem;box-shadow:0 2px 8px rgba(44,44,44,.05)}.student-schedule-split-block .student-schedule-activity{display:block;margin-bottom:.15rem}.student-schedule-split-block .student-schedule-location{display:block;margin-top:0}.student-schedule-group-label{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#5a5b5b;margin-bottom:.22rem}@media (max-width:540px){.schedule-list-heading{flex-direction:column;gap:.35rem}.schedule-item-badges{justify-content:flex-start}.student-schedule-split-pair{grid-template-columns:1fr}}.team-roster-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.team-roster-heading h2,.team-roster-heading p{margin-top:0}.roster-checkout-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.38rem .65rem;border:1px solid rgba(44,44,44,.14);border-radius:999px;background:rgba(255,255,255,.82);font-size:.78rem;font-weight:600;cursor:pointer}.roster-checkout-toggle input{width:16px;height:16px;margin:0;accent-color:var(--torch-purple)}.roster-checkout-toggle:has(input:focus-visible){outline:2px solid var(--torch-purple);outline-offset:2px}.roster-checkout-toggle:has(input:disabled){cursor:wait;opacity:.7}.team-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:.85rem;gap:.85rem}.team-roster-card{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);background:rgba(255,255,255,.94);padding:.85rem;box-shadow:var(--shadow-soft)}.team-roster-card-unassigned{border-color:rgba(238,183,95,.4);background:rgba(238,183,95,.07)}.team-roster-title{font-size:1rem;font-weight:700;margin:0 0 .1rem}.team-roster-counts{font-size:.78rem;margin:0 0 .6rem}.team-roster-section{margin-top:.5rem}.team-roster-role-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6a6b6b;margin:0 0 .25rem}.team-roster-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.28rem}.team-roster-member{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.now-hero{background:rgba(255,255,255,.95);border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-soft)}.now-hero-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.now-hero-time{margin:0;font-size:.82rem;color:#626363}.now-hero-context{display:flex;gap:.35rem;flex-wrap:wrap}.now-context-chip{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;background:rgba(113,60,151,.08);color:#5a3378;border:1px solid rgba(113,60,151,.15)}.now-context-chip-link{text-decoration:none}.now-context-chip-link:hover{background:rgba(113,60,151,.14)}.now-context-chip-team{background:rgba(70,130,220,.12);color:#1a3a7a;border-color:rgba(70,130,220,.2)}.now-context-chip-guild{background:rgba(60,180,90,.14);color:#1a5a30;border-color:rgba(60,180,90,.22)}.now-context-chip-guild:hover{background:rgba(60,180,90,.2)}.now-context-chip-room{background:rgba(230,150,30,.14);color:#7a4500;border-color:rgba(230,150,30,.22)}.now-schedule-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:.6rem;gap:.6rem}.now-schedule-card{border-radius:var(--radius-sm);padding:.75rem .8rem;border:1px solid rgba(44,44,44,.08);background:rgba(245,245,245,.6)}.now-schedule-card-active{background:rgba(147,204,134,.12);border-color:rgba(51,120,76,.2)}.now-schedule-card-next{background:rgba(238,183,95,.1);border-color:rgba(184,114,0,.15)}.now-schedule-card-label{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#626363;margin-bottom:.35rem}.now-schedule-card-activity{margin:0;font-size:.95rem;font-weight:700;line-height:1.25;color:var(--torch-neutral-900)}.now-schedule-card-time{margin:.2rem 0 0;font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#626363}.now-schedule-card-location{margin:.15rem 0 0;font-size:.76rem;color:#4f5050}.now-schedule-card-empty{margin:0;font-size:.88rem;color:#8a8b8b;font-style:italic}.now-full-schedule-link{display:block;text-align:center;margin-top:.65rem;padding:.45rem;font-size:.82rem;font-weight:600;color:var(--torch-purple);text-decoration:none;border-radius:var(--radius-sm)}.now-full-schedule-link:hover{background:rgba(113,60,151,.06)}.now-survey-card{border-left:4px solid var(--torch-purple)}.now-torch-times-card{border-color:rgba(238,183,95,.42);background:rgba(238,183,95,.1)}.now-torch-times-content{display:flex;align-items:center;justify-content:space-between;gap:1rem}.now-torch-times-content h2{margin:.12rem 0 0}.now-torch-times-label{margin:0;color:#79500f;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.now-torch-times-note{margin:.35rem 0 0;color:#5f6060}.now-torch-times-button{flex:0 0 auto;text-align:center}.now-survey-note{margin:.35rem 0 .75rem;color:#666;font-size:.95rem;line-height:1.5}.now-survey-button{display:block;text-align:center;margin-top:.5rem}.now-announcement{border:1px solid rgba(44,44,44,.08);border-radius:var(--radius-sm);padding:.75rem .85rem;background:rgba(255,255,255,.5)}.now-announcement-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.now-announcement-body{margin:.3rem 0 0;font-size:.88rem;line-height:1.45;color:#4f5050}.announcement-body{margin:.3rem 0 0}.announcement-body ol,.announcement-body p,.announcement-body ul{margin:0}.announcement-body>*+*{margin-top:.55em}.announcement-body ol,.announcement-body ul{padding-left:1.2em}.announcement-body li+li{margin-top:.2em}.announcement-body a{color:var(--torch-purple);font-weight:600;text-decoration:underline;word-break:break-word}.now-announcement-meta{display:flex;align-items:center;gap:.5rem;margin-top:.45rem}.now-announcement-type{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:999px;background:rgba(113,60,151,.08);color:#5a3378}[data-theme=dark] .now-hero{background:rgba(22,22,22,.95);border-color:rgba(255,255,255,.07)}[data-theme=dark] .now-schedule-card{background:rgba(40,40,40,.6);border-color:rgba(255,255,255,.06)}[data-theme=dark] .now-schedule-card-active{background:rgba(147,204,134,.08);border-color:rgba(51,120,76,.2)}[data-theme=dark] .now-schedule-card-next{background:rgba(238,183,95,.06);border-color:rgba(184,114,0,.15)}[data-theme=dark] .now-hero-time,[data-theme=dark] .now-schedule-card-label,[data-theme=dark] .now-schedule-card-time{color:#a0a1a1}[data-theme=dark] .now-schedule-card-location{color:#b0b1b1}[data-theme=dark] .now-schedule-card-empty{color:#a0a1a1}[data-theme=dark] .now-context-chip{background:rgba(113,60,151,.14);border-color:rgba(113,60,151,.22);color:#c8a0e8}[data-theme=dark] .now-context-chip-team{background:rgba(70,130,220,.18);border-color:rgba(70,130,220,.3);color:#9cbdf0}[data-theme=dark] .now-context-chip-guild{background:rgba(60,180,90,.18);border-color:rgba(60,180,90,.3);color:#9ce0b0}[data-theme=dark] .now-context-chip-guild:hover{background:rgba(60,180,90,.26)}[data-theme=dark] .now-context-chip-room{background:rgba(230,150,30,.18);border-color:rgba(230,150,30,.3);color:#f0c080}[data-theme=dark] .now-announcement{background:rgba(40,40,40,.5);border-color:rgba(255,255,255,.06)}[data-theme=dark] .now-announcement-body{color:#b0b1b1}[data-theme=dark] .announcement-body a{color:#c8a0e8}[data-theme=dark] .now-announcement-type{background:rgba(113,60,151,.14);color:#c8a0e8}[data-theme=dark] .now-full-schedule-link{color:#c8a0e8}[data-theme=dark] .now-survey-card{border-left-color:#8a52b8}[data-theme=dark] .now-torch-times-card{border-color:rgba(238,183,95,.28);background:rgba(238,183,95,.08)}[data-theme=dark] .now-torch-times-label{color:#e5bd78}[data-theme=dark] .now-survey-note,[data-theme=dark] .now-torch-times-note{color:#b1b2b2}@media (max-width:540px){.now-torch-times-content{align-items:stretch;flex-direction:column}.now-torch-times-button{width:100%}.now-schedule-cards{grid-template-columns:1fr;gap:.5rem}.now-schedule-card{padding:.7rem .75rem}.now-hero{padding:.85rem}}.directory-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.4rem}.directory-header h2{margin:0}.profile-edit-form{display:flex;flex-direction:column;gap:1.1rem;max-width:480px;margin-top:1rem}.profile-edit-readonly{font-size:.9375rem;font-weight:500;margin:0;color:var(--torch-neutral-900)}.profile-edit-privacy{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);padding:.75rem .85rem;display:flex;flex-direction:column;gap:.55rem;background:rgba(255,255,255,.7)}.profile-edit-privacy legend{padding:0 .3rem}.profile-edit-toggle{display:flex;align-items:center;gap:.6rem;font-size:.875rem;cursor:pointer}.profile-edit-toggle input[type=checkbox]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--torch-purple);cursor:pointer}.profile-edit-toggle input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.roster-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm);align-items:end;margin-bottom:var(--space-md)}.input-sm,.select-sm{padding:.25rem .5rem;font-size:.875rem;height:auto}.roster-th-sort{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.roster-th-sort:hover{background-color:var(--color-surface-hover,rgba(0,0,0,.04))}.roster-row-inactive td{opacity:.5}.roster-name{font-weight:500;white-space:nowrap}.roster-name-meta{margin-top:.12rem;font-size:.82rem;color:#666666;overflow-wrap:anywhere}.roster-subtle{margin-top:.18rem;font-size:.79rem;color:#666666;white-space:nowrap}.roster-email{font-size:.875rem;color:var(--color-text-muted)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(20,20,20,.45);display:flex;align-items:center;justify-content:center;padding:var(--space-md)}.modal-card{background:var(--color-surface,#ffffff);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);max-width:24rem;width:100%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.25)}.modal-card-contact{max-width:28rem;text-align:left}.modal-card-contact h3{margin:0}.modal-card .roster-row-actions{justify-content:center}.modal-card-contact .roster-row-actions{justify-content:flex-start}.login-code-value{font-family:var(--font-mono,ui-monospace,monospace);font-size:2.2rem;font-weight:700;letter-spacing:.35em;-webkit-user-select:all;-moz-user-select:all;user-select:all}.roster-card-list{display:none;gap:.75rem}.roster-card{border-radius:var(--radius-sm)}.roster-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.roster-card-pill-stack{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.roster-card-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.45rem;font-size:.82rem;color:#5b5c5c}.roster-row-actions{display:flex;gap:var(--space-xs);align-items:flex-start;flex-wrap:wrap}.roster-count{font-size:.875rem;white-space:nowrap;grid-column:1/-1}.checkin-list{display:grid;grid-gap:var(--space-xs);gap:var(--space-xs);margin-top:var(--space-sm)}@media (min-width:900px){.checkin-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs) var(--space-sm)}}.checkin-row{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:.35rem var(--space-sm);gap:.35rem var(--space-sm);padding:.45rem .7rem;border-radius:var(--radius-sm)}.checkin-row-info{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0}.checkin-name{font-weight:700;font-size:1rem;display:inline-flex;align-items:center;gap:.45rem}.checkin-meta{font-size:.9rem;color:var(--color-text)}.checkin-row-actions{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.checkin-button{min-height:38px;min-width:6rem;padding:.4rem .9rem}.checkin-note{grid-column:1/-1;margin:0;font-size:.85rem;background:rgba(240,200,90,.18);border-radius:var(--radius-sm);padding:.3rem .55rem}.checkin-note-meta{color:var(--color-text-muted);font-size:.78rem}.contact-panel{grid-column:1/-1;display:grid;grid-gap:.55rem;gap:.55rem;font-size:.9rem;border-radius:var(--radius-sm);padding:.55rem .65rem;background:rgba(120,140,170,.12);min-width:0}.contact-panel-group{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.contact-panel-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:.12rem .55rem;gap:.12rem .55rem}.contact-panel-grid span{min-width:0;overflow-wrap:anywhere}.contact-panel-grid span:nth-child(odd){color:var(--color-text-muted);font-size:.8rem}.feedback-message{white-space:pre-wrap}.checkin-note-form{grid-column:1/-1;display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.checkin-note-form .input{flex:1 1;min-width:12rem}@media (max-width:540px){.checkin-row{grid-template-columns:1fr;align-items:stretch}.checkin-row-actions form{flex:1 1}.checkin-row-actions .checkin-button{width:100%}}.roster-table{table-layout:fixed}.roster-col-name{width:26%}.roster-col-role{width:9%}.roster-col-status{width:14%}.roster-col-team{width:15%}.roster-col-activity{width:22%}.roster-col-actions{width:14%}.roster-table td{vertical-align:middle}.roster-activity{display:grid;grid-gap:.25rem;gap:.25rem;min-width:220px}.roster-table td,.roster-table th{padding:.55rem .45rem}.roster-table .roster-activity-meta,.roster-table .roster-activity-path,.roster-table .roster-activity-path code,.roster-table .roster-email,.roster-table .roster-name,.roster-table .roster-subtle{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.roster-table .roster-activity{min-width:0}.roster-table .roster-row-actions{gap:.3rem}.roster-table .schedule-table-action{min-height:24px;padding:.14rem .38rem;font-size:.66rem}.roster-activity-line{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.roster-activity-meta,.roster-activity-path{font-size:.78rem;line-height:1.35}.roster-activity-path code{font-size:.74rem}.roster-table-wrap{overflow-x:auto}@media (max-width:1380px){.roster-col-name{width:25%}.roster-col-role{width:9%}.roster-col-status{width:14%}.roster-col-team{width:13%}.roster-col-activity{width:22%}.roster-col-actions{width:17%}}@media (min-width:1200px){.roster-count{grid-column:auto;justify-self:end;align-self:center}}@media (max-width:1180px){.roster-card-list{display:grid;margin-top:var(--space-sm)}.roster-table-wrap{display:none}}@media (max-width:760px){.roster-filters{grid-template-columns:1fr}.roster-card-head{flex-direction:column}.roster-card-pill-stack{justify-content:flex-start}}.roster-th-btn{all:unset;cursor:pointer;font:inherit;color:inherit;white-space:nowrap}.roster-activity-details summary{list-style:none;cursor:pointer;font-size:.78rem;color:#666666;text-decoration:underline;text-underline-offset:2px;width:-moz-fit-content;width:fit-content}.roster-activity-details summary::-webkit-details-marker{display:none}.roster-activity-details[open] summary{margin-bottom:.2rem}.roster-card .roster-activity-details summary{min-height:44px;display:flex;align-items:center}.row-menu{display:inline-block}.row-menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;border:1px solid rgba(44,44,44,.18);border-radius:9px;padding:.3rem .6rem;font-size:.75rem;font-weight:600;color:#4f5050;background:rgba(255,255,255,.9);min-height:44px}.row-menu summary::-webkit-details-marker{display:none}.row-menu summary:after{content:"▾";font-size:.7rem;color:#666767;transition:transform .12s ease}.row-menu[open] summary:after{transform:rotate(180deg)}.roster-table .row-menu summary{min-height:24px;padding:.14rem .38rem;font-size:.66rem}.row-menu-panel{display:grid;grid-gap:.3rem;gap:.3rem;margin-top:.35rem;padding:.4rem;border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);background:var(--torch-white)}.row-menu-panel form{margin:0;display:grid}.row-menu-panel .schedule-table-action{width:100%;justify-content:flex-start;text-align:left;min-height:44px}.roster-table .row-menu-panel .schedule-table-action{min-height:32px}.row-menu-item-danger{border-top:1px solid rgba(44,44,44,.08);border-top-left-radius:0;border-top-right-radius:0}.roster-filter-more{grid-column:1/-1}.roster-export-button{justify-self:start}.roster-filter-more-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm);margin-top:var(--space-sm)}.admin-stat-sub{margin-top:.15rem;font-size:.8rem;color:#666666}.admin-users-overview-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--space-sm)}.admin-users-overview-head .roster-year-form{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.admin-users-overview-head .roster-year-form .label{margin:0}.admin-users-overview-head .roster-year-submit{width:auto}.guild-option{display:flex;gap:var(--space-md);align-items:flex-start;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s}.guild-option:has(input:checked){border-color:var(--color-primary);background-color:var(--color-surface-selected,rgba(var(--color-primary-rgb,0,112,240),.05))}.guild-option input[type=radio]{margin-top:.2rem;flex-shrink:0}.guild-option-body{flex:1 1}.guild-card-active{border:2px solid var(--color-primary)}.guild-preference-summary{margin:var(--space-sm) 0 0;padding-left:1.25rem}.guild-preference-summary li+li{margin-top:var(--space-xs)}.guild-board-header{display:flex;gap:var(--space-md);justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.guild-board-counts{display:grid;grid-gap:var(--space-sm);gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.guild-board-count-card p{margin-top:.2rem}.guild-board-shell{display:grid;grid-gap:.9rem;gap:.9rem}.guild-board-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.guild-board-filters{display:flex;gap:.55rem;flex-wrap:wrap}.ml-sm{margin-left:var(--space-sm)}.guild-board-wrap{display:grid;grid-template-columns:180px 1fr;grid-gap:1rem;gap:1rem;margin-top:1rem;align-items:start}@media (max-width:700px){.guild-board-wrap{grid-template-columns:1fr}}.guild-balance-bar{border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);padding:.7rem;background:rgba(255,255,255,.9);position:-webkit-sticky;position:sticky;top:.5rem}@media (max-width:700px){.guild-balance-bar{position:static}}.guild-balance-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#555;margin:0 0 .35rem}.guild-balance-row{display:flex;justify-content:space-between;align-items:center;gap:.3rem;padding:.18rem 0;border-bottom:1px solid rgba(44,44,44,.06);font-size:.78rem}.guild-balance-row:last-child{border-bottom:none}.guild-balance-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guild-balance-count{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.guild-balance-over{color:#c44040}.guild-board-table-wrap{min-width:0;overflow-x:auto}.guild-board-team-section+.guild-board-team-section{margin-top:1.25rem}.guild-board-team-header{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#666;margin:0 0 .4rem}.guild-board-table{font-size:.8rem}.guild-board-row-saving{opacity:.6;pointer-events:none}.guild-suggestion-cell{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.guild-suggestion-button{min-height:28px;padding:.08rem .45rem;font-size:.7rem}.guild-pref-descriptions{display:flex;flex-direction:column;gap:.35rem;border:1px solid rgba(44,44,44,.1);border-radius:var(--radius-sm);padding:.5rem .75rem;background:rgba(255,255,255,.85)}.guild-pref-desc-item{border-bottom:1px solid rgba(44,44,44,.06);padding-bottom:.3rem}.guild-pref-desc-item:last-child{border-bottom:none;padding-bottom:0}.guild-pref-desc-summary{font-size:.875rem;font-weight:600;cursor:pointer;padding:.2rem 0;list-style:disclosure-closed}details[open] .guild-pref-desc-summary{list-style:disclosure-open}.guild-pref-desc-body{font-size:.82rem;color:#555;margin:.25rem 0 .5rem 1rem;line-height:1.45}.guild-pref-form{display:flex;flex-direction:column;gap:.75rem;max-width:360px}.guild-pref-readonly{margin-top:.75rem}.guild-pref-readonly-label{font-size:.82rem;font-weight:600;color:#555;margin:0 0 .4rem}.guild-pref-readonly-list{margin:0;padding-left:1.25rem;font-size:.875rem}.guild-pref-readonly-list li+li{margin-top:.2rem}.guild-control-row{justify-content:space-between}.guild-control-row,.guild-control-stats{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.guild-control-actions{display:flex;gap:.5rem;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .65rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.status-pill-good{background:rgba(147,204,134,.28);color:#245f36}.status-pill-warn{background:rgba(238,183,95,.28);color:#7a4f00}.pill-specialty{background:rgba(238,183,95,.28);color:#7a4500}.pill-cotl-blue{background:rgba(70,130,220,.18);color:#1a3a7a}.pill-cotl-green{background:rgba(60,180,90,.18);color:#1a5a30}.pill-cotl-gold{background:rgba(210,170,30,.2);color:#6a4a00}.pill-cotl-orange{background:rgba(230,120,30,.2);color:#7a3000}.pill-superpower{background:rgba(113,60,151,.15);color:#4a2268;font-style:italic;text-transform:none;letter-spacing:0}.user-card-pronouns{font-size:.82rem;font-weight:400;color:var(--torch-neutral-700);white-space:nowrap}.user-card-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}