:root{--surface: rgba(255, 252, 246, .94);--ink: #1e2a23;--muted: #5c695f;--line: rgba(30, 42, 35, .12);--line-strong: rgba(30, 42, 35, .24);--accent: #0f766e;--amber-soft: rgba(180, 83, 9, .12);--success-soft: rgba(22, 101, 52, .12);--shadow: 0 16px 44px rgba(40, 36, 24, .1);--radius: 16px;--radius-sm: 12px;--font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--font-sans: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:14px;color:var(--ink);background:radial-gradient(circle at top left,rgba(15,118,110,.14),transparent 28%),radial-gradient(circle at top right,rgba(180,83,9,.12),transparent 24%),linear-gradient(180deg,#fbf7ee,#f2ede2 52%,#ece6d9)}button,input,select{font:inherit}button,input,select,textarea{border:1px solid var(--line);border-radius:10px;background:#fffdfa;color:var(--ink)}button{cursor:pointer;padding:.52rem .78rem;transition:transform .12s ease,border-color .12s ease,background .12s ease}button:hover{transform:translateY(-1px);border-color:var(--line-strong)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}input,select{width:100%;padding:.58rem .68rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.55rem .68rem;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}#root{min-height:100vh}.app-shell{padding:.9rem}.hero{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(330px,1fr);gap:.7rem;align-items:stretch;padding:.9rem 1rem;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fffcf6fa,#f5f0e6e6);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero h1,.panel h2,.panel h3,.sidebar h2{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}.hero h1{font-size:clamp(1.7rem,2.3vw,2.45rem);line-height:.95;max-width:18ch}.hero__copy{display:grid;align-content:center;gap:.45rem}.hero__lede{max-width:78ch;color:var(--muted);font-size:.9rem;line-height:1.4}.hero__meta{display:flex;flex-direction:column;justify-content:space-between;gap:.8rem;padding:.85rem;border-radius:14px;background:#ffffff73;border:1px solid rgba(30,42,35,.08)}.scenario-name{display:flex;flex-direction:column;gap:.35rem}.scenario-name span,.eyebrow{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.hero__buttons,.sidebar__actions,.tab-bar{display:flex;flex-wrap:wrap;gap:.45rem}.tab-bar{margin:.8rem 0}.tab{background:#ffffff9e}.tab--active{background:var(--ink);border-color:var(--ink);color:#fff}.workspace{display:grid;grid-template-columns:228px minmax(0,1fr);gap:.9rem;align-items:start}.sidebar,.panel,.filter-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sidebar{position:sticky;top:.9rem;padding:.8rem}.sidebar__header,.panel__header,.nested-panel__header{display:flex;align-items:start;justify-content:space-between;gap:.8rem}.sidebar__filter{display:grid;gap:.35rem;margin-top:.7rem}.market-list,.stack-lg,.stack-md{display:flex;flex-direction:column}.market-list{gap:.48rem;margin-top:.7rem}.market-list--scroll{max-height:calc(100vh - 255px);overflow-y:auto;padding-right:.1rem}.stack-lg{gap:.9rem}.stack-md{gap:.75rem}.market-chip{display:grid;gap:.18rem;text-align:left;padding:.58rem;border-radius:12px;background:#ffffffd1}.market-chip span,.market-chip small,.subtle{color:var(--muted)}.market-chip strong{font-size:.9rem}.market-chip--active{background:linear-gradient(135deg,#0f766e26,#fffffff2);border-color:#0f766e40}.main-panel{min-width:0}.main-panel--wide{width:100%}.panel,.filter-bar{padding:.88rem}.toolbar{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.filter-bar{position:sticky;top:.9rem;z-index:3;margin-bottom:.75rem}.filter-bar__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.filter-bar__group{display:grid;gap:.4rem;margin-top:.65rem}.chip-grid{display:flex;flex-wrap:wrap;gap:.4rem}.chip-grid--metrics{max-height:132px;overflow-y:auto}.chip{padding:.34rem .55rem;border-radius:999px;background:#ffffffb3;font-size:.76rem}.chip--active{background:#0f766e24;border-color:#0f766e40}.panel--warning{border-color:#b453094d;background:linear-gradient(180deg,#b4530914,#fffcf6f2)}.nested-panel{padding:.8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff8c}.form-grid,.metric-grid,.curve-grid,.curve-preview,.detail-grid,.mini-grid,.chart-grid{display:grid;gap:.62rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:.75rem}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:.75rem}.metric-grid--dense{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}.curve-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));margin-top:.75rem}.curve-grid--compact{grid-template-columns:repeat(13,minmax(0,1fr));gap:.45rem}.curve-grid--compact .field{gap:.28rem}.curve-grid--compact .field__label{font-size:.72rem}.curve-grid--compact input{padding:.48rem .52rem}.curve-preview{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));margin-top:.75rem}.curve-preview--compact{grid-template-columns:repeat(13,minmax(0,1fr));gap:.45rem}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:.75rem}.curve-preview__item,.mini-card,.metric-card,.chart-card{padding:.72rem;border:1px solid var(--line);border-radius:12px;background:#ffffffad}.chart-card--large{min-height:180px}.chart-card--interactive{position:relative;cursor:pointer}.chart-card--interactive:hover{border-color:#0f766e47;box-shadow:0 10px 28px #0f766e14}.chart-card--shadowbox{position:relative;min-height:calc(100vh - 20px);padding:.85rem;background:#fffdfa;box-shadow:0 24px 70px #12100c3d}.curve-preview__item span,.mini-card span,.metric-card span{display:block;color:var(--muted);font-size:.78rem}.curve-preview__item strong,.mini-card strong,.metric-card strong{display:block;margin-top:.18rem;font-size:.94rem}.chart-card__header{display:flex;justify-content:space-between;gap:.65rem;align-items:baseline;margin-bottom:.35rem;padding-right:130px}.chart-card__header span{color:var(--muted);font-size:.78rem}.chart-card__header strong{font-size:.84rem}.chart-card__actions{position:absolute;top:.55rem;right:.55rem;display:flex;gap:.3rem;z-index:2;opacity:0;pointer-events:none}.chart-card--interactive:hover .chart-card__actions,.chart-card--interactive:focus-within .chart-card__actions,.chart-card--shadowbox .chart-card__actions{opacity:1;pointer-events:auto}.icon-button{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#fffdfaf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.icon-button--solid{background:#ffffffe6}.icon-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.field{display:flex;flex-direction:column;gap:.4rem;min-width:0}.field__row{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.field__label{font-size:.83rem;font-weight:600}.field__hint{color:var(--muted);font-size:.72rem;line-height:1.35}.inline-input{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.inline-input span{font-size:.8rem;font-weight:600;color:var(--ink)}.inline-input input{width:112px;padding:.46rem .5rem}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:999px;background:#fffc;border:1px solid var(--line);font-size:.72rem}.pill--ok{background:var(--success-soft);border-color:#16653429}.pill--warn{background:var(--amber-soft);border-color:#b4530929}.table-wrap{margin-top:.65rem;overflow:auto}.accordion{border:1px solid var(--line);border-radius:12px;background:#ffffff80}.accordion[open]{background:#ffffffa8}.accordion__summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.78rem .88rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.accordion__summary::-webkit-details-marker{display:none}.dense-table{font-size:.81rem}.warning-list{margin:.75rem 0 0;padding-left:1.2rem;color:#7c2d12}.line-chart-wrap{display:grid;gap:.45rem}.line-chart{width:100%;height:110px}.line-chart--expanded{height:min(76vh,760px)}.line-chart__line{fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.line-chart__grid{stroke:#1e2a2314;stroke-width:1}.line-chart__axis{stroke:#1e2a233d;stroke-width:1}.line-chart__axis-label{fill:var(--muted);font-size:.72rem}.line-chart__legend{display:flex;flex-wrap:wrap;gap:.45rem .7rem}.line-chart__legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--muted)}.line-chart__legend-item i{width:10px;height:10px;border-radius:999px;display:inline-block}.shadowbox{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:8px;background:#16141099;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shadowbox__panel{position:relative;width:min(100%,1800px);height:calc(100vh - 16px);z-index:1}.schedule-stack{display:grid;gap:.75rem;margin-top:.75rem}.schedule-list{display:grid;gap:.6rem;margin-top:.7rem}.schedule-row{display:grid;grid-template-columns:auto auto auto;gap:.6rem;align-items:end}.button-danger{align-self:end}.report-block{border-style:dashed}.report-pairs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}.report-pair{padding:.7rem;border:1px solid var(--line);border-radius:12px;background:#ffffff9e}.report-pair span{display:block;color:var(--muted);font-size:.78rem}.report-pair strong{display:block;margin-top:.16rem}.error-text{color:#b91c1c;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(max-width:1100px){.hero,.workspace{grid-template-columns:1fr}.sidebar,.filter-bar{position:static}.market-list--scroll{max-height:none}.curve-grid--compact{grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}.curve-preview--compact{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}}@media(max-width:720px){.app-shell{padding:.7rem}.hero,.panel,.sidebar,.filter-bar{padding:.8rem;border-radius:16px}th,td{padding:.5rem .58rem}.schedule-row{grid-template-columns:1fr}.inline-input{justify-content:space-between}.inline-input input{width:100%}}
