:root{--brand:#2a6b82;--brand-d:#1b4a5c;--accent:#31a9c5;--accent-d:#1b7f9c;--bg:#d6e9f0;--bs-success:#2a6b82;--bs-success-rgb:42,107,130;--bs-success-text-emphasis:#163b49;--bs-success-bg-subtle:#e1f1f6;--bs-success-border-subtle:#b9dde8;--bs-link-color:#1b4a5c;--bs-link-hover-color:#31a9c5}
body{background-color:#d6e9f0;background-image:radial-gradient(circle at 100% 0,rgba(49,169,197,.30),transparent 46%),radial-gradient(circle at 0 100%,rgba(27,74,92,.20),transparent 52%),linear-gradient(180deg,#e4f2f7,#d0e6ee);background-attachment:fixed;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.layout{display:flex;min-height:100vh}
.sidebar{--bs-offcanvas-width:250px;width:250px;flex-shrink:0;background-color:var(--brand-d);background-image:linear-gradient(180deg,var(--brand-d),var(--brand))}
.sidebar .brand{color:#fff;font-weight:700;font-size:1.2rem;padding:1.1rem 1rem;border-bottom:3px solid var(--accent)}
.sidebar .nav-link{color:#e6f3f7;border-radius:8px;margin:.2rem 0;padding:.65rem .9rem}
.sidebar .nav-link i{margin-right:.5rem}
.sidebar .nav-link:hover{background:rgba(255,255,255,.15);color:#fff}
.sidebar .nav-link.active{background:var(--accent-d);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.sidebar .logout{background:rgba(49,169,197,.3)}
@media(min-width:992px){.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}}
.main{flex:1;min-width:0}
.topbar{background:linear-gradient(90deg,var(--brand-d),var(--brand));border-bottom:3px solid var(--accent);color:#fff;height:58px;position:sticky;top:0;z-index:100}
.card{border:0;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.card-header{background:#fff;font-weight:600;border-bottom:2px solid var(--brand)}
.stat{color:#fff;border-radius:12px;padding:1.1rem;position:relative;overflow:hidden}
.stat .num{font-size:clamp(1.05rem,3.8vw,1.5rem);font-weight:700;word-break:break-word;line-height:1.25}
.stat i{position:absolute;right:12px;top:8px;font-size:2.6rem;opacity:.25}
.bg-g{background:linear-gradient(135deg,var(--brand),var(--brand-d))}
.bg-r{background:linear-gradient(135deg,var(--accent),var(--accent-d))}
.btn-theme{background:linear-gradient(90deg,var(--brand),var(--accent));color:#fff;border:0}
.btn-theme:hover{color:#fff;opacity:.92}
.table thead{background:var(--brand-d);color:#fff}
.table-hover tbody tr:hover{background:#e6f3f7}
.table{--bs-table-bg:#fff}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(49,169,197,.25)}
.login-bg{background:linear-gradient(120deg,var(--brand-d) 50%,var(--accent-d) 50%)}
.login-card{width:100%;max-width:410px;border-radius:16px;overflow:hidden}
.login-head{background:linear-gradient(90deg,var(--brand),var(--accent))}
@media print{.sidebar,.topbar,.no-print{display:none!important}.p-md-4{padding:0!important}}

.btn-success{--bs-btn-bg:#2a6b82;--bs-btn-border-color:#2a6b82;--bs-btn-hover-bg:#1b4a5c;--bs-btn-hover-border-color:#1b4a5c;--bs-btn-active-bg:#1b4a5c;--bs-btn-active-border-color:#1b4a5c;--bs-btn-disabled-bg:#2a6b82;--bs-btn-disabled-border-color:#2a6b82}
.btn-outline-success{--bs-btn-color:#2a6b82;--bs-btn-border-color:#2a6b82;--bs-btn-hover-bg:#2a6b82;--bs-btn-hover-border-color:#2a6b82;--bs-btn-active-bg:#2a6b82;--bs-btn-active-border-color:#2a6b82}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-d);color:#fff}
.btn-outline-accent{color:var(--accent-d);border-color:var(--accent)}.btn-outline-accent:hover,.btn-check:checked+.btn-outline-accent{background:var(--accent);border-color:var(--accent);color:#fff}
.text-accent{color:var(--accent-d)!important}.border-accent{border-color:var(--accent)!important}
.brand-logo{display:block;background:#fff;border-radius:10px;padding:6px 10px;max-width:100%;height:46px;width:auto}
.login-logo{background:#fff;border-radius:12px;padding:8px 14px;height:64px;width:auto;max-width:100%}

/* ---- Dashboard ---- */
.bg-m{background:linear-gradient(135deg,var(--brand),var(--accent))}
.bg-d{background:linear-gradient(135deg,#12333f,var(--brand-d))}
.welcome{background:linear-gradient(110deg,var(--brand-d),var(--brand) 62%,var(--accent));color:#fff;border-radius:14px;padding:1.2rem 1.4rem;position:relative;overflow:hidden}
.welcome::after{content:"";position:absolute;right:6%;top:-30%;width:46px;height:170%;background:rgba(255,255,255,.14);transform:skewX(-8deg)}
.welcome h4{font-size:clamp(1.15rem,3.4vw,1.6rem);font-weight:700;margin:0}
.welcome .btn{position:relative;z-index:1}
.btn-light-brand{background:#fff;color:var(--brand-d);border:0;font-weight:600}
.btn-light-brand:hover{background:var(--accent);color:#fff}
.btn-ghost{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background:#fff;color:var(--brand-d)}
.bars{display:flex;align-items:flex-end;gap:2%;height:220px;padding-top:6px}
.bgrp{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;align-items:center}
.pair{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%;border-bottom:2px solid #d5e3e9}
.bar{width:38%;max-width:26px;min-height:2px;border-radius:5px 5px 0 0}
.bar.r{background:var(--accent)}.bar.e{background:var(--brand-d)}
.bgrp small{color:#5b6f78;margin-top:4px;font-size:.78rem}
.dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:middle}
.stackbar{height:16px;border-radius:8px;overflow:hidden;display:flex;background:#e3edf1}
.stackbar span{display:block;height:100%}
@media(max-width:575.98px){.welcome{padding:1rem}.bars{height:180px}.card-header{font-size:.95rem}}

.chip{display:inline-block;padding:.28em .75em;border-radius:20px;font-size:.78rem;font-weight:600;line-height:1.2}
.chip-Paid{background:#1b4a5c;color:#fff}
.chip-Partial{background:#31a9c5;color:#fff}
.chip-Unpaid{background:#e6f3f7;color:#1b4a5c;border:1px solid #31a9c5}
