:root{font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20302e;background:#faf8f4;--teal:#075952;--edge:#dcd9d1}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{background:#074f49;color:white}.bar,nav,main{padding-inline:max(20px,calc((100% - 820px)/2))}.bar{min-height:68px;display:flex;align-items:center;gap:12px}.bar svg{width:31px;fill:none;stroke:currentColor;stroke-width:1.7}.bar strong{font-size:21px}.bar span{font-size:14px;border-left:1px solid #70a19b;padding-left:16px}nav{display:flex;background:white;box-shadow:0 1px var(--edge);gap:14px}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:default}nav button{border:0;background:white;padding:15px 10px;border-bottom:3px solid transparent}nav button[aria-current=page]{color:var(--teal);font-weight:700;border-color:var(--teal)}nav svg{display:none}main{padding-block:34px 70px}.heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.heading span,small,.muted,time{color:#54645f}h1{font-size:clamp(26px,4vw,34px);line-height:1.2;letter-spacing:-.035em;margin:0 0 24px}h2{font-size:17px;margin:0;padding:11px 16px;background:#eee9dd}article{border:1px solid var(--edge);border-radius:10px;overflow:hidden;background:#fffefa;margin-bottom:16px}.row,.empty{margin:0;padding:12px 16px}.row+.row{border-top:1px solid var(--edge)}.grade{display:grid;grid-template-columns:7rem 1fr auto;gap:12px;align-items:baseline}.grade b{color:var(--teal);font-size:19px}.row strong,.row small{display:block}.row p{margin:5px 0 0;white-space:pre-line}.row,.empty{overflow-wrap:anywhere}.empty{color:#58645d}.settings{display:flex;align-items:center;gap:4px;padding:3px 8px}.settings label{display:flex;align-items:center;gap:10px;flex:1;min-height:44px}.settings input{width:19px;height:19px;flex:none;accent-color:var(--teal)}.settings button,.secondary{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--teal);font-weight:600}.secondary{text-decoration:underline}.primary{border:0;border-radius:6px;background:var(--teal);color:white;padding:12px 18px;font-weight:650}.settings small{display:inline}.groupTitle{margin-top:20px}#login{max-width:370px;margin:clamp(35px,12vh,150px) auto}form label{display:block;font-weight:600;margin:14px 0}form input{background:white;width:100%;border:1px solid #a7b1ab;border-radius:6px;padding:11px;margin-top:5px}form button{width:100%;margin-top:7px}[role=alert]{color:#933825}:focus-visible{outline:3px solid #c17715;outline-offset:2px}@media(max-width:620px){main{padding-block:24px 100px}.bar{min-height:60px;gap:8px}.bar strong{font-size:18px}.bar span{font-size:12px;padding-left:9px}nav{position:fixed;z-index:2;bottom:0;left:0;right:0;gap:0;justify-content:space-around;padding:3px 3px max(4px,env(safe-area-inset-bottom));border-top:1px solid var(--edge)}nav button{display:grid;justify-items:center;gap:3px;font-size:12px;padding:6px 2px;min-height:51px;border:0;flex:1}nav svg{display:block;width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}.grade{grid-template-columns:1fr auto;gap:2px 8px}.grade time{font-size:13px;grid-column:1/-1}.settings label{font-size:15px}.heading span{font-size:13px}}
.bar .brand{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:5px;padding:3px}.bar span{line-height:1.3}@media(max-width:620px){.bar .brand{width:43px;height:43px}.bar{padding-inline:15px}.bar span{max-width:145px}}
.settings button svg{display:block;margin:auto;width:21px;height:21px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}
.settings .grip{touch-action:none;cursor:grab;user-select:none;color:#54645f}
.settings.dragging{background:#edf4ef}
.settings.dragging .grip{cursor:grabbing}
.settings.drop-before{box-shadow:inset 0 3px var(--teal)}
.drop-end .settings:last-child{box-shadow:inset 0 -3px var(--teal)}
.settings .hidden-name{flex:1;padding-left:10px;color:#54645f}

#logout{margin:6px 0 6px auto;flex:none;min-height:44px;padding:6px 12px;border:1px solid #92bcb5;border-radius:6px;color:white;background:#074f49;font-weight:600}
#logout:hover{background:#17645c}
#subjectsOverview{margin-left:auto;flex:none;min-height:44px;padding:6px 12px;border:1px solid #92bcb5;border-radius:6px;color:white;background:transparent;font:inherit;font-weight:600}
#subjectsOverview:hover{background:#17645c}
@media(max-width:620px){
  #logout{flex:1;margin:0;border:0;border-radius:0;padding:6px 2px;font-size:12px;color:inherit;background:white;font-weight:400}
  #logout:hover{background:white}
  nav button{min-width:0;align-content:start}
  nav button span{max-width:100%}
  .bar{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;padding-block:7px}
  .bar .brand{grid-column:1;grid-row:1/3}
  .bar strong,.bar span{grid-column:2}
  .bar span{border:0;padding:0;max-width:none}
  #subjectsOverview{grid-column:3;grid-row:1/3;font-size:13px;padding:6px;max-width:100px;white-space:normal}
}
.band-grid{display:grid;grid-template-columns:44px minmax(0,1fr) repeat(3,48px) 44px;gap:0;align-items:center}
.band-head{padding:5px 8px;background:#f4f1ea;color:#465752;font-size:14px;font-weight:600;text-align:center}
.subject-heading{grid-column:span 2;text-align:left;padding-left:10px}
.band-grid label{justify-content:center}
.band-grid .subject-name{overflow-wrap:anywhere}
@media(max-width:620px){.band-grid{grid-template-columns:32px minmax(0,1fr) repeat(3,34px) 36px;padding-inline:2px}.settings.band-grid button{min-width:0;width:100%}.band-head{font-size:12px}.subject-name{font-size:14px}}
#family{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:var(--teal);font-size:1.25rem}
#family label{font-weight:650;flex-shrink:0}
#child{min-width:0;max-width:100%;flex-shrink:1;min-height:44px;padding:6px 12px;font:inherit;color:inherit;background:white;border:1px solid var(--edge);border-radius:6px}
.entries h2,.entries .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(155px,28%);gap:18px}
.ack-heading{font-size:14px}.entries .ack-mobile-label{display:none}
.ack-confirmed{align-self:center;display:flex;align-items:center}
.ack-check{color:#16803b;font-size:1.375rem;font-weight:700;line-height:1}
.ack-button{min-height:44px;background:white;color:var(--teal);border:1px solid var(--teal);border-radius:6px;padding:6px 12px;font-weight:600}
@media(max-width:620px){.entries .row,.entries h2{display:block}.ack-heading{display:none}.entries .ack-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}.entries .ack-mobile-label{display:inline}}

.entry-adverse{color:#a5222d}
.entry-praise{color:#16803b}
.entry-yellow-card,.entry-red-card{padding:0 .18em;border-radius:.13em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.entry-yellow-card{background:#ffdf59;color:#322800}
.entry-red-card{background:#c52a39;color:#fff}

.privacy{margin:2rem auto 0;max-width:65ch;font-size:.94rem}
.privacy summary{cursor:pointer;color:var(--teal);padding:.6rem 0}
.privacy h2{font-size:1.08rem;background:transparent;padding:0;margin:1.3rem 0 .4rem}
.privacy p{margin:.5rem 0;line-height:1.6}

.school-subjects{width:100%;border-collapse:collapse;font-size:15px}
.school-subjects th,.school-subjects td{padding:10px 12px;border-bottom:1px solid var(--edge)}
.school-subjects thead th{background:#f4f1ea;white-space:nowrap}
.school-subjects th:first-child{text-align:left}
.school-subjects tbody th{font-weight:400}
.school-subjects td{text-align:center;width:64px}
.school-subjects tr:last-child>*{border-bottom:0}
@media(max-width:620px){.school-subjects{font-size:14px}.school-subjects th,.school-subjects td{padding:10px 6px}.school-subjects td{width:42px}}

.nav-label-narrow{display:none}
@media(max-width:620px){
  .nav-label-wide{display:none}
  .nav-label-narrow{display:inline}
}
/* Keep controls below the system's top-edge treatment in installed apps. */
@media(display-mode:standalone) and (max-width:620px){
  header{padding-top:max(20px,env(safe-area-inset-top,0px));background:#074f49}
}

.grade-low,.grade b.grade-low{color:#a5222d}
