:root{
  --bg:#0f172a; --panel:#111c33; --panel2:#16233f; --text:#e5edf9; --muted:#8ea0bd;
  --line:rgba(255,255,255,.08); --accent:#70e0a3; --warn:#fbbf24; --danger:#fb7185; --blue:#93c5fd;
  --shadow:0 22px 60px rgba(0,0,0,.28); --radius:22px;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Tahoma,sans-serif;background:linear-gradient(135deg,#08111f,#13203a 48%,#0f172a);color:var(--text)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{padding:24px;border-right:1px solid var(--line);background:rgba(5,12,24,.62);backdrop-filter:blur(16px);position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#38bdf8);color:#062014;font-weight:900}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}nav{display:grid;gap:8px}nav button{width:100%;border:0;border-radius:16px;background:transparent;color:var(--muted);padding:13px 14px;text-align:left;font-weight:700;cursor:default;display:flex;justify-content:space-between;align-items:center}nav button.active{background:rgba(112,224,163,.14);color:var(--text);outline:1px solid rgba(112,224,163,.22)}nav button.soon{opacity:.55}.sidebar-note{position:absolute;left:24px;right:24px;bottom:24px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.04)}.sidebar-note span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.main{padding:28px;max-width:1500px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.eyebrow{margin:0 0 6px;color:var(--accent);font-weight:800;font-size:13px;letter-spacing:.02em}.topbar h1{font-size:36px;margin:0 0 4px}.subtitle{margin:0;color:var(--muted)}.total-card{min-width:230px;border:1px solid rgba(112,224,163,.25);border-radius:var(--radius);background:linear-gradient(135deg,rgba(112,224,163,.16),rgba(147,197,253,.08));padding:18px;box-shadow:var(--shadow)}.total-card span,.total-card small{display:block;color:var(--muted)}.total-card strong{display:block;font-size:30px;margin:4px 0}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.kpi,.panel{border:1px solid var(--line);background:rgba(17,28,51,.78);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi{padding:18px}.kpi span{color:var(--muted);font-size:13px}.kpi strong{display:block;font-size:24px;margin-top:7px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel{padding:18px;min-height:320px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.panel h2{margin:0;font-size:18px}.panel p{margin:4px 0 0;color:var(--muted);font-size:13px}.debt-list{display:grid;gap:10px;max-height:500px;overflow:auto;padding-right:4px}.debt-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:rgba(255,255,255,.035)}.debt-item .name{font-weight:800}.debt-item .meta{color:var(--muted);font-size:12px;margin-top:3px}.debt-item .amount{text-align:right;font-weight:900;font-size:18px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;margin-left:6px}.badge.high{background:rgba(251,113,133,.15);color:#fecdd3}.badge.closeable{background:rgba(112,224,163,.14);color:#bbf7d0}.badge.closed{background:rgba(148,163,184,.13);color:#cbd5e1}.bar-chart{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:130px 1fr 95px;gap:10px;align-items:center}.bar-label{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:16px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),#38bdf8)}.bar-value{text-align:right;color:var(--muted);font-size:13px}.table-list{display:grid;gap:10px;max-height:500px;overflow:auto;padding-right:4px}.table-row{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);padding:12px}.table-row strong{font-size:14px}.table-row span{font-size:13px;color:var(--muted)}
.due-row{display:grid;grid-template-columns:1fr 1fr .9fr .9fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);padding:12px}.due-row strong{font-size:14px}.due-row span{font-size:13px;color:var(--text)}.due-row small{display:block;color:var(--muted);font-size:11px;margin-bottom:2px}.status-pill{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900;text-align:center}.status-pill.safe{background:rgba(112,224,163,.14);color:#bbf7d0}.status-pill.due-soon{background:rgba(251,191,36,.14);color:#fde68a}.status-pill.urgent,.status-pill.due-today{background:rgba(251,146,60,.16);color:#fed7aa}.status-pill.overdue{background:rgba(251,113,133,.16);color:#fecdd3}.status-pill.waiting{background:rgba(148,163,184,.13);color:#cbd5e1}.due-soon{color:var(--warn)!important;font-weight:800}.overdue{color:var(--danger)!important;font-weight:800}.income-panel{margin-top:14px;min-height:auto}.income-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.income-grid div{border:1px solid var(--line);border-radius:18px;padding:16px;background:rgba(255,255,255,.035)}.income-grid span{display:block;color:var(--muted);font-size:13px}.income-grid strong{display:block;font-size:24px;margin-top:6px}
@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.dashboard-grid,.kpi-row,.income-grid{grid-template-columns:1fr}.topbar{display:block}.total-card{margin-top:14px}.bar-row{grid-template-columns:100px 1fr 80px}.due-row{grid-template-columns:1fr 1fr}.main{padding:16px}.sidebar{padding:16px}}

.action-btn,.save-btn,.ghost-btn{border:0;border-radius:14px;padding:10px 14px;font-weight:900;cursor:pointer}.action-btn,.save-btn{background:linear-gradient(90deg,var(--accent),#38bdf8);color:#062014}.ghost-btn{background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--line)}.income-head{gap:12px}.income-form{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.income-form.hidden{display:none}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.form-grid label{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.form-grid input{width:100%;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.06);color:var(--text);padding:12px;font-size:16px;outline:none}.form-grid input:focus{border-color:rgba(112,224,163,.55);box-shadow:0 0 0 3px rgba(112,224,163,.10)}.form-actions{margin-top:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-actions small{color:var(--muted)}@media(max-width:1050px){.form-grid{grid-template-columns:1fr}.income-head{align-items:stretch}.action-btn{width:100%}}

.section-title{font-size:15px;margin:18px 0 10px;color:var(--text)}
.deduct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.deduct-grid div{border:1px solid var(--line);border-radius:18px;padding:16px;background:rgba(255,255,255,.026)}.deduct-grid span{display:block;color:var(--muted);font-size:13px}.deduct-grid strong{display:block;font-size:20px;margin-top:6px}.net-box{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:12px;margin-top:14px}.net-box div{border:1px solid var(--line);border-radius:18px;padding:16px;background:rgba(255,255,255,.035)}.net-box .highlight{border-color:rgba(112,224,163,.35);background:linear-gradient(135deg,rgba(112,224,163,.13),rgba(56,189,248,.08))}.net-box span{display:block;color:var(--muted);font-size:13px}.net-box strong{display:block;font-size:24px;margin-top:6px}.income-form h3{margin:12px 0;color:var(--text);font-size:15px}.deductions-form{grid-template-columns:repeat(4,1fr)}
@media(max-width:1050px){.deduct-grid,.net-box,.deductions-form{grid-template-columns:1fr}}

.top-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;min-width:520px;align-items:stretch}.top-actions .total-card{grid-column:1 / -1}.action-btn.secondary{background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--line)}.table-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.status-pill.paid{background:rgba(112,224,163,.18);color:#bbf7d0}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;z-index:100}.modal.hidden{display:none}.modal-card{width:min(720px,100%);border:1px solid var(--line);background:linear-gradient(135deg,#111c33,#172542);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.45);padding:20px}.modal-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.modal-head h2{margin:0;font-size:22px}.modal-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.close-btn{border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);font-size:24px;width:42px;height:42px;border-radius:14px;cursor:pointer}.payment-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-form label{display:grid;gap:8px;color:var(--muted);font-weight:800;font-size:13px}.payment-form input,.payment-form select{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.06);color:var(--text);padding:12px;font-size:16px;outline:none}.payment-form select option{background:#111c33;color:var(--text)}.payment-form .form-actions{grid-column:1 / -1}
@media(max-width:1050px){.top-actions{min-width:0;grid-template-columns:1fr}.payment-form{grid-template-columns:1fr}.topbar{gap:14px}}

/* v0.10 page navigation and left-side action buttons */
.side-action-block{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:10px}
.side-action{width:100%;border:0;border-radius:16px;padding:14px 14px;text-align:left;font-weight:900;color:#082033;cursor:pointer;box-shadow:var(--shadow)}
.side-action.income{background:linear-gradient(135deg,#70e0a3,#38bdf8)}
.side-action.payment{background:linear-gradient(135deg,#38bdf8,#70e0a3)}
.side-action.active-action{outline:2px solid rgba(255,255,255,.38);transform:translateY(-1px)}
.app-page.hidden{display:none!important}
.form-page-panel{max-width:1120px;margin:0 auto 18px}
.form-page-form{display:block!important;margin-top:18px;padding:0;border:0;background:transparent}
.payment-page-grid{grid-template-columns:1.2fr 1fr 1fr 1.4fr}
.sticky-actions{position:sticky;bottom:18px;z-index:3;background:rgba(15,23,42,.85);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:22px}
.payment-history-panel{max-width:1120px;margin:18px auto 0}
.empty-state{padding:18px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.payment-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
@media(max-width:900px){.payment-page-grid{grid-template-columns:1fr}.side-action-block{margin-top:18px}.sticky-actions{position:static}}
