:root{--brand-900:#08203f;--brand-800:#0b2c5b;--brand-700:#143d75;--brand-600:#1d4f93;--brand-500:#2a63b0;--brand-100:#e7eef8;--brand-50:#f3f7fc;--gold-600:#b3892f;--gold-500:#c8a24b;--gold-400:#ddc079;--ink-900:#0f172a;--ink-700:#334155;--ink-500:#64748b;--ink-300:#cbd5e1;--line:#e2e8f0;--bg:#f5f7fb;--white:#fff;--ok:#15803d;--warn:#b45309;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px #08203f0f, 0 1px 3px #08203f14;--shadow-md:0 8px 24px #08203f1a;--shadow-lg:0 18px 48px #08203f29;color:var(--ink-900);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);background-image:radial-gradient(1200px 480px at 100% -10%,#1d4f931a,#0000 60%),radial-gradient(900px 420px at -10% 0,#c8a24b14,#0000 55%);background-attachment:fixed;margin:0}a{color:var(--brand-600)}h1,h2,h3,h4{margin:0;line-height:1.2}input,select,button{font-family:inherit;font-size:1rem}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:linear-gradient(120deg, var(--brand-900), var(--brand-700));color:#fff;box-shadow:var(--shadow-md);z-index:10;padding:18px 28px;position:sticky;top:0}.topbar-inner{align-items:center;gap:14px;max-width:1180px;margin:0 auto;display:flex}.brand-mark{background:linear-gradient(140deg, var(--gold-400), var(--gold-600));width:42px;height:42px;color:var(--brand-900);border-radius:11px;place-items:center;font-size:1.15rem;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #ffffff40}.brand-logo-wrap{box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;align-items:center;padding:10px 16px;display:flex}.brand-logo{width:auto;height:38px;display:block}.brand-name{letter-spacing:.2px;font-size:1.18rem;font-weight:700}.brand-sub{opacity:.75;margin-top:1px;font-size:.78rem}.topbar-spacer{flex:1}.topbar-tag{background:#ffffff1f;border:1px solid #ffffff2e;border-radius:999px;padding:6px 12px;font-size:.76rem}.container{width:100%;max-width:1180px;margin:0 auto;padding:28px}.page-head{margin-bottom:22px}.page-head h1{color:var(--brand-900);font-size:1.6rem}.page-head p{color:var(--ink-500);margin:6px 0 0}.grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}@media (width<=920px){.grid{grid-template-columns:1fr}}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px 20px;display:flex}.card-head h2{color:var(--brand-800);font-size:1.05rem}.card-head .dot{background:var(--gold-500);border-radius:50%;width:8px;height:8px}.card-body{padding:20px}.field{margin-bottom:16px}.field label{color:var(--ink-700);margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.field .hint{color:var(--ink-500);font-weight:400}.control{border:1px solid var(--ink-300);border-radius:var(--radius-sm);width:100%;color:var(--ink-900);background:#fff;padding:11px 13px;transition:border-color .15s,box-shadow .15s}.control:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100);outline:none}.input-money{position:relative}.input-money .prefix{color:var(--ink-500);font-weight:600;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-money .control{padding-left:28px}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=520px){.field-row{grid-template-columns:1fr}}.range-row{align-items:center;gap:12px;display:flex}.range-row input[type=range]{accent-color:var(--brand-600);flex:1}.range-val{text-align:right;min-width:52px;color:var(--brand-700);font-weight:700}.btn{cursor:pointer;border-radius:var(--radius-sm);letter-spacing:.2px;background:linear-gradient(120deg, var(--brand-700), var(--brand-600));color:#fff;width:100%;box-shadow:var(--shadow-sm);border:none;padding:13px 18px;font-weight:700;transition:transform 80ms,filter .15s}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{color:var(--brand-700);border:1px solid var(--ink-300);box-shadow:none;background:#fff}.result-hero{background:linear-gradient(135deg, var(--brand-800), var(--brand-600));color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px;position:relative;overflow:hidden}.result-hero:after{content:"";background:radial-gradient(circle,#c8a24b59,#0000 70%);border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.result-hero .label{opacity:.85;font-size:.82rem}.result-hero .amount{margin-top:4px;font-size:2.3rem;font-weight:800}.result-hero .amount small{opacity:.8;font-size:1rem;font-weight:600}.result-hero .sub{opacity:.85;margin-top:6px;font-size:.85rem}.badge{background:#ffffff29;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:6px;margin-top:12px;padding:5px 11px;font-size:.78rem;font-weight:600;display:inline-flex}.breakdown{gap:0;margin-top:18px;display:grid}.row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding:12px 4px;display:flex}.row:last-child{border-bottom:none}.row .k{color:var(--ink-700);font-size:.92rem}.row .k small{color:var(--ink-500);font-size:.76rem;display:block}.row .v{color:var(--ink-900);font-variant-numeric:tabular-nums;font-weight:700}.row.total{border-radius:var(--radius-sm);background:var(--brand-50);border:none;margin-top:8px;padding:16px 14px}.row.total .k{color:var(--brand-800);font-weight:700}.row.total .v{color:var(--brand-800);font-size:1.15rem}.row .v.accent{color:var(--gold-600)}.section-label{text-transform:uppercase;letter-spacing:.8px;color:var(--ink-500);margin:16px 0 4px;font-size:.74rem;font-weight:700}.empty{text-align:center;color:var(--ink-500);place-items:center;padding:48px 20px;display:grid}.empty .ic{margin-bottom:10px;font-size:2.4rem}.error-box{color:#b91c1c;border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-bottom:14px;padding:12px 14px;font-size:.9rem}.actions{gap:12px;margin-top:18px;display:flex}.toast{border-radius:var(--radius-sm);color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;margin-top:12px;padding:11px 14px;font-size:.9rem}.footer{text-align:center;color:var(--ink-500);padding:24px;font-size:.8rem}.spin{animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
