
    :root{--bg:#0f0f14;--bg-card:#1a1a24;--bg-card-hover:#222233;--border:#2a2a3e;--text:#e6edf3;--text-secondary:#8b949e;--text-muted:#555;--accent:#f0883e;--green:#2ecc71;--red:#e94560;--glass:rgba(15,15,20,0.92)}
    body.light{--bg:#f5f5f7;--bg-card:#fff;--bg-card-hover:#f0f0f2;--border:#d2d2d7;--text:#1d1d1f;--text-secondary:#6e6e73;--text-muted:#aeaeb2;--accent:#f0883e;--green:#16a34a;--red:#dc2626;--glass:rgba(245,245,247,0.92)}
    *{margin:0;padding:0;box-sizing:border-box}
    body{font-family:-apple-system,"Microsoft YaHei","Helvetica Neue",sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
    .header{border-bottom:1px solid var(--border);padding:16px 24px;position:sticky;top:0;z-index:100;background:var(--glass);backdrop-filter:blur(12px)}
    .header-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
    .logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;text-decoration:none;color:var(--text)}
    .logo-icon{width:32px;height:32px;background:linear-gradient(135deg,#f0883e,#f9a05a);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:800}
    .logo span{background:linear-gradient(135deg,#f0883e,#f9a05a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
    .nav-right{display:flex;align-items:center;gap:16px}
    .nav-links{display:flex;gap:20px;align-items:center}
    .nav-links a{color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500}
    .nav-links a:hover,.nav-links a.active{color:var(--accent)}
    .tg{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:18px;cursor:pointer}
    .hero{max-width:900px;margin:0 auto;padding:40px 24px 4px;text-align:center}
    .hero h1{font-size:32px;font-weight:800;margin-bottom:8px}
    .hero h1 span{background:linear-gradient(135deg,#f0883e,#f9a05a,#ffb347);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
    .hero p{color:var(--text-secondary);font-size:14px}
    .wrap{max-width:900px;margin:0 auto;padding:20px 24px 48px;display:grid;gap:16px}
    .card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px}
    .card h2{font-size:15px;margin-bottom:12px}
    .monthbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
    .monthbar button{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:10px;padding:8px 14px;font-size:14px;cursor:pointer;font-family:inherit}
    .monthbar input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:14px;font-family:inherit}
    .sum3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
    .sum{border:1px solid var(--border);border-radius:12px;padding:12px 6px;text-align:center}
    .sum b{display:block;font-size:22px;font-variant-numeric:tabular-nums}
    .sum span{font-size:12px;color:var(--text-muted)}
    .sum.out b{color:var(--red)} .sum.in b{color:var(--green)}
    .bars{display:grid;gap:8px;margin-top:4px}
    .bar{display:grid;grid-template-columns:4.5em 1fr 4.5em;gap:8px;align-items:center;font-size:13px}
    .bar i{display:block;height:8px;border-radius:4px;background:rgba(140,140,160,.18);overflow:hidden}
    .bar i b{display:block;height:100%;background:linear-gradient(90deg,#f0883e,#ffd166);border-radius:4px}
    .bar span:last-child{text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums}
    .seg{display:flex;gap:8px;margin-bottom:12px}
    .seg button{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
    .seg button.on{border-color:var(--accent);color:var(--accent)}
    .form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .form .full{grid-column:1/-1}
    .form label{display:grid;gap:6px;font-size:13px;color:var(--text-secondary)}
    .form input,.form select{min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);padding:9px 12px;font-size:15px;font-family:inherit;width:100%}
    .form input:focus,.form select:focus{outline:none;border-color:var(--accent)}
    .amt{font-size:20px !important;font-weight:700;font-variant-numeric:tabular-nums}
    .err{font-size:13px;color:var(--red);min-height:18px}
    .go{grid-column:1/-1;padding:12px;border-radius:12px;border:none;background:linear-gradient(135deg,#f0883e,#f9a05a);color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
    .day{margin-bottom:14px}
    .day:last-child{margin-bottom:0}
    .day-h{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted);margin-bottom:6px}
    .day-h b{color:var(--text)}
    .item{display:flex;align-items:center;gap:10px;padding:10px 4px;border-top:1px solid var(--border);font-size:14px}
    .item .ic{font-size:20px}
    .item .tx{flex:1;min-width:0}
    .item .tx small{display:block;color:var(--text-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .item .money{font-weight:700;font-variant-numeric:tabular-nums}
    .item .money.o{color:var(--red)} .item .money.i{color:var(--green)}
    .item .del{border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;font-family:inherit}
    .empty{text-align:center;color:var(--text-muted);font-size:13px;padding:20px 0}
.backup-status{margin:0 0 12px;font-size:12px;color:var(--text-secondary)}
    .bk{display:grid;gap:12px}
    .bk-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
    .bk input[type=password]{flex:1;min-width:160px;min-height:42px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);padding:8px 12px;font-size:14px;font-family:inherit}
    .btn{padding:10px 18px;border-radius:10px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
    .btn.solid{background:var(--accent);color:#fff}
    .btn:disabled{opacity:.45;cursor:default}
    .bk p{font-size:12px;color:var(--text-muted);line-height:1.7}
    .filepick{display:inline-block;padding:10px 18px;border-radius:10px;border:1px dashed var(--border);color:var(--text-secondary);font-size:13px;cursor:pointer}
    .filepick input{position:absolute;width:1px;height:1px;padding:0;margin:0;border:0;opacity:0;pointer-events:none}
    .note{font-size:12px;color:var(--text-muted);text-align:center}
    .footer{border-top:1px solid var(--border);padding:24px;text-align:center;color:var(--text-muted);font-size:13px}
    .footer a{color:var(--accent);text-decoration:none}
    @media(max-width:640px){.hero h1{font-size:26px}.sum3{grid-template-columns:1fr 1fr 1fr}.sum b{font-size:18px}}
  