@layer base,layout,components;
@layer base{*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f9f8;color:#182d26;font:16px/1.6 'Segoe UI',system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}h1,h2,h3,p{margin:0 0 16px}h1{font-size:clamp(2rem,3vw,2.85rem);letter-spacing:-.045em;line-height:1.14;font-weight:650}h2{font-size:1.45rem;letter-spacing:-.025em;line-height:1.3}h3{font-size:1.1rem;line-height:1.4}small,.muted{color:#61736b}small{font-size:.875rem}code,.mono{font-family:Consolas,'Courier New',monospace}code{overflow-wrap:anywhere}a:hover{color:#057a48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d97706;outline-offset:3px}input,select{max-width:100%}svg{width:22px;height:22px;flex-shrink:0}button svg{vertical-align:middle}ul,ol{padding-left:24px}li{margin-bottom:8px}.skip{position:fixed;top:-70px;background:white;padding:12px;z-index:20}.skip:focus{top:0}::selection{background:#d0f2d8}}
@layer layout{.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:white;border-right:1px solid #e0e7e2;padding:32px 22px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;font-size:1.18rem;font-weight:700;letter-spacing:-.5px}.brand-mark{display:grid;place-items:center;background:#087544;color:white;width:38px;height:40px;border-radius:9px;font:700 25px Georgia}.nav-label{font-size:.75rem;letter-spacing:1.5px;color:#6c7d74;margin:42px 12px 14px}.nav{display:grid;gap:8px}.nav a{display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:8px;color:#4c6056;font-weight:500}.nav a.active{color:#08643b;background:#e9f5ec}.side-bottom{margin-top:auto;padding:20px 12px 0;font-size:.875rem}.side-bottom p{margin:8px 0}.page{margin-left:248px}.topbar{height:83px;border-bottom:1px solid #e0e7e2;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 44px;gap:20px}.top-label{font-size:.875rem;color:#61736b}.search{display:flex;align-items:center;gap:10px;max-width:390px;width:100%;color:#687c71}.search input{border:0;background:transparent;outline-offset:6px;width:100%;padding:10px 2px;font-size:.875rem}.top-pill{font-size:.8rem;border:1px solid #d7e8dc;border-radius:30px;padding:5px 12px;white-space:nowrap;color:#336749}.main{max-width:1440px;margin:auto;padding:38px 44px 20px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:1.6px;color:#22734b;margin-bottom:13px;text-transform:uppercase}.intro{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:30px}.intro p{margin-bottom:0;max-width:650px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:24px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:35px 0 17px}.section-head h2{margin:0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.learning-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:28px;align-items:start}.footer{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:48px;padding:24px 0 8px;border-top:1px solid #dfe6e1;font-size:.8rem;color:#607368}.footer button{background:transparent;border:0;color:inherit;padding:0}.prose{max-width:850px}.prose p{margin-bottom:20px}.prose a{text-decoration:underline;text-underline-offset:3px}.prose h2{margin-top:30px}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stack{display:grid;gap:18px}}
@layer components{.card{background:white;border:1px solid #dfe7e1;border-radius:13px;padding:24px}.course-feature{position:relative;overflow:hidden;background:#103e2c;color:white;padding:30px 32px;min-height:293px;border:0}.course-feature .eyebrow{color:#b7e9bb}.course-feature h2{font-size:1.8rem;max-width:370px;position:relative;z-index:1}.course-feature p{color:#c1d6c8;font-size:.925rem;max-width:340px;position:relative;z-index:1}.course-feature .btn{position:relative;z-index:1}.course-feature .meta{margin-bottom:22px;color:#c1d6c8}.sheet-motif{position:absolute;right:-30px;bottom:-12px;transform:rotate(-8deg);opacity:.19;display:grid;grid-template-columns:repeat(4,65px);border:1px solid #c4e3ca}.sheet-motif span{height:46px;border:1px solid #c4e3ca;display:grid;place-items:center;font-family:Consolas,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#087747;color:white;border:1px solid #087747;border-radius:7px;min-height:44px;padding:10px 18px;font-size:.875rem;font-weight:600}.btn:hover{background:#065d37;color:white}.btn.light{background:#d7f5a5;color:#193923;border-color:#d7f5a5}.btn.secondary{background:white;color:#255940;border-color:#d6e2d9}.btn.secondary:hover{background:#eef7f0}.btn.quiet{background:transparent;color:#486655;border-color:transparent}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.meta{font-size:.8rem;display:flex;gap:12px;align-items:center;color:#65766b}.badge{font-size:.75rem;background:#e9f4e8;color:#346043;padding:3px 8px;border-radius:5px;white-space:nowrap}.quick-card{display:flex;flex-direction:column}.quick-card .eyebrow{color:#637969;margin-bottom:12px}.quick-card h2{font-size:1.3rem}.quick-card code{color:#0a7041;font-size:1rem;display:block;margin:10px 0 14px}.mini-table,.sheet{border-collapse:collapse;width:100%;font-size:.875rem;background:white}.mini-table td,.mini-table th{padding:5px 12px;border:1px solid #e2e8e3;text-align:left}.mini-table th{font-weight:500;color:#6d7c73;background:#f6f8f6}.quick-card .small-link{margin-top:auto;padding-top:15px}.small-link{color:#087347;font-size:.875rem;font-weight:600}.module-card{display:block;transition:transform .15s,border-color .15s}.module-card:hover{transform:translateY(-3px);border-color:#7cac87}.module-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.module-icon{width:43px;height:43px;border-radius:10px;background:#edf4ec;color:#2c6a44;display:grid;place-items:center;font-family:Consolas,monospace;font-size:1.1rem}.module-card p{font-size:.875rem;color:#63756a;min-height:44px}.module-card h3{margin-bottom:10px}.module-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0ed;padding-top:14px;font-size:.8rem;color:#6a7a70}.progress{height:5px;border-radius:10px;background:#e7ede7;overflow:hidden;margin:12px 0}.progress>span{display:block;height:100%;background:#14824c}.progress-line{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.practice-strip{display:flex;align-items:center;gap:24px;margin-top:25px;padding:22px 27px;background:#eef4e8;border:1px solid #dee8d8;border-radius:12px}.practice-strip h3,.practice-strip p{margin:0}.practice-strip .btn{margin-left:auto;white-space:nowrap}.practice-strip .module-icon{background:white}.lesson-list{list-style:none;margin:0;padding:0}.lesson-list li{margin:0;border-bottom:1px solid #e5ebe6}.lesson-list a{padding:16px 0;display:flex;align-items:center;gap:16px}.lesson-num{font-family:Consolas,monospace;color:#6a8272}.lesson-list .meta{margin-left:auto}.sheet-wrap{overflow:auto;margin:18px 0;border:1px solid #cdd9d0;border-radius:7px}.sheet{min-width:340px;text-align:left}.sheet th{background:#eef3ef;color:#526a5b;font-weight:500;text-align:center;padding:7px;min-width:40px}.sheet td{border:1px solid #dbe4dc;padding:0;min-width:85px}.sheet input{border:0;border-radius:0;width:100%;min-width:80px;padding:8px 10px;color:#273e2f;background:transparent;font-family:Consolas,monospace;font-size:.875rem}.sheet input:focus{outline:2px solid #14864e;outline-offset:-2px;background:#f4fff6}.sheet td.value{padding:9px 14px}.formula-bar{display:flex;border:1px solid #91b69c;border-radius:7px;overflow:hidden;background:white;margin-top:8px}.formula-bar span{padding:11px;background:#edf6ee;border-right:1px solid #cbdcce;font-family:Georgia;font-style:italic;color:#547461}.formula-bar input{border:0;width:100%;padding:10px 12px;font-family:Consolas,monospace;font-size:1rem}.formula-bar:focus-within{outline:2px solid #16824e;outline-offset:2px}.field-label{display:block;font-size:.875rem;font-weight:600;margin-top:14px}.result{background:#eff5ef;border-left:3px solid #6a9d72;border-radius:4px;padding:14px 17px;margin-top:18px;overflow-wrap:anywhere}.result.error{background:#fff2e8;border-color:#be6b28;color:#814417}.result.success{background:#e9f7ed;border-color:#087747;color:#165c32}.result p:last-child{margin-bottom:0}.exercise-tabs{display:flex;gap:8px;margin-bottom:20px}.exercise-tabs a{border:1px solid #dce5de;padding:8px 14px;border-radius:6px;font-size:.875rem}.exercise-tabs a.active{background:#e3f2e6;color:#175e35;border-color:#80ad8a}.callout{background:#edf5ed;padding:18px 20px;border-radius:8px;margin:20px 0;border-left:3px solid #8eb88b}.hint{padding:13px 0;border-bottom:1px solid #e1e7e2}summary{cursor:pointer;font-size:.925rem;font-weight:600;padding:4px 0}details p{font-size:.925rem;margin:12px 0 0}.chips{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.chip{padding:7px 14px;border:1px solid #d7e3d9;border-radius:30px;background:white;font-size:.875rem}.chip.active{background:#123d2b;color:white;border-color:#123d2b}.function-name{font:600 1.35rem Consolas,monospace;color:#116740}.search-field{background:white;border:1px solid #cfded3;border-radius:8px;width:100%;padding:14px 16px}.empty{padding:40px;text-align:center;background:white;border:1px dashed #b6cbbc;border-radius:12px}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table td,.data-table th{border-bottom:1px solid #dce5de;padding:12px;text-align:left}.data-table th{background:#edf5ee}.check-option{display:block;padding:12px;border:1px solid #dce6df;border-radius:7px;margin:10px 0;cursor:pointer}.check-option:has(input:checked){background:#edf7ee;border-color:#6fa17b}.check-option input{margin-right:9px}.dialog{border:1px solid #dce6dd;border-radius:14px;padding:28px;max-width:540px;width:calc(100% - 30px);color:#182d26}.dialog::backdrop{background:#0b291c88}.dialog label{display:block;margin:16px 0}.notice{font-size:.875rem;background:#fff4d9;padding:12px 18px;border-radius:7px;margin-bottom:24px;color:#725615}.status-note{font-size:.8rem;color:#63776a;margin:14px 0}.crumb{font-size:.875rem;color:#61746a;margin-bottom:24px}.hidden,[hidden]{display:none!important}.review-badge{color:#617568;font-size:.75rem}.metric{font-size:2rem;letter-spacing:-1px;line-height:1.2}.project-code{font:600 1.1rem Consolas,monospace;color:#376c4b;margin-bottom:18px}}
@media(min-width:1600px){.main{padding-top:48px}.card-grid{gap:24px}.module-card{padding:28px}}
@media(max-width:1150px){.sidebar{width:210px;padding:28px 15px}.page{margin-left:210px}.main{padding:30px 26px}.topbar{padding:0 26px}.hero-grid{grid-template-columns:1.4fr 1fr}.course-feature{padding:26px}.sheet-motif{right:-100px}.learning-layout{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{position:static;width:auto;padding:16px 20px;border-right:0;border-bottom:1px solid #dce5df}.brand{font-size:1.1rem}.brand-mark{height:33px;width:32px}.nav-label,.side-bottom{display:none}.nav{display:flex;overflow-x:auto;gap:6px;margin-top:17px}.nav a{white-space:nowrap;font-size:.875rem;padding:8px 10px;gap:7px}.nav svg{width:18px;height:18px}.page{margin:0}.topbar{height:61px;padding:0 20px}.top-pill,.top-label{display:none}.search{max-width:none}.main{padding:27px 20px 18px}.intro{display:block}.intro>.btn{margin-top:16px}.hero-grid,.split{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr}.course-feature{min-height:280px}.sheet-motif{right:-20px}.quick-card{display:none}.section-head{align-items:start}.section-head h2{font-size:1.3rem}.practice-strip{flex-wrap:wrap;gap:14px;padding:20px}.practice-strip .btn{margin:0}.lesson-list a{flex-wrap:wrap}.lesson-list .meta{margin-left:34px}.footer{margin-top:32px}.learning-layout{gap:18px}.card{padding:20px}.topbar .search input{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.sheet input.referenced{background:#e5f5e7;box-shadow:inset 0 0 0 1px #62a175}.sheet input[data-type="string"]{text-align:left}.sheet input[data-type="number"]{text-align:right}
.learning-layout>*,.card,.stack,.sheet-wrap{min-width:0}.prose dd{margin:0 0 14px 0}.prose dt{font-weight:600;margin-top:12px}
.sheet{table-layout:fixed}.sheet th:first-child{width:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
