:root{--surface-0:#f5f5f5;--surface-1:#fafafa;--surface-2:#fff;--border:#d9d9d9;--border-strong:#bfbfbf;--border-accent:#acccfb;--bg-accent:#f2f7fe;--text-primary:#000;--text-secondary:#000000b8;--text-muted:#00000073;--text-accent:#33558d;--text-danger:#cf1322;--text-warning:#d48806;--bg-danger:#fff2f0;--bg-warning:#fffbe6;--bg-pass:#f6ffed;--text-pass:#389e0d;--border-pass:#b7eb8f;--border-warning:#ffe58f;--border-danger:#ffa39e;--fill-accent:#406db6;--fill-accent-hover:#33558d;--on-accent:#fff;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Public Sans,sans-serif;font-weight:300}*{box-sizing:border-box}body{background:var(--surface-0);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;font-family:Public Sans,sans-serif;font-size:14px;font-weight:300}button,input,select{font-family:inherit;font-weight:300}h1,h2{margin:0;font-weight:300}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:.5px solid var(--border);background:var(--surface-2);align-items:center;gap:16px;padding:12px 20px;display:flex}.app-header h1{font-size:24px}.app-header p{color:var(--text-secondary);margin:3px 0 0;font-size:16px}.version{color:var(--text-muted);border:.5px solid var(--border);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px}.layout{--left-col:280px;grid-template-columns:var(--left-col) minmax(0, 1fr) minmax(220px, 280px);flex:1;align-items:start;gap:12px;padding:12px;display:grid}.col{flex-direction:column;gap:12px;min-width:0;display:flex}.col-left{position:relative}.splitter{cursor:col-resize;z-index:2;background:0 0;border:0;width:12px;height:100%;padding:0;position:absolute;top:0;right:-12px}.splitter:after{content:"";background:var(--border-strong);opacity:.75;border-radius:1px;width:2px;position:absolute;top:12px;bottom:12px;left:5px}.splitter:hover:after,.splitter:focus-visible:after,body.resizing-left .splitter:after{background:var(--fill-accent);opacity:1}body.resizing-left,body.resizing-left *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.panel,.prompt,.banner,.bind{background:var(--surface-2);border:.5px solid var(--border);border-radius:var(--radius);padding:10px 12px}.banner{font-size:16px}.panel h2{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:12px}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.panel-head h2{margin-bottom:0}.panel-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.create-form{border-bottom:.5px solid var(--border);flex-direction:column;gap:0;margin-bottom:12px;padding-bottom:8px;display:flex}.cell-card{border:.5px solid var(--border);border-radius:var(--radius);background:var(--surface-1);margin-top:8px;padding:8px}.cell-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.cell-head label,.cell-fields label{margin-bottom:0}.cell-fields{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.cell-count{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);margin:8px 0 4px;font-size:12px}.res-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.res-row{align-items:center;gap:8px;font-size:14px;display:flex}.res-row span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.res-row .field{flex:0 0 10.5rem;width:10.5rem;margin:0}label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);flex-direction:column;gap:3px;margin-bottom:8px;font-size:12px;display:flex}.field{border:.5px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);text-transform:none;letter-spacing:0;border-radius:6px;padding:6px 8px;font-size:14px}.field.num{width:104px}.meta{gap:6px;margin:8px 0;display:grid}.meta div{justify-content:space-between;gap:8px;font-size:14px;display:flex}.meta dt{color:var(--text-muted)}.meta dd{margin:0}.strip{flex-wrap:wrap;gap:4px;display:flex}.chip{border:.5px solid var(--border);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;padding:2px 7px;font-size:12px;overflow:hidden}.chip.bind{border-color:var(--border-warning);background:var(--bg-warning);color:var(--text-warning)}.hint{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.45}.warn{color:var(--text-danger);background:var(--bg-danger);border:.5px solid var(--border-danger);border-radius:var(--radius);margin:0;padding:8px;font-size:14px}.prompt{color:var(--text-secondary);background:var(--bg-accent);border-color:var(--border-accent);margin:0;font-size:14px;line-height:1.45}.ribbon{background:var(--surface-1);border:.5px solid var(--border);border-radius:var(--radius);align-items:flex-end;gap:3px;height:56px;padding:4px 6px 0;display:flex}.tick{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.tick-bar{background:var(--fill-accent);border-radius:2px 2px 0 0;width:70%;min-height:2px}.tick.hot .tick-bar{background:var(--text-danger)}.tick.bind .tick-bar{background:var(--text-warning)}.tick.gated .tick-bar{background:var(--text-muted)}.tick-ceil{background:var(--text-primary);opacity:.35;height:1px;position:absolute;left:10%;right:10%}.propose{flex-wrap:wrap;gap:8px;display:flex}.propose label{margin:0}.banner.fits_within_slack{background:var(--bg-pass);border-color:var(--border-pass);color:var(--text-pass)}.banner.breaches_ceiling{background:var(--bg-warning);border-color:var(--border-warning);color:var(--text-warning)}.banner.infeasible{background:var(--bg-danger);border-color:var(--border-danger);color:var(--text-danger)}.kpis{flex-wrap:wrap;gap:6px;display:flex}.kpi{border:.5px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:2px;min-width:110px;padding:5px 8px;display:flex}.kpi span{color:var(--text-muted);font-size:12px}.kpi strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:300}.kpi.warn{background:var(--bg-warning);border-color:var(--border-warning)}.bind{border-color:var(--border-warning);background:var(--bg-warning);flex-direction:column;gap:2px;font-size:16px;display:flex}.bind strong{font-weight:300}.bars,.levers{flex-direction:column;gap:6px;display:flex}.bar{grid-template-columns:minmax(0,1.4fr) minmax(80px,2fr) 108px;align-items:center;gap:8px;font-size:14px;display:grid}.bar-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.track{background:var(--surface-0);border:.5px solid var(--border);border-radius:99px;height:10px;position:relative;overflow:hidden}.fill{position:absolute;top:0;bottom:0}.fill.before{background:var(--fill-accent);opacity:.45;left:0}.fill.delta{background:var(--fill-accent)}.bar.breach .fill.delta,.bar.infeasible .fill.delta{background:var(--text-danger)}.ceil{background:var(--text-primary);width:1px;position:absolute;top:-2px;bottom:-2px}.bar-rho{font-variant-numeric:tabular-nums;color:var(--text-secondary);text-align:right}.lever{text-align:left;border:.5px solid var(--border);background:var(--surface-2);border-radius:var(--radius);cursor:pointer;color:inherit;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.lever:hover,.lever.on{border-color:var(--border-accent);background:var(--bg-accent)}.lever strong{font-size:16px;font-weight:300}.lever-meta{color:var(--text-muted);font-size:12px}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border:.5px solid var(--border-strong);background:var(--surface-2);border-radius:var(--radius);cursor:pointer;color:var(--text-primary);padding:6px 12px;font-size:14px}.btn:hover:not(:disabled){background:var(--surface-1)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--fill-accent);border-color:var(--fill-accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--fill-accent-hover)}.slip{border-bottom:.5px solid var(--border);justify-content:space-between;gap:12px;padding:4px 0;font-size:14px;display:flex}@media (width<=1100px){.layout{grid-template-columns:1fr}.splitter{display:none}}
