*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d1117;--bg2: #161b27;--bg3: #1e2535;--border: #2d3748;--border2: #3d4a60;--text: #e2e8f0;--text2: #a0aec0;--text3: #6b7280;--blue: #4f8ef7;--orange: #f7924f;--green: #4ff78e;--purple: #c97ef7;--pink: #f74fa8;--gold: #ffd700;--radius: 10px;--radius-sm: 6px;--shadow: 0 4px 24px rgba(0,0,0,.4);--font: "Inter", "Segoe UI", system-ui, sans-serif;--mono: "JetBrains Mono", "Fira Code", "Consolas", monospace}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding:24px 20px 48px;max-width:980px;margin:0 auto;width:100%}.navbar{position:sticky;top:0;z-index:100;background:#0d1117f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 24px;height:56px}.navbar-brand{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:700;font-size:16px;white-space:nowrap;margin-right:16px}.brand-icon{font-size:22px;color:var(--blue)}.brand-amp{color:var(--orange)}.navbar-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}.navbar-tabs::-webkit-scrollbar{display:none}.nav-tab{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text3);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .18s}.nav-tab:hover{background:var(--bg3);color:var(--text2)}.nav-tab.active{background:var(--blue);color:#fff;font-weight:600}.tab-icon{font-size:15px}.page{display:flex;flex-direction:column;gap:20px}.page-header{border-bottom:1px solid var(--border);padding-bottom:16px}.page-title{font-size:26px;font-weight:700;background:linear-gradient(135deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:4px}.page-subtitle{color:var(--text2);font-size:15px}.math{font-family:var(--mono);font-size:17px}.signals-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.signals-row>*{flex:1;min-width:240px}.conv-operator{display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--text3);padding-top:40px;flex:0 0 auto;min-width:40px}.deconv-row{align-items:flex-start}.deconv-operator{display:flex;align-items:center;justify-content:center;font-size:42px;color:var(--orange);padding-top:50px;flex:0 0 auto;min-width:44px}.signal-role-label{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}.signal-input-card{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden}.signal-input-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;flex-wrap:wrap}.signal-type-select{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;cursor:pointer;flex:1;min-width:160px}.signal-description{padding:4px 14px 8px;font-size:11px;color:var(--text3);border-bottom:1px solid var(--border)}.signal-params{padding:10px 14px;display:flex;flex-direction:column;gap:8px}.param-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.param-label{font-size:12px;color:var(--text2);white-space:nowrap;flex:1}.param-input{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;width:100px;text-align:right;font-family:var(--mono)}.param-text{width:160px;text-align:left}.param-input:focus{outline:none;border-color:var(--blue)}.custom-preview{font-size:11px;color:var(--text3);padding-top:4px}.range-controls{display:flex;gap:20px;align-items:center;padding:12px 16px;background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);flex-wrap:wrap}.range-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2)}.range-input{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;width:70px;text-align:center;font-family:var(--mono)}.range-input:focus{outline:none;border-color:var(--blue)}.mode-tabs{display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:0;flex-wrap:wrap}.mode-tab{padding:8px 18px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text3);font-size:14px;font-weight:500;cursor:pointer;transition:all .18s;margin-bottom:-1px}.mode-tab:hover{color:var(--text2)}.mode-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.result-section{display:flex;flex-direction:column;gap:16px}.plot-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.result-plot{border-color:var(--green);box-shadow:0 0 0 1px #4ff78e1a}.values-table-wrapper{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.section-title{font-size:14px;font-weight:600;color:var(--text2);margin-bottom:10px}.values-table-scroll{overflow-x:auto}.values-table{border-collapse:collapse;font-size:12px;font-family:var(--mono);white-space:nowrap}.values-table th,.values-table td{padding:5px 10px;border:1px solid var(--border);text-align:center}.values-table th{background:var(--bg3);color:var(--text3);font-weight:600}.values-table td:first-child{color:var(--text2);font-weight:600;background:var(--bg3)}.info-boxes{display:flex;gap:12px;flex-wrap:wrap}.info-box{flex:1;min-width:150px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.info-box-label{font-size:11px;color:var(--text3);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.info-box-value{font-size:17px;font-weight:700;font-family:var(--mono)}.stepbystep-section{display:flex;flex-direction:column;gap:16px}.step-explanation{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;font-size:14px;color:var(--text2);line-height:1.7}.step-explanation h3{color:var(--text);margin-bottom:8px;font-size:14px}.conv-step-viewer{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.step-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.step-btn{background:var(--bg3);color:var(--text2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;font-size:16px;cursor:pointer;transition:all .15s}.step-btn:hover:not(:disabled){background:var(--blue);color:#fff;border-color:var(--blue)}.step-btn:disabled{opacity:.3;cursor:default}.step-counter{display:flex;align-items:center;gap:8px;text-align:center}.step-label{font-size:13px;color:var(--text3)}.step-n{font-size:22px;font-weight:800;color:var(--green);font-family:var(--mono)}.step-slider{width:100%;accent-color:var(--blue);cursor:pointer}.step-formula-box{background:var(--bg3);border-bottom:1px solid var(--border);padding:12px 16px}.step-formula-title{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.step-formula{font-size:15px;font-family:var(--mono);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sf-y{font-weight:800;font-size:17px}.step-products{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.step-product-chip{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:12px;font-family:var(--mono)}.conv-step-viewer .plot-card{border-radius:0;border:none;border-top:1px solid var(--border)}.conv-step-viewer>div:last-child{padding:12px}.deconv-info-banner{display:flex;gap:12px;align-items:flex-start;background:#4f8ef714;border:1px solid rgba(79,142,247,.25);border-radius:var(--radius);padding:12px 16px;font-size:13px;color:var(--text2);line-height:1.6}.info-icon{font-size:18px;color:var(--blue);flex-shrink:0}.verification-box{background:var(--bg2);border:1px solid rgba(79,247,142,.25);border-radius:var(--radius);padding:14px}.verif-title{font-size:13px;font-weight:600;color:var(--green);margin-bottom:10px}.verif-note{font-size:12px;margin-top:8px}.toggle-steps-btn{align-self:flex-start;background:var(--bg3);color:var(--text2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 14px;font-size:13px;cursor:pointer;transition:all .15s}.toggle-steps-btn:hover{border-color:var(--blue);color:var(--blue)}.deconv-steps{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px}.deconv-step-item{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border)}.deconv-step-item:last-child{border-bottom:none}.deconv-step-n{font-family:var(--mono);font-size:13px;color:var(--orange);font-weight:600;min-width:40px;flex-shrink:0}.deconv-step-formula{font-size:12px;font-family:var(--mono);color:var(--text2)}.error-box{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);padding:14px 16px;color:#f87171;font-size:14px}.corr-formula-box{text-align:center;padding:14px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius)}.corr-formula{font-family:var(--mono);font-size:18px;color:var(--text)}.corr-note{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;font-size:13px;color:var(--text2);line-height:1.7}.props-tabs{display:flex;gap:6px;flex-wrap:wrap}.property-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:14px}.prop-formula-header{display:flex;flex-direction:column;gap:6px}.prop-title{font-size:20px;font-weight:700;color:var(--text)}.prop-formula{font-size:18px;font-family:var(--mono);color:var(--blue);background:#4f8ef714;border:1px solid rgba(79,142,247,.2);border-radius:var(--radius-sm);padding:10px 16px;display:inline-block}.prop-description{font-size:14px;color:var(--text2);line-height:1.6}.prop-row{display:flex;gap:12px;flex-wrap:wrap}.prop-col{flex:1;min-width:200px}.diff-badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;font-family:var(--mono);font-weight:600}.diff-badge.ok{background:#4ff78e1a;border:1px solid rgba(79,247,142,.3);color:var(--green)}.diff-badge.fail{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.energy-grid{display:flex;gap:12px;flex-wrap:wrap}.energy-card{flex:1;min-width:140px;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--radius);padding:14px}.energy-stat{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;color:var(--text2)}.energy-stat strong{font-family:var(--mono)}.theory-layout{display:flex;gap:20px;align-items:flex-start}.theory-nav{display:flex;flex-direction:column;gap:2px;min-width:160px;position:sticky;top:72px}.theory-nav-btn{background:transparent;color:var(--text3);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:all .15s}.theory-nav-btn:hover{background:var(--bg3);color:var(--text2)}.theory-nav-btn.active{background:var(--blue);color:#fff;font-weight:600}.theory-content{flex:1;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.theory-block h2{font-size:20px;font-weight:700;color:var(--text);margin-bottom:12px}.theory-block h3{font-size:15px;font-weight:600;color:var(--blue);margin:16px 0 8px}.theory-block p{font-size:14px;color:var(--text2);line-height:1.75;margin-bottom:8px}.theory-block ul,.theory-block ol{padding-left:20px;color:var(--text2);font-size:14px;line-height:2}.theory-formula{font-family:var(--mono);font-size:14px;background:var(--bg3);border-left:3px solid var(--blue);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:12px 16px;margin:12px 0;color:var(--text);line-height:2}.theory-highlight{background:#4f8ef71f;color:var(--blue);padding:1px 5px;border-radius:4px;font-weight:500}.theory-tip{background:#ffd7000f;border:1px solid rgba(255,215,0,.2);border-radius:var(--radius);padding:12px 16px;font-size:14px;color:var(--text2);margin:12px 0}.theory-steps{padding-left:20px;color:var(--text2);font-size:14px}.theory-steps li{margin-bottom:10px;line-height:1.65}.empty-state{text-align:center;padding:40px;color:var(--text3);font-size:15px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}.mode-toggle-row{display:flex;align-items:center;gap:12px}.mode-toggle{display:flex;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.mode-toggle-btn{padding:8px 20px;background:transparent;border:none;color:var(--text3);font-size:13px;font-weight:500;cursor:pointer;transition:all .18s}.mode-toggle-btn.active{background:var(--blue);color:#fff;font-weight:600}.mode-toggle-btn:hover:not(.active){color:var(--text2);background:var(--bg2)}.chain-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chain-add-btn{padding:7px 16px;background:var(--bg3);border:1.5px dashed var(--green);border-radius:var(--radius-sm);color:var(--green);font-size:13px;cursor:pointer;transition:all .18s}.chain-add-btn:hover{background:#4ff78e14}.signals-chain{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.chain-signal-wrap{flex:1;min-width:220px}.chain-signal-label{display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:700;margin-bottom:6px;font-family:var(--mono)}.chain-remove-btn{background:transparent;border:1px solid #ef444488;border-radius:50%;color:#ef4444;width:20px;height:20px;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.chain-remove-btn:hover{background:#ef444422}.chain-operator{font-size:32px;color:var(--text3);padding-top:48px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-width:32px}.intermediate-results{display:flex;flex-direction:column;gap:8px}.step-pair-selector{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:8px}.play-btn{background:var(--green)!important;color:#0a0a0a!important;border-color:var(--green)!important;font-size:14px!important;min-width:44px}.play-btn.playing{background:var(--orange)!important;border-color:var(--orange)!important}.play-btn:hover:not(:disabled){opacity:.85}.step-speed-row{display:flex;gap:4px;align-items:center}.speed-btn{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text3);padding:3px 8px;font-size:11px;cursor:pointer;transition:all .15s}.speed-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.speed-btn:hover:not(.active){color:var(--text2)}.piecewise-editor{padding:10px 14px;display:flex;flex-direction:column;gap:8px}.piecewise-header{font-size:11px;color:var(--text3)}.piecewise-header code{color:inherit;font-family:var(--mono);background:var(--bg3);padding:1px 4px;border-radius:3px}.piecewise-segments{display:flex;flex-direction:column;gap:4px}.piecewise-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pw-input{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:4px 6px;font-size:12px;font-family:var(--mono)}.pw-num{width:68px;text-align:center}.pw-expr{width:110px;flex:1}.pw-sep{font-size:12px;color:var(--text3);white-space:nowrap}.pw-del-btn{background:transparent;border:1px solid #ef444466;border-radius:50%;color:#ef4444;width:20px;height:20px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.pw-del-btn:hover{background:#ef444422}.piecewise-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pw-add-btn{background:transparent;border:1.5px dashed;border-radius:var(--radius-sm);padding:5px 12px;font-size:12px;cursor:pointer;transition:all .15s}.piecewise-preview{font-size:10px;color:var(--text3);padding-top:4px;font-family:var(--mono);flex-wrap:wrap;display:flex;gap:6px}.ops-layout{display:flex;gap:20px;align-items:flex-start}.ops-left{flex:0 0 320px;display:flex;flex-direction:column;gap:12px}.ops-right{flex:1;display:flex;flex-direction:column;gap:16px}.ops-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px}.ops-arrow{text-align:center;font-size:12px;color:var(--text3);font-family:var(--mono);background:var(--bg3);border-radius:var(--radius-sm);padding:6px 10px}.toggle-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);cursor:pointer}.toggle-label input[type=checkbox]{accent-color:var(--blue);width:16px;height:16px}.combine-ops-row{display:flex;gap:8px}.combine-op-btn{flex:1;padding:8px 12px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text2);font-size:14px;cursor:pointer;transition:all .15s;font-weight:500}.combine-op-btn.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.combine-op-btn:hover:not(.active){border-color:var(--text3);color:var(--text)}.calc-layout{display:flex;gap:20px;align-items:flex-start}.calc-sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;position:sticky;top:72px;max-height:calc(100vh - 88px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding-right:2px}.calc-sidebar::-webkit-scrollbar{width:4px}.calc-sidebar::-webkit-scrollbar-track{background:transparent}.calc-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.calc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.calc-sidebar .signals-chain{flex-direction:column;flex-wrap:nowrap}.calc-sidebar .chain-signal-wrap{min-width:unset;flex:none;width:100%}.calc-sidebar .chain-operator{font-size:22px;padding:2px 0;align-self:center}@media (max-width: 860px){.calc-layout{flex-direction:column}.calc-sidebar{width:100%;position:static;max-height:none;overflow-y:visible}.calc-sidebar .signals-chain{flex-direction:row;flex-wrap:wrap}.calc-sidebar .chain-signal-wrap{min-width:220px;flex:1}}@media (max-width: 680px){.navbar{padding:0 12px}.brand-text,.tab-label{display:none}.tab-icon{font-size:18px}.main-content{padding:16px 12px 32px}.theory-layout{flex-direction:column}.theory-nav{flex-direction:row;flex-wrap:wrap;position:static}.signals-row{flex-direction:column}.conv-operator,.deconv-operator{padding-top:4px;align-self:center}.ops-layout{flex-direction:column}.ops-left{flex:none;width:100%}}
