*{box-sizing:border-box}body{margin:0;background:#f3f5ef;color:#233e37;font:15px "DM Sans",Arial,sans-serif}header{height:78px;display:flex;align-items:center;gap:22px;padding:0 5%;background:#fff;border-bottom:1px solid #d9e3d9;box-shadow:inset 0 4px #9cb642}header img{width:119px;height:auto}.divider{height:30px;border-left:1px solid #ccd7cf}header strong{font-size:20px;letter-spacing:-.6px}.local{margin-left:auto;color:#5b7564;font-size:13px}main{max-width:1400px;padding:40px 5% 24px;margin:auto}.heading,.actions,.row{display:flex;justify-content:space-between;align-items:center;gap:12px}small{font-size:10px;letter-spacing:1.8px;font-weight:750;color:#487665}h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-2px;font-size:clamp(36px,4vw,56px);margin:6px 0 0}button{font:inherit;border:0;background:#245649;color:white;padding:12px 19px;border-radius:7px;cursor:pointer;font-weight:600}button:hover{filter:brightness(.94)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.stats article{display:flex;align-items:center;gap:11px;background:#e9eee2;border:1px solid #dae2d1;border-radius:10px;padding:17px 20px;font-size:14px}.stats article:nth-child(2){background:#e4efea}.stats article:nth-child(3){background:#f4eee1}.stats b{font-size:27px;margin-left:auto}.stats i{width:9px;height:9px;border-radius:50%;background:#92a93c}.stats article:nth-child(2) i{background:#3a9e99}.stats article:nth-child(3) i{background:#b57927}.workspace{display:grid;grid-template-columns:minmax(235px,30%) 1fr;gap:18px}aside,.detail,dialog{background:white;border:1px solid #dbe3da;border-radius:12px;padding:24px}aside{align-self:start}h2{font:normal 28px Georgia,serif;letter-spacing:-.7px;margin:6px 0 16px}aside h2{font-size:23px}input,textarea,select{background:#fbfcf9;color:#203d35;border:1px solid #ccd8cd;border-radius:6px;padding:10px;width:100%;font:inherit;min-width:0}textarea{resize:vertical}aside select{margin:9px 0 10px}.item{display:block;width:100%;background:white;color:#233e37;text-align:left;border:1px solid #dce5dc;margin:7px 0;padding:13px}.item.sel{background:#edf5ed;border-color:#7d9c87}.item span,.item strong{display:block;overflow-wrap:anywhere}.item span,p{color:#566a60;font-size:14px;line-height:1.5}.item span{margin-top:5px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wide{grid-column:1/-1}label{display:grid;gap:6px;font-weight:600;font-size:13px}label input,label textarea{font-weight:400;font-size:15px}h3{font-size:16px;border-top:1px solid #dfE6de;padding-top:19px;margin:22px 0 12px}.actions{justify-content:flex-end;margin-top:20px}.ghost,.day{background:#edf3ee;color:#245649}.day{padding:12px 5px;min-width:0;font-size:13px}.day span{display:block;font-weight:400;font-size:11px;margin-top:5px;overflow-wrap:anywhere}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.logged{background:#d6eae2}.tag{padding:5px 9px;border-radius:15px;background:#e9efda;font-size:12px;white-space:nowrap}.empty{padding:15px 0;border-top:1px solid #e4ebe3}dialog{width:min(520px,94vw);max-height:90vh;overflow:auto}dialog::backdrop{background:#122d2566}.log{border-left:3px solid #4e9a8c;padding:8px 12px;margin:8px 0;background:#f1f6f0;white-space:pre-wrap;overflow-wrap:anywhere}.log p{margin:4px 0}#history{max-height:clamp(240px,50vh,520px);max-height:clamp(240px,50dvh,520px);overflow:auto;margin-bottom:16px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a5b93e}#message{font-weight:bold}@media(max-width:720px){header{height:65px;padding:0 16px;gap:12px}header img{width:90px}.local{font-size:11px}main{padding:24px 14px}.stats{gap:5px}.stats article{display:block;padding:9px;font-size:11px}.stats b{display:block;font-size:20px}.workspace{grid-template-columns:1fr}.detail,aside{padding:16px}#list{max-height:170px;overflow:auto}.grid{gap:10px}.days{grid-template-columns:repeat(4,1fr)}}
.override-btn{padding:6px 12px;background:#fff;color:#245649;border:1px solid #9db8a8;font-size:13px}.log button{white-space:normal}#passwordError{color:#983b30}
.day.missed{background:#fbe2df;color:#932e29;border:1px solid #dca7a1}.day:disabled{cursor:default;color:#65716a;background:#f0f2ee}.day.missed:disabled{color:#932e29;background:#fbe2df}input[readonly]{background:#edf1ed}

.log.late-note{background:#f8d7da;border-left-color:#b33642;color:#651c24}.log.late-note p{color:#651c24}
#history:has(+ #lateOverride:not([hidden])) { margin-bottom: 8px; }
#lateOverride:not([hidden]) { display: block; margin-bottom: 20px; }
.grid > label {
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
}
.grid input, .grid textarea {
  max-width: 100%;
}
@media (max-width: 600px) {
  #order .grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 14px;
  }
}
.roster-actions{display:flex;gap:8px;flex-wrap:wrap}.roster-actions .ghost{border:1px solid #bbcfc1}
#reportFilters label{margin-top:12px}#reports .actions{flex-wrap:wrap}#reports button:disabled{opacity:.5}#reportPaper{display:none}
@media(max-width:600px){.heading{flex-wrap:wrap}.roster-actions button{padding:10px 14px}}
@media print{
 @page{size:letter landscape;margin:.45in}
 body.printing-report{background:white}
 body.printing-report > :not(#reportPaper){display:none!important}
 body.printing-report #reportPaper{display:block;color:#163c31;font:10pt Arial,sans-serif}
 #reportPaper img{width:95px}#reportPaper h1{font:20pt Georgia,serif;letter-spacing:0}
 #reportPaper table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.5pt}#reportPaper td,#reportPaper th{text-align:left;vertical-align:top;padding:5px;border:1px solid #bdcdc5;overflow-wrap:anywhere;white-space:pre-wrap}
 #reportPaper th{background:#e5eee7}#reportPaper thead{display:table-header-group}
}
#calendar{border:1px solid #dbe3da;background:white;border-radius:12px;padding:18px 22px;margin:0 0 18px}
.calendar-bar,.calendar-nav,.calendar-key,.cal-summary-head{display:flex;align-items:center;gap:12px}
.calendar-bar,.cal-summary-head{justify-content:space-between}.calendar-bar{flex-wrap:wrap}.calendar-bar h2{margin:0;font-size:24px}
.calendar-nav button,#closeCalDay{background:#edf3ee;color:#245649;padding:6px 12px}.calendar-nav strong{min-width:125px;text-align:center}
.calendar-key{font-size:12px;color:#485b51;margin:12px 0}.calendar-key span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;background:#377665;margin-right:5px}.calendar-key span+span:before{background:#aa3e45}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.weekday{text-align:center;font-size:11px;color:#55675d;padding:3px}.cal-day{background:#f4f7f3;color:#263e35;text-align:left;border:1px solid #e1e7df;padding:5px 8px;display:flex;justify-content:space-between;align-items:center;gap:3px}
.cal-day[aria-current=date]{background:#deefdd;border-color:#377665}
.cal-day[aria-current=date] b{display:inline-grid;place-items:center;min-width:1.65em;height:1.65em;padding:0 .15em;border-radius:50%;background:#245649;color:#fff}.cal-day[aria-pressed=true]{outline:2px solid #377665;outline-offset:-2px}
.cal-counts{display:flex;gap:3px;font-size:12px}.cal-counts span{background:#e3efe8;color:#2d6655;border-radius:3px;padding:1px 4px}.cal-counts span+span{background:#f5eded;color:#80585a}.cal-counts .has-missed{background:#f6d6d9;color:#8a2633}
.cal-summary-head{margin-top:13px}.cal-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.cal-groups strong{font-size:13px}.cal-order{display:block;text-align:left;margin:4px 0;color:#245649;background:#eef4ee;padding:6px 9px;overflow-wrap:anywhere}
@media(max-width:850px){.cal-day{flex-direction:column;align-items:center;padding:4px 1px}}
@media(max-width:600px){#calendar{padding:12px}.calendar-grid{gap:3px}.calendar-nav{gap:4px}.calendar-key{gap:8px}.cal-counts{font-size:10px}.cal-counts span{padding:1px 3px}}
.home-logo{display:inline-flex;align-items:center;border-radius:4px}.home-logo:focus-visible{outline:3px solid #a5b93e;outline-offset:3px}
