:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#173e37;background:#f0f5f0;font-size:17px;--green:#1b6357;--gold:#f0ca71}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{padding:12px 22px;display:flex;gap:16px;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid #cbdcd4}a{color:#175e52;text-underline-offset:4px}header a{font-weight:700}main{max-width:1120px;margin:auto;padding:22px}h1,h2,p{margin-top:0}h1{font-size:clamp(28px,4vw,44px);line-height:1.15;margin-bottom:12px}h2{font-size:23px}p{line-height:1.55}button,input,select{font:inherit}button,.file-label{border:2px solid var(--green);border-radius:13px;padding:11px 17px;background:white;color:#174c43;font-weight:650;cursor:pointer;min-height:48px}button.primary{background:var(--green);color:white}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:4px solid #ac6512;outline-offset:3px}input,select{max-width:100%;padding:9px;border:1px solid #718f84;border-radius:8px;background:white;color:#163e35}input[type=checkbox]{width:22px;height:22px;vertical-align:middle}label{display:block}label select,label input:not([type=checkbox]){display:block;margin-top:6px}.intro{padding:24px 0 12px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:750;display:block;margin-bottom:12px}.card{background:white;border:1px solid #cbdcd4;padding:24px;border-radius:22px;margin-bottom:20px;box-shadow:0 5px 14px #173e3706}.small{font-size:14px;color:#496058}.row,.actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:14px 0}.settings-grid,.activity-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.setting{padding:14px;border:1px solid #ceded7;border-radius:14px}.setting label{margin:5px 0}.activity-overview{margin:20px 0}.activity-overview>div{padding:18px;border-radius:17px;border:1px solid #cbdcd4;background:#fff}.activity-overview strong{display:block;margin-bottom:5px}summary{cursor:pointer;font-weight:700}details[open] summary{margin-bottom:16px}dialog{border:1px solid #9ab6a8;border-radius:20px;max-width:440px;width:90%;padding:26px}dialog::backdrop{background:#092c26aa}#gateError{color:#963a24}#storageNotice{position:fixed;z-index:90;bottom:10px;left:10px;right:10px;background:#fff2c6;border:2px solid #7b5420;padding:12px;border-radius:10px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:10px 6px;text-align:left;border-bottom:1px solid #d9e4df}th{color:#496057}.table-wrap{overflow:auto}.chart{display:block;width:100%;max-height:240px;margin:15px auto}.legend{display:flex;gap:20px}.swatch{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;background:#1b6357}.swatch.teach{background:#9b651e}.session-detail{margin:10px 0;padding:12px;background:#f3f6f2;border-radius:10px}.file-label{font-size:15px}.file-label input{font-size:13px;max-width:260px}
body.child{height:100vh;height:100dvh;overflow:hidden}body.child header{display:none}body.child main{height:100vh;height:100dvh;max-width:none;padding:0}#pupil{height:100%;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:grid;grid-template-rows:auto minmax(0,1fr) 48px auto;gap:10px;position:relative}.pupil-top,.pupil-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.pupil-top{font-size:16px;font-weight:650;border-bottom:1px solid #cfddd6;padding-bottom:8px}.pupil-top button{font-size:14px;padding:7px 12px}.pupil-bottom{justify-content:center}.pupil-bottom button{min-width:120px}#task{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;text-align:center;gap:8px;max-width:1000px;width:100%;margin:auto;height:100%}#instruction{font-size:clamp(26px,4.5vh,40px);margin:4px 0}#taskHint{font-size:clamp(15px,2.4vh,20px);margin:0;min-height:25px}#visual{min-height:0;display:flex;align-items:center;justify-content:center;gap:20px;padding:8px;max-height:100%;overflow:hidden}.answers{display:flex;gap:16px;justify-content:center;align-items:center}.answers button{min-width:100px;min-height:60px;font-size:28px}.answers button.chosen{outline:4px solid #bd8729;outline-offset:2px}.counters{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;align-content:center;justify-items:center;max-width:340px;width:100%;padding:12px;border:2px solid #adc8bb;border-radius:16px;background:#fff;position:relative}.counter{width:clamp(18px,4.3vh,37px);height:clamp(18px,4.3vh,37px);border-radius:50%;background:#21695c;border:2px solid #124c41;display:block}.counter.alt{background:#ca8c2c;border-color:#82500a}.counter.crossed{background:#e1e9e4;position:relative;border-color:#6c7f75}.counter.crossed:after{content:'×';display:grid;place-items:center;position:absolute;inset:0;color:#243e33;font-size:30px;line-height:1}.empty-counter{background:transparent;border-style:dashed;border-color:#bccdc3}.counter.marked{outline:4px solid var(--gold)}button.counter{min-height:0;padding:0;cursor:pointer}.set-wrap{width:min(44%,350px);display:flex;flex-direction:column;align-items:center;gap:10px}.set-label{font-size:20px;font-weight:700}.math-symbol{font-size:42px;font-weight:700}.whole{font-size:clamp(24px,6vh,48px);font-weight:750;padding:12px;border:2px solid #9cb8aa;border-radius:14px}.sequence{display:flex;align-items:center;gap:18px;font-size:clamp(28px,7vh,60px);font-weight:650}.number-line{position:relative;display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid #26594b;height:80px;width:100%;margin:35px 8px 55px}.tick{position:relative;height:20px;border-left:2px solid #26594b;flex:1}.tick:last-child{flex:0}.tick span{position:absolute;top:28px;left:-8px;font-size:16px}.tick .marker{position:absolute;top:-45px;left:-12px;font-size:34px;line-height:1;color:#805516}.flash-placeholder{font-size:28px;border:2px dashed #9ab5a8;padding:25px;border-radius:18px}.build-wrap{display:flex;flex-direction:column;gap:10px;align-items:center}#feedback{text-align:center;font-size:clamp(17px,2.8vh,24px);font-weight:650;display:grid;place-items:center;line-height:1.15}#pausePanel{position:absolute;inset:0;z-index:5;background:#f0f5f0;display:flex;flex-direction:column;justify-content:center;align-items:center}.pupil-top{position:relative;z-index:6}#pausePanel h2{font-size:35px}.result-panel{max-width:600px;margin:auto;text-align:center}#pupil.finished #task{display:flex;flex-direction:column;justify-content:center}#pupil.finished #visual{flex:0}#pupil.finished #answers{display:none}@media(max-width:800px){.settings-grid,.activity-overview{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding:14px}}@media(max-height:650px){#pupil{gap:4px;grid-template-rows:auto minmax(0,1fr) 34px auto;padding:6px 12px}#instruction{font-size:27px}#taskHint{font-size:16px;min-height:20px}.answers button{min-height:48px;font-size:25px;padding:7px 13px}.pupil-bottom button{min-height:44px;padding:8px 13px}#visual{padding:4px;gap:14px}.counters{padding:8px;gap:4px}.pupil-top{padding-bottom:4px}.number-line{margin-top:30px;margin-bottom:45px}}@media(max-width:500px){.settings-grid,.activity-overview{grid-template-columns:1fr}header>span{display:none}.answers{gap:8px}.answers button{min-width:75px}.pupil-bottom{gap:8px}.pupil-bottom button{min-width:0;font-size:14px}.sequence{gap:10px}.set-label{font-size:16px}.counter{width:24px;height:24px}#visual{gap:10px}}

.independent-key{color:#1b6357}.teaching-key{color:#9b651e}

textarea{display:block;width:100%;font:13px ui-monospace,monospace;border:1px solid #718f84;padding:10px;border-radius:8px;margin:8px 0 16px;min-height:90px}

button.counter{width:44px;height:44px;min-width:44px;min-height:44px}

/* Simple first-use standard: one main action, optional detail. */
#adultPanel{max-width:850px;margin:auto}#accessStatus{background:#e1f0e6;padding:12px;border-radius:10px;font-size:15px}#nextStep>h2,#practicePanel>h2,#addPupilForm>h2{margin-top:18px}#handover{border-top:2px solid #cbdcd4;padding-top:22px;margin-top:20px}.example{padding:18px;margin:18px 0;background:#f0f5f0;border-radius:14px}.example-visual{font-size:30px;font-weight:700;letter-spacing:.05em}.recovery-code{overflow-wrap:anywhere;font:700 22px ui-monospace,monospace;background:#eef5ef;padding:16px}#gate{max-width:520px;max-height:90dvh;overflow:auto}#gate input{width:100%}#gate button{font-size:16px}#activityExample p:last-child{margin-bottom:0}#pupilAdult{white-space:nowrap}#pupil .pupil-top>span:first-child{max-width:45%}#pupil #feedback{overflow-wrap:anywhere}#pupil.finished .whole{font-size:clamp(22px,5vh,40px)}
