*{margin:0;padding:0;box-sizing:border-box}:root{color:#142033;background:radial-gradient(circle at top left,rgba(15,23,42,.05),transparent 28%),radial-gradient(circle at top right,rgba(245,158,11,.08),transparent 24%),linear-gradient(180deg,#f3f6f8,#fbfcfd 48%,#f4f7fa);font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif}body{min-height:100vh;color:#142033;background:transparent;line-height:1.6}button,input{font:inherit}.app{max-width:1440px;margin:0 auto;padding:30px 24px 56px}.header{margin-bottom:32px}.header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 32px;border-radius:30px;background:linear-gradient(135deg,#fffffff5,#f8fafceb),linear-gradient(135deg,#0f172a08,#f59e0b0a);border:1px solid rgba(148,163,184,.2);box-shadow:0 28px 80px #94a3b838;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-left{display:flex;align-items:center;gap:20px;min-width:0}.logo-shell{width:84px;height:84px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:28px;background:#fffc;box-shadow:inset 0 0 0 1px #ffffffb8,0 16px 32px #2563eb1f}.logo-image{width:72px;height:72px;display:block}.lucide-logo{color:#0f172a}.header-copy{min-width:0}.hero-kicker{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;margin-bottom:12px;background:#0f172a0f;color:#334155;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.header h1{font-size:clamp(2.2rem,5vw,3.45rem);line-height:1;letter-spacing:-.05em;color:#0f172a}.header p{max-width:760px;margin-top:12px;color:#58677d;font-size:1rem}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.theme-btn,.lang-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border:1px solid rgba(148,163,184,.22);border-radius:999px;background:#ffffffbd;color:#36506f;font-size:.92rem;font-weight:700;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.theme-btn:hover,.lang-btn:hover{transform:translateY(-1px);border-color:#47556959;box-shadow:0 10px 22px #0f172a14;color:#0f172a}.github-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:999px;border:1px solid rgba(148,163,184,.22);background:#ffffffbd;color:#0f172a;font-size:.92rem;font-weight:700;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.github-btn:hover{transform:translateY(-1px);border-color:#47556959;box-shadow:0 10px 22px #0f172a14}.config-badge{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:999px;background:#16a34a1a;color:#15803d;border:1px solid rgba(34,197,94,.15);font-size:.9rem;font-weight:700}.hero-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.summary-panel{display:grid;gap:8px;padding:20px 22px;border-radius:22px;background:#ffffffb8;border:1px solid rgba(148,163,184,.16);box-shadow:0 16px 36px #94a3b81a}.summary-panel.accent{background:#0f172aeb;border-color:#0f172a33}.summary-panel-label{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.summary-panel strong{font-size:1.05rem;line-height:1.35;color:#0f172a}.summary-panel span{color:#5a6c84;font-size:.92rem}.summary-panel.accent .summary-panel-label{color:#e2e8f0b8}.summary-panel.accent strong,.summary-panel.accent span{color:#f8fafc}.card{background:#ffffffe0;border-radius:26px;border:1px solid rgba(148,163,184,.18);padding:26px;margin-bottom:24px;box-shadow:0 22px 60px #94a3b824;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.card-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(226,232,240,.8)}.card-icon{width:42px;height:42px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #ffffffb8}.card-icon.blue{background:linear-gradient(135deg,#dbeafe,#eff6ff);color:#2563eb}.card-icon.purple{background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#7c3aed}.card-icon.green{background:linear-gradient(135deg,#dcfce7,#f0fdf4);color:#16a34a}.card-title{font-size:1.14rem;font-weight:750;color:#132238}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px;margin-bottom:22px}.preset-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 16px;border:1px solid rgba(148,163,184,.24);border-radius:20px;background:linear-gradient(180deg,#fffffff2,#f5f8ffdb);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.preset-btn:hover{transform:translateY(-2px);border-color:#2563eb52;box-shadow:0 18px 36px #94a3b829}.preset-btn.active{border-color:#2563eb73;background:linear-gradient(180deg,#dbeafeeb,#eff6ffe0)}.preset-btn.upload{border-style:dashed;color:#5c6f86}.preset-btn.upload:hover{color:#1d4ed8}.preset-flag{font-size:2rem}.preset-name{font-weight:700;color:#1e293b}.preset-year{font-size:.84rem;color:#64748b}.config-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;background:linear-gradient(180deg,#f3f7fdeb,#f8fafceb);border:1px solid rgba(148,163,184,.14);border-radius:20px}.info-item{display:grid;gap:6px}.info-label{font-size:.82rem;color:#64748b}.info-value{font-weight:650;color:#132238}.form-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:22px}.form-group{display:grid;gap:8px}.form-group label{font-size:.82rem;font-weight:700;color:#64748b}input[type=number]{height:44px;padding:0 14px;border:1px solid rgba(148,163,184,.26);border-radius:14px;font-size:.95rem;color:#142033;background:#ffffffe0;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;width:124px}input:hover{border-color:#64748b66}input:focus{border-color:#2563eb7a;box-shadow:0 0 0 4px #2563eb1f;background:#fff}.btn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 20px;border-radius:14px;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;border:none}.btn-success{background:#0f172a;color:#fff;box-shadow:0 14px 28px #0f172a29}.btn-success:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 20px 38px #0f172a33}.btn:disabled{opacity:.6;cursor:not-allowed}.param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.param-card{background:linear-gradient(180deg,#fafcfff2,#f5f8fceb);border-radius:22px;padding:18px;border:1px solid rgba(148,163,184,.16)}.section-intro{margin:-4px 0 20px;padding:16px 18px;border-radius:18px;background:#f8fafcf2;border:1px solid rgba(148,163,184,.14);color:#56677f;font-size:.92rem;line-height:1.8}.section-intro.secondary{margin-top:-6px;background:#ffffffb3}.param-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.param-title{font-size:.96rem;font-weight:700;display:flex;align-items:center;gap:8px;color:#162033}.param-title .dot{width:10px;height:10px;border-radius:999px}.node-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.node-item{display:flex;align-items:center;gap:6px;background:#ffffffeb;padding:7px 10px;border-radius:12px;border:1px solid rgba(148,163,184,.18);font-size:.82rem}.node-item input{width:56px;height:32px;padding:0 6px;font-size:.82rem;text-align:center;border-radius:10px}.node-item .year{color:#64748b;font-weight:700}.node-item .unit{color:#94a3b8;font-size:.75rem}.node-delete{width:22px;height:22px;border-radius:8px;border:none;background:#ef44441a;color:#ef4444;cursor:pointer;display:flex;align-items:center;justify-content:center}.node-delete:hover{background:#ef44442e}.node-add{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:#16a34a14;color:#15803d;border:1px dashed rgba(22,163,74,.32);border-radius:12px;cursor:pointer;font-size:.82rem;font-weight:700}.node-add:hover{background:#16a34a1f}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{background:linear-gradient(180deg,#f8fbfffa,#eff4fbf0);border-radius:20px;padding:20px;border:1px solid rgba(148,163,184,.14)}.stat-label{font-size:.84rem;color:#64748b;margin-bottom:10px;display:flex;align-items:center;gap:7px}.stat-value{font-size:1.82rem;line-height:1.05;font-weight:800;color:#102038}.stat-value.positive{color:#16a34a}.stat-value.negative{color:#dc2626}.charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:24px}.chart-card{background:linear-gradient(180deg,#fafcfff5,#f5f8fceb);border-radius:22px;padding:20px;border:1px solid rgba(148,163,184,.15)}.chart-title{font-size:.96rem;font-weight:750;margin-bottom:16px;color:#1f2d42}.custom-tooltip{background:#fffffffa;border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:12px 14px;box-shadow:0 20px 36px #0f172a1f}.tooltip-title{font-weight:700;margin-bottom:8px;color:#132238}.tooltip-row{display:flex;justify-content:space-between;gap:16px;font-size:.82rem;padding:2px 0}.tooltip-value{font-weight:700}.table-section{margin-top:24px}.table-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.table-header .chart-title{margin-bottom:0}.table-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.export-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgba(148,163,184,.24);background:#ffffffe0;color:#334155;border-radius:12px;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.export-btn:hover{background:#fff;border-color:#47556947;color:#0f172a;transform:translateY(-1px)}.table-toggle{display:flex;gap:4px;background:#e2e8f0cc;padding:4px;border-radius:14px}.toggle-btn{padding:7px 14px;border:none;background:transparent;border-radius:10px;font-size:.82rem;font-weight:700;color:#64748b;cursor:pointer;transition:color .18s ease,background .18s ease,box-shadow .18s ease}.toggle-btn:hover{color:#334155}.toggle-btn.active{background:#fff;color:#1d4ed8;box-shadow:0 10px 18px #94a3b829}.table-wrapper{overflow-x:auto;border-radius:20px;border:1px solid rgba(148,163,184,.14);background:#ffffffb3}.table-wrapper.scrollable{max-height:500px;overflow-y:auto}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:14px 12px;background:#f1f5f9f2;border-bottom:1px solid rgba(226,232,240,.95);font-weight:750;color:#475569;position:sticky;top:0;z-index:1}.data-table td{padding:12px;border-bottom:1px solid rgba(241,245,249,.95)}.data-table tr:hover{background:#f8fafcf2}.data-table .bold{font-weight:700;color:#132238}.data-table .positive{color:#16a34a}.data-table .negative{color:#dc2626}.empty-state{text-align:center;padding:72px 20px;color:#64748b}.empty-icon{color:#cbd5e1;margin-bottom:16px}.empty-state h3{font-size:1.18rem;color:#475569;margin-bottom:8px}.modal-overlay{position:fixed;inset:0;background:#0f172a47;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fffffff7;border-radius:24px;box-shadow:0 30px 80px #0f172a33;width:340px;max-width:90vw;animation:slideUp .22s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:22px 24px 16px;font-size:1.08rem;font-weight:750;color:#1e293b;border-bottom:1px solid rgba(241,245,249,.95)}.modal-body{padding:20px 24px}.modal-input{width:100%;height:46px;padding:0 16px;font-size:1rem;border:1px solid rgba(148,163,184,.24);border-radius:14px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.modal-input:focus{border-color:#2563eb80;box-shadow:0 0 0 4px #2563eb1f}.modal-hint{margin-top:8px;font-size:.82rem;color:#94a3b8}.modal-error{margin-top:8px;font-size:.82rem;color:#ef4444}.modal-footer{padding:16px 24px 22px;display:flex;gap:12px;justify-content:flex-end}.modal-btn{height:42px;padding:0 20px;border-radius:12px;font-size:.88rem;font-weight:700;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.modal-btn:hover{transform:translateY(-1px)}.modal-btn.cancel{background:#f1f5f9;border:none;color:#64748b}.modal-btn.cancel:hover{background:#e2e8f0}.modal-btn.confirm{background:#0f172a;border:none;color:#fff;box-shadow:0 12px 22px #0f172a2e}.modal-btn.confirm:hover{background:#1e293b}.app[data-theme=dark]{color:#e2e8f0}.app[data-theme=dark] .header-main,.app[data-theme=dark] .card,.app[data-theme=dark] .logo-switcher,.app[data-theme=dark] .summary-panel,.app[data-theme=dark] .config-info,.app[data-theme=dark] .section-intro,.app[data-theme=dark] .param-card,.app[data-theme=dark] .chart-card,.app[data-theme=dark] .stat-card,.app[data-theme=dark] .table-wrapper,.app[data-theme=dark] .modal-content{background:#0f172ae6;border-color:#47556957;box-shadow:0 24px 60px #02061757}.app[data-theme=dark] .summary-panel.accent{background:#f8fafcf0;border-color:#e2e8f033}.app[data-theme=dark] .summary-panel.accent strong,.app[data-theme=dark] .summary-panel.accent span{color:#0f172a}.app[data-theme=dark] .summary-panel.accent .summary-panel-label{color:#64748b}.app[data-theme=dark] .header h1,.app[data-theme=dark] .card-title,.app[data-theme=dark] .chart-title,.app[data-theme=dark] .param-title,.app[data-theme=dark] .tooltip-title,.app[data-theme=dark] .logo-switcher-copy strong,.app[data-theme=dark] .logo-option span,.app[data-theme=dark] .info-value,.app[data-theme=dark] .data-table .bold,.app[data-theme=dark] .summary-panel strong,.app[data-theme=dark] .stat-value,.app[data-theme=dark] .preset-name,.app[data-theme=dark] .lucide-logo{color:#f8fafc}.app[data-theme=dark] .header p,.app[data-theme=dark] .summary-panel span,.app[data-theme=dark] .summary-panel-label,.app[data-theme=dark] .info-label,.app[data-theme=dark] .form-group label,.app[data-theme=dark] .section-intro,.app[data-theme=dark] .preset-year,.app[data-theme=dark] .empty-state,.app[data-theme=dark] .tooltip-row,.app[data-theme=dark] .data-table th,.app[data-theme=dark] .data-table td,.app[data-theme=dark] .logo-switcher-copy span{color:#94a3b8}.app[data-theme=dark] .hero-kicker,.app[data-theme=dark] .theme-btn,.app[data-theme=dark] .lang-btn,.app[data-theme=dark] .github-btn,.app[data-theme=dark] .export-btn,.app[data-theme=dark] .logo-option,.app[data-theme=dark] input[type=number],.app[data-theme=dark] .table-toggle,.app[data-theme=dark] .toggle-btn.active,.app[data-theme=dark] .node-item,.app[data-theme=dark] .modal-input{background:#1e293be6;color:#e2e8f0;border-color:#4755695c}.app[data-theme=dark] .export-btn:hover{background:#334155eb;border-color:#64748b70;color:#f8fafc}.app[data-theme=dark] .config-badge{background:#16a34a29;color:#86efac;border-color:#22c55e38}.app[data-theme=dark] .btn-success,.app[data-theme=dark] .modal-btn.confirm{background:#f8fafc;color:#0f172a}.app[data-theme=dark] .btn-success:hover:not(:disabled),.app[data-theme=dark] .modal-btn.confirm:hover{background:#e2e8f0}.app[data-theme=dark] .modal-btn.cancel{background:#334155e0;color:#cbd5e1}.app[data-theme=dark] .node-add{background:#16a34a1f;color:#86efac;border-color:#4ade8047}.app[data-theme=dark] .data-table tr:hover{background:#1e293bad}.app[data-theme=dark] .data-table th{background:#0f172af5;border-bottom-color:#334155cc}.app[data-theme=dark] .data-table td,.app[data-theme=dark] .card-header,.app[data-theme=dark] .table-wrapper,.app[data-theme=dark] .modal-header{border-color:#334155cc}@media(max-width:1080px){.hero-summary,.param-grid,.charts-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-main{flex-direction:column}.header-right{justify-content:flex-start}}@media(max-width:720px){.app{padding:14px 12px 34px}.header-main,.card{padding:16px;border-radius:18px}.header-left{align-items:flex-start;gap:14px}.logo-shell{width:58px;height:58px;border-radius:18px}.logo-image{width:42px;height:42px}.hero-kicker{height:24px;padding:0 10px;margin-bottom:8px;font-size:10px}.header h1{font-size:2rem}.header p{margin-top:8px;font-size:.92rem}.theme-btn,.lang-btn,.github-btn,.config-badge{height:36px;padding:0 12px;font-size:.82rem}.header-right{gap:8px}.hero-summary{gap:10px;margin-top:12px}.summary-panel{gap:6px;padding:14px;border-radius:16px}.summary-panel strong{font-size:.95rem}.summary-panel span{font-size:.84rem}.stats-grid,.config-info{grid-template-columns:1fr}.table-header,.form-row{flex-direction:column;align-items:stretch}.table-controls{width:100%;flex-direction:column;align-items:stretch}.table-toggle{width:100%}.toggle-btn{flex:1}.export-btn{justify-content:center}.card-header{gap:10px;margin-bottom:16px;padding-bottom:14px}.card-icon{width:36px;height:36px;border-radius:12px}.card-title{font-size:1rem}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.preset-btn{gap:6px;padding:12px 10px;border-radius:16px}.preset-flag{font-size:1.5rem}.preset-name{font-size:.88rem}.preset-year{font-size:.76rem}.config-info{gap:12px;padding:14px;border-radius:16px}.form-row{gap:12px;margin-bottom:16px}.section-intro{padding:13px 14px;border-radius:14px;font-size:.86rem;line-height:1.7}.param-grid,.charts-grid{gap:14px}.param-card,.chart-card,.stat-card{padding:14px;border-radius:16px}.node-list{gap:6px}.node-item{padding:6px 8px;border-radius:10px;font-size:.76rem}.node-item input{width:48px;height:28px;font-size:.76rem}.node-add{padding:6px 10px;border-radius:10px;font-size:.76rem}.stat-value{font-size:1.45rem}.chart-title{margin-bottom:12px;font-size:.88rem}.table-wrapper{border-radius:16px}.data-table{font-size:.76rem}.data-table th,.data-table td{padding:10px 8px}}@media(max-width:480px){.header-main,.card{padding:14px}.preset-grid{grid-template-columns:1fr 1fr}.theme-btn,.lang-btn,.github-btn{flex:1 1 auto;justify-content:center}.config-badge{width:100%;justify-content:center}.summary-panel{padding:12px}.stats-grid{gap:10px}.stat-card{padding:12px}.table-toggle{padding:3px}.toggle-btn{padding:6px 8px;font-size:.76rem}.export-btn{padding:8px 10px;font-size:.76rem}}
