/* ==========================================================================
   Ramen Ledger — shared design system
   One stylesheet for every page. Do not restyle per page; add a component
   here instead so all 10 tools stay visually identical.
   ========================================================================== */

:root{
  /* palette */
  --paper:#FAF8F3;
  --card:#FFFFFF;
  --ink:#21262B;
  --ink-soft:#59616A;
  --navy:#24425B;
  --navy-deep:#1A2E40;
  --highlighter:#F5D949;
  --highlighter-soft:#FCEDA0;
  --coral:#E15D44;
  --coral-ink:#B8412B;      /* coral darkened for text on light backgrounds (AA contrast) */
  --mint:#3F8C6B;
  --mint-ink:#2F6F54;
  --rule:#D8D2C2;

  /* type */
  --font-head:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-num:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* shape */
  --radius:6px;
  --tilt:-2.4deg;
  --shadow-note:0 1px 1px rgba(33,38,43,.08),0 12px 24px -10px rgba(33,38,43,.38);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.6;
  overflow-x:hidden;
}
img,svg{max-width:100%;}
a{color:var(--navy);text-underline-offset:2px;}
a:hover{color:var(--navy-deep);}
:focus-visible{outline:3px solid var(--highlighter);outline-offset:2px;}

.wrap{max-width:820px;margin:0 auto;padding:0 16px;}
@media (min-width:640px){.wrap{padding:0 24px;}}

.skip{position:absolute;left:-9999px;top:8px;background:var(--navy-deep);color:#fff;padding:8px 14px;border-radius:var(--radius);z-index:10;}
.skip:focus{left:8px;}

/* highlighter swipe for key words */
.hl{
  background:linear-gradient(100deg,transparent 0 2%,var(--highlighter-soft) 2% 97%,transparent 97%) 0 62% / 100% 58% no-repeat;
  padding:0 .08em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
}

/* ---------- header ---------- */
header.site{background:var(--paper);border-bottom:1px solid var(--rule);}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;padding-bottom:10px;}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy-deep);}
.brand:hover{color:var(--navy-deep);}
.brand-mark{
  width:32px;height:32px;flex-shrink:0;border-radius:5px;background:var(--navy-deep);color:var(--highlighter);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-num);font-weight:600;font-size:.8rem;letter-spacing:.02em;
  transform:rotate(-4deg);
}
.brand-name{font-family:var(--font-head);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;}
.head-all{font-family:var(--font-num);font-size:.75rem;color:var(--ink-soft);text-decoration:none;white-space:nowrap;border-bottom:1px dotted var(--rule);}
.head-all:hover{color:var(--navy);border-bottom-color:var(--navy);}

nav.toolbelt{border-top:1px dashed var(--rule);}
nav.toolbelt ul{
  list-style:none;margin:0;padding:8px 0 10px;display:flex;gap:6px;
  overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;
}
nav.toolbelt li{flex-shrink:0;}
nav.toolbelt a{
  display:inline-block;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--card);
  font-family:var(--font-num);font-size:.72rem;color:var(--ink);text-decoration:none;white-space:nowrap;
}
nav.toolbelt a:hover{background:var(--highlighter-soft);border-color:var(--highlighter);}
@media (min-width:760px){nav.toolbelt ul{flex-wrap:wrap;overflow:visible;}}

/* ---------- hero ---------- */
.hero{padding:40px 0 8px;}
.eyebrow{font-family:var(--font-num);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:0 0 12px;}
h1{font-family:var(--font-head);font-weight:700;font-size:clamp(1.85rem,5vw,2.5rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 14px;color:var(--navy-deep);}
.sub{color:var(--ink-soft);font-size:1.05rem;max-width:60ch;margin:0;}
h2,h3{font-family:var(--font-head);color:var(--navy-deep);letter-spacing:-.01em;}

/* ---------- calculator card ---------- */
.calc{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  padding:24px 20px;margin:28px 0;position:relative;
  box-shadow:0 1px 0 var(--rule);
}
@media (min-width:640px){.calc{padding:28px 30px 30px 44px;}}
/* notebook margin line */
@media (min-width:640px){.calc::before{content:"";position:absolute;top:0;bottom:0;left:26px;border-left:1px solid var(--rule);}}

.calc-cols{display:grid;grid-template-columns:1fr;gap:8px 28px;}
@media (min-width:680px){.calc-cols{grid-template-columns:1fr 1fr;}}
fieldset{border:0;margin:0;padding:0;min-width:0;}
legend,.group-title{
  font-family:var(--font-head);font-weight:600;font-size:1.02rem;color:var(--navy-deep);
  padding:0 0 8px;margin-bottom:14px;width:100%;border-bottom:1px solid var(--rule);
}
legend .tag,.group-title .tag{font-family:var(--font-num);font-weight:500;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-left:6px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:.86rem;font-weight:600;color:var(--navy-deep);margin-bottom:5px;}
.field .opt{font-weight:400;color:var(--ink-soft);}
.hint{font-size:.78rem;color:var(--ink-soft);margin:5px 0 0;line-height:1.45;}

input[type=text],input[type=number],input[type=date],select{
  width:100%;min-height:44px;padding:9px 12px;border:1px solid #C9C2B0;border-radius:var(--radius);
  background:#fff;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  appearance:none;-webkit-appearance:none;
}
select{
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2324425B' stroke-width='1.8'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
input:focus,select:focus{outline:3px solid var(--highlighter);outline-offset:0;border-color:var(--navy);}
input.num{font-family:var(--font-num);font-weight:500;}

/* $ prefix / unit suffix adornments */
.affix{position:relative;display:flex;align-items:center;}
.affix input{flex:1;}
.affix .pre,.affix .post{position:absolute;font-family:var(--font-num);font-size:.9rem;color:var(--ink-soft);pointer-events:none;}
.affix .pre{left:12px;}
.affix .post{right:12px;}
.affix.has-pre input{padding-left:28px;}
.affix.has-post input{padding-right:52px;}

.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.row2 .field{min-width:0;}

.field.invalid input,.field.invalid select{border-color:var(--coral);box-shadow:0 0 0 1px var(--coral);}
.form-error{display:none;margin:4px 0 0;color:var(--coral-ink);font-size:.86rem;font-weight:500;}
.form-error.show{display:block;}

.calc-btn{
  display:block;width:100%;margin-top:10px;min-height:50px;
  background:var(--navy);color:#fff;border:0;border-radius:var(--radius);
  font-family:var(--font-head);font-weight:600;font-size:1.05rem;letter-spacing:.005em;cursor:pointer;
  box-shadow:0 3px 0 var(--navy-deep);transition:transform .08s,box-shadow .08s,background .15s;
}
.calc-btn:hover{background:var(--navy-deep);}
.calc-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--navy-deep);}

/* segmented choice (radio buttons styled as tabs) */
.seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px;margin:0;padding:0;border:0;}
.seg input{position:absolute;opacity:0;pointer-events:none;}
.seg label{
  display:flex;flex-direction:column;justify-content:center;min-height:52px;padding:8px 10px;margin:0;
  border:1px solid #C9C2B0;border-radius:var(--radius);background:#fff;cursor:pointer;
  font-weight:600;font-size:.9rem;color:var(--navy-deep);line-height:1.3;
}
.seg label small{font-weight:400;font-size:.74rem;color:var(--ink-soft);margin-top:2px;}
.seg input:checked + label{border-color:var(--navy);background:var(--highlighter-soft);box-shadow:inset 0 0 0 1px var(--navy);}
.seg input:focus-visible + label{outline:3px solid var(--highlighter);outline-offset:2px;}

/* repeating per-person rows */
.people{list-style:none;margin:0 0 8px;padding:0;counter-reset:person;}
.people li{display:grid;grid-template-columns:28px 1fr;gap:8px 10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--rule);}
.people li::before{counter-increment:person;content:counter(person);width:26px;height:26px;border-radius:50%;background:var(--navy-deep);color:var(--highlighter);display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:.75rem;font-weight:600;}
.people .p-fields{display:grid;grid-template-columns:1fr;gap:8px;min-width:0;}
@media (min-width:520px){.people .p-fields.two{grid-template-columns:1fr 150px;}}
.people .p-fields input[type=text]{min-height:40px;}
.people .check{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--ink);min-height:40px;cursor:pointer;}
.people .check input{width:20px;height:20px;accent-color:var(--navy);}

/* repeatable item rows (e.g. one row per textbook) */
.items{list-style:none;margin:0 0 10px;padding:0;}
.items li{position:relative;border:1px solid var(--rule);border-radius:var(--radius);padding:14px 14px 4px;margin-bottom:10px;background:#fff;}
.items .item-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px;}
.items .item-grid .field.wide{grid-column:1 / -1;}
.items .field{margin-bottom:10px;}
.items .field label{font-size:.78rem;}
@media (max-width:480px){.items .item-grid{grid-template-columns:1fr 1fr;}.items .item-grid .field.resale{grid-column:1 / -1;}}
.items .remove{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:1px solid var(--rule);background:#fff;color:var(--ink-soft);cursor:pointer;font-size:1rem;line-height:1;}
.items .remove:hover{border-color:var(--coral);color:var(--coral-ink);}
.items .item-grid .field.wide input{padding-right:40px;}
.add-btn{min-height:40px;padding:6px 14px;border:1px dashed var(--navy);background:transparent;color:var(--navy);border-radius:var(--radius);font-family:var(--font-num);font-size:.8rem;cursor:pointer;}
.add-btn:hover{background:var(--highlighter-soft);}

.copy-btn{
  display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 14px;margin-top:12px;
  border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:var(--radius);
  font-family:var(--font-body);font-weight:600;font-size:.86rem;cursor:pointer;
}
.copy-btn:hover{background:var(--highlighter-soft);}
.copy-btn.done{border-color:var(--mint);color:var(--mint-ink);}

/* ---------- result area ---------- */
.result{margin:8px 0 28px;scroll-margin-top:16px;}
.result[hidden]{display:none;}
.result:focus{outline:none;}

/* Signature element: the sticky note */
.note-stage{display:flex;justify-content:center;padding:18px 8px 26px;}
.note{
  position:relative;width:100%;max-width:440px;
  background:var(--highlighter);color:var(--ink);
  padding:26px 24px 20px;border-radius:2px;
  box-shadow:var(--shadow-note);
  transform:rotate(var(--tilt));
}
.note::before{ /* tape */
  content:"";position:absolute;top:-11px;left:50%;width:92px;height:24px;margin-left:-46px;
  background:rgba(255,255,255,.55);border-left:1px dashed rgba(33,38,43,.12);border-right:1px dashed rgba(33,38,43,.12);
  transform:rotate(3deg);
}
.note::after{ /* curled corner shadow */
  content:"";position:absolute;right:0;bottom:0;width:26px;height:26px;
  background:linear-gradient(135deg,var(--highlighter) 50%,rgba(33,38,43,.12) 50%,var(--highlighter-soft) 100%);
}
/* status is shown by the label colour, never by changing the note's yellow */
.note.warn .note-label{color:var(--coral-ink);font-weight:600;}
.note.good .note-label{color:var(--mint-ink);font-weight:600;}
.note-label{font-family:var(--font-num);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;color:rgba(33,38,43,.75);}
.note-figure{font-family:var(--font-num);font-weight:600;font-size:clamp(2rem,8vw,2.6rem);line-height:1.1;margin:0;letter-spacing:-.02em;color:var(--ink);}
.note-caption{font-size:.95rem;margin:8px 0 0;line-height:1.45;}
.note-caption strong{font-weight:600;}
.note-list{list-style:none;margin:6px 0 0;padding:0;font-family:var(--font-num);font-size:1.02rem;}
.note-list li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed rgba(33,38,43,.25);}
.note-list li:last-child{border-bottom:0;}
.note-list li span:first-child{font-family:var(--font-body);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.note-list li span:last-child{font-weight:600;white-space:nowrap;}

.note.pop{animation:notePop .55s cubic-bezier(.18,1.35,.4,1) both;}
@keyframes notePop{
  0%{opacity:0;transform:translateY(18px) scale(.82) rotate(-9deg);}
  100%{opacity:1;transform:translateY(0) scale(1) rotate(var(--tilt));}
}

/* result detail panels */
.panel{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:20px;margin:0 0 16px;}
.panel h3{font-size:1.02rem;margin:0 0 12px;}

.compare{width:100%;border-collapse:collapse;font-size:.92rem;}
.compare th,.compare td{padding:9px 6px;border-bottom:1px solid var(--rule);text-align:right;vertical-align:top;}
.compare th:first-child,.compare td:first-child{text-align:left;padding-left:0;}
.compare th:last-child,.compare td:last-child{padding-right:0;}
.compare thead th{font-family:var(--font-head);font-weight:600;color:var(--navy-deep);font-size:.9rem;border-bottom:2px solid var(--navy-deep);}
.compare td.n,.compare th.n{font-family:var(--font-num);font-weight:500;white-space:nowrap;}
.compare tr.total td{font-weight:600;border-bottom:0;padding-top:12px;}
.compare tr.total td.n{font-weight:600;font-size:1rem;}
.compare tr.sub td{color:var(--ink-soft);font-size:.84rem;border-bottom:0;padding-top:2px;}
.compare .muted{color:var(--ink-soft);}
.compare .win{background:var(--highlighter-soft);}
.badge{display:inline-block;font-family:var(--font-num);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:3px;background:var(--mint);color:#fff;vertical-align:2px;margin-left:4px;}
@media (max-width:480px){.compare .badge{display:block;width:max-content;margin:4px 0 0 auto;}}
@media (max-width:420px){.compare{font-size:.84rem;}.compare th,.compare td{padding:8px 3px;}}

/* simple horizontal bars */
.bars{display:grid;gap:10px;margin:4px 0 0;}
.bar-row{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:10px;font-size:.84rem;}
.bar-track{background:var(--paper);border:1px solid var(--rule);border-radius:3px;height:26px;position:relative;overflow:hidden;}
.bar-fill{height:100%;background:var(--navy);border-radius:2px 0 0 2px;width:0;transition:width .6s cubic-bezier(.2,.8,.2,1);}
.bar-fill.win{background:var(--mint);}
.bar-val{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--font-num);font-size:.78rem;font-weight:600;color:var(--ink);background:rgba(255,255,255,.85);padding:0 4px;border-radius:2px;}

/* percentage meter with guideline markers */
.meter{position:relative;margin:34px 0 30px;}
.meter-track{height:18px;border-radius:9px;overflow:hidden;display:flex;border:1px solid var(--rule);}
.meter-track span{display:block;height:100%;}
.meter-track .z-ok{background:#CFE7D9;}
.meter-track .z-mid{background:var(--highlighter-soft);}
.meter-track .z-hi{background:#F9C9BD;}
.meter-pin{position:absolute;top:-30px;left:0;width:2px;height:48px;margin-left:-1px;transition:left .6s cubic-bezier(.2,.8,.2,1);}
.meter-pin::after{content:"";position:absolute;left:0;top:22px;width:2px;height:26px;background:var(--navy-deep);}
.meter-pin b{position:absolute;top:0;left:50%;transform:translateX(-50%);font-family:var(--font-num);font-size:.78rem;font-weight:600;background:var(--navy-deep);color:#fff;padding:2px 7px;border-radius:3px;white-space:nowrap;}
.meter-pin.edge-l b{left:-1px;transform:none;}
.meter-pin.edge-r b{left:auto;right:-1px;transform:none;}
.meter-pin.alt{top:0;}
.meter-pin.alt::after{top:0;height:26px;}
.meter-pin.alt b{top:26px;background:var(--card);color:var(--navy-deep);border:1px solid var(--navy-deep);}
.meter-scale{display:flex;justify-content:space-between;font-family:var(--font-num);font-size:.68rem;color:var(--ink-soft);margin-top:6px;}
.meter.has-alt .meter-scale{margin-top:40px;}
.meter-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.78rem;color:var(--ink-soft);margin-top:4px;}
.meter-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px;border:1px solid var(--rule);}

/* key-value stat list */
.stats{margin:0;display:grid;grid-template-columns:1fr;gap:0;}
.stats div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:.92rem;}
.stats div:last-child{border-bottom:0;}
.stats dt{margin:0;color:var(--ink);}
.stats dt small{display:block;color:var(--ink-soft);font-size:.78rem;}
.stats dd{margin:0;font-family:var(--font-num);font-weight:600;white-space:nowrap;}

/* editable cost checklist */
.checklist{list-style:none;margin:0;padding:0;}
.checklist li{display:grid;grid-template-columns:24px 1fr 112px;gap:4px 10px;align-items:start;padding:12px 0;border-bottom:1px dashed var(--rule);}
.checklist input[type=checkbox]{width:20px;height:20px;margin:3px 0 0;accent-color:var(--navy);cursor:pointer;}
.checklist label{font-weight:600;font-size:.92rem;color:var(--navy-deep);cursor:pointer;}
.checklist .why{grid-column:2 / 4;font-size:.8rem;color:var(--ink-soft);margin:0;line-height:1.45;}
.checklist .affix input{min-height:38px;padding-top:6px;padding-bottom:6px;text-align:right;}
.checklist li.off label,.checklist li.off .affix input{opacity:.5;}
.checklist-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0 0;font-family:var(--font-head);font-weight:600;color:var(--navy-deep);}
.checklist-total b{font-family:var(--font-num);font-size:1.25rem;background:var(--highlighter-soft);padding:0 6px;border-radius:3px;}

/* compact reference bar chart (one row per band) */
.bandchart{list-style:none;margin:0;padding:0;font-size:.8rem;}
.bandchart li{display:grid;grid-template-columns:128px 1fr 50px;align-items:center;gap:8px;padding:3px 0;}
.bandchart .lbl{font-family:var(--font-num);color:var(--ink-soft);white-space:nowrap;}
.bandchart .trk{height:12px;background:var(--paper);border-radius:2px;overflow:hidden;}
.bandchart .fill{display:block;height:100%;background:#9FB0BF;border-radius:2px;}
.bandchart .val{font-family:var(--font-num);font-weight:500;text-align:right;}
.bandchart li.on .fill{background:var(--navy);}
.bandchart li.on .lbl,.bandchart li.on .val{color:var(--navy-deep);font-weight:600;}
.bandchart li.on{background:var(--highlighter-soft);margin:0 -8px;padding:3px 8px;border-radius:3px;}
@media (max-width:420px){.bandchart li{grid-template-columns:112px 1fr 48px;}}

/* sub-calculator tucked in a details element */
.mini{border:1px dashed var(--rule);border-radius:var(--radius);padding:0 14px;margin:-4px 0 16px;background:var(--paper);}
.mini summary{cursor:pointer;padding:10px 0;font-size:.86rem;font-weight:600;color:var(--navy);}
.mini[open] summary{border-bottom:1px dashed var(--rule);margin-bottom:12px;}
.mini .row2 .field{margin-bottom:10px;}
.mini .mini-total{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0 14px;font-size:.88rem;}
.mini .mini-total b{font-family:var(--font-num);}
.btn-small{min-height:36px;padding:4px 12px;border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:var(--radius);font-weight:600;font-size:.82rem;cursor:pointer;font-family:var(--font-body);}
.btn-small:hover{background:var(--highlighter-soft);}

/* covered / not covered lists */
.cover-grid{display:grid;grid-template-columns:1fr;gap:16px;}
@media (min-width:600px){.cover-grid{grid-template-columns:1fr 1fr;}}
.cover-grid h4{font-family:var(--font-head);font-size:.92rem;margin:0 0 6px;color:var(--navy-deep);}
.cover-grid ul{margin:0;padding-left:18px;font-size:.88rem;}
.cover-grid li{margin-bottom:5px;}
.cover-grid .yes li::marker{color:var(--mint);content:"✓  ";}
.cover-grid .no li::marker{color:var(--coral);content:"✕  ";}

/* data-confidence badges and wide reference tables */
.st{display:inline-block;font-family:var(--font-num);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:3px;white-space:nowrap;border:1px solid;}
.st-v{color:var(--mint-ink);border-color:#9CC9B2;background:#EAF5EF;}
.st-f{color:#7A5B00;border-color:var(--highlighter);background:var(--highlighter-soft);}
.st-s{color:var(--coral-ink);border-color:#F2B3A5;background:#FDEDE8;}
.flag{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--highlighter);background:var(--highlighter-soft);font-size:.84rem;border-radius:0 var(--radius) var(--radius) 0;}
.flag.s{border-left-color:var(--coral);background:#FDEDE8;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);max-height:560px;overflow-y:auto;}
.ref{width:100%;border-collapse:collapse;font-size:.84rem;min-width:560px;}
.ref th,.ref td{padding:8px 10px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;}
.ref thead th{position:sticky;top:0;background:var(--navy-deep);color:#fff;font-family:var(--font-head);font-weight:600;font-size:.82rem;z-index:1;}
.ref tbody th{font-weight:600;color:var(--navy-deep);white-space:nowrap;}
.ref td.n{font-family:var(--font-num);white-space:nowrap;}
.ref td:nth-child(3){min-width:240px;}
.ref tbody tr:nth-child(even){background:#FCFBF7;}
.steps{counter-reset:step;list-style:none;margin:0;padding:0;}
.steps li{position:relative;padding:0 0 14px 38px;font-size:.93rem;}
.steps li::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--highlighter);color:var(--navy-deep);font-family:var(--font-num);font-weight:600;font-size:.78rem;display:flex;align-items:center;justify-content:center;}
.steps li strong{color:var(--navy-deep);}

/* insight list */
.insights{list-style:none;margin:0;padding:0;}
.insights li{position:relative;padding:10px 0 10px 26px;border-bottom:1px dashed var(--rule);font-size:.93rem;}
.insights li:last-child{border-bottom:0;padding-bottom:0;}
.insights li::before{content:"";position:absolute;left:4px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--highlighter);box-shadow:0 0 0 2px var(--highlighter-soft);}
.insights li.warn::before{background:var(--coral);box-shadow:0 0 0 2px #F9C9BD;}
.insights li.good::before{background:var(--mint);box-shadow:0 0 0 2px #CFE7D9;}
.num-inline{font-family:var(--font-num);font-weight:600;white-space:nowrap;}

.disclaimer{font-size:.8rem;color:var(--ink-soft);margin:16px 0 0;padding:10px 0 0 14px;border-left:3px solid var(--rule);}

/* next-tool chain card */
.next-tool{
  margin:18px 0 0;padding:18px 20px;background:var(--highlighter-soft);
  border:1px solid var(--highlighter);border-radius:var(--radius);position:relative;
}
.next-eyebrow{font-family:var(--font-num);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:0;}
.next-tool p.next-text{margin:6px 0 12px;font-size:.95rem;}
.next-link{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;
  background:var(--navy-deep);color:#fff;border-radius:var(--radius);text-decoration:none;font-weight:600;font-size:.92rem;
}
.next-link:hover{background:var(--navy);color:#fff;}
.next-link span{transition:transform .15s;}
.next-link:hover span{transform:translateX(3px);}

/* ---------- ad slots ---------- */
/* Paste AdSense code inside a .ad-slot div. Empty slots are hidden, so nothing shows until an ad is added. */
.ad-slot{margin:32px 0;text-align:center;overflow:hidden;}
.ad-slot:empty{display:none;}

/* ---------- long-form content ---------- */
.prose{margin:36px 0;}
.prose h2{font-size:1.4rem;margin:0 0 12px;}
.prose h3{font-size:1.08rem;margin:24px 0 8px;}
.prose p,.prose li{font-size:.98rem;}
.prose p{margin:0 0 14px;}
.prose ul,.prose ol{margin:0 0 14px;padding-left:22px;}
.prose li{margin-bottom:6px;}
.prose .source{font-size:.8rem;color:var(--ink-soft);}
.formula{font-family:var(--font-num);font-size:.86rem;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--highlighter);border-radius:var(--radius);padding:12px 14px;overflow-x:auto;margin:0 0 14px;}

/* ---------- FAQ ---------- */
.faq{margin:36px 0;}
.faq h2{font-size:1.4rem;margin:0 0 8px;}
.faq details{border-bottom:1px solid var(--rule);}
.faq details:first-of-type{border-top:1px solid var(--rule);}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 0;font-family:var(--font-head);font-weight:600;font-size:1.02rem;color:var(--navy-deep);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:1rem;color:var(--navy);
  transition:transform .2s,background .2s;
}
.faq details[open] summary::after{content:"\2212";background:var(--highlighter-soft);border-color:var(--highlighter);}
.faq summary:hover{color:var(--navy);}
.faq .answer{padding:0 0 18px;color:var(--ink);font-size:.95rem;}
.faq .answer p{margin:0 0 10px;}
.faq .answer p:last-child{margin-bottom:0;}

/* ---------- footer ---------- */
footer.site-foot{background:var(--navy-deep);color:#C5CDD6;margin-top:48px;padding:40px 0 28px;font-size:.88rem;}
footer.site-foot a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(245,217,73,.45);}
footer.site-foot a:hover{border-bottom-color:var(--highlighter);color:var(--highlighter);}
.foot-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;color:#fff;font-size:1.05rem;margin-bottom:6px;}
.foot-brand .brand-mark{background:var(--highlighter);color:var(--navy-deep);}
.foot-tag{margin:0 0 22px;color:#AEB8C3;}
.foot-cols{display:grid;grid-template-columns:1fr;gap:18px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);}
@media (min-width:640px){.foot-cols{grid-template-columns:repeat(3,1fr);}}
.foot-h{font-family:var(--font-num);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--highlighter);margin:0 0 8px;font-weight:500;}
.foot-cols ul{list-style:none;margin:0;padding:0;}
.foot-cols li{margin:0 0 7px;}
.foot-disclaimer{margin:20px 0 14px;font-size:.8rem;line-height:1.55;color:#AEB8C3;}
.foot-meta{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.84rem;}
.foot-copy{margin:0;font-size:.76rem;color:#8995A2;font-family:var(--font-num);}

/* ---------- homepage ---------- */
.lede{border-left:3px solid var(--highlighter);padding-left:16px;margin:26px 0;}
.lede p{margin:0 0 10px;}
.group-head{margin:44px 0 14px;}
.group-head .eyebrow{margin-bottom:4px;}
.group-head h2{font-size:1.5rem;margin:0 0 4px;}
.group-head p{margin:0;color:var(--ink-soft);font-size:.95rem;}
.cards{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:640px){.cards{grid-template-columns:1fr 1fr;}}
.tool-card{
  display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  padding:20px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s;
}
.tool-card:hover{transform:translateY(-2px) rotate(-.4deg);border-color:var(--highlighter);box-shadow:0 10px 20px -12px rgba(33,38,43,.35);color:inherit;}
.tool-card h3{font-size:1.08rem;margin:0 0 6px;}
.tool-card p{margin:0 0 12px;font-size:.9rem;color:var(--ink-soft);line-height:1.5;}
.tool-card .go{margin-top:auto;font-family:var(--font-num);font-size:.74rem;color:var(--navy);}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .note.pop{animation:none;}
  .tool-card:hover{transform:none;}
}

@media print{
  header.site nav,.ad-slot,.next-tool,footer.site-foot,.calc-btn{display:none !important;}
  .note{box-shadow:none;transform:none;border:1px solid #999;}
}
