:root{
  --ink:#1f2933;--muted:#5b6770;--ground:#f5f7f9;--panel:#ffffff;--line:#d5dde3;--tint:#e8f1f6;
  --brand:#106f9f;--brand-ink:#0b4f72;--good:#1f7a4d;--good-bg:#e6f4ec;--bad:#a4262c;--bad-bg:#fbe9ea;--warn:#8a4b08;--warn-bg:#fff4e5;
  --field:#ffffff;--field-line:#b8c4cd;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#e6edf3;--muted:#9aa8b4;--ground:#0f171e;--panel:#172230;--line:#2b3946;--tint:#1c2d3a;
    --brand:#5db3de;--brand-ink:#9dd3ee;--good:#5ccf8f;--good-bg:#173226;--bad:#ff7b7b;--bad-bg:#3a1c1e;--warn:#f0b35a;--warn-bg:#2a2115;
    --field:#0f171e;--field-line:#3a4b5a;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ink:#e6edf3;--muted:#9aa8b4;--ground:#0f171e;--panel:#172230;--line:#2b3946;--tint:#1c2d3a;
  --brand:#5db3de;--brand-ink:#9dd3ee;--good:#5ccf8f;--good-bg:#173226;--bad:#ff7b7b;--bad-bg:#3a1c1e;--warn:#f0b35a;--warn-bg:#2a2115;
  --field:#0f171e;--field-line:#3a4b5a;color-scheme:dark;
}
.buybox *{box-sizing:border-box}
.buybox .buybox{color:var(--ink);font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}
.buybox .wrap{max-width:1100px;margin:0 auto;padding-block:18px 48px;padding-inline:16px}
.buybox h1{font-size:22px;line-height:1.2;margin:0 0 4px;letter-spacing:-.01em;text-wrap:balance}
.buybox h2{font-size:14px;margin:0;color:var(--brand-ink)}
.buybox .sub{color:var(--muted);margin:0 0 14px;max-width:70ch;font-size:13px}
.buybox .num{font-family:"IBM Plex Mono","SFMono-Regular",Menlo,monospace;font-variant-numeric:tabular-nums}
.buybox .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 14px}
.buybox .tile{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.buybox .tile .l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.buybox .tile .v{font-size:20px;font-weight:600;margin-top:2px}
.buybox .tile.hero{border-color:var(--brand);background:var(--tint)}
.buybox section{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0 0 14px}
.buybox .bar{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px}
.buybox label.f{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}
.buybox input[type=number], .buybox input[type=text], .buybox select{width:100%;font:inherit;font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:6px;padding:6px 8px}
.buybox input[type=text]{font-family:"IBM Plex Sans",sans-serif}
.buybox input:focus, .buybox select:focus, .buybox button:focus{outline:2px solid var(--brand);outline-offset:1px}
.buybox .chk{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink);align-self:end;padding-bottom:6px}
.buybox details>summary{cursor:pointer;font-weight:600;color:var(--brand-ink);list-style:none;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.buybox details>summary::after{content:"Show";font-weight:500;font-size:12px;color:var(--muted)}
.buybox details[open]>summary::after{content:"Hide"}
.buybox details>summary::-webkit-details-marker{display:none}
.buybox .more{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.buybox .group{grid-column:1/-1;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px;border-bottom:1px solid var(--line);padding-bottom:3px}
.buybox /* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
.buybox .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.buybox .card .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.buybox .card .name{font-size:14px;font-weight:600;background:transparent;border-color:transparent;padding:2px 4px;margin-left:-4px;min-width:0;flex:1}
.buybox .card .name:hover, .buybox .card .name:focus{border-color:var(--field-line);background:var(--field)}
.buybox .pill{font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 8px;border-radius:12px;white-space:nowrap}
.buybox .pill.ok{background:var(--good-bg);color:var(--good)}
.buybox .pill.bad{background:var(--bad-bg);color:var(--bad)}
.buybox .pill.warn{background:var(--warn-bg);color:var(--warn)}
.buybox .buy{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:8px 0 2px}
.buybox .buy .ask{font-size:12px;color:var(--muted)}
.buybox .buy .big{font-size:24px;font-weight:700;color:var(--brand-ink);line-height:1.1}
.buybox .buy .tag{font-size:12px;color:var(--muted)}
.buybox .kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:13px;margin-top:8px}
.buybox .kv .k{color:var(--muted)}
.buybox .kv .v{text-align:right}
.buybox .kv .sep{grid-column:1/-1;border-top:1px dashed var(--line);margin:4px 0}
.buybox .repin{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:6px}
.buybox .repin input{width:110px;flex:none}
.buybox .repin .note{flex:1;min-width:0}
.buybox .flow{font-size:12px;color:var(--muted);margin-top:6px}
.buybox .flow b{color:var(--ink)}
.buybox .neg{color:var(--bad)}
.buybox .pos{color:var(--good)}
.buybox .card details{margin-top:8px}
.buybox .card details>summary{font-size:12px;font-weight:500;color:var(--muted)}
.buybox .in{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:8px}
.buybox .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.buybox button{font:inherit;font-size:13px;padding:7px 12px;border-radius:6px;border:1px solid var(--field-line);background:var(--field);color:var(--ink);cursor:pointer}
.buybox button.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.buybox button.danger{color:var(--bad)}
.buybox button.small{font-size:12px;padding:4px 9px}
.buybox .scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:10px}
.buybox table{border-collapse:collapse;width:100%;min-width:1100px}
.buybox th, .buybox td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px}
.buybox th{font-size:11px;font-weight:600;color:var(--muted);vertical-align:bottom;white-space:normal;line-height:1.2}
.buybox th:first-child, .buybox td:first-child{text-align:left;position:sticky;left:0;background:var(--panel);z-index:1}
.buybox td.hi{background:var(--tint);font-weight:600}
.buybox tr.total td{font-weight:600;border-top:2px solid var(--brand);border-bottom:none}
.buybox .legend{font-size:12px;color:var(--muted);margin:8px 0 0}
.buybox .gate{background:var(--warn-bg);border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:9px 12px;font-size:12px;margin-top:14px}
.buybox .toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--ground);padding:8px 14px;border-radius:20px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none}
.buybox .toast.show{opacity:1}
@media (prefers-reduced-motion: reduce){.toast{transition:none}}



.buybox .card-toggles{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:6px 0 2px}
.buybox .hm-toggle{
  position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-size:12px;color:var(--ink);user-select:none;
}
.buybox .hm-toggle input{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:34px;height:20px;margin:0;opacity:0;cursor:pointer;z-index:2;
}
.buybox .hm-switch{
  position:relative;width:34px;height:20px;border-radius:999px;
  background:var(--field-line);border:1px solid var(--field-line);
  transition:background .15s,border-color .15s;flex:none;z-index:1;
}
.buybox .hm-switch::after{
  content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;
  border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);
  transition:transform .15s;
}
.buybox .hm-toggle input:checked + .hm-switch{
  background:var(--brand);border-color:var(--brand);
}
.buybox .hm-toggle input:checked + .hm-switch::after{transform:translateX(14px)}
.buybox .hm-toggle input:focus-visible + .hm-switch{outline:2px solid var(--brand);outline-offset:2px}
.buybox .hm-label{font-weight:500}
@media (prefers-reduced-motion: reduce){
  .buybox .hm-switch,.buybox .hm-switch::after{transition:none}
}

.buybox .empty-state{
  grid-column:1/-1;
  color:var(--muted);
  font-size:13px;
  padding:10px 0 4px;
  line-height:1.45;
}
.buybox .card-actions{margin-top:10px}
.buybox .card-actions button{font-size:12px}

/* Print reports */
.print-root{display:none}
body.printing .print-root{display:block}

@media print{
  @page{size:auto;margin:0.5in}
  html,body{background:#fff!important;color:#111!important}
  body.printing .site-header,
  body.printing .site-footer,
  body.printing .skip-link,
  body.printing .nav-toggle,
  body.printing .buybox .wrap,
  body.printing .toast,
  body.printing .no-print{display:none!important}

  body.printing .print-root{
    display:block!important;
    position:static;
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    background:#fff;
    color:#111;
    font-family:"IBM Plex Sans",system-ui,sans-serif;
    font-size:10pt;
    line-height:1.4;
    box-sizing:border-box;
  }
  body.printing .print-root *,
  body.printing .print-root *::before,
  body.printing .print-root *::after{box-sizing:border-box}

  .report{
    break-after:page;
    page-break-after:always;
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    overflow:visible;
  }
  .report:last-child{break-after:auto;page-break-after:auto}

  .report-head{
    display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
    border-bottom:2px solid #0b4f72;padding-bottom:8px;margin-bottom:8px;
  }
  .rh-brand{display:flex;gap:10px;align-items:center;min-width:0}
  .rh-mark{
    flex:none;width:34px;height:34px;border-radius:8px;background:#0b3d5c;color:#fff;
    display:grid;place-items:center;font-weight:700;font-size:12px;font-family:Georgia,serif;
  }
  .rh-brand strong{font-size:13pt;color:#0b3d5c;display:block}
  .rh-sub{font-size:8.5pt;color:#5b6b78}
  .rh-meta{text-align:right;font-size:8.5pt;color:#5b6b78;line-height:1.45;flex:none}
  .rh-meta a{color:#0b4f72;text-decoration:none}

  .report h1{
    font-family:Georgia,"Source Serif 4",serif;font-size:15pt;margin:0 0 8px;
    color:#0b3d5c;letter-spacing:-.01em;overflow-wrap:anywhere;
  }
  .report h2{
    font-size:9.5pt;margin:8px 0 4px;color:#0b4f72;
    border-bottom:1px solid #d5dde3;padding-bottom:2px;
  }
  /* Kill .buybox section chrome (border/padding) that shrinks print cards */
  body.printing .print-root section{
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    padding:0!important;
    margin:0!important;
    box-shadow:none!important;
  }
  .report-section{margin:0;padding:0}

  .report-hero{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
    margin:0 0 8px;
  }
  .rh-tile{
    border:1px solid #d5dde3;border-radius:5px;padding:5px 7px;min-width:0;
    background:#fff;
  }
  .rh-tile.rh-hero{grid-column:1/-1;background:#e8f1f6;border-color:#106f9f}
  .rh-tile .l{
    font-size:6.5pt;text-transform:uppercase;letter-spacing:.04em;color:#5b6b78;
    line-height:1.2;overflow-wrap:anywhere;
  }
  .rh-tile .v{
    font-family:"IBM Plex Mono",Menlo,monospace;font-size:10.5pt;font-weight:600;
    color:#0b3d5c;margin-top:1px;overflow-wrap:anywhere;word-break:break-word;
  }
  .rh-tile.rh-hero .v{font-size:16pt}

  .report-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    margin:0;
    align-items:start;
  }

  /* Override .buybox table{min-width:1100px} and nowrap/sticky that clip print values */
  .report-table{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:fixed;
    border-collapse:collapse;
    font-size:9pt;
    margin:0;
  }
  .report-table th,
  .report-table td{
    padding:3px 8px 3px 4px!important;
    border-bottom:1px solid #e5ebf0!important;
    vertical-align:top;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:break-word;
    position:static!important;
    left:auto!important;
    background:transparent!important;
    z-index:auto!important;
  }
  .report-table th{
    text-align:left!important;
    font-weight:600;
    color:#5b6b78;
    width:40%;
    font-family:"IBM Plex Sans",system-ui,sans-serif!important;
    font-size:8.5pt!important;
  }
  .report-table td{
    text-align:right!important;
    font-family:"IBM Plex Mono",Menlo,monospace!important;
    font-size:8.5pt!important;
    color:#111;
    width:60%;
  }
  .report-table .muted{
    font-family:"IBM Plex Sans",sans-serif!important;
    color:#5b6b78;font-size:8pt;
  }
  .report-table .rt-main{display:block}
  .report-table .rt-sub{
    display:block;margin-top:2px;
    font-family:"IBM Plex Sans",sans-serif!important;
    font-size:8pt;color:#5b6b78;font-weight:400;
  }

  .report-fin{margin:0 0 8px;font-size:9pt;color:#0b4f72;font-weight:600}
  .report-note{color:#5b6b78;font-style:italic;margin:8px 0}
  .report-foot{
    margin-top:8px;padding-top:6px;border-top:1px solid #d5dde3;
    font-size:7.5pt;color:#5b6b78;
  }
  .report-foot p{margin:0 0 4px;overflow-wrap:anywhere}

  /* Prefer keeping a report on one page when content is moderate */
  .report-section,.report-hero,.report-grid{break-inside:avoid;page-break-inside:avoid}
}

