:root{scrollbar-gutter:stable;--bg-main:#0a0a0a;--bg-panel:#121211;--bg-panel-alt:#171716;--border:#252423;--border-soft:#1c1c1b;--text-main:#eeebe6;--text-dim:#999794;--text-mute:#6e6d6b;--accent:#8ab4f8;--accent-hover:#aecbfa;--gradient-base:linear-gradient(135deg, #8ab4f80d 0%, #c58af80d 100%);--gradient-active:linear-gradient(135deg, #8ab4f840 0%, #c58af840 100%);--warn:#fbd24d;--danger:#f67a7a;--success:#6be39f;--font-sans:"Inter", system-ui, sans-serif;--shadow-soft:0 8px 40px #000000d9;--shadow-sm:0 4px 16px #0009}[data-theme=light]{--bg-main:#fcfcfb;--bg-panel:#fff;--bg-panel-alt:#f8f8f6;--border:#eeedea;--border-soft:#f4f3f1;--text-main:#1f1e1c;--text-dim:#5c5b59;--text-mute:#82817e;--accent:#2563eb;--accent-hover:#1d4ed8;--gradient-base:linear-gradient(135deg, #2563eb08 0%, #9333ea08 100%);--gradient-active:linear-gradient(135deg, #2563eb26 0%, #9333ea26 100%);--warn:#d97706;--danger:#dc2626;--success:#16a34a;--shadow-soft:0 8px 40px #0000001f;--shadow-sm:0 4px 16px #00000014}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-main);color:var(--text-main);font-family:var(--font-sans);padding-bottom:80px;font-size:16px;line-height:1.5;transition:background-color .3s,color .3s}::selection{background:#8ab4f84d}#global-tooltip{background:var(--bg-panel-alt);border:1px solid var(--border);color:var(--text-main);z-index:1000;pointer-events:none;opacity:0;visibility:hidden;border-radius:10px;max-width:320px;padding:12px 16px;font-size:14px;transition:opacity .2s,transform .2s,visibility .2s;position:fixed;transform:translateY(-10px);box-shadow:0 8px 24px #00000080}#global-tooltip.show{opacity:1;visibility:visible;transform:translateY(0)}header{z-index:50;background:var(--bg-main);border-bottom:1px solid var(--border);padding:16px 32px;transition:background-color .3s,border-color .3s;position:sticky;top:0}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1540px;margin:0 auto;display:flex}.brand{align-items:center;display:flex}.brand h1{letter-spacing:.5px;color:var(--text-main);margin:0;font-size:22px;font-weight:700}.top-controls{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:flex}.btn,.icon-btn{height:40px;font-size:14px;font-weight:600;font-family:var(--font-sans);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.btn{cursor:pointer;border:none;padding:0 20px;transition:all .2s}.icon-btn{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-main);cursor:pointer;padding:0 16px;transition:all .2s}.icon-btn:hover{background:var(--bg-panel-alt);border-color:var(--accent);color:var(--accent)}nav.tabs{background:var(--bg-panel);border:1px solid var(--border);scrollbar-width:none;border-radius:10px;align-items:center;gap:4px;max-width:100%;min-height:42px;padding:4px;display:flex;overflow:auto hidden}nav.tabs::-webkit-scrollbar{display:none}nav.tabs button{font-family:var(--font-sans);white-space:nowrap;cursor:pointer;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;height:32px;padding:0 16px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}nav.tabs button.active{background:var(--gradient-active);color:var(--accent);border:1px solid #8ab4f833}nav.tabs button:not(.active):hover{color:var(--text-main)}.clear-btn{color:var(--text-mute);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:18px;line-height:1;display:flex;position:absolute;right:8px}.clear-btn:hover{color:var(--danger);background:#f67a7a1a}main{max-width:1540px;margin:0 auto;padding:24px 32px}.view{animation:.3s fadeIn;display:none}.view.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--bg-panel);border:1px solid var(--border);background-image:var(--gradient-base);border-radius:12px;flex-direction:column;margin-bottom:24px;transition:border-color .3s,background-color .3s;display:flex}.card:hover{border-color:#8ab4f84d}.card-head{border-bottom:1px solid var(--border);padding:12px 16px}.card-head h3{letter-spacing:.5px;text-transform:uppercase;color:var(--text-mute);margin:0;font-size:14px;font-weight:600}.card-body{flex-grow:1;padding:16px}.scenario-bar{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;padding:16px;display:flex}.scenario-bar .name-field{flex:1;min-width:250px}.scenario-bar label{color:var(--text-dim);margin-bottom:6px;font-size:13px;font-weight:500;display:block}input[type=text],select,input[type=number]{background:var(--bg-panel-alt);border:1px solid var(--border);width:100%;color:var(--text-main);font-size:16px;font-weight:500;font-family:var(--font-sans);border-radius:8px;padding:10px 14px;transition:all .2s}input:focus,select:focus{border-color:var(--accent);background:var(--bg-main);outline:none;box-shadow:0 0 0 2px #8ab4f826}.btn-primary{background:var(--accent);color:#fff}[data-theme=dark] .btn-primary{color:#000}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 10px #8ab4f833}.btn-secondary{background:var(--bg-panel-alt);color:var(--text-main);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-danger-ghost{color:var(--text-mute);background:0 0;border-radius:6px;padding:6px}.btn-danger-ghost:hover{color:var(--danger);background:#f67a7a1a}.stat-strip{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:16px 20px}.stat-card .k{text-transform:uppercase;color:var(--text-mute);font-size:13px;font-weight:600}.stat-card .v{font-family:var(--font-sans);font-variant-numeric:tabular-nums;margin-top:6px;font-size:26px;font-weight:700}.stat-card .v .u{color:var(--text-dim);font-size:15px;font-weight:500}.section-tabs{flex-wrap:wrap;gap:6px;padding:12px 12px 0;display:flex}.section-tabs button{color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .2s;display:flex;position:relative;top:1px}.section-tabs button.active{background:var(--bg-panel-alt);color:var(--accent);border:1px solid var(--border);border-bottom:1px solid var(--bg-panel-alt)}.section-tabs button:not(.active):hover{color:var(--text-main)}.section-panels{background:var(--bg-panel-alt);border-top:1px solid var(--border);border-radius:0 0 12px 12px}.section-panel{padding:24px 20px;display:none}.section-panel.active{animation:.15s fadeIn;display:block}.field-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.field{flex-direction:column;display:flex}.field .flabel-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.field label{color:var(--text-main);align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.field .unit{color:var(--text-mute);background:var(--bg-main);border-radius:4px;padding:3px 6px;font-size:12px;font-weight:600}.info-btn{border:1px solid var(--text-mute);width:18px;height:18px;color:var(--text-mute);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:all .2s;display:inline-flex}.info-btn:hover{border-color:var(--accent);color:var(--accent);background:#8ab4f81a}.output-grid{gap:16px;margin-top:24px;margin-bottom:24px;display:grid}@media (min-width:1200px){.output-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:1199px) and (min-width:768px){.output-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:767px){.output-grid{grid-template-columns:1fr}}.out-row{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.out-row:last-child{border-bottom:none}.out-row .lbl{color:var(--text-dim);font-size:14px;font-weight:500}.out-row .val-wrap{align-items:center;gap:8px;display:flex}.out-row .val{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.out-row .val .u{color:var(--text-mute);font-size:13px;font-weight:500}.badge{letter-spacing:.5px;text-transform:uppercase;border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:11px;font-weight:700;display:inline-flex}.badge-ok{color:var(--success);background:#6be39f1a;border:1px solid #6be39f33}.badge-warn{color:var(--warn);background:#fbd24d1a;border:1px solid #fbd24d33}.badge-danger{color:var(--danger);background:#f67a7a1a;border:1px solid #f67a7a33}.badge-info{color:var(--accent);background:#8ab4f81a;border:1px solid #8ab4f833}.chart-grid{gap:24px;margin-top:16px;margin-bottom:32px;display:grid}@media (min-width:1024px){.chart-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1023px){.chart-grid{grid-template-columns:1fr}}.chart-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:100%;padding:20px;display:flex}.chart-card h4{color:var(--text-main);margin:0 0 16px;font-size:15px;font-weight:700}.chart-container{flex-grow:1;width:100%;height:350px;position:relative}svg.chart{width:100%;height:100%;overflow:visible}.grid-line{stroke:var(--border-soft);stroke-width:1px}.axis-label{font-family:var(--font-sans);fill:var(--text-mute);font-size:12px;font-weight:500}.chart-overlay{fill:#0000;cursor:default}.chart-tooltip{background:var(--bg-panel-alt);border:1px solid var(--border);font-size:14px;font-family:var(--font-sans);font-variant-numeric:tabular-nums;pointer-events:none;opacity:0;z-index:10;min-width:160px;color:var(--text-main);border-radius:8px;padding:12px 16px;transition:opacity .15s;position:absolute;transform:translate(-50%,-110%);box-shadow:0 8px 24px #0006}.chart-tooltip.active{opacity:1}.tt-color{border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.notice{border:1px solid var(--warn);color:var(--warn);background:var(--bg-panel);border-radius:8px;margin:16px 0;padding:12px 16px}.scenario-load{min-width:0;color:inherit;font:inherit;text-align:start;background:0 0;border:0;flex:1;padding:0}.scenario-load .name,.scenario-load .meta{display:block}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.empty-box{border:2px dashed var(--border);text-align:center;color:var(--text-mute);border-radius:12px;padding:40px 20px;font-size:15px;font-weight:500}.scenario-item{background:var(--bg-panel-alt);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:14px 18px;transition:all .2s;display:flex}.scenario-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scenario-load{overflow-wrap:anywhere;flex-basis:220px}.export-toolbar{justify-content:flex-end;margin-bottom:16px;display:flex}button:disabled{opacity:.55}.scenario-item:hover{background:var(--bg-panel);border-color:#8ab4f866}.scenario-item.active{border-color:var(--accent);background:var(--gradient-active)}.scenario-item .name{color:var(--text-main);font-size:16px;font-weight:600}.scenario-item .meta{color:var(--text-dim);margin-top:4px;font-size:14px}.compare-pills{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.pill{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s}.pill:hover{background:var(--bg-panel-alt);color:var(--text-main)}.pill.active{border-color:var(--accent);background:var(--gradient-active);color:var(--accent)}.table-wrap{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;margin-bottom:24px;overflow-x:auto}table.compare-table{border-collapse:collapse;width:100%;font-size:14px}table.compare-table th,table.compare-table td{text-align:left;border-bottom:1px solid var(--border-soft);padding:14px 18px}table.compare-table thead th{background:var(--bg-panel-alt);color:var(--text-main);font-size:15px;font-weight:600}table.compare-table tbody th{color:var(--text-dim);font-weight:500}table.compare-table tbody td{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:500}#logo-light{display:none}#logo-dark{display:block}[data-theme=light] #logo-dark{display:none}[data-theme=light] #logo-light{display:block}.card,.stat-card,.scenario-bar,.chart-card,.table-wrap{box-shadow:var(--shadow-soft)}.btn,.icon-btn,nav.tabs,.scenario-item,.pill{box-shadow:var(--shadow-sm)}:root{--save-subtle-gradient:linear-gradient(135deg, #6be39f38 0%, #c58af838 100%)}[data-theme=light]{--save-subtle-gradient:linear-gradient(135deg, #16a34a24 0%, #9333ea24 100%)}#global-tooltip{overflow-wrap:anywhere;position:fixed}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.card,.card-body,.field,.out-row,.out-row .lbl,.out-row .val-wrap{min-width:0}main{padding-top:17px}.scenario-bar,.stat-strip{gap:17px;margin-bottom:17px}.output-grid{align-items:stretch;gap:17px;margin-top:17px;margin-bottom:0}.output-grid>.card{height:100%;margin-bottom:0}.field-grid{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),224px));justify-content:start;align-items:start;gap:17px}.field .flabel-row{align-items:flex-start;gap:8px;min-height:24px}.field label{overflow-wrap:anywhere;min-width:0}.field .unit{flex:none}.input-wrap{align-items:center;min-width:0;display:flex;position:relative}.input-wrap input{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-right:38px;overflow:hidden}.input-wrap input:placeholder-shown+.clear-btn{display:none}.clear-btn{top:50%;transform:translateY(-50%)}.out-row{align-items:flex-start;gap:12px}.out-row .lbl{overflow-wrap:anywhere}.out-row .val-wrap{text-align:right;flex-wrap:wrap;justify-content:flex-end}.advanced-settings{border-top:1px solid var(--border);margin-top:20px;padding-top:12px}.advanced-settings summary{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;font-weight:600;list-style:none;display:inline-flex}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings .field-grid{margin-top:17px}.advanced-plus{border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;line-height:1;transition:transform .2s;display:inline-flex}.advanced-settings[open] .advanced-plus{transform:rotate(45deg)}[data-tooltip]{cursor:default}.field [data-tooltip],.out-row[data-tooltip] .lbl,.compare-table th[data-tooltip],.chart-card h4[data-tooltip]{transition:color .16s,filter .16s}.field [data-tooltip]:hover,.out-row[data-tooltip]:hover .lbl,.compare-table th[data-tooltip]:hover,.chart-card h4[data-tooltip]:hover{color:var(--text-main);filter:brightness(1.08)}.chart-selector{margin-top:17px;margin-bottom:0}.chart-selector-label{color:var(--text-dim);margin-bottom:12px;font-size:14px;font-weight:500;display:block}.chart-selector .compare-pills{margin-bottom:0;display:flex}.chart-grid{gap:17px;margin-top:17px;margin-bottom:17px}.table-wrap{margin-bottom:17px!important}#btnCalculate,#saveBtn{text-shadow:none;box-shadow:var(--shadow-sm)}#btnCalculate{border:1px solid #8ab4f847;background:var(--gradient-active)!important;color:var(--accent)!important}#saveBtn{border:1px solid #6be39f47;background:var(--save-subtle-gradient)!important;color:var(--success)!important}.chart-tooltip{max-width:calc(100% - 16px);transform:none}.chart-tooltip,.chart-tooltip *{white-space:nowrap}.chart-tooltip .tt-head{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:6px;font-size:14px}.chart-tooltip .tt-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:4px;font-size:14px;display:flex}.chart-tooltip .tt-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.chart-tooltip .tt-value{flex:none}.chart-overlay{cursor:none}.chart-marker{pointer-events:none;filter:drop-shadow(0 0 2px #ffffffeb)drop-shadow(0 0 5px #e060f2b8)}#cursor-particle-layer{z-index:99998;pointer-events:none;position:fixed;inset:0}#app-cursor-dot{z-index:100000;pointer-events:none;opacity:0;background:linear-gradient(135deg,#62a8ff 0%,#b77bff 100%);border:1px solid #ffffffd1;border-radius:50%;width:12px;height:12px;transition:opacity .1s,width 80ms,height 80ms,box-shadow .15s;display:none;position:fixed;top:0;left:0;box-shadow:0 0 3px #ffffffeb,0 0 9px #639bffe0,0 0 15px #b77bff8f}#app-cursor-dot.snapped{box-shadow:0 0 4px #fffffff5,0 0 12px #639bfff2,0 0 20px #b77bffb3}.cursor-toggle{width:36px;height:36px;color:inherit;background:0 0;border:0;flex:0 0 36px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.cursor-toggle-ring{background:linear-gradient(135deg,#62a8ffa3,#b77bffa3);border-radius:50%;width:22px;height:22px;transition:background .2s,box-shadow .2s,transform .2s;position:relative;box-shadow:0 0 0 1px #8ab4f82e}.cursor-toggle-ring:after{content:"";border-radius:inherit;background:var(--bg-panel);position:absolute;inset:2px}.cursor-toggle.active .cursor-toggle-ring{box-shadow:0 0 4px #ffffff6b,0 0 9px #639bff7a,0 0 14px #b77bff52}.cursor-toggle:not(.active) .cursor-toggle-ring{background:var(--text-mute);box-shadow:0 0 0 1px var(--border)}.cursor-toggle.burst-on .cursor-toggle-ring{animation:.55s ease-out cursor-ring-on}.cursor-toggle.burst-off .cursor-toggle-ring{animation:.55s ease-out cursor-ring-off}@keyframes cursor-ring-on{45%{transform:scale(1.14);box-shadow:0 0 5px #ffffffb3,0 0 14px #639bffe6,0 0 23px #b77bff9e}}@keyframes cursor-ring-off{45%{transform:scale(.9);box-shadow:0 0 5px #ff646ec2,0 0 17px #ff5364b3}}@media (pointer:fine){html,body,body *{cursor:none!important}#app-cursor-dot{display:block}#app-cursor-dot.visible:not(.hidden){opacity:1}#app-cursor-dot.pressed{width:10px;height:10px}}@media (max-width:520px){header,main{padding-left:16px;padding-right:16px}.scenario-bar{align-items:stretch}.scenario-bar .btn{flex:auto}.out-row{flex-direction:column}.out-row .val-wrap{text-align:left;justify-content:space-between;width:100%}.field-grid{grid-template-columns:1fr}}
