@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#0c253b;--teal:#007a68;--mint:#dff6ee;--orange:#c65f20;--ink:#152e42;--muted:#637382;--line:#dee5ea;--bg:#f3f6f9;--red:#a82937}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 'DM Sans',system-ui,sans-serif}a{color:var(--teal)}button,input,select,textarea{font:inherit}button,a,input,select,summary{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:var(--navy);color:white;padding:32px 20px;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;padding:0 12px 28px;font:800 27px/1.2 Manrope,sans-serif}.brand-sub{display:block;letter-spacing:2px;font-size:12px;font-weight:500;margin-top:7px;color:#a7c0d2}.weave{font-size:43px;color:#54dec3}.nav-label{font-size:12px;letter-spacing:1.5px;color:#90a9bc;margin:26px 12px 12px}nav a{display:flex;align-items:center;gap:12px;color:#c7d5df;text-decoration:none;padding:12px;border-radius:7px;margin:3px 0;font-size:14px}nav a>span{font-size:22px;width:22px;text-align:center}nav a:hover{background:#19364d}nav a.active{background:#194839;color:#a2f3d4}nav small{margin-left:auto;font-size:12px;border:1px solid #526b7d;padding:0 5px;border-radius:4px}.side-bottom{margin-top:auto;padding:28px 12px 0;font-size:14px;color:#bdccda}.side-bottom b{color:white}.side-bottom span{font-size:12px;color:#8da8bb}.shell{margin-left:252px}.topbar{min-height:79px;background:white;border-bottom:1px solid var(--line);padding:18px 36px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:14px}.crumb{margin:0 14px;color:#91a0ae}.top-actions{display:flex;align-items:center;gap:9px}.local-label{color:var(--muted);font-size:12px;margin-right:9px}main{max-width:1500px;margin:auto;padding:32px 36px 44px;min-height:calc(100vh - 140px)}h1,h2,h3,h4{font-family:Manrope,system-ui,sans-serif;line-height:1.25;margin:0 0 14px}h1{font-size:32px;font-weight:800;letter-spacing:-1px}h2{font-size:21px}h3{font-size:17px}p{margin:0 0 14px}.muted{color:var(--muted)}.small{font-size:14px}.micro{font-size:12px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:700;color:var(--teal);margin-bottom:9px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head p{color:var(--muted);max-width:690px}.btn{border:1px solid var(--line);border-radius:6px;background:white;padding:9px 15px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn:hover{border-color:var(--teal);color:var(--teal)}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.primary:hover{background:#005d50}.btn.dark{background:var(--navy);color:white;border-color:var(--navy)}.btn.ghost{background:transparent}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;border-radius:5px;padding:4px 9px;font-size:12px;background:#e9eff5;color:#476279;font-weight:600}.pill.green{background:var(--mint);color:#006553}.pill.amber{background:#fff0df;color:#944800}.pill.red{background:#fde8ed;color:var(--red)}.grid{display:grid;gap:20px}.cols2{grid-template-columns:1fr 1fr}.cols3{grid-template-columns:repeat(3,1fr)}.cols4{grid-template-columns:repeat(4,1fr)}.wide-narrow{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:23px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.card-head h2,.card-head h3{margin:0}.stat{position:relative;padding:20px 22px}.stat-label{font-size:14px;color:var(--muted);margin-bottom:12px}.stat-value{font:800 29px Manrope,sans-serif;letter-spacing:-1px}.stat-detail{font-size:12px;color:var(--muted);margin-top:8px}.stat-accent{border-top:3px solid var(--teal)}.intro-panel{background:var(--navy);color:white;display:grid;grid-template-columns:1.35fr 1fr;padding:25px 28px;border-radius:10px;gap:30px;margin-bottom:22px}.intro-panel h2{font-size:25px}.intro-panel p{color:#c4d4e0;font-size:14px}.intro-panel .eyebrow{color:#7bdfc0}.intro-panel .btn{background:#54dec3;color:#073c35;border:0}.flow{display:flex;align-items:center;gap:6px;justify-content:center}.flow-box{border:1px solid #456476;padding:16px 10px;border-radius:6px;flex:1;text-align:center;font-size:12px}.flow-box strong{display:block;font-size:22px;color:#7bdfc0}.flow-line{height:1px;flex:0 0 13px;background:#6c8a9d}.steps{display:flex;gap:0;margin:10px 0 0}.step{flex:1;position:relative;border-top:2px solid #dde6eb;padding:17px 12px 8px 0}.step-num{border:1px solid var(--line);background:white;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:12px;position:absolute;top:-14px}.step.active{border-color:var(--teal)}.step.active .step-num{background:var(--teal);color:white}.step b{display:block;font-size:14px}.step small{color:var(--muted);font-size:12px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}.field>span,.field>label{font-size:14px;font-weight:600}.field small{color:var(--muted);font-size:12px}input,select,textarea{border:1px solid #cdd9e1;border-radius:5px;padding:9px 10px;background:white;color:var(--ink);min-width:0;width:100%;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 2px #dff6ee}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--teal);flex-shrink:0}.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;margin:12px 0}.check input{margin-top:3px}.note{background:#edf5fa;border-left:3px solid #4792b7;padding:14px 17px;border-radius:0 6px 6px 0;font-size:14px;margin:18px 0}.note.amber{background:#fff4e6;border-color:#c77b33}.note.green{background:var(--mint);border-color:var(--teal)}.note strong{display:block;margin-bottom:5px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:7px;margin:16px 0}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{background:#eef3f7;color:#526a7c;font-weight:600;font-size:12px;letter-spacing:.2px}th,td{border-bottom:1px solid var(--line);padding:12px 14px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fafc}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.item-id{color:var(--teal);font-size:12px;font-weight:700;display:block}.table-input{width:90px;padding:7px}.number-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.number-line:last-child{border:0}.number-line b{font-variant-numeric:tabular-nums}.dko-track{height:10px;background:#e6eef1;border-radius:20px;position:relative;margin:20px 0 28px;overflow:visible}.dko-fill{height:100%;background:var(--teal);border-radius:20px;max-width:100%}.dko-limit{position:absolute;top:-6px;border-left:2px solid var(--orange);height:22px}.dko-limit span{position:absolute;top:27px;left:-18px;white-space:nowrap;font-size:12px;color:var(--orange)}.issues{display:flex;flex-direction:column;gap:10px}.issue{padding:14px;border:1px solid #eed8b9;background:#fff9ef;border-radius:6px;font-size:14px}.issue.error{border-color:#efc2c9;background:#fff3f5}.issue.info{border-color:#cbdfea;background:#f1f7fb}.issue b{display:block;margin-bottom:5px}.issue a{display:inline-block;margin-top:7px;font-weight:600}.editor{display:grid;grid-template-columns:155px 1fr;gap:20px}.item-nav{display:flex;flex-direction:column;gap:8px}.item-nav button{padding:14px 12px;text-align:left;background:#f6f9fb;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:14px}.item-nav button.active{background:var(--mint);color:var(--teal);border-color:#a8d8cb}.item-nav small{display:block;font-size:12px;margin-top:3px}.tabs{display:flex;gap:10px;margin:0 0 22px;flex-wrap:wrap}.tabs button{background:white;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:10px 17px;font-size:14px}.tabs button.active{color:white;background:var(--navy);border-color:var(--navy)}.formula{font:600 18px/1.8 Manrope,sans-serif;background:#f3f7f9;padding:18px;border-radius:7px;margin:15px 0}.breakdown{display:flex;height:34px;border-radius:5px;overflow:hidden;margin:18px 0}.breakdown div{min-width:0;text-align:center;font-size:12px;color:white;display:flex;align-items:center;justify-content:center}.legend{display:flex;gap:17px;flex-wrap:wrap;font-size:12px}.legend span:before{content:'';display:inline-block;width:9px;height:9px;background:var(--c);border-radius:2px;margin-right:6px}.doc-row{display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid var(--line);padding:17px 0}.doc-row:last-child{border:0}.doc-row input{margin-top:5px}.doc-row .doc-info{flex:1}.doc-row p{font-size:14px;color:var(--muted);margin:6px 0}.doc-row h3{font-size:16px;margin-bottom:5px}.doc-row a{font-size:12px}.progress{height:6px;background:#e8eef2;border-radius:5px;overflow:hidden;margin:14px 0}.progress>div{height:100%;background:var(--teal)}details{border-bottom:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-weight:600;font-size:16px}details p,details ul{font-size:14px;margin-top:13px;color:#435b6e}ul,ol{padding-left:22px}li{margin:7px 0}.lesson{display:grid;grid-template-columns:55px 1fr;gap:13px}.lesson-num{font:800 30px Manrope;color:#a6bdc8}.lesson-body p{font-size:14px;color:#506779}.lesson-body a{font-size:14px;font-weight:600}.quiz{margin-top:18px}.quiz button{display:block;text-align:left;white-space:normal;width:100%;margin:8px 0;font-weight:400}.quiz-result{font-size:14px;min-height:22px}.source-card{display:flex;gap:18px;margin:0 0 17px;padding:20px;border:1px solid var(--line);border-radius:8px;background:white}.source-code{font:800 23px Manrope;color:var(--teal);min-width:86px}.source-card p{font-size:14px;color:var(--muted)}.source-card a{font-size:14px;font-weight:600}.spacer{height:22px}footer{display:flex;justify-content:space-between;gap:18px;padding:20px 36px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}#toast{position:fixed;bottom:25px;right:25px;background:var(--navy);color:white;border-radius:8px;padding:15px 22px;box-shadow:0 8px 25px #0c253b30;opacity:0;pointer-events:none;transition:opacity .2s;max-width:440px;font-size:14px}#toast.show{opacity:1}dialog{border:1px solid var(--line);border-radius:10px;padding:28px;max-width:460px;color:var(--ink)}dialog::backdrop{background:#0c253b80}.print-only{display:none}.inline-link{border:0;background:none;padding:0;color:var(--teal);text-decoration:underline;font-size:14px}.teal{color:var(--teal)}.big-result{font:800 42px Manrope;letter-spacing:-1px}.section-space{margin-top:22px}.learn-strip{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:18px 22px;background:#e6f4ef;border:1px solid #c2e0d6;border-radius:8px;font-size:14px;margin:22px 0}.empty{padding:25px;text-align:center;color:var(--muted)}.report-summary{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.report-summary span{padding:12px 18px;background:white;border:1px solid var(--line);border-radius:6px;font-size:14px}.unit-note{color:var(--muted);font-size:12px}.lineup{display:flex;justify-content:space-between;gap:10px}.warning-text{color:var(--red)}
@media(min-width:1600px){main{padding-top:40px}.card{padding:28px}}
@media(max-width:1200px){.sidebar{width:222px;padding:25px 15px}.shell{margin-left:222px}main{padding:27px 25px}.topbar{padding:16px 25px}.cols4{grid-template-columns:1fr 1fr}.wide-narrow{grid-template-columns:1fr}.intro-panel{grid-template-columns:1fr 1fr}.local-label{display:none}.cols3{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.sidebar{position:relative;width:100%;padding:18px}.brand{padding:0 5px 15px;font-size:23px}.brand-sub{display:inline;margin-left:10px;font-size:11px}.sidebar>.nav-label,.side-bottom,nav>.nav-label{display:none}nav{display:flex;overflow:auto;gap:5px}nav a{white-space:nowrap;padding:9px;font-size:12px}nav a>span{display:none}.shell{margin:0}.topbar{padding:12px 18px;flex-wrap:wrap}.topbar>span{display:none}main{padding:22px 18px}h1{font-size:27px}.page-head{flex-direction:column;gap:8px}.cols2,.cols3,.cols4,.intro-panel{grid-template-columns:1fr}.grid{gap:14px}.card{padding:18px}.intro-panel{padding:23px}.flow{justify-content:start}.editor{grid-template-columns:1fr}.item-nav{flex-direction:row;overflow:auto}.item-nav button{min-width:100px}.steps{overflow:auto}.step{min-width:120px}footer{padding:17px;flex-direction:column}.source-card{flex-direction:column;gap:4px}.stat-value{font-size:27px}.learn-strip{align-items:flex-start;flex-direction:column}.top-actions .btn{padding:8px 11px}}
@media print{.sidebar,.topbar,footer,.btn,.tabs,.item-nav,#toast,.quiz{display:none!important}.shell{margin:0}main{padding:0}.card,.intro-panel{break-inside:avoid;box-shadow:none}.print-only{display:block}body{background:white;font-size:12px}.grid{display:block}.card{margin-bottom:15px}input,select{border:0}.table-wrap{overflow:visible}h1{font-size:24px}}

/* Hosted frame height follows content rather than the frame viewport. */
main{min-height:0}
