@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700;800&display=swap');
:root{
  --bg:#F3F6FB; --card:#fff; --text:#0F172A; --muted:#64748B;
  --primary:#1F7AFF; --navy:#083870; --accent:#F09018;
  --radius:22px; --shadow:0 16px 40px rgba(15,23,42,.08); --shadow-soft:0 10px 30px rgba(15,23,42,.06);
  --border:1px solid rgba(15,23,42,.08);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:"Tajawal",system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text);direction:rtl}
a{color:inherit}
.app{display:flex;min-height:100vh}
.sidebar{width:300px;background:#fff;padding:22px 18px;border-left:var(--border);position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:12px 10px 18px}
.brand img{width:74px;height:auto;display:block}
.brand .name{font-weight:800;color:var(--navy);line-height:1.1}
.brand .sub{font-size:12px;color:var(--muted);margin-top:2px}
.nav{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.nav a{text-decoration:none;color:#0F172A;padding:12px 12px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:.15s}
.nav a:hover{background:rgba(31,122,255,.08)}
.nav a.active{background:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(31,122,255,.26)}
.nav .icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(31,122,255,.10);font-size:12px}
.nav a.active .icon{background:rgba(255,255,255,.18)}
.content{flex:1;padding:22px 26px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.search{flex:1;display:flex;align-items:center;background:#fff;border-radius:999px;padding:10px 14px;box-shadow:var(--shadow-soft);max-width:620px;border:1px solid rgba(15,23,42,.05)}
.search input{border:0;outline:0;width:100%;font-size:14px;background:transparent;color:var(--text)}
.pills{display:flex;gap:10px;align-items:center}
.pill{border:0;background:#fff;padding:10px 14px;border-radius:999px;box-shadow:var(--shadow-soft);color:var(--muted);cursor:pointer;text-decoration:none}
.btn{border:0;background:var(--primary);color:#fff;padding:10px 14px;border-radius:14px;cursor:pointer;font-weight:700;box-shadow:0 10px 22px rgba(31,122,255,.22);text-decoration:none;display:inline-block}
.btn.secondary{background:#fff;color:#0F172A;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow-soft)}
.btn.danger{background:#EF4444}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpiCard{background:var(--card);border-radius:var(--radius);padding:16px 16px;box-shadow:var(--shadow-soft);border:1px solid rgba(15,23,42,.06);text-decoration:none;display:block;min-height:98px;position:relative;overflow:hidden}
.kpiCard:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(15,23,42,.08)}
.kpiCard .label{font-size:12px;color:#64748B;margin-bottom:8px}
.kpiCard .value{font-size:30px;font-weight:900;color:#0B3A78;line-height:1}
.kpiCard .meta{margin-top:10px;font-size:12px;color:#94A3B8;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chartWrap{width:100%;min-height:260px}
.chartWrap canvas{width:100% !important;height:260px !important}
.card{background:var(--card);border-radius:var(--radius);padding:18px 18px;box-shadow:var(--shadow-soft);border:1px solid rgba(15,23,42,.06)}
.card h3{margin:0 0 12px 0;font-size:16px;color:#334155}
.small{font-size:12px;color:#94A3B8}
.kpi{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kpi .value{font-size:28px;font-weight:800;color:#0B3A78}

.tableWrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.tableWrap .table{min-width:920px}
.table{width:100%;border-collapse:separate;border-spacing:0 10px}
.table th{font-size:12px;color:#64748B;text-align:right;padding:0 8px}
.table td{background:#fff;border:1px solid rgba(15,23,42,.06);padding:12px 10px;vertical-align:top}
.table tr td:first-child{border-top-right-radius:14px;border-bottom-right-radius:14px}
.table tr td:last-child{border-top-left-radius:14px;border-bottom-left-radius:14px}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid rgba(15,23,42,.10);background:rgba(15,23,42,.03);color:#0F172A}
.badge.blue{border-color:rgba(31,122,255,.20);background:rgba(31,122,255,.08)}
.badge.orange{border-color:rgba(240,144,24,.25);background:rgba(240,144,24,.10)}
.badge.red{border-color:rgba(239,68,68,.22);background:rgba(239,68,68,.10)}
.badge.green{border-color:rgba(34,197,94,.20);background:rgba(34,197,94,.10)}
.form{display:grid;gap:12px}
.field label{display:block;font-size:13px;color:#334155;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 12px;border-radius:14px;border:1px solid rgba(15,23,42,.12);background:#fff;outline:none}
.field textarea{min-height:90px;resize:vertical}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bubbles{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.bubble{background:rgba(31,122,255,.08);border:1px solid rgba(31,122,255,.14);color:#1E293B;padding:10px 12px;border-radius:999px;font-size:13px}
.bubble b{color:var(--navy)}
.flash{margin:0 0 14px 0;padding:12px 14px;border-radius:14px;border:1px solid rgba(34,197,94,.20);background:rgba(34,197,94,.10);color:#14532d}
.flash.err{border-color:rgba(239,68,68,.22);background:rgba(239,68,68,.10);color:#7f1d1d}
.hr{height:1px;background:rgba(15,23,42,.08);margin:14px 0;border:0}
.footer-note{margin:26px 0 8px 0;font-size:12px;color:#94A3B8;text-align:center;width:100%}
@media (max-width:1100px){.grid{grid-template-columns:1fr}}
@media (max-width:900px){
  .sidebar{
    display:block;
    position:fixed;
    top:0; right:0;
    height:100vh;
    width:280px;
    z-index:2000;
    transform:translateX(110%);
    transition:transform .2s ease;
    box-shadow:0 24px 60px rgba(15,23,42,.18);
  }
  .app.sidebar-open .sidebar{transform:translateX(0)}
  .sidebarOverlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.35);
    z-index:1500;
  }
  .app.sidebar-open .sidebarOverlay{display:block}
  .content{padding:16px}
  .row{grid-template-columns:1fr}
  .search{max-width:100%}
}
@media (max-width:1100px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.kpi-row{grid-template-columns:1fr}}

.chartWrap{position:relative}
.chartWrap canvas{width:100% !important;height:260px !important}
.chartWrap.donut canvas{height:320px !important}


/* Sidebar UI (icons + spacing) */
.nav a{justify-content:flex-start;gap:12px}
.nav a .icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(31,122,255,.10)}
.nav a .icon svg{width:18px;height:18px;stroke:currentColor}
.nav a .txt{flex:1;font-weight:600}
.nav a.active .icon{background:rgba(255,255,255,.18)}

/* Mobile hamburger */
.hamburger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;border:1px solid rgba(15,23,42,.10);background:#fff;cursor:pointer}
.hamburger svg{width:20px;height:20px;stroke:#0F172A}
@media (max-width:900px){
  .hamburger{display:inline-flex}
  body.sidebar-lock{overflow:hidden}
}

/* ---- Mobile sizing refinements ---- */
.tableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:600px){
  .content{padding:14px 12px}
  .topbar{flex-wrap:wrap;gap:10px}
  .pills{flex-wrap:wrap}
  .search{max-width:100%}
  .card{border-radius:18px}
}
@media (max-width:480px){
  .sidebar{width:260px}
  .brand img{width:56px}
  .brand .name{font-size:14px}
  .nav a{padding:10px 10px}
  .nav .icon{width:30px;height:30px;border-radius:10px}
  .content{padding:12px 10px}
  .btn{width:100%}
  input,select,textarea{font-size:16px}
  .grid,.row{gap:12px}
}
@supports (padding: max(0px, 1px)){
  @media (max-width:900px){
    .content{padding-top:max(16px, env(safe-area-inset-top))}
  }
}

/* ---- Mobile sidebar stability (Carlink) ---- */
.sidebar{will-change:transform;contain:layout paint;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.sidebarOverlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1999;display:none}
@media (max-width:900px){
  .sidebar{height:100dvh;transform:translate3d(110%,0,0)}
  .app.sidebar-open .sidebar{transform:translate3d(0,0,0)}
  .app.sidebar-open .sidebarOverlay{display:block}
  body.sidebar-lock{overflow:hidden;touch-action:none}
}
@media (max-width:480px){
  .sidebar{width:260px}
  .content{padding:12px 10px}
  .tableWrap .table{min-width:760px}
  input,select,textarea{font-size:16px}
  .btn{width:100%}
}
@supports (padding:max(0px,1px)){
  @media (max-width:900px){
    .content{padding-top:max(16px, env(safe-area-inset-top))}
  }
}

/* ---- Forms/cards sizing fixes (mobile) ---- */
@media (max-width:900px){
  .grid{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .card{padding:16px}
}

