@font-face{font-family:Roboto;src:url(../fonts/roboto-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--violet: #8E3F84;--violet-bright: #C46BB4;--violet-soft: #DDA8D3;--indigo: #7A5CC8;--beam: #BC8CF2;--bg: #0E0913;--surface: #1A1226;--surface-2: #241833;--text: #F3EEF6;--muted: #B4A7BF;--line: rgba(255, 255, 255, .09);--radius: 14px;--ok: #5FBF8A;--warn: #E0A94E;--bad: #E06060;--r-color: #C46BB4;--t-color: #6FA8DC;--a-color: #E0A94E}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Roboto,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45}.app{min-height:100%;display:flex;flex-direction:column}.hdr{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:12px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(142,63,132,.12),transparent)}.hdr .brand{font-size:18px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.hdr .brand b{color:var(--violet-bright)}.hdr .beta{font-size:10px;color:var(--beam);border:1px solid var(--beam);border-radius:8px;padding:1px 7px;vertical-align:3px;margin-left:8px}.tabs{display:flex;gap:4px;margin-left:10px}.tabs button{background:none;border:1px solid transparent;color:var(--muted);padding:7px 16px;border-radius:10px;cursor:pointer;font:inherit;font-weight:500}.tabs button.on{color:var(--text);background:var(--surface-2);border-color:var(--line)}.tabs button:hover{color:var(--text)}.hdr .cta{margin-left:auto;background:var(--violet);color:#fff;border:0;padding:9px 18px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;transition:background .15s}.hdr .cta:hover{background:var(--violet-bright)}.main{display:grid;grid-template-columns:460px 1fr;gap:16px;padding:16px 22px;flex:1;align-items:start}@media (max-width: 1100px){.main{grid-template-columns:1fr}}.col{display:flex;flex-direction:column;gap:14px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card h3{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}.card h3 .hint{text-transform:none;letter-spacing:0;font-weight:400;font-size:11px}label.fld{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);min-width:0}.fld input,.fld select,.row select,.row input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px;min-width:0}.fld input:focus,.fld select:focus{outline:1px solid var(--violet);border-color:var(--violet)}.ctl-grid{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{background:var(--bg);border:0;color:var(--muted);padding:6px 12px;cursor:pointer;font:inherit;font-size:12.5px}.seg button.on{background:var(--violet);color:#fff}.chk{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);cursor:pointer}.lrow{display:grid;grid-template-columns:18px minmax(110px,1.4fr) 74px 58px 26px 26px 26px;gap:6px;align-items:center;padding:6px;border-radius:9px;border:1px solid transparent;background:var(--surface-2);margin-bottom:6px}.lrow.dragover{border-color:var(--violet-bright)}.lrow .grip{cursor:grab;color:var(--muted);font-size:15px;text-align:center;-webkit-user-select:none;user-select:none}.lrow .thin{font-size:10.5px;color:var(--muted);grid-column:2 / -1;margin-top:-2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.iconbtn{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;padding:3px;border-radius:6px;line-height:1}.iconbtn:hover{color:var(--text);background:var(--surface)}.addrow{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:7px 14px;font:inherit;font-size:12.5px;cursor:pointer}.btn:hover{border-color:var(--violet)}.btn.primary{background:var(--violet);border-color:var(--violet);font-weight:600}.btn.primary:hover{background:var(--violet-bright)}.btn:disabled{opacity:.45;cursor:default}.stackviz{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.stackviz .band{display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:11.5px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);transition:height .2s}.stackviz .amb{background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,.04) 6px,rgba(255,255,255,.04) 12px);color:var(--muted);text-shadow:none}.stackviz .sub{color:var(--text)}.notescale{font-size:10.5px;color:var(--muted);margin-top:6px;display:flex;gap:6px;align-items:center}.badge{font-size:10px;padding:1px 7px;border-radius:7px;border:1px solid;white-space:nowrap}.badge.exp{color:var(--ok);border-color:var(--ok)}.badge.calc{color:var(--warn);border-color:var(--warn)}.badge.comp{color:var(--t-color);border-color:var(--t-color)}.badge.film{color:var(--beam);border-color:var(--beam)}.badge.rex{color:var(--violet-bright);border-color:var(--violet-bright)}.banner{border:1px solid var(--warn);background:#e0a94e14;color:var(--text);border-radius:10px;padding:9px 13px;font-size:12.5px;margin-bottom:10px}.banner b{color:var(--warn)}.banner ul{margin:4px 0 0;padding-left:18px}.banner li{margin:1px 0;color:var(--muted)}.pop-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.pop{position:fixed;z-index:41;max-width:430px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:0 18px 50px #0000008c;font-size:12.5px}.pop h4{margin:0 0 8px;font-size:14px}.pop dl{margin:0;display:grid;grid-template-columns:92px 1fr;gap:4px 10px}.pop dt{color:var(--muted)}.pop dd{margin:0}.chartwrap{position:relative}.chartwrap svg{display:block;width:100%;height:auto}.legend{display:flex;gap:14px;margin:8px 2px 0;font-size:12px;align-items:center;flex-wrap:wrap}.legend .item{display:flex;gap:6px;align-items:center;cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none}.legend .item.off{opacity:.35}.legend .swatch{width:14px;height:3px;border-radius:2px}.readout{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted);font-size:11.5px}.targets td{padding:3px 4px}.targets input,.targets select{width:100%}table.targets{border-collapse:collapse;width:100%;font-size:12.5px}.targets th{text-align:left;color:var(--muted);font-weight:500;font-size:11px;padding:2px 4px}.progress{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:8px}.progress>div{height:100%;background:linear-gradient(90deg,var(--violet),var(--beam));transition:width .2s}.matgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:4px;margin-top:6px}.matgrid label{display:flex;gap:5px;align-items:center;font-size:11.5px;color:var(--muted);cursor:pointer}.footnote{color:var(--muted);font-size:11px;padding:6px 22px 16px}.footnote a{color:var(--violet-soft)}.progress.indet{margin-top:10px;position:relative}.progress.indet>div{position:absolute;width:30%;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--violet),var(--beam));animation:indet 1.2s ease-in-out infinite}@keyframes indet{0%{left:-30%}to{left:100%}}.ds-modal{max-width:min(960px,94vw);max-height:90vh;overflow:auto}.ds-preview svg{width:100%;height:auto;border-radius:8px;border:1px solid var(--line)}@media (max-width: 720px){.hdr{padding:10px 12px;gap:8px 10px}.hdr .brand{font-size:15px}.hdr .cta{margin-left:0;padding:8px 12px;font-size:12.5px}.hdr select{max-width:46vw!important}.tabs{margin-left:0}.tabs button{padding:6px 10px;font-size:12.5px}.main{padding:10px;gap:10px}.card{padding:10px}.lrow{grid-template-columns:16px minmax(84px,1fr) 58px 44px 16px 22px 22px;gap:4px;font-size:12px}.lrow input,.lrow select{padding:5px;font-size:12px}.card{overflow-x:auto}.stackviz .band{padding:0 8px;font-size:10.5px}.ctl-grid{gap:8px}.legend{font-size:11px;gap:8px}.legend .readout{margin-left:0;width:100%}.footnote{padding:6px 12px 14px}}@media print{body.print-ds>#root .app>*{display:none!important}body.print-ds .pop-back{display:none!important}body.print-ds .pop.ds-modal{display:block!important;position:static!important;max-width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;background:#fff!important;padding:0!important}body.print-ds .pop.ds-modal h4,body.print-ds .pop.ds-modal .btn,body.print-ds .pop.ds-modal .no-print,body.print-ds .pop.ds-modal div:has(>.btn){display:none!important}body.print-ds .ds-preview svg{border:0!important;border-radius:0!important}}
