:root{--paper:#eef0e8;--surface:#fff;--ink:#1b2a22;--muted:#5f6d62;--pine:#17543f;--pine-deep:#0e3b2c;--leaf:#57a63e;--timber:#a9762f;--line:#d9ddcd;--danger:#b3401e;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Instrument Sans", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}#root{min-height:100vh}.shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:var(--pine-deep);color:#e8eee4;flex-direction:column;align-self:start;gap:2rem;height:100vh;padding:2rem 1.5rem;display:flex;position:sticky;top:0}.rail-brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:.6rem;font-size:1.25rem;font-weight:700;display:flex}.rail-logo{background:var(--leaf);border-radius:7px 7px 2px 2px;width:14px;height:22px;display:inline-block}.rail-steps{flex-direction:column;flex:1;gap:2px;display:flex}.rail-step{opacity:.55;border-left:3px solid #ffffff24;flex-direction:column;padding:.65rem .85rem;transition:opacity .2s,border-color .2s;display:flex}.rail-step.is-current{opacity:1;border-left-color:var(--leaf);background:#ffffff0f}.rail-step.is-done{opacity:.85;border-left-color:var(--leaf)}.rail-step.is-done .rail-step-title:after{content:" ✓";color:var(--leaf)}.rail-step-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;opacity:.7;font-size:.68rem}.rail-step-title{font-size:.9rem;font-weight:600;line-height:1.3}.rail-progress{font-family:var(--font-mono);opacity:.85;flex-direction:column;gap:.5rem;font-size:.72rem;display:flex}.rail-progress-bar{background:#ffffff26;border-radius:3px;height:6px;overflow:hidden}.rail-progress-fill{background:var(--leaf);border-radius:3px;height:100%;transition:width .3s}.main{max-width:860px;padding:3.5rem clamp(1.25rem,5vw,4.5rem) 5rem}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--timber);margin:0 0 .75rem;font-size:.72rem}h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 1.25rem;font-size:clamp(1.9rem,4vw,2.8rem);font-weight:700;line-height:1.08}h1 em{color:var(--pine);font-style:normal}h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.lede{color:var(--muted);max-width:34rem;margin:0 0 1.75rem;font-size:1.08rem}.block-intro{color:var(--muted);max-width:36rem;margin:.5rem 0 0}.intro{padding-top:3rem}.intro-facts{border-left:3px solid var(--leaf);color:var(--muted);flex-direction:column;gap:.4rem;margin:0 0 2.5rem;padding:0 0 0 1rem;list-style:none;display:flex}.intro-facts b{color:var(--ink)}.identity{gap:1rem;max-width:34rem;margin-bottom:1.25rem;display:flex}.field{flex-direction:column;flex:1;gap:.35rem;display:flex}.field label{font-size:.85rem;font-weight:600}.field input{font-family:var(--font-body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:.7rem .9rem;font-size:1rem}.field input:focus{border-color:var(--pine)}.field input.is-invalid{border-color:var(--danger)}.intro .nav-error{margin:0 0 1rem;display:block}button{font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;font-size:1rem}.btn-primary{background:var(--pine);color:#fff;padding:.8rem 1.9rem;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--pine-deep)}.btn-primary:disabled{opacity:.6;cursor:wait}.btn-secondary{color:var(--pine);border:1.5px solid var(--pine);background:0 0;padding:.75rem 1.5rem;font-weight:600}.btn-secondary:hover{background:#17543f12}.btn-ghost{color:var(--muted);background:0 0;padding:.75rem 1rem}.btn-ghost:hover{color:var(--ink)}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}.block-head{border-bottom:1px solid var(--line);margin-bottom:2.5rem;padding-bottom:1.5rem}.question{margin-bottom:2.75rem;scroll-margin-top:2rem}.question h3{align-items:baseline;gap:.75rem;max-width:42rem;margin:0 0 1rem;font-size:1.05rem;font-weight:600;line-height:1.4;display:flex}.q-num{font-family:var(--font-mono);color:var(--timber);white-space:nowrap;padding-top:.1rem;font-size:.72rem;font-weight:400}.q-optional{color:var(--muted);font-weight:400}.question.is-missing{border-left:3px solid var(--danger);margin-left:-1rem;padding-left:1rem}.hint{color:var(--muted);margin:.25rem 0 0;font-size:.82rem}.options{flex-direction:column;gap:.5rem;max-width:42rem;display:flex}.option{background:var(--surface);border:1.5px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:.75rem;padding:.7rem .9rem;transition:border-color .12s,background .12s;display:flex;position:relative}.option:hover{border-color:var(--pine)}.option.is-selected{border-color:var(--pine);background:#f3f8f0}.option input{opacity:0;width:0;height:0;position:absolute}.option-dot,.option-check{border:2px solid var(--line);background:#fff;flex-shrink:0;width:18px;height:18px;margin-top:.15rem;transition:border-color .12s,background .12s}.option-dot{border-radius:50%}.option-check{border-radius:5px}.option.is-selected .option-dot{border-color:var(--pine);background:radial-gradient(circle, var(--pine) 45%, #fff 50%)}.option.is-selected .option-check{border-color:var(--pine);background:var(--pine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.5 6 10l5-6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 12px no-repeat}.option-label{font-size:.95rem}.matrix{max-width:46rem}.matrix-legend{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:.8rem;list-style:none;display:flex}.matrix-legend b{font-family:var(--font-mono);color:var(--pine);margin-right:.25rem}.matrix-rows{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.matrix-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.65rem 1rem;display:grid}.matrix-row+.matrix-row{border-top:1px solid var(--line)}.matrix-row.is-answered{background:#f7faf4}.matrix-tech{flex-direction:column;min-width:0;display:flex}.matrix-tech-name{font-size:.92rem;font-weight:600}.matrix-tech-eq{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.matrix-scale{gap:4px;display:flex}.matrix-cell{width:38px;height:34px;font-family:var(--font-mono);border:1.5px solid var(--line);cursor:pointer;color:var(--muted);background:#fff;border-radius:8px;place-items:center;font-size:.85rem;transition:all .12s;display:grid;position:relative}.matrix-cell:hover{border-color:var(--pine);color:var(--pine)}.matrix-cell.is-selected{background:var(--pine);border-color:var(--pine);color:#fff;font-weight:700}.matrix-cell input{opacity:0;width:0;height:0;position:absolute}.checklist{flex-wrap:wrap;gap:.5rem;max-width:46rem;display:flex}.chip{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:.45rem .9rem;font-size:.88rem;transition:all .12s;position:relative}.chip:hover{border-color:var(--pine)}.chip.is-selected{background:var(--pine);border-color:var(--pine);color:#fff}.chip input{opacity:0;width:0;height:0;position:absolute}.checklist .hint{width:100%}.freetext{width:100%;max-width:42rem;font-family:var(--font-body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);resize:vertical;border-radius:10px;padding:.9rem 1rem;font-size:.95rem}.freetext:focus{border-color:var(--pine)}.nav{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.nav-right{align-items:center;gap:1rem;display:flex}.nav-error{color:var(--danger);font-size:.85rem;font-weight:600}@media (width<=880px){.shell{grid-template-columns:1fr}.rail{flex-flow:wrap;align-items:center;gap:1rem;height:auto;padding:1rem 1.25rem;position:static}.rail-steps{flex-flow:wrap;gap:.25rem}.rail-step{border-bottom:3px solid #ffffff24;border-left:none;padding:.35rem .6rem}.rail-step.is-current,.rail-step.is-done{border-bottom-color:var(--leaf)}.rail-step-title{display:none}.rail-progress{width:100%}.main{padding-top:2rem}.matrix-row{grid-template-columns:1fr;gap:.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
