:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#172033;background:#f4f7fb;line-height:1.45;
  --brand:#0f766e;--brand-soft:#e7f5f2;--ink:#172033;--muted:#667085;--line:#e2e8f0;
  --danger:#b42318;--danger-soft:#fff0f0;--warn:#b54708;--warn-soft:#fff7ed;--ok:#067647;--ok-soft:#ecfdf3;
  --card:#fff;--shadow:0 18px 55px rgba(27,45,72,.08);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4f7fb;color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.money{font-weight:800}.danger-text{color:var(--danger)}.ok-text{color:var(--ok)}
.auth{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#e7f5f2,#f7fbff 55%,#fff3e6)}
.login{width:min(430px,100%);background:#fff;border:1px solid #dfe7ef;border-radius:24px;padding:28px;box-shadow:0 24px 70px rgba(27,45,72,.13)}
.logo{width:58px;height:58px;border-radius:18px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:30px;font-weight:800}.login h1{font-size:26px;margin:16px 0 4px}.login p{margin:0 0 22px;color:var(--muted)}
.login input{width:100%;padding:13px 14px;border:1px solid #d5dde7;border-radius:12px;margin:6px 0;background:#fff}.note{display:block;margin-top:14px;color:var(--muted);line-height:1.45}.note.err{color:var(--danger)}
.head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid #e5eaf0;padding:14px max(18px,calc((100vw - 1260px)/2));display:flex;justify-content:space-between;align-items:center;gap:14px}.head h1{font-size:20px;margin:0}.cloud{font-size:12px;color:var(--brand)}
.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:12px}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:750;cursor:pointer;transition:.15s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.primary{background:var(--brand);color:white}.soft{background:#eef4f6;color:#25404a}.danger{background:var(--danger-soft);color:var(--danger)}.warning{background:var(--warn-soft);color:var(--warn)}.success{background:var(--ok-soft);color:var(--ok)}.mini{padding:7px 10px;border-radius:9px;font-size:12px}.iconbtn{width:36px;height:36px;padding:0;display:grid;place-items:center}
.nav{display:flex;gap:6px;overflow:auto;padding:12px max(18px,calc((100vw - 1260px)/2));background:#fff;border-bottom:1px solid #e9edf2;position:sticky;top:65px;z-index:19}.nav button{white-space:nowrap;border:0;background:transparent;padding:10px 13px;border-radius:10px;color:#586174;font-weight:750;cursor:pointer}.nav button.active{background:var(--brand-soft);color:var(--brand)}
main{max-width:1260px;margin:auto;padding:20px 18px 60px}.tab{display:none}.tab.active{display:block}.section-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.stats.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:0 1px 1px rgba(16,24,40,.02)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:23px;margin-top:8px}.stat small{display:block;margin-top:5px;color:var(--muted)}
.title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.title h2{margin:0;font-size:22px}.title p{margin:4px 0 0;color:var(--muted)}.card h2,.card h3{margin-top:0}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:13px}.toolbar input,.toolbar select{padding:10px 11px;border:1px solid #d6dee8;border-radius:10px;background:#fff;min-height:42px}.toolbar .grow{flex:1;min-width:180px}
.scroll{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #eef1f4;font-size:13px;vertical-align:top}th{color:var(--muted);background:#fafbfc;position:sticky;top:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#fbfdfd}.actions{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef4f6;font-size:12px;font-weight:700}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.gray{background:#f2f4f7;color:#475467}
.list{display:grid;gap:9px}.due{display:flex;justify-content:space-between;gap:15px;padding:12px;border:1px solid #edf0f3;border-radius:12px;align-items:center}.due small{display:block;color:var(--muted);margin-top:3px}.due.overdue{background:#fffafa;border-color:#fee4e2}.due.soon{background:#fffcf5;border-color:#fef0c7}.due-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.empty{padding:20px;text-align:center;color:var(--muted)}
.mobile-cards{display:none}.mcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:9px}.mcard-head{display:flex;justify-content:space-between;gap:12px}.mcard dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.mcard dt{font-size:11px;color:var(--muted)}.mcard dd{margin:0;font-weight:700}
.bar-chart{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:72px 1fr 110px;gap:10px;align-items:center;font-size:12px}.bar-track{height:9px;background:#edf2f7;border-radius:999px;overflow:hidden}.bar-income,.bar-expense{height:100%;border-radius:999px}.bar-income{background:#0f766e}.bar-expense{background:#d97706}.legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.legend .inc i{background:#0f766e}.legend .exp i{background:#d97706}
.kv{display:grid;grid-template-columns:150px 1fr;gap:7px 14px;font-size:13px}.kv b{color:#475467}.installments{display:grid;gap:7px}.installment{display:grid;grid-template-columns:70px 110px 1fr 110px;gap:10px;align-items:center;padding:9px 10px;border:1px solid #edf0f3;border-radius:10px}.installment.paid{background:#f6fef9}.installment.over{background:#fffafa}.progress{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--brand)}
.report-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric-list{display:grid;gap:8px}.metric-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #eef1f4}.metric-row:last-child{border:0}.audit{display:grid;gap:8px}.audit-item{border-left:3px solid #d0d5dd;padding:8px 10px;background:#fafbfc;border-radius:0 10px 10px 0}.audit-item small{color:var(--muted)}
dialog{width:min(780px,calc(100% - 28px));max-height:90vh;overflow:auto;border:0;border-radius:18px;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.22)}dialog.wide{width:min(980px,calc(100% - 28px))}dialog::backdrop{background:rgba(15,23,42,.48)}form{padding:20px}.dialog-body{padding:20px}.modalhead{display:flex;justify-content:space-between;align-items:start;gap:16px}.modalhead h2{margin:0}.modalhead p{margin:4px 0 15px;color:var(--muted)}.modalhead button{border:0;background:#eef2f6;border-radius:9px;width:36px;height:36px;cursor:pointer}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:750;color:#475467;display:block;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #d6dee8;border-radius:10px;background:#fff}.field textarea{min-height:86px;resize:vertical}.end{justify-content:flex-end;margin-top:17px}.detail-actions{margin-top:18px;border-top:1px solid #eef1f4;padding-top:14px}
#toast{position:fixed;right:18px;bottom:18px;z-index:100;background:#172033;color:#fff;padding:12px 15px;border-radius:11px;opacity:0;transform:translateY(15px);transition:.2s;pointer-events:none;max-width:min(420px,calc(100vw - 36px));box-shadow:var(--shadow)}#toast.show{opacity:1;transform:none}
.print-only{display:none}
@media(max-width:980px){.section-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-breakdown{grid-template-columns:1fr}}
@media(max-width:760px){.fields{grid-template-columns:1fr}.field.full{grid-column:auto}.head{align-items:flex-start}.title{align-items:flex-start;flex-direction:column}.nav{top:73px}.desktop-table{display:none}.mobile-cards{display:grid;gap:10px}.bar-row{grid-template-columns:60px 1fr 90px}.kv{grid-template-columns:1fr}.installment{grid-template-columns:58px 92px 1fr}.installment .installment-amount{grid-column:2/-1}.toolbar>*{flex:1;min-width:140px}.toolbar .btn{flex:0 0 auto}}
@media(max-width:460px){.stats,.stats.compact{grid-template-columns:1fr}.login{padding:22px}.head .row .soft{display:none}.nav{top:73px}.mcard dl{grid-template-columns:1fr}.due{align-items:flex-start;flex-direction:column}.due-actions{justify-content:flex-start}.bar-row{grid-template-columns:54px 1fr}.bar-row>strong{grid-column:2}}
@media print{
  body{background:#fff}.head,.nav,.toolbar,.no-print,#toast,.title .btn{display:none!important}main{max-width:none;padding:0}.tab{display:none!important}#reports.tab{display:block!important}.card,.stat{box-shadow:none;border-color:#bbb}.print-only{display:block}.stats{grid-template-columns:repeat(3,1fr)}
}
