:root{--ink: #1c1915;--muted: #6d655c;--line: #e3dbd0;--paper: #f6f1e8;--card: #fffdf9;--teal: #0e6b66;--teal-deep: #0a4542;--warn: #8a4b12;--bad: #8d2430;--good: #1d6b45;color:var(--ink);background:var(--paper);font-family:Roboto,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(14,107,102,.08),transparent 32rem),var(--paper)}button,input{font:inherit;color:inherit}h1,h2,h3,.score-num,.grade{font-family:Roboto,sans-serif;font-weight:500;letter-spacing:-.02em}h1{font-size:2.6rem;line-height:1;margin:.2rem 0 .6rem}h2{font-size:1.7rem;margin:0 0 .4rem}h3{font-size:1.25rem;margin:0 0 .35rem}p{line-height:1.5}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.shell{max-width:1180px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.brand{display:flex;gap:.75rem;align-items:center}.brand strong,.brand span{display:block}.brand span{color:var(--muted);font-size:.85rem}.mark{width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:.7rem;background:var(--teal-deep);color:#f6f1e8;font-family:Roboto,sans-serif;font-weight:700;font-size:1.4rem}nav{display:flex;gap:.4rem}nav a{text-decoration:none;color:var(--ink);padding:.45rem .75rem;border-radius:999px}nav a.active{background:var(--ink);color:var(--paper)}.page{margin-top:1.4rem}.page-intro{max-width:42rem;margin-bottom:1rem}.narrow{max-width:40rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--teal);font-weight:600}.lede{color:var(--muted);max-width:42rem}.score-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:1rem;align-items:start}.panel{background:var(--card);border:1px solid var(--line);border-radius:1.1rem;padding:1.1rem 1.15rem 1.25rem}.result-panel{position:sticky;top:1rem}fieldset{border:0;margin:1rem 0 0;padding:0}legend{font-weight:600;margin-bottom:.55rem}.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:1rem}.preset{text-align:left;background:transparent;border:1px solid var(--line);border-radius:.8rem;padding:.65rem .7rem;cursor:pointer}.preset strong,.preset span{display:block}.preset span{color:var(--muted);font-size:.78rem;margin-top:.2rem}.preset.active{border-color:var(--teal);background:#0e6b6614}.mode{display:flex;gap:.5rem;margin-bottom:.7rem}.mode label{flex:1;border:1px solid var(--line);border-radius:.7rem;padding:.55rem .7rem;display:flex;gap:.45rem;align-items:center}.mode label.on{border-color:var(--teal);background:#0e6b6614}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.field{display:flex;flex-direction:column;gap:.28rem;font-size:.82rem;color:var(--muted)}.field input{border:1px solid var(--line);background:#fff;border-radius:.55rem;padding:.5rem .6rem;color:var(--ink)}.actions{margin-top:1rem}.primary,.link-btn{background:var(--teal-deep);color:#f6f1e8;border:0;border-radius:999px;padding:.7rem 1rem;text-decoration:none;display:inline-flex;cursor:pointer}.primary:disabled{opacity:.6;cursor:wait}.text-link{display:inline-block;margin-top:.8rem;color:var(--teal-deep)}.api-pill,.banner{border-radius:.7rem;padding:.55rem .7rem;font-size:.88rem}.api-pill.up{background:#e7f4ee;color:var(--good)}.api-pill.down,.banner.error{background:#fdecee;color:var(--bad)}.banner.warn{background:#fff4e6;color:var(--warn);margin:.8rem 0}.stamp{margin-bottom:.8rem}.score-num{font-size:5rem;line-height:.85;margin:.2rem 0}.stamp-row{display:flex;align-items:flex-end;justify-content:space-between}.grade{margin:0;font-size:1.6rem;padding:.15rem .55rem;border-radius:.5rem}.grade-A .grade{background:#e7f4ee;color:var(--good)}.grade-B .grade{background:#e7eef8;color:#1d4e89}.grade-C .grade{background:#fff4e6;color:var(--warn)}.grade-D .grade{background:#fdecee;color:var(--bad)}.track{position:relative;height:.45rem;margin-top:.8rem;border-radius:999px;background:linear-gradient(90deg,#8d2430,#c47b16,#1d6b45)}.track span{position:absolute;top:-.28rem;width:.95rem;height:.95rem;border-radius:50%;background:var(--ink);border:2px solid white;transform:translate(-50%)}.track-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem}.facts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.9rem 0}.facts div{border-top:1px solid var(--line);padding-top:.45rem}.facts dt{color:var(--muted);font-size:.78rem}.facts dd{margin:.15rem 0 0;font-size:1.05rem}.facts.compact{margin-top:.8rem}.disclaimer,.muted{color:var(--muted);font-size:.9rem}.steps{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.75rem}.steps li{background:var(--card);border:1px solid var(--line);border-radius:1.1rem;padding:1rem 1.1rem 1.1rem;min-width:0}.table-wrap{overflow-x:auto;margin-top:.8rem;max-width:100%}.math-table{width:100%;border-collapse:collapse;font-size:.92rem}.math-table caption{caption-side:bottom;text-align:left;color:var(--muted);padding-top:.45rem;font-size:.82rem}.math-table th,.math-table td{text-align:right;padding:.4rem .55rem;border-bottom:1px solid var(--line);white-space:normal}.math-table th:first-child,.math-table td:first-child{text-align:left;white-space:normal}.math-table tfoot td{font-weight:700}.math-table .down{color:var(--bad)}.math-table .up{color:var(--good)}.term-source{display:block;color:var(--muted);font-size:.75rem;font-weight:400}.pay-maps{display:grid;gap:.8rem;margin-top:.8rem}.pay-map{background:var(--paper);border-radius:.8rem;padding:.75rem .8rem .4rem}.pay-map h3{font-size:1.05rem;margin-bottom:.25rem}.pay-map p{margin:.25rem 0 .45rem}.pay-map svg{width:100%;height:auto;display:block}.math-table tr.loan-row td{font-weight:700;color:var(--bad)}.curves{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:.8rem}.curve{margin:0;background:var(--paper);border-radius:.8rem;padding:.7rem .75rem .55rem}.curve h3{font-size:1.05rem;margin-bottom:.2rem}.curve svg{width:100%;height:auto;display:block}.curve figcaption{color:var(--muted);font-size:.8rem;margin-top:.2rem}.grid-line{stroke:var(--line);stroke-width:1}.axis-label{fill:var(--muted);font-size:11px;font-family:Roboto,sans-serif}.marker-line{stroke:#8d2430;stroke-width:1;stroke-dasharray:3 3}.marker-label{fill:#8d2430;font-size:12px;font-weight:700;font-family:Roboto,sans-serif}.formula{background:#1c1915;color:#f6f1e8;border-radius:.8rem;padding:.8rem .9rem;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem;line-height:1.55}.reasons,.grades{padding-left:1.1rem}.reasons li,.grades li{margin:.25rem 0}.grades .current{font-weight:600}.impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.impacts{list-style:none;padding:0;margin:0}.impacts li{display:flex;justify-content:space-between;gap:.8rem;padding:.55rem 0;border-top:1px solid var(--line)}.impacts strong,.impacts span{display:block}.impacts span{color:var(--muted);font-size:.78rem}.impacts em{font-style:normal;font-variant-numeric:tabular-nums}.impacts .down{color:var(--bad)}.impacts .up{color:var(--good)}.points{display:inline-flex;align-items:center;gap:.35rem;flex:none}.field-hint{margin:-.2rem 0 .55rem}.info{position:relative;display:inline-flex}.info-btn{width:1.15rem;height:1.15rem;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--teal-deep);font-size:.72rem;font-weight:700;line-height:1;cursor:pointer;padding:0}.info-pop{position:absolute;right:0;top:1.45rem;z-index:2;width:min(18rem,70vw);background:var(--ink);color:#f6f1e8;border-radius:.7rem;padding:.65rem .75rem;font-size:.82rem;line-height:1.45;font-weight:400}.sections{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1rem}.sections article{border-top:1px solid var(--line);padding-top:.6rem}.computation{display:grid;gap:.8rem;min-width:0}.raw summary{cursor:pointer;font-weight:600}.raw-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.8rem}.raw pre{background:#f6f1e8;border-radius:.7rem;padding:.7rem;overflow:auto;max-height:28rem;font-size:.75rem}.docs-layout{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:1rem;margin-top:1.4rem;align-items:start}.docs-nav{position:sticky;top:1rem}.docs-nav .eyebrow{margin-top:.9rem}.docs-nav .eyebrow:first-child{margin-top:0}.docs-nav ul{list-style:none;margin:.35rem 0 0;padding:0}.docs-nav li{margin:.15rem 0}.docs-nav a{display:block;text-decoration:none;color:var(--ink);border-radius:.55rem;padding:.35rem .5rem}.docs-nav a.active{background:var(--ink);color:var(--paper)}.doc-source{color:var(--muted);font-size:.85rem;margin-top:0}.docs-body{min-width:0}.docs-body h1{font-size:2.1rem}.docs-body h2{font-size:1.35rem;margin-top:1.6rem}.docs-body h3{font-size:1.1rem;margin-top:1.2rem}.docs-body p,.docs-body li{line-height:1.55}.docs-body a{color:var(--teal-deep)}.docs-body table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;margin:.8rem 0 1rem}.docs-body th,.docs-body td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.4rem .55rem;white-space:normal}.docs-body th{font-weight:500}.docs-body pre{background:#1c1915;color:#f6f1e8;border-radius:.8rem;padding:.8rem .9rem;overflow:auto;font-size:.82rem;line-height:1.5}.docs-body code{font-size:.86em}.docs-body p code,.docs-body li code,.docs-body td code{background:var(--paper);border-radius:.3rem;padding:.05rem .28rem}.docs-body .katex-display{overflow-x:auto;overflow-y:hidden}@media(max-width:900px){.score-layout,.presets,.grid,.impact-grid,.sections,.raw-grid,.facts,.curves,.docs-layout{grid-template-columns:1fr}.docs-nav,.result-panel{position:static}.topbar{align-items:flex-start;flex-direction:column}h1{font-size:2.1rem}.score-num{font-size:4rem}}
