:root{--canvas:#f3f1ec;--card:#fff;--ink:#1d2433;--ink2:#4a5163;--muted:#6b7180;--line:#e2ddd3;--accent:#c8502f;--accent-ink:#a63e21;--teal:#2e6b66;--teal-tint:#e2efec;--input:#fdf6dc;--input-line:#e6cf7a;--input-ink:#1f4f9a;--radius:14px;--shadow:0 10px 30px rgba(20,24,36,.08)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3,.brand{font-family:Poppins,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:-.01em}
a{color:var(--teal)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
header.top{padding:18px 0 4px}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand{font-weight:700;font-size:20px;color:var(--ink);text-decoration:none}
.bars{display:flex;gap:6px;margin:6px 0 0}.bars i{display:block;width:26px;height:5px;border-radius:3px}
.bars i:nth-child(1){background:#c8502f}.bars i:nth-child(2){background:#2e6b66}.bars i:nth-child(3){background:#6b4fa0}.bars i:nth-child(4){background:#2f5f9e}.bars i:nth-child(5){background:#a87c1f}
nav.top a{color:var(--ink2);text-decoration:none;font-size:15px;margin-left:16px}
nav.top a:hover{color:var(--ink)}
.eyebrow{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin:28px 0 6px}
h1{font-size:clamp(28px,5vw,44px);line-height:1.1;margin:0 0 12px}
.lede{font-size:18px;color:var(--ink2);max-width:720px;margin:0 0 24px}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media(min-width:880px){.grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.sticky{position:sticky;top:16px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
fieldset{border:0;margin:0 0 18px;padding:0}
legend{font-weight:700;font-size:15px;margin-bottom:8px;padding:0}
.row{display:grid;grid-template-columns:1fr 132px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #f0ece4}
.row:last-child{border-bottom:0}
.row label{font-size:15px}
.row small{display:block;color:var(--muted);font-size:12.5px;line-height:1.35}
.field{position:relative}
.field input,.field select{width:100%;font:inherit;font-weight:700;color:var(--input-ink);background:var(--input);border:1px solid var(--input-line);border-radius:8px;padding:8px 10px;text-align:right}
.field select{text-align:left;font-weight:600}
.field input:focus,.field select:focus{outline:3px solid rgba(46,107,102,.35);outline-offset:1px}
.field .pre,.field .suf{position:absolute;top:50%;transform:translateY(-50%);color:var(--input-ink);font-weight:700;pointer-events:none}
.field .pre{left:10px}.field .suf{right:10px}
.field.has-pre input{padding-left:22px}.field.has-suf input{padding-right:26px}
.pick{grid-template-columns:1fr}
.tiles{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.tile{container-type:inline-size;min-width:0;border-radius:12px;padding:14px;border:1px solid var(--line);background:#fff}
.tile.key{background:var(--ink);color:#fff;border-color:var(--ink)}
.tile .lab{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.tile.key .lab{color:#b9c0ce}
.tile .val{font-family:Poppins,system-ui,sans-serif;font-weight:700;font-size:clamp(21px,5.6vw,34px);font-size:clamp(19px,15cqi,34px);line-height:1.15;margin-top:4px}
.tile .sub{font-size:13px;color:var(--muted);margin-top:4px}.tile.key .sub{color:#c9cfdb}
.neg{color:var(--accent)!important}
.lines{margin:14px 0 0;padding:0;list-style:none}
.lines li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #f0ece4;font-size:15px}
.lines li.total{font-weight:700;border-bottom:2px solid var(--ink)}
.lines li span:last-child{font-variant-numeric:tabular-nums}
.callout{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--teal-tint);color:#1e4c48;font-size:15px}
.callout.warn{background:#fbe6df;color:var(--accent-ink)}
section.block{margin:36px 0}
section.block h2{font-size:24px;margin:0 0 10px}
section.block p,section.block li{color:var(--ink2);max-width:760px}
.cta{display:grid;gap:14px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--radius);padding:22px}
@media(min-width:760px){.cta{grid-template-columns:1fr auto}}
.cta h2{color:#fff;margin:0 0 6px;font-size:22px}.cta p{color:#c9cfdb;margin:0}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;padding:13px 20px;border-radius:10px;text-align:center}
.btn:hover{background:var(--accent-ink)}
.btn.ghost{background:transparent;border:1px solid #6b7180;color:#fff;margin-top:8px}
details{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:8px 0;max-width:820px}
summary{font-weight:700;cursor:pointer}
details p{margin:8px 0 0}
.tools{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:700px){.tools{grid-template-columns:1fr 1fr}}
.tools a.card{display:block;text-decoration:none;color:var(--ink)}
.tools a.card h3{margin:0 0 6px;font-size:19px}.tools a.card p{margin:0;color:var(--ink2);font-size:15px}
footer{border-top:1px solid var(--line);margin-top:44px;padding:20px 0 40px;color:var(--muted);font-size:13.5px}
footer p{max-width:820px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:no-preference){.tile .val{transition:color .2s}}
section.block .cta p{color:#c9cfdb}
.mbar{display:none}
@media(max-width:879px){.mbar{display:flex;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--ink);color:#fff;padding:12px 16px calc(12px + env(safe-area-inset-bottom));font-size:15px;box-shadow:0 -6px 20px rgba(20,24,36,.18)}.mbar b{font-family:Poppins,system-ui,sans-serif;font-size:18px}body.has-mbar{padding-bottom:72px}}

/* link hub (docs/go) */
.hub h1{margin:4px 0 8px}.hubh{font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
.hublist{display:grid;gap:10px;grid-template-columns:1fr}@media(min-width:700px){.hublist{grid-template-columns:1fr 1fr}}
.hubbtn{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.hubbtn b{display:block;font-size:17px;line-height:1.3}.hubbtn span{display:block;color:var(--muted);font-size:13.5px;margin-top:3px}
.hubbtn:hover{border-color:var(--accent)}.hubbtn.shop{background:var(--ink);color:#fff;border-color:var(--ink)}.hubbtn.shop span{color:#c9cfdb}
.hubbtn.prem{border-color:var(--teal);background:var(--teal-tint)}
.btn.soon{background:#6b7180;cursor:default}
.card details{margin-top:14px}.card details summary{cursor:pointer;font-weight:600}

/* fee and rate source note inside a results card (etsy_fees, craft_fair) */
[hidden]{display:none!important}
.asof{margin:14px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}.asof a{color:var(--teal)}

/* month grid, results tables and the debts grid (str_nightly, debt_payoff) */
.fsnote{margin:0 0 6px;color:var(--muted);font-size:13px}
.duo{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.duo .row{grid-template-columns:1fr 104px}
.duo .row:last-child,.duo .row:nth-last-child(2){border-bottom:0}
table.mt{width:100%;border-collapse:collapse;margin:14px 0 0;font-size:15px}
table.mt th,table.mt td{padding:6px 0;border-bottom:1px solid #f0ece4;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.mt th:first-child,table.mt td:first-child{text-align:left}
table.mt th[scope=row]{font-weight:400;white-space:normal}
table.mt thead th{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-top:0}
table.mt td+td,table.mt th+th{padding-left:10px}
table.mt b{font-weight:700}
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a5a0c;background:var(--input);border:1px solid var(--input-line);border-radius:6px;padding:0 5px;margin-left:4px;vertical-align:1px}
.tag:empty{display:none}
.debts{display:grid;gap:8px}
.drow{display:grid;grid-template-columns:62px 1.25fr .85fr 1fr;gap:8px;align-items:center}
.drow.dhead{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.drow.dhead div{text-align:right}
.dname{font-size:15px}
.drow .field input{padding-left:8px;padding-right:8px}
.drow .field.has-pre input{padding-left:20px}.drow .field.has-suf input{padding-right:22px}
.drow .field .pre{left:8px}.drow .field .suf{right:8px}
@media(max-width:560px){.drow{grid-template-columns:1.4fr .9fr 1fr;gap:4px 6px}.drow .dname{grid-column:1/-1;font-size:13px;font-weight:700;color:var(--ink2);margin-top:4px}.drow.dhead div:first-child{display:none}.drow .field input{font-size:15px}.debts{gap:6px}}
@media(max-width:400px){.duo{column-gap:12px}.duo .row{grid-template-columns:1fr 92px}}
@media(max-width:420px){table.mt{font-size:14px}table.mt td+td,table.mt th+th{padding-left:7px}table.mt thead th{font-size:10.5px;letter-spacing:.04em}.tag{font-size:10px;padding:0 4px;margin-left:3px}}
/* permit leads pages (kind "leads") */
.ld-tiles{margin-top:6px}
@media(min-width:880px){.ld-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ld-list{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.ld-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.ld-proj{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 4px 14px rgba(20,24,36,.05);min-width:0}
.ld-proj[hidden]{display:none}
.ld-ptop{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.ld-cost{font-family:Poppins,system-ui,sans-serif;font-weight:700;font-size:21px;color:var(--ink)}
.ld-type{color:var(--muted);font-size:14px}
.ld-stage{margin-left:auto;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--teal-tint);color:#1e4c48;white-space:nowrap}
.ld-stage.hot{background:#fbe6df;color:var(--accent-ink)}
.ld-stage.early{background:#eef0f4;color:var(--ink2)}
.ld-stage.done{background:#eceae4;color:var(--muted)}
.ld-scope{margin:8px 0 10px;color:var(--ink2);font-size:15px;overflow-wrap:anywhere}
.ld-meta{margin:0;display:grid;gap:6px}
.ld-meta div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px}
.ld-meta dt{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.ld-meta dd{margin:0;font-size:14.5px;overflow-wrap:anywhere}
@media(max-width:420px){.ld-meta div{grid-template-columns:minmax(0,1fr);gap:0}}
.ld-gcs{list-style:none;margin:10px 0 0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.block .ld-gcs li{max-width:none}
.ld-gcs li{display:grid;grid-template-columns:minmax(0,1fr) 72px 92px;gap:10px;padding:10px 14px;border-top:1px solid #f0ece4;font-size:15px;align-items:center}
.ld-gcs li:first-child{border-top:0}
.ld-gcs .ld-ghead{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:#faf8f4}
.ld-gn,.ld-gv{text-align:right;font-variant-numeric:tabular-nums}
.ld-ghead span:nth-child(n+2){text-align:right}
.ld-gname{overflow-wrap:anywhere}
.ld-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px}
.ld-chip{font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.ld-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.ld-chip:focus-visible,.ld-area select:focus-visible{outline:3px solid rgba(46,107,102,.35);outline-offset:2px}
.ld-area select{font:inherit;font-size:14px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);max-width:100%}
.ld-count{margin:0 0 10px;color:var(--muted);font-size:14px}
.ld-empty{color:var(--muted)}
.block .ld-cta p.ld-price{margin-top:10px;color:#fff;font-weight:600}
.ld-form label{display:block;font-size:13px;font-weight:700;color:#c9cfdb;margin-bottom:6px}
.ld-frow{display:flex;gap:8px;flex-wrap:wrap}
.ld-frow input{flex:1 1 220px;min-width:0;font:inherit;padding:12px 12px;border-radius:10px;border:1px solid #6b7180;background:#fff;color:var(--ink)}
.ld-note{display:block;margin-top:8px;color:#c9cfdb;font-size:12.5px;line-height:1.4;max-width:380px}
.ld-form .btn{border:0;font:inherit;font-weight:700;cursor:pointer;padding:12px 18px}
.hubfeat{display:grid;gap:8px;padding:12px;border:2px solid var(--accent);border-radius:14px;background:var(--card)}
.hubfeat-hook{margin:0;font-weight:700;font-size:16px;line-height:1.35}
