@font-face {
  font-family: "Newsreader";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("fonts/newsreader-latin.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("fonts/source-serif-4-latin.woff2") format("woff2-variations");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
}

:root{--bg:#f7f7f4;--text:#262722;--text-soft:#6d7067;--border:#d2d4cb;--surface:#eeefe9;--lime:#466b52;--red:#a44f43;--yellow:#85662f;--sans:"IBM Plex Sans",sans-serif;--mono:"IBM Plex Mono",monospace;--serif:"Newsreader",Georgia,serif;}
*{box-sizing:border-box;}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--sans);}
a{color:inherit;}button,input,select{font:inherit;color:inherit;}button,summary,select{cursor:pointer;}
button{background:transparent;border:1px solid var(--border);padding:.45rem .75rem;}button:hover{background:var(--surface);}
input,select{background:transparent;border:0;border-bottom:1px solid var(--border);padding:.4rem;min-width:0;max-width:100%;}
input[type=number],.cell-input,td,.value{font-family:var(--mono);font-size:.8rem;font-variant-numeric:tabular-nums;}
input:focus,select:focus{border-color:var(--text);}input[type=checkbox]{accent-color:var(--lime);}
:focus-visible{outline:2px solid var(--lime);outline-offset:2px;}[hidden]{display:none!important;}
.page-shell,.report-shell{width:100%;padding:2rem clamp(1rem,3vw,3rem) 3rem;}
header,.report-header{border-bottom:1px solid var(--border);padding-bottom:1rem;margin-bottom:1.5rem;}
.site-title,.report-title{font:400 2.3rem/1.1 var(--serif);letter-spacing:-.035em;}
h2,.section-label{font:400 1.6rem/1.15 var(--serif);margin:1.8rem 0 1rem;}h3{font:500 .9rem var(--sans);margin:1.2rem 0 .6rem;}
.report-meta,.row-count,.submit-note{color:var(--text-soft);font: .72rem var(--mono);margin-top:.5rem;}
#mainForm{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0 2rem;align-items:start;}
.settings-rail{grid-row:span 2;border-right:1px solid var(--border);padding-right:1.5rem;}
.settings-rail>.section-label,.positions-workspace>.section-label{margin-top:0;}
.positions-workspace{min-width:0;}.param-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}
.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.6rem;}.field label{font-size:.75rem;}.field input,.field select{width:100%;}
.settings-rail .field:has(#cash_mode),.settings-rail .field:has(#rf){grid-column:1/-1;}
.positions-workspace>.field,.positions-workspace>.param-grid{max-width:32rem;}
details{margin:1rem 0;}summary{font-size:.8rem;}details[open]>summary{margin-bottom:.8rem;}
.settings-panel,.report-section{border-top:1px solid var(--border);padding-top:.8rem;}
.settings-panel summary span{color:var(--text-soft);margin-left:.5rem;}
p.section-desc,.help-panel p,.report-section p{font:1rem/1.6 "Source Serif 4",Georgia,serif;max-width:80ch;color:var(--text-soft);}
.table-wrap,.table-scroll{width:100%;overflow-x:auto;}table{width:100%;border-collapse:collapse;}
th{font-size:.72rem;font-weight:500;text-align:right;border-bottom:1px solid var(--border);padding:.6rem .65rem;}
td{padding:.45rem .65rem;text-align:right;border-bottom:1px solid var(--border);}
th:first-child,td:first-child{text-align:left;}tbody tr:hover{background:var(--surface);}
.cell-input{width:100%;min-width:60px;}.ticker-input{min-width:70px;}.side-select{font-size:.8rem;}
.scenario-fields{min-width:200px;}.scenario-fields label{display:block;margin:.6rem 0;font-size:.75rem;}
.scenario-pair{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}.scenario-pair input{width:100%;}.scenario-pair span{color:var(--text-soft);font-size:.7rem;}
.scenario-fields input{max-width:100%;}.btn-remove{border:0;color:var(--red);padding:.25rem;}
.toolbar,.submit-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:1rem;}.submit-bar{grid-column:2;border-top:1px solid var(--border);padding-top:1rem;}
.btn-submit{background:var(--text);color:var(--bg);border-color:var(--text);}.btn-submit:hover{background:var(--text-soft);}
.toggle-row{display:flex;gap:.5rem;align-items:start;font-size:.75rem;margin:.5rem 0;}.toggle-row input{margin-top:.2rem;}
hr{border:0;}#loading-overlay{display:none;position:fixed;inset:0;background:var(--bg);z-index:10;align-items:center;justify-content:center;flex-direction:column;gap:1rem;}
#loading-overlay.active{display:flex;}.loading-step{display:none;}.loading-step.active{display:block;color:var(--text-soft);}
.toast{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:.5rem 1rem;opacity:0;pointer-events:none;}.toast.show{opacity:1;}
.report-nav{display:flex;gap:1.5rem;font-size:.8rem;margin:1.25rem 0;}.report-nav a{text-decoration:none;}
.allocation-row{cursor:pointer;}.allocation-row.selected{background:var(--surface);box-shadow:inset 2px 0 var(--lime);}
.allocation-row button{border:0;padding:0;text-align:left;white-space:nowrap;}.allocation-row.selected button{font-weight:500;}
.allocation-table th:not(:first-child){max-width:160px;}.allocation-table td{white-space:nowrap;}
.kpi-row{display:flex;flex-wrap:wrap;gap:2rem;border-bottom:1px solid var(--border);padding:.8rem 0;}.kpi .label{font-size:.72rem;color:var(--text-soft);}.kpi .value{font-size:1.25rem;}
.pos,.long-tag,.is-long{color:var(--lime);}.neg,.short-tag,.is-short{color:var(--red);}.badge{font-size:.6rem;margin-left:.5rem;}.highrisk{color:var(--red);}.conc{color:var(--yellow);}
.report-notices{border-left:2px solid var(--yellow);padding-left:1rem;font-size:.8rem;}.report-notices h2{font:500 .8rem var(--sans);}.report-notices ul{padding-left:1rem;}
.section-header td{text-align:left;font-family:var(--sans);font-size:.7rem;}.mrc-bar-wrap{display:flex;align-items:center;gap:6px;}.mrc-bar{height:3px;}
@media(max-width:1000px){#mainForm{grid-template-columns:1fr;}.settings-rail{grid-row:auto;border-right:0;border-bottom:1px solid var(--border);padding:0 0 1rem;margin-bottom:1rem;}.settings-rail>.param-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.submit-bar{grid-column:1;}}
@media(max-width:600px){.settings-rail>.param-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.page-shell,.report-shell{padding:1.2rem 1rem;}.kpi-row{gap:1rem;}}
.crisis-note{color:var(--text-soft);font-size:.7rem;line-height:1.6;margin:1.5rem 0 1rem;}
.crisis-chart{border-top:1px solid var(--border);padding:1rem 0;margin:.75rem 0;overflow:hidden;}
.crisis-chart-head{display:flex;justify-content:space-between;gap:1rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;}
.crisis-chart-head span{color:var(--text-soft);font-size:.58rem;}.crisis-chart-head i{display:inline-block;width:16px;height:2px;margin:0 5px 3px 12px;}
.port-key{background:var(--lime);}.spy-key{background:#6d7c8d;}.crisis-chart svg{display:block;width:100%;height:auto;margin-top:.5rem;}
.crisis-grid{stroke:#dce2e9;stroke-width:1;}.crisis-axis{fill:var(--text-soft);font-size:10px;}.crisis-end{font-size:11px;font-weight:600;}.port-end-dot{fill:var(--lime);}.spy-end-dot{fill:#6d7c8d;}.port-end-text{fill:var(--lime);}.spy-end-text{fill:#6d7c8d;}.crisis-band{fill:rgba(255,79,79,.12);stroke:rgba(255,79,79,.35);stroke-width:1;}
.rebalance-line{stroke:#526176;stroke-width:1;stroke-dasharray:4 4;opacity:.65;}
.rebalance-details{font-size:.72rem;margin-top:1rem;}.rebalance-details summary{cursor:pointer;color:var(--lime);}
.rebalance-details p{color:var(--text-soft);line-height:1.6;}.rebalance-details td{white-space:nowrap;min-width:110px;}.rebalance-details td:nth-child(4){white-space:normal;min-width:240px;}
.crisis-plot{overflow-x:auto;}.crisis-plot svg{min-width:640px;}.chart-scroll-hint{display:none;}
.port-line,.spy-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;}.port-line{stroke:var(--lime);}.spy-line{stroke:#6d7c8d;stroke-width:1.5;}
.selection-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem;font-size:.8rem;}
