:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;background:#fff;font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif}*{box-sizing:border-box}body{background:#f5f7fb;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}.login-screen{background:#eef3f8;grid-template-rows:56px minmax(560px,1fr) auto;min-height:100vh;display:grid}.login-topbar{z-index:2;background:#fffffff5;border-bottom:1px solid #dae2eecc;justify-content:center;align-items:center;height:56px;padding:0 56px;display:flex;box-shadow:0 4px 18px #17233d0f}.login-brand-main{color:#17233d;align-items:center;gap:10px;display:flex}.login-brand-main strong{font-size:20px;font-weight:900;line-height:1}.login-brand-main span{color:#5c6a83;border-left:1px solid #d8e1ec;padding-left:10px;font-size:14px;font-weight:700}.login-brand-mark{background:#ff9100 url(/icon.png) 50%/cover no-repeat;border-radius:7px;flex:0 0 34px;width:34px;height:34px}.login-hero{background:#101a52;grid-template-columns:minmax(0,1fr) 430px;justify-content:end;align-items:center;min-height:560px;padding:56px max(80px,50vw - 660px);display:grid;position:relative;overflow:hidden}.login-bg-img{object-fit:cover;object-position:center center;width:100%;height:100%;position:absolute;inset:0}.login-hero:before{content:"";pointer-events:none;background:linear-gradient(90deg,#020a2808 0%,#020a2805 48%,#020a2829 100%);position:absolute;inset:0}.login-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000,#09123057);height:180px;position:absolute;inset:auto 0 0}.login-panel{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;border:1px solid #ffffffb8;border-radius:8px;grid-column:2;gap:16px;width:430px;padding:32px 30px 22px;display:grid;position:relative;box-shadow:0 24px 64px #040e2838}.login-card-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.login-card-head .login-brand-mark{border-radius:8px;flex-basis:48px;width:48px;height:48px}.login-card-head h1{color:#17233d;letter-spacing:0;white-space:nowrap;margin:0;font-size:22px;font-weight:900;line-height:1.1}.login-card-head h1 span{color:#3f4a63;margin-left:6px;font-size:15px;font-weight:700}.login-panel label{color:#334155;gap:8px;font-size:14px;display:grid}.login-panel input{color:#172033;background:#fff;border:1px solid #cbd8e8;border-radius:5px;outline:none;width:100%;min-height:38px;padding:8px 12px}.primary-button.wide{width:100%;min-height:38px}.login-message{color:#64748b;margin:0;font-size:13px;line-height:1.5}.login-message:empty{display:none}.login-actions{color:#6b7894;justify-content:flex-end;min-height:22px;padding-top:4px;font-size:13px;display:flex;position:relative}.login-actions button{color:#66748e;font:inherit;background:0 0;border:0;padding:0;font-weight:700}.forgot-wrap{display:inline-flex;position:relative}.forgot-popover{color:#53627b;background:#fff;border:1px solid #dbe7f3;border-radius:8px;width:218px;padding:10px 12px;font-size:12px;line-height:1.6;position:absolute;bottom:28px;right:0;box-shadow:0 14px 36px #17233d29}.forgot-popover:after{content:"";background:#fff;border-bottom:1px solid #dbe7f3;border-right:1px solid #dbe7f3;width:10px;height:10px;position:absolute;bottom:-6px;right:22px;transform:rotate(45deg)}.login-footer{color:#8a96aa;background:#eef3f8;justify-content:center;align-items:center;gap:18px;min-height:70px;padding:18px 24px;font-size:13px;display:flex}.login-footer a{color:#66748e;text-decoration:none}.app-shell{min-height:100vh;padding:18px}.topbar{justify-content:space-between;align-items:center;gap:20px;max-width:1840px;margin:0 auto 14px;display:flex}.topbar h1{letter-spacing:0;margin:0;font-size:28px;font-weight:780;line-height:1.15}.topbar p{color:#64748b;margin:7px 0 0;font-size:14px}.primary-button{color:#fff;background:#0f766e;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 15px;font-size:14px;font-weight:700;display:inline-flex}.primary-button:disabled{cursor:not-allowed;opacity:.45}.secondary-button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:7px;justify-content:center;align-items:center;min-height:38px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.account-badge{color:#64748b;white-space:nowrap;background:#f8fafc;border:1px solid #d8dee8;border-radius:999px;align-items:center;min-height:34px;padding:0 10px;font-size:13px;display:inline-flex}.calculator-layout{grid-template-columns:270px minmax(720px,1fr) 330px;align-items:start;gap:14px;max-width:1840px;margin:0 auto;display:grid}.control-rail,.insight-rail,.sheet-stage{flex-direction:column;gap:12px;min-width:0;display:flex}.panel{background:#fff;border:1px solid #d8dee8;border-radius:8px;min-width:0;padding:14px;box-shadow:0 12px 24px #0f172a0a}.upload-panel>svg{color:#0f766e}.panel h2,.panel-title h2{margin:0;font-size:15px;font-weight:760;line-height:1.2}.panel-title{align-items:center;gap:8px;margin-bottom:12px;display:flex}.dropzone{color:#334155;background:#f8fafc;border:1px dashed #94a3b8;border-radius:8px;align-items:center;gap:10px;min-height:70px;margin-top:12px;padding:13px;font-size:13px;font-weight:700;display:flex}.dropzone input{display:none}.status-text{color:#64748b;margin:10px 0 0;font-size:12px;line-height:1.55}.field{gap:7px;margin-top:11px;display:grid}.field span{color:#475569;font-size:12px;font-weight:700}.field input,.field select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:100%;min-height:36px;padding:0 10px;font-size:14px}.tabs{background:#eaf0f7;border:1px solid #d8dee8;border-radius:8px;gap:6px;padding:6px;display:flex}.tabs button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:7px;flex:1;min-height:34px;font-size:13px;font-weight:740}.tabs button.active{color:#0f766e;background:#e7f7f3;border-color:#0f766e}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.summary-item{background:#fff;border:1px solid #d8dee8;border-radius:8px;padding:12px}.summary-item span,.summary-item small{color:#64748b;font-size:12px;display:block}.summary-item strong{letter-spacing:0;margin:6px 0 4px;font-size:22px;line-height:1;display:block}.sheet-panel{padding:0;overflow:hidden}.sheet-title{background:#fff;border-bottom:1px solid #d8dee8;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.sheet-title strong{font-size:18px}.sheet-title span{color:#64748b;font-size:12px}.spreadsheet-wrap{background:linear-gradient(90deg,#fff0,#fff 24px) 100%/42px 100% no-repeat,#fff;max-height:620px;overflow:auto}.spreadsheet{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:1440px;font-size:12px}.spreadsheet th,.spreadsheet td{text-align:right;white-space:nowrap;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;width:86px;height:30px;padding:0 6px}.spreadsheet thead th{z-index:5;color:#334155;vertical-align:top;background:#f8fafc;font-weight:760;position:sticky;top:30px}.spreadsheet thead .arpu-row th{background:#fff7c2;border-top:1px solid #d8dee8;height:30px;top:0}.spreadsheet thead th span,.spreadsheet thead th small{text-overflow:ellipsis;display:block;overflow:hidden}.spreadsheet thead th small{color:#64748b;max-width:78px;font-size:10px;font-weight:600}.spreadsheet input{width:100%;min-height:24px;color:inherit;text-align:right;background:0 0;border:0;outline:0;font-size:12px;font-weight:680}.sticky-left{z-index:7;background:#fff;position:sticky}.meta-cell{min-width:172px;max-width:172px;left:0;text-align:left!important;width:172px!important}.second-cell{min-width:56px;max-width:56px;left:172px;text-align:center!important;width:56px!important}.spreadsheet thead .sticky-left{z-index:9}.spreadsheet tbody th{color:#334155;font-weight:760}.stage-name-input{text-align:left!important;font-weight:760!important}.meta-cell small{color:#64748b;font-size:10px;font-weight:500;display:block}.arpu-row input{color:#b45309}.future-col,.future-row .sticky-left{background:#fff8db!important}.actual-cell{background:rgba(191, 219, 254, calc(.18 + var(--heat) * .48));color:#1e3a8a}.actual-cell:nth-child(odd){background:rgba(254, 205, 82, calc(.18 + var(--heat) * .44));color:#78350f}.predicted-cell{background:rgba(254, 243, 199, calc(.28 + var(--heat) * .42));color:#92400e;outline-offset:-3px;outline:1px dashed #f59e0b}.predicted-cell input{color:#92400e}.hot-cell{color:#7f1d1d!important;background:#f87171!important}.empty-matrix-cell{background:#fff;outline:0}.legend-panel p{color:#475569;align-items:center;gap:8px;margin:9px 0;font-size:12px;display:flex}.swatch{border:1px solid #cbd5e1;border-radius:3px;width:18px;height:14px}.swatch.actual{background:#dbeafe}.swatch.predicted{background:#fef3c7;border-style:dashed;border-color:#f59e0b}.swatch.arpu{background:#fff7c2}.swatch.warning{background:#f87171}.raw-panel h2{margin:0 0 10px;font-size:15px}.raw-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.raw-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:3px;min-width:0;padding:9px;display:grid}.raw-row span,.raw-row em,.raw-row small{color:#64748b;font-size:11px;font-style:normal}.raw-row strong{font-size:13px}.model-list{gap:8px;display:grid}.model-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:3px;padding:9px;display:grid}.model-row span{color:#0f766e;font-size:12px;font-weight:760}.model-row strong{font-size:13px}.model-row small,.hint-text{color:#64748b;font-size:12px;line-height:1.55}.empty-cell{color:#64748b;height:90px;text-align:center!important}.recharts-wrapper text{font-size:12px}@media (width<=1280px){.calculator-layout{grid-template-columns:250px minmax(0,1fr)}.insight-rail{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}}@media (width<=860px){.app-shell{padding:14px}.login-screen{grid-template-rows:auto minmax(560px,1fr) auto}.login-topbar{height:auto;padding:14px 18px}.login-brand-main{flex-wrap:wrap;justify-content:center}.login-hero{grid-template-columns:1fr;justify-content:center;padding:34px 18px}.login-panel{grid-column:1;width:min(430px,100%)}.login-card-head h1{white-space:normal}.topbar{flex-direction:column;align-items:stretch}.calculator-layout,.insight-rail,.summary-grid,.raw-grid{grid-template-columns:1fr}.spreadsheet-wrap{max-height:540px}}
