:root{--paper:#f6f7f4;--white:#fff;--ink:#253c34;--muted:#728079;--line:#e4e9e3;--green:#255e49;--lime:#d9efb5;--soft:#eef4e9;--orange:#af6932;--purple:#755bb0;--shadow:0 7px 25px #234b3410;--radius:18px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:var(--green);text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #91bca0;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.2px;line-height:1.2;margin-bottom:10px;font-weight:650}h2{font-size:18px;letter-spacing:-.35px;font-weight:650;margin-bottom:18px}h3{font-size:15px;margin-bottom:8px}p{line-height:1.6}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:650;color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#fbfcfa;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;letter-spacing:-.8px;padding:0 11px;margin-bottom:42px}.brand-mark{background:var(--green);color:#f4f7ec;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;transform:rotate(-5deg)}.nav-caption{padding:0 14px;margin-bottom:12px}.nav-list{display:grid;gap:5px}.nav-link{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:10px;color:#748178;font-size:13px;font-weight:550;position:relative}.nav-link:hover{background:#f0f4ed}.nav-link.active{background:#e7efe2;color:var(--green)}.nav-link.active:before{content:'';position:absolute;left:-20px;top:12px;bottom:12px;width:3px;background:var(--green);border-radius:0 3px 3px 0}.nav-link svg{width:19px;height:19px}.nav-count{margin-left:auto;background:white;border-radius:6px;padding:2px 6px;font-size:10px}.sidebar-bottom{margin-top:auto;padding:22px 12px 0}.sidebar-note{background:var(--soft);border-radius:13px;padding:15px;font-size:12px;line-height:1.6;color:#526450;margin-bottom:20px}.profile-mini{display:flex;align-items:center;gap:10px}.profile-mini small{display:block;margin-top:3px;color:var(--muted)}.avatar{border:1px solid #dbe3d4;width:36px;height:36px;border-radius:50%;background:#e7efd9;font-weight:600;display:grid;place-items:center;flex-shrink:0}.workspace{margin-left:244px}.topbar{height:83px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;background:#fbfcf9}.breadcrumb{font-size:12px;color:var(--muted);white-space:nowrap}.breadcrumb span{padding:0 12px;color:#bbc4bc}.breadcrumb strong{font-weight:500;color:var(--ink)}.global-search{margin-left:auto;display:flex;align-items:center;gap:10px;color:#8e9b93}.global-search input{width:200px;border:0;background:transparent;outline-offset:4px;font-size:12px;color:var(--ink)}.global-search kbd{border:1px solid #dfe5df;border-radius:4px;padding:2px 5px;font-size:10px}svg{vertical-align:middle}.icon{width:18px;height:18px;flex-shrink:0}.icon-button{background:transparent;border:0;display:grid;place-items:center;width:36px;height:36px;border-radius:9px}.icon-button:hover{background:var(--soft)}.mobile-menu{display:none}main{max-width:1430px;margin:auto;padding:32px 38px 18px;min-height:calc(100vh - 140px)}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:26px}.page-heading p{font-size:13px;margin:0;color:var(--muted)}.page-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.select,.input{border:1px solid var(--line);border-radius:9px;background:white;padding:9px 12px;color:var(--ink);min-height:38px}.select{max-width:210px}.demo-select{color:var(--orange);background:#fff8ee;border-color:#f2e4ce;font-size:11px;max-width:170px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:10px 14px;min-height:39px;background:white;font-size:12px;font-weight:550;transition:background .15s}.btn:hover{background:#f3f7ef}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:#1c4938}.btn.ghost{border:0;background:transparent;color:var(--green);padding:7px 0;min-height:28px}.btn.soft{background:var(--soft);border-color:transparent}.btn.small{padding:7px 10px;min-height:32px;font-size:11px}.btn svg{width:15px;height:15px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;line-height:1.4;font-weight:550;border-radius:6px;padding:5px 8px;white-space:nowrap;background:#f1f3f0;color:#7c867c}.badge.green{background:#e7f1e4;color:#437249}.badge.orange{background:#fff0de;color:var(--orange)}.badge.purple{background:#f0ebf8;color:var(--purple)}.badge.red{background:#fbebe6;color:#b46b57}.badge.dark{background:#ffffff18;color:#e7f5d2}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;flex-shrink:0}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.card-head h2{margin:0}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}.grid-equal{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.section-space{margin-top:20px}.hero{background:var(--green);border:0;border-radius:var(--radius);padding:30px;color:white;display:flex;gap:30px;justify-content:space-between;position:relative;overflow:hidden;min-height:230px}.hero:after{content:'';position:absolute;border:1px solid #ffffff17;width:260px;height:260px;border-radius:50%;right:-90px;top:-70px;pointer-events:none}.hero .eyebrow{color:#c6dab9}.hero h2{font-size:29px;letter-spacing:-.8px;margin:18px 0 13px}.hero p{color:#cbded1;font-size:13px;max-width:470px}.hero .btn{background:var(--lime);color:#234c38;border:0}.hero-meta{display:flex;align-items:center;gap:12px;margin-top:20px}.hero-visual{min-width:145px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px;z-index:1}.stage-circle{width:114px;height:114px;border:1px solid #9dc08660;border-radius:50%;display:grid;place-items:center;position:relative;background:#ffffff06}.stage-circle:before{content:'';position:absolute;inset:9px;border:1px dashed #b4d18e55;border-radius:50%}.stage-circle strong{font-size:39px;font-weight:450;color:var(--lime)}.hero-visual small{color:#c2d7c7}.stat{padding:18px 20px;position:relative}.stat-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px;line-height:1.5}.stat-number{font-size:30px;letter-spacing:-1px;font-weight:600;margin:12px 0 7px}.stat-number small{font-size:15px;letter-spacing:0;color:var(--muted);font-weight:400}.stat-foot{font-size:10px;color:var(--muted);line-height:1.6}.stat-open{position:absolute;right:14px;top:16px;color:#9aaa9e}.spark{width:65px;height:22px;position:absolute;right:18px;bottom:24px;opacity:.6}.today{display:flex;flex-direction:column}.today .next-title{font-size:20px;line-height:1.4;letter-spacing:-.4px}.today .next-description{font-size:12px;color:var(--muted);margin:12px 0 18px}.today .btn{margin-top:auto;align-self:flex-start}.tiny-meta{display:flex;gap:13px;font-size:10px;color:var(--muted);margin-bottom:18px}.tiny-meta span{display:flex;gap:5px;align-items:center}.chart{height:178px;display:flex;align-items:stretch;gap:9px;padding-top:10px}.bar-column{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;justify-content:flex-end;background:transparent;border:0;border-radius:7px;padding:0 3px}.bar-column:hover{background:#f1f6ed}.bar-track{width:100%;max-width:32px;min-height:120px;position:relative;display:flex;align-items:flex-end;gap:3px;justify-content:center}.bar{width:45%;border-radius:4px 4px 0 0;background:#94b377;min-height:0}.bar.assisted{background:#e1e9d7}.bar-label{font-size:9px;color:var(--muted);margin-top:10px;white-space:nowrap}.chart-legend{display:flex;gap:14px;font-size:10px;color:var(--muted);margin-top:17px}.legend-dot{width:8px;height:8px;display:inline-block;border-radius:2px;margin-right:5px;background:#94b377}.legend-dot.soft{background:#e1e9d7}.rule-note{font-size:10px;color:var(--muted);margin:15px 0 0;line-height:1.5}.route-preview{display:flex;gap:0;padding:13px 0 7px}.route-step{flex:1;position:relative;text-align:center;border:0;background:transparent;display:flex;align-items:center;flex-direction:column;gap:9px;font-size:10px;color:#93a095;line-height:1.4;min-width:0;padding:0 3px}.route-step:before{position:absolute;content:'';height:1px;background:var(--line);top:15px;left:50%;right:-50%}.route-step:last-child:before{display:none}.step-number{position:relative;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#f4f6f1;border:1px solid var(--line);font-size:11px;color:#a2ada1}.route-step.current{color:var(--green);font-weight:600}.route-step.current .step-number{background:#e6f0da;border-color:#b9cda8;color:var(--green)}.route-step span:last-child{max-width:87px}.list-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #eef1eb}.list-row:last-child{border-bottom:0;padding-bottom:0}.list-row:first-child{padding-top:0}.row-icon{width:34px;height:34px;background:#edf4e5;color:#678351;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.row-icon.orange{background:#fff2e1;color:#b1844c}.row-icon.purple{background:#f0ecf8;color:var(--purple)}.row-copy{flex:1;min-width:0}.row-copy h3{font-size:12px;margin:0 0 5px}.row-copy p{font-size:10px;margin:0;color:var(--muted);line-height:1.5}.progress-track{height:5px;background:#edf1e8;border-radius:5px;overflow:hidden}.progress-fill{background:#8eaf6e;height:100%;border-radius:5px}.homework-mini{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin:13px 0 8px}.notice{border:1px solid #eadcc9;background:#fff9ed;border-radius:12px;padding:14px 17px;font-size:12px;line-height:1.6;color:#8c6a43;display:flex;gap:10px;margin-bottom:20px}.notice.info{background:#eef4eb;border-color:#dce7d7;color:#5d7357}.notice svg{margin-top:3px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar .input{flex:1;min-width:160px}.tabs{display:flex;gap:5px;padding:4px;background:#eef1e9;border-radius:10px;flex-wrap:wrap;width:fit-content;margin-bottom:20px}.tab{background:transparent;border:0;border-radius:7px;padding:9px 13px;color:var(--muted);font-size:12px}.tab.active{background:white;color:var(--ink);box-shadow:0 1px 4px #223a3310}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.table th{font-size:10px;color:#909c92;font-weight:500;padding:0 14px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}.table td{padding:18px 14px;border-bottom:1px solid #edf1e9;vertical-align:middle}.table td:first-child,.table th:first-child{padding-left:0}.table td:last-child,.table th:last-child{padding-right:0}.table tbody tr:last-child td{border-bottom:0}.table td strong{font-weight:550;display:block;margin-bottom:5px}.table td small{color:var(--muted);font-size:10px}.table button.text-button{text-align:left;background:transparent;border:0;padding:0;color:var(--green);font-weight:550}.table tr.clickable:hover{background:#f9fbf5;cursor:pointer}.fraction{font-size:16px;font-weight:600;white-space:nowrap}.fraction small{font-weight:400}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:12px;font-size:11px;color:var(--muted)}.pagination-actions{display:flex;gap:8px}.empty{padding:40px 24px;text-align:center}.empty .row-icon{margin:0 auto 18px;width:50px;height:50px}.empty h3{font-size:19px;font-weight:550}.empty p{max-width:430px;font-size:12px;color:var(--muted);margin:12px auto 20px}.program-list{display:grid;gap:12px}.stage-card{display:flex;align-items:flex-start;gap:18px;padding:23px;background:white;border:1px solid var(--line);border-radius:14px;text-align:left;width:100%}.stage-card:hover{border-color:#b9cda8}.stage-card.current{background:#f1f6e9;border-color:#bdd0ab}.stage-card .step-number{width:43px;height:43px;flex-shrink:0}.stage-card.current .step-number{background:var(--green);color:white;border-color:var(--green)}.stage-content{flex:1}.stage-content h3{font-size:15px;margin:0 0 7px}.stage-content p{font-size:12px;color:var(--muted);margin:0}.stage-card .icon{margin-top:4px;color:#a4b79a}.source-chip{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:10px;color:var(--muted);background:#fcfdf9;margin:2px}.detail-list{margin:0;padding:0;list-style:none}.detail-list li{padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}.detail-list li:last-child{border-bottom:0}.detail-list li strong{display:block;margin-bottom:5px}.answer{font-family:Georgia,serif;font-size:23px;line-height:1.6;letter-spacing:-.2px;padding:22px;background:#f5f7ef;border-left:3px solid #abc78e;border-radius:0 10px 10px 0;margin:18px 0}.answer.wrong{background:#fff6ef;border-color:#d4a47a}.arrow-flow{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:15px 0}.arrow-flow .badge{font-size:11px}.job-card{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}.job-card:last-child{border-bottom:0}.job-time{width:67px;flex-shrink:0;font-size:11px;color:var(--muted)}.job-time strong{font-size:13px;color:var(--ink);display:block;margin-bottom:6px}.job-copy{flex:1;min-width:0}.job-copy h3{font-size:14px}.job-copy p{font-size:12px;color:var(--muted);margin:9px 0}.job-meta{display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.settings-row{display:flex;justify-content:space-between;gap:25px;padding:18px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.settings-row strong{font-size:13px;font-weight:550}.settings-row p{font-size:11px;color:var(--muted);margin:6px 0 0}.settings-value{font-size:12px;white-space:nowrap;text-align:right}.field{display:grid;gap:8px;margin-top:14px}.field label{font-size:12px}.field textarea{resize:vertical;min-height:74px;line-height:1.6}.homework-item{padding:17px 0;border-bottom:1px solid var(--line)}.homework-item:first-child{padding-top:0}.homework-item:last-child{border:0}.homework-item h3{font-size:13px;font-weight:500;line-height:1.7}.homework-item .badge{margin-bottom:9px}.check-box{display:flex;align-items:center;gap:9px;font-size:12px}.search-result{display:block;width:100%;border:0;border-bottom:1px solid var(--line);padding:17px 0;background:white;text-align:left}.search-result:hover{color:var(--green)}.search-result small{display:block;color:var(--muted);margin-top:7px}.footer{max-width:1430px;margin:12px auto 0;padding:22px 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;color:#99a496;font-size:10px}.footer span{color:#a4afa1}dialog{inset:0 0 0 auto;margin:0;border:0;border-left:1px solid var(--line);padding:25px 30px;width:530px;max-width:100vw;height:100dvh;max-height:100dvh;background:#fdfefb;box-shadow:-12px 0 50px #172d3420;color:var(--ink)}dialog::backdrop{background:#172c294d;backdrop-filter:blur(3px)}.drawer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:24px}#detail-body h2{font-size:25px;letter-spacing:-.6px;line-height:1.3}#detail-body h3{margin-top:25px}#detail-body p{font-size:13px}#detail-body .card{padding:18px;margin-top:18px}#detail-body .table{font-size:11px}.drawer-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:23px}.key-value{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px}.key-value span:first-child{color:var(--muted)}.break-anywhere{overflow-wrap:anywhere}.diff{padding:15px 18px;border-radius:10px;font-size:12px;line-height:1.6;margin-top:9px}.diff.before{background:#fff2e9;color:#966b50}.diff.after{background:#edf5e4;color:#577547}.diff small{display:block;font-size:10px;margin-bottom:8px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}#toast{position:fixed;bottom:22px;left:calc(50% + 122px);transform:translate(-50%,20px);background:#233e31;color:white;border-radius:12px;padding:14px 20px;box-shadow:var(--shadow);font-size:12px;line-height:1.5;max-width:450px;opacity:0;pointer-events:none;transition:.2s;z-index:100}#toast.visible{opacity:1;transform:translate(-50%,0)}.skip-link{position:fixed;left:15px;top:-60px;padding:12px;background:white;z-index:100}.skip-link:focus{top:10px}.scroll-cards{display:grid;gap:12px}.link-row{width:100%;border:0;background:transparent;padding:0;text-align:left;color:inherit}.code-id{font-family:ui-monospace,monospace;font-size:11px;background:#eef1e9;border-radius:5px;padding:5px 8px;display:inline-block}.read-only{font-size:11px;color:var(--muted);padding:10px 0}.callout-big{font-size:18px;line-height:1.6;font-weight:500}.stale-badge{display:inline-flex;gap:5px;align-items:center}.live-date{font-size:10px;color:var(--muted);margin-top:20px}.chart-note{font-size:12px;color:var(--muted)}.materials-tag{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.method-card p{font-size:12px;color:var(--muted)}.view-heading{display:flex;gap:12px;align-items:center;margin-bottom:17px}.view-heading .row-icon{width:38px;height:38px}.view-heading h2{margin:0}.health-pair{display:flex;gap:15px;align-items:center;font-size:11px;color:var(--muted);margin-top:16px}.health-pair span{display:flex;align-items:center;gap:5px}.health-pair .dot{color:#78a568}.no-wrap{white-space:nowrap}
@media(min-width:1550px){main{padding-top:40px}.hero{min-height:245px}.card{padding:26px}.chart{height:190px}}
@media(max-width:1150px){.sidebar{width:210px;padding-left:14px;padding-right:14px}.workspace{margin-left:210px}.brand{font-size:19px}.topbar{padding:0 25px}main{padding:25px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-visual{display:none}.hero{min-height:235px;padding:24px}.page-heading{flex-wrap:wrap}.global-search input{width:150px}.route-step span:last-child{font-size:9px}.footer{padding:20px 25px}#toast{left:calc(50% + 105px)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:244px;transition:transform .2s;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:8px 0 50px #223a331f}.workspace{margin:0}.mobile-menu{display:grid}.topbar{height:65px;padding:0 16px;gap:10px}.breadcrumb{font-size:11px}.breadcrumb span{padding:0 6px}.global-search{margin-left:auto}.global-search input{width:90px;font-size:11px}.global-search kbd{display:none}.topbar .avatar{display:none}main{padding:25px 17px 10px}h1{font-size:27px}.page-heading{gap:15px;margin-bottom:23px}.page-controls{width:100%;gap:8px}.select{font-size:12px;max-width:170px}.demo-select{font-size:10px;max-width:170px}.grid-2,.grid-equal,.grid-3{grid-template-columns:minmax(0,1fr)}.grid-4{gap:10px}.card{padding:19px}.hero{padding:24px;min-height:220px}.hero h2{font-size:27px}.stat{padding:16px}.stat-number{font-size:27px}.stat-label{font-size:10px}.stat-foot{font-size:9px}.stat-open{right:8px;top:11px}.spark{display:none}.route-preview{overflow-x:auto;padding-bottom:14px}.route-step{min-width:56px}.stage-card{padding:18px;gap:12px}.stage-card .badge{white-space:normal}.stage-content h3{font-size:13px}.stage-content p{font-size:11px}.footer{padding:20px 17px;line-height:1.7;font-size:9px;flex-direction:column;gap:4px}dialog{padding:20px;width:100%}.job-time{width:55px}.job-card{gap:12px}.pagination{flex-wrap:wrap}#toast{left:50%;max-width:calc(100vw - 30px);width:max-content}.health-pair{flex-wrap:wrap}.table{min-width:490px}.toolbar .select{flex:1}.global-search span{display:none}.settings-row{gap:12px}.settings-value{max-width:145px;white-space:normal}.hero-meta{flex-wrap:wrap}.page-heading p{line-height:1.6}.chart{gap:4px}.bar-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.sidebar{overflow-y:auto}.nav-list{flex-shrink:0}
@media(max-width:760px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}.breadcrumb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.global-search{flex:0 1 110px;min-width:0}.global-search input{width:100%;min-width:0}}

/* Appearance tokens shared by both learner scenarios. */
:root {
  color-scheme: light;
  --surface: #fff; --surface-alt: #fbfcfa; --ink: #253c34; --muted: #626f65;
  --soft: #edf3e7; --green: #255e49; --line: #dfe5dc; --hero: #255e49;
  --primary: #255e49; --primary-ink: #fff; --primary-hover: #1b4938;
  --green-wash: #e7f1e4; --green-text: #365f3c;
  --orange-wash: #fff0de; --orange: #965724;
  --purple-wash: #f0ebf8; --purple: #6c4ba3;
  --red-wash: #fbebe6; --red-text: #9b4e3c;
  --warn-wash: #fff9ed; --warn-line: #e6d4b8; --warn-ink: #79552e;
  --chart-independent: #6b8e4a; --chart-assisted: #cdddbc;
  --answer: #f2f6ec; --answer-border: #9cb77d; --answer-wrong: #fff3e8;
  --focus: #527c36; --dialog-shadow: -12px 0 50px #172d3420;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #141c19; --surface: #1e2923; --surface-alt: #18221d;
  --ink: #e5ebdf; --muted: #a8b6a8; --line: #35463b;
  --soft: #2a3a2b; --green: #b0d6a1; --lime: #d9efb5; --hero: #213e30;
  --primary: #b0d6a1; --primary-ink: #17261c; --primary-hover: #c5e5b9;
  --green-wash: #293e2b; --green-text: #bcdfa7;
  --orange-wash: #423322; --orange: #f0c292;
  --purple-wash: #362e48; --purple: #d1b9fa;
  --red-wash: #482e2a; --red-text: #ffbead;
  --warn-wash: #382e20; --warn-line: #655031; --warn-ink: #ecc991;
  --chart-independent: #aacb87; --chart-assisted: #4e6640;
  --answer: #2a3828; --answer-border: #809f64; --answer-wrong: #3d3025;
  --focus: #d1e9b4; --dialog-shadow: -12px 0 50px #0006;
}
.sidebar, .topbar { background: var(--surface-alt); }
.card, .stage-card, .select, .input, .btn, .search-result, .tab.active,
.nav-count, .skip-link { background: var(--surface); }
dialog { background: var(--surface-alt); box-shadow: var(--dialog-shadow); }
.nav-link, .footer, .footer span, .bar-label, .table th, .route-step,
.stat-open, .global-search, .breadcrumb span { color: var(--muted); }
.nav-link:hover, .btn:hover, .bar-column:hover, .table tr.clickable:hover { background: var(--soft); }
.nav-link.active, .stage-card.current { background: var(--green-wash); color: var(--green); }
.nav-link.active:before { background: var(--green); }
.stage-card.current, .stage-card:hover { border-color: var(--answer-border); }
.sidebar-note { background: var(--soft); color: var(--ink); }
.avatar { background: var(--green-wash); color: var(--green-text); border-color: var(--line); }
.brand-mark, .btn.primary, .stage-card.current .step-number { background: var(--primary); color: var(--primary-ink); border-color: var(--primary); }
.btn.primary:hover { background: var(--primary-hover); }
.btn.ghost { background: transparent; color: var(--green); }
.btn.soft, .tabs, .code-id, .source-chip, .progress-track { background: var(--soft); }
.hero { background: var(--hero); }
.hero .btn { background: var(--lime); color: #234c38; }
.hero .btn:hover { background: #e4f5c9; }
.badge { background: var(--soft); color: var(--muted); }
.badge.green, .row-icon { background: var(--green-wash); color: var(--green-text); }
.badge.orange, .row-icon.orange, .demo-select { background: var(--orange-wash); color: var(--orange); }
.demo-select { border-color: var(--warn-line); }
.badge.purple, .row-icon.purple { background: var(--purple-wash); color: var(--purple); }
.badge.red { background: var(--red-wash); color: var(--red-text); }
.badge.dark { background: #ffffff18; color: #e7f5d2; }
.bar, .legend-dot, .progress-fill { background: var(--chart-independent); }
.bar.assisted, .legend-dot.soft { background: var(--chart-assisted); }
.list-row, .table td { border-color: var(--line); }
.step-number { background: var(--soft); color: var(--muted); }
.route-step.current .step-number { background: var(--green-wash); border-color: var(--answer-border); color: var(--green); }
.notice { background: var(--warn-wash); border-color: var(--warn-line); color: var(--warn-ink); }
.notice.info { background: var(--green-wash); border-color: var(--line); color: var(--green-text); }
.answer { background: var(--answer); border-color: var(--answer-border); }
.answer.wrong, .diff.before { background: var(--answer-wrong); color: var(--orange); }
.diff.after { background: var(--green-wash); color: var(--green-text); }
.search-result { color: var(--ink); }
.global-search kbd { border-color: var(--line); }
.health-pair .dot { color: var(--green-text); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, tr:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

.workspace-tools { display: flex; align-items: center; gap: 18px; padding: 14px 38px; border-bottom: 1px solid var(--line); background: var(--surface-alt); }
.profile-picker, .theme-picker { display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--muted); }
.profile-picker .select { max-width: 240px; font-size: 12px; }
.theme-picker { margin-left: auto; }
.theme-picker .select { font-size: 12px; }
.demo-context { font-size: 10px; color: var(--muted); }
.version-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.version-strip > span { font-size: 10px; color: var(--muted); }
.version-link { background: var(--surface); padding: 6px 10px; min-height: 32px; font-size: 10px; max-width: 100%; white-space: normal; }
.version-link svg { width: 12px; height: 12px; }
.dialogue-preview { border-left: 2px solid var(--line); padding: 0 0 0 17px; }
.speaker { font-size: 10px; color: var(--muted); }
.speaker.teacher { color: var(--green); }
.dialogue-preview p { font-family: Georgia, serif; font-size: 20px; line-height: 1.5; margin: 9px 0 18px; }
.dialogue-preview p > span { color: var(--muted); }
.consent-box { display: flex; gap: 12px; align-items: flex-start; font-size: 12px; line-height: 1.6; padding: 15px; background: var(--soft); border-radius: 10px; }
.consent-box input { flex-shrink: 0; margin-top: 4px; accent-color: var(--primary); }
@media (max-width: 1150px) {
  .workspace-tools { padding: 12px 25px; gap: 12px; }
  .demo-context { display: none; }
}
@media (max-width: 760px) {
  .workspace-tools { padding: 12px 17px; flex-wrap: wrap; gap: 10px; }
  .profile-picker { flex: 1 1 100%; justify-content: space-between; }
  .profile-picker .select { flex: 1; max-width: 210px; min-width: 0; }
  .theme-picker { margin-left: 0; width: 100%; justify-content: space-between; }
  .theme-picker .select { width: 210px; max-width: 210px; }
  .version-strip { align-items: flex-start; gap: 7px; margin-bottom: 20px; }
  .version-strip > span { width: 100%; }
  .version-link { font-size: 10px; }
  .dialogue-preview p { font-size: 19px; }
  .tiny-meta { flex-wrap: wrap; }
}

.login{max-width:520px;margin:8vh auto;min-height:0}.loading{padding:45px}.record-list{display:grid;gap:12px}.record-list .card{padding:20px}.detail-pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;background:var(--soft);padding:15px;border-radius:12px}.versions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.link-button{border:0;background:transparent;color:var(--green);padding:0;text-align:left;text-decoration:underline}.small-text{font-size:12px}.alert{padding:14px;border:1px solid var(--orange);border-radius:12px;margin-bottom:15px}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.state-note{font-size:12px;color:var(--muted)}.filters{flex-wrap:wrap}.field input,.field select,.field textarea{width:100%;margin-top:8px}.field label{display:block}.field input[type=checkbox]{width:auto}.card{overflow-wrap:anywhere}.profile-picker{max-width:50%;min-width:180px}.profile-picker select{max-width:100%}.status-error{color:var(--orange)}.form-error{color:var(--orange)}#detail-body{overflow-wrap:anywhere}.line-chart{width:100%;height:180px}.line-chart text{fill:var(--muted);font-size:10px}.workspace-tools{flex-wrap:wrap}.login .card{padding:30px}@media(max-width:600px){.row-head{display:block}.profile-picker{max-width:100%;width:100%}.global-search input{width:120px}.versions .btn{font-size:11px}.filters label{width:100%}.filters input,.filters select{width:100%}}
.filters{display:flex;align-items:flex-end;gap:12px;padding:16px 0 22px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted);min-width:0;flex:1 1 140px}
.filters input,.filters select{width:100%;max-width:none;font-size:12px}.filters .btn{flex:0 0 auto}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0 12px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.stat-card .muted{font-size:11px}.stat-value{font-size:30px;line-height:1.4;font-weight:650;margin-top:9px;letter-spacing:-.8px}
.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.content-grid>.card{margin:0}
#main>.card{margin-top:20px;margin-bottom:20px}.card h2{font-size:18px;line-height:1.35;margin-bottom:16px}.card h3{font-size:15px;line-height:1.45}.card p{font-size:13px;line-height:1.65;margin:10px 0}.callout-big{font-size:21px!important;font-weight:600;line-height:1.4!important}.rule-note{font-size:11px;line-height:1.7;color:var(--muted);margin:14px 0}.badge{max-width:100%;white-space:normal;line-height:1.5}.versions .btn{white-space:normal;text-align:left}.field{margin:16px 0}.field textarea{min-height:90px}.section-space{margin-top:20px!important}
@media(max-width:1150px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.content-grid{grid-template-columns:1fr}.stat-grid{gap:10px}.stat-card{padding:15px}.stat-value{font-size:26px}.topbar{gap:8px}.topbar .btn{padding:7px 10px}.breadcrumb{font-size:10px}.global-search{max-width:100px}.filters{gap:10px;padding:12px 0 18px}.filters label{flex:1 1 130px;width:auto}.filters .btn{flex:1 1 130px}.theme-picker{margin-left:0}.profile-picker{min-width:0}.theme-picker .select{min-width:0}.card p{overflow-wrap:anywhere}}
