:root{--background:#f4f7fb;--surface-muted:#eef3f8;--text:#172033;--muted:#667085;--border:#d7dee8;--primary:#155eef;--primary-dark:#1047b6;--success:#087443;--success-bg:#e7f7ef;--warning:#a15c00;--warning-bg:#fff4df;--danger:#b42318;--danger-bg:#fff0ee;--shadow:0 10px 25px rgba(29,48,82,0.08)}*{box-sizing:border-box}body,html{background:var(--background)}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;color:white;background:#102a56}.brand{font-size:1.1rem;font-weight:700}.topbar-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.topbar .button-secondary{color:white;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.1)}.app-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 61px)}.sidebar{padding:1rem;border-right:1px solid var(--border);background:#f9fbfd}.sidebar-nav{display:grid;grid-gap:.35rem;gap:.35rem}.nav-link{padding:.7rem .8rem;color:#43516a;border-radius:.6rem;font-size:.94rem}.nav-link:hover{color:var(--primary);background:#e8f0ff}.main-content{width:min(1280px,100%);margin:0 auto;padding:1.75rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.card h2,.card h3,.page-header h1,.page-header h2{margin:0}.muted,.page-header p{color:var(--muted)}.page-header p{margin:.4rem 0 0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.card{padding:1.15rem;border-radius:.85rem;background:var(--surface)}.card+.card{margin-top:1rem}.card-grid .card+.card{margin-top:0}.stat-value{margin-top:.45rem;font-size:2rem;font-weight:750}.section-stack{display:grid;grid-gap:1rem;gap:1rem;margin-top:1rem}.anchor-section{scroll-margin-top:1rem}.assignment-list{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:1rem}.assignment-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:.7rem;background:var(--surface)}.assignment-main{min-width:0}.assignment-title{margin:0 0 .3rem;font-weight:700}.assignment-meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;color:var(--muted);font-size:.9rem}.badge{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;padding:.25rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700}.badge-success{color:var(--success);background:var(--success-bg)}.badge-warning{color:var(--warning);background:var(--warning-bg)}.badge-danger{color:var(--danger);background:var(--danger-bg)}.badge-neutral{color:#475467;background:#edf0f4}.button,.button-danger,.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:2.55rem;padding:.55rem .9rem;border:1px solid transparent;border-radius:.55rem;font-weight:700;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.button{color:white;background:var(--primary)}.button:hover{background:var(--primary-dark)}.button-danger:disabled,.button-secondary:disabled,.button:disabled{cursor:not-allowed;opacity:.55}.button-secondary{color:#344054;border-color:var(--border);background:white}.button-secondary:hover{background:var(--surface-muted)}.button-danger{color:white}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.9rem;gap:.9rem}.form-field{display:grid;grid-gap:.35rem;gap:.35rem}.form-field-full{grid-column:1/-1}.field-label,.form-field label{color:#344054;font-size:.88rem;font-weight:700}.checkbox-group{display:flex;flex-wrap:wrap;gap:.6rem .9rem}.checkbox-option{display:inline-flex;align-items:center;gap:.35rem;color:#344054;font-size:.9rem}.input,.select,.textarea{width:100%;min-height:2.55rem;padding:.55rem .65rem;color:var(--text);border:1px solid #b8c2d1;border-radius:.5rem;background:white}.textarea{min-height:6rem;resize:vertical}.multi-select{min-height:10rem}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border-radius:999px;color:#174ea6;background:#eaf2ff;font-size:.9rem}.tag-remove{padding:0;border:0;color:inherit;background:transparent;cursor:pointer;font-size:1rem;line-height:1}.assignment-student-picker{display:grid;min-width:0;grid-gap:1rem;gap:1rem}.assignment-student-picker-heading,.selected-students-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;flex-wrap:wrap}.assignment-student-picker-actions{margin-top:0}.assignment-student-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.6rem;gap:.6rem;min-width:0;padding:.75rem;border:1px solid #d5e6f1;border-radius:.9rem;background:#f7fcff}.assignment-student-option{display:flex;align-items:flex-start;gap:.65rem;min-width:0;padding:.7rem .75rem;border:1px solid #d9e8f5;border-radius:.75rem;background:#fff;cursor:pointer}.assignment-student-option:has(input:checked){border-color:#9ed8ec;background:#e8f8ff}.assignment-student-option input{flex:0 0 auto;width:1.1rem;height:1.1rem;margin-top:.1rem;accent-color:var(--primary)}.assignment-student-option span{display:grid;min-width:0;grid-gap:.15rem;gap:.15rem}.assignment-student-option small{color:var(--muted);overflow-wrap:anywhere}.selected-students-panel{display:grid;min-width:0;grid-gap:.65rem;gap:.65rem;padding:.85rem;border:1px solid #cfe5c8;border-radius:.9rem;background:#f7fff4}.selected-students-list{display:flex;min-width:0;flex-wrap:wrap;gap:.45rem}.assignment-group-list{display:grid;min-width:0;grid-gap:.85rem;gap:.85rem}.assignment-group-card{min-width:0;padding:1rem;border:1px solid #cfe5f1;border-radius:1rem;background:#fbfeff;box-shadow:0 5px 16px rgba(39,99,141,.06)}.assignment-group-card-header{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:1rem}.assignment-group-card-header h3{margin:0}.assignment-group-card-header p{margin:.3rem 0 0}.assignment-group-card-meta{display:flex;min-width:0;flex-wrap:wrap;gap:.45rem 1rem;margin-top:.75rem;color:var(--muted);font-size:.9rem}.status-badge{display:inline-flex;flex:0 0 auto;align-items:center;padding:.3rem .6rem;border-radius:999px;font-size:.8rem;font-weight:800}.status-active{color:var(--success);background:var(--success-bg)}.status-inactive{color:#475467;background:#edf0f4}.assignment-group-details{display:grid;min-width:0;grid-gap:.85rem;gap:.85rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed #cfe5f1}.assignment-group-editor{display:grid;min-width:0;grid-gap:1rem;gap:1rem}.assignment-groups-heading,.legacy-assignment-list{min-width:0}.assignment-groups-heading{padding-top:.4rem;border-top:1px solid #d5e6f1}.assignment-groups-heading h3,.legacy-assignment-list h3{margin:0}.assignment-groups-heading p,.legacy-assignment-list>p{margin:.35rem 0 0}.error-list{margin:.6rem 0 0;padding-left:1.25rem;color:var(--danger)}.success-text{margin:.6rem 0 0;color:var(--success)}.input:focus,.select:focus,.textarea:focus{outline:3px solid #d8e5ff;border-color:var(--primary)}.form-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.error-message,.form-error{color:var(--danger);font-size:.9rem}.success-message{color:var(--success);font-size:.9rem}.table-wrap{overflow-x:auto;margin-top:1rem;border:1px solid var(--border);border-radius:.65rem}.data-table{width:100%;min-width:700px;border-collapse:collapse;background:white}.data-table td,.data-table th{padding:.75rem .8rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.data-table th{color:#475467;background:#f8fafc;font-size:.82rem;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.empty-state{padding:1.5rem;color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:.7rem;background:#fbfcfe}.overview-filters{align-items:end}.overview-cancel-toggle{min-height:2.55rem;align-items:center}.overview-date-heading{margin:1.1rem 0 0;color:#344054;font-size:1.05rem;font-weight:700}.overview-summary{margin-top:1rem}.overview-groups{grid-gap:1.2rem;gap:1.2rem}.overview-group,.overview-groups{display:grid;min-width:0;max-width:100%}.overview-group{grid-gap:.75rem;gap:.75rem;padding-top:.25rem}.overview-group-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:.65rem;background:var(--surface-muted)}.overview-class-group,.overview-group-heading,.overview-group-heading>div{min-width:0;max-width:100%}.overview-class-group h4,.overview-group-heading h3{margin:0}.overview-group-heading p{margin:.25rem 0 0}.overview-class-group h4{padding-left:.2rem;color:#344054}.overview-table{min-width:1120px}.overview-group .table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto}.calendar-card-list{display:grid;grid-gap:.9rem;gap:.9rem}.calendar-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:1rem;gap:1rem;align-items:center;width:100%;min-width:0;padding:1rem;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,rgba(226,244,255,.76),rgba(255,253,242,.9))}.calendar-card h3{margin:0 0 .25rem}.calendar-card-stats{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;color:var(--muted);font-size:.88rem}@media (max-width:760px){.calendar-card{grid-template-columns:1fr}}.overview-warning{margin-top:1rem;border-color:#f2c46d;background:var(--warning-bg)}.overview-warning h2{margin:0}.overview-warning .list-clean li{border-bottom-color:rgba(161,92,0,.2)}.overview-cancelled{border-color:#c8ced8;background:#f5f6f8}.overview-cancelled .overview-group-heading{background:#e7e9ee}.login-shell{display:grid;place-items:center;min-height:100vh;padding:1rem;background:linear-gradient(140deg,#e9f1ff,#f6f9fc 55%,#eef8f4)}.login-card{width:min(430px,100%);border:1px solid var(--border);border-radius:1rem;background:white;box-shadow:0 20px 45px rgba(29,48,82,.14)}.login-card h1{margin:0;font-size:1.55rem}.login-card p{color:var(--muted)}.login-card form{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.35rem}.login-card .button{width:100%;margin-top:.4rem}.small-note{margin-top:1.2rem;color:var(--muted);font-size:.82rem;line-height:1.6}.two-column{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);grid-gap:1rem;gap:1rem;align-items:start}.stack-small{display:grid;grid-gap:.55rem;gap:.55rem}.list-clean{display:grid;grid-gap:.6rem;gap:.6rem;padding:0;margin:0;list-style:none}.list-clean li{padding:.65rem 0;border-bottom:1px solid var(--border)}.list-clean li:last-child{border-bottom:0}@media (max-width:900px){.app-layout{grid-template-columns:1fr}.sidebar{padding:.65rem 1rem;border-right:0;border-bottom:1px solid var(--border)}.sidebar-nav{display:flex;overflow-x:auto;gap:.4rem}.nav-link{flex:0 0 auto}.card-grid,.two-column{grid-template-columns:1fr}}@media (max-width:600px){.topbar{align-items:flex-start;padding:.8rem 1rem}.topbar-user{flex-direction:column;align-items:flex-end;gap:.4rem}.main-content{padding:1rem}.page-header{display:block}.page-header .button,.page-header .button-secondary{margin-top:.8rem}.form-grid{grid-template-columns:1fr}.form-field-full{grid-column:auto}.assignment-card{align-items:flex-start;flex-direction:column}.assignment-card .button,.assignment-card .button-secondary{width:100%}.login-card{padding:1.35rem}}:root{--background:#edf8ff;--surface:#ffffff;--surface-muted:#f4fbff;--text:#233552;--muted:#65758e;--border:#d9e8f5;--primary:#2787e8;--primary-dark:#1765bb;--success:#188a55;--success-bg:#e8f8ed;--warning:#a56100;--warning-bg:#fff5ce;--danger:#c93f68;--danger-bg:#fff0f4;--sky:#45bff3;--deep-blue:#2452a4;--grass:#63bf78;--sun:#ffc844;--orange:#ff914d;--pink:#f175a0;--purple:#8c72de;--shadow:0 16px 38px rgba(44,92,135,0.12);--shadow-soft:0 8px 22px rgba(44,92,135,0.09)}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 9% 8%,rgba(255,255,255,.95) 0 1.2rem,transparent 1.3rem),radial-gradient(circle at 93% 26%,rgba(255,220,113,.24) 0 .35rem,transparent .45rem),linear-gradient(145deg,#eaf8ff,#f9fcf3 54%,#fff8ed);background-attachment:fixed}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(39,135,232,.35);outline-offset:2px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;min-height:72px;padding:.75rem 1.5rem;background:linear-gradient(105deg,#216bb8,#3ba9dc 54%,#58bb82);border-bottom:3px solid rgba(255,255,255,.72);box-shadow:0 5px 18px rgba(31,94,149,.18)}.brand{display:flex;align-items:center;gap:.65rem;min-width:0;font-size:1.05rem;letter-spacing:.01em}.brand-mark{display:grid;flex:0 0 auto;width:2.2rem;height:2.2rem;place-items:center;color:#8b5a00;border-radius:50%;background:var(--sun);box-shadow:0 3px 0 rgba(132,83,0,.2);font-size:1.2rem}.brand small,.brand strong{display:block}.brand strong{color:#fff;line-height:1.15}.brand small{margin-top:.22rem;color:#fff8cf;font-size:.73rem;font-weight:700;letter-spacing:.08em}.topbar-user{flex-wrap:wrap;justify-content:flex-end}.user-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.13)}.user-dot{width:.58rem;height:.58rem;border-radius:50%;background:#bdf082;box-shadow:0 0 0 3px rgba(189,240,130,.2)}.topbar .button-secondary{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.14)}.topbar .button-secondary:hover{color:var(--deep-blue);background:#fff}.app-layout{grid-template-columns:270px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{position:-webkit-sticky;position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto;padding:1.2rem 1rem 1rem;border-right:1px solid #d4e7f4;background:linear-gradient(180deg,rgba(247,253,255,.98),rgba(244,251,244,.98))}.sidebar-intro{padding:.9rem .85rem;border:1px solid #d7eaf6;border-radius:1rem;background:#fff;box-shadow:var(--shadow-soft)}.sidebar-kicker{margin:0 0 .2rem;color:var(--orange);font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.sidebar-intro strong{color:var(--deep-blue);font-size:1rem}.sidebar-nav{gap:1.05rem;margin-top:1.15rem}.nav-section{display:grid;grid-gap:.3rem;gap:.3rem}.nav-section-title{padding:0 .35rem .2rem;color:var(--purple);font-size:.76rem;font-weight:800;letter-spacing:.08em}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.65rem .7rem;color:#435b76;border:1px solid transparent;border-radius:.78rem;font-size:.9rem;font-weight:650;transition:transform .14s ease,color .14s ease,background .14s ease,border-color .14s ease}.nav-link:hover{color:var(--deep-blue);border-color:#bfe3f4;background:#e8f7ff;transform:translateX(2px)}.nav-link-primary{border-left:3px solid var(--sky)}.nav-link-station{border-left:3px solid var(--grass)}.nav-icon{display:inline-grid;flex:0 0 auto;width:1.5rem;height:1.5rem;place-items:center;border-radius:.5rem;background:#fff;box-shadow:0 2px 6px rgba(44,92,135,.1);font-size:.92rem}.sidebar-mascot{display:grid;grid-gap:.35rem;gap:.35rem;margin-top:1.25rem;padding:.8rem;overflow:hidden;border:1px solid #d6e9ef;border-radius:1rem;background:linear-gradient(145deg,#fffdf1,#edfaff);text-align:center}.sidebar-mascot img{display:block;width:100%;height:auto}.sidebar-mascot span{color:var(--deep-blue);font-size:.78rem;font-weight:800}.main-content{width:min(1360px,100%);min-width:0;padding:2rem}.page-header{margin-bottom:1.45rem}.page-header h1{color:var(--deep-blue);font-size:clamp(1.55rem,2.2vw,2rem);letter-spacing:-.02em}.page-header p{line-height:1.6}.card{padding:1.3rem;border:1px solid var(--border);border-radius:1.2rem;box-shadow:var(--shadow)}.card h2,.card h3{color:var(--deep-blue)}.card h2{font-size:1.15rem}.card h3{font-size:1rem}.button,.button-danger,.button-secondary{min-height:2.8rem;padding:.62rem 1rem;border-radius:.85rem;box-shadow:0 4px 10px rgba(44,92,135,.1);transition:transform .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease,opacity .14s ease}.button-danger:hover,.button-secondary:hover,.button:hover{transform:translateY(-1px);box-shadow:0 7px 15px rgba(44,92,135,.14)}.button-danger:active,.button-secondary:active,.button:active{transform:translateY(0)}.button-secondary{border-color:#c7dcea;background:#fff}.button-danger{background:var(--danger)}.input,.select,.textarea{min-height:2.8rem;padding:.62rem .72rem;border-color:#bfd2e2;border-radius:.78rem}.input:focus,.select:focus,.textarea:focus{outline:3px solid rgba(69,191,243,.25);border-color:var(--sky)}.duty-slot-time-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.field-label,.form-field label{color:#39516e}.checkbox-option{padding:.4rem .58rem;border:1px solid #d6e6f1;border-radius:.65rem;background:#fbfeff}.checkbox-option:has(input:checked){border-color:#9ed8ec;background:#e8f8ff}.error-message,.form-error,.success-message{padding:.75rem .85rem;border-radius:.75rem;line-height:1.55}.error-message,.form-error{border:1px solid #f2c4d1;background:var(--danger-bg)}.success-message{border:1px solid #b7e4c8;background:var(--success-bg)}.table-wrap{border-color:#d5e6f1;border-radius:.9rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.data-table{background:#fff}.data-table th{color:#38536f;background:#eff9ff}.data-table tbody tr:hover{background:#fbfeff}.empty-state{border-color:#bcdde9;background:#f7fcff}.inset-panel{padding:1rem;border:1px solid #d5e7f1;border-radius:1rem;background:#f5fbff}.eyebrow{margin:0 0 .35rem;color:var(--orange);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.login-motto{color:var(--deep-blue);font-weight:800;letter-spacing:.05em}.admin-banner-strip,.hero-banner-card,.login-banner-wrap{overflow:hidden;border:1px solid #d7e8f2;border-radius:1.25rem;background:#fff;box-shadow:var(--shadow)}.hero-banner-card{margin-bottom:1rem}.hero-banner-card .duty-banner,.login-banner-wrap .duty-banner{display:block;width:100%;height:auto}.admin-banner-strip{max-width:980px;margin:0 auto 1.2rem}.admin-banner-strip .duty-banner{display:block;width:100%;height:auto}.welcome-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:150px;overflow:hidden;padding:1.35rem 1.5rem;border:1px solid #d5e7f2;border-radius:1.2rem;background:linear-gradient(115deg,#fffdf0,#fff 58%,#edfaff);box-shadow:var(--shadow-soft)}.welcome-card h2{margin:0;color:var(--deep-blue);font-size:clamp(1.35rem,2vw,1.8rem)}.welcome-card p{margin:.5rem 0 0}.welcome-card .login-motto{margin-top:.65rem;color:var(--orange)}.welcome-mascot{display:block;width:min(185px,25%);height:auto;object-fit:contain}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1rem}.stat-card{position:relative;overflow:hidden;border-top:5px solid var(--sky)}.stat-card:after{position:absolute;right:-1.1rem;bottom:-1.6rem;width:5rem;height:5rem;border-radius:50%;background:rgba(69,191,243,.1);content:""}.stat-icon{display:grid;width:2.3rem;height:2.3rem;place-items:center;border-radius:.75rem;background:#e8f8ff;font-size:1.15rem}.stat-card .stat-value{margin-top:.7rem;color:var(--deep-blue)}.stat-card-purple{border-top-color:var(--purple)}.stat-card-purple .stat-icon{background:#f0ecff}.stat-card-yellow{border-top-color:var(--sun)}.stat-card-yellow .stat-icon{background:#fff7d8}.stat-card-green{border-top-color:var(--grass)}.stat-card-green .stat-icon{background:#e8f8ed}.stat-card-pink{border-top-color:var(--pink)}.stat-card-pink .stat-icon{background:#fff0f6}.stat-subtext{position:relative;z-index:1;margin:.4rem 0 0;color:var(--muted);font-size:.82rem}.quick-actions{margin-top:1rem}.quick-actions h2{margin-bottom:.85rem}.quick-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.8rem;gap:.8rem}.quick-action{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:3.4rem;padding:.85rem 1rem;color:var(--deep-blue);border:1px solid #d5e7f1;border-radius:.9rem;background:#f5fbff;font-weight:800;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.quick-action:hover{background:#fff;box-shadow:var(--shadow-soft);transform:translateY(-2px)}.quick-action:nth-child(2){color:#287743;background:#f1fbf1}.duty-index{margin-top:1.25rem}.duty-index .button-secondary{border-color:#cfc5f5;background:#f7f4ff}.duty-group-card{border-top:5px solid var(--purple)}.duty-group-card:nth-child(3n+2){border-top-color:var(--sky)}.duty-group-card:nth-child(3n+3){border-top-color:var(--orange)}.admin-section{scroll-margin-top:92px;border-top:5px solid var(--sky)}.admin-section h2:before{display:inline-block;margin-right:.45rem}.admin-section-students{border-top-color:var(--grass)}.admin-section-students h2:before{content:"🌱"}.admin-section-terms{border-top-color:var(--purple)}.admin-section-terms h2:before{content:"📚"}.admin-section-users{border-top-color:var(--pink)}.admin-section-users h2:before{content:"🧑‍🏫"}.account-self-card{display:grid;grid-gap:1rem;gap:1rem;padding:1rem;border:1px solid #e1d9fa;border-radius:1rem;background:#fbf9ff}.account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin:0}.account-summary>div{padding:.75rem;border-radius:.75rem;background:#ffffff}.account-summary dt{color:var(--muted);font-size:.82rem}.account-summary dd{margin:.2rem 0 0;font-weight:700}.admin-section-password{border-top-color:var(--deep-blue)}.admin-section-password h2:before{content:"🔐"}.admin-section-duty{border-top-color:var(--sun)}.admin-section-duty h2:before{content:"🌈"}.admin-section-assignments{border-top-color:var(--sky)}.admin-section-assignments h2:before{content:"🗓️"}.admin-section-checkins{border-top-color:var(--grass)}.admin-section-checkins h2:before{content:"✅"}.station-page-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.station-mascot{display:block;width:min(165px,20%);height:auto;object-fit:contain}.station-slot-section{border-top:5px solid var(--sky)}.station-table{min-width:760px}.station-table tbody tr{transition:background .14s ease}.station-table tbody tr:hover{background:#f4fbff}.station-row-checked-in{background:#f0fbf3}.station-table button{min-width:7.5rem;min-height:3rem;font-size:.95rem}.station-badge-open{color:#1765bb;background:#e8f5ff}.station-badge-upcoming{color:#6c5aa8;background:#f0ecff}.station-badge-on-time{color:#197548;background:#e3f8ea}.station-badge-late{color:#a45d00;background:#fff1c7}.station-badge-absent{color:#b6375e;background:#ffeaf1}.empty-state-illustrated{display:flex;align-items:center;justify-content:center;gap:1rem;text-align:left}.empty-state-illustrated img{display:block;width:min(150px,30%);height:auto}.empty-state-illustrated strong{color:var(--deep-blue)}.empty-state-illustrated span{margin-top:.35rem;color:var(--muted);font-size:.9rem}.login-shell{place-items:start center;padding:1.5rem;background:radial-gradient(circle at 8% 85%,rgba(99,191,120,.22) 0 4rem,transparent 4.1rem),linear-gradient(145deg,#e7f8ff,#fffdf0 55%,#fff0f6)}.login-stage{display:grid;width:min(1180px,100%);grid-gap:1.1rem;gap:1.1rem;margin:0 auto}.login-content{display:grid;grid-template-columns:minmax(0,430px) minmax(240px,1fr);align-items:center;grid-gap:2rem;gap:2rem;padding:.5rem 1rem 1rem}.login-card{width:100%;padding:2rem;border:1px solid #d6e8f2;border-radius:1.35rem;box-shadow:0 22px 48px rgba(44,92,135,.15)}.login-card h1{color:var(--deep-blue);font-size:1.8rem}.login-card .login-motto{margin:.75rem 0 0;color:var(--orange)}.login-mascot{display:grid;justify-items:center;grid-gap:.7rem;gap:.7rem;color:var(--deep-blue);text-align:center}.login-mascot img{display:block;width:min(100%,430px);height:auto;max-height:430px;object-fit:contain}.login-mascot p{margin:0;color:var(--deep-blue);font-weight:800}@media (max-width:1100px){.app-layout{grid-template-columns:235px minmax(0,1fr)}.main-content{padding:1.5rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.app-layout{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;padding:.8rem 1rem 1rem;border-right:0;border-bottom:1px solid var(--border)}.sidebar,.sidebar-nav{min-width:0;overflow:visible}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;grid-gap:.8rem;gap:.8rem}.main-content{min-width:0}.sidebar-mascot{display:none}.card-grid,.two-column{grid-template-columns:1fr}.login-content{grid-template-columns:minmax(0,430px) minmax(180px,1fr);gap:1rem}}@media (max-width:600px){.topbar{padding:.75rem .9rem}.brand,.topbar{align-items:flex-start}.brand{font-size:.92rem}.brand-mark{width:1.9rem;height:1.9rem}.brand small{font-size:.64rem}.topbar-user{flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.78rem}.user-pill{padding:.3rem .5rem}.main-content{padding:1rem}.sidebar-intro{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.65rem .75rem}.sidebar-nav{display:flex;min-width:0;max-width:100%;gap:.5rem;overflow-x:auto;padding:.15rem .1rem .35rem}.nav-section{display:contents}.nav-section-title{display:none}.nav-link{flex:0 0 auto;padding:.55rem .65rem;white-space:nowrap}.page-header{display:block}.page-header .button,.page-header .button-secondary{margin-top:.8rem}.form-grid{grid-template-columns:1fr}.form-field-full{grid-column:auto}.assignment-card{align-items:flex-start;flex-direction:column}.assignment-card .button,.assignment-card .button-secondary{width:100%}.admin-banner-strip,.hero-banner-card,.login-banner-wrap{border-radius:.9rem}.welcome-card{align-items:flex-start;padding:1.1rem}.welcome-mascot{width:105px}.quick-action-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action{flex-direction:column;min-height:5.3rem}.quick-action,.station-page-heading{align-items:flex-start}.station-mascot{width:105px}.empty-state-illustrated{align-items:flex-start;text-align:left}.empty-state-illustrated img{width:105px}.login-shell{padding:.75rem}.login-content{grid-template-columns:1fr;gap:.8rem;padding:0}.login-card{padding:1.35rem}.login-mascot{order:2}.login-mascot img{width:180px;max-height:190px}}@media (max-width:430px){.stats-grid{grid-template-columns:1fr}.welcome-card{display:block}.welcome-mascot{width:120px;margin:.5rem auto 0}}@media (min-width:1101px){.hero-banner-card{width:80%;max-width:1040px;margin:0 auto .85rem}}.welcome-card{min-height:96px;padding:.85rem 1.15rem}.welcome-card h2{font-size:1.4rem}.welcome-card p{margin-top:.25rem}.welcome-card .login-motto{margin-top:.35rem}.welcome-mascot{width:min(130px,16%)}.stat-card{display:flex;min-height:150px;flex-direction:column;gap:.25rem}.stat-card .stat-value{display:flex;min-height:2.2rem;align-items:center;line-height:1}.stat-card>.muted:last-child{margin-top:auto;line-height:1.45}.sidebar-intro{padding:.65rem .75rem}.sidebar-kicker{margin-bottom:.1rem}.nav-section-title{color:#674fae}.station-page-heading{display:block;flex:1 1}.station-page-heading h1{margin:0 0 .35rem}.station-heading-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;color:var(--muted);font-size:.98rem;font-weight:650}.station-heading-separator{color:var(--purple);font-weight:900}.station-heading-meta .login-motto{display:inline-flex;margin:0;font-size:.98rem}.empty-state-illustrated{min-height:260px;padding:2rem;overflow:hidden;background:radial-gradient(circle at 10% 18%,rgba(255,210,89,.22) 0 .3rem,transparent .4rem),radial-gradient(circle at 91% 78%,rgba(69,191,243,.18) 0 .45rem,transparent .55rem),linear-gradient(140deg,#f4fcff,#fffdf1)}.empty-state-illustrated img{width:min(210px,34%)}.empty-state-illustrated span,.empty-state-illustrated strong{display:block}.empty-state-illustrated strong{font-size:1.12rem}.empty-state-illustrated span{margin-top:.45rem}.empty-state-illustrated span+span{margin-top:.25rem}@media (max-width:1100px){.hero-banner-card{width:100%;max-width:none;margin-bottom:.85rem}}@media (max-width:600px){.welcome-card{min-height:82px;padding:.7rem .85rem}.welcome-card h2{font-size:1.25rem}.welcome-mascot{width:92px}.station-heading-meta,.station-heading-meta .login-motto{font-size:.88rem}.empty-state-illustrated{min-height:235px;padding:1.35rem}.empty-state-illustrated img{width:145px}.assignment-group-card-header{flex-direction:column}.assignment-group-card .form-actions .button,.assignment-group-card .form-actions .button-danger,.assignment-group-card .form-actions .button-secondary{flex:1 1 100%}.assignment-group-card-meta{display:grid;grid-gap:.3rem;gap:.3rem}}.duty-hours-backfill{min-width:0}.backfill-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-width:0}.backfill-toolbar>div{min-width:0}.backfill-table{min-width:860px}.backfill-submit{display:grid;grid-gap:.8rem;gap:.8rem}.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}@media (max-width:600px){.backfill-toolbar{align-items:flex-start;flex-direction:column}.backfill-toolbar .button-secondary{width:100%}}.calendar-month-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.calendar-month-toolbar label{min-width:0}.school-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:.4rem;gap:.4rem;width:100%;min-width:0;max-width:100%}.school-month-weekday{text-align:center;font-weight:700;color:#315d91;padding:.4rem 0}.school-month-day{min-width:0;min-height:106px;padding:.65rem;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;border:1px solid #d3e7f5;border-radius:14px;background:#f5fbff;color:#24445e;cursor:pointer;overflow-wrap:anywhere}.school-month-day.confirmed{background:#effbf2;border-color:#b8ddc3}.school-month-day.unconfirmed{background:#fff8e7;border-color:#e8d49c}.school-month-day.selected{outline:3px solid #619bda;outline-offset:-3px}.school-month-day:focus-visible{outline:3px solid #5e68ac}.school-month-day:disabled{opacity:.4;cursor:default}.school-month-cycle{font-weight:700;color:#5d4c96;min-height:1.3em}.school-month-day small{font-size:.75rem}.calendar-bulk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));grid-gap:.35rem .75rem;gap:.35rem .75rem;max-height:260px;overflow-y:auto;padding:.5rem;border:1px solid #d3e7f5;border-radius:12px;background:#f9fcff}@media (max-width:600px){.school-month-grid{gap:.2rem}.school-month-weekday{font-size:.7rem}.school-month-day{min-height:86px;padding:.35rem .2rem;border-radius:8px;font-size:.8rem}.school-month-day small{font-size:.6rem}.school-month-cycle{font-size:.75rem}}