@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--brand:#454bd3;--ink:#20273d;--muted:#647088;--line:#e6e9f0;--bg:#f5f6fb;--teal:#087c74;--orange:#a56309;--radius:18px;font-family:'DM Sans',sans-serif;color:var(--ink);font-size:16px;background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:var(--brand)}button{border:0;background:none;color:inherit}svg{width:20px;height:20px;vertical-align:middle;flex-shrink:0}.shell{display:grid;grid-template-columns:234px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-size:24px;font-weight:800;letter-spacing:-1px}.brand img{width:37px;height:37px}.brand-sub{font-size:12px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin:10px 0 0 49px}.nav-label{font-size:12px;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted);padding:0 13px;margin-bottom:12px}.nav{display:flex;flex-direction:column;gap:7px}.nav button{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:11px;text-align:left;font-size:14px;font-weight:600}.nav button:hover{background:#f5f6fb}.nav .active{background:#eef0ff;color:var(--brand)}.sidebar-footer{margin-top:auto;background:#f4f5ff;padding:17px;border-radius:13px;font-size:13px;color:var(--muted);line-height:1.7}.sidebar-footer strong{display:block;color:var(--brand);font-size:14px}.workspace{min-width:0}.topbar{height:84px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.78);display:flex;align-items:center;justify-content:space-between;padding:0 42px;gap:15px}.breadcrumb{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:10px}.breadcrumb strong{color:var(--ink);font-weight:500}.profile{display:flex;align-items:center;gap:11px;font-size:13px}.avatar{width:36px;height:36px;background:#e8eaff;border-radius:50%;display:grid;place-items:center;color:var(--brand);font-size:13px;font-weight:700}.profile span{display:block}.profile small{color:var(--muted)}main{padding:36px 42px 50px;max-width:1480px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:30px;letter-spacing:-1.1px;font-weight:800;line-height:1.3}h2{font-size:18px;letter-spacing:-.35px}h3{font-size:16px}.subtitle{color:var(--muted);margin-top:8px;font-size:14px;line-height:1.6}.eyebrow{font-size:12px;color:var(--brand);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}.controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.control label,label.field{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input,select,textarea{border:1px solid #dce0ec;border-radius:9px;background:#fff;padding:11px 12px;width:100%;min-width:0;color:var(--ink)}select{padding-right:26px}input[type=date]{width:154px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);margin:0;flex-shrink:0}textarea{min-height:82px;resize:vertical;font-size:14px;line-height:1.6}input::placeholder,textarea::placeholder{color:#7b8599}.summary{display:grid;grid-template-columns:1fr 1fr 1.55fr;gap:16px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:19px 21px;display:flex;gap:14px;align-items:center}.stat-icon{background:#eef0ff;color:var(--brand);padding:11px;border-radius:12px}.stat:nth-child(2) .stat-icon{background:#e8f6f3;color:var(--teal)}.stat:nth-child(3) .stat-icon{background:#fff5df;color:var(--orange)}.stat small{display:block;color:var(--muted);font-size:13px;margin-bottom:4px}.stat strong{font-family:Manrope,sans-serif;font-size:23px}.stat.theme strong{font-size:15px;line-height:1.5}.daily-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:22px;align-items:stretch}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-head{padding:22px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.card-head .title-row{display:flex;align-items:center;gap:10px}.step{font-size:12px;color:var(--brand);border-radius:7px;background:#eef0ff;width:26px;height:26px;display:grid;place-items:center;font-weight:700}.card-body{padding:0 24px 23px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.chip{border-radius:6px;padding:5px 8px;background:#f0f2f8;color:var(--muted);font-size:12px;font-weight:600;display:inline-block}.chip.teal{background:#e8f6f3;color:var(--teal)}.chip.amber{background:#fff4df;color:var(--orange)}.chip.purple{background:#eef0ff;color:var(--brand)}.link-button{color:var(--brand);font-size:13px;font-weight:600;padding:5px 0}.search{position:relative;margin-bottom:14px}.search svg{position:absolute;top:12px;left:12px;color:var(--muted);width:18px}.search input{padding-left:39px;font-size:14px}.attendance-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.attendance-actions span{font-size:12px;color:var(--muted)}.student-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.student{padding:10px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer;min-width:0}.student.present{background:#f4f5ff;border-color:#dfe1fc}.student .initial{width:28px;height:28px;border-radius:50%;background:#eef0f5;color:#59667d;display:grid;place-items:center;font-size:11px;flex-shrink:0}.student.present .initial{background:#e4e6ff;color:var(--brand)}.student .student-name{flex:1;overflow-wrap:anywhere}.student small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.attendance-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:17px;padding-top:13px;font-size:12px;color:var(--muted)}.form-grid{display:grid;gap:17px}.activity-details{background:#f7f8fc;border-radius:11px;padding:16px;font-size:14px;line-height:1.7;color:#566177}.activity-details .detail-meta{display:flex;gap:20px;margin-top:12px;color:var(--muted);font-size:12px}.activity-details svg{width:15px;height:15px;margin-right:4px}.primary,.secondary{border-radius:9px;padding:12px 17px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px}.primary{background:var(--brand);color:#fff}.primary:hover{background:#363cbb}.secondary{background:#fff;border:1px solid #dce0ec}.secondary:hover{background:#f5f6fb}.save-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.save-row small{font-size:12px;color:var(--muted);line-height:1.5}.analysis{margin-top:22px;border:1px solid #f1d7a4;background:#fffaf0;border-radius:14px;padding:19px 23px}.analysis.ok{background:#f0faf7;border-color:#d0e9e1}.analysis-top{display:flex;align-items:center;gap:12px}.analysis-icon{padding:9px;background:#fff0cd;color:var(--orange);border-radius:10px}.ok .analysis-icon{background:#dcf1e7;color:var(--teal)}.analysis h3{font-size:15px}.analysis p{font-size:13px;color:#76684b;margin-top:4px;line-height:1.6}.ok p{color:#4e7368}.repeat-list{display:flex;gap:10px;flex-wrap:wrap;margin:13px 0 0 52px}.repeat-name{font-size:12px;background:#fff;border:1px solid #ecdcbf;border-radius:8px;padding:8px 11px}.repeat-name small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:30px 0 17px}.section-head p{font-size:13px;color:var(--muted);margin-top:5px}.suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.suggestion{padding:19px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}.suggestion h3{margin:13px 0 8px}.suggestion p{font-size:13px;line-height:1.7;color:var(--muted);flex:1}.suggestion .suggestion-footer{width:100%;margin-top:17px;padding-top:13px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.suggestion:nth-child(2) .chip{color:var(--teal);background:#e8f6f3}.suggestion:nth-child(3) .chip{color:var(--orange);background:#fff4df}.empty{padding:35px;text-align:center;color:var(--muted);line-height:1.8}.loading{padding:80px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:20;max-width:90vw;padding:13px 22px;background:#252d44;color:white;box-shadow:0 8px 28px #141a3026;border-radius:11px;font-size:14px;display:none}#toast.show{display:block}dialog{border:1px solid var(--line);border-radius:18px;padding:26px;width:min(580px,calc(100% - 28px));color:var(--ink);box-shadow:0 30px 100px #111a3333}dialog::backdrop{background:#151e4259;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.modal-error{font-size:13px;color:#a83b39;margin-top:12px}.login{max-width:520px;margin:12vh auto;background:white;border:1px solid var(--line);border-radius:22px;padding:42px}.login h1{margin:32px 0 14px}.login p{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:24px}.week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.day-card{padding:19px;background:white;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:14px;min-width:0}.day-card.today{border-color:#9c9fe8;box-shadow:0 0 0 2px #edefff}.day-card .day-title{font-size:13px;color:var(--muted)}.day-card strong{font-size:23px;font-family:Manrope,sans-serif}.day-card p{font-size:13px;color:var(--muted);line-height:1.7}.day-card button{margin-top:auto}.plan-banner{padding:22px 24px;margin-bottom:22px;background:#e9ecff;border:1px solid #d6dafa;border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:18px}.plan-banner h2{font-size:21px}.plan-banner p{font-size:13px;color:#5c648b;margin-top:7px}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.library-card{padding:23px;display:flex;flex-direction:column;gap:13px}.library-card p{font-size:14px;line-height:1.8;color:var(--muted)}.library-card .meta{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{font-size:12px;color:var(--muted);background:#f7f8fc;font-weight:600;white-space:nowrap}td,th{padding:17px 21px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted);margin-top:5px}.class-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.class-card{padding:25px}.class-card h2{margin:14px 0 7px}.class-card p{color:var(--muted);font-size:14px;line-height:1.7}.roster{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}.note{color:var(--muted);font-size:13px;line-height:1.7;margin-top:18px}.file-list{display:flex;gap:7px;flex-direction:column}.file-list button{text-align:left;font-size:13px;color:var(--brand)}.spacer{height:20px}.book-results{display:grid;gap:10px;margin-top:16px}.book-results a{padding:12px;background:#f4f5fb;border-radius:8px;text-decoration:none;font-size:14px}.book-results small{display:block;color:var(--muted);margin-top:4px}.login .brand-sub{margin-left:0}.error-box{padding:22px;border:1px solid #f0c3c3;border-radius:13px;background:#fff6f6;color:#9b3838;font-size:14px;line-height:1.7}
@media(min-width:1550px){main{padding-top:44px}.student{padding:12px;font-size:14px}.suggestion p{font-size:14px}}@media(max-width:1100px){.shell{grid-template-columns:198px 1fr}.sidebar{padding:28px 14px}.brand{font-size:21px}.brand-sub{font-size:10px}.topbar{padding:0 25px}main{padding:28px 25px}.page-head{align-items:flex-start;flex-direction:column}.daily-grid{grid-template-columns:1fr 1fr;gap:16px}.student-grid{grid-template-columns:1fr 1fr}.card-head{padding:19px}.card-body{padding:0 19px 20px}.summary{gap:12px}.stat{padding:15px}.week-grid{grid-template-columns:repeat(3,1fr)}.library-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:static;padding:18px 19px;gap:17px;border-right:0;border-bottom:1px solid var(--line)}.brand-sub,.nav-label,.sidebar-footer{display:none}.brand{font-size:22px}.brand img{width:32px;height:32px}.nav{flex-direction:column;gap:4px}.nav button{padding:12px;font-size:14px;gap:10px;min-height:44px}.nav svg{width:17px}.topbar{height:59px;padding:0 20px}.profile small{display:none}main{padding:25px 18px}.page-head{gap:20px}.controls{width:100%}.control:first-child{flex:1}.control select{width:100%}h1{font-size:26px}.summary{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px 12px;gap:10px}.stat.theme{grid-column:1/-1}.stat-icon{padding:8px}.stat strong{font-size:21px}.daily-grid{grid-template-columns:1fr;gap:18px}.student-grid{grid-template-columns:1fr 1fr}.suggestions,.library-grid,.class-cards{grid-template-columns:1fr}.analysis{padding:17px}.repeat-list{margin-left:0}.section-head{align-items:flex-start}.week-grid{grid-template-columns:1fr 1fr}.plan-banner{align-items:flex-start;flex-direction:column}.save-row small{max-width:140px}.login{margin:30px 16px;padding:28px}.profile>div:last-child{display:none}}@media(prefers-reduced-motion:no-preference){.card,.suggestion,.analysis{animation:appear .25s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}}

.control label,label.field{font-size:14px}.student{font-size:14px}.suggestion p{font-size:14px}[hidden]{display:none!important}

.danger-button{background:#a83b39}.danger-button:hover{background:#8b302e}

@media(max-width:480px){.page-head .controls{display:grid;grid-template-columns:1fr}.page-head input[type=date]{width:100%}}

.brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}#menu-toggle{display:none}.nav .help-button{border-top:1px solid var(--line);border-radius:0;margin-top:7px;color:var(--brand)}dialog{max-height:calc(100dvh - 28px);overflow-y:auto}.guide-progress{display:flex;gap:7px;margin-bottom:20px}.guide-progress span{height:5px;border-radius:3px;background:var(--line);flex:1}.guide-progress .filled{background:var(--brand)}.guide-content{line-height:1.7;font-size:15px}.guide-count{font-size:13px;color:var(--muted);margin-bottom:12px}.guide-content .chip{display:inline-flex;align-items:center;gap:5px}.guide-content .chip svg{width:16px;height:16px}.guide-content h3{font-size:22px;line-height:1.4;margin:16px 0 10px}.guide-tip{border-left:3px solid var(--brand);background:var(--bg);border-radius:0 9px 9px 0;padding:13px 15px;margin-top:17px;font-size:14px;color:var(--muted)}.guide-demo{font-size:12px;color:var(--muted);margin-top:14px}.guide-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.guide-footer>div{display:flex;gap:8px}.guide-footer .secondary:disabled{cursor:default}
#mobile-menu{inset:0 0 0 auto;margin:0;width:min(340px,calc(100vw - 32px));max-width:none;height:100dvh;max-height:100dvh;padding:24px 20px;border:0;border-left:1px solid var(--line);border-radius:20px 0 0 20px;overflow-y:auto;overscroll-behavior:contain}#mobile-menu::backdrop{background:#151e4266;backdrop-filter:blur(2px)}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.mobile-menu-head h2{font-size:20px}.mobile-menu-head button{min-width:48px;min-height:48px;padding:12px}body:has(#mobile-menu[open]){overflow:hidden}
@media(max-width:760px){#menu-toggle{display:inline-flex;min-height:48px;padding:12px 16px}#nav-slot{display:none}#mobile-menu #nav-panel{display:block}#mobile-menu .nav{gap:10px}#mobile-menu .nav button{min-height:50px;padding:14px 16px;font-size:15px}#mobile-menu .nav .help-button{margin-top:12px;padding-top:18px}}
@media(prefers-reduced-motion:no-preference){#mobile-menu[open]{animation:menu-enter .18s ease-out}@keyframes menu-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}}
@media(max-width:480px){dialog{padding:20px}.guide-footer{flex-wrap:wrap}.guide-footer>div{margin-left:auto}.guide-footer .primary,.guide-footer .secondary{padding:11px 12px}}
.guide-head{gap:12px;align-items:flex-start}#guide-close{min-width:44px;min-height:44px}

.day-agenda{margin-bottom:22px}.day-agenda .card-head{gap:20px;align-items:flex-start}.day-activities{display:grid;gap:10px;padding:0 24px 22px}.day-entry{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;text-align:left;background:var(--bg);width:100%;min-height:64px}.day-entry.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand);background:#f1f0ff}.day-entry strong{display:block;font-size:15px;line-height:1.5}.day-entry small{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:4px}.day-entry>span:first-child{min-width:0;overflow-wrap:anywhere}.day-checks{display:grid;gap:14px;margin-top:18px}.day-check{padding:16px;border:1px solid #e4d6b9;background:white;border-radius:11px}.day-check .row{flex-wrap:wrap;gap:10px}.day-check h3{font-size:16px;overflow-wrap:anywhere}.day-check p{color:var(--muted);font-size:13px;line-height:1.7;margin:10px 0}.day-check .repeat-list{margin:0}.analysis.ok .day-check{border-color:#cce3dc}.planned-activity{display:grid;gap:10px;padding:14px 0;border-top:1px solid var(--line)}.planned-activity h3{font-size:15px}.planned-activity .chip{white-space:normal}.plan-day{min-width:0;border:1px solid var(--line);border-radius:10px;padding:14px}.plan-day legend{padding:0 5px;font-weight:600}.plan-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.plan-row select{min-width:0;flex:1}.plan-row button{min-height:44px}.day-entry .chip{white-space:normal;flex-shrink:0;max-width:45%;text-align:center}
@media(max-width:760px){.day-agenda .card-head{flex-direction:column}.day-agenda .primary{min-height:44px}.day-activities{padding:0 19px 20px}.day-entry{padding:12px;align-items:flex-start;flex-direction:column;gap:8px}.day-entry .chip{max-width:none}.day-check{padding:13px}.plan-row{gap:8px}.plan-row button{font-size:12px}}

.participant-activity{margin-bottom:16px;color:var(--brand);font-weight:600;font-size:15px;line-height:1.6;overflow-wrap:anywhere}

.age-field{border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.age-field legend{font-weight:600;padding:0 5px}.age-field output{display:block;font-size:17px;font-weight:600;color:var(--brand);margin:0 0 16px}.age-labels{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}.age-labels label{cursor:pointer;min-height:24px}.age-range{position:relative;height:44px;--age-start:66.67%;--age-end:83.33%;margin:4px 0}.age-track{position:absolute;left:14px;right:14px;top:19px;height:6px;border-radius:6px;background:linear-gradient(to right,var(--line) var(--age-start),var(--brand) var(--age-start),var(--brand) var(--age-end),var(--line) var(--age-end))}.age-range input[type=range]{position:absolute;inset:0;width:100%;height:44px;margin:0;padding:0;background:transparent;border:0;box-shadow:none;pointer-events:none;appearance:none;-webkit-appearance:none}.age-range input[type=range]:focus{z-index:2;outline:none}.age-range input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:28px;height:28px;border-radius:50%;border:3px solid white;background:var(--brand);box-shadow:0 0 0 1px var(--brand);cursor:grab;pointer-events:auto}.age-range input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;border:3px solid white;background:var(--brand);box-shadow:0 0 0 1px var(--brand);cursor:grab;pointer-events:auto}.age-range input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid var(--ink);outline-offset:3px}.age-range input[type=range]:focus-visible::-moz-range-thumb{outline:3px solid var(--ink);outline-offset:3px}.activity-actions{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:auto;align-items:center}.activity-actions button{min-height:44px}.archived-toggle{display:flex;align-items:center;gap:8px;font-size:14px;min-height:44px;cursor:pointer}.archived-toggle input{width:18px;height:18px;accent-color:var(--brand)}.movement-history{margin-top:30px}.movement-history h2{font-size:20px;margin-bottom:8px}.movement-history .note{margin-bottom:16px}.class-card>.row{flex-wrap:wrap;gap:8px}

.school-switch{display:flex;flex-direction:column;gap:3px;min-width:0;margin-left:auto;margin-right:20px;max-width:300px}.school-switch label{font-size:11px;color:var(--muted)}.school-switch select{font-size:13px;min-width:0;width:100%;padding:7px 28px 7px 10px;min-height:36px}.settings-card{padding:24px}.settings-card h2,.settings-card h3{margin-bottom:12px}.settings-card p{font-size:14px;line-height:1.7;margin-bottom:14px}.settings-notice{padding:16px 20px;border:1px solid var(--line);border-radius:10px;background:#eef0ff;color:var(--muted);line-height:1.7;font-size:14px}.school-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.account-list{display:grid;gap:13px}.account-card{padding:22px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.account-card h3{font-size:16px;line-height:1.5}.account-card p{font-size:13px;color:var(--muted);line-height:1.7;margin:5px 0;overflow-wrap:anywhere}.account-card .chip{margin-top:8px}.account-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.account-actions button{min-height:44px}.settings-section>.note{margin:0 0 16px}#check-password{display:block;min-height:44px;margin-top:12px}.settings-section h2{font-size:20px}
@media(max-width:1100px){.school-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.school-switch{max-width:230px}.topbar .breadcrumb{display:none}}
@media(max-width:760px){.topbar{height:auto;min-height:76px;padding:12px 18px;gap:12px}.school-switch{margin:0;max-width:none;flex:1}.school-switch select{min-height:44px}.school-cards{grid-template-columns:1fr}.account-card{flex-direction:column;gap:12px}.account-actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:8px 16px}.settings-section .section-head{align-items:center}.settings-section .section-head .primary{font-size:13px;padding:11px}.settings-card{padding:20px}.account-card>div{min-width:0}}

.selected-school{font-size:12px;color:var(--ink);line-height:1.5;white-space:normal;overflow-wrap:anywhere}.topbar{height:auto;min-height:76px;padding-top:12px;padding-bottom:12px}#switch-account{display:block;min-height:44px;margin-top:12px}
@media(max-width:760px){.topbar{flex-wrap:wrap}.school-switch{flex:1 0 100%;width:100%}.selected-school{font-size:13px}#pending-access{max-width:100%;white-space:normal}}

.student-directory-controls{margin-bottom:22px;flex-wrap:wrap}.student-card{padding:24px;min-width:0}.student-card h2{margin:0 0 20px}.student-card dl{margin:0}.student-card dt{font-size:12px;color:var(--muted);margin-top:16px}.student-card dd{margin:5px 0 0;overflow-wrap:anywhere}.student-card dd small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.student-card[hidden]{display:none}

.family-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:18px}.family-day{padding:14px;border:1px solid var(--line);border-radius:12px}.family-day small{display:block;margin-bottom:12px;color:var(--muted)}.family-portal main{max-width:1200px;margin:auto;padding:28px}.family-portal .topbar{flex-wrap:wrap;gap:14px}

.frequency-field input[type=range]{width:100%;padding:0;min-height:44px;accent-color:var(--brand)}.frequency-field output{display:block;font-size:17px;font-weight:600;color:var(--brand);margin-bottom:8px}

@media(max-width:760px){
 main,.family-portal main{padding:28px 20px 40px}.page-head{flex-direction:column;align-items:stretch;gap:24px;margin-bottom:28px}.page-head .controls{gap:16px}.card-head{padding:24px 20px 20px}.card-body{padding:0 20px 24px}.card-head .title-row{align-items:flex-start}.form-grid{gap:20px}.form-grid fieldset{min-width:0;margin:0;padding:16px}.form-grid fieldset .row{gap:12px}.form-grid fieldset .row label{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px}.form-grid input:not([type=checkbox]):not([type=range]),.form-grid select,.control input,.control select{font-size:16px;min-height:48px}.form-grid textarea{font-size:16px;min-height:112px}main button,dialog button{min-height:44px}.modal-footer{flex-direction:column-reverse;gap:12px}.modal-footer button{width:100%;min-height:48px}.attendance-actions{flex-wrap:wrap;gap:16px}.attendance-bottom{align-items:flex-start;flex-direction:column;gap:16px}.save-row{align-items:stretch;flex-direction:column;gap:16px}.save-row small{max-width:none}.save-row button{width:100%}.family-days{grid-template-columns:1fr;gap:16px}.family-day{padding:20px}.family-day p{margin:10px 0 16px;line-height:1.6}.family-day>.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.family-day>.row button{min-height:48px}.family-day .link-button{grid-column:1/-1;text-align:left}.student-card{padding:24px 20px}.student-card dl{gap:16px}
}
@media(max-width:480px){.student-grid{grid-template-columns:1fr;gap:12px}.student{min-height:52px;padding:14px}.summary{gap:12px}.stat{min-height:88px}.plan-row{flex-wrap:wrap;gap:12px}.plan-row select{flex-basis:100%}}

/* Keep every destination reachable on short desktop windows; mobile uses its own drawer. */
@media(min-width:761px){.sidebar{height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.sidebar>*{flex-shrink:0}}
:root{--presence-ink:#166534;--presence-bg:#f0fdf4;--presence-line:#86cfa1;--absence-ink:#9f1239;--absence-bg:#fff1f2;--absence-line:#f0a5af;--pending-ink:#92400e;--pending-bg:#fffbeb;--pending-line:#ebc477}
.family-day{border-left-width:4px}.family-day-confirmed{background:var(--presence-bg);border-color:var(--presence-line)}.family-day-absent{background:var(--absence-bg);border-color:var(--absence-line)}.family-day-expected{background:var(--pending-bg);border-color:var(--pending-line)}.family-day-free{background:#f7f8fb;border-color:#d8dee9}.family-day-moved{background:#eff6ff;border-color:#a4bce8}
.family-status{display:flex;align-items:flex-start;gap:8px;font-weight:700;font-size:14px;line-height:1.5}.family-status svg{width:18px;height:18px;margin-top:1px}.family-status-confirmed{color:var(--presence-ink)}.family-status-absent{color:var(--absence-ink)}.family-status-expected,.family-pending{color:var(--pending-ink)}.family-status-free{color:#526078}.family-status-moved{color:#1e40af}.family-pending{display:flex;align-items:flex-start;gap:6px;padding:8px;border:1px solid var(--pending-line);border-radius:8px;background:var(--pending-bg);font-size:12px;line-height:1.5}.family-pending svg{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.family-answer-confirmed{border-color:var(--presence-line);color:var(--presence-ink)}.family-answer-absent{border-color:var(--absence-line);color:var(--absence-ink)}.family-answer-confirmed:hover{background:var(--presence-bg)}.family-answer-absent:hover{background:var(--absence-bg)}.family-answer[aria-pressed=true]{font-weight:700;opacity:1;cursor:default}.family-answer-confirmed[aria-pressed=true]{background:var(--presence-ink);border-color:var(--presence-ink);color:#fff}.family-answer-absent[aria-pressed=true]{background:var(--absence-ink);border-color:var(--absence-ink);color:#fff}
.student.present{background:var(--presence-bg);border-color:var(--presence-line)}.student.present .initial{background:#dcfce7;color:var(--presence-ink)}.student input{accent-color:var(--presence-ink)}.student-presence{flex-shrink:0;padding:4px 6px;border-radius:6px;background:#f0f2f8;color:#526078;font-size:10px;font-weight:600;line-height:1.4;max-width:85px;text-align:center}.student.present .student-presence{background:#dcfce7;color:var(--presence-ink)}

/* Public help stays readable without loading the notebook. */
.public-page{max-width:680px;overflow-wrap:anywhere}.public-page h1{font-size:clamp(1.8rem,5vw,2.4rem);line-height:1.25}.public-page h2{font-size:1.1rem;margin:28px 0 12px}.public-page p{line-height:1.7}.public-page a.primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;max-width:100%;white-space:normal}
