:root{
  --bg:#f4f2ee;
  --surface:#ffffff;
  --surface-2:#faf9f6;
  --ink:#16171a;
  --muted:#74777f;
  --line:#e7e2da;
  --line-dark:#d8d1c7;
  --red:#b81622;
  --red-deep:#871019;
  --gold:#b58a45;
  --charcoal:#101114;
  --charcoal-2:#181a1f;
  --charcoal-3:#24262c;
  --green:#147443;
  --whatsapp:#1f9d5a;
  --shadow:0 18px 50px rgba(20,20,25,.08);
  --shadow-soft:0 8px 24px rgba(20,20,25,.055);
  --radius:18px;
}

*{box-sizing:border-box}
html,body,form{margin:0;min-height:100%;max-width:100%;overflow-x:hidden}
html{font-family:"Segoe UI",Inter,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}
body{background:radial-gradient(circle at 85% -10%,rgba(181,138,69,.12),transparent 34%),var(--bg)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
input,select,textarea{max-width:100%}

/* ---------- Authentication / public payment ---------- */
.auth-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 10%,rgba(184,22,34,.32),transparent 30%),
    radial-gradient(circle at 85% 90%,rgba(181,138,69,.17),transparent 32%),
    linear-gradient(145deg,#090a0d 0%,#15171c 55%,#261014 100%);
  display:grid;
  place-items:center;
  padding:26px 16px;
}
.auth-card{
  width:min(540px,100%);
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.985);
  border:1px solid rgba(255,255,255,.7);
  border-radius:24px;
  padding:30px;
  box-shadow:0 35px 100px rgba(0,0,0,.38);
}
.auth-card:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--red),var(--gold),var(--red))}
.brand{display:flex;gap:13px;align-items:center;margin-bottom:26px}
.brand:before{content:"KD";display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:linear-gradient(145deg,#18191e,#060607);color:#fff;font-weight:900;letter-spacing:.04em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.18)}
.brand strong{display:block;font-size:1rem;letter-spacing:.01em}
.brand span{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.auth-card h1{font-size:clamp(1.8rem,5vw,2.25rem);line-height:1.08;margin:3px 0 9px;letter-spacing:-.035em}
.sub{color:var(--muted);line-height:1.6;margin:0 0 24px;font-size:.94rem}
.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:17px;font-size:.88rem}.auth-links a{color:var(--red-deep);font-weight:750}
.step-note{padding:12px 13px;background:#fff8e8;border:1px solid #f0dfb9;border-radius:11px;color:#725314;font-size:.84rem;margin:12px 0;line-height:1.5}
.pay-box{text-align:center}.amount{font-size:2.55rem;font-weight:900;margin:9px 0;letter-spacing:-.04em}

/* ---------- Forms ---------- */
.field{display:grid;gap:7px;margin-bottom:14px;min-width:0}
.field label{font-size:.76rem;font-weight:800;color:#4a4d54;letter-spacing:.025em}
.input,.select,.textarea{
  width:100%;min-width:0;border:1px solid var(--line-dark);border-radius:11px;padding:12px 13px;background:#fff;color:var(--ink);outline:none;transition:border .18s,box-shadow .18s,background .18s
}
.input:hover,.select:hover,.textarea:hover{border-color:#c8c0b5}
.input:focus,.select:focus,.textarea:focus{border-color:rgba(184,22,34,.56);box-shadow:0 0 0 4px rgba(184,22,34,.075);background:#fff}
.textarea{resize:vertical;min-height:88px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .span2{grid-column:1/-1}

/* ---------- Buttons ---------- */
.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;transition:transform .16s,box-shadow .16s,background .16s;border:1px solid transparent;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--red),var(--red-deep));color:#fff;box-shadow:0 8px 20px rgba(184,22,34,.2)}
.btn-dark{background:linear-gradient(145deg,#202228,#101114);color:#fff;box-shadow:0 8px 20px rgba(16,17,20,.14)}
.btn-soft{background:#f2f0ec;color:#222;border-color:#e8e3dc}
.btn-success{background:linear-gradient(135deg,#16804a,#0f6137);color:#fff}
.btn-outline{background:#fff;color:#303239;border-color:#d9d3ca}
.btn-whatsapp{background:#e8f8ef;color:#0b6d39;border-color:#c7ecd7}
.btn-sm{padding:8px 10px;min-height:34px;font-size:.78rem}.full{width:100%}

/* ---------- Alerts ---------- */
.msg{display:block;padding:12px 14px;border-radius:11px;margin:0 0 16px;font-size:.88rem;border:1px solid transparent}
.msg-ok{background:#eaf7ef;color:#155e39;border-color:#ccebd8}.msg-error{background:#fff0f0;color:#931722;border-color:#f1cfd2}

/* ---------- Portal shell ---------- */
.portal-top{position:sticky;top:0;z-index:30;background:rgba(13,14,17,.97);backdrop-filter:blur(14px);color:#fff;border-bottom:1px solid rgba(255,255,255,.07)}
.top-inner{width:100%;max-width:1680px;margin:auto;padding:11px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.top-brand{display:flex;align-items:center;gap:11px;min-width:0}.top-brand-mark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:linear-gradient(145deg,var(--red),#741019);font-size:.8rem;font-weight:900;letter-spacing:.04em;box-shadow:0 7px 18px rgba(184,22,34,.25)}
.top-brand strong{display:block;font-size:.91rem;letter-spacing:.01em}.top-brand small{display:block;color:#91959e;font-size:.69rem;margin-top:2px}
.top-actions{display:flex;align-items:center;gap:9px;min-width:0}.user-chip{padding:7px 11px;border:1px solid #343740;background:#1a1c21;border-radius:999px;font-size:.78rem;color:#d9dbe0;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-nav-toggle{display:none;background:#24262d;color:#fff;border:1px solid #343741;border-radius:9px;padding:8px 10px;cursor:pointer}

.portal-shell{width:100%;max-width:1680px;margin:0 auto;display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 61px);overflow:hidden}
.side{background:linear-gradient(180deg,#15171b 0%,#101114 100%);padding:22px 13px;border-right:1px solid #25272d;min-width:0}
.nav-group{margin-bottom:22px}.nav-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:#6d717a;padding:0 11px 8px;font-weight:800}
.nav-link{position:relative;display:flex;align-items:center;color:#c9ccd2;padding:10px 12px;border-radius:10px;margin:3px 0;font-size:.84rem;font-weight:650;transition:background .16s,color .16s,transform .16s}
.nav-link:hover,.nav-link.active{background:#24272e;color:#fff;transform:translateX(2px)}
.nav-link.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:4px;background:linear-gradient(var(--red),#e14851)}

.main{width:100%;min-width:0;max-width:100%;padding:30px 30px 38px;overflow:hidden}.main>*{max-width:100%;min-width:0}
.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:22px;min-width:0}.page-head>div{min-width:0}.page-head h1{margin:0;font-size:clamp(1.65rem,2.8vw,2.2rem);line-height:1.08;letter-spacing:-.035em}.page-head p{margin:7px 0 0;color:var(--muted);line-height:1.5;font-size:.91rem}.premium-head{padding:4px 0 2px}.eyebrow,.card-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:.18em;color:var(--red-deep);font-weight:900;margin-bottom:7px}.card-kicker{color:#9b7640;margin-bottom:5px}

/* ---------- Layout / cards ---------- */
.grid{display:grid;gap:16px;min-width:0}.grid>*{min-width:0;max-width:100%}.cards4{grid-template-columns:repeat(4,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}
.card{position:relative;min-width:0;max-width:100%;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:19px;overflow:hidden}.card:hover{border-color:#ddd5ca}
.metric{min-height:118px;display:flex;flex-direction:column;justify-content:center}.metric:after{content:"";position:absolute;right:-35px;top:-48px;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle,rgba(181,138,69,.1),transparent 68%);pointer-events:none}.metric-accent{background:linear-gradient(145deg,#18191d,#101114);color:#fff;border-color:#24262c}.metric-accent .label,.metric-accent .hint{color:#adb0b8}.metric .label{color:var(--muted);font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.065em}.metric .value{font-size:clamp(1.55rem,3vw,2rem);font-weight:900;margin-top:7px;letter-spacing:-.035em}.metric .hint{font-size:.73rem;color:var(--muted);margin-top:4px}
.section-title{font-size:1rem;margin:0 0 13px;letter-spacing:-.01em}.muted{color:var(--muted);font-size:.84rem;line-height:1.55}.section-gap{height:16px}
.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.card-title-row .section-title{margin-bottom:4px}.card-title-row .muted{margin:0}
.finance-actions .card{min-height:100%}

/* ---------- Toolbars / filters ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:end;margin-bottom:14px}.toolbar .field{margin:0;min-width:150px}
.filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(170px,.8fr) minmax(175px,.8fr) auto;gap:11px;align-items:end;padding:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:13px;margin:14px 0}.filter-bar .field{margin:0}.filter-bar-compact{grid-template-columns:minmax(200px,1fr) minmax(190px,.8fr) auto}.filter-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding-bottom:1px}.action-stack{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* ---------- Tables ---------- */
.table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;-webkit-overflow-scrolling:touch}.premium-table{box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.data-grid{width:100%;border-collapse:collapse;background:#fff;font-size:.81rem}.data-grid th{background:#f5f3ef;text-align:left;color:#555961;font-size:.68rem;text-transform:uppercase;letter-spacing:.075em;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:850}.data-grid td{padding:11px 12px;border-bottom:1px solid #efebe5;vertical-align:middle}.data-grid tr:last-child td{border-bottom:0}.data-grid tr:hover td{background:#fcfbf8}.data-grid input[type=text],.data-grid select{padding:7px 8px;border:1px solid var(--line-dark);border-radius:8px;max-width:150px;background:#fff}.data-grid a{font-weight:750}
.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.69rem;font-weight:850}.b-green{background:#e7f7ee;color:#15703e}.b-red{background:#ffeded;color:#a10f15}.b-amber{background:#fff4da;color:#8a5b00}.b-gray{background:#eff0f3;color:#5f636b}

/* ---------- Dashboard utility ---------- */
.kpi-row{display:flex;gap:8px;flex-wrap:wrap}.kpi-pill{padding:8px 10px;background:#f3f1ed;border:1px solid #e9e4dc;border-radius:9px;font-size:.78rem;color:#4d5056}.progressbar{height:8px;background:#ece8e1;border-radius:99px;overflow:hidden}.progressbar span{display:block;height:100%;background:linear-gradient(90deg,var(--red),#df4650)}
.list{display:grid;gap:10px}.list-item{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff}.list-item strong{display:block}.list-item small{color:var(--muted)}.empty{padding:24px;text-align:center;color:var(--muted)}
.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px}.tab{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#ece9e4;font-size:.8rem}.tab.active{background:#111;color:#fff}
.footer{padding:22px;text-align:center;color:#7b7d83;font-size:.75rem;border-top:1px solid var(--line);background:#fff}.footer a{color:#17181b;font-weight:850}

/* ---------- Responsive ---------- */
@media(max-width:1120px){
  .cards4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-col{grid-template-columns:1fr}
  .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-actions{grid-column:1/-1}
}
@media(max-width:1000px){
  .portal-shell{display:block;width:100%;max-width:100%;overflow:hidden}
  .side{display:none;position:fixed;z-index:40;top:61px;bottom:0;left:0;width:min(280px,86vw);overflow:auto;box-shadow:24px 0 55px rgba(0,0,0,.28)}
  .side.open{display:block}.mobile-nav-toggle{display:inline-flex}.main{width:100%;max-width:100%;padding:20px 18px 30px;overflow:hidden}
}
@media(max-width:680px){
  .auth-card{padding:24px 18px;border-radius:19px}.auth-body{padding:14px}
  .form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}
  .top-inner{padding:10px 12px}.top-brand-mark{width:34px;height:34px;flex-basis:34px}.top-brand small{display:none}.user-chip{display:none}
  .main{padding:16px 12px 26px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:16px}.page-head>.btn{width:100%}
  .cards4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:15px;border-radius:14px}.metric{min-height:103px}.metric .value{font-size:1.5rem}
  .filter-bar,.filter-bar-compact{grid-template-columns:1fr;padding:11px}.filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.filter-actions .btn:last-child:nth-child(3){grid-column:1/-1}
  .toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar .field{min-width:0}.toolbar .btn{align-self:end}
  .card-title-row{flex-direction:column}.card-title-row>.btn{width:100%}
  .table-wrap{max-width:100%;width:100%}.data-grid{min-width:680px}.action-stack{min-width:150px}.action-stack .btn{width:100%}
  .footer{padding:20px 12px}
}
@media(max-width:420px){
  .cards4{grid-template-columns:1fr 1fr}.metric{padding:13px}.metric .label{font-size:.64rem}.metric .value{font-size:1.35rem}.metric .hint{font-size:.66rem}
  .top-brand strong{font-size:.82rem}.btn{white-space:normal;text-align:center}
}

/* ---------- Management forms ---------- */
.button-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:4px}
.field-note{display:block;margin-top:6px;color:var(--muted);font-size:.72rem;line-height:1.45}
@media(max-width:680px){.button-row{display:grid;grid-template-columns:1fr 1fr}.button-row .btn{width:100%}}
