:root{--forest:#193d32;--forest-2:#245243;--sage:#dfe9df;--cream:#fbf8f0;--paper:#fffdf8;--ink:#20322d;--muted:#68766f;--line:#dbe1d6;--gold:#c88b37;--coral:#c86b54;--shadow:0 16px 40px rgba(37,60,45,.08);--radius:20px;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 84% 2%,#edf2e8 0,transparent 28rem),var(--cream);line-height:1.5}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer}.hidden{display:none!important}.app-shell{max-width:1180px;margin:0 auto;padding:0 28px}.topbar{min-height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--forest);text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:12px;background:var(--forest);color:#f7deb1;display:grid;place-items:center;font-size:19px}.brand strong,.brand small{display:block}.brand strong{font-size:17px;letter-spacing:.02em}.brand small{font-size:11px;color:var(--muted);margin-top:1px}.topnav{display:flex;align-items:center;gap:7px}.topnav button,.topnav a{border:0;background:transparent;padding:11px 14px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:14px}.topnav button:hover,.topnav a:hover{background:var(--sage);color:var(--forest)}main{padding:42px 0 36px}.hero-row{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:30px}.eyebrow{color:var(--forest-2);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin:0 0 7px}.hero-row h1,.page-heading h1{font-size:clamp(29px,5vw,49px);line-height:1.08;letter-spacing:-.045em;margin:0 0 13px;font-weight:780}.hero-row h1 em{font-style:normal;color:var(--coral)}.lead{max-width:600px;font-size:16px;color:var(--muted);margin:0}.privacy-note{display:flex;gap:10px;align-items:center;background:#eef3eb;border:1px solid #dce7da;color:var(--forest-2);border-radius:15px;padding:12px 15px;font-size:12px;line-height:1.45;flex:none}.privacy-note span:first-child{font-size:20px}.control-strip{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;align-items:end;gap:16px;margin-bottom:18px;box-shadow:0 6px 18px rgba(25,61,50,.03)}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.field select,.field input{min-height:44px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 12px;color:var(--ink);outline:none}.field select:focus,.field input:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px rgba(36,82,67,.13)}.compact-field{min-width:175px}.subject-toggle{display:flex;gap:4px;background:#edf1eb;padding:4px;border-radius:13px}.subject-btn{min-height:44px;border:0;background:transparent;padding:0 18px;border-radius:10px;color:var(--muted);font-weight:750}.subject-btn.active{background:var(--forest);color:white;box-shadow:0 3px 8px rgba(25,61,50,.16)}.ghost-btn,.outline-btn,.danger-btn{min-height:44px;padding:0 15px;border-radius:11px;border:1px solid var(--line);background:transparent;color:var(--forest-2);font-weight:700}.ghost-btn{margin-left:auto}.ghost-btn:hover,.outline-btn:hover{background:var(--sage)}.primary-btn{min-height:46px;padding:0 18px;border:0;border-radius:12px;background:var(--forest);color:#fff;font-weight:800;box-shadow:0 5px 12px rgba(25,61,50,.14)}.primary-btn:hover{background:#285c4b;transform:translateY(-1px)}.primary-btn.full{width:100%;margin-top:13px}.danger-btn{color:#a34e40;border-color:#ead0ca}.notice{padding:13px 15px;border-radius:12px;background:#fff4df;color:#76521e;margin:0 0 18px;border:1px solid #f0ddb5;font-size:13px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.panel{background:rgba(255,253,248,.92);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.panel h2{font-size:22px;letter-spacing:-.02em;margin:0 0 7px}.time-chip,.soft-badge,.progress-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:7px 10px;background:#f4ecd9;color:#805c29;font-size:11px;font-weight:800}.soft-badge{background:var(--sage);color:var(--forest-2)}.plan-list{margin-top:16px;display:grid;gap:8px}.plan-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid #e7e9de;border-radius:13px;background:#fff}.plan-dot{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;color:var(--forest-2);background:#e3eee1;font-size:12px;font-weight:800;flex:none}.plan-item strong{font-size:13px;display:block}.plan-item small{font-size:11px;color:var(--muted)}.baseline-content{min-height:115px;margin-top:13px;display:flex;align-items:center}.baseline-value{display:flex;gap:22px}.baseline-number{font-size:31px;font-weight:800;line-height:1}.baseline-number small{font-size:11px;color:var(--muted);display:block;margin-top:7px;font-weight:700}.baseline-empty{font-size:14px;color:var(--muted);line-height:1.6}.muted{color:var(--muted)}.small{font-size:12px}.skills-panel{margin-top:18px}.skills-heading{align-items:center}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.skill-card{border:1px solid #e3e8de;border-radius:15px;padding:14px;background:#fff;min-height:121px;display:flex;flex-direction:column}.skill-card .skill-title{font-weight:800;font-size:14px}.skill-card small{color:var(--muted);font-size:11px;margin-top:4px}.meter{height:7px;border-radius:9px;background:#e9eee7;overflow:hidden;margin:15px 0 8px}.meter span{height:100%;display:block;background:var(--forest-2);border-radius:9px}.skill-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:auto}.stars{color:var(--gold);letter-spacing:1px;font-size:14px}.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:18px}.action-card{min-height:95px;text-align:left;border:1px solid var(--line);background:#f5f7f1;border-radius:17px;padding:15px;display:flex;align-items:center;gap:10px;color:var(--ink);transition:.15s}.action-card:hover{background:#e9f0e8;transform:translateY(-2px)}.action-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#dcebdd;color:var(--forest);font-weight:850;flex:none}.action-card strong,.action-card small{display:block}.action-card strong{font-size:13px}.action-card small{font-size:11px;color:var(--muted);margin-top:3px}.arrow{margin-left:auto;color:var(--forest-2);font-size:20px}.footer{border-top:1px solid var(--line);padding:18px 0 24px;color:var(--muted);display:flex;justify-content:space-between;font-size:11px}.page-heading{display:flex;align-items:center;gap:20px;margin-bottom:25px}.page-heading>div:nth-child(2){flex:1}.page-heading h1{font-size:34px;margin:0}.back-btn{min-height:44px;border:0;background:transparent;color:var(--forest-2);font-weight:800;padding:0 8px}.practice-setup,.mock-setup{padding:27px}.setup-columns{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:start}.setup-columns h2,.mock-setup h2{margin:0 0 8px}.setup-fields{display:grid;gap:14px}.level-picker{border:0;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}.level-picker legend{font-size:12px;color:var(--muted);font-weight:750;margin-bottom:7px;width:100%}.level-picker label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:9px 13px;border-radius:11px;font-size:13px;font-weight:700}.level-picker input{accent-color:var(--forest)}.setup-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px}.question-wrap{max-width:820px;margin:0 auto}.question-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.question-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:25px;box-shadow:var(--shadow)}.question-label{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.question-prompt{font-family:Georgia,serif;font-size:clamp(22px,4vw,31px);line-height:1.3;margin:17px 0 17px;white-space:pre-wrap}.passage{font-family:Georgia,serif;font-size:17px;line-height:1.75;border-left:4px solid #bfd3bd;padding:7px 16px;margin:12px 0 18px;background:#f7faf3;border-radius:0 10px 10px 0}.figure-wrap{max-height:300px;overflow:auto;margin:7px 0 17px;text-align:center}.figure-wrap svg{max-width:100%;height:auto;max-height:220px}.option-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option-label{min-height:58px;border:1px solid var(--line);border-radius:13px;padding:12px;display:flex;align-items:center;gap:10px;background:#fff;cursor:pointer;font-weight:700}.option-label:hover{background:#f4f8f1;border-color:#b6cdb9}.option-label input{accent-color:var(--forest);width:18px;height:18px;flex:none}.option-label.correct{border-color:#75a27e;background:#e9f5e8}.option-label.incorrect{border-color:#d89080;background:#fff0eb}.answer-actions{display:flex;align-items:center;gap:10px;margin-top:19px}.answer-actions .submit-answer{margin-left:auto}.hint-btn,.reveal-btn{min-height:44px;border:0;background:transparent;color:#94662e;padding:0 12px;font-size:13px;font-weight:700}.hint-box,.explanation{margin-top:15px;border-radius:12px;padding:12px 14px;background:#f6f0df;font-size:13px;color:#765e37}.explanation{background:#eaf2e7;color:var(--forest-2)}.explanation strong{display:block;margin-bottom:4px}.assist-note{font-size:11px;color:#8b6d34;margin-top:9px}.rating-row{display:flex;align-items:center;gap:9px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.rating-buttons{display:flex;gap:3px}.rating-buttons button{border:0;background:transparent;font-size:21px;color:#b9c2b5;padding:2px}.rating-buttons button.active{color:var(--gold)}.next-row{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.next-row button{min-height:45px}.audio-btn{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:0 12px;color:var(--forest-2);font-size:13px;font-weight:750}.mock-setup{display:flex;align-items:center;justify-content:space-between;gap:25px}.mock-question{margin-bottom:16px}.mock-progress{height:8px;background:#e5ece2;border-radius:8px;margin:0 0 20px}.mock-progress span{display:block;height:100%;background:var(--forest-2);border-radius:8px}.mock-finish{padding:30px;text-align:center}.mock-score{font-size:44px;color:var(--forest);font-weight:850}.mock-review{display:grid;gap:10px;margin-top:20px;text-align:left}.review-item{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff}.review-item strong{display:block;font-size:13px}.review-item small{color:var(--muted)}.parent-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.parent-grid>.panel:last-child{grid-column:1/-1}.parent-actions,.stack-actions{display:flex;gap:9px;flex-wrap:wrap;margin:17px 0}.learner-list{border-top:1px solid var(--line);padding-top:11px;display:grid;gap:7px}.learner-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f5f8f2;border-radius:11px}.learner-row.active{outline:2px solid #a9c9ac}.learner-row button{border:0;background:transparent;color:var(--forest-2);font-weight:750}.form-grid{display:grid;gap:13px;margin:17px 0}.file-btn{min-height:44px;padding:0 15px;border-radius:11px;background:var(--sage);color:var(--forest-2);font-weight:800;display:inline-flex;align-items:center;cursor:pointer}.file-btn input{display:none}.print-sheet,.print-key{background:#fff;padding:34px;max-width:820px;margin:0 auto;border:1px solid var(--line);border-radius:14px}.print-sheet h2,.print-key h2{margin-top:0}.print-question{padding:14px 0;border-top:1px solid #dde3d9;break-inside:avoid}.print-question strong{font-size:14px}.print-options{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px;font-size:12px}.print-key{margin-top:18px}.about-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.about-copy p{color:var(--muted);max-width:690px}.about-copy h3{margin-top:28px}.text-link{color:var(--forest-2);font-weight:800}.about-list{display:grid;gap:20px}.about-list>div{display:grid;grid-template-columns:40px 1fr;column-gap:10px}.about-list h3{margin:0}.about-list p{grid-column:2;color:var(--muted);font-size:13px;margin:2px 0 0}.round-icon{width:36px;height:36px;border-radius:50%;background:var(--sage);display:grid;place-items:center;color:var(--forest);grid-row:span 2}.no-print{display:flex}
@media(max-width:800px){.app-shell{padding:0 16px}.topbar{min-height:70px}.topnav a{display:none}.hero-row{display:block}.privacy-note{display:inline-flex;margin-top:18px}.dashboard-grid,.parent-grid,.about-grid{grid-template-columns:1fr}.parent-grid>.panel:last-child{grid-column:auto}.skills-grid{grid-template-columns:1fr 1fr}.action-grid{grid-template-columns:1fr 1fr}.setup-columns{grid-template-columns:1fr}.mock-setup{display:block}.mock-setup .setup-actions{justify-content:space-between}.page-heading{gap:10px}.page-heading h1{font-size:29px}.control-strip{flex-wrap:wrap;align-items:center}.compact-field{flex:1}.ghost-btn{margin-left:0}.option-list{grid-template-columns:1fr}.print-controls{display:flex;align-items:center;gap:8px}.print-controls label{font-size:12px}}
@media(max-width:480px){.app-shell{padding:0 12px}.topbar{align-items:center}.brand strong{font-size:15px}.topnav button{padding:10px 8px;font-size:12px}.hero-row h1{font-size:34px}.panel{padding:18px}.skills-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.footer{display:block}.footer span{display:block;margin:4px 0}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading>div:nth-child(2){min-width:180px}.setup-actions{justify-content:stretch;flex-wrap:wrap}.setup-actions .primary-btn,.setup-actions .ghost-btn{flex:1}.question-card{padding:18px}.question-prompt{font-size:23px}.answer-actions{flex-wrap:wrap}.answer-actions .submit-answer{margin-left:0;width:100%}.mock-setup .setup-actions{display:grid}.mock-setup .subject-toggle{justify-content:center}.print-sheet,.print-key{padding:18px}.print-controls{width:100%;justify-content:space-between}}
.check-line{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:650}.check-line input{width:18px;height:18px;accent-color:var(--forest)}.print-figure{max-height:180px;overflow:hidden;margin:8px 0}.print-figure svg{max-width:100%;height:auto;max-height:175px}
@media print{body{background:#fff}.app-shell{max-width:none;padding:0}.topbar,.footer,.no-print{display:none!important}.view{display:none!important}.print-view{display:block!important}.print-sheet,.print-key{border:0;box-shadow:none;max-width:none;margin:0;padding:12mm}.print-key{break-before:page}.print-question{padding:9px 0}.print-view{color:#111}.print-view .eyebrow{color:#111}}
@page{size:A4;margin:14mm}
.goal-settings{display:block;margin-bottom:18px}.goal-settings>summary{cursor:pointer;font-weight:800;min-height:44px}.goal-learner fieldset{min-width:0;border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:12px}.goal-learner legend{font-weight:800}.goal-learner p{margin:8px 0}.goal-strands{padding-left:22px}.goal-strands li{margin:12px 0}.goal-range{display:flex;gap:10px;flex-wrap:wrap}.goal-range .field{flex:1;min-width:100px}.goal-range input{width:100%}#goalProfiles>.panel:last-child{grid-column:auto}
.map-simulation{display:block;margin-bottom:18px;min-width:0}.map-simulation>summary{cursor:pointer;font-weight:800;min-height:44px}.map-simulation h3{font-size:17px;margin:20px 0 10px}.map-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-top:16px}.map-controls .field{flex:1;min-width:110px}.map-controls select{width:100%;max-width:100%}.map-controls button{margin-bottom:0}.map-simulation .question-label{letter-spacing:0;text-transform:none;color:var(--muted)}.map-simulation .question-prompt,.map-simulation .passage,.map-simulation li{overflow-wrap:anywhere}.map-simulation .passage{white-space:pre-wrap}.map-band{font-size:clamp(17px,3vw,24px);font-weight:800;color:var(--forest)}.map-strand-results{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-strand-results li{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.map-strand-results strong,.map-strand-results span{display:block}.map-strand-results span{font-size:13px;color:var(--muted);margin-top:4px}.map-history{margin-top:20px;border-top:1px solid var(--line)}.map-history details>summary{min-height:44px;cursor:pointer}.map-trend{display:block;width:100%;max-width:680px;height:auto}.map-trend text{font-size:12px;fill:var(--muted)}.map-trend polyline{fill:none;stroke:var(--forest);stroke-width:2}.map-trend circle{fill:var(--forest)}.map-trend .map-chart-axis{fill:none;stroke:var(--line)}.map-goal-line line{stroke:var(--muted)}.map-goal-target line{stroke:var(--gold)}.map-goal-stretch line{stroke:var(--coral)}.map-simulation button:focus-visible,.map-simulation summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:480px){.map-strand-results{grid-template-columns:1fr}.map-controls button{width:100%}.map-simulation .question-card{padding:14px}.map-history ol{padding-left:20px}}
@media print{html,body{background:#fff!important}main{padding:0!important;outline:none!important}.print-sheet,.print-key{padding:0!important;border-radius:0!important}.print-figure{max-width:320px;max-height:150px;overflow:visible}.print-figure svg{width:100%;max-height:145px}.print-question{break-inside:avoid;page-break-inside:avoid}}
.control-strip{flex-wrap:wrap;align-items:center}.topnav button,.topnav a{min-height:44px;display:inline-flex;align-items:center}.star-filters{display:flex;gap:6px;flex-wrap:wrap}.star-filters button{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:0 12px;font-weight:750;color:var(--muted)}.star-filters button.active{background:var(--forest);color:#fff;border-color:var(--forest)}.start-panel p{color:var(--muted);margin:0 0 8px}.rule-inline{color:var(--ink);font-size:14px;line-height:1.55}.rule-banner{max-width:820px;margin:0 auto 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f4f7f1;color:var(--ink);font-size:14px;line-height:1.55}.domain-label{margin:18px 0 0;font-size:13px;color:var(--muted);font-weight:750}button.skill-card{appearance:none;-webkit-appearance:none;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}button.skill-card:hover{border-color:#8eae96}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.figure-wrap{max-height:240px}.manual-panel{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);text-align:left}.manual-panel p{margin:0 0 8px}.manual-panel button.active{border-color:var(--gold);color:#805c29}#resumeBar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}#resumeBar.hidden{display:none!important}.round-summary h2{margin-top:0}@media(max-width:800px){.star-filters{width:100%}.control-strip .ghost-btn{margin-left:0}.skills-grid{grid-template-columns:1fr}}
.child-switch{display:flex;gap:6px;flex-wrap:wrap}.child-switch button{min-height:44px;padding:0 14px;border-radius:11px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:800}.child-switch button.active{background:var(--forest);color:#fff;border-color:var(--forest)}.mode-banner{flex:1 1 100%;margin:0;color:var(--ink);font-size:14px;line-height:1.5}.skill-launch{min-height:44px;width:100%;text-align:left;border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.skill-launch .skill-title{display:block;font-weight:800}.rate-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.rate-row .who{min-width:4.5rem;font-size:13px;font-weight:800}.rate-row .star-filters button,.suggest-box button{min-width:44px;min-height:44px}.suggest-box{margin-top:14px;padding:12px;border:1px dashed var(--line);border-radius:12px;text-align:left}.suggest-box p{margin:0 0 8px}.skills-grid{grid-template-columns:repeat(2,1fr)}
