:root{color-scheme:light;--bg: #eef7ed;--paper: #fbfdf7;--paper-warm: #fffef9;--green: #7ca982;--green-dark: #54835d;--green-soft: #dcecdd;--sprout: #a9d8ae;--apricot: #e8b77f;--apricot-soft: #f8ead8;--ink: #294438;--muted: #6f887a;--line: #d8e8d7;--danger: #b86658;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;--shadow: 0 18px 50px rgba(53, 91, 62, .12);font-family:Avenir Next,Segoe UI Variable,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--ink);background:radial-gradient(circle at 10% 4%,rgba(169,216,174,.45),transparent 30%),linear-gradient(180deg,#f1f8ef,#e7f3e6)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,520px);margin:0 auto;min-height:100vh;position:relative}.page{width:100%;padding:20px 16px 104px}.app-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.kicker{margin:0 0 4px;color:var(--muted);font-size:12px}.app-header h1{margin:0;font-size:24px}.pill{padding:7px 10px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:12px;white-space:nowrap}.card{display:block;background:var(--paper-warm);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px}.card+.card{margin-top:10px}.section+.section{margin-top:16px}.section-title{margin:0 0 10px;font-size:15px;display:flex;justify-content:space-between;align-items:center}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.muted{color:var(--muted)}.money{color:var(--green-dark);font-weight:700;white-space:nowrap}.field{margin-bottom:12px}.field label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}.input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-warm);color:var(--ink);padding:11px;outline:none}textarea{min-height:70px;resize:vertical}.input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #7ca98229}.button{width:100%;min-height:46px;border-radius:var(--radius-sm);border:1px solid var(--green);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.button.primary{background:var(--green);color:#fff}.button.light{background:var(--paper-warm);color:var(--green-dark)}.button:disabled{opacity:.65;cursor:wait}.tag{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;white-space:nowrap}.tag.paid,.tag.active{color:var(--green-dark);background:var(--green-soft)}.tag.pending,.tag.draft{color:#9b6735;background:var(--apricot-soft)}.tag.partial{color:#7b6942;background:#f2eddc}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,520px);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:8px 8px calc(10px + env(safe-area-inset-bottom));background:#fbfdf7f2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-nav a{min-height:48px;border-radius:14px;display:grid;place-items:center;color:var(--muted);font-size:10px}.bottom-nav a.router-link-active{color:var(--green-dark);background:var(--green-soft);font-weight:700}.empty{padding:22px 14px;text-align:center;color:var(--muted);line-height:1.7}.empty p{margin:0 0 12px}.setup-card{display:grid;gap:8px;background:linear-gradient(135deg,#f5fbf2,#fffef9)}.setup-card strong{color:var(--green-dark);font-size:17px}.setup-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.date-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#eef6ed}.seg button{min-height:38px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:700}.seg button.active{background:var(--paper-warm);color:var(--green-dark);box-shadow:0 4px 14px #54835d1f}.project-meta{margin:0 0 4px;color:var(--muted);font-size:12px}.expense-meta,.report-meta{margin:6px 0 0;font-size:12px}.add-charge-card{margin-bottom:10px;background:#f4faf2}.add-charge-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.add-charge-row .tiny-button{white-space:nowrap}.balance-card{background:linear-gradient(135deg,var(--green-soft),#f7fbf4)}.section-label{margin:0 0 6px;font-size:13px}.balance-card strong{display:block;font-size:30px;line-height:1.1}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.summary-grid div{min-width:0;border-top:1px solid rgba(124,169,130,.3);padding-top:9px}.summary-grid b{display:block;font-size:11px}.summary-grid span{color:var(--muted);font-size:10px}.checkbox-list{display:grid;gap:8px;max-height:220px;overflow:auto}.checkbox-item{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-warm)}.progress-bar{height:8px;border-radius:999px;background:#e5f0e4;overflow:hidden;margin:12px 0}.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--sprout))}.charge-money{font-size:12px;line-height:1.7;margin:8px 0}.project-finance-row{margin-top:10px;font-size:12px}.charge-actions,.export-actions{display:flex;flex-wrap:wrap;gap:8px}.tiny-button{min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--paper-warm);color:var(--green-dark);padding:0 10px;font-size:12px;font-weight:700}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#29443847;z-index:100;display:flex;align-items:flex-end}.action-sheet{width:min(100%,520px);margin:0 auto;max-height:86vh;overflow:auto;background:var(--paper);border-radius:20px 20px 0 0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.sheet-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-header h2{margin:0;font-size:18px}.sheet-header button{border:0;background:transparent;color:var(--muted);font-size:26px;line-height:1}.form-help{color:var(--muted);font-size:12px;line-height:1.6}.storage-copy{font-size:13px;line-height:1.7;margin:0 0 10px}.audit-card p{margin:0;font-size:12px;word-break:break-all}.audit-card .row{margin-bottom:6px}.alert-error{margin-bottom:12px;padding:11px 12px;border-radius:var(--radius-sm);border-left:3px solid var(--danger);background:#fbf0ed;color:#7d443d;font-size:13px;line-height:1.6}.alert-success{margin-bottom:12px;padding:11px 12px;border-radius:var(--radius-sm);border-left:3px solid var(--green);background:#eef7ed;color:var(--green-dark);font-size:13px}@media (max-width: 430px){.page{padding:18px 12px 96px}.app-header h1{font-size:21px}.row{flex-wrap:wrap}.add-charge-row{grid-template-columns:1fr}.add-charge-row .tiny-button{width:100%}.date-filters{grid-template-columns:1fr}}
