:root{color-scheme:light;--ink:#203d35;--muted:#61746d;--green:#245b47;--line:#dce4de;--cream:#f5f7f2;--amber:#87520e}*{box-sizing:border-box}body{margin:0;background:var(--cream);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:14px;line-height:1.5}button,input,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid var(--green);border-radius:8px;padding:10px 16px;color:white;background:var(--green);font-weight:650;cursor:pointer;text-decoration:none}button:hover,.button:hover{filter:brightness(.94)}button:disabled{cursor:default;opacity:.64}button.secondary,.button.secondary{background:white;color:var(--ink);border-color:#b9c9bf}.icon{background:transparent;color:var(--ink);border:0;font-size:26px;padding:2px 12px}a{color:var(--green)}:focus-visible{outline:3px solid #c77a19;outline-offset:3px}header{height:82px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:750;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{background:var(--ink);color:#e0edba;width:37px;height:39px;border-radius:10px;text-align:center;font-size:31px;line-height:39px}.brand-dot{font-size:10px;color:#799648;margin-left:-5px}.studio{text-align:right;font-weight:650}.studio span{display:block;font-size:12px;color:var(--muted);font-weight:400}main{max-width:1480px;padding:24px 5% 0;margin:auto}.demo-banner{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;background:#eaf0e5;border:1px solid #d9e3d0;color:#44533e;border-radius:7px;font-size:12px}.demo-banner b{font-size:10px;letter-spacing:1px;margin-right:12px}.heading{display:flex;align-items:center;justify-content:space-between;padding:34px 0 28px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--muted);margin:0 0 12px}h1{font-size:clamp(30px,3.6vw,48px);font-weight:550;letter-spacing:-1.8px;line-height:1.13;margin:0 0 14px}p{margin:0 0 12px}.subtitle{color:var(--muted);font-size:15px;margin:0}.summary{display:grid;grid-template-columns:repeat(3,1fr) 1.2fr;gap:15px;margin-bottom:32px}.summary>div{border:1px solid var(--line);background:white;border-radius:11px;padding:20px}.summary span,.summary small{display:block;color:var(--muted);font-size:12px}.summary strong{font-size:34px;font-weight:550;display:block;margin:5px 0}.summary small{font-size:11px}.summary .date-card{background:#203e34;border:0;position:relative;overflow:hidden}.date-card:after{content:'✳';position:absolute;font-size:145px;right:-12px;bottom:-60px;color:#cce1a9;opacity:.15}.date-card span,.date-card small{color:#d8e3cd}.date-card strong{font-size:27px;color:#f2f6e9;letter-spacing:-.6px;margin:14px 0 8px}.roster-section{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 24px 14px}h2{font-size:19px;font-weight:650;margin:0 0 6px;letter-spacing:-.4px}.count{display:inline-block;padding:2px 9px;background:#edf1eb;font-size:12px;border-radius:20px;vertical-align:middle;margin-left:8px}.section-head p{font-size:12px;color:var(--muted);margin:0}.filters{display:flex;gap:10px}input,select{border:1px solid #bfcec4;border-radius:7px;background:white;color:var(--ink);min-height:44px;padding:10px 12px;max-width:100%}.search input{width:235px}.notice{color:#626751;font-size:12px;background:#f8f8f0;border-top:1px solid #efeee1;border-bottom:1px solid #efeee1;padding:11px 24px;margin:0}.table-head,.roster-row{display:grid;grid-template-columns:1.3fr 1fr 1.3fr .8fr;gap:20px;padding:15px 24px}.table-head{font-size:10px;color:var(--muted);letter-spacing:1px;font-weight:700;border-bottom:1px solid var(--line);padding-top:16px;padding-bottom:12px}.roster-row{align-items:start;border-bottom:1px solid #e9ede8;padding-top:21px;padding-bottom:21px}.roster-row:last-child{border:0}.person{display:flex;gap:12px;align-items:flex-start}.avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:#edf0e5;color:#536445;font-size:11px;font-weight:700}.name{font-size:14px;font-weight:650;margin:0 0 4px}.detail{font-size:12px;color:var(--muted);display:block}.time{display:block;font-size:12px;color:#42594b;margin-top:5px}.badge{display:inline-block;font-size:11px;font-weight:650;border-radius:5px;padding:3px 7px;margin:0 0 5px;background:#eef0ed;color:#546158}.badge.good{color:#245b47;background:#e9f2e9}.badge.warn{color:#85520d;background:#faf0db}.badge.bad{color:#984938;background:#f8eae5}.badge.exempt{color:#575082;background:#eeedf6}.plan-name{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.form-line{margin-bottom:10px}.form-line:last-child{margin:0}.form-name{font-size:11px;color:var(--muted);margin-right:6px}.form-line .badge{margin:0}.text-button{padding:0;background:none;border:none;min-height:44px;color:var(--green);text-decoration:underline;font-size:12px;display:block}.attendance-cell button{white-space:nowrap;width:100%;font-size:12px}.attendance-cell small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.attendance-cell .done{background:#eef3eb;color:#355b3b;border-color:#dce6d7;opacity:1}.empty{padding:65px 25px;text-align:center}.empty h3{font-size:21px;margin:0 0 10px}.empty p{color:var(--muted)}.empty button{margin-top:8px}.demo-controls{display:flex;align-items:end;gap:14px;padding:28px 0}.demo-controls>div{margin-right:auto}.demo-controls h2{font-size:14px;margin-bottom:5px}.demo-controls p{font-size:11px;color:var(--muted);margin:0}.demo-controls label{font-size:11px;color:var(--muted)}.demo-controls select{display:block;margin-top:5px;font-size:12px}.demo-controls button{font-size:12px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:20px 0 24px;color:var(--muted);font-size:11px}dialog{border:1px solid var(--line);padding:28px;border-radius:14px;color:var(--ink);width:min(560px,calc(100vw - 32px));box-shadow:0 20px 80px #163e3333}dialog::backdrop{background:#173c345e}dialog h2{font-size:26px;margin-bottom:14px}dialog p{color:var(--muted)}dialog label{font-weight:650;display:block;margin-top:22px}dialog input{width:100%;font-weight:400;margin-top:6px}.dialog-top,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.expiry{font-size:12px;margin:10px 0 22px}.muted{font-size:12px;margin:18px 0 0}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#173e35;color:white;border-radius:9px;box-shadow:0 5px 30px #0002;max-width:calc(100vw - 32px);padding:0;z-index:10}#toast:not(:empty){padding:13px 20px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;z-index:20;background:white;padding:15px}.form-page{max-width:650px;padding-top:90px}.form-page p{margin:20px 0}
@media(max-width:1050px){main{padding-left:3%;padding-right:3%}.summary{gap:10px}.summary>div{padding:15px}.table-head,.roster-row{gap:14px;padding-left:18px;padding-right:18px;grid-template-columns:1.2fr .9fr 1.2fr .8fr}.section-head{align-items:start}.filters{flex-direction:column}.search input{width:220px}.demo-controls{flex-wrap:wrap}.demo-controls>div{width:100%}.summary .date-card strong{font-size:22px}.person{gap:8px}.avatar{display:none}}
@media(max-width:700px){header{height:68px}.brand{font-size:21px}.studio{font-size:12px}.demo-banner{flex-direction:column;font-size:10px;gap:5px}.heading{padding:28px 0 24px;align-items:start;flex-direction:column;gap:16px}h1{font-size:36px}.summary{grid-template-columns:1fr 1fr;margin-bottom:22px}.summary strong{font-size:30px}.summary>div{padding:15px 14px}.section-head{flex-direction:column;padding:20px 16px;gap:16px}.filters{flex-direction:row;width:100%;gap:8px}.filters label{flex:1;min-width:0}.filters input,.filters select{width:100%;font-size:12px}.notice{padding:12px 16px}.table-head{display:none}.roster-row{grid-template-columns:1fr 1fr;gap:16px;padding:22px 16px}.person{grid-column:1/-1}.avatar{display:flex}.person .name{font-size:16px}.attendance-cell{grid-column:1/-1;display:flex;gap:12px;align-items:center}.attendance-cell button{width:auto;min-width:150px}.attendance-cell small{margin:0}.demo-controls label{width:100%}.demo-controls select{width:100%}.demo-controls{gap:10px}.demo-controls button{flex:1}footer{gap:15px;font-size:10px}.dialog-actions{flex-direction:column;align-items:stretch}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:22px 0}.controls label{display:grid;gap:6px}.controls input{max-width:100%}.modal-actions{display:flex;gap:12px;margin-top:20px}.status-line{min-height:28px;margin:12px 0}.link-panel{margin:20px 0;padding:22px;border:1px solid #ccd7cc;border-radius:12px;background:white}.link-panel input{width:100%;margin:12px 0}button:disabled{cursor:not-allowed}details summary{cursor:pointer;min-height:44px;padding:10px 0}
