/* GreenSIMS: green surfaces, blue accents and bundled Comfortaa. */
:root{font-family:Comfortaa,Arial,sans-serif;background:#f6f8f9;color:#233c36;--green:#216653;--muted:#687a76;--line:#dfe7e4}
.topbar{background:#eef3f1;border-bottom:3px solid #bad7e9;position:sticky;top:0;z-index:3;height:94px}
.brand-group{display:flex;align-items:center;gap:18px}.brand{display:block;line-height:1;letter-spacing:0}.brand img{display:block;width:220px;height:58px}.brand>small{font-size:9px;letter-spacing:.65px;margin:0 0 4px 0;color:#54715e}
.menu-toggle{background:#f0f8f3;border:1px solid #adcdb7;color:#315e42;padding:7px 10px;font-size:21px;line-height:1.2}.workspace.sidebar-collapsed .sidebar{display:none}.sidebar summary{display:flex;align-items:center;gap:4px;line-height:1.5;font-size:14px}.sidebar summary span{margin-left:auto;font-size:10px}.sidebar summary:before{flex-shrink:0}.sidebar .nav-link{font-size:14px}
.test-label{background:#edf5fb;border-color:#d1e3ef;color:#315c79}.test-label i{background:#5d96bd}.profile{background:#dcebe4;color:#315d42}.selected{background:#dceefa;color:#224e68}.active-dot{background:#4e9bc7}.sidebar-foot .status-dot{background:#518865}
.primary{background:#216653;border-color:#216653;color:#fff}.primary:hover:not(:disabled){background:#194f41;color:#fff}.portal.available{border-color:#abcabc;box-shadow:0 5px 16px #224d3010}.portal.available:before{background:#438571}.available .portal-icon{background:#eef3f1;color:#2b6540}.available-label{background:#e8f3ec;color:#356746}.portal-icon{background:#eef3f1;color:#64836d}.portal li a{color:#285a79}.portal h2{font-size:22px}.portal p{min-height:56px}.portal li{font-size:14px}.portal-cta{font-size:14px;min-height:46px}.below-grid section{background:#eaf3ed}
.tabs button[aria-selected=true]{border-bottom-color:#699ec2;color:#295f43}.tabs button span{background:#e1eff8}.avatar{background:#e3f0e8;color:#527c61}.student-name{font-weight:600}.student-name:hover{background:transparent!important;color:#28739c}.current{background:#dfefe3;color:#32643f}.future{background:#dfeef9;color:#38698b}.leaver{background:#eeeae7;color:#755e50}.status-choice button[aria-pressed=true]{background:#e1f0fb;border-color:#8eb9d4}.quick-row{border-left:4px solid #adcfe6}.toast{background:#24553a}.awaiting{color:#86622c}.student-surface{box-shadow:0 3px 12px #315b3905}.footnote{font-size:12px}.field label{font-size:14px}.field input,.field select,.search input{font-family:Comfortaa,Arial,sans-serif}.nav-disabled{font-size:13px}.page-title p{font-size:15px}.page-title h1{font-size:32px;font-weight:700;letter-spacing:-1.1px}.local-note{font-size:13px}.tabs button{font-size:14px}.editor-top{padding-bottom:14px;margin-bottom:15px;border-bottom:3px solid #d5e6ef}.student-name span:last-child{line-height:1.5}th{font-size:13px}td{line-height:1.5}.table-scroll td:first-child{min-width:240px}.form-grid{gap:19px}.error-banner{color:#813d26}.brand:focus-visible{border-radius:4px}
.minimal-portals .portal{min-height:285px}.minimal-portals .portal h2{margin:24px 0 20px}.shortcut-chips{display:flex;justify-content:center;gap:11px;flex-wrap:wrap;align-items:center}.chip{border:1px solid #c7dce9;background:#e3eff8;border-radius:22px;font-size:13px;font-weight:700;line-height:1.4;padding:10px 15px;display:inline-block;color:#285a78}.chip:disabled{background:#e3eff8;color:#365e79;border-color:#c7dce9;font-weight:700;opacity:1}.active-chip{color:#204f70;background:#d7eaf7;border-color:#aacde4}.active-chip:hover{background:#c5e0f2}.minimal-portals .shortcut-chips{margin-bottom:28px;flex:1;align-content:start}.landing-shortcuts{margin:12px 0 35px;padding:0;border:0}.landing-title{justify-content:center;text-align:center;margin-bottom:32px}.landing-title h1{margin:0}.minimal-portals .portal-cta{font-size:13px}
@media(max-width:1200px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal:last-child{grid-column:1/-1}.portal:last-child ul{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}}
@media(min-width:1150px){.minimal-portals{grid-template-columns:repeat(3,minmax(0,1fr))}.minimal-portals .portal:last-child{grid-column:auto}}
@media(max-width:950px){.portal-grid{grid-template-columns:1fr}.portal:last-child{grid-column:auto}.portal p{min-height:0}.portal ul,.portal:last-child ul{display:block}.page-title h1{font-size:28px}}
@media(max-width:650px){.topbar{height:86px}.brand img{width:145px;height:40px}.brand>small{font-size:7px;letter-spacing:0;margin-left:0}.brand-group{gap:8px}.test-label{max-width:125px;line-height:1.6;font-size:10px}.page-title h1{font-size:26px}.portal h2{font-size:21px}.portal p,.portal li{font-size:14px}.top-right{gap:0}.workspace .sidebar{display:block;padding:16px}.workspace.sidebar-collapsed .sidebar{display:none}.workspace .sidebar .side-group{display:block;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.workspace .sidebar .nav-disabled{display:block}.workspace .sidebar .nav-link{margin:8px 0}.minimal-portals .portal{min-height:240px}.minimal-portals .portal h2{margin-top:18px}.landing-shortcuts{margin:4px 0 28px}.chip{padding:9px 12px;font-size:12px}.shortcut-chips{gap:8px}}

.shortcuts-label{text-align:center;font-size:.8rem;font-weight:700;margin:0 0 .8rem;color:#426756}
.field textarea{width:100%;box-sizing:border-box;font:inherit;padding:.8rem;border:1px solid #b7cfc4;border-radius:10px;resize:vertical;background:white;color:#183f31}
.field textarea:focus{outline:2px solid #73b9df;outline-offset:2px}

/* Keep the green brand prominent while supporting surfaces stay quiet. */
.topbar{background:#e8f2ed;border-bottom:1px solid #cadfd9;box-shadow:0 2px 12px #233c3606}
.menu-toggle{background:#f8fbf9;border-color:#c6dad1;color:#326553}
.portal{box-shadow:0 4px 20px #233c3604}.portal.available{box-shadow:0 5px 22px #233c3609}
.planned-label{background:#f0f3f4;color:#64746f}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#669fc4}

.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-card{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:110px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:15px;line-height:1.6}.service-card strong{font-weight:700}.service-card small{display:block;color:var(--muted);font-size:13px;margin-top:5px}.service-ready{border-color:#abcabc;box-shadow:0 4px 16px #233c3606;color:var(--green)}.service-ready:hover{background:#eef6f2}.service-card[aria-disabled=true]{color:#62736d}.minimal-portals .portal-cta:not(.primary){border:1px solid var(--line);border-radius:7px;padding:12px 18px;background:#f8faf9}.minimal-portals .portal-cta:not(.primary):hover{background:#edf4f0}@media(max-width:650px){.service-grid{grid-template-columns:1fr}.service-card{padding:20px}}

/* The workspace action stretches across its card; shortcuts remain distinct. */
.minimal-portals .workspace-open::after{content:"";position:absolute;inset:0;border-radius:10px}
.minimal-portals .shortcut-chips{pointer-events:none}
.minimal-portals .shortcut-chips .chip{position:relative;z-index:2;pointer-events:auto}
.minimal-portals .portal:hover{border-color:#8db8a6;box-shadow:0 6px 24px #233c3610}
.minimal-portals .portal:has(.workspace-open:focus-visible){outline:3px solid #669fc4;outline-offset:4px}

.service-planned:hover{background:#eef6f2;border-color:#abcabc}.service-placeholder{padding:28px;background:white;border:1px solid var(--line);border-radius:12px}.service-placeholder p{margin:20px 0}.service-card:focus-visible{outline:3px solid #669fc4;outline-offset:4px}

.minimal-portals .portal::before{content:"";height:4px;background:#438571;position:absolute;top:0;left:0;right:0}

/* School palette: greenacre-website-draft/assets/site-palette.css. */
:root{--green:#356b46;--muted:#616b63;--line:#dce3d8;background:#f8f6ef;color:#243129}
.topbar{background:#c6d6b8;border-bottom:1px solid #afc39e}.brand>small{color:#244f35}.menu-toggle{background:#edf1e8;border-color:#afc39e;color:#244f35}.test-label{background:#e8eef2;border-color:#cbd8e0;color:#355467}.profile{background:#edf1e8;color:#244f35}
.primary{background:#356b46;border-color:#356b46}.primary:hover:not(:disabled){background:#244f35}.selected{background:#e8eef2;color:#355467}.chip,.chip:disabled{background:#e8eef2;border-color:#ccd9e1;color:#355467}.service-ready{color:#244f35;border-color:#bacdb3}.service-ready:hover,.service-planned:hover{background:#edf1e8}.shortcuts-label{color:#58755d}
.landing-shortcuts{margin:8px 0 28px}.landing-shortcuts .chip{padding:11px 19px;border-radius:999px;box-shadow:0 3px 0 #3554670b}.landing-title{margin-bottom:30px}.landing-title h1{font-size:clamp(30px,3.3vw,46px);letter-spacing:-1.6px;color:#244f35}
.minimal-portals{gap:24px}.minimal-portals .portal{min-height:325px;padding:30px;border-radius:22px;border:1px solid #244f35;background:linear-gradient(135deg,#244f35,#356b46);box-shadow:0 12px 30px #183f2b18;color:white;isolation:isolate;transition:transform .18s ease,box-shadow .18s ease}
.minimal-portals .portal.available{border-color:#244f35;box-shadow:0 12px 30px #183f2b18}.minimal-portals .portal::before{height:6px;background:#81a77a;z-index:1}.minimal-portals .portal::after{content:"";position:absolute;width:230px;height:230px;border:1px solid #ffffff18;border-radius:50%;right:-105px;top:-90px;box-shadow:0 0 0 28px #ffffff05,0 0 0 58px #ffffff04;z-index:-1;pointer-events:none}
.minimal-portals .portal h2{font-size:clamp(23px,2.1vw,32px);color:white;letter-spacing:-.8px;margin:26px 0 22px}.minimal-portals .portal-icon,.minimal-portals .available .portal-icon{background:#ffffff12;color:#edf1e8;border:1px solid #ffffff24;border-radius:14px;width:48px;height:48px}.minimal-portals .planned-label,.minimal-portals .available-label{background:#ffffff12;color:#edf1e8;border:1px solid #ffffff20;border-radius:999px;padding:6px 10px}
.minimal-portals .shortcut-chips{justify-content:flex-start;gap:8px;margin-bottom:30px}.minimal-portals .chip{background:#e8eef2;color:#355467;border-color:#e8eef2;font-size:12px;padding:8px 11px}.minimal-portals .workspace-open{background:#183f2b;border-color:#ffffff24;border-radius:12px;min-height:50px;font-size:14px}.minimal-portals .workspace-open:hover{background:#143524}.minimal-portals .portal:hover{transform:translateY(-4px);border-color:#58755d;box-shadow:0 18px 36px #183f2b26}.minimal-portals .workspace-open::after{border-radius:22px}
@media(max-width:650px){.minimal-portals{gap:18px}.minimal-portals .portal{min-height:280px;padding:25px}.landing-title h1{font-size:30px}.minimal-portals .portal h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.minimal-portals .portal{transition:none}.minimal-portals .portal:hover{transform:none}}

/* Match the school website blue buttons. */
.landing-shortcuts .chip,.landing-shortcuts .chip:disabled{background:#355467;border-color:#355467;color:#fff}
.minimal-portals .chip{background:#fff;border-color:#fff;color:#244f35;border-radius:999px}

/* Shared workspace markers: book, grid and connected nodes. */
.workspace-symbol{width:26px;height:26px;display:block;flex-shrink:0}.sidebar summary>.workspace-symbol{width:19px;height:19px;margin-right:6px}.workspace-heading{display:flex;align-items:center;gap:16px}.heading-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#edf1e8;color:#356b46;border:1px solid #dce3d8}.heading-symbol .workspace-symbol{width:29px;height:29px}

.minimal-portals a.chip:hover{background:#edf1e8;border-color:#edf1e8}.minimal-portals a.chip:focus-visible{outline:3px solid #fff;outline-offset:4px}

.document-list{padding:0;list-style:none}.document-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.document-list li>span{min-width:0;overflow-wrap:anywhere}.document-list small{display:block;color:var(--muted);margin-top:6px}.document-list button{font-size:12px}

/* Keep student details and its close control available while scrolling. */
#student-dialog .editor-top{position:sticky;top:-28px;z-index:5;background:#fff;margin:-28px -28px 15px;padding:28px 28px 14px;border-bottom:1px solid var(--line);box-shadow:0 5px 10px #24312908}
#student-dialog .close-button{flex-shrink:0;min-width:40px;min-height:40px}
@media(max-width:650px){#student-dialog .editor-top{top:-20px;margin:-20px -20px 15px;padding:20px 20px 14px}}

.workspace-access-note{max-width:850px;margin:26px auto 0;text-align:center;font-size:13px;line-height:1.8;color:var(--muted)}

/* Timetables — draft grid, clash marks, versions and printing (developer plan 3.3). */
.tt-panel{padding:22px}.tt-panel h2{margin:0 0 6px;font-size:19px}.tt-panel h3{font-size:15px;margin:22px 0 10px}.tt-panel>p{margin:0 0 18px;color:var(--muted);font-size:13px;max-width:70ch;line-height:1.6}
.tt-panel-head{display:flex;align-items:start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.tt-facts{display:flex;flex-wrap:wrap;gap:10px 34px;margin:0 0 14px;padding:15px 18px;background:#f7faf8;border:1px solid var(--line);border-radius:8px}
.tt-facts dt{font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#7c8b82}.tt-facts dd{margin:4px 0 0;font-size:14px;font-weight:700;color:#233c36}
.tt-stats{display:flex;flex-wrap:wrap;gap:8px 26px;margin:14px 0 18px;font-size:13px;color:var(--muted)}.tt-stats strong{color:#233c36;font-size:15px}
.tt-stat-good strong{color:#216653}.tt-stat-bad strong{color:#a5442c}
.tt-clashes{background:#fff5f1;border:1px solid #e6c3b5;border-radius:8px;padding:16px 18px;margin-bottom:18px}
.tt-clashes h3{margin:0 0 10px;font-size:14px;color:#8d3f2a}.tt-clashes ul{margin:0;padding-left:19px;font-size:13px;line-height:1.8}.tt-clashes p{margin:12px 0 0;font-size:12px;color:#8d5c4b}
.tt-clear{display:block;background:#f1f8f3;border:1px solid #c6dfcd;border-radius:8px;padding:14px 18px;margin-bottom:18px;font-size:13px;color:#2f5c44}
.tt-slot-count{font-size:12px;color:var(--muted)}
.tt-note{font-size:12px;color:var(--muted);line-height:1.7;margin:14px 0 0;max-width:80ch}
.tt-empty-state{padding:34px 18px;text-align:center;color:var(--muted);font-size:14px;background:#f8faf9;border:1px dashed var(--line);border-radius:8px}
.tt-details-form{margin-bottom:18px}.tt-details-form .actions{justify-content:flex-end;margin-top:6px}
.tt-grid{white-space:normal;table-layout:fixed;min-width:880px}
.tt-grid th,.tt-grid td{border:1px solid var(--line);vertical-align:top;padding:0}
.tt-grid thead th{padding:11px 12px;text-align:center;font-size:12px}
.tt-grid .tt-time{width:112px;padding:11px 12px;font-size:12px;line-height:1.5;background:#f7f9f8;color:#5c6f66;text-align:left}
.tt-grid .tt-time small{display:block;color:#8a998f;font-size:11px;margin-top:3px;font-weight:400}
.tt-band td{background:#f2f5f3;color:#8a998f;font-size:11px;letter-spacing:.6px;text-transform:uppercase;text-align:center;padding:7px}
.tt-slot{width:100%;min-height:74px;display:block;text-align:left;padding:10px 11px;border:0;border-radius:0;background:#fff;font-size:13px;line-height:1.45;color:#233c36}
.tt-slot strong{display:block;font-size:13px}.tt-slot small{display:block;color:#7c8b82;font-size:11px;margin-top:3px}
button.tt-slot{cursor:pointer}button.tt-slot:hover{background:#f0f6f2}button.tt-slot.filled{border-left:3px solid #7fb394;padding-left:8px}
.tt-slot.filled{background:#fbfdfc}.tt-slot.empty{color:#9aa8a1}.tt-empty{font-size:12px;color:#9aa8a1}
.tt-slot.clash{background:#fff3ee}button.tt-slot.clash{border-left-color:#c0674a}
.tt-warn{display:inline-block;margin-top:6px;font-size:10px;letter-spacing:.4px;text-transform:uppercase;background:#f7dfd6;color:#8d3f2a;border-radius:4px;padding:3px 6px}
.tt-inline-warning:not(:empty){display:block;margin:4px 0 0;padding:11px 13px;background:#fff5f1;border:1px solid #e6c3b5;border-radius:7px;font-size:12px;color:#8d3f2a;line-height:1.6}
.tt-actions{justify-content:flex-end;margin-top:16px}
.tt-drive{margin-top:18px;padding:16px 18px;border:1px solid #cfe0ea;background:#f4f9fc;border-radius:8px;font-size:13px}
.tt-drive h3{margin:9px 0 8px;font-size:14px}.tt-drive p{margin:0 0 8px;line-height:1.6;color:#3f5a68}
.tt-path{font-size:12px;overflow-wrap:anywhere;color:#274c60}
.print-timetable{border:1px solid var(--line);border-radius:8px;padding:18px;background:#fff}
.tt-print-head{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:start;margin-bottom:16px}
.tt-print-head h3{margin:6px 0 4px;font-size:18px}.tt-print-head p{margin:0;font-size:12px;color:var(--muted)}
.tt-print-foot{margin:14px 0 0;font-size:11px;color:#8a998f}
@media(max-width:650px){.tt-panel{padding:16px}.tt-facts{gap:10px 20px}}
@media print{
 .topbar,.sidebar,.footnote,.local-note,.tabs,.filters,.tt-actions,.tt-drive,.breadcrumb,.page-title,.list-note,.toast,.skip{display:none!important}
 body,.workspace,#main,.student-surface,.tt-panel{margin:0;padding:0;border:0;background:#fff;display:block}
 .print-timetable{border:0;padding:0}
 .tt-grid{min-width:0;font-size:11px;page-break-inside:avoid}
 .tt-grid .tt-time{width:80px}
 .tt-slot{min-height:0;padding:6px 7px}
 .tt-slot,.tt-grid th,.tt-grid td{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .tt-panel>p,.tt-note,.tt-stats,.tt-clashes,.tt-clear,.tt-panel-head{display:none}
 .tt-print-head{display:flex}
 @page{size:A4 landscape;margin:12mm}
}

.student-tabs{padding:0;margin-bottom:22px;gap:20px}.student-tabs button{font-size:13px}#student-form [role=tabpanel][hidden]{display:none}#student-panel-documents>.lifecycle:first-child{border-top:0;margin-top:0;padding-top:0}.student-timetable-pending{margin-top:18px;padding:16px;background:#edf1e8;border-radius:10px}

.banner-search{position:relative;flex:1;max-width:380px;margin:0 24px}.banner-search input{width:100%;padding:12px 16px;border:1px solid #aabb9e;border-radius:999px;background:#fff;font:inherit;font-size:13px}.people-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);box-shadow:0 12px 30px #183f2b22;border-radius:12px;max-height:360px;overflow:auto}.people-results button{display:block;width:100%;text-align:left;border:0;border-radius:0;font-size:13px}.people-results small{display:block;margin-top:5px;color:var(--muted)}.people-results p{padding:15px}.preview-role{font-size:11px;display:grid;gap:3px}.preview-role select{font-size:12px;padding:5px}.topbar .top-right{gap:12px}@media(max-width:950px){.topbar{flex-wrap:wrap;height:auto;min-height:94px;padding-top:10px;padding-bottom:10px;gap:10px}.banner-search{order:3;max-width:none;flex-basis:100%;margin:0}.topbar .test-label{display:none}}
