
:root{--navy:#0a315f;--blue:#1e538b;--ink:#203149;--grey:#62748d;--bg:#edf1f6;--border:#d2dbe5}*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px system-ui,-apple-system,"Segoe UI",sans-serif}
header{background:var(--navy);color:white;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
header b{font-size:21px}header span{font-size:12px;opacity:.86}button,select,input{font:inherit}button{cursor:pointer;border:1px solid #afc0d2;color:var(--navy);background:#fff;padding:9px 12px;border-radius:8px;font-weight:650}button:hover{background:#ebf3fb}button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}button.primary:hover{background:#194978}button.selected{background:#dcecfb;border-color:#3976ad}button:disabled{opacity:.45;cursor:default}select,input{border:1px solid var(--border);border-radius:7px;padding:9px;background:white;max-width:100%}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;gap:12px;max-width:1810px;margin:0 auto;padding:12px}.card{background:#fff;border:1px solid var(--border);border-radius:11px;padding:12px;box-shadow:0 1px 7px #112b450b}
.side h2{font-size:15px;margin:4px 0 10px}.side .track{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--grey);margin:13px 0 6px}.bookBtn{width:100%;text-align:left;margin:0 0 5px;padding:10px}.bookBtn.selected{border:2px solid #2b68a8;background:#e9f2fc}
.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}.toolbar select{max-width:240px}
.page{position:relative;width:100%;aspect-ratio:792 / 612;overflow:hidden;border:1px solid var(--border);background:white}.page img{display:block;width:100%;height:100%;pointer-events:none;user-select:none}
.inkarea{position:absolute;left:46%;top:29.8%;width:51%;height:57.4%;touch-action:none;overflow:hidden}.inkarea canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}
.overlay{position:absolute;bottom:1.5%;height:6%;cursor:pointer;background:transparent;border:0;padding:0;z-index:2}.overlay:focus-visible{outline:2px solid #f80;background:#f8f8ac66}
.leftnav{left:3%;width:12%}.contentsnav{left:17%;width:15%}.rightnav{left:34%;width:15%}
.small{font-size:12px;color:var(--grey);line-height:1.5}.eyebrow{font-size:11px;color:var(--blue);font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.choice{display:block;border:1px solid var(--border);padding:9px;border-radius:7px;margin:7px 0;cursor:pointer;line-height:1.4}.choice:hover{background:#edf4ff}.choice input{margin-right:6px;accent-color:var(--navy)}.question{background:#e9f2fc;padding:13px;border-radius:8px;margin:12px 0;line-height:1.55}
.feedback{background:#f1f4f8;border-radius:8px;padding:10px;min-height:55px;margin-top:10px;font-size:13px;line-height:1.55}.good{background:#e6f5ed;color:#14563b}.caution{background:#fff3e1;color:#79460d}
.right h2{font-size:18px;margin:5px 0}.right input{width:100%;margin:7px 0 9px}.buttons{display:flex;flex-wrap:wrap;gap:6px}
.progress{margin-top:13px;border-top:1px solid var(--border);padding-top:12px}progress{width:100%;height:13px}.footer{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.tag{font-size:11px;display:inline-block;padding:4px 7px;background:#e6ebf1;color:#40546c;border-radius:20px}.warn{padding:9px 11px;background:#fff2e0;border-radius:8px;font-size:12px;color:#5b4524;line-height:1.45}
@media(max-width:1100px){.shell{grid-template-columns:190px minmax(0,1fr)}.right{grid-column:2}.side{grid-row:1 / span 2}}
@media(max-width:740px){.shell{display:flex;flex-direction:column;padding:6px}.side{order:0}.middle{order:1}.right{order:2}.bookGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.bookBtn{font-size:13px}.side .track{grid-column:1/-1}.page{min-width:0}.toolbar button{font-size:12px;padding:7px}.card{padding:9px}}



/* ACES Intelligent Intervention Framework — persistent platform commitment */
/* ACES mission strip: shown on sign-in and every workbook page */
.aces-commitment{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px 18px;background:#eff4fa;color:#18395d;border-bottom:1px solid #cad9e9;text-align:center;box-shadow:0 2px 7px rgba(12,35,64,.06)}
.aces-commitment strong{font-size:.89rem;letter-spacing:.015em}
.aces-commitment span{font-size:.83rem;line-height:1.45;max-width:930px}
@media(max-width:700px){.aces-commitment{position:static;gap:3px;padding:9px 12px}.aces-commitment strong,.aces-commitment span{width:100%}}

/* ACES Learning Coach — inactive development preview */
.coach-pilot{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#f6f9fd}.coach-pilot button{max-width:100%}.coach-pilot textarea{display:block;margin:6px 0 10px;padding:9px;border:1px solid var(--border);border-radius:8px;font:inherit;resize:vertical}.coach-pilot .feedback{margin:8px 0}

/* Ace pilot: readable transcript and short coaching exchange */
.ace-history { margin: 10px 0; max-height: 230px; overflow-y: auto; border-left: 3px solid #155093; padding-left: 12px; }
.ace-history p { margin: 8px 0; overflow-wrap: anywhere; }
.coach-pilot h3 { margin: 7px 0; }
.coach-pilot textarea { box-sizing: border-box; }


/* Ace V3: step-preserving scratch workspace (pilot only) */
.scratch-section{margin:10px 0 5px;padding:12px;background:#f6f9fd;border:1px solid #c9d8e7;border-radius:10px}
.scratch-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.scratch-top p{margin:4px 0}.scratch-section>p.small{margin:9px 0 3px}
.scratch-section summary{cursor:pointer;font-weight:750;color:var(--navy);padding:8px 0}
.scratch-section summary span{font-weight:400;color:var(--grey)}
.scratch-history-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:8px 0 0}
.scratch-step{border:1px solid #cbd9e8;border-radius:8px;background:white;padding:9px}
.scratch-step canvas{display:block;width:100%;height:auto;border:1px solid #e0e6ef;border-radius:6px;background:white;margin:7px 0}
.scratch-step .buttons button{font-size:12px;padding:6px 8px}
.scratch-step strong{font-size:13px}.scratch-step .small{margin:4px 0}
#scratchPreview{border:1px solid #94aac2;border-radius:12px;padding:14px;width:min(95vw,970px);max-height:92vh;overflow:auto;background:white;color:var(--ink)}
#scratchPreview::backdrop{background:rgba(8,22,46,.68)}
.scratch-preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px}
#scratchPreviewCanvas{width:100%;height:auto;display:block;border:1px solid #cbd9e8;background:white}
@media(max-width:740px){.scratch-top{align-items:stretch}.scratch-top button{width:100%}}

.toolbar .scratch-action{background:#e3effd;border-color:#2867a9;color:#0a315f}
.toolbar .scratch-action:hover{background:#d3e7ff}

/* Ace V4: student-selected human help request */
.ace-support{margin-top:14px;padding:12px;border:1px solid #b7cadf;background:white;border-radius:10px}
.ace-support h3{margin:6px 0}.ace-support select{display:block;width:100%;margin:6px 0 12px}
.ace-check{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-size:12px;line-height:1.5}
.ace-check input{width:auto;flex:none;margin:3px 0 0}.ace-support .primary{margin:5px 0}

/* V5 login readability — candidate, not production */
#login input{display:block;margin:6px 0 14px;font-size:17px;min-height:44px}
#login label{display:block;margin-top:6px}
#login .legacy-login{margin:10px 0 14px}
#login .legacy-login summary{color:#244a83;cursor:pointer;font-weight:650}
#login #signin{width:100%;min-height:46px;font-size:16px}
