/* ── Sidebar ─────────────────────────────────────────────── */
.sidebar { width:230px; min-width:230px; background:#1a1f36; transition:width .25s; overflow-x:hidden; }
.sidebar.collapsed { width:54px; min-width:54px; }
.sidebar.collapsed .brand-text,
.sidebar.collapsed .sidebar-section-label,
.sidebar.collapsed .sidebar-firm-name,
.sidebar.collapsed .sidebar-link span,
.sidebar.collapsed .sidebar-firm a { display:none; }
.sidebar-brand { color:#fff; font-size:1rem; border-bottom:1px solid rgba(255,255,255,.1); }
.sidebar-firm { background:rgba(255,255,255,.07); border-radius:8px; }
.sidebar-section-label { font-size:10px; font-weight:700; letter-spacing:1px; color:rgba(255,255,255,.4); text-transform:uppercase; }
.sidebar-link { color:rgba(255,255,255,.75)!important; border-radius:6px; font-size:13px; padding:7px 12px; transition:background .15s; white-space:nowrap; }
.sidebar-link:hover,.sidebar-link.active { background:rgba(255,255,255,.12)!important; color:#fff!important; }
/* ── Topbar ──────────────────────────────────────────────── */
.topbar { background:#fff; border-bottom:1px solid #e5e7eb; min-height:50px; box-shadow:0 1px 4px rgba(0,0,0,.06); }
/* ── Auth pages ──────────────────────────────────────────── */
.auth-wrapper { min-height:100vh; background:linear-gradient(135deg,#1a1f36 0%,#2d3561 100%); display:flex; align-items:center; justify-content:center; }
.auth-card { width:100%; max-width:420px; border:none; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.auth-logo { width:54px; height:54px; background:linear-gradient(135deg,#4f6ef7,#845ef7); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff; margin:0 auto 14px; }
.firm-card { cursor:pointer; border:2px solid #dee2e6; border-radius:10px; transition:border-color .15s,box-shadow .15s,transform .15s; }
.firm-card:hover { border-color:#4f6ef7; box-shadow:0 4px 15px rgba(79,110,247,.2); transform:translateY(-2px); }
/* ── Tables ──────────────────────────────────────────────── */
.table-card { border-radius:12px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.table thead th { background:#f8f9fa; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#6c757d; border-bottom:2px solid #dee2e6; }
/* ── Print ───────────────────────────────────────────────── */
@media print { .sidebar,.topbar,.btn,.alert { display:none!important; } main { padding:0!important; } }

/* ── Badge helpers (Customer opening balance) ────────────── */
.badge-dr { background:#fff3f5; color:#dc3545; border:1px solid #f5c2c7; padding:2px 8px; border-radius:20px; font-size:12px; }
.badge-cr { background:#f0fff4; color:#198754; border:1px solid #badbcc; padding:2px 8px; border-radius:20px; font-size:12px; }
