/* ===== Design system — شركة الضحى لخدمات الدفع الإلكترونى ===== */
:root{
  --sb-w:268px; --sb-bg:#0b1b34; --sb-fg:#aebbd3; --sb-hover:rgba(255,255,255,.06);
  --accent:#f5a524; --brand:#2f5bea; --brand-dark:#2349c7;
  --bg:#f3f5f9; --card:#fff; --border:#e5e9f1; --text:#1a2338; --muted:#6a7690; --th-bg:#f8f9fc; --row-hover:#f6f8fd;
  --radius:14px; --shadow:0 1px 2px rgba(16,24,40,.04),0 4px 14px rgba(16,24,40,.05);
  --bs-primary:#2f5bea; --bs-primary-rgb:47,91,234; --bs-link-color:#2f5bea; --bs-link-hover-color:#2349c7;
  --bs-body-font-family:'Cairo','Segoe UI',Tahoma,sans-serif; --bs-body-bg:var(--bg); --bs-body-color:var(--text);
}
[data-bs-theme=dark]{
  --sb-bg:#070e1c; --bg:#0c1322; --card:#131c31; --border:#222e49; --text:#e6eaf3; --muted:#92a0ba; --th-bg:#17223a; --row-hover:#18233d;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25);
  --bs-link-color:#7c9bff; --bs-link-hover-color:#a3b8ff;
}
body{background:var(--bg);color:var(--text);font-family:var(--bs-body-font-family);font-size:.94rem}
a{text-decoration:none}

/* ---- Layout ---- */
.sb{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sb-w);background:var(--sb-bg);color:var(--sb-fg);display:flex;flex-direction:column;z-index:1040;transition:transform .25s}
.sb-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.25rem 1rem;color:#fff;font-weight:700;font-size:1.05rem}
.sb-logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#ff7a18);display:grid;place-items:center;color:#0b1b34;font-size:1.25rem}
.sb-brand small{display:block;font-weight:400;font-size:.72rem;color:var(--sb-fg)}
.sb-nav{flex:1;overflow-y:auto;padding:.5rem .85rem 1rem}
.sb-sec{font-size:.7rem;letter-spacing:.04em;color:#6f7f9f;padding:1rem .75rem .35rem;font-weight:600}
.sb-link{display:flex;align-items:center;gap:.75rem;padding:.62rem .85rem;border-radius:10px;color:var(--sb-fg);margin-bottom:2px;position:relative;transition:.15s}
.sb-link i{font-size:1.1rem;opacity:.9}
.sb-link:hover{background:var(--sb-hover);color:#fff}
.sb-link.active{background:rgba(245,165,36,.14);color:#fff;font-weight:600}
.sb-link.active::before{content:"";position:absolute;inset-inline-start:-.85rem;top:20%;bottom:20%;width:4px;border-radius:4px;background:var(--accent)}
.sb-user{display:flex;align-items:center;gap:.7rem;padding:1rem 1.1rem;border-top:1px solid rgba(255,255,255,.08);color:#fff}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:grid;place-items:center;font-weight:700;color:#fff;flex:none}
.sb-user small{display:block;color:var(--sb-fg);font-size:.72rem}
.sb-backdrop{display:none}
.main{margin-inline-start:var(--sb-w);min-height:100vh}
.topbar{position:sticky;top:0;z-index:1030;display:flex;align-items:center;gap:.75rem;padding:.8rem 1.5rem;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topbar h1{font-size:1.2rem;font-weight:700;margin:0}
.topbar .date{color:var(--muted);font-size:.8rem}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);display:grid;place-items:center;cursor:pointer}
.icon-btn:hover{border-color:var(--brand);color:var(--brand)}
.content{padding:1.5rem}
.menu-btn{display:none}

/* ---- Cards / tables ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text)}
.card-header{background:transparent;border-bottom:1px solid var(--border);font-weight:700;padding:.9rem 1.1rem}
.card-body{padding:1.1rem}
.card>.table-responsive,.card>.table{border-radius:var(--radius);overflow:hidden}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text);--bs-table-hover-bg:var(--row-hover);margin:0}
.table>:not(caption)>*>*{padding:.72rem 1rem;border-bottom-color:var(--border)}
.table th{background:var(--th-bg);color:var(--muted);font-weight:600;font-size:.8rem;white-space:nowrap}
.table tr:hover td{background:var(--row-hover)}
.table-secondary,.table-secondary>td{--bs-table-bg:var(--th-bg);color:var(--muted)}
.empty-row td{text-align:center;color:var(--muted);padding:2.2rem 1rem!important}
.empty-row i{display:block;font-size:1.8rem;opacity:.5;margin-bottom:.3rem}

/* ---- Stat cards ---- */
.stat{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;height:100%}
.stat .ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.3rem;flex:none}
.stat .lbl{color:var(--muted);font-size:.78rem;line-height:1.3}
.stat .val{font-size:1.3rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.tone-primary{background:rgba(47,91,234,.12);color:#2f5bea}.tone-info{background:rgba(14,165,233,.13);color:#0ea5e9}
.tone-success{background:rgba(22,163,74,.13);color:#16a34a}.tone-warning{background:rgba(245,165,36,.17);color:#d98a06}
.tone-secondary{background:rgba(100,116,139,.15);color:#64748b}.tone-danger{background:rgba(220,38,38,.12);color:#dc2626}.tone-dark{background:rgba(15,23,42,.1);color:#334155}
[data-bs-theme=dark] .tone-dark{background:rgba(255,255,255,.1);color:#cbd5e1}
.badge-soft{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}

/* ---- Forms / buttons ---- */
.form-control,.form-select{border-radius:10px;border-color:var(--border);background-color:var(--card);color:var(--text);padding:.55rem .8rem}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(47,91,234,.15)}
.form-label{font-weight:600;font-size:.84rem;color:var(--muted);margin-bottom:.3rem}
.btn{border-radius:10px;font-weight:600}
.btn-primary{--bs-btn-bg:#2f5bea;--bs-btn-border-color:#2f5bea;--bs-btn-hover-bg:#2349c7;--bs-btn-hover-border-color:#2349c7;--bs-btn-active-bg:#1d3fb0}
.btn-warning{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:#1a2338;--bs-btn-hover-bg:#e0950f;--bs-btn-hover-border-color:#e0950f}
.btn-sm{padding:.3rem .7rem;font-size:.8rem}
.modal-content{border:0;border-radius:18px;background:var(--card);color:var(--text);box-shadow:0 24px 60px rgba(0,0,0,.25)}
.modal-header,.modal-footer{border-color:var(--border)}
[data-bs-theme=dark] .btn-close{filter:invert(1)}
.pagination .page-link{border-radius:8px;margin:0 2px;border-color:var(--border);background:var(--card)}
.alert{border:0;border-radius:12px;box-shadow:var(--shadow)}
.alert-ok{background:#e8f7ee;color:#146c3a}.alert-err{background:#fdeceb;color:#a12622}
[data-bs-theme=dark] .alert-ok{background:#12301f;color:#7ee2a8}[data-bs-theme=dark] .alert-err{background:#3a1a19;color:#ffb3ae}
.chart-box{position:relative;height:260px}

/* ---- Login ---- */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.auth-brand{background:radial-gradient(circle at 20% 20%,#16346a,#0b1b34 60%);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between}
.auth-brand h2{font-weight:800;font-size:2rem;line-height:1.5}
.auth-brand p{color:#aebbd3;max-width:420px}
.auth-feat{display:flex;gap:.7rem;align-items:center;color:#c7d2e5;margin-top:.7rem}
.auth-feat i{color:var(--accent)}
.auth-form{display:grid;place-items:center;padding:2rem;background:var(--bg)}
.auth-form .card{width:100%;max-width:410px;padding:2rem}
@media(max-width:991px){
  .sb{transform:translateX(100%)}[dir=ltr] .sb{transform:translateX(-100%)}
  .sb.open{transform:none!important}
  .sb-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1035}
  .main{margin-inline-start:0}.menu-btn{display:grid}.content{padding:1rem}.topbar{padding:.7rem 1rem}.topbar .date{display:none}
  .auth{grid-template-columns:1fr}.auth-brand{display:none}
}
@media print{.sb,.topbar,.btn,.pagination{display:none!important}.main{margin:0}}

.brand-logo{height:46px;width:auto;border-radius:8px;flex:none}
.brand-logo-lg{height:84px}
.auth-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;text-align:center}
.auth-logo{width:min(300px,70%);height:auto;border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.auth-hero h1{font-weight:800;font-size:1.9rem;line-height:1.6;margin:0}
