:root{--bg:#f4f6f8;--surface:#fff;--border:#e2e6ea;--text:#1c2530;--muted:#6b7785;--accent:#1f6feb;--accent-dark:#1a5fd0;--danger:#c0392b;--ok:#1f8a4c;--shadow:0 1px 3px #10182814, 0 1px 2px #1018280f;--radius:10px;color:var(--text);font-family:Segoe UI,Arial,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{margin:0;font-weight:600}a{color:var(--accent);text-decoration:none}.app-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;position:sticky;top:0}.app-header-inner{align-items:center;gap:16px;max-width:1100px;margin:0 auto;padding:12px 20px;display:flex}.brand{letter-spacing:.3px;font-size:18px;font-weight:700}.brand span{color:var(--accent)}.nav{gap:6px;margin-left:12px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:6px 12px;font-weight:500}.nav a.active{color:var(--accent);background:#eaf1fe}.spacer{flex:1}.user-chip{color:var(--muted);font-size:13px}.user-chip b{color:var(--text)}.container{max-width:1100px;margin:0 auto;padding:24px 20px 64px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.card h2{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:16px;font-size:15px}label{color:var(--muted);margin-bottom:5px;font-size:13px;font-weight:500;display:block}input,select{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #1f6feb1f}input[type=number]{text-align:right}.field-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.expense-list{flex-direction:column;gap:10px;display:flex}.expense-row{grid-template-columns:160px 140px 1fr;align-items:center;gap:10px;display:grid}.expense-row .expense-label{color:var(--text);margin-bottom:0;font-weight:500}.expense-row .expense-amount{text-align:right}@media (width<=640px){.expense-row{grid-template-columns:1fr 1fr}.expense-row .expense-label,.expense-row .expense-notes{grid-column:1/-1}}button{cursor:pointer;background:var(--accent);color:#fff;border:1px solid #0000;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s}button:hover{background:var(--accent-dark)}button:disabled{opacity:.55;cursor:default}button.secondary{color:var(--text);border-color:var(--border);background:#fff}button.secondary:hover{background:#f3f5f7}button.danger{color:var(--danger);background:#fff;border-color:#f0c8c3}button.danger:hover{background:#fdf1ef}button.small{padding:5px 10px;font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:2px solid var(--border);padding:8px 10px;font-size:12px}th.num,td.num{text-align:right}td{border-bottom:1px solid var(--border);padding:8px 10px}tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.summary{position:sticky;top:76px}.summary-row{color:var(--text);justify-content:space-between;padding:7px 0;font-size:14px;display:flex}.summary-row .lbl{color:var(--muted)}.summary-row.sub{border-top:1px solid var(--border);margin-top:6px;padding-top:12px;font-weight:600}.summary-row.grand{border-top:2px solid var(--text);margin-top:8px;padding-top:14px;font-size:22px;font-weight:700}.summary-row.grand .val{color:var(--accent)}.row-flex{align-items:center;gap:12px;display:flex}.muted{color:var(--muted)}.pill{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);background:#eaf1fe;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.pill.admin{color:#9a6700;background:#fdeccf}.error{color:var(--danger);background:#fdf1ef;border:1px solid #f0c8c3;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:380px}.save-status{color:var(--muted);font-size:13px}.save-status.saving{color:var(--accent)}.save-status.saved{color:var(--ok)}.editor-grid{grid-template-columns:1fr 320px;align-items:start;gap:20px;display:grid}@media (width<=860px){.editor-grid{grid-template-columns:1fr}.summary{position:static}}
