/* ╔══════════════════════════════════════════════════════════════════╗
   ║  نظام الكافي — الهويّة البصريّة الموحّدة (HobeRadius Design System)      ║
   ║  نفس التوكنات: بنفسجيّ #6B5AED، بطاقات 18px، إيقاع أقسام 26px،      ║
   ║  خطّ Cairo، جداول محورها الوسط، سويتش حديث، نافذة عائمة.            ║
   ║  لا hex عارٍ خارج :root — متغيّر أوّلًا.                             ║
   ╚══════════════════════════════════════════════════════════════════╝ */
:root{
  --hub-brand:#6B5AED;--hub-brand-ink:#5B4BD6;--hub-brand-deep:#4836B8;--hub-brand-soft:#F4F1FE;--hub-brand-line:#E5E0F5;--hub-purple-soft:#EDE9FE;
  --hub-bg-page:#EFEDF5;--hub-bg-card:#FFFFFF;--hub-bg-soft:#F8F9FE;--hub-bg-side:#F5F3FB;--hub-bg-hover:#E6E2F2;--hub-bg-icon-idle:#EBE7F4;--hub-bg-icon-hover:#DDD7EE;
  --hub-border:#E8E7F0;--hub-border-soft:#EFEEF6;--hub-border-strong:#D5CCF5;
  --hub-text:#1F2937;--hub-text-soft:#475569;--hub-text-mute:#94A3B8;--hub-text-faint:#C7CBD6;
  --hub-green:#22C55E;--hub-green-soft:#DCFCE7;--hub-green-ink:#15803D;--hub-green-line:#86efac;--hub-green-deep:#166534;
  --hub-amber:#F59E0B;--hub-amber-soft:#FEF3C7;--hub-amber-ink:#92400E;--hub-amber-line:#fcd34d;
  --hub-red:#EF4444;--hub-red-soft:#FEE2E2;--hub-red-ink:#B91C1C;--hub-red-line:#fca5a5;
  --hub-blue:#3B82F6;--hub-blue-soft:#DBEAFE;--hub-blue-ink:#1D4ED8;--hub-blue-line:#bfdbfe;
  --hub-grey-soft:#f1f5f9;--hub-grey-ink:#64748b;--hub-grey-line:#cbd5e1;--hub-track:#d4d4d8;
  --hub-tint-a:#fafbff;--hub-tint-b:#f4f1fe;--hub-tint-hover:#faf8ff;--hub-ok-wash:#f7fdf9;--hub-bad-wash:#fff8f8;
  --hub-gap-xs:4px;--hub-gap-sm:8px;--hub-gap-md:12px;--hub-gap-lg:16px;--hub-gap-xl:24px;--hub-gap-section:26px;--hub-card-pad:18px;
  --hub-r-pill:999px;--hub-r-sm:6px;--hub-r-md:8px;--hub-r-lg:10px;--hub-r-xl:14px;--hub-r-card:18px;--hub-r-panel:22px;
  --hub-sh-sm:0 1px 2px rgba(15,23,42,.04);--hub-sh-md:0 2px 8px rgba(15,23,42,.06);--hub-sh-lg:0 10px 25px rgba(91,75,214,.08);
  --hub-sh-card:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(91,75,214,.05);--hub-sh-hero:0 8px 40px rgba(91,75,214,.12);
  --hub-sh-pop:0 10px 30px rgba(15,23,42,.12);--hub-glow:0 4px 12px rgba(107,90,237,.30);--hub-ring:0 0 0 3px rgba(107,90,237,.15);
  --hub-font:"Cairo","Tajawal","Almarai","Segoe UI",system-ui,-apple-system,sans-serif;--hub-mono:ui-monospace,"JetBrains Mono",Consolas,monospace;
  --hub-anim-fast:140ms;--hub-anim-med:240ms;--hub-ease:cubic-bezier(.4,0,.2,1);
  --side-w:260px;--side-w-collapsed:72px;--topbar-h:50px;
}
*{box-sizing:border-box}
html{background:var(--hub-bg-page);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--hub-font);color:var(--hub-text);font-size:13.5px;line-height:1.55;font-variant-numeric:tabular-nums}
a{color:var(--hub-brand-ink);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.25;color:var(--hub-text)}h1{font-size:22px;font-weight:800}h2{font-size:16px;font-weight:800}h3{font-size:14px;font-weight:800}h4{font-size:13px;font-weight:800}
.muted{color:var(--hub-text-mute)}.small{font-size:12px}.strong{font-weight:700}
.num{direction:ltr;unicode-bidi:isolate;display:inline-block}.ltr{direction:ltr;unicode-bidi:isolate}
.mono{font-family:var(--hub-mono);direction:ltr;unicode-bidi:isolate;font-size:12.5px}
.hidden{display:none!important}[hidden]{display:none!important}
code{font-family:var(--hub-mono);font-size:12px;background:var(--hub-bg-soft);padding:1px 5px;border-radius:var(--hub-r-sm)}

/* ═════════ الهيكل ═════════ */
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--side-w);background:var(--hub-bg-side);border-inline-end:1px solid var(--hub-border);box-shadow:var(--hub-sh-card);position:fixed;inset-block:0;inset-inline-start:0;display:flex;flex-direction:column;z-index:60;transition:transform var(--hub-anim-med) var(--hub-ease),width var(--hub-anim-med) var(--hub-ease)}
.main{flex:1;margin-inline-start:var(--side-w);min-width:0;transition:margin var(--hub-anim-med) var(--hub-ease)}
.shell.collapsed .sidebar{width:var(--side-w-collapsed)}.shell.collapsed .main{margin-inline-start:var(--side-w-collapsed)}
.shell.collapsed .sidebar .brand-text,.shell.collapsed .nav span,.shell.collapsed .nav-foot{display:none}
.shell.collapsed .nav a{justify-content:center;padding:7px}
.brand{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--hub-border);min-height:64px}
.brand img{width:38px;height:38px;border-radius:10px;object-fit:cover}
.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--hub-brand),var(--hub-brand-deep));color:#fff;display:grid;place-items:center;font-size:17px;flex:none;box-shadow:var(--hub-glow)}
.brand-mark.big{width:56px;height:56px;font-size:24px;margin:0 auto 10px;border-radius:14px}
.brand-text{display:flex;flex-direction:column;min-width:0}.brand-text strong{font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text small{font-size:11px;color:var(--hub-text-mute)}
.nav{padding:10px 14px;display:flex;flex-direction:column;gap:3px;overflow:auto;flex:1;scrollbar-width:thin}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:var(--hub-r-lg);color:var(--hub-text);font-size:13.5px;font-weight:700;white-space:nowrap;transition:all var(--hub-anim-fast) var(--hub-ease)}
.nav a i{font-style:normal;width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;font-size:12px;color:var(--hub-text-mute);background:var(--hub-bg-icon-idle);border-radius:var(--hub-r-md);transition:all var(--hub-anim-fast) var(--hub-ease)}
.nav a:hover{background:var(--hub-bg-hover);text-decoration:none}.nav a:hover i{background:var(--hub-bg-icon-hover);color:var(--hub-text-soft)}
.nav a.active{background:var(--hub-purple-soft);color:var(--hub-brand);font-weight:800;box-shadow:0 1px 0 rgba(107,90,237,.06)}
.nav a.active i{background:var(--hub-brand);color:#fff;box-shadow:0 3px 8px rgba(107,90,237,.32)}
.nav-foot{padding:10px 14px;border-top:1px solid var(--hub-border)}
.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--hub-bg-card);border-bottom:1px solid var(--hub-border);box-shadow:var(--hub-sh-sm)}
.search{flex:1;max-width:560px}.search input{width:100%;min-height:36px;padding:6px 12px;font-size:12.5px;background:var(--hub-bg-soft)}
.topbar-actions{display:flex;gap:8px;margin-inline-start:auto}
.content{padding:22px 24px 64px;max-width:1180px}
.content.bare{margin:0 auto;max-width:460px;padding-top:8vh}
.backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:55}
.only-mobile{display:none!important}
@media (max-width:900px){
  .sidebar{transform:translateX(100%)}[dir=ltr] .sidebar{transform:translateX(-100%)}
  .shell.open .sidebar{transform:none}.shell.open .backdrop{display:block}
  .main{margin-inline-start:0!important}.only-mobile{display:inline-grid!important}
  .content{padding:16px 16px 72px}:root{--hub-gap-section:18px;--hub-card-pad:14px}
  .shell.collapsed .sidebar{width:var(--side-w)}.shell.collapsed .sidebar .brand-text,.shell.collapsed .nav span,.shell.collapsed .nav-foot{display:flex}
}

/* ═════════ الإيقاع ═════════ */
.card,.grid,.table-wrap,.filters,.page-head,.summary,.tabs,.sync-bar,.print-doc,.flashes,.empty-state{margin-bottom:var(--hub-gap-section)}
.content>:last-child{margin-bottom:0}

/* ═════════ الهيرو ═════════ */
.page-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:15px 20px;border-radius:var(--hub-r-card);background:linear-gradient(135deg,var(--hub-bg-card) 0%,var(--hub-brand-soft) 100%);border:1px solid var(--hub-border-strong);box-shadow:var(--hub-sh-card);overflow:hidden}
.page-head::before{content:"";position:absolute;inset-block-start:-40px;inset-inline-end:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(107,90,237,.10),transparent 70%);pointer-events:none}
.page-head>*{position:relative}.page-head h1{font-size:20px;font-weight:800;margin:0}.page-head p{margin:3px 0 0;color:var(--hub-text-soft);font-size:13px}
.page-head h1 .badge{vertical-align:middle;margin-inline-start:6px}

/* ═════════ البطاقات ═════════ */
.card{background:var(--hub-bg-card);border:1px solid var(--hub-border);border-radius:var(--hub-r-card);box-shadow:var(--hub-sh-card);padding:var(--hub-card-pad)}
.card>h2:first-child,.card>h3:first-child,.card-head{display:flex;align-items:center;gap:10px;margin:calc(-1 * var(--hub-card-pad)) calc(-1 * var(--hub-card-pad)) 16px;padding:12px 18px;border-bottom:1px solid var(--hub-border-soft);background:linear-gradient(180deg,var(--hub-tint-a),var(--hub-bg-card));border-radius:var(--hub-r-card) var(--hub-r-card) 0 0;font-size:14px}
.card-head{justify-content:space-between;flex-wrap:wrap}
.card>h2:first-child::before,.card>h3:first-child::before,.card-head h3::before,.card-head h2::before{content:"◆";width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:var(--hub-r-md);background:var(--hub-brand-soft);color:var(--hub-brand-ink);font-size:10px}
.card-head h3,.card-head h2{display:flex;align-items:center;gap:10px;margin:0;font-size:14px}
.card .help:last-child,.card p:last-child{margin-bottom:0}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.grid{display:grid;gap:var(--hub-gap-md)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.grid>.card,.grid>.kpi{margin-bottom:0}

/* ═════════ KPI ═════════ */
.kpi{background:var(--hub-bg-card);border:1px solid var(--hub-border);border-radius:var(--hub-r-xl);padding:14px 16px;box-shadow:var(--hub-sh-sm);position:relative;overflow:hidden;transition:transform var(--hub-anim-fast) var(--hub-ease),border-color var(--hub-anim-fast) var(--hub-ease),box-shadow var(--hub-anim-fast) var(--hub-ease)}
.kpi:hover{transform:translateY(-2px);border-color:var(--hub-brand-line);box-shadow:var(--hub-sh-md)}
.kpi .label{font-size:11.5px;font-weight:700;color:var(--hub-text-mute);letter-spacing:.3px;margin-bottom:3px}
.kpi .value{font-size:22px;font-weight:800;line-height:1.1;color:var(--hub-text);unicode-bidi:plaintext}
.kpi .sub{font-size:11px;color:var(--hub-text-mute);margin-top:4px;font-weight:600}
.kpi.good .value{color:var(--hub-green-ink)}.kpi.warn .value{color:var(--hub-amber-ink)}.kpi.bad .value{color:var(--hub-red-ink)}.kpi.brand .value{color:var(--hub-brand-ink)}
.kpi::after{content:"";position:absolute;inset-inline-start:0;inset-block:14px;width:4px;border-radius:999px;background:var(--hub-brand-line)}
.kpi.good::after{background:var(--hub-green)}.kpi.warn::after{background:var(--hub-amber)}.kpi.bad::after{background:var(--hub-red)}

/* ═════════ الأزرار ═════════ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--hub-r-md);border:1px solid var(--hub-border-strong);background:var(--hub-bg-card);color:var(--hub-brand-ink);font:inherit;font-size:13px;font-weight:700;line-height:1.4;cursor:pointer;white-space:nowrap;min-height:38px;transition:all var(--hub-anim-fast) var(--hub-ease)}
.btn:hover:not(:disabled){background:var(--hub-brand-soft);border-color:var(--hub-brand-line);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--hub-brand);border-color:var(--hub-brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--hub-brand-deep);border-color:var(--hub-brand-deep);box-shadow:var(--hub-glow)}
.btn-danger{background:var(--hub-red);border-color:var(--hub-red);color:#fff}.btn-danger:hover:not(:disabled){background:var(--hub-red-ink);border-color:var(--hub-red-ink)}
.btn-success{background:var(--hub-green-ink);border-color:var(--hub-green-ink);color:#fff}.btn-success:hover:not(:disabled){background:var(--hub-green-deep);border-color:var(--hub-green-deep)}
.btn-ghost{border-color:transparent;background:transparent;color:var(--hub-text-soft)}.btn-ghost:hover:not(:disabled){background:var(--hub-bg-soft);color:var(--hub-text)}
.btn-sm{padding:5px 11px;min-height:30px;font-size:12px}.btn-block{width:100%}
.icon-btn{border:1px solid var(--hub-border);background:var(--hub-bg-card);border-radius:var(--hub-r-md);width:36px;height:36px;display:inline-grid;place-items:center;cursor:pointer;font-size:15px;color:var(--hub-text-soft);transition:all var(--hub-anim-fast) var(--hub-ease)}
.icon-btn:hover{border-color:var(--hub-brand-line);color:var(--hub-brand-ink);background:var(--hub-brand-soft)}

/* ═════════ الشارات ═════════ */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--hub-r-pill);font-size:11.5px;font-weight:700;white-space:nowrap;background:var(--hub-bg-soft);color:var(--hub-text-soft);border:1px solid var(--hub-border)}
.badge-green{background:var(--hub-green-soft);color:var(--hub-green-ink);border-color:var(--hub-green-line)}
.badge-amber{background:var(--hub-amber-soft);color:var(--hub-amber-ink);border-color:var(--hub-amber-line)}
.badge-red{background:var(--hub-red-soft);color:var(--hub-red-ink);border-color:var(--hub-red-line)}
.badge-blue{background:var(--hub-blue-soft);color:var(--hub-blue-ink);border-color:var(--hub-blue-line)}
.badge-purple{background:var(--hub-brand-soft);color:var(--hub-brand-ink);border-color:var(--hub-border-strong)}
.badge-gray{background:var(--hub-grey-soft);color:var(--hub-grey-ink);border-color:var(--hub-grey-line)}

/* ═════════ النماذج ═════════ */
.form{display:flex;flex-direction:column;gap:var(--hub-gap-lg)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--hub-gap-md)}
label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--hub-text-soft);font-weight:700}
label.inline{flex-direction:row;align-items:center;gap:8px;font-weight:600}
input,select,textarea{font-family:inherit;font-size:13.5px;color:var(--hub-text);background:var(--hub-bg-card);border:1px solid var(--hub-border);border-radius:var(--hub-r-md);padding:9px 12px;min-height:40px;width:100%;transition:border-color var(--hub-anim-fast) var(--hub-ease),box-shadow var(--hub-anim-fast) var(--hub-ease)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--hub-brand);box-shadow:var(--hub-ring)}
input::placeholder,textarea::placeholder{color:var(--hub-text-faint)}
input[type=number],input[inputmode=decimal]{direction:ltr;text-align:right}
input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--hub-brand)}
input[type=file]{padding:7px 10px;font-size:12.5px}
textarea{min-height:90px;resize:vertical}
select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-inline-end:34px!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%236B5AED' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;background-size:12px 8px}
[dir=ltr] select{background-position:right 12px center}select:hover{border-color:var(--hub-brand);background-color:var(--hub-tint-hover)}
.help{color:var(--hub-text-mute);font-size:11.5px;font-weight:600}.field-error{color:var(--hub-red-ink);font-size:12px}
fieldset{border:1px solid var(--hub-border);border-radius:var(--hub-r-xl);padding:14px 16px;margin:0;background:var(--hub-bg-soft)}legend{padding:0 6px;color:var(--hub-text-soft);font-weight:800;font-size:12.5px}
details>summary{cursor:pointer;list-style:none}
/* السويتش الحديث — الشكل الوحيد المقبول للمفاتيح المنطقيّة */
.tsw{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;background:var(--hub-bg-soft);border:1px solid var(--hub-border);border-radius:var(--hub-r-md);cursor:pointer;user-select:none;min-height:40px;font-size:13px;font-weight:700;color:var(--hub-text-soft);flex-direction:row;transition:all var(--hub-anim-fast) var(--hub-ease);position:relative}
.tsw:hover{border-color:var(--hub-brand-line)}
.tsw input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;min-height:0}
.tsw-track{position:relative;flex-shrink:0;width:38px;height:22px;background:var(--hub-track);border-radius:999px;transition:background var(--hub-anim-fast) var(--hub-ease),box-shadow var(--hub-anim-fast) var(--hub-ease)}
.tsw-thumb{position:absolute;inset-block-start:2px;inset-inline-start:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:inset-inline-start var(--hub-anim-fast) var(--hub-ease)}
.tsw input:checked+.tsw-track{background:linear-gradient(135deg,var(--hub-brand),var(--hub-brand-ink));box-shadow:0 2px 8px rgba(107,90,237,.35)}
.tsw input:checked+.tsw-track .tsw-thumb{inset-inline-start:18px}
.tsw input:focus-visible+.tsw-track{box-shadow:0 0 0 3px var(--hub-brand-soft),0 2px 8px rgba(107,90,237,.35)}
.tsw-label{line-height:1.3}.tsw input:checked~.tsw-label{color:var(--hub-brand-ink)}
.tsw-block{display:flex;width:100%}

/* ═════════ الجداول ═════════ */
.table-wrap{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;border:1px solid var(--hub-border);border-radius:var(--hub-r-lg);background:var(--hub-bg-card)}
.card .table-wrap{margin-bottom:0}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
th,td{padding:11px 14px;text-align:center;vertical-align:middle;white-space:nowrap}
th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,var(--hub-tint-a),var(--hub-tint-b));color:var(--hub-text-soft);font-weight:800;font-size:12px;border-bottom:2px solid var(--hub-border-strong)}
td{border-bottom:1px solid var(--hub-border-soft);color:var(--hub-text)}
tbody tr:last-child td{border-bottom:0}tbody tr{transition:background var(--hub-anim-fast) var(--hub-ease)}tbody tr:hover{background:var(--hub-tint-a)}
td.money,th.money{direction:ltr;font-variant-numeric:tabular-nums}
td.wrap,th.wrap{white-space:normal}
th a{color:inherit}th a.sorted::after{content:" ▾"}th a.sorted.asc::after{content:" ▴"}
tr.flagged td:first-child{box-shadow:inset 8px 0 0 var(--hub-amber)}
tr.muted td{color:var(--hub-text-mute)}
.pagination{display:flex;align-items:center;gap:4px;justify-content:flex-start;padding:11px 14px;flex-wrap:wrap;border-top:1px solid var(--hub-border-soft);background:linear-gradient(180deg,var(--hub-bg-card),var(--hub-bg-soft))}
.pagination a,.pagination span{min-width:30px;height:30px;display:inline-grid;place-items:center;padding:0 9px;border-radius:var(--hub-r-lg);border:1px solid var(--hub-border);background:var(--hub-bg-card);color:var(--hub-text-soft);font-size:12.5px;font-weight:800}
.pagination a:hover{border-color:var(--hub-brand-line);color:var(--hub-brand-ink);text-decoration:none}
.pagination .cur{background:linear-gradient(135deg,var(--hub-brand),var(--hub-brand-deep));color:#fff;border-color:transparent}
.pagination .muted{border:0;background:transparent;margin-inline-start:auto;font-weight:700;color:var(--hub-text-mute)}
.filters{display:flex;gap:var(--hub-gap-sm);flex-wrap:wrap;align-items:end;padding:12px 14px;background:linear-gradient(180deg,var(--hub-tint-a),var(--hub-tint-b));border:1px solid var(--hub-border-strong);border-radius:var(--hub-r-lg)}
.filters label{min-width:150px;font-size:12px}.filters input,.filters select{min-height:36px;padding:6px 11px;font-size:12.5px;background:var(--hub-bg-card)}.filters select{padding-inline-end:30px}.filters .btn{min-height:36px}

/* ═════════ التبويبات ═════════ */
.tabs{display:flex;gap:4px;padding:6px;background:var(--hub-bg-card);border:1px solid var(--hub-border);border-radius:var(--hub-r-xl);overflow:auto;scrollbar-width:none;box-shadow:var(--hub-sh-sm)}
.tabs a{padding:7px 14px;border-radius:var(--hub-r-lg);color:var(--hub-text-soft);white-space:nowrap;font-weight:700;font-size:13px;transition:all var(--hub-anim-fast) var(--hub-ease)}
.tabs a:hover{background:var(--hub-bg-soft);text-decoration:none}.tabs a.active{background:var(--hub-purple-soft);color:var(--hub-brand)}

/* ═════════ الحالات ═════════ */
.flashes{display:flex;flex-direction:column;gap:8px}.flash{padding:11px 14px;border-radius:var(--hub-r-md);border:1px solid transparent;font-size:12.5px;font-weight:600;line-height:1.7}
.flash-success{background:var(--hub-green-soft);color:var(--hub-green-ink);border-color:var(--hub-green-line)}.flash-error{background:var(--hub-red-soft);color:var(--hub-red-ink);border-color:var(--hub-red-line)}
.flash-info{background:var(--hub-brand-soft);color:var(--hub-brand-ink);border-color:var(--hub-border-strong)}.flash-warning{background:var(--hub-amber-soft);color:var(--hub-amber-ink);border-color:var(--hub-amber-line)}
.empty-state{text-align:center;padding:40px 16px;color:var(--hub-text-soft);background:var(--hub-bg-card);border:1px dashed var(--hub-border-strong);border-radius:var(--hub-r-card)}
.empty-icon{width:64px;height:64px;margin:0 auto 12px;border-radius:var(--hub-r-xl);display:grid;place-items:center;font-size:28px;background:var(--hub-brand-soft);color:var(--hub-brand-ink)}
.toast{position:fixed;bottom:18px;inset-inline-start:50%;transform:translateX(50%);background:var(--hub-text);color:#fff;padding:10px 16px;border-radius:var(--hub-r-lg);z-index:100;box-shadow:var(--hub-sh-pop);max-width:92vw;font-weight:700;font-size:13px}
[dir=ltr] .toast{transform:translateX(-50%)}.toast.err{background:var(--hub-red-ink)}.toast.ok{background:var(--hub-green-ink)}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.skeleton{background:linear-gradient(90deg,var(--hub-bg-icon-idle),var(--hub-bg-soft),var(--hub-bg-icon-idle));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:6px;height:1em}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ═════════ النافذة العائمة ═════════ */
dialog{border:1px solid var(--hub-border-soft);border-radius:var(--hub-r-xl);box-shadow:var(--hub-sh-pop);padding:0;max-width:min(560px,94vw)!important;width:100%;max-height:calc(100vh - 24px);overflow:auto;color:var(--hub-text);animation:modal-in .16s var(--hub-ease)}
dialog>form{display:flex;flex-direction:column;max-height:calc(100vh - 26px)}dialog>form>.dialog-body{overflow:auto;flex:1;min-height:0}dialog>form>.dialog-foot{flex:none;position:sticky;bottom:0}
dialog::backdrop{background:rgba(15,23,42,.5);backdrop-filter:blur(2px)}
@keyframes modal-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.dialog-body{padding:18px 20px}.dialog-body h3{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:900;margin:-18px -20px 16px;padding:14px 20px;border-bottom:1px solid var(--hub-border-soft)}
.dialog-body h3::before{content:"◆";width:30px;height:30px;border-radius:var(--hub-r-md);display:grid;place-items:center;font-size:10px;color:#fff;background:linear-gradient(135deg,var(--hub-brand),var(--hub-brand-deep))}
.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--hub-border-soft);background:var(--hub-bg-soft)}

/* ═════════ الدخول ═════════ */
.auth-card{background:var(--hub-bg-card);border:1px solid var(--hub-border-strong);border-radius:var(--hub-r-panel);padding:28px 26px;box-shadow:var(--hub-sh-hero);position:relative;overflow:hidden}
.auth-card::before{content:"";position:absolute;inset-block-start:-60px;inset-inline-end:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(107,90,237,.12),transparent 70%);pointer-events:none}
.auth-card>*{position:relative}.auth-brand{text-align:center;margin-bottom:18px}.auth-brand h1{font-size:20px}

/* ═════════ ملفّ المشترك وعناصر أخرى ═════════ */
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--hub-gap-sm)}
.summary .item{background:var(--hub-bg-soft);border:1px solid var(--hub-border-soft);border-radius:var(--hub-r-lg);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.summary .item .label{font-size:11.5px;color:var(--hub-text-mute);font-weight:700}.summary .item .value{font-weight:800;font-size:18px;line-height:1.1;unicode-bidi:plaintext}
.addr-items{display:flex;flex-direction:column;gap:8px}.addr-row{display:grid;grid-template-columns:160px 1fr auto;gap:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--hub-border-strong);background:var(--hub-bg-soft);border-radius:var(--hub-r-pill);padding:4px 11px;font-size:12px;font-weight:700;cursor:pointer;transition:all var(--hub-anim-fast) var(--hub-ease)}
.chip:hover{background:var(--hub-brand-soft);color:var(--hub-brand-ink)}
.list-inline{display:flex;gap:6px;flex-wrap:wrap;list-style:none;padding:0;margin:0}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:10px 0;border-bottom:1px solid var(--hub-border-soft);display:flex;gap:12px;align-items:flex-start}.timeline li:last-child{border-bottom:0}
.timeline .when{color:var(--hub-text-mute);font-size:12px;min-width:130px;font-weight:700}
.diff{font-size:11.5px;color:var(--hub-text-soft);direction:ltr;text-align:left;font-family:var(--hub-mono);white-space:pre-wrap;background:var(--hub-bg-soft);border-radius:var(--hub-r-sm);padding:4px 8px}
.stat-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--hub-border);font-size:13px}.stat-row:last-child{border:0}.stat-row strong{font-weight:800}
.progress{height:10px;background:var(--hub-bg-icon-idle);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--hub-brand),var(--hub-green));border-radius:999px}
.var-list{display:flex;flex-wrap:wrap;gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--hub-border);border-radius:var(--hub-r-md);background:var(--hub-bg-soft);margin-top:8px}
.preview-box{white-space:pre-wrap;background:var(--hub-bg-soft);border:1px dashed var(--hub-border-strong);border-radius:var(--hub-r-md);padding:12px 14px;min-height:80px;font-size:13px;line-height:1.8}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 12px}
.perm-grid label{flex-direction:row;align-items:center;gap:8px;font-weight:600;padding:4px 0}
.sortable{cursor:pointer}

/* ═════════ القراءات السريعة ═════════ */
.quick-list{display:flex;flex-direction:column;gap:10px}
.quick-item{background:var(--hub-bg-card);border:1px solid var(--hub-border);border-radius:var(--hub-r-xl);padding:12px 14px;box-shadow:var(--hub-sh-sm);border-inline-start:4px solid var(--hub-border-strong)}
.quick-item.done{border-inline-start-color:var(--hub-green);background:var(--hub-ok-wash)}.quick-item.flagged{border-inline-start-color:var(--hub-amber)}.quick-item.conflict{border-inline-start-color:var(--hub-red);background:var(--hub-bad-wash)}
.quick-item .head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.quick-item .meta{color:var(--hub-text-mute);font-size:12px;font-weight:600}
.quick-item .row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;margin-top:8px}
.quick-item input[type=text].val{font-size:20px;font-weight:800;min-height:48px;text-align:center}
.quick-item .calc{font-size:12.5px;color:var(--hub-text-soft);font-weight:600}.quick-item .calc strong{color:var(--hub-brand-ink)}
.sync-bar{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:20;display:flex;gap:8px;align-items:center;background:var(--hub-bg-card);border:1px solid var(--hub-border-strong);border-radius:var(--hub-r-xl);padding:10px 14px;flex-wrap:wrap;box-shadow:var(--hub-sh-card)}
.sync-bar select{width:auto;min-height:36px;padding-block:6px;padding-inline-start:11px;font-size:12.5px;max-width:100%}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--hub-text-mute)}.dot.on{background:var(--hub-green);box-shadow:0 0 0 3px var(--hub-green-soft)}.dot.off{background:var(--hub-red);box-shadow:0 0 0 3px var(--hub-red-soft)}

.row-current td{background:var(--hub-brand-soft)}.badge-purple{background:var(--hub-brand-soft);color:var(--hub-brand-deep);border:1px solid var(--hub-brand-line)}

/* ═════════ المستندات المطبوعة — الهويّة نفسها التي يصدرها PDF ═════════ */
.print-doc{background:var(--hub-bg-card);max-width:820px;margin-inline:auto;padding:0 0 18px;border:1px solid var(--hub-border);border-radius:var(--hub-r-card);box-shadow:var(--hub-sh-card);overflow:hidden}
.print-doc>*:not(.doc-band):not(.doc-foot){margin-inline:26px}
.doc-band{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 26px;color:#fff;background:linear-gradient(100deg,var(--hub-brand-deep) 0%,var(--hub-brand) 55%,#8B7CF5 100%);border-bottom:4px solid #F2B84B;overflow:hidden}
.doc-band::before{content:"";position:absolute;inset-block:0;inset-inline-start:52%;width:40%;background:rgba(255,255,255,.10);transform:skewX(-18deg)}
.doc-band>*{position:relative}
.doc-band h2{margin:0;font-size:22px;font-weight:900;color:#fff;line-height:1.3}
.doc-band-sub{font-size:12.5px;opacity:.92;margin-top:2px}
.doc-band-side{text-align:start;min-width:0}.doc-band-brand{font-weight:800;font-size:15px}.doc-band-date{font-size:11px;opacity:.85}
.doc-company{margin-top:18px}.doc-company-name{font-size:18px;font-weight:900;color:var(--hub-text)}.doc-company-line{font-size:12px;color:var(--hub-text-mute)}
.doc-meta{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;background:var(--hub-brand-soft);border-radius:12px;overflow:hidden}
.doc-meta-cell{padding:8px 12px;border-bottom:1px solid var(--hub-border)}.doc-meta-cell:nth-last-child(-n+2){border-bottom:0}
.doc-meta-k{font-size:11.5px;color:var(--hub-text-mute)}.doc-meta-v{font-weight:800;font-size:13.5px;color:var(--hub-text);overflow-wrap:anywhere}
.doc-section{margin:18px 0 8px;font-size:15px;font-weight:900;color:var(--hub-text);padding-inline-start:10px;border-inline-start:4px solid var(--hub-brand);line-height:1.2}
.print-doc table{font-size:13px;border-radius:10px;overflow:hidden;min-width:0}
.print-doc thead th{background:var(--hub-brand);color:#fff;font-weight:800;border:0;padding:9px 10px}
.print-doc tbody tr:nth-child(even) td{background:var(--hub-brand-soft)}
.print-doc tbody td{border-bottom:1px solid var(--hub-border)}.print-doc tbody tr:last-child td{border-bottom:2px solid var(--hub-brand)}
.doc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:14px}
.doc-kpi{background:var(--hub-brand-soft);border-top:3px solid var(--hub-brand);border-radius:10px;padding:10px 12px;text-align:center}
.doc-kpi-v{font-size:18px;font-weight:900;color:var(--hub-brand-deep)}.doc-kpi-k{font-size:11.5px;color:var(--hub-text-mute);margin-top:2px}
.doc-totals{margin-top:16px;max-width:400px;margin-inline-start:auto;border:1px solid var(--hub-border);border-radius:12px;overflow:hidden}
.doc-total-row{display:flex;justify-content:space-between;gap:12px;padding:7px 12px;border-bottom:1px solid var(--hub-border);font-size:13px}.doc-total-row:last-child{border-bottom:0}
.doc-total-row.is-strong{background:var(--hub-brand-soft);font-size:15.5px;font-weight:900;color:var(--hub-brand-deep)}.doc-total-row strong{direction:ltr;white-space:nowrap}
.doc-sign{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:34px;font-size:13px}
.doc-note{margin-top:14px;font-size:12px;color:var(--hub-text-mute)}
.doc-foot{margin-top:18px;padding:10px 26px 0;border-top:1px solid var(--hub-border);display:flex;justify-content:space-between;font-size:11px;color:var(--hub-text-mute)}
.print-doc .total{font-size:20px;font-weight:900;color:var(--hub-brand-ink)}
@media print{.sidebar,.topbar,.backdrop,.no-print,.toast,.flashes{display:none!important}.main{margin:0!important}.content{padding:0;max-width:none}.print-doc{border:0;box-shadow:none;max-width:none;border-radius:0}html,body{background:#fff}.doc-band,.print-doc thead th,.doc-meta,.doc-kpi,.doc-total-row.is-strong,.print-doc tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media (max-width:600px){.addr-row{grid-template-columns:1fr}.grid-4,.grid-3{grid-template-columns:1fr 1fr}.kpi{padding:12px}.kpi .value{font-size:18px}.summary{grid-template-columns:1fr 1fr}.content{padding-inline:12px}}

/* ═════════ حارس القصّ الأفقيّ (جوّال/WebView): لا تخرج أيّ كتلة عن عرض الشاشة ═════════ */
html,body{overflow-x:hidden;max-width:100%}
.main,.content{max-width:100%;min-width:0}
@media (min-width:901px){.content{max-width:1180px}}
.print-doc{max-width:100%}
.print-doc .table-wrap{overflow-x:auto}
code,.diff,.help{overflow-wrap:anywhere;white-space:normal}
.diff{white-space:pre-wrap}
.timeline li>div,.timeline li>span{min-width:0;overflow-wrap:anywhere}
.stat-row>span:first-child{overflow-wrap:anywhere;white-space:normal}
.chips,.list-inline{max-width:100%}
@media (max-width:600px){.timeline .when{min-width:0;flex:0 0 100%}.timeline li{flex-wrap:wrap;gap:4px 12px}.card>h2:first-child,.card>h3:first-child,.card-head{font-size:13.5px}}

/* حزام التصفية على الجوّال */
@media (max-width:900px){.filters{align-items:center}.filters>label:first-of-type{flex:1 1 100%;min-width:0}.filters-more{flex:1 1 100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.filters-more label{min-width:0}.filters .btn{flex:1}}

/* المستندات على الجوّال: الجدول يلتفّ بدل القصّ، والقيم الطويلة تُقسَم */
@media (max-width:600px){.print-doc>*:not(.doc-band):not(.doc-foot){margin-inline:14px}.doc-band{padding:14px;flex-direction:column;align-items:flex-start}.doc-band h2{font-size:18px}.doc-band-date{text-align:start}.doc-meta{grid-template-columns:1fr}.doc-meta-cell:nth-last-child(2){border-bottom:1px solid var(--hub-border)}.print-doc th{white-space:nowrap;padding:8px 8px;font-size:12px}.print-doc td{white-space:nowrap;padding:8px 8px;font-size:12px}.print-doc .table-wrap{margin-inline:0;padding-inline:14px}.doc-totals{max-width:none}.doc-sign{grid-template-columns:1fr}.stat-row{flex-wrap:wrap}.stat-row>strong,.stat-row>span:last-child{margin-inline-start:auto}}

/* قائمة القراءات السريعة على الجوّال: حقل البحث بعرض كامل والقوائم متجاورة */
@media (max-width:900px){.sync-bar{position:static}.sync-bar select{flex:1 1 45%}.filters>label:first-of-type{flex:1 1 100%}}

/* خلايا نصّيّة طويلة: عرض أدنى بدل كلمة في كلّ سطر */
td.wrap{min-width:260px;text-align:start;line-height:1.9}td.perms{min-width:340px}td.perms .badge{margin:2px 0;font-weight:600}
td[style*="white-space:normal"]{min-width:220px;text-align:start}

/* خلايا الإجراءات داخل الجداول: أزرار متجاورة لا مكدّسة */
td.actions{display:table-cell;white-space:nowrap}td.actions>*{display:inline-flex;vertical-align:middle;margin:0 2px}td.actions form{display:inline-flex}
