:root{--color-navy:#102033;--color-ink:#243447;--color-muted:#667085;--color-line:#d9e2ec;--color-soft:#f6f8fb;--color-white:#fff;--color-blue:#2563eb;--color-blue-soft:#e8f0ff;--color-teal:#0f9f8a;--color-teal-soft:#e5f7f4;--color-orange:#d97706;--color-orange-soft:#fff2df;--color-red:#dc2626;--color-red-soft:#fee2e2;--color-red-dark:#7f1d1d;--color-red-dark-soft:#fde8e8;--color-green:#16803c;--color-green-soft:#e8f7ee;--shadow-soft:0 12px 32px #10203314}*{box-sizing:border-box}html{background:var(--color-soft);min-width:320px}body{color:var(--color-ink);background:linear-gradient(180deg, #e8f0ffb3, #f6f8fb00 320px), var(--color-soft);letter-spacing:0;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.forecasting-app{width:min(100%,1640px);margin:0 auto;padding:28px}.app-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:24px 0 28px;display:flex}.eyebrow,.section-kicker{color:var(--color-blue);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.app-header h1,.panel-heading h2{color:var(--color-navy);margin:0}.app-header h1{font-size:32px;line-height:1.15}.subtitle{max-width:780px;color:var(--color-muted);margin:10px 0 0;font-size:15px;line-height:1.6}.header-chip{border:1px solid var(--color-line);background:var(--color-white);box-shadow:var(--shadow-soft);border-radius:8px;flex:0 0 300px;padding:14px 16px}.chip-label{color:var(--color-muted);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:700;display:block}.workspace-grid{grid-template-columns:minmax(320px,360px) minmax(0,1fr) minmax(320px,360px);align-items:start;gap:18px;display:grid}.workspace-grid>*,.panel,.main-column,.result-column{min-width:0}.main-column,.result-column{gap:18px;display:grid}.panel{border:1px solid var(--color-line);box-shadow:var(--shadow-soft);background:#fffffff5;border-radius:8px}.input-panel,.flow-panel,.calculation-panel,.result-panel,.alarm-panel,.stock-bar-panel,.debug-panel{padding:18px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.panel-heading h2{font-size:18px;line-height:1.25}.auto-toggle{border:1px solid var(--color-line);color:var(--color-ink);background:var(--color-soft);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:700;display:inline-flex}.auto-toggle input{width:16px;height:16px;accent-color:var(--color-blue)}.alert{color:var(--color-red-dark);background:var(--color-red-soft);border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:12px;font-weight:700}.form-section{border-top:1px solid var(--color-line);padding:16px 0}.form-section:first-of-type{border-top:0;padding-top:0}.form-section h3,.table-heading h3{color:var(--color-navy);margin:0 0 12px;font-size:14px}.field-group{gap:7px;margin-bottom:13px;display:grid}.field-group:last-child{margin-bottom:0}.field-group label{color:#344054;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.info-dot{border:1px solid var(--color-line);width:18px;height:18px;color:var(--color-blue);background:var(--color-blue-soft);border-radius:50%;flex:0 0 18px;place-items:center;font-size:11px;font-weight:900;display:inline-grid}select,input{width:100%;min-height:40px;color:var(--color-ink);background:var(--color-white);border:1px solid #cbd5e1;border-radius:8px;outline:0;padding:0 12px;transition:border-color .15s,box-shadow .15s}select:focus,input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #2563eb1f}.input-with-unit{background:var(--color-white);border:1px solid #cbd5e1;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.input-with-unit:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px #2563eb1f}.input-with-unit input{min-height:38px;box-shadow:none;border:0;border-radius:0}.input-with-unit span{min-width:62px;color:var(--color-muted);text-align:center;white-space:nowrap;padding:0 10px;font-size:12px;font-weight:800}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field-error{min-height:16px;color:var(--color-red);margin:0;font-size:12px;font-weight:700}.field-invalid .input-with-unit,.field-invalid select,.field-invalid input{border-color:var(--color-red)}.preset-grid{gap:10px;display:grid}.preset-button{border:1px solid var(--color-line);width:100%;color:var(--color-ink);background:var(--color-white);text-align:left;border-radius:8px;gap:4px;padding:12px;display:grid}.preset-button:hover,.preset-button:focus{border-color:var(--color-blue);background:var(--color-blue-soft)}.preset-button strong{color:var(--color-navy);font-size:12px}.preset-button span{color:var(--color-muted);font-size:12px;line-height:1.4}.action-row{border-top:1px solid var(--color-line);grid-template-columns:1fr;gap:10px;padding-top:16px;display:grid}.button{letter-spacing:.04em;border:1px solid #0000;border-radius:8px;min-height:42px;padding:0 14px;font-size:12px;font-weight:900}.primary-button{color:var(--color-white);background:var(--color-blue)}.secondary-button{color:var(--color-navy);border-color:var(--color-line);background:var(--color-blue-soft)}.ghost-button{color:var(--color-ink);border-color:var(--color-line);background:var(--color-white)}.button:disabled{cursor:progress;opacity:.7}.flow-badge{color:var(--color-blue);background:var(--color-blue-soft);white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900}.flow-diagram{grid-template-columns:minmax(86px,1fr) 34px minmax(86px,1fr) 34px minmax(86px,1fr) 34px minmax(86px,1fr) 34px minmax(86px,1fr);align-items:stretch;gap:8px;min-width:0;display:grid}.flow-node{border:1px solid #0000;border-radius:8px;align-content:center;gap:7px;min-height:118px;padding:12px;display:grid}.flow-node small{color:var(--color-muted);font-weight:800;line-height:1.35}.flow-node strong{color:var(--color-navy);word-break:break-word;font-size:18px;line-height:1.25}.node-label{letter-spacing:.04em;font-size:11px;font-weight:900}.node-order{background:var(--color-blue-soft);border-color:#bfdbfe}.node-warehouse{background:#edf6ff;border-color:#93c5fd}.node-production{background:var(--color-teal-soft);border-color:#99f6e4}.node-procurement{background:var(--color-orange-soft);border-color:#fed7aa}.node-vendor{background:#f8fafc;border-color:#cbd5e1}.flow-edge{color:var(--color-muted);text-align:center;place-items:center;gap:7px;font-size:12px;font-weight:900;display:grid}.flow-edge span{overflow-wrap:anywhere}.flow-edge b{color:var(--color-navy);font-size:18px}.equation-grid,.stage-card-grid,.summary-grid{gap:10px;display:grid}.equation-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));margin-top:16px}.equation-card,.stage-card,.metric-card{border:1px solid var(--color-line);background:var(--color-white);border-radius:8px;gap:6px;min-width:0;padding:12px;display:grid}.equation-card span,.stage-card span,.metric-card span,.recommended-box span{color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:900}.equation-card strong,.stage-card strong,.metric-card strong,.recommended-box strong{min-width:0;color:var(--color-navy);word-break:break-word;font-size:18px;line-height:1.25}.factor-x{border-color:#bfdbfe}.factor-y{border-color:#99f6e4}.factor-z{border-color:#fed7aa}.final-card,.metric-card.highlight{background:#f2f4ff;border-color:#a5b4fc}.stage-card-grid{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));margin-bottom:16px}.stage-card small{color:var(--color-muted);font-weight:700}.info-panel,.debug-panel{overflow:hidden}.info-panel{border:1px solid var(--color-line);background:#fbfdff;border-radius:8px;margin:0 0 16px}details summary{color:var(--color-navy);cursor:pointer;padding:14px 16px;font-weight:900;list-style:none}details summary::-webkit-details-marker{display:none}details summary:after{content:"+";float:right;color:var(--color-blue)}details[open] summary:after{content:"-"}.formula-copy{color:var(--color-muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:0 16px 16px;display:grid}.formula-copy p{margin:0;line-height:1.45}.formula-copy strong{color:var(--color-navy)}.table-card{border:1px solid var(--color-line);background:var(--color-white);border-radius:8px;overflow:hidden}.table-card+.table-card{margin-top:16px}.table-heading{padding:14px 16px 0}.table-scroll{width:100%;min-width:0;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px}th,td{border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top;padding:12px 16px}th{color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase;background:#f8fafc;font-size:11px;font-weight:900}td{color:var(--color-ink);font-size:13px}tr:last-child td{border-bottom:0}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(138px,1fr))}.status-badge{border-radius:999px;justify-content:center;align-items:center;min-width:96px;min-height:32px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.status-normal{color:var(--color-green);background:var(--color-green-soft);border-color:#bbf7d0}.status-warning{color:#9a5a00;background:var(--color-orange-soft);border-color:#fed7aa}.status-critical{color:var(--color-red);background:var(--color-red-soft);border-color:#fecaca}.status-stockout{color:var(--color-red-dark);background:var(--color-red-dark-soft);border-color:#fca5a5}.alarm-panel{border-width:2px}.recommendation-text{color:var(--color-ink);margin:0 0 14px;font-size:14px;line-height:1.55}.recommended-box{background:#f8f9ff;border:1px dashed #a5b4fc;border-radius:8px;gap:6px;padding:14px;display:grid}.stock-bars{gap:14px;display:grid}.bar-row{grid-template-columns:132px minmax(0,1fr) 92px;align-items:center;gap:10px;display:grid}.bar-row span,.bar-row strong{color:var(--color-muted);font-size:12px;font-weight:900}.bar-row strong{color:var(--color-navy);text-align:right}.bar-track{background:#e5e7eb;border-radius:999px;height:10px;overflow:hidden}.bar-fill{border-radius:inherit;width:0;height:100%;transition:width .18s}.bar-fill.supply{background:var(--color-teal)}.bar-fill.forecast{background:var(--color-blue)}.bar-fill.safety{background:var(--color-orange)}.debug-panel pre{color:#111827;max-height:360px;margin:0;padding:0 16px 16px;font-size:12px;line-height:1.55;overflow:auto}@media (width<=1420px){.workspace-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-template-areas:"flow flow""input result""calc calc"}.main-column{display:contents}.input-panel{grid-area:input}.flow-panel{grid-area:flow}.calculation-panel{grid-area:calc}.result-column{grid-area:result;grid-template-columns:1fr;align-items:start}.result-panel,.alarm-panel,.stock-bar-panel,.debug-panel{grid-column:auto}}@media (width<=980px){.workspace-grid{grid-template-columns:1fr;grid-template-areas:"flow""result""input""calc"}.input-panel,.result-column{width:100%}.result-column{grid-column:auto;grid-template-columns:1fr}.result-panel,.alarm-panel,.stock-bar-panel,.debug-panel{grid-column:auto}}@media (width<=760px){.flow-diagram{grid-template-columns:minmax(0,1fr)}.flow-edge{min-height:38px}.flow-edge b{transform:rotate(90deg)}}@media (width<=860px){.forecasting-app{padding:18px}.app-header{align-items:start;display:grid}.app-header h1{font-size:26px}.header-chip{flex-basis:auto;width:100%}.compact-grid,.equation-grid,.stage-card-grid,.summary-grid,.formula-copy{grid-template-columns:1fr}.panel-heading{display:grid}.bar-row{grid-template-columns:1fr}.bar-row strong{text-align:left}}@media (width<=520px){.forecasting-app{padding:12px}.input-panel,.flow-panel,.calculation-panel,.result-panel,.alarm-panel,.stock-bar-panel,.debug-panel{padding:14px}.action-row{gap:8px}}
