:root{--ink:#192f2b;--muted:#62726e;--green:#1f5849;--lime:#d9e9a4;--paper:#f6f7f2;--line:#dbe1d8;--white:#fff;--amber:#fff1cd;--red:#8f352b;font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 17px;background:white;color:var(--ink);font-weight:600}button:hover{border-color:var(--green);background:#edf2e8}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:var(--red)}input,textarea,select{width:100%;padding:11px;border:1px solid #a9b7b1;border-radius:8px;background:white;color:var(--ink)}textarea{min-height:100px;resize:vertical}label{display:block;margin:14px 0 6px;font-weight:600;font-size:.9rem}input[type=checkbox]{width:auto;margin-right:9px}a{color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font:500 clamp(2rem,4vw,3.6rem)/1.12 Georgia,serif;letter-spacing:-1px;margin-bottom:18px}h2{font:500 1.65rem/1.3 Georgia,serif}h3{font-size:1.05rem}small,.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:.72rem;font-weight:700;color:var(--green);margin-bottom:14px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{padding:32px 22px;background:#edf0e7;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px}.brand{font-size:1.45rem;font-weight:750;letter-spacing:-1px}.brand span{color:var(--green)}.brand small{display:block;font-size:.65rem;letter-spacing:2px;font-weight:500;text-transform:uppercase}.sidebar nav{display:grid;gap:6px}.sidebar nav button{text-align:left;border:0;background:transparent;font-weight:500}.sidebar nav button.active{background:#dae4d5;color:var(--green)}.sidebar .bottom{margin-top:auto;font-size:.8rem}.main{padding:38px clamp(22px,4vw,64px);max-width:1400px;width:100%}.topbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:36px;align-items:center}.pill{display:inline-block;border:1px solid var(--line);border-radius:30px;padding:4px 10px;font-size:.73rem;font-weight:600;background:white}.pill.green{background:#e4eddc;color:var(--green);border-color:#cbd9bc}.pill.amber{background:var(--amber)}.grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:24px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:20px}.hero{padding:32px;background:var(--green);color:white;position:relative;overflow:hidden}.hero .eyebrow,.hero .muted{color:#d3e2cc}.hero h2{font-size:2.2rem}.hero button{background:var(--lime);border-color:var(--lime)}.hero .orb{position:absolute;right:10px;top:0;font:160px/1 Georgia,serif;opacity:.1;pointer-events:none}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:12px}.topic{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:16px;padding:17px 0;border-top:1px solid var(--line)}.topic:first-child{border-top:0}.number{font:1.1rem Georgia,serif;color:var(--green);background:#edf2e8;width:38px;height:38px;display:grid;place-items:center;border-radius:50%}.topic h3,.topic p{margin:0}.topic p{font-size:.8rem;color:var(--muted)}.big{font:2.8rem/1.2 Georgia,serif}.metric{flex:1;min-width:100px}.metric small{display:block}.note{border-left:3px solid #a8bb81;background:#f2f5ec;padding:15px 18px;margin:18px 0;font-size:.9rem}.warning{background:var(--amber);border-color:#bc9148}.error{color:var(--red)}.feedback{padding:16px;border-radius:9px;background:#edf2e8;margin:16px 0}.feedback.incorrect,.feedback.unassessed{background:var(--amber)}progress{width:100%;height:9px;accent-color:var(--green)}.question{font:1.5rem/1.5 Georgia,serif;white-space:pre-wrap;margin:22px 0}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.divider{border-top:1px solid var(--line);margin:24px 0}.login{max-width:1040px;margin:8vh auto;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.login .card{padding:35px}.login-art{height:220px;display:grid;place-items:center;font:100px Georgia,serif;color:var(--green);background:radial-gradient(ellipse,#dce6c9,transparent 65%);letter-spacing:-10px}.check{display:flex;align-items:flex-start;font-weight:400}.check input{margin-top:7px}.editor{font:12px/1.6 ui-monospace,monospace;min-height:340px}.visual{background:#f7f8f4;border-radius:12px;padding:18px;margin:20px 0}.visual svg{width:100%;height:220px;display:block}.visual line{stroke:#becac0;stroke-width:1}.visual path{stroke:var(--green);stroke-width:3;fill:none}.visual circle{stroke:var(--green);stroke-width:2;fill:#fff}.visual .dot{fill:#aa5c31;stroke:none}.visual text{font:12px sans-serif;fill:var(--muted)}summary{cursor:pointer;font-weight:600}.compact{font-size:.85rem}.limit{max-width:850px}.loading{padding:80px}#notice{position:fixed;bottom:20px;right:20px;max-width:420px;background:var(--ink);color:white;padding:0;border-radius:9px;z-index:20}#notice:not(:empty){padding:15px 22px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a4b760;outline-offset:3px}@media(max-width:950px){.shell{grid-template-columns:190px 1fr}.sidebar{padding:24px 12px}.grid{grid-template-columns:1fr}.login{gap:30px}.main{padding:28px 22px}}@media(max-width:650px){.shell{display:block}.sidebar{padding:18px;border-right:0;border-bottom:1px solid var(--line);gap:14px}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{white-space:nowrap;padding:8px}.sidebar .bottom{display:none}.brand small{display:inline;margin-left:12px}.main{padding:22px 16px}.topbar{margin-bottom:24px}.login{grid-template-columns:1fr;margin:20px auto;gap:8px}.login-art{display:none}.card{padding:20px}.topic{grid-template-columns:30px 1fr}.topic button{grid-column:2;justify-self:start}.hero{padding:25px}.topbar .muted{font-size:.8rem}h1{letter-spacing:-.5px}}

/* Structured editorial workspace */
fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled input,fieldset:disabled textarea,fieldset:disabled select{color:var(--ink);opacity:1;background:#f7f8f4}fieldset:disabled textarea{cursor:text}.review-section summary{overflow-wrap:anywhere}.review-section[open] summary{border-bottom:1px solid var(--line);padding-bottom:16px}.review-section textarea{min-height:125px}

/* Versioned curriculum graphs and tables: readable in both application surfaces. */
.course-representation{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink)}
.course-representation svg{display:block;width:100%;height:auto;max-height:360px}
.course-representation figcaption,.course-representation caption{font-weight:600;text-align:left;margin-bottom:12px}
.course-representation svg text{font:13px sans-serif;fill:var(--ink)}
.graph-grid{stroke:var(--muted);stroke-opacity:.2;stroke-width:1}.graph-axis{stroke:var(--muted);stroke-width:1.5}
.graph-curve{fill:none;stroke:var(--green);stroke-width:3;stroke-linejoin:round}
.graph-marker{stroke:var(--green);stroke-width:2.5}.graph-open{fill:var(--paper)}.graph-filled{fill:var(--green)}
.table-scroll{overflow-x:auto}.course-representation table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.course-representation th,.course-representation td{padding:8px 12px;text-align:left;border:1px solid var(--line)}
.table-scroll:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.graph-scroll{overflow-x:auto}.course-representation svg{min-width:480px}.graph-scroll:focus-visible{outline:3px solid var(--green);outline-offset:3px}.course-representation{min-width:0;max-width:100%}

/* Bilingual lesson support remains readable on narrow screens. */
.vocabulary-scroll table{border-collapse:collapse;width:100%;min-width:480px}.vocabulary-scroll th,.vocabulary-scroll td{text-align:left;vertical-align:top;padding:10px;border:1px solid var(--line)}.note li{margin-bottom:12px}.note a{overflow-wrap:anywhere}

/* AP orientation separates official units from app chapters. */
.ap-location{margin:18px 0}.ap-location p{margin:10px 0}.ap-topic{border-top:1px solid var(--line);padding:16px 0}.ap-unit h2{overflow-wrap:anywhere}

/* Coverage is separate from task progress; wide unit tables scroll locally. */
.main{min-width:0}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.kpi-grid>*{min-width:0}.kpi-grid .big small{font-size:1rem}.progress-table{border-collapse:collapse;width:100%;min-width:1000px;font-size:.9rem;font-variant-numeric:tabular-nums}.progress-table th,.progress-table td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.progress-table tbody th{min-width:190px;max-width:280px}.progress-table button{margin:0 0 8px;padding:7px 10px;font-size:.85rem}.table-scroll{max-width:100%}@media(max-width:950px){.kpi-grid{grid-template-columns:1fr}}
