/* ============================================================
   AI INFERENCE ECONOMICS CALCULATOR (inference-calculator.html)
   Everything is prefixed ic- so it cannot affect other pages.
   ============================================================ */
.ic{
  --ic-surface:var(--bg-raised);
  --ic-surface-2:var(--bg-inset);
  --ic-accent-soft:color-mix(in srgb, var(--accent) 11%, var(--bg-raised));
  --ic-good-bg:#d5eedd;--ic-good-fg:#14532d;
  --ic-bad-bg:#f8d7db;--ic-bad-fg:#82171f;
  --ic-s1:var(--ink-faint);
  --ic-s2:color-mix(in srgb, var(--accent) 55%, var(--bg-raised));
  --ic-s3:color-mix(in srgb, var(--accent) 78%, var(--ink));
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .ic{
    --ic-good-bg:#123620;--ic-good-fg:#8fe2a9;
    --ic-bad-bg:#441a20;--ic-bad-fg:#f6a3ab;
    --ic-s1:#7d8c9b;
  }
}
:root[data-theme="dark"] .ic{
  --ic-good-bg:#123620;--ic-good-fg:#8fe2a9;
  --ic-bad-bg:#441a20;--ic-bad-fg:#f6a3ab;
  --ic-s1:#7d8c9b;
}
.ic [id]{scroll-margin-top:150px;}
.ic-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

/* hero */
.ic-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--sp-5);align-items:end;}
.ic-lede{margin-top:var(--sp-3);color:var(--ink-soft);font-size:1.08rem;line-height:1.7;max-width:58ch;}
.ic-hero-cta{margin-top:var(--sp-4);display:flex;gap:var(--sp-2);flex-wrap:wrap;}
.ic-spec{margin:0;background:var(--ic-surface);border:1px solid var(--line);padding:.4rem 1.2rem;}
.ic-spec div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:.8rem 0;border-bottom:1px solid var(--line);}
.ic-spec div:last-child{border-bottom:0;}
.ic-spec dt{color:var(--ink-dim);font-size:.9rem;}
.ic-spec dd{margin:0;font-family:var(--font-mono);font-weight:600;font-size:1.1rem;color:var(--ink);text-align:right;}

/* sticky section nav */
.ic-subnav{position:sticky;top:76px;z-index:90;background:color-mix(in srgb, var(--bg) 94%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.ic-subnav .container{display:flex;gap:.2rem;overflow-x:auto;scrollbar-width:none;padding-block:.35rem;}
.ic-subnav .container::-webkit-scrollbar{display:none;}
.ic-subnav a{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-dim);padding:.6em .9em;white-space:nowrap;border-bottom:2px solid transparent;}
.ic-subnav a:hover{color:var(--ink);border-bottom-color:var(--accent);}

/* calculator layout */
.ic-lab{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--sp-4);align-items:start;}
.ic-inputs{display:grid;gap:var(--sp-3);}
.ic-panel{position:sticky;top:132px;display:grid;gap:var(--sp-2);}
.ic-card{background:var(--ic-surface);border:1px solid var(--line);padding:var(--sp-3);}
.ic-card > h3{font-family:var(--font-body);font-weight:600;font-size:1.02rem;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:var(--sp-2);}
.ic-card > h3 span{font-family:var(--font-mono);font-size:.72rem;font-weight:500;color:var(--ink-dim);letter-spacing:.04em;text-transform:uppercase;}
.ic-presets{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--sp-2);}
.ic-chip{font:inherit;font-family:var(--font-mono);font-size:.74rem;color:var(--ink-dim);background:transparent;border:1px solid var(--line-strong);padding:.4em .8em;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease;}
.ic-chip:hover{border-color:var(--accent);color:var(--accent);}
.ic-chip[aria-pressed="true"]{border-color:var(--accent);background:var(--ic-accent-soft);color:var(--ink);}
.ic-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);}
.ic-field{display:grid;gap:.3rem;min-width:0;}
.ic-field.ic-wide{grid-column:1 / -1;}
.ic-field label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
.ic-field input,.ic-field select{
  font:inherit;font-family:var(--font-mono);font-size:.92rem;color:var(--ink);background:var(--bg-inset);
  border:1px solid var(--line-strong);border-radius:0;padding:.55rem .7rem;width:100%;min-width:0;
}
.ic-field input[type=text]{font-family:var(--font-body);}
.ic-field input:focus,.ic-field select:focus{outline:none;border-color:var(--accent);}
.ic-derived{margin-top:var(--sp-2);display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.82rem;color:var(--ink-dim);padding-top:var(--sp-2);border-top:1px solid var(--line);}
.ic-derived b{color:var(--ink);font-family:var(--font-mono);font-weight:600;}
.ic-opt{border-top:4px solid var(--ic-s1);}
.ic-opt[data-o="a"]{border-top-color:var(--ic-s2);}
.ic-opt[data-o="b"]{border-top-color:var(--ic-s3);}
.ic-opt[data-o="c"]{border-top-color:var(--accent);}
.ic-hint{font-size:.8rem;color:var(--ink-dim);line-height:1.55;}

/* results */
.ic-win{display:grid;gap:.5rem;}
.ic-win .ic-kicker{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}
.ic-win .ic-who{font-weight:600;color:var(--ink);}
.ic-big{font-family:var(--font-mono);font-size:2.3rem;font-weight:600;line-height:1.05;color:var(--ink);}
.ic-big small{font-size:.8rem;color:var(--ink-dim);font-weight:400;}
.ic-pill{display:inline-block;font-size:.76rem;font-weight:600;padding:.2rem .6rem;border-radius:99px;width:fit-content;}
.ic-good{background:var(--ic-good-bg);color:var(--ic-good-fg);}
.ic-bad{background:var(--ic-bad-bg);color:var(--ic-bad-fg);}
.ic-neutral{background:var(--ic-surface-2);color:var(--ink-dim);}
.ic-rows{display:grid;gap:var(--sp-2);}
.ic-row{display:grid;gap:.4rem;padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);}
.ic-row:last-child{border-bottom:0;padding-bottom:0;}
.ic-row.ic-best .ic-rname::after{content:"lowest";margin-left:.5rem;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--ic-good-fg);background:var(--ic-good-bg);border-radius:3px;padding:1px 6px;vertical-align:1px;}
.ic-rtop{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.ic-rname{font-size:.88rem;font-weight:600;color:var(--ink);overflow-wrap:anywhere;}
.ic-rval{font-family:var(--font-mono);font-weight:600;font-size:1.05rem;color:var(--ink);white-space:nowrap;}
.ic-track{height:8px;background:var(--ic-surface-2);border-radius:4px;overflow:hidden;}
.ic-fill{height:100%;border-radius:4px;transition:width .25s ease;}
.ic-rmeta{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.76rem;color:var(--ink-dim);}
.ic-rmeta b{font-family:var(--font-mono);color:var(--ink);font-weight:500;}
.ic-note{font-size:.82rem;color:var(--ink-dim);line-height:1.55;}
.ic-actions{display:flex;gap:var(--sp-1);flex-wrap:wrap;align-items:center;}
.ic-actions .ic-status{font-size:.8rem;color:var(--ink-dim);}

/* sensitivity table */
.ic-tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--ic-surface);}
.ic-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px;}
.ic-table th,.ic-table td{padding:.8rem 1rem;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;}
.ic-table th:first-child,.ic-table td:first-child{text-align:left;}
.ic-table thead th{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;background:var(--ic-surface-2);}
.ic-table tbody tr:last-child td{border-bottom:0;}
.ic-table td.ic-cell{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.ic-table td.ic-lo{background:var(--ic-good-bg);color:var(--ic-good-fg);}
.ic-table td.ic-hi{background:var(--ic-bad-bg);color:var(--ic-bad-fg);}
.ic-table .ic-ref td{font-weight:600;background:var(--ic-surface-2);}
.ic-caption{margin-top:var(--sp-2);font-size:.82rem;color:var(--ink-dim);}

/* method */
.ic-formulas{display:grid;gap:.5rem;margin-top:var(--sp-3);font-family:var(--font-mono);font-size:.8rem;color:var(--ink-soft);}
.ic-formulas div{background:var(--ic-surface);border:1px solid var(--line);padding:.7rem .9rem;overflow-x:auto;white-space:nowrap;}
.ic-disclaimer{margin-top:var(--sp-5);display:grid;gap:.4rem;font-size:.82rem;color:var(--ink-faint);max-width:80ch;}

@media (max-width:1040px){
  .ic-lab{grid-template-columns:minmax(0,1fr);}
  .ic-panel{position:static;order:-1;}
  .ic-hero-grid{grid-template-columns:minmax(0,1fr);align-items:start;}
}
@media (max-width:560px){
  .ic-fields{grid-template-columns:minmax(0,1fr);}
}
@media (prefers-reduced-motion: reduce){ .ic-fill{transition:none;} }

.ic-field[hidden]{display:none;}

/* ---- v2: metric grids, stacked bar, comparison table ---- */
.ic-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-1);}
.ic-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);}
.ic-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-items:start;}
.ic-box{background:var(--ic-surface);border:1px solid var(--line);padding:.9rem 1rem;min-width:0;}
.ic-box.ic-hi{border-color:var(--line-strong);background:var(--ic-accent-soft);}
.ic-bl{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
.ic-bv{font-family:var(--font-mono);font-weight:600;font-size:1.3rem;color:var(--ink);margin-top:.25rem;overflow-wrap:anywhere;}
.ic-bs{font-size:.76rem;color:var(--ink-dim);margin-top:.15rem;}
.ic-kicker{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}
.ic-bigv{font-family:var(--font-mono);font-size:2.3rem;font-weight:600;line-height:1.1;color:var(--ink);margin:.3rem 0 var(--sp-2);}
.ic-bigv small{font-size:.8rem;color:var(--ink-dim);font-weight:400;}
.ic-stack{display:flex;height:14px;background:var(--ic-surface-2);overflow:hidden;margin-top:.5rem;}
.ic-seg{height:100%;min-width:0;}
.ic-legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:.6rem;font-size:.76rem;color:var(--ink-dim);}
.ic-legend i{display:inline-block;width:9px;height:9px;margin-right:.35rem;}
.ic-lossnote{color:var(--ic-bad-fg);font-weight:600;}
.ic-pos{color:var(--ic-good-fg);}
.ic-neg{color:var(--ic-bad-fg);}
.ic-cellinput{font:inherit;font-family:var(--font-mono);font-size:.88rem;color:var(--ink);background:var(--bg-inset);border:1px solid var(--line-strong);border-radius:0;padding:.35rem .5rem;width:7.5rem;text-align:right;}
.ic-cellinput:focus{outline:none;border-color:var(--accent);}
.ic-sortable{cursor:pointer;user-select:none;}
.ic-sortable:hover,.ic-sorted{color:var(--ink) !important;}
.ic-bestrow td{background:var(--ic-accent-soft);}
.ic-tag{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:1px 5px;margin-left:.4rem;}
.ic-na td{color:var(--ink-faint);font-size:.82rem;}
.ic-na td[colspan]{text-align:left;}
.ic-vs{font-size:.72rem;margin-left:.4rem;}
.ic-compare{min-width:980px;}
.ic-panel .ic-card{padding:var(--sp-2) var(--sp-3);}
.ic-est-only.ic-wide{grid-column:1 / -1;}
@media (max-width:1040px){ .ic-grid3{grid-template-columns:repeat(2,minmax(0,1fr));} .ic-two{grid-template-columns:minmax(0,1fr);} }
@media (max-width:560px){ .ic-grid3,.ic-grid2{grid-template-columns:minmax(0,1fr);} .ic-bigv{font-size:1.9rem;} }
