@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--navy:#16324f;--ink:#18303f;--blue:#2e6f95;--teal:#31a6a2;--coral:#ee7d6b;--yellow:#f6c85f;--cream:#f7f5ef;--line:#dfe6e6;--muted:#6d7b83}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1180px,100% - 40px);margin-inline:auto}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 max(20px,50vw - 590px);display:flex;position:sticky;top:0}.brand{color:var(--navy);align-items:center;gap:12px;display:flex}.brand-mark{background:var(--navy);color:#fff;border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid;box-shadow:5px 5px #cce6e3}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.02em;font-size:17px}.brand small{color:#819098;letter-spacing:.18em;margin-top:3px;font-size:9px}.header-actions{gap:10px;display:flex}.btn{border:1px solid var(--line);min-height:40px;color:var(--ink);background:#fff;border-radius:9px;padding:0 18px;font-size:14px;font-weight:700}.btn.primary{border-color:var(--navy);background:var(--navy);color:#fff}.btn:hover{transform:translateY(-1px)}.hero{justify-content:space-between;align-items:center;gap:40px;min-height:345px;padding-block:48px 42px;display:flex;position:relative}.hero:after{content:"";z-index:-1;opacity:.8;border:1px solid #d6e5e4;border-radius:50%;width:210px;height:210px;position:absolute;top:42px;right:20px;box-shadow:0 0 0 34px #edf1eb,0 0 0 35px #d6e5e4}.eyebrow{color:var(--blue);letter-spacing:.16em;border-left:3px solid var(--coral);padding-left:10px;font-size:11px;font-weight:800;display:inline-block}.hero h1{color:var(--navy);letter-spacing:-.055em;margin:18px 0 17px;font-size:clamp(38px,5vw,60px);line-height:1.12}.hero h1 em{color:var(--teal);font-style:normal}.hero p{color:var(--muted);max-width:560px;margin:0;line-height:1.8}.hero-note{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:13px;min-width:300px;margin-right:35px;padding:17px 20px;display:flex;box-shadow:0 16px 40px #16324f14}.note-icon{color:#238167;background:#e4f3ee;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.hero-note strong,.hero-note small{display:block}.hero-note strong{font-size:14px}.hero-note small{color:var(--muted);margin-top:5px;font-size:12px}.workspace{border:1px solid var(--line);background:#fff;border-radius:20px 20px 0 0;padding:40px;box-shadow:0 20px 70px #16324f14}.section-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.section-head>div:first-child{grid-template-columns:auto 1fr;column-gap:13px;display:grid}.section-head .step{background:var(--navy);color:#fff;letter-spacing:.08em;border-radius:7px;grid-row:1/3;place-items:center;min-width:42px;height:32px;font-size:12px;font-weight:800;display:grid}.section-head h2{color:var(--navy);margin:0;font-size:22px}.section-head p{color:var(--muted);grid-column:2;margin:7px 0 0;font-size:13px}.class-input{border:1px solid var(--line);border-radius:9px;align-items:center;height:42px;display:flex;overflow:hidden}.class-input span{color:var(--muted);border-right:1px solid var(--line);background:#f5f7f6;align-items:center;height:100%;padding:0 13px;font-size:12px;display:flex}.class-input input{width:150px;color:var(--navy);border:0;outline:0;padding:0 12px;font-weight:700}.data-table-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:780px}.data-table th{text-align:left;color:#697981;letter-spacing:.04em;white-space:nowrap;background:#f0f4f3;height:48px;padding:0 16px;font-size:11px}.data-table th small{font-weight:400}.data-table td{border-top:1px solid #edf0ef;height:58px;padding:7px 16px}.data-table tr:hover td{background:#fcfdfc}.index-pill{color:#9aa5aa;font-size:12px;font-weight:700}.auto-tag{color:#238167;background:#dff1eb;border-radius:10px;margin-left:4px;padding:3px 7px;font-size:9px}.cell-input{width:100%;min-width:78px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;outline:none;padding:7px 8px}.cell-input:hover,.cell-input:focus{background:#f6fbfa;border-color:#bfd7d5}.cell-input.name{min-width:110px;font-weight:700}.cell-input.number{width:90px}.cell-input.month{width:88px}.stroke-value{color:var(--navy);background:0 0;border:0;align-items:baseline;gap:4px;padding:5px;display:flex}.stroke-value b{font-size:17px}.stroke-value small{color:var(--muted)}.stroke-value span{opacity:0;color:var(--teal);font-size:11px}.stroke-value:hover span{opacity:1}.stroke-edit{border:1px solid var(--teal);border-radius:6px;width:66px;padding:5px}.delete-btn{color:#a8b0b3;background:0 0;border:0;border-radius:50%;width:28px;height:28px;font-size:20px}.delete-btn:hover{color:#c64a44;background:#ffefed}.add-row{width:100%;height:52px;color:var(--blue);background:#fafbf9;border:0;border-top:1px dashed #cbd4d3;font-size:13px;font-weight:700}.add-row:hover{background:#f2f8f7}.visual-head{margin-top:52px}.tabs{background:#eef2f1;border-radius:9px;padding:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;min-width:80px;height:34px;font-size:13px;font-weight:700}.tabs .active{color:var(--navy);background:#fff;box-shadow:0 2px 8px #16324f14}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}.metric-grid article{border:1px solid var(--line);border-radius:12px;align-items:center;gap:13px;padding:18px;display:flex}.metric-icon{border-radius:11px;flex:none;place-items:center;width:42px;height:42px;font-size:12px;font-weight:800;display:grid}.metric-icon.blue{color:var(--blue);background:#e2edf5}.metric-icon.teal{color:#23847f;background:#dff2ef}.metric-icon.coral{color:#bd584a;background:#ffebe7}.metric-icon.yellow{color:#a37116;background:#fff3cc}.metric-grid small,.metric-grid strong{display:block}.metric-grid small{color:var(--muted);margin-bottom:5px;font-size:11px}.metric-grid strong{color:var(--navy);font-size:22px}.metric-grid strong i{color:var(--muted);margin-left:4px;font-size:11px;font-style:normal;font-weight:400}.charts-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chart-card{border:1px solid var(--line);border-radius:13px;min-width:0;padding:20px}.chart-card.wide{grid-column:1/-1}.chart-title{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.chart-title h3,.summary-title h3{color:var(--navy);margin:0;font-size:15px}.chart-title p,.summary-title p{color:var(--muted);margin:5px 0 0;font-size:11px}.chart-canvas{width:100%;height:240px;display:block}.wide .chart-canvas{height:255px}.summary-table-card{border:1px solid var(--line);border-radius:13px;overflow:auto}.summary-title{justify-content:space-between;align-items:center;padding:20px;display:flex}.summary-title button{border:1px solid var(--line);color:var(--blue);background:#fff;border-radius:7px;padding:8px 12px;font-size:12px;font-weight:700}.summary-table-card table{border-collapse:collapse;width:100%;min-width:640px}.summary-table-card th,.summary-table-card td{border-top:1px solid var(--line);text-align:left;padding:13px 20px;font-size:13px}.summary-table-card th{color:var(--muted);background:#f5f7f6;font-size:11px}.export{background:var(--navy);color:#fff;border-radius:0 0 20px 20px;grid-template-columns:1fr 1.2fr;align-items:center;gap:60px;min-height:270px;padding:46px 42px;display:grid}.eyebrow.light{color:#8dd2cc;border-color:var(--coral)}.export h2{margin:15px 0 10px;font-size:28px;line-height:1.3}.export>div>p{color:#abc0cc;max-width:390px;font-size:13px;line-height:1.7}.export-actions{gap:10px;display:grid}.export-btn{color:#fff;text-align:left;background:#213e58;border:1px solid #476176;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:72px;padding:12px 16px;display:grid}.export-btn.filled{color:var(--navy);background:#fff;border-color:#fff}.file-icon{color:#fff;background:var(--coral);border-radius:8px;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.file-icon.image{background:var(--teal)}.export-btn strong,.export-btn small{display:block}.export-btn strong{font-size:14px}.export-btn small{color:#91a7b5;margin-top:5px;font-size:10px}.export-btn.filled small{color:var(--muted)}.export-btn b{font-size:20px}.export-btn:hover{transform:translate(2px)}footer{color:#8c999e;justify-content:center;align-items:center;gap:8px;height:90px;font-size:12px;display:flex}footer strong{color:var(--navy)}.toast{color:#fff;z-index:50;background:#1d554c;border-radius:10px;padding:13px 18px;font-size:13px;font-weight:700;animation:.2s ease-out rise;position:fixed;bottom:24px;right:24px;box-shadow:0 15px 40px #0000002e}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (max-width:850px){.hero{flex-direction:column;align-items:flex-start}.hero-note{margin:0}.hero:after{opacity:.35}.workspace{padding:26px 18px}.metric-grid{grid-template-columns:1fr 1fr}.export{grid-template-columns:1fr;gap:25px}.section-head{align-items:flex-start}.charts-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:auto}}@media (max-width:560px){.shell{width:min(100% - 24px,1180px)}.topbar{height:68px}.brand small,.btn.ghost{display:none}.btn{padding:0 12px}.hero{min-height:auto;padding-block:36px}.hero h1{font-size:38px}.hero-note{width:100%;min-width:0}.section-head{flex-direction:column}.class-input{width:100%}.class-input input{flex:1}.metric-grid{grid-template-columns:1fr}.export{padding:34px 20px}.export h2{font-size:24px}footer span:last-child{display:none}}@media print{.topbar,.hero,.add-row,.visual-head,.export,footer,.delete-btn{display:none!important}.workspace{box-shadow:none;border:0;width:100%;padding:0}.charts-grid{break-inside:avoid}}.file-input{display:none}.excel-btn{color:#1f755b;white-space:nowrap;background:#f4fbf8;border-color:#b9d8cc}.excel-btn:hover{background:#eaf7f1}.table-actions{gap:8px;display:flex}.summary-title .excel-export{color:#fff;background:#1f755b;border-color:#1f755b}.excel-icon{background:#21845f!important}.export-actions{grid-template-columns:1fr 1fr}.export-actions .export-btn:first-child{grid-column:1/-1}@media (max-width:720px){.topbar{padding-inline:12px}.header-actions{gap:5px}.header-actions .btn{padding-inline:10px;font-size:12px}.reset-btn{display:none}.export-actions{grid-template-columns:1fr}}@media (max-width:460px){.brand strong{font-size:14px}.brand-mark{width:34px;height:34px}.header-actions .btn{padding-inline:10px;font-size:0}.header-actions .excel-btn:nth-of-type(2):after{content:"↑ Excel";font-size:11px}.header-actions .excel-btn:nth-of-type(3):after{content:"↓ Excel";font-size:11px}.header-actions .primary:after{content:"↗ PPT";font-size:11px}}
