@font-face{font-family:"IBM Plex Sans Arabic";font-weight:300;font-style:normal;font-display:swap;src:url("fonts/plex-arabic-300.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/plex-arabic-400.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/plex-arabic-500.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/plex-arabic-600.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/plex-arabic-700.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans";font-weight:300;font-style:normal;font-display:swap;src:url("fonts/plex-latin-300.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/plex-latin-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/plex-latin-500.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/plex-latin-600.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/plex-latin-700.woff2") format("woff2")}

/* ==========================================================================
   SHAHAB HEALTH — skin for «شهاب · مكافحة العدوى / Shahab Infection Control»
   Source of truth: Documents\شهاب\02 الهوية\shahab-ui (tokens.css v1, 2026-09-22).
   Loaded AFTER ipc-theme.css. It re-points the platform's own variables at
   the Shahab tokens, so every screen follows without touching its markup.
   Rules kept from the identity:
     - the platform colour (p-ipc) identifies only: stripe, lockup dot,
       active-item bar, first chart series. It is never a button or a state.
     - one primary action colour: navy by day, ivory by night.
     - status is colour + icon + word; zone colours come from the status set.
     - IBM Plex Sans Arabic + IBM Plex Sans, served from this site.
   ========================================================================== */

/* ---------- night (the platform's default ground) ---------- */
:root{
  --pc:#18aa98; --pc-tint:#104457; --gold:#c2a063; --gold-ink:#c2a063;
  --sb:#05172a; --sb-ink:#e9eef3; --sb-muted:#9fb2c6;
  --action:#e9eef3; --on-action:#0b2b4a; --action-hover:#ffffff;

  --bg:#071d33; --bg-2:#0a2139;
  --panel:#0e2a47; --panel-2:#13355a; --panel-3:#183f69;
  --line:#1d3f62; --line-2:#24476b; --line-3:#5a7ea3;
  --ink:#e9eef3; --ink-2:#c7d3df; --ink-3:#9fb2c6; --ink-4:#8ea2b7;

  --accent:#18aa98; --accent-2:#4cc9b8; --accent-dim:#127d70;
  --accent-soft:rgba(24,170,152,.14); --accent-line:rgba(24,170,152,.40);
  --blue:#7cb4f0; --blue-soft:#1a3557;
  --violet:#a383cc; --violet-soft:rgba(163,131,204,.16);

  --z-green:#4cc38a; --z-green-soft:#133f32;
  --z-amber:#e9b86a; --z-amber-soft:#3d3220;
  --z-red:#f97066;   --z-red-soft:#4a2224;
  --z-black:#aab4bf; --z-black-soft:#26303b;

  --sh-1:0 1px 2px rgba(0,0,0,.35);
  --sh-2:0 1px 2px rgba(0,0,0,.35), 0 12px 32px -12px rgba(0,0,0,.6);
  --sh-3:0 12px 32px -12px rgba(0,0,0,.6);
  --side-foot:#05172a;
  --r:6px; --r-lg:10px;

  --font-sans:"IBM Plex Sans Arabic","IBM Plex Sans",Tahoma,sans-serif;
  --font-latin:"IBM Plex Sans","IBM Plex Sans Arabic",Arial,sans-serif;
  --f-display:var(--font-sans); --f-body:var(--font-sans); --f-mono:var(--font-latin);
}

/* ---------- day ---------- */
:root[data-theme="light"]{
  --pc:#157F72; --pc-tint:#e8f2f1; --gold:#c2a063; --gold-ink:#8a6420;
  --sb:#071d33; --sb-ink:#e9eef3; --sb-muted:#9fb2c6;
  --action:#0b2b4a; --on-action:#ffffff; --action-hover:#14395f;

  --bg:#f4f6f8; --bg-2:#edf1f5;
  --panel:#ffffff; --panel-2:#edf1f5; --panel-3:#e2e8ef;
  --line:#d8dfe7; --line-2:#c3ceda; --line-3:#74879b;
  --ink:#0b2b4a; --ink-2:#2b4663; --ink-3:#566a7f; --ink-4:#5f7287;

  --accent:#157F72; --accent-2:#0f6358; --accent-dim:#8cc8bf;
  --accent-soft:#e8f2f1; --accent-line:rgba(21,127,114,.35);
  --blue:#1f5fa8; --blue-soft:#e8f0fa;
  --violet:#5b3a87; --violet-soft:#efebf3;

  --z-green:#1d7a4a; --z-green-soft:#e6f4ec;
  --z-amber:#8f5d10; --z-amber-soft:#fbf1df;
  --z-red:#b42318;   --z-red-soft:#fdecea;
  --z-black:#3d4652; --z-black-soft:#e6e9ed;

  --sh-1:0 1px 2px rgba(11,43,74,.06), 0 1px 3px rgba(11,43,74,.08);
  --sh-2:0 1px 2px rgba(11,43,74,.06), 0 12px 32px -12px rgba(11,43,74,.28);
  --sh-3:0 12px 32px -12px rgba(11,43,74,.28);
  --side-foot:#071d33;
}

body{font-family:var(--font-sans);font-variant-numeric:tabular-nums}
h1,h2,h3,h4{font-family:var(--font-sans);letter-spacing:0}
.mono,.num{font-family:var(--font-latin);font-variant-numeric:tabular-nums}
:focus-visible{outline-color:var(--gold-ink)}
a{color:var(--blue)}

/* platform stripe, 3px, across the top of every screen */
.app{border-top:3px solid var(--pc)}

/* ---------- the sidebar is always dark, day and night ---------- */
.side{
  --panel:var(--sb); --panel-2:rgba(255,255,255,.06); --panel-3:rgba(255,255,255,.10);
  --ink:var(--sb-ink); --ink-2:#d5dee8; --ink-3:var(--sb-muted); --ink-4:var(--sb-muted);
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.14); --line-3:rgba(255,255,255,.24);
  --accent-soft:rgba(255,255,255,.10); --accent-2:#ffffff;
  background:var(--sb) !important; color:var(--sb-ink); border-inline-end:0;
}
.side .nav-a.on{background:rgba(255,255,255,.10);color:#fff}
.side .nav-a.on::before{background:var(--pc)}
.side .btn.ghost{background:rgba(255,255,255,.06);color:var(--sb-ink);border-color:rgba(255,255,255,.14)}

/* ---------- lockup: mark · شهاب | ● مكافحة العدوى / Shahab Infection Control ---------- */
.sh-lock{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;min-width:0}
.sh-lock:hover{text-decoration:none}
.sh-lock .mk{width:24px;height:24px;flex:none;color:var(--gold)}
.sh-lock .mk svg{width:100%;height:100%;display:block}
.sh-lock .br{font-weight:700;font-size:17px;line-height:1;font-family:"IBM Plex Sans Arabic",var(--font-sans)}
.sh-lock .sep{width:1px;height:26px;background:var(--gold);flex:none}
.sh-lock .pl{display:flex;flex-direction:column;gap:3px;min-width:0}
.sh-lock .pl b{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;white-space:nowrap;
  font-family:"IBM Plex Sans Arabic",var(--font-sans)}
.sh-lock .pl b::before{content:"";width:8px;height:8px;border-radius:99px;background:var(--pc);
  box-shadow:0 0 0 2px color-mix(in srgb,currentColor 25%,transparent)}
.sh-lock .pl span{font-family:var(--font-latin);font-size:10px;letter-spacing:0;color:var(--sb-muted);white-space:nowrap}
.side .brand{padding:18px 12px 16px 14px}
.side .sh-lock .br,.side .sh-lock .pl b{color:var(--sb-ink)}
.side .who .fac{display:block;font-size:10.5px;color:var(--sb-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* sign-in: the same lockup, larger, on the page ground */
.loginbox .sh-lock{justify-content:center;margin-bottom:6px}
.loginbox .sh-lock .mk{width:40px;height:40px}
.loginbox .sh-lock .br{font-size:28px;color:var(--ink)}
.loginbox .sh-lock .sep{height:36px}
.loginbox .sh-lock .pl b{font-size:16px;color:var(--ink)}
.loginbox .sh-lock .pl span{font-size:12px;color:var(--ink-3)}

/* ---------- one primary action colour ---------- */
.btn{background:var(--action);color:var(--on-action);font-family:var(--font-sans);border-radius:var(--r)}
.btn:hover{filter:none;background:var(--action-hover)}
.btn.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line-3)}
.btn.ghost:hover{background:var(--panel-2);color:var(--ink)}
.btn.danger{background:var(--z-red);color:#fff}
:root:not([data-theme="light"]) .btn.danger{color:#2a0b06}
.side .cnt{background:rgba(255,255,255,.08)!important;color:var(--sb-muted)!important;border:0!important}

/* ---------- right-to-left (Arabic, the default) ---------- */
[dir="rtl"] svg{direction:ltr}
[dir="rtl"] body{letter-spacing:0}
[dir="rtl"] .eyebrow{letter-spacing:0}
[dir="rtl"] .brand .wm span{letter-spacing:0}
[dir="rtl"] .chev svg,[dir="rtl"] .m-go svg{transform:scaleX(-1)}
[dir="rtl"] input[type="date"],[dir="rtl"] input[type="number"],[dir="rtl"] input[type="time"]{direction:ltr;text-align:end}
[dir="rtl"] .num,[dir="rtl"] .mono{direction:ltr;unicode-bidi:isolate}
.doc,.doc .ar,.doc .dsub,.doc [lang="ar"]{font-family:"IBM Plex Sans Arabic","IBM Plex Sans",Tahoma,sans-serif}
.doc .dfoot .code{font-family:"IBM Plex Sans",monospace}
