/* ═══════════════════════════════════════════════════════════════
   عيادتي · Clinic Console — Design System  (Indigo & Mist)
   Vanilla, token-driven, RTL-first. Desktop/tablet console shell.
   Signature motif: the ECG "clinic pulse" line.
   ═══════════════════════════════════════════════════════════════ */

/* ---------- tokens ---------- */
:root{
  --brand:#2E5BFF; --brand-d:#1E3EBF; --brand-t:#E6EBFF; --brand-g:#5C7CFF;
  --accent:#0FB884; --accent-d:#09805B; --accent-t:#DDF5EC;
  --page:#EEF2FB; --page2:#E7ECF8; --card:#FFFFFF; --line:#E4E9F5; --line2:#EDF1FA;
  --ink:#1B2440; --ink2:#4A5578; --muted:#8A93B2; --faint:#B7BFD6;
  --amber:#FFAE1A; --amber-t:#FFF2D6; --amber-d:#8A5B00;
  --rose:#F0417E; --rose-t:#FFE3EC; --rose-d:#B4114E;
  --mint:#0FB884;
  /* appointment status */
  --st-sch:#2E5BFF;  --st-sch-t:#E6EBFF;
  --st-chk:#FFAE1A;  --st-chk-t:#FFF2D6;
  --st-srv:#0FB884;  --st-srv-t:#DDF5EC;
  --st-done:#6B76A0; --st-done-t:#ECEFF8;
  --st-cxl:#F0417E;  --st-cxl-t:#FFE3EC;

  --r:16px; --r-lg:22px; --r-sm:11px; --pill:999px;
  --sh:0 4px 16px rgba(27,36,64,.05); --sh2:0 14px 40px rgba(27,36,64,.12);
  --sh-in:inset 0 0 0 1px var(--line);
  --rail:250px; --rail-sm:76px; --top:66px; --min-w:1024px;
  --f-body:'IBM Plex Sans Arabic',system-ui,sans-serif;
  --f-disp:'Tajawal','IBM Plex Sans Arabic',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{height:100%}
/* الواجهة مخصّصة لشاشات الحواسيب واللوحيات فقط: عرض أدنى ثابت ولا تمرير للصفحة */
body.app{height:100%;overflow-x:auto;overflow-y:hidden}
body{
  font-family:var(--f-body);color:var(--ink);background:var(--page);min-height:100%;
  font-size:13.5px;line-height:1.55;
  background-image:
    radial-gradient(1200px 480px at 88% -8%,#E1E9FF 0,transparent 60%),
    radial-gradient(900px 420px at 4% 108%,#DFF6EE 0,transparent 55%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:inherit}
input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{list-style:none}
:focus-visible{outline:2.5px solid var(--brand);outline-offset:2px;border-radius:6px}

/* Material Symbols */
.ms{font-family:'Material Symbols Rounded','Material Symbols Outlined';font-weight:400;font-style:normal;
  line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;
  direction:ltr;font-variation-settings:'FILL' 0,'wght' 400,'opsz' 24,'GRAD' 0}
.ms.fill{font-variation-settings:'FILL' 1,'wght' 500}

/* numerals: tabular western, subtle tracking (never on Arabic) */
.num,.big,.kpi-n,.money,.tbl td .num,time{font-variant-numeric:tabular-nums;letter-spacing:.2px;
  font-feature-settings:'tnum' 1;direction:ltr;unicode-bidi:plaintext}

/* ═══════════ APP SHELL ═══════════ */
/* إطار ثابت: الشريط الجانبي والترويسة لا يتحرّكان، والتمرير داخل منطقة المحتوى وحدها */
.shell{display:grid;grid-template-columns:var(--rail) 1fr;height:100dvh;min-width:var(--min-w);overflow:hidden}

/* --- sidebar (starts at the right in RTL) --- */
.sidebar{position:relative;height:100%;background:linear-gradient(180deg,#151C33 0,#1B2440 100%);
  color:#C7CEEA;display:flex;flex-direction:column;z-index:30;overflow:hidden}
.brand{display:flex;align-items:center;gap:11px;padding:20px 20px 16px}
.brand .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(140deg,var(--brand),var(--brand-g));
  display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px rgba(46,91,255,.45);flex:none;position:relative;overflow:hidden}
.brand .logo .ms{font-size:23px;position:relative;z-index:2}
.brand b{font-family:var(--f-disp);font-size:18px;font-weight:800;color:#fff;display:block;line-height:1.1}
.brand span{font-size:10.5px;color:#7E88B4;display:block;margin-top:1px}
.nav{flex:1;overflow-y:auto;padding:6px 12px 12px;scrollbar-width:thin}
.nav::-webkit-scrollbar{width:0}
.nav .grp{font-size:11px;font-weight:700;color:#5B6693;letter-spacing:0;text-transform:none;
  padding:16px 12px 7px;text-align:start}
/* تباعد الحروف والأحرف الكبيرة يناسبان الإنجليزية وحدها — في العربية يقطّعان وصل الحروف */
[dir=ltr] .nav .grp{font-size:9.5px;letter-spacing:.6px;text-transform:uppercase}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:#AEB6DB;
  font-size:13.5px;font-weight:500;margin-bottom:2px;position:relative;transition:.15s var(--ease)}
.nav a .ms{font-size:21px;flex:none}
.nav a .cnt{margin-inline-start:auto;font-size:11px;font-weight:700;background:#2A3454;color:#AEB6DB;
  min-width:20px;height:20px;border-radius:var(--pill);display:grid;place-items:center;padding:0 6px}
.nav a:hover{background:#232C49;color:#E7EAFB}
.nav a.on{background:linear-gradient(100deg,rgba(46,91,255,.22),rgba(46,91,255,.06));color:#fff}
.nav a.on .ms{font-variation-settings:'FILL' 1;color:var(--brand-g)}
.nav a.on:before{content:'';position:absolute;inset-inline-start:-12px;top:8px;bottom:8px;width:3.5px;
  border-radius:var(--pill);background:var(--brand-g)}
.nav a.on .cnt{background:var(--brand);color:#fff}
.side-foot{padding:12px;border-top:1px solid rgba(255,255,255,.06)}
.side-user{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;cursor:pointer;transition:.15s}
.side-user:hover{background:#232C49}
.side-user .avatar{width:36px;height:36px;font-size:13px}
.side-user b{display:block;font-size:12.5px;color:#EDEFFA;font-weight:600;line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-user span{display:block;font-size:10.5px;color:#7E88B4;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* --- main --- */
.main{min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden}
.topbar{position:relative;flex:none;height:var(--top);z-index:25;display:flex;align-items:center;gap:14px;
  padding:0 26px;background:rgba(238,242,251,.82);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--line)}
.top-btn.hamb{display:none}
.search{position:relative;flex:1;max-width:440px;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:var(--pill);padding:9px 15px;color:var(--muted);box-shadow:var(--sh)}
.search .ms{font-size:19px}
.search input{border:0;background:none;flex:1;outline:none;color:var(--ink);font-size:13px}
.search input::placeholder{color:var(--faint)}

/* نتائج البحث العام: مرضى · مواعيد · خدمات، مجمَّعة تحت الشريط */
.s-pop{position:absolute;top:calc(100% + 9px);inset-inline:0;z-index:30;background:#fff;
  border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh2);padding:7px;
  max-height:min(64vh,470px);overflow-y:auto;scrollbar-width:thin;animation:rise .15s var(--ease)}
.s-grp{padding:9px 10px 5px;font-size:10.5px;font-weight:800;color:var(--muted)}
.s-it{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:12px;
  text-align:start;cursor:pointer;transition:.1s;color:var(--ink)}
.s-it .si-t{flex:1;min-width:0}
.s-it .si-t b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-it .si-ic{width:32px;height:32px;border-radius:10px;flex:none}
.s-it .si-ic .ms{font-size:17px}
.s-it .si-p{font-family:var(--f-disp);font-size:12px;font-weight:800;color:var(--ink2);white-space:nowrap}
.s-it.on,.s-it:hover{background:var(--brand-t)}
.s-all{display:flex;align-items:center;gap:8px;padding:10px;margin-top:5px;border-top:1px solid var(--line2);
  font-size:12px;font-weight:700;color:var(--brand-d);cursor:pointer;border-radius:12px}
.s-all .ms{font-size:17px}
.s-all.on,.s-all:hover{background:var(--brand-t)}
.s-none{padding:20px 10px;text-align:center;font-size:12.5px;font-weight:600;color:var(--muted)}
.top-sp{margin-inline-start:auto}
.top-btn{width:40px;height:40px;border-radius:12px;background:#fff;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--ink2);box-shadow:var(--sh);position:relative;transition:.15s}
.top-btn:hover{color:var(--brand);border-color:var(--brand-t)}
.top-btn .ms{font-size:20px}
.top-btn .dot{position:absolute;top:9px;inset-inline-end:9px;width:7px;height:7px;border-radius:50%;
  background:var(--rose);box-shadow:0 0 0 2px #fff}
/* شارة حالة المزامنة داخل الترويسة الثابتة */
.sync-slot{display:flex;align-items:center;flex:none}
.sync-slot:empty{display:none}
.shift-chip{display:flex;align-items:center;gap:7px;background:var(--accent-t);color:var(--accent-d);
  border-radius:var(--pill);padding:8px 14px;font-size:12px;font-weight:700}
.shift-chip .live{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:blip 1.6s infinite}
@keyframes blip{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

.view-scroll{flex:1;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.view{padding:26px;max-width:1360px;width:100%;min-width:0;margin:0 auto;animation:rise .4s var(--ease)}
/* التركيز يُنقل إلى منطقة المحتوى تلقائياً بعد كل تنقّل (لقارئ الشاشة)، وهي ليست عنصراً تفاعلياً
   فلا تُحاط بإطار التركيز الأزرق — كان يظهر خطاً طولياً تلقائياً على حافة الصفحة */
.view:focus,.view:focus-visible{outline:none}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ═══════════ PAGE HEADER ═══════════ */
.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--brand-d);font-size:11px;font-weight:700;
  background:var(--brand-t);padding:5px 11px 5px 8px;border-radius:var(--pill)}
.eyebrow .tick{width:26px;height:10px;flex:none}
.eyebrow .tick path{fill:none;stroke:var(--brand);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.page-head h1{font-family:var(--f-disp);font-size:25px;font-weight:800;line-height:1.15;margin-top:7px}
.page-head .sub{color:var(--ink2);font-size:13px;margin-top:3px}
.page-head .ha{margin-inline-start:auto;display:flex;gap:10px;align-items:center}

/* ═══════════ PRIMITIVES ═══════════ */
.card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);padding:18px;border:1px solid var(--line2)}
.card.flat{box-shadow:none}
.card.pad0{padding:0;overflow:hidden}
.card.press{cursor:pointer;transition:transform .14s var(--ease),box-shadow .14s}
.card.press:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.g-main{grid-template-columns:1fr 340px}
.row{display:flex;align-items:center;gap:10px}
.col{display:flex;flex-direction:column;gap:10px}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wrap-g{flex-wrap:wrap}
.sp{margin-inline-start:auto}
.mt{margin-top:14px}.mt8{margin-top:8px}.mt20{margin-top:20px}
.sec-t{font-size:15px;font-weight:700;display:flex;align-items:center;gap:9px}
.sec-t .ms{font-size:19px;color:var(--brand)}
.lbl{font-size:11px;color:var(--muted);font-weight:600}
.k{font-size:12.5px;color:var(--ink2)}
.v{font-size:13px;font-weight:700}
.mut{color:var(--muted)}
.big{font-family:var(--f-disp);font-size:30px;font-weight:800;line-height:1}
.cur{font-size:12px;font-weight:600;color:var(--muted)}
.sep{height:1px;background:var(--line);margin:14px 0}
.dash{height:1px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px);margin:13px 0}
.center{text-align:center}

/* pills */
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--pill);padding:4px 11px;
  font-size:11px;font-weight:700;white-space:nowrap}
.pill .ms{font-size:14px}
.pill .d{width:6px;height:6px;border-radius:50%;background:currentColor}
.st-sch{background:var(--st-sch-t);color:var(--brand-d)}
.st-chk{background:var(--st-chk-t);color:var(--amber-d)}
.st-srv{background:var(--st-srv-t);color:var(--accent-d)}
.st-done{background:var(--st-done-t);color:var(--st-done)}
.st-cxl{background:var(--st-cxl-t);color:var(--rose-d)}
/* حالات الوصول والجلسة — من لوحة ألوان النظام نفسها */
.st-early{background:#DDF4F8;color:#0B7F92}
.st-late{background:#FCEBDD;color:#B35A17}
.st-ontime{background:#ECE7FF;color:#5A3BD6}
.st-ses{background:#D9F1F0;color:#086B67}
.p-brand{background:var(--brand-t);color:var(--brand-d)}
.p-accent{background:var(--accent-t);color:var(--accent-d)}
.p-amber{background:var(--amber-t);color:var(--amber-d)}
.p-rose{background:var(--rose-t);color:var(--rose-d)}
.p-ink{background:var(--page2);color:var(--ink2)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;
  border-radius:13px;font-size:13.5px;font-weight:700;border:0;cursor:pointer;white-space:nowrap;
  transition:transform .12s var(--ease),box-shadow .15s,opacity .15s}
.btn .ms{font-size:19px}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.45;pointer-events:none}
.btn.sm{height:34px;padding:0 13px;font-size:12.5px;border-radius:10px}
.btn.sm .ms{font-size:17px}
.btn.lg{height:50px;font-size:15px;border-radius:15px}
.btn.block{width:100%}
.btn-brand{background:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(46,91,255,.30)}
.btn-brand:hover{box-shadow:0 12px 26px rgba(46,91,255,.40)}
.btn-accent{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(15,184,132,.30)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-soft{background:var(--brand-t);color:var(--brand-d)}
.btn-danger{background:var(--rose-t);color:var(--rose-d)}
.icon-btn{width:38px;height:38px;padding:0;border-radius:11px}

/* chips / filters */
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:var(--pill);padding:7px 14px;
  font-size:12px;font-weight:600;color:var(--ink2);white-space:nowrap;flex:none;cursor:pointer;transition:.14s}
.chip:hover{border-color:var(--brand-t)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip .ms{font-size:15px;vertical-align:-3px;margin-inline-end:2px}

/* segmented / tabs */
.seg{display:inline-flex;background:var(--page2);border-radius:13px;padding:4px;gap:3px}
.seg button{padding:8px 16px;border-radius:10px;font-size:12.5px;font-weight:700;color:var(--ink2);transition:.14s}
.seg button.on{background:#fff;color:var(--brand-d);box-shadow:var(--sh)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}
.tabs button{padding:11px 16px;font-size:13.5px;font-weight:700;color:var(--muted);position:relative;transition:.14s}
.tabs button:hover{color:var(--ink2)}
.tabs button.on{color:var(--ink)}
.tabs button.on:after{content:'';position:absolute;inset-inline:12px;bottom:-1px;height:3px;
  border-radius:var(--pill);background:var(--brand)}
/* عدّاد صغير بجانب اسم التبويب */
.tabs .tab-n{display:inline-block;min-width:22px;margin-inline-start:7px;padding:1px 7px;border-radius:999px;
  background:var(--page2);color:var(--ink2);font-size:11px;font-weight:700;line-height:1.6;text-align:center}
.tabs button.on .tab-n{background:var(--brand-t);color:var(--brand-d)}

/* people & things */
.avatar{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--brand-g),var(--brand));
  display:grid;place-items:center;flex:none;font-weight:800;font-size:15px;color:#fff}
.avatar.a{background:linear-gradient(135deg,#5FE0BA,var(--accent))}
.avatar.am{background:linear-gradient(135deg,#FFC94D,var(--amber))}
.avatar.rs{background:linear-gradient(135deg,#FF8FB5,var(--rose))}
.avatar.sm{width:34px;height:34px;font-size:12px;border-radius:11px}
.avatar.lg{width:60px;height:60px;font-size:21px;border-radius:19px}
.thumb{width:46px;height:46px;border-radius:13px;background:var(--brand-t);display:grid;place-items:center;
  flex:none;color:var(--brand)}
.thumb .ms{font-size:23px}
.thumb.ac{background:var(--accent-t);color:var(--accent-d)}
.thumb.am{background:var(--amber-t);color:var(--amber-d)}
.thumb.mu{background:var(--page2);color:var(--muted)}
.dotcolor{width:9px;height:9px;border-radius:50%;flex:none}

/* switch */
.sw{width:42px;height:24px;border-radius:var(--pill);background:var(--line);position:relative;flex:none;
  cursor:pointer;transition:background .2s;border:0}
.sw:after{content:'';position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.2s var(--ease)}
.sw.on{background:var(--accent)}
.sw.on:after{inset-inline-start:calc(100% - 21px)}

/* rings (KPI donut) */
.ring{position:relative;width:96px;height:96px;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-linecap:round}
.ring .rt{stroke:var(--page2);stroke-width:10}
.ring .rp{stroke:var(--brand);stroke-width:10;transition:stroke-dashoffset .8s var(--ease)}
.ring .rp.ac{stroke:var(--accent)}.ring .rp.am{stroke:var(--amber)}.ring .rp.rs{stroke:var(--rose)}
.ring .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .c b{font-family:var(--f-disp);font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.ring .c span{font-size:9.5px;color:var(--muted);font-weight:600}

/* bars mini chart */
.bars{display:flex;align-items:flex-end;gap:8px;height:120px}
.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%;justify-content:flex-end;min-width:0}
.bars .b i{width:100%;max-width:30px;background:var(--brand-t);border-radius:8px 8px 4px 4px;display:block;
  transition:height .6s var(--ease)}
.bars .b i.on{background:linear-gradient(180deg,var(--brand-g),var(--brand))}
.bars .b i.ac{background:linear-gradient(180deg,#5FE0BA,var(--accent))}
.bars .b span{font-size:10px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bars .b em{font-size:10px;font-style:normal;color:var(--ink2);font-weight:700;font-variant-numeric:tabular-nums}

/* progress */
.pb{height:8px;border-radius:var(--pill);background:var(--page2);overflow:hidden}
.pb i{display:block;height:100%;border-radius:var(--pill);background:var(--brand);transition:width .6s var(--ease)}
.pb i.ac{background:var(--accent)}.pb i.am{background:var(--amber)}.pb i.rs{background:var(--rose)}

/* KPI tile */
.kpi{background:#fff;border-radius:var(--r-lg);padding:18px;border:1px solid var(--line2);box-shadow:var(--sh);
  position:relative;overflow:hidden}
.kpi .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--brand-t);color:var(--brand)}
.kpi .ic .ms{font-size:21px}
.kpi .ic.ac{background:var(--accent-t);color:var(--accent-d)}
.kpi .ic.am{background:var(--amber-t);color:var(--amber-d)}
.kpi .ic.rs{background:var(--rose-t);color:var(--rose-d)}
.kpi-n{font-family:var(--f-disp);font-size:29px;font-weight:800;line-height:1;margin-top:14px;font-variant-numeric:tabular-nums}
.kpi-l{font-size:12px;color:var(--ink2);font-weight:600;margin-top:5px}
.kpi .trend{position:absolute;top:18px;inset-inline-end:18px;font-size:11px;font-weight:700;
  display:flex;align-items:center;gap:2px}
.kpi .trend.up{color:var(--accent-d)}.kpi .trend.dn{color:var(--rose-d)}
.kpi .trend .ms{font-size:15px}

/* table */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl thead th{font-size:11px;font-weight:700;color:var(--muted);text-align:start;padding:11px 14px;
  border-bottom:1px solid var(--line);white-space:nowrap}
.tbl thead th.r,.tbl td.r{text-align:end}
.tbl tbody td{padding:13px 14px;border-bottom:1px solid var(--line2);vertical-align:middle}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:var(--page)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer}
.tbl .money{font-weight:700;font-variant-numeric:tabular-nums}
.tbl-wrap{overflow-x:auto;scrollbar-width:thin}

/* timeline */
.tl{position:relative;padding-inline-start:26px}
.tl:before{content:'';position:absolute;inset-inline-start:7px;top:6px;bottom:6px;width:2px;
  background:repeating-linear-gradient(180deg,var(--line) 0 5px,transparent 5px 10px)}
.tl-item{position:relative;padding-bottom:20px}
.tl-item:last-child{padding-bottom:0}
.tl-item .dot{position:absolute;inset-inline-start:-26px;top:2px;width:16px;height:16px;border-radius:50%;
  background:#fff;border:3px solid var(--brand);box-shadow:0 0 0 3px var(--page)}
.tl-item .dot.ac{border-color:var(--accent)}.tl-item .dot.am{border-color:var(--amber)}.tl-item .dot.mu{border-color:var(--muted)}
.tl-item time{font-size:11px;color:var(--muted);font-weight:600}
.tl-item .tt{font-size:13.5px;font-weight:700;margin-top:2px}
.tl-item .td{font-size:12px;color:var(--ink2);margin-top:2px}

/* ═══════════ KANBAN BOARD ═══════════ */
/* الصفحة RTL: أول عمود في DOM يظهر أقصى اليمين، وآخره أقصى اليسار.
   ترتيب الأعمدة: محجوز · بالانتظار · قيد الكشف · مكتمل · إلغاء الحجز. */
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.board.q-board{grid-template-columns:repeat(5,minmax(0,1fr))}
.bcol{background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:12px;min-height:200px;transition:background .15s,border-color .15s}
.bcol.drop{background:var(--brand-t);border-color:var(--brand);border-style:dashed}
.bcol-h{display:flex;align-items:center;gap:8px;padding:4px 6px 12px}
.bcol-h .badge{width:9px;height:9px;border-radius:50%;flex:none}
.bcol-h b{font-size:13px;font-weight:800}
.bcol-h .cnt{margin-inline-start:auto;font-size:11px;font-weight:700;color:var(--muted);
  background:#fff;border:1px solid var(--line);border-radius:var(--pill);padding:2px 9px}
.kcard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--line2);
  padding:13px;margin-bottom:10px;cursor:grab;transition:transform .12s,box-shadow .12s}
.kcard:hover{box-shadow:var(--sh2)}
.kcard.drag{opacity:.5;transform:rotate(1.5deg)}
.kcard:last-child{margin-bottom:0}
.kcard .kt{font-size:13.5px;font-weight:700}
.kcard .km{font-size:11.5px;color:var(--ink2);display:flex;align-items:center;gap:5px;margin-top:5px}
.kcard .km .ms{font-size:15px;color:var(--muted)}
.kcard .ktags{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.tag-chip{font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--pill);display:inline-flex;align-items:center;gap:4px}
.kcard .kfoot{display:flex;gap:7px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line2)}

/* ═══════════ FORMS ═══════════ */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}
.field>label{font-size:11.5px;font-weight:700;color:var(--ink2)}
.field .req{color:var(--rose)}
.input,select.input,textarea.input{width:100%;height:44px;border:1.5px solid var(--line);border-radius:12px;
  padding:0 14px;font-size:13.5px;background:#fff;transition:.14s;color:var(--ink)}
textarea.input{height:auto;padding:12px 14px;resize:vertical;min-height:78px;line-height:1.6}
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-t);outline:none}
.input::placeholder{color:var(--faint)}
.input.tel{direction:ltr;text-align:end;unicode-bidi:plaintext;font-variant-numeric:tabular-nums;letter-spacing:.4px}
.input.bad,.input.bad:focus{border-color:var(--rose);box-shadow:0 0 0 3.5px var(--rose-t)}
.field-err{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--rose-d);
  animation:errIn .16s var(--ease)}
.field-err .ms{font-size:15px}
@keyframes errIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
select.input{cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%238A93B2' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left 14px center;padding-inline-end:14px;padding-inline-start:38px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.f4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
/* تلميح تحت الحقل: العمر المحسوب، الاسم الكامل المُركَّب… */
.field .hint{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--muted);min-height:16px}
.field .hint .ms{font-size:15px;color:var(--brand)}
.field .hint b{color:var(--ink)}
/* معاينة الاسم الكامل المُركَّب من أجزائه */
.name-preview{display:flex;align-items:center;gap:10px;background:var(--page);border:1.5px dashed var(--line);border-radius:12px;padding:10px 14px;margin:-4px 0 15px}
.name-preview .ms{font-size:19px;color:var(--brand)}
.name-preview .lbl{flex:none}
.name-preview b{font-family:var(--f-disp);font-size:15px;font-weight:800;color:var(--ink);word-break:break-word}
.name-preview b.mut{font-family:var(--f-body);font-size:13px;font-weight:600}

/* ═══════════ MODAL / DRAWER ═══════════ */
.backdrop{position:fixed;inset:0;background:rgba(21,28,51,.42);backdrop-filter:blur(3px);z-index:80;
  display:grid;place-items:center;padding:24px;opacity:0;animation:fade .2s forwards}
@keyframes fade{to{opacity:1}}
.modal{background:var(--card);border-radius:26px;box-shadow:var(--sh2);width:100%;max-width:560px;
  max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;transform:translateY(14px) scale(.98);
  animation:pop .28s var(--ease) forwards}
.modal.wide{max-width:820px}
@keyframes pop{to{transform:none}}
.drawer{position:fixed;inset-block:0;inset-inline-end:0;width:min(460px,94vw);background:var(--card);
  box-shadow:var(--sh2);z-index:80;display:flex;flex-direction:column;transform:translateX(100%);
  animation:slidein .3s var(--ease) forwards}
[dir=rtl] .drawer{transform:translateX(-100%)}
@keyframes slidein{to{transform:none}}
.m-head{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}
.m-head h3{font-family:var(--f-disp);font-size:18px;font-weight:800;flex:1}
.m-body{padding:22px;overflow-y:auto;flex:1}
.m-foot{padding:16px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.close-x{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:var(--muted);
  background:var(--page);transition:.14s}
.close-x:hover{background:var(--rose-t);color:var(--rose-d)}

/* ═══════════ TOAST ═══════════ */
.toasts{position:fixed;bottom:24px;inset-inline-start:24px;z-index:120;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--ink);color:#fff;border-radius:14px;padding:13px 18px;box-shadow:var(--sh2);
  display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;max-width:360px;
  transform:translateY(12px);opacity:0;animation:tin .3s var(--ease) forwards}
@keyframes tin{to{transform:none;opacity:1}}
.toast.out{animation:tout .3s var(--ease) forwards}
@keyframes tout{to{transform:translateY(12px);opacity:0}}
.toast .ms{font-size:20px;color:var(--brand-g)}
.toast.ok .ms{color:#5FE0BA}
.toast.warn .ms{color:var(--amber)}

/* ═══════════ SIGNATURE: ECG pulse line ═══════════ */
.pulse{width:100%;height:46px;display:block;overflow:visible}
.pulse path{fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 2px 5px rgba(46,91,255,.35))}
.pulse .trace{stroke-dasharray:1400;stroke-dashoffset:1400;animation:trace 3.4s var(--ease) forwards}
.pulse .beat{fill:var(--brand);stroke:none}
.pulse.ac path{stroke:var(--accent)}
.pulse.ac .beat{fill:var(--accent)}
@keyframes trace{to{stroke-dashoffset:0}}
.pulse-blip{animation:blipmove 2.6s linear infinite}
@keyframes blipmove{from{transform:translateX(0)}to{transform:translateX(-100%)}}

/* empty state */
.empty{text-align:center;padding:44px 20px;color:var(--muted)}
.empty .thumb{width:64px;height:64px;border-radius:20px;margin:0 auto 14px}
.empty .thumb .ms{font-size:32px}
.empty b{font-size:15px;color:var(--ink);font-weight:700;display:block}
.empty p{font-size:12.5px;margin-top:5px;max-width:280px;margin-inline:auto;line-height:1.7}

/* misc helpers */
.hide{display:none!important}
.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hr-num{font-family:var(--f-disp);font-variant-numeric:tabular-nums;font-weight:800}
.growth{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:700}

/* ═══════════ RESPONSIVE ═══════════ */
@media(max-width:1180px){
  .g-main{grid-template-columns:1fr}
  .board{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1024px){
  :root{--rail:var(--rail-sm)}
  .f4{grid-template-columns:1fr 1fr}
  .brand b,.brand span,.nav .grp,.nav a span.t,.nav a .cnt,.side-user b,.side-user span{display:none}
  .brand{justify-content:center;padding:18px 0}
  .nav a{justify-content:center;padding:12px}
  .nav a.on:before{inset-inline-start:0}
  .side-user{justify-content:center}
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:1fr 1fr}
}
@media(max-width:1024px){
  /* اللوحي: نفس التخطيط بعناصر أضيق — لا يوجد وضع هاتف */
  .view{padding:20px}
  .search{max-width:none}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .pulse .trace{stroke-dashoffset:0}
}

/* ═══════════ POS / catalog ═══════════ */
.pos{display:grid;grid-template-columns:1fr 380px;gap:18px;align-items:start}
.pos>*{min-width:0}
/* بحث الكتالوج: حقل واحد يغطي الاسم والفئة والباركود والسعر */
.pos-search{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex:none}
.pos-search .search{max-width:none;flex:1;border:1.5px solid var(--line);box-shadow:none;padding:8px 15px;transition:.14s var(--ease)}
.pos-search .search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-t)}
.pos-search .cnt{flex:none;white-space:nowrap;font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.cat-none{grid-column:1/-1}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cat-item.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-t)}
.cat-item mark{background:var(--brand-t);color:var(--brand-d);border-radius:4px;padding:0 1px}
.cat-item .ci-meta{margin-top:4px;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-item{background:#fff;border:1.5px solid var(--line2);border-radius:16px;padding:13px;cursor:pointer;
  text-align:start;transition:.14s var(--ease);position:relative;overflow:hidden}
.cat-item:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--sh)}
.cat-item:active{transform:scale(.98)}
.cat-item .ci-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-t);color:var(--brand);margin-bottom:10px}
.cat-item.svc .ci-ic{background:var(--brand-t);color:var(--brand)}
.cat-item.prod .ci-ic{background:var(--accent-t);color:var(--accent-d)}
.cat-item b{font-size:12.5px;font-weight:700;display:block;line-height:1.4;min-height:2.6em}
.cat-item .ci-p{font-family:var(--f-disp);font-weight:800;font-size:14px;margin-top:6px;font-variant-numeric:tabular-nums}
.cat-item .ci-tag{position:absolute;top:11px;inset-inline-end:11px;font-size:9.5px;font-weight:700;color:var(--muted)}
.ticket{position:sticky;top:0;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh);
  border:1px solid var(--line2);display:flex;flex-direction:column;max-height:calc(100dvh - var(--top) - 52px);min-width:0}
.ticket-h{padding:16px 18px;border-bottom:1px solid var(--line)}
.ticket-b{padding:14px 18px;overflow-y:auto;flex:1;min-height:120px}
.ticket-f{padding:16px 18px;border-top:1px solid var(--line);background:var(--page)}
.line{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line2)}
.line:last-child{border-bottom:0}
.line .ln-n{flex:1;min-width:0}
.line .ln-n b{font-size:12.5px;font-weight:600;display:block}
.step{display:flex;align-items:center;gap:2px;background:var(--page2);border-radius:9px;padding:2px}
.step button{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--ink2);font-weight:700}
.step button:hover{background:#fff}
.step span{min-width:24px;text-align:center;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
.pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pay-methods.g4{grid-template-columns:repeat(4,1fr)}
.pay-methods.g4 .pay-m{padding:9px 3px;font-size:11px}
.pay-m{border:1.5px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center;cursor:pointer;transition:.14s;font-size:11.5px;font-weight:700;color:var(--ink2)}
.pay-m .ms{font-size:20px;display:block;margin:0 auto 3px}
.pay-m.on{border-color:var(--brand);background:var(--brand-t);color:var(--brand-d)}

/* discount picker: percentage | fixed amount (one active at a time) */
.disc{border:1.5px solid var(--line);border-radius:14px;background:#fff;padding:5px;
  display:flex;flex-direction:column;gap:3px}
.disc-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;cursor:pointer;
  border:1.5px solid transparent;transition:.14s var(--ease)}
.disc-row:hover{background:var(--page)}
.disc-row.on{border-color:var(--brand);background:var(--brand-t)}
.disc-row>.ms{font-size:19px;color:var(--faint);flex:none;transition:.14s}
.disc-row.on>.ms{color:var(--brand)}
.disc-row .dl{flex:1;min-width:0;font-size:12px;font-weight:700;color:var(--ink2);white-space:nowrap}
.disc-row.on .dl{color:var(--brand-d)}
.disc-f{display:flex;align-items:center;gap:5px;flex:none;height:32px;padding:0 8px;border-radius:9px;
  background:var(--page2);border:1.5px solid transparent;transition:.14s}
.disc-row.on .disc-f{background:#fff;border-color:var(--brand)}
.disc-f input{width:58px;height:100%;border:0;background:none;outline:none;text-align:end;
  font-size:13px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}
.disc-f input::placeholder{color:var(--faint);font-weight:600}
.disc-f input::-webkit-outer-spin-button,.disc-f input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.disc-f input[type=number]{-moz-appearance:textfield;appearance:textfield}
.disc-f .u{flex:none;font-size:10.5px;font-weight:700;color:var(--muted)}
.disc-row.on .disc-f .u{color:var(--brand-d)}
.disc-clear{display:flex;align-items:center;gap:3px;padding:3px 8px;border-radius:var(--pill);
  font-size:11px;font-weight:700;color:var(--rose-d);transition:.14s}
.disc-clear:hover{background:var(--rose-t)}
.disc-clear .ms{font-size:14px}

/* receipt (print) */
.receipt{font-family:var(--f-body);color:#000;background:#fff;width:340px;margin:0 auto;padding:8px 4px}
.receipt .rc-h{text-align:center;padding-bottom:10px;border-bottom:2px dashed #bbb}
.receipt .rc-h b{font-family:var(--f-disp);font-size:20px;font-weight:800;display:block}
.receipt .rc-row{display:flex;justify-content:space-between;font-size:12.5px;padding:3px 0}
.receipt .rc-items{margin:8px 0;border-top:1px dashed #bbb;border-bottom:1px dashed #bbb;padding:8px 0}
.receipt .rc-tot{display:flex;justify-content:space-between;font-weight:800;font-size:15px;padding-top:6px}
.receipt .rc-foot{text-align:center;font-size:11px;color:#555;margin-top:10px;padding-top:8px;border-top:2px dashed #bbb}
.num-en{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}

/* اسم المراجع وصورته داخل الجداول: رابط ظاهر أنه رابط — يتلوّن عند المرور،
   وإطار التركيز العام يكفي للوحة المفاتيح لأنه عنصر <a> حقيقي. */
.pat-link{border-radius:10px;transition:.12s}
.pat-link b{transition:.12s}
.pat-link:hover b{color:var(--brand-d);text-decoration:underline;text-underline-offset:2px}
.pat-link:hover .avatar{box-shadow:0 0 0 2.5px var(--brand-t)}
.pat-link:focus-visible b{color:var(--brand-d)}

@media print{
  html,body,body.app{height:auto!important;overflow:visible!important;min-width:0!important}
  body{background:#fff!important;background-image:none!important}
  body>*{display:none!important}
  .backdrop{position:static!important;background:none!important;backdrop-filter:none!important;display:block!important;padding:0!important}
  .backdrop *{visibility:visible}
  .modal{box-shadow:none!important;max-width:none!important;border-radius:0!important;animation:none!important}
  .m-head,.m-foot,.close-x{display:none!important}
  /* أقسام لا تُطبع مع فاتورة المريض — العمولات والمستحقات تبقى على الشاشة وحدها */
  .noprint,[data-noprint]{display:none!important}
  .m-body{padding:0!important;overflow:visible!important}
  .receipt{width:auto}
}
@media(max-width:1180px){.pos{grid-template-columns:1fr 330px;gap:14px}}

/* نقطة البيع بملء الشاشة: الترويسة والفاتورة ثابتتان، والكتالوج وحده يمرّر */
.view.view-pos{height:100%;display:flex;flex-direction:column;padding-bottom:0;overflow:hidden}
.view-pos .page-head{flex:none;margin-bottom:14px}
.view-pos .pos{flex:1;min-height:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}
.pos-col{display:flex;flex-direction:column;min-width:0;min-height:0}
.pos-col .chips{flex:none}
.cat-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 2px 22px;scrollbar-width:thin}
.view-pos .ticket{position:static;height:100%;max-height:100%}
/* على الشاشات القصيرة يتقلّص سطر الأصناف كي يبقى زر التحصيل ظاهراً دائماً */
.view-pos .ticket{overflow:hidden}
.view-pos .ticket-b{min-height:70px}
.view-pos .ticket-f{min-height:0;overflow-y:auto;overscroll-behavior:contain}
/* شاشة قصيرة (اللوحي أفقياً): تُضغط بطاقة الفاتورة كي يبقى زر التحصيل ظاهراً بلا تمرير */
@media(max-height:820px){
  .view-pos .ticket-h{padding:12px 16px}
  .view-pos .ticket-f{padding:12px 16px}
  .view-pos .ticket-b{min-height:56px}
}

/* ═══════════ فاتورة نقطة البيع (.tk) ═══════════
   الأسطر هي المساحة الرئيسة وتمرّر وحدها؛ الترويسة (المراجع والطبيب في صف واحد) والتذييل
   (خصم بصف واحد، طرق الدفع بشريط مقسّم، المستلم والباقي بصف واحد) مضغوطان كي تبقى
   تفاصيل الفاتورة ظاهرة بلا تمرير على شاشة الحاسوب المحمول. لا تمسّ هذه القواعد بنّاء المشتريات. */
.view-pos .tk-h{padding:12px 16px}
.tk-h .sec-t .ms{font-size:20px}
.tk-h .pill{padding:3px 9px;font-size:10.5px}
.tk-who{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;margin-top:10px}
.tk-sel.input{height:36px;font-size:12.5px;font-weight:600;border-radius:10px;padding-inline-start:28px;padding-inline-end:11px;
  background-position:left 9px center;background-size:16px;text-overflow:ellipsis}
/* حقل المراجع صار بحثاً يدوياً (combobox) — يُقاس على مقاس القائمة المجاورة */
.tk-who .cmb-in.input{height:36px;font-size:12.5px;font-weight:600;border-radius:10px;padding-inline-start:11px;padding-inline-end:30px}
.tk-who .cmb-cv{font-size:17px}

/* --- الأسطر --- */
.view-pos .tk-b{padding:0 16px 10px;scrollbar-width:thin}
.tk-cols{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:10px;padding:9px 0 7px;margin-bottom:2px;
  background:#fff;border-bottom:1px solid var(--line);font-size:10.5px;font-weight:700;color:var(--muted)}
.tk-cols span:nth-child(1){flex:1}
.tk-cols span:nth-child(2){width:84px;flex:none;text-align:center}
.tk-cols span:nth-child(3){width:70px;flex:none;text-align:end;margin-inline-end:32px}
.tk-ln{padding:9px 0;border-bottom:1px solid var(--line2)}
.tk-ln:last-child{border-bottom:0}
.tk-ln-m{display:flex;align-items:center;gap:10px}
.tk-ln-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tk-ln-n b{font-size:12.5px;font-weight:700;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-ln-n .lbl{font-size:10.5px}
.tk-step{flex:none}
.tk-step button{width:24px;height:24px}
.tk-step button .ms{font-size:15px}
.tk-step span{min-width:24px;font-size:12.5px}
.tk-ln-a{width:70px;flex:none;text-align:end;font-family:var(--f-disp);font-weight:800;font-size:13.5px}
.tk-ln-x{width:22px;height:22px;flex:none;border-radius:7px;display:grid;place-items:center;color:var(--faint);transition:.14s}
.tk-ln-x .ms{font-size:17px}
.tk-ln-x:hover{color:var(--rose-d);background:var(--rose-t)}
.tk-ln-s{display:flex;align-items:center;gap:6px;margin-top:6px}
.tk-ln-s>.ms{font-size:15px;color:var(--faint);flex:none}
.tk-ln-s select{flex:1;min-width:0;height:26px;border:1px solid transparent;border-radius:8px;background:var(--page);
  font-family:inherit;font-size:11.5px;font-weight:600;color:var(--ink2);padding:0 8px;outline:none;cursor:pointer;transition:.14s}
.tk-ln-s select:hover{border-color:var(--line)}
.tk-ln-s select:focus{border-color:var(--brand);background:#fff}
.tk-ln-s .ln-rate{padding:2px 8px;font-size:10.5px}
.tk-b .empty{padding:22px 10px}
.tk-b .empty .thumb{width:48px;height:48px;border-radius:15px;margin-bottom:10px}
.tk-b .empty .thumb .ms{font-size:24px}
.tk-b .empty b{font-size:13.5px}
.tk-b .empty p{font-size:12px;margin-top:3px}

/* --- التذييل --- */
.view-pos .tk-f{padding:10px 16px 14px}
.tk-sum{display:flex;flex-direction:column;gap:6px}
.tk-r{display:flex;align-items:center;gap:8px;min-height:24px}
.tk-r>.v,.tk-r>.tk-neg{margin-inline-start:auto}
.tk-neg{color:var(--rose-d)}
.tk-disc{display:inline-flex;align-items:center;gap:4px;height:30px;padding:2px;border:1.5px solid var(--line);border-radius:10px;background:#fff;transition:.14s}
.tk-disc:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-t)}
.tk-seg{display:inline-flex;background:var(--page2);border-radius:7px;padding:2px;gap:2px;flex:none}
.tk-seg button{height:20px;min-width:30px;padding:0 6px;border-radius:5px;font-size:10.5px;font-weight:800;color:var(--muted);transition:.14s}
.tk-seg button:hover{color:var(--ink2)}
.tk-seg button.on{background:#fff;color:var(--brand-d);box-shadow:var(--sh)}
.tk-disc input{width:62px;height:100%;border:0;background:none;outline:none;text-align:end;padding:0 4px;
  font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}
.tk-disc input::placeholder,.tk-tend input::placeholder{color:var(--faint);font-weight:600}
.tk-disc input::-webkit-outer-spin-button,.tk-disc input::-webkit-inner-spin-button,
.tk-tend input::-webkit-outer-spin-button,.tk-tend input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tk-disc input[type=number],.tk-tend input[type=number]{-moz-appearance:textfield;appearance:textfield}
.tk-x{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--muted);flex:none;transition:.14s}
.tk-x .ms{font-size:14px}
.tk-x:hover{background:var(--rose-t);color:var(--rose-d)}
.tk-warn{color:var(--rose-d);text-align:start}
.tk-tot{margin-top:2px;padding-top:8px;border-top:1px dashed var(--line);font-size:14px;font-weight:800}
.tk-total{margin-inline-start:auto;font-size:22px;color:var(--brand-d);line-height:1}
.tk-total .cur{font-size:11px}
.tk-pay-m{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:10px;padding:3px;border-radius:12px;background:var(--page2)}
.tk-pay-m button{height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  font-size:12px;font-weight:700;color:var(--ink2);transition:.14s}
.tk-pay-m button .ms{font-size:17px}
.tk-pay-m button:hover{color:var(--ink)}
.tk-pay-m button.on{background:#fff;color:var(--brand-d);box-shadow:var(--sh)}
.tk-tend-r{margin-top:8px}
.tk-tend{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 9px;border:1.5px solid var(--line);border-radius:10px;background:#fff;transition:.14s}
.tk-tend:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-t)}
.tk-tend input{width:84px;height:100%;border:0;background:none;outline:none;text-align:end;padding:0;font-size:13.5px;font-weight:700;color:var(--ink)}
.tk-tend .u{font-size:10.5px;font-weight:700;color:var(--muted);flex:none}
.tk-change{margin-inline-start:auto;display:inline-flex;align-items:center;gap:6px}
.tk-change b{font-size:14px;color:var(--accent-d);font-family:var(--f-disp);font-weight:800}
.tk-note{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11.5px;font-weight:600;color:var(--rose-d);text-align:start}
.tk-note .ms{font-size:16px}
.tk-paybtn{margin-top:10px;height:46px;font-size:14.5px;border-radius:13px}
/* شاشة قصيرة: يُضغط كل شيء قليلاً كي تبقى الأسطر وزر التحصيل ظاهرين معاً */
@media(max-height:820px){
  .view-pos .tk-h{padding:10px 14px}
  .tk-who{margin-top:8px}
  .view-pos .tk-b{padding-inline:14px}
  .tk-ln{padding:7px 0}
  .view-pos .tk-f{padding:8px 14px 12px}
  .tk-sum{gap:4px}
  .tk-total{font-size:20px}
  .tk-pay-m{margin-top:8px}
  .tk-pay-m button{height:30px}
  .tk-paybtn{margin-top:8px;height:42px}
}

/* ═══════════════════════════════════════════════════════════════
   المخزن · الموردون · المشتريات
   جدول بيانات · ورقة طباعة · بنّاء فاتورة الشراء · شاشة الجرد
   ═══════════════════════════════════════════════════════════════ */

/* ---------- جدول البيانات ---------- */
.dt{display:flex;flex-direction:column;gap:14px}
.dt-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dt-bar .chips{flex:0 1 auto;max-width:100%}
.dt-search{max-width:320px;flex:1 1 230px;box-shadow:none;border:1.5px solid var(--line);padding:7px 14px}
.dt-search input{min-width:0}
.dt-clear,.dt-rclear{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;color:var(--muted);flex:none;transition:.14s}
.dt-clear:hover,.dt-rclear:hover{background:var(--page2);color:var(--rose-d)}
.dt-clear .ms,.dt-rclear .ms{font-size:16px}
/* نطاق التاريخ (من ← إلى): كبسولة واحدة بجوار البحث بنفس لغته — حدّ وزوايا وتركيز */
.dt-range{display:flex;align-items:center;gap:2px;flex:0 0 auto;align-self:stretch;background:#fff;
  border:1.5px solid var(--line);border-radius:var(--pill);padding:2px 5px;padding-inline-start:13px;
  transition:border-color .14s,box-shadow .14s,background-color .14s}
.dt-range:focus-within{border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-t)}
.dt-range.on{border-color:var(--brand);background-color:#F7F9FF}
.dt-range-ic{font-size:19px;color:var(--muted);margin-inline-end:3px;transition:color .14s}
.dt-range.on .dt-range-ic,.dt-range:focus-within .dt-range-ic{color:var(--brand)}
.dt-rseg{display:flex;align-items:center;gap:7px;height:28px;padding:0 9px;border-radius:var(--pill);cursor:pointer;transition:background-color .14s}
.dt-rseg:hover{background:var(--page)}
.dt-rk{font-size:11.5px;font-weight:700;color:var(--muted);user-select:none;white-space:nowrap}
.dt-rd{width:94px;height:26px;border:0;background:none;outline:none;padding:0;cursor:pointer;
  font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);text-align:right}
[dir=ltr] .dt-rd{text-align:left}
.dt-range.on .dt-rd:not(.is-empty){color:var(--brand-d)}
.dt-rd.is-empty::-webkit-datetime-edit{color:var(--faint)}
.dt-rd::-webkit-datetime-edit-day-field:focus,.dt-rd::-webkit-datetime-edit-month-field:focus,
.dt-rd::-webkit-datetime-edit-year-field:focus{background:var(--brand-t);color:var(--brand-d);border-radius:4px}
.dt-rd::-webkit-calendar-picker-indicator{display:none}
.dt-rsep{width:10px;height:1.5px;border-radius:2px;background:var(--faint);flex:none}
.dt-range:not(.on) .dt-rclear{display:none}
.dt-rclear{margin-inline-start:2px}
select.dt-sel,.dt-bar select.dt-sel{height:38px;width:auto;min-width:148px;max-width:230px;flex:0 0 auto;
  font-size:12.5px;font-weight:600;border-radius:11px;
  padding-inline-start:36px;padding-inline-end:12px;background-position:left 12px center}
.dt-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dt-card{overflow:hidden}
.dt-tbl thead th.sortable{cursor:pointer;user-select:none;transition:color .14s}
.dt-tbl thead th.sortable:hover{color:var(--brand-d)}
.dt-tbl thead th.sorted{color:var(--brand-d)}
.th-in{display:inline-flex;align-items:center;gap:3px}
.sort-i{font-size:15px;opacity:.45}
.dt-tbl thead th.sorted .sort-i{opacity:1}
.dt-tbl tfoot td{padding:12px 14px;border-top:1.5px solid var(--line);background:var(--page);
  font-weight:800;font-size:13px}
.dt-pg{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line);
  background:var(--page);flex-wrap:wrap}
.dt-count{white-space:nowrap}
.dt-size{font-size:11px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}
.dt-size select{height:28px;border:1.5px solid var(--line);border-radius:8px;background:#fff;
  font-size:12px;font-weight:700;padding:0 6px;cursor:pointer;font-variant-numeric:tabular-nums}
.dt-nav{display:flex;align-items:center;gap:4px}
.dt-pb{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:var(--ink2);
  background:#fff;border:1px solid var(--line);transition:.14s}
.dt-pb:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}
.dt-pb:disabled{opacity:.38;cursor:default}
.dt-pb .ms{font-size:17px}
.dt-pnum{font-size:12px;font-weight:700;padding:0 9px;color:var(--ink2)}

/* ---------- حالات المخزن ---------- */
.exp-cell{white-space:nowrap}
.exp-soon{color:var(--amber-d);font-weight:700}
.exp-bad{color:var(--rose-d);font-weight:700}
.stk-mini{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--ink2)}
.alert-strip{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:14px;
  background:var(--page);border:1px solid var(--line2);margin-bottom:8px;transition:.14s}
.alert-strip:last-child{margin-bottom:0}
.alert-strip:hover{background:#fff;box-shadow:var(--sh)}
.alert-strip .as-n{font-family:var(--f-disp);font-weight:800;font-variant-numeric:tabular-nums;font-size:15px}

/* ---------- بنّاء فاتورة الشراء ---------- */
.pline{padding:11px 0;border-bottom:1px solid var(--line2)}
.pline:last-child{border-bottom:0}
.pl-top{display:flex;align-items:center;gap:9px}
.pl-top b{flex:1;min-width:0;font-size:12.5px;font-weight:700}
.pl-bot{display:flex;align-items:center;gap:8px;margin-top:8px}
.pl-f{display:flex;align-items:center;gap:5px;height:32px;padding:0 9px;border-radius:9px;
  background:var(--page2);border:1.5px solid transparent;transition:.14s;flex:1;min-width:0}
.pl-f:focus-within{background:#fff;border-color:var(--brand)}
.pl-f label{font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap}
.pl-f input{width:100%;min-width:0;height:100%;border:0;background:none;outline:none;text-align:end;
  font-size:12.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}
.pl-f input::-webkit-outer-spin-button,.pl-f input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pl-f input[type=number]{-moz-appearance:textfield;appearance:textfield}
.pl-sum{font-weight:800;font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap;min-width:74px;text-align:end}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:11px;
  max-height:min(56vh,520px);overflow-y:auto;padding:2px;scrollbar-width:thin}
.pick-it{background:#fff;border:1.5px solid var(--line2);border-radius:15px;padding:12px;cursor:pointer;
  text-align:start;transition:.14s var(--ease);position:relative}
.pick-it:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--sh)}
.pick-it:active{transform:scale(.98)}
.pick-it.in{border-color:var(--accent);background:var(--accent-t)}
.pick-it b{font-size:12.5px;font-weight:700;display:block;line-height:1.4;min-height:2.6em}
.pick-it.in b{padding-inline-end:24px}
.pick-it .pi-m{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px}
.pick-it .pi-c{font-family:var(--f-disp);font-weight:800;font-size:13.5px;font-variant-numeric:tabular-nums}
.pick-it .pi-q{font-size:10px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.pick-it .pi-b{position:absolute;top:9px;inset-inline-end:9px;width:19px;height:19px;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:800}

/* ---------- الجرد ---------- */
.cnt-in{width:94px;height:34px;text-align:center;border:1.5px solid var(--line);border-radius:9px;
  font-weight:700;font-variant-numeric:tabular-nums;background:#fff;transition:.14s}
.cnt-in:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-t);outline:none}
.cnt-in.dirty{border-color:var(--amber);background:var(--amber-t)}
.cnt-diff{font-weight:800;font-variant-numeric:tabular-nums;font-size:13px}
.cnt-diff.up{color:var(--accent-d)}
.cnt-diff.dn{color:var(--rose-d)}

/* ---------- ورقة الطباعة ---------- */
.sheet{background:#fff;color:#14161c;padding:4px 2px;font-size:12.5px;line-height:1.6}
.sh-h{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
  padding-bottom:11px;border-bottom:2px solid #1B2440}
.sh-org b{font-family:var(--f-disp);font-size:19px;font-weight:800;display:block;line-height:1.2}
.sh-org span{font-size:11px;color:#666}
.sh-title{text-align:end}
.sh-title b{font-family:var(--f-disp);font-size:16px;font-weight:800;display:block}
.sh-title span{font-size:11px;color:#666}
.sh-meta{display:flex;flex-wrap:wrap;gap:6px 22px;padding:10px 0;border-bottom:1px dashed #b9bfd0;margin-bottom:13px}
.sh-meta div{font-size:11.5px}
.sh-meta span{color:#6a7186;margin-inline-end:5px}
.sh-meta b{font-weight:700;font-variant-numeric:tabular-nums}
.sh-body{overflow-x:auto}
.sheet-tbl{width:100%;border-collapse:collapse;font-size:11.5px}
.sheet-tbl th{background:#eef1f9;border:1px solid #ccd3e6;padding:7px 8px;text-align:start;font-weight:700;font-size:11px;white-space:nowrap}
.sheet-tbl td{border:1px solid #dfe4f0;padding:6px 8px;vertical-align:middle}
.sheet-tbl .r{text-align:end;font-variant-numeric:tabular-nums}
.sheet-tbl tbody tr:nth-child(even) td{background:#fafbfe}
.sheet-tbl tfoot td{font-weight:800;background:#eef1f9;border-color:#ccd3e6}
.sh-foot{margin-top:13px;display:flex;justify-content:flex-end}
.sh-tot{min-width:260px}
.sh-tot .tr{display:flex;justify-content:space-between;gap:20px;padding:4px 0;font-size:12.5px}
.sh-tot .tr b{font-variant-numeric:tabular-nums}
.sh-tot .tr.grand{border-top:2px solid #1B2440;margin-top:6px;padding-top:8px;font-weight:800;font-size:14.5px}
.sh-sign{display:flex;gap:26px;margin-top:30px}
.sh-sign div{flex:1;text-align:center;font-size:11px;color:#6a7186}
.sh-sign i{display:block;border-top:1px dotted #8f96ab;margin-top:32px}
.sh-note{margin-top:14px;text-align:center;font-size:10.5px;color:#6a7186;border-top:1px dashed #b9bfd0;padding-top:8px}

@media print{
  .sheet{width:auto;padding:0;font-size:11px}
  .sheet-tbl{page-break-inside:auto}
  .sheet-tbl tr{page-break-inside:avoid;page-break-after:auto}
  .sheet-tbl thead{display:table-header-group}
  .sh-body{overflow:visible}
}

/* ═══════════════════════════════════════════════════════════════
   العمولات والاستحقاقات
   ═══════════════════════════════════════════════════════════════ */

/* شريط فلاتر التقرير: الشخص · الفترة · الحالة */
.cm-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:end;
  background:#fff;border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--sh);padding:16px}
.cm-filters .field{margin-bottom:0}
.cm-filters .input{height:40px}
.cm-quick{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;padding-top:2px;border-top:1px dashed var(--line);margin-top:2px}
.cm-quick .chip{padding:6px 13px;font-size:11.5px}

/* محرّر تخصيص الخدمات داخل نموذج العمولة */
.cm-svc,.cm-svc-head{display:grid;grid-template-columns:1fr 130px 96px 140px 38px;gap:8px;align-items:center}
.cm-svc{margin-bottom:8px}
.cm-svc .input{height:38px;font-size:12.5px}
.cm-svc-head{padding:0 2px 6px;font-size:10.5px;font-weight:700;color:var(--muted)}

/* حقل بالبحث اليدوي: نصّ + قائمة خيارات مُصفّاة تُفتح ملاصقةً له (اختيار الخدمة) */
.cmb{position:relative;min-width:0}
.cmb .cmb-in{padding-inline-end:34px;text-overflow:ellipsis}
/* الأيقونة .ms تفرض direction:ltr — تُعاد إلى اتجاه الصفحة كي تستقر في نهاية الحقل */
.cmb-cv{position:absolute;direction:inherit;inset-inline-end:11px;top:50%;transform:translateY(-50%);
  font-size:17px;color:var(--muted);pointer-events:none;transition:.14s}
.cmb .cmb-in:focus~.cmb-cv{color:var(--brand)}
.cmb-pop{position:fixed;z-index:5;background:#fff;border:1.5px solid var(--line);border-radius:15px;
  box-shadow:var(--sh2);padding:6px;overflow-y:auto;scrollbar-width:thin;animation:rise .14s var(--ease)}
.cmb-opt{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:11px;
  text-align:start;cursor:pointer;transition:.1s}
.cmb-opt+.cmb-opt{margin-top:2px}
.cmb-opt .co-n{flex:1;min-width:0}
.cmb-opt .co-n b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmb-opt .co-p{font-family:var(--f-disp);font-size:12px;font-weight:800;color:var(--ink2);white-space:nowrap}
.cmb-opt .co-k{width:16px;font-size:16px;color:var(--brand-d)}
.cmb-opt.on{background:var(--brand-t)}
.cmb-opt.sel .co-n b{color:var(--brand-d)}
.cmb-none{padding:15px 10px;text-align:center;font-size:12px;font-weight:600;color:var(--muted)}

/* صف نسبة المسمّى الوظيفي */
.cm-role{display:flex;align-items:center;gap:9px;background:var(--page);border:1px solid var(--line2);
  border-radius:14px;padding:9px 12px}
.cm-role .input{height:36px;font-size:12.5px}

/* شريط التحديد المتعدّد فوق جدول القيود */
.cm-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--brand-t);
  border:1.5px solid var(--brand-t);border-radius:var(--r-lg);padding:11px 15px;margin-bottom:12px}
.cm-bar .lbl{color:var(--ink2)}

/* مربّع اختيار موحّد داخل الجداول */
.cbx{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;vertical-align:-3px}

/* ترويسة الفاتورة الملغاة */
.void-stamp{display:inline-flex;align-items:center;gap:5px;background:var(--rose-t);color:var(--rose-d);
  border-radius:var(--pill);padding:4px 11px;font-size:11px;font-weight:700}

@media(max-width:1100px){ .cm-filters{grid-template-columns:repeat(2,1fr)} }
/* نسبة العمولة المتوقعة لسطر الفاتورة (نقطة البيع) */
.ln-rate{flex:none;font-size:11px;font-weight:800;color:var(--brand-d);background:var(--brand-t);
  border-radius:var(--pill);padding:3px 9px;font-variant-numeric:tabular-nums}
.ln-rate.off{color:var(--muted);background:var(--page2)}

/* ═══════════════════════════════════════════════════════════════
   الملف الطبي — المؤشرات · كروت الأقسام · عارض قبل/بعد
   ═══════════════════════════════════════════════════════════════ */
:root{ --medhead:#EFF3FD; --medline:#E2E9F8 }

/* ---------- بطاقة المريض ---------- */
.pt-head{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}
.pt-id{flex:1;min-width:220px}
.pt-name{font-family:var(--f-disp);font-size:25px;font-weight:800;line-height:1.2}
.pt-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px;color:var(--ink2);font-size:12.5px}
.pt-meta .mi{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pt-meta .ms{font-size:17px;color:var(--muted)}

/* ---------- مؤشرات الملف الطبي ---------- */
.med-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.med-stats.g5{grid-template-columns:repeat(5,1fr)}
.med-stat{background:var(--card);border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--sh);
  padding:18px 20px;display:flex;flex-direction:column;gap:2px}
.med-stat .sh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.med-stat .st{font-size:13px;font-weight:700;color:var(--ink2)}
.med-stat .si{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:none;
  background:var(--brand-t);color:var(--brand)}
.med-stat .si .ms{font-size:22px}
.med-stat .sn{font-family:var(--f-disp);font-size:30px;font-weight:800;line-height:1.1;margin-top:6px;
  font-variant-numeric:tabular-nums}
.med-stat .sc{font-size:11.5px;color:var(--muted);font-weight:600}

/* ---------- شبكة كروت الأقسام ---------- */
.med-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.med-card{background:var(--card);border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--sh);
  overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .16s var(--ease),transform .16s var(--ease)}
.med-card:hover{box-shadow:var(--sh2);transform:translateY(-2px)}
.med-card-h{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--medhead);
  border-bottom:1px solid var(--medline)}
/* الأيقونة ثم العنوان في أول الصف (يمين RTL)، والأزرار تُدفع لآخره */
.med-card-h .mt{display:flex;align-items:center;gap:9px;min-width:0}
.med-card-h b{font-size:14px;font-weight:800;color:var(--ink)}
.med-card-h .mi{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--brand)}
.med-card-h .mi .ms{font-size:21px}
.med-card-h .ma{display:flex;gap:7px;margin-inline-start:auto}
.med-card-b{padding:16px;flex:1;display:flex;flex-direction:column;min-height:132px}

/* زر صغير جداً داخل ترويسة الكارت */
.btn.xs{height:28px;padding:0 10px;font-size:11px;font-weight:700;border-radius:9px;gap:5px}
.btn.xs .ms{font-size:15px}
.btn-tiny{background:#fff;border:1px solid var(--line);color:var(--ink2)}
.btn-tiny:hover{border-color:var(--brand);color:var(--brand-d)}
.btn-tiny .ms{color:var(--brand)}

/* سطر بيانات داخل جسم الكارت: أيقونة ثم نص */
.mrow{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:12.5px;color:var(--ink2)}
.mrow .ms{font-size:16px;color:var(--muted);flex:none}
.mrow b{font-weight:700;color:var(--ink)}
.mc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.mc-title{font-size:14px;font-weight:700;color:var(--ink);min-width:0}
.mc-no{font-family:var(--f-disp);font-weight:800;font-size:14.5px;color:var(--brand-d);
  font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}
.med-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:var(--muted);gap:3px;padding:8px 4px}
.med-empty .ei{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  background:var(--page2);color:var(--faint);margin-bottom:7px}
.med-empty .ei .ms{font-size:23px}
.med-empty b{font-size:12.5px;color:var(--ink2);font-weight:700}
.med-empty span{font-size:11px}
/* قائمة مختصرة داخل جسم الكارت (أحدث الجلسات / الفواتير): كل سطر يفتح سجله */
.mc-list{display:flex;flex-direction:column}
.mc-item{padding:9px 0;border-bottom:1px dashed var(--line);cursor:pointer;outline:none}
.mc-item:first-child{padding-top:0}
.mc-item:last-child{border-bottom:0;padding-bottom:0}
.mc-item:hover .mc-name,.mc-item:focus-visible .mc-name,.mc-item:hover .mc-no,.mc-item:focus-visible .mc-no{color:var(--brand)}
.mc-line{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mc-line .pill{flex:none}
.mc-name{font-size:13px;font-weight:700;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-name .lbl{font-weight:700}
.mc-sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:11.5px;color:var(--ink2)}
.mc-sub>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.mc-sub .ms{font-size:14px;color:var(--muted)}
.mc-sub b{font-weight:700;color:var(--ink)}

/* ---------- بطاقة الجلسة ---------- */
/* ورقة واحدة تُعرض في النافذة وتُطبع كما هي: ترويسة العيادة، بيانات الجلسة، خدماتها، ثم المبالغ */
.ses-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  max-width:660px;margin-inline:auto}
.ses-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px;
  background:linear-gradient(135deg,#1B2440,#22305C 58%,#2E5BFF);color:#fff}
.ses-hd b{font-family:var(--f-disp);font-size:19px;font-weight:800;display:block;line-height:1.3}
.ses-hd>div>span{font-size:11px;color:#B9C2EC;display:block}
.ses-badge{display:flex;align-items:center;gap:8px;flex:none;padding:7px 15px;border-radius:var(--pill);
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22)}
.ses-badge span{font-size:11px;font-weight:700;color:#CBD3F2}
.ses-badge b{font-family:var(--f-disp);font-size:20px;font-weight:800;line-height:1}
.ses-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line2);border-bottom:1px solid var(--line2)}
.ses-meta>div{background:var(--card);padding:11px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ses-meta span{font-size:10.5px;font-weight:700;color:var(--muted)}
.ses-meta b{font-size:13px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ses-svc{padding:2px 22px 14px}
.ses-h,.ses-row{display:grid;grid-template-columns:1fr 132px 58px 106px;gap:10px;align-items:center}
.ses-card.no-money .ses-h,.ses-card.no-money .ses-row{grid-template-columns:1fr 132px 58px}
.ses-h{font-size:10.5px;font-weight:700;color:var(--muted);padding:12px 2px 9px;border-bottom:1px solid var(--line2)}
.ses-h .a,.ses-row .a{text-align:end}
.ses-row{padding:12px 2px;border-bottom:1px dashed var(--line)}
.ses-row:last-child{border-bottom:0}
.ses-row .n{font-size:13.5px;font-weight:700;color:var(--ink);word-break:break-word}
.ses-row .q{font-size:12.5px;color:var(--ink2);font-weight:600}
.ses-row b.a{font-size:14px;font-weight:800}
.ses-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--pill);
  background:var(--brand-t);color:var(--brand-d);font-size:11px;font-weight:700;white-space:nowrap}
.ses-chip b{font-weight:800}
.ses-chip span{font-weight:600;opacity:.8}
.ses-chip.mu{background:var(--page2);color:var(--muted)}
.ses-tot{background:var(--page);border-top:1px solid var(--line2);padding:13px 22px;display:flex;flex-direction:column;gap:8px}
.ses-tot .r{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--ink2)}
.ses-tot .r b{color:var(--ink);font-weight:700}
.ses-tot .r.sum{font-size:17px;font-weight:800;color:var(--ink);padding-top:9px;border-top:1px dashed var(--line)}
.ses-tot .r.sum span:last-child{font-family:var(--f-disp)}
.ses-note{padding:11px 22px;border-top:1px solid var(--line2);font-size:11.5px;line-height:1.8;color:var(--ink2)}
.ses-note b{font-weight:800;color:var(--ink);display:block;font-size:11px}
.ses-foot{padding:12px 22px 15px;text-align:center;font-size:11px;color:var(--muted);border-top:1px dashed var(--line)}
@media print{
  .ses-card{border:0;max-width:none;border-radius:0}
  .ses-hd,.ses-badge,.ses-chip,.ses-tot{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- قبل وبعد ---------- */
.ba-thumbs{display:flex;gap:3px;flex:none;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.ba-thumbs img{width:56px;height:64px;object-fit:cover;display:block}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ba-pane{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--page2)}
.ba-pane .bl{font-size:11px;font-weight:700;padding:7px 12px;background:var(--page);color:var(--ink2);
  border-bottom:1px solid var(--line)}
.ba-pane img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
/* عارض المقارنة: صورة «بعد» تُكشف تدريجياً فوق «قبل» */
.ba-cmp{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--page2);
  aspect-ratio:3/4;max-height:58vh;margin-inline:auto}
.ba-cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-cmp .top{clip-path:inset(0 0 0 var(--split,50%))}
.ba-cmp .bar{position:absolute;top:0;bottom:0;inset-inline-start:var(--split,50%);width:2px;background:#fff;
  box-shadow:0 0 0 1px rgba(27,36,64,.18);pointer-events:none}
.ba-cmp .knob{position:absolute;top:50%;inset-inline-start:var(--split,50%);transform:translate(50%,-50%);
  width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:var(--sh2);pointer-events:none;
  display:grid;place-items:center;color:var(--brand)}
.ba-cmp .knob .ms{font-size:19px}
.ba-tag{position:absolute;top:10px;font-size:11px;font-weight:800;padding:4px 10px;border-radius:var(--pill);
  background:rgba(255,255,255,.92);color:var(--ink)}
.ba-tag.a{inset-inline-end:10px}
.ba-tag.b{inset-inline-start:10px}
.ba-range{width:100%;margin-top:12px;accent-color:var(--brand)}

/* ---------- مرفقات ونماذج الملف الطبي ---------- */
.drop{border:1.5px dashed var(--line);border-radius:14px;padding:16px;text-align:center;background:var(--page);
  cursor:pointer;transition:.15s;color:var(--ink2);display:block;width:100%}
.drop:hover,.drop.over{border-color:var(--brand);background:var(--brand-t)}
.drop .ms{font-size:26px;color:var(--brand);display:block;margin:0 auto 6px}
.drop b{font-size:12.5px;display:block}
.drop span{font-size:11px;color:var(--muted)}
.file-chip{display:flex;align-items:center;gap:9px;background:var(--page);border:1px solid var(--line);
  border-radius:12px;padding:8px 11px;margin-top:8px}
.file-chip img{width:36px;height:36px;border-radius:9px;object-fit:cover;flex:none}
.file-chip .fn{flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-chip .fs{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* صفوف الأدوية الديناميكية */
.rx-row,.rx-head{display:grid;grid-template-columns:1.6fr 1fr 1fr 38px;gap:8px;align-items:center}
.rx-row{margin-bottom:8px}
.rx-head{padding:0 2px 6px;font-size:10.5px;font-weight:700;color:var(--muted)}
.rx-row .input{height:38px;font-size:12.5px}
/* مراحل خطة الرعاية */
.ph-row{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.ph-row .input{height:38px;font-size:12.5px;flex:1}
.ph-check{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--line);display:grid;place-items:center;
  flex:none;color:var(--faint);background:#fff;transition:.14s}
.ph-check.on{background:var(--accent-t);border-color:var(--accent);color:var(--accent-d)}
.ph-check .ms{font-size:18px}
/* شريط التقدّم بنسبة مئوية */
.prog-wrap{display:flex;align-items:center;gap:11px}
.prog-wrap .pb{flex:1}
.prog-wrap b{font-variant-numeric:tabular-nums;font-size:13px;min-width:44px;text-align:end}

/* هيكل تحميل (skeleton) */
.sk{background:linear-gradient(90deg,var(--page2) 25%,var(--line2) 37%,var(--page2) 63%);
  background-size:400% 100%;animation:skl 1.3s ease infinite;border-radius:var(--r-lg)}
.sk-card{height:180px}
.sk-stat{height:118px}
@keyframes skl{0%{background-position:100% 50%}100%{background-position:0 50%}}

@media(max-width:1100px){
  .med-grid{grid-template-columns:repeat(2,1fr)}
  .med-stats,.med-stats.g5{grid-template-columns:repeat(2,1fr)}
  .ses-meta{grid-template-columns:repeat(2,1fr)}
}
/* شاشة ضيقة: اسم الدواء بعرض الصف، وتحته المرات والمدة وزر الحذف */
@media(max-width:640px){
  .rx-row{grid-template-columns:1fr 1fr 38px}
  .rx-row [data-f=name]{grid-column:1/-1}
  .rx-head{display:none}
}
/* ═══════════ الموظفون والحضور والانصراف ═══════════ */
/* بنفس رموز التصميم: الألوان والحواف والظلال المستعملة في بقية الوحدات */
.hr-photo{overflow:hidden;padding:0}
.hr-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hr-emp-cell{color:inherit}
.hr-emp-cell:hover b{color:var(--brand-d)}
.hr-bad{color:var(--rose-d);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.hr-good{color:var(--accent-d);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.hr-warn{color:var(--amber-d);font-weight:700}
.hr-punch{display:inline-flex;flex-direction:column;gap:2px;font-weight:600;white-space:nowrap}
.hr-punch.late{color:var(--amber-d)}
.hr-punch.early{color:var(--rose-d)}
.hr-comp{display:inline-flex;align-items:center;gap:7px;justify-content:flex-end}

/* بطاقات المعلومات (مفتاح/قيمة) */
.hr-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.hr-fact{background:var(--page);border:1px solid var(--line2);border-radius:13px;padding:10px 12px;min-width:0}
.hr-fact .lbl{display:block;margin-bottom:4px}
.hr-fact b{font-size:13px;font-weight:700;word-break:break-word}
.hr-mini{padding:7px 10px;border-radius:11px;background:var(--page);cursor:pointer;transition:.14s}
.hr-mini:hover{background:var(--brand-t)}

/* مخطط الأعمدة المزدوج */
.hr-dual{display:flex;flex-direction:column;gap:10px}
.hr-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;font-weight:600;color:var(--ink2)}
.hr-legend.wrap{gap:10px 16px}
.hr-legend span{display:inline-flex;align-items:center;gap:6px}
.hr-legend i{width:10px;height:10px;border-radius:3px;background:var(--brand);display:inline-block}
.hr-legend i.ac{background:var(--accent)}
.hr-legend i.rs{background:var(--rose)}
.hr-dual-b{display:flex;align-items:flex-end;gap:6px;height:150px;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}
.hr-dcol{flex:1;min-width:26px;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.hr-dbars{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}
.hr-dbars i{width:11px;border-radius:5px 5px 3px 3px;position:relative;display:block;transition:height .5s var(--ease)}
.hr-dbars i.ac{background:linear-gradient(180deg,#5FE0BA,var(--accent))}
.hr-dbars i.rs{background:linear-gradient(180deg,#FF8FB5,var(--rose))}
.hr-dbars i em{position:absolute;top:-15px;inset-inline-start:50%;transform:translateX(50%);font-style:normal;
  font-size:9.5px;font-weight:700;color:var(--ink2);font-variant-numeric:tabular-nums}
.hr-dcol>span{font-size:10px;color:var(--muted);font-weight:600;white-space:nowrap}

/* أشرطة أفقية مقارنة */
.hr-hbars{display:flex;flex-direction:column;gap:9px}
.hr-hbar{display:grid;grid-template-columns:minmax(84px,1fr) 2fr auto;gap:10px;align-items:center}
.hb-l{font-size:12px;font-weight:600;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-l a{color:inherit}
.hb-l a:hover{color:var(--brand-d)}
.hb-t{height:8px;border-radius:var(--pill);background:var(--page2);overflow:hidden}
.hb-t i{display:block;height:100%;border-radius:var(--pill);background:var(--brand);transition:width .5s var(--ease)}
.hb-t i.ac{background:var(--accent)}.hb-t i.am{background:var(--amber)}.hb-t i.rs{background:var(--rose)}
.hb-v{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}

/* التقويم الشهري */
.hr-cal{border:1px solid var(--line2);border-radius:16px;overflow:hidden;background:#fff}
.hr-cal-h{display:grid;grid-template-columns:repeat(7,1fr);background:var(--page);border-bottom:1px solid var(--line2)}
.hr-cal-h span{padding:8px 4px;text-align:center;font-size:10.5px;font-weight:700;color:var(--muted)}
.hr-cal-g{display:grid;grid-template-columns:repeat(7,1fr)}
.hr-cal-e{border-inline-start:1px solid var(--line2);border-bottom:1px solid var(--line2);min-height:56px;background:var(--page)}
.hr-cal-d{border-inline-start:1px solid var(--line2);border-bottom:1px solid var(--line2);min-height:56px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;
  background:#fff;transition:.14s;cursor:pointer;position:relative}
.hr-cal-d:hover{background:var(--brand-t)}
.hr-cal-d b{font-size:12.5px;font-weight:700;color:var(--ink2)}
.hr-cal-d.has b{color:var(--ink)}
.hr-cal-d .cd{width:7px;height:7px;border-radius:50%}
.hr-cal-d .ch{font-size:9.5px;font-weight:700;color:var(--muted)}

/* شريط الفلاتر */
.hr-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}
.hr-filters .field{margin-bottom:0}
.hr-filters .input{height:40px}
.hr-filters .seg button{padding:7px 8px;font-size:11.5px}
.hr-daybar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:14px 16px}
.hr-daybar .input{height:38px;width:auto;min-width:150px}
.hr-daybar .dt-sel{max-width:170px}
.hr-daybar .search{padding:6px 12px;box-shadow:none;border:1.5px solid var(--line)}

/* أنواع التقارير */
.hr-reports{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:4px}
.hr-rep{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:14px;
  background:#fff;border:1.5px solid var(--line2);font-size:11.5px;font-weight:700;color:var(--ink2);
  text-align:center;transition:.14s;line-height:1.4}
.hr-rep .ms{font-size:20px;color:var(--muted)}
.hr-rep:hover{border-color:var(--brand);color:var(--brand-d)}
.hr-rep:hover .ms{color:var(--brand)}
.hr-rep.on{background:var(--brand-t);border-color:var(--brand);color:var(--brand-d)}
.hr-rep.on .ms{color:var(--brand)}

/* تقرير المكافآت — جدول طويل برؤوس أعمدة مثبّتة أثناء التمرير */
.hr-sticky .tbl-wrap{max-height:min(62vh,620px);overflow-y:auto}
.hr-sticky .tbl thead th{position:sticky;top:0;z-index:3;background:var(--card);
  box-shadow:inset 0 -1px 0 var(--line)}
.hr-sticky .tbl td .lbl{font-size:11px}
@media print{.hr-sticky .tbl-wrap{max-height:none;overflow:visible}}

/* شريط حالة اليوم */
.hr-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.hr-rcard{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--page);
  border:1px solid var(--line2);border-inline-start:4px solid var(--sc,var(--brand));transition:.14s;color:inherit;min-width:0}
.hr-rcard:hover{background:#fff;box-shadow:var(--sh)}
.hr-rcard .rc-b{min-width:0;flex:1}
.hr-rcard b{font-size:12.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.hr-shift .hr-facts{grid-template-columns:1fr 1fr;gap:8px}
.hr-head .pt-meta{margin-top:8px}
.hr-past td{opacity:.62}

/* اختيار أعمدة التصدير */
.hr-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hr-col{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1.5px solid var(--line2);border-radius:11px;
  font-size:12px;font-weight:600;cursor:pointer;transition:.14s;background:#fff}
.hr-col:hover{border-color:var(--brand-t);background:var(--page)}

/* رفع الملفات والصور */
.hr-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px;
  border:1.5px dashed var(--line);border-radius:14px;background:var(--page);cursor:pointer;transition:.14s;text-align:center}
.hr-drop:hover{border-color:var(--brand);background:var(--brand-t)}
.hr-drop .ms{font-size:26px;color:var(--brand)}
.hr-drop b{font-size:13px}
.hr-photo-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.hr-photo-box{width:92px;height:92px;border-radius:20px;background:var(--page2);border:1.5px dashed var(--line);
  display:grid;place-items:center;overflow:hidden;flex:none;color:var(--muted)}
.hr-photo-box img{width:100%;height:100%;object-fit:cover}
.hr-photo-box .ms{font-size:26px}

/* سطر ملاحظة داخل النماذج والصفحات */
.note-line{display:flex;align-items:flex-start;gap:8px;background:var(--page);border:1px solid var(--line2);
  border-radius:12px;padding:10px 12px;font-size:12px;color:var(--ink2);line-height:1.7;margin-top:12px}
.note-line .ms{font-size:17px;color:var(--brand);flex:none}
.note-line.warn{background:var(--amber-t);border-color:var(--amber-t);color:var(--amber-d)}
.note-line.warn .ms{color:var(--amber-d)}

/* فروق سجل التدقيق */
.hr-diff{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:11px;font-variant-numeric:tabular-nums}
.hr-diff span{padding:4px 9px;border-radius:9px;direction:ltr;unicode-bidi:plaintext;word-break:break-all}
.hr-diff .hd-b{background:var(--rose-t);color:var(--rose-d)}
.hr-diff .hd-a{background:var(--accent-t);color:var(--accent-d)}
.hr-diff .lbl{color:inherit;opacity:.8}
.hr-opt{display:flex;width:100%;gap:12px;align-items:center;padding:12px;border-radius:14px;transition:.14s}
.hr-opt:hover{background:var(--page)}

/* هيكل التحميل */
.sk{pointer-events:none}
.sk-l{height:13px;border-radius:7px;margin:9px 0;background:linear-gradient(90deg,var(--page2) 25%,var(--line2) 37%,var(--page2) 63%);
  background-size:400% 100%;animation:shine 1.3s ease infinite}
.sk-l.lg{height:26px;margin:14px 0}
.sk-c{width:56px;height:56px;border-radius:18px;background-image:linear-gradient(90deg,var(--page2) 25%,var(--line2) 37%,var(--page2) 63%);
  background-size:400% 100%;animation:shine 1.3s ease infinite}
@keyframes shine{0%{background-position:100% 50%}100%{background-position:0 50%}}

.hr-att-tbl td{white-space:nowrap}
.hr-att-tbl .k{white-space:normal}

@media(max-width:1180px){
  .hr-reports{grid-template-columns:repeat(4,1fr)}
  .hr-filters{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1024px){
  .hr-reports{grid-template-columns:repeat(3,1fr)}
  .hr-filters{grid-template-columns:repeat(2,1fr)}
  .hr-cols{grid-template-columns:repeat(2,1fr)}
}
@media print{
  .hr-reports,.hr-filters,.hr-daybar,.hr-legend{display:none!important}
}

/* ═══════════ بونص المورد (الهدية) في فاتورة الشراء ═══════════ */
.bonus-chip{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--pill);
  background:var(--accent-t);color:var(--accent-d);vertical-align:middle;white-space:nowrap}
.bonus-chip .ms{font-size:12px}
.pl-bonus-add{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:11.5px;font-weight:700;color:var(--accent-d);
  padding:5px 9px;border-radius:9px;border:1px dashed var(--accent-t);background:transparent;transition:.14s}
.pl-bonus-add:hover{background:var(--accent-t)}
.pl-bonus-add .ms{font-size:16px}
.pl-bonus{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 9px;border-radius:12px;
  background:var(--accent-t);border:1px solid rgba(15,184,132,.18);flex-wrap:wrap}
/* حقل البونص بلا تسمية جانبية: النص الإرشادي داخل الحقل، وعرض أدنى يضمن مساحة للكتابة مهما ضاق العمود */
.pl-bonus .pl-f{background:#fff;border-color:rgba(15,184,132,.25);flex:1 1 96px;min-width:88px;max-width:180px}
.pl-f-ph input{text-align:center;direction:rtl}
.pl-f-ph input:not(:placeholder-shown){direction:ltr;text-align:end}
.pl-f-ph input::placeholder{color:var(--muted);font-size:11px;font-weight:700;opacity:1}
.pl-bonus .pl-f:focus-within{border-color:var(--accent)}
.pl-bonus .pl-f input.bad{color:var(--rose-d)}
.pl-bonus-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;color:var(--accent-d);white-space:nowrap}
.pl-bonus-tag .ms{font-size:16px}
.pl-bonus-sum{color:var(--accent-d)}
.pl-bonus>button{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:var(--muted);transition:.14s}
.pl-bonus>button:hover{background:#fff;color:var(--rose-d)}
.pl-bonus>button .ms{font-size:17px}
.pl-bonus-err{flex-basis:100%;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--rose-d)}
.pl-bonus-err .ms{font-size:14px}
.pl-bonus-ret{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line2)}
.bonus-line{padding:8px 10px;border-radius:11px;background:var(--accent-t)}
/* ═══════════ الاستيراد من Excel — النافذة والسجل ═══════════ */
.imp{display:flex;flex-direction:column;min-height:0;flex:1}
.imp-body{padding:20px 22px}
.imp-steps{display:flex;gap:4px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--page);overflow-x:auto;scrollbar-width:none}
.imp-steps::-webkit-scrollbar{display:none}
.imp-step{display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:var(--pill);white-space:nowrap;flex:none}
.imp-step .n{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;
  background:var(--page2);color:var(--muted);flex:none;font-variant-numeric:tabular-nums}
.imp-step .n .ms{font-size:14px}
.imp-step b{font-size:11.5px;font-weight:700;color:var(--muted)}
.imp-step.on{background:var(--brand-t)}
.imp-step.on .n{background:var(--brand);color:#fff}
.imp-step.on b{color:var(--brand-d)}
.imp-step.ok .n{background:var(--accent);color:#fff}
.imp-step.ok b{color:var(--ink2)}

.imp-hero{display:flex;gap:14px;align-items:flex-start}
.imp-hero b{font-family:var(--f-disp);font-size:16px;font-weight:800}
.imp-fields{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.imp-fchip{font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:var(--pill);background:var(--page2);color:var(--ink2)}
.imp-fchip.req{background:var(--brand-t);color:var(--brand-d);font-weight:700}
.imp-tpl{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding:15px 16px;border-radius:var(--r);
  background:linear-gradient(120deg,var(--brand-t),var(--page));border:1.5px dashed var(--brand-g)}
.imp-tpl>div{flex:1;min-width:200px}
.imp-tpl b{display:block;font-size:13.5px}
.imp-tpl .lbl{display:block;margin-top:2px}

.imp-drop{padding:34px 18px}
.imp-drop .ms{font-size:34px}
.imp-drop b{font-size:14px;margin-bottom:3px}
.imp-alert{display:flex;align-items:flex-start;gap:8px;padding:11px 13px;border-radius:13px;font-size:12.5px;font-weight:600;margin-bottom:12px}
.imp-alert .ms{font-size:18px;flex:none}
.imp-alert.bad{background:var(--rose-t);color:var(--rose-d)}
.imp-alert.warn{background:var(--amber-t);color:var(--amber-d)}
.imp-center{display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 10px}
.imp-center p{max-width:420px;margin-top:4px}

.imp-scroll{max-height:230px;overflow:auto}
.imp-scroll.tall{max-height:340px}
.imp-tbl th,.imp-tbl td{font-size:12px;padding:8px 10px;vertical-align:top}
.imp-tbl td{white-space:normal;word-break:break-word}
.imp-headrow{background:var(--brand-t)}
.imp-headrow td{font-weight:700;color:var(--brand-d)}
.imp-map th,.imp-map td{padding:9px 10px;vertical-align:middle}
.imp-map tr.imp-bad{background:var(--rose-t)}
.input.sm{padding:7px 10px;font-size:12.5px;border-radius:10px}
.imp-r-ok td{background:rgba(15,184,132,.06)}
.imp-r-up td{background:rgba(46,91,255,.06)}
.imp-r-sk td{background:rgba(138,147,178,.09)}
.imp-r-bad td{background:rgba(240,65,126,.07)}
.imp-err{font-size:11.5px;font-weight:600;color:var(--rose-d);line-height:1.6}

.imp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:9px}
.imp-kpi{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:14px;background:var(--page);border:1px solid var(--line)}
.imp-kpi .ms{font-size:20px;color:var(--muted)}
.imp-kpi b{display:block;font-size:17px;font-weight:800;line-height:1.1}
.imp-kpi span span,.imp-kpi>div>span{font-size:11px;color:var(--muted);font-weight:600}
.imp-kpi.ok{background:var(--accent-t);border-color:transparent}.imp-kpi.ok .ms,.imp-kpi.ok b{color:var(--accent-d)}
.imp-kpi.up{background:var(--brand-t);border-color:transparent}.imp-kpi.up .ms,.imp-kpi.up b{color:var(--brand-d)}
.imp-kpi.sk .ms{color:var(--ink2)}
.imp-kpi.bad{background:var(--rose-t);border-color:transparent}.imp-kpi.bad .ms,.imp-kpi.bad b{color:var(--rose-d)}

.imp-dups{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin-top:8px}
.imp-dup{text-align:start;padding:12px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);transition:.15s}
.imp-dup .ms{font-size:19px;color:var(--muted)}
.imp-dup b{display:block;font-size:13px;margin:4px 0 2px}
.imp-dup .lbl{display:block;line-height:1.55}
.imp-dup:hover{border-color:var(--brand-g)}
.imp-dup.on{border-color:var(--brand);background:var(--brand-t)}
.imp-dup.on .ms,.imp-dup.on b{color:var(--brand-d)}
.imp-partial{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 13px;border-radius:14px;
  background:var(--amber-t);cursor:pointer}
.imp-partial.off{opacity:.6;cursor:not-allowed}
.imp-partial b{display:block;font-size:12.5px;color:var(--amber-d)}
.imp-partial .lbl{display:block;line-height:1.55}

.imp-res{display:flex;gap:7px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.imp-res .ok{color:var(--accent-d)}.imp-res .up{color:var(--brand-d)}
.imp-res .sk{color:var(--muted)}.imp-res .bad{color:var(--rose-d)}
.imp-dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}
.imp-d{padding:10px 12px;border-radius:12px;background:var(--page)}
.imp-d span{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:2px}
.imp-d b{font-size:12.5px;font-weight:700}
.imp-ops{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;max-height:150px;overflow:auto}
.imp-blocked{margin:10px 0 0;padding-inline-start:20px;font-size:12.5px;line-height:2;color:var(--ink2)}

/* ═══════════════════════════════════════════════════════════════
   مصادر وصول المرضى — الشارة · بطاقات الإعداد · المخطط الدائري
   لون كل مصدر يصل عبر المتغيّر --sc على العنصر نفسه.
   ═══════════════════════════════════════════════════════════════ */

/* شارة المصدر: أيقونته بلونه واسمه — في ملف المراجع وجدول التقرير */
.src-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink);
  border:1.5px solid var(--sc,var(--line));border-radius:var(--pill);padding:4px 12px;background:#fff;max-width:100%}
.src-chip .ms{font-size:16px;color:var(--sc,var(--muted));flex:none}

/* بطاقة مصدر في الإدارة ← مصادر الوصول */
.src-card{border-top:4px solid var(--sc,var(--brand))}
.src-card.off{opacity:.62}
.src-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:var(--page2);color:var(--sc,var(--brand))}
.src-ic .ms{font-size:21px}

/* منتقي الأيقونة داخل نموذج المصدر */
.src-picks{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}
.src-pick{height:38px;border:1.5px solid var(--line);border-radius:11px;display:grid;place-items:center;
  color:var(--ink2);background:#fff;transition:.14s var(--ease)}
.src-pick:hover{border-color:var(--brand);color:var(--brand)}
.src-pick.on{border-color:var(--brand);background:var(--brand-t);color:var(--brand-d)}
.src-pick .ms{font-size:19px}

/* شريط تصفية تقرير المصادر: من · إلى · المصدر + الفترات الجاهزة */
.src-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}
.src-filters .field{margin-bottom:0}
.src-filters .input{height:40px}
.src-quick{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  padding-top:12px;border-top:1px dashed var(--line);margin-top:2px}
.src-quick .chip{padding:6px 13px;font-size:11.5px}
.kpi .ic.mu{background:var(--page2);color:var(--muted)}

/* المخطط الحلقي ومفتاحه */
.donut{position:relative;width:var(--dz,216px);max-width:100%;margin:0 auto}
.donut svg{width:100%;height:auto;display:block}
.donut path{transition:opacity .14s var(--ease)}
.donut:hover path{opacity:.55}
.donut:hover path:hover{opacity:1}
.donut-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}
.donut-c b{font-family:var(--f-disp);font-size:26px;font-weight:800;line-height:1.1;display:block}
.donut-c span{font-size:11.5px;color:var(--muted);font-weight:600}
.donut-legend{margin-top:16px;display:flex;flex-direction:column;gap:2px}
.dl-row{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:10px;width:100%;
  transition:.14s var(--ease)}
.dl-row:hover{background:var(--page)}
.dl-dot{width:10px;height:10px;border-radius:4px;flex:none}
.dl-n{flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-row b{font-size:13px}
.dl-p{font-size:11.5px;color:var(--muted);min-width:46px;text-align:end}

/* ملخّص التقرير أعلى ورقة الطباعة */
.sh-kpis{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:13px}
.sh-kpis div{flex:1;min-width:120px;border:1px solid #dfe4f0;border-radius:8px;padding:8px 10px}
.sh-kpis span{display:block;font-size:10.5px;color:#6a7186}
.sh-kpis b{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}

@media(max-width:980px){
  .src-filters{grid-template-columns:repeat(2,1fr)}
  .src-picks{grid-template-columns:repeat(5,1fr)}
}

/* ═══════════ حسابات الدخول (الإدارة ← المستخدمون) ═══════════ */
.usr-head{flex-wrap:wrap;gap:12px;align-items:flex-start}
.usr-head .sec-t{font-size:16px}
.usr-tbl thead th{white-space:nowrap}
.usr-tbl tbody td{padding-block:15px}
.usr-tbl .avatar.sm .ms{font-size:18px}
.usr-tbl td>.row{gap:11px}
.usr-you{margin-inline-start:8px;font-size:10.5px;padding:2px 8px;vertical-align:2px}
.usr-scope{max-width:300px;white-space:normal;line-height:1.7;color:var(--ink2)}
.usr-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink2)}
.usr-link .ms{font-size:16px;color:var(--rose-d)}
.usr-un{margin-top:3px;letter-spacing:.3px}
.usr-seen b{font-size:12.5px}
.usr-seen .lbl{display:inline-block;margin-inline-start:6px}
.usr-seen.mt8{margin-top:6px}
.tbl tbody tr.usr-me{background:linear-gradient(to left,var(--brand-t),transparent 70%)}
.tbl tbody tr.usr-me:hover{background:linear-gradient(to left,var(--brand-t),transparent 55%)}
.tbl tbody tr.usr-me td:first-child{box-shadow:inset -3px 0 0 0 var(--brand)}
.usr-acts{gap:6px}
.usr-tbl .usr-del:not([disabled]):hover{color:var(--rose-d);border-color:var(--rose-t);background:var(--rose-t)}
.usr-foot{display:flex;flex-direction:column;gap:9px;padding:14px 16px;border-top:1px solid var(--line2);background:var(--page)}
.usr-foot .note-line{margin:0;background:#fff;text-align:start;font-size:12px;line-height:1.75}
.usr-foot .note-line.warn{background:var(--amber-t)}
@media(max-width:980px){.usr-scope{display:none}.usr-tbl:not(.no-scope) thead th:nth-child(3){display:none}}
/* الحساب المعطَّل يخفت، والمقفل على المفوَّض يُعلَّم بسببه بدل أزرار لا تعمل */
.tbl tbody tr.usr-off td{color:var(--muted)}
.tbl tbody tr.usr-off .avatar{filter:grayscale(1);opacity:.7}
.usr-lock{cursor:help;font-size:11px;white-space:nowrap}
.usr-lock .ms{font-size:14px}
/* تصنيف «مدير نظام»: شارة بجانب الاسم، وبطاقة التبديل في نافذة الحساب */
.usr-adm{margin-inline-start:8px;font-size:10.5px;padding:2px 8px;vertical-align:2px}
.usr-adm .ms{font-size:13px}
.usr-cls{padding:13px;cursor:pointer;background:var(--page);gap:12px;align-items:flex-start;margin-bottom:14px}
.usr-cls>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.usr-cls b{display:flex;align-items:center;gap:6px;font-size:13px}
.usr-cls b .ms{font-size:18px;color:var(--brand-d)}
.usr-cls .usr-cls-w{color:var(--amber-d);font-weight:700}
.usr-cls.lock{cursor:not-allowed}
.usr-cls .sw{flex:none;margin-top:2px}
.usr-cls .sw.lock{opacity:.55}
/* منع الوصول: قسم أو تبويب لا يملك الحساب «عرضه» */
.acc-denied .thumb{background:var(--rose-t);color:var(--rose-d)}
.acc-denied p{max-width:520px;margin-inline:auto}
.adm-denied{padding:56px 20px}
.adm-denied .btn{margin-top:18px;display:inline-flex}

/* ═══ الجداول: توسيط الخلايا والعناوين في كل الشاشات (قائمة المرضى والفواتير والدفتر والتقارير) ═══ */
.tbl thead th,.tbl tbody td,.tbl tfoot td,.tbl thead th.r,.tbl td.r,.tbl th.r{text-align:center;vertical-align:middle}
.tbl thead th .th-in{justify-content:center;width:100%}
.tbl td>.row,.tbl td>a.row,.tbl td .chips,.tbl td .imp-res,.tbl td .row{justify-content:center}
.tbl td>.row>div,.tbl td>a.row>div{text-align:start}
.tbl td .lbl{display:block}
.sheet-tbl th,.sheet-tbl td,.sheet-tbl .r{text-align:center}
.dt-bar .dt-search{max-width:520px;flex:1}
/* الأرقام والهواتف والتواريخ والأسماء لا تلتفّ داخل الخلايا — الجدول العريض يتمدّد ويتمرّر أفقياً بدل أن تتكسّر قيمه */
.tbl td .num-en,.tbl td .hr-num,.tbl td .money,.tbl td time,.tbl td>a.row>div>b,.tbl td .pill{white-space:nowrap}
.tbl td>a.row{white-space:nowrap}

/* ═══ إدارة الصلاحيات: لوحة الحسابات والأدوار × جدول الأقسام والإجراءات ═══
   عمود «عرض» وحده تفاعلي؛ وبقية الأعمدة مقفلة لأن النظام يعرّفها للدور لا للحساب. */
.tabs-top{margin-top:2px}
.pm-kpi{margin:16px 0 18px}
.pm-wrap{display:grid;grid-template-columns:336px minmax(0,1fr);gap:16px;align-items:start}

/* ---- اللوحة الجانبية ---- */
.pm-side{position:sticky;top:0;display:flex;flex-direction:column;max-height:calc(100vh - var(--top) - 48px);overflow:hidden}
.pm-side-h{padding:16px 16px 12px;border-bottom:1px solid var(--line2)}
.pm-side-h .sec-t{margin:0;font-size:14px}
/* مفتاح مقسّم على نسق .tk-seg: نصف قطر متحد المركز (14 للمسار و10 للقسم مع حشوة 4)،
   والنص متمركز صراحةً لأن <button> يرث محاذاة السطر فيلتصق بحافة القسم في RTL. */
.pm-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:14px 14px 0;padding:4px;
  background:var(--page2);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line2)}
.pm-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;height:34px;
  border-radius:10px;font-size:12.5px;font-weight:700;color:var(--ink2);white-space:nowrap;
  transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}
.pm-tabs button:hover:not(.on){color:var(--ink);background:rgba(255,255,255,.55)}
.pm-tabs button.on{background:#fff;color:var(--brand-d);font-weight:800;
  box-shadow:0 1px 2px rgba(27,36,64,.07),0 3px 10px rgba(27,36,64,.07)}
.pm-tabs .n{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:19px;
  padding:0 6px;border-radius:var(--pill);background:var(--line);color:var(--ink2);
  font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums;transition:.18s var(--ease)}
.pm-tabs button.on .n{background:var(--brand-t);color:var(--brand-d)}
.pm-side-s{padding:12px 14px 10px}
.pm-side-s .search{width:100%;max-width:none;height:40px}
/* الحقول تنكمش مع الشاشة: الـ input يحمل عرضاً ضمنياً يمنع الانكماش ما لم يُلغَ */
.pm-side-s .search,.pm-search{min-width:0}
.pm-side-s .search input,.pm-search input{min-width:0;width:100%}
/* التصفية في اللوحة: ثلاثة منتقيات مضغوطة فوق القائمة */
/* قائمة اختيار الحسابات في نافذتَي النسخ والتطبيق */
.pm-pick{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;scrollbar-width:thin}
.pm-pick-r{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1.5px solid var(--line);
  border-radius:13px;cursor:pointer;transition:.14s}
.pm-pick-r:hover{border-color:var(--brand-t);background:var(--page)}
.pm-pick-r:has(input:checked){border-color:var(--brand);background:var(--brand-t)}
.pm-pick-r input{accent-color:var(--brand);width:16px;height:16px;flex:none;cursor:pointer}
.pm-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 14px 10px}
.pm-filters .pm-fl:last-child{grid-column:1/-1}
.pm-fl{display:flex;align-items:center;gap:6px;height:32px;padding:0 9px;border:1.5px solid var(--line);
  border-radius:10px;background:#fff;color:var(--ink2);min-width:0}
.pm-fl .ms{font-size:16px;color:var(--muted);flex:none}
.pm-fl select{border:0;background:none;outline:none;font-size:11.5px;font-weight:700;cursor:pointer;min-width:0;width:100%}
.pm-list{flex:1;min-height:0;overflow-y:auto;padding:0 10px 12px;scrollbar-width:thin;display:flex;flex-direction:column;gap:6px}
.pm-sub{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:14px;
  border:1.5px solid transparent;background:transparent;transition:.16s var(--ease);text-align:start}
.pm-sub:hover{background:var(--page)}
.pm-sub.on{border-color:var(--brand);background:var(--brand-t)}
.pm-sub-n{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.pm-sub-n b{font-size:12.5px;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-sub-c{font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.pm-sub.on .pm-sub-c{color:var(--brand-d)}
.pm-sub-k{font-size:19px;color:var(--faint);flex:none}
.pm-sub.on .pm-sub-k{color:var(--brand);font-variation-settings:'FILL' 1}
.pm-av{width:34px;height:34px;flex:none;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--brand-t);color:var(--brand-d);font-family:var(--f-disp);font-size:13px;font-weight:800}
.pm-av .ms{font-size:19px}
.pm-av.a{background:var(--accent-t);color:var(--accent-d)}
.pm-av.am{background:var(--amber-t);color:var(--amber-d)}
.pm-av.rs{background:var(--rose-t);color:var(--rose-d)}
.pm-av.mu{background:var(--page2);color:var(--ink2)}
.pill.sm{font-size:10px;padding:2px 8px}
.pm-none{padding:22px 12px;text-align:center;font-size:12.5px;font-weight:600;color:var(--muted)}

/* ---- الجدول ---- */
.pm-main{display:flex;flex-direction:column;min-width:0}
.pm-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line2)}
.pm-bar-e{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-width:0;flex-wrap:wrap;justify-content:flex-end}
.pm-all{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.pm-all.off{opacity:.5;cursor:default}
.pm-filter{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border:1.5px solid var(--line);
  border-radius:13px;background:#fff;color:var(--ink2);flex:none}
.pm-filter .ms{font-size:18px;color:var(--muted)}
.pm-filter select{border:0;background:none;outline:none;font-size:12.5px;font-weight:700;cursor:pointer;max-width:150px}
.pm-search{height:40px;flex:1 1 150px;max-width:340px}
.pm-who{display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--page);border-bottom:1px solid var(--line2)}
.pm-who{flex-wrap:wrap}
.pm-who-n{flex:1 1 190px;min-width:150px}
.pm-who-n b{display:block;font-size:14px;font-weight:800}
.pm-who-n .lbl{font-size:11.5px}

/* ---- جسم المحرّر: مجموعة ← وحدة ← إجراءات ---- */
.pm-body{padding:0 0 6px}
.pm-grp+.pm-grp{border-top:1px solid var(--line2)}
.pm-grp-h{display:flex;align-items:center;gap:10px;background:var(--page2)}
.pm-grp-t{display:flex;align-items:center;gap:9px;flex:1;min-width:0;padding:9px 16px;
  font-size:12px;font-weight:800;color:var(--ink2)}
.pm-grp-i{font-size:17px;color:var(--muted)}
.pm-grp-x{font-size:20px;color:var(--muted);transition:transform .18s var(--ease)}

/* الوحدة: رأس فيه اسمها ووصفها وعدّادها ومفتاح منحها كاملةً، وتحته إجراءاتها */
.pm-mod{border-bottom:1px solid var(--line2)}
.pm-mod:last-child{border-bottom:0}
.pm-mod-h{display:flex;align-items:center;gap:10px;padding:10px 16px;flex-wrap:wrap}
.pm-mod-t{display:flex;align-items:center;gap:9px;flex:1 1 220px;min-width:0;text-align:start;transition:.14s}
.pm-mod-t:hover .pm-mod-n b{color:var(--brand-d)}
.pm-mod-i{font-size:19px;color:var(--muted);flex:none}
.pm-mod-n{min-width:0;display:flex;flex-direction:column;gap:2px}
.pm-mod-n b{font-size:13px;font-weight:800}
.pm-mod-n .lbl{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-mod.shut .pm-grp-x{transform:rotate(90deg)}
.pm-mod.shut .pm-acts{display:none}

/* الإجراءات: بطاقات صغيرة تلتفّ بحسب العرض — عددها يختلف من وحدة لأخرى */
.pm-acts{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:7px;padding:0 16px 13px}
.pm-act{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1.5px solid var(--line);
  border-radius:13px;background:#fff;cursor:pointer;transition:.14s;min-width:0}
.pm-act:hover{border-color:var(--brand-t);background:var(--page)}
.pm-act.on{border-color:var(--accent);background:var(--accent-t)}
.pm-act.ch{box-shadow:0 0 0 2px var(--brand-t);border-color:var(--brand)}
.pm-act.warn{border-color:var(--amber)}
.pm-act-n{min-width:0;display:flex;flex-direction:column;gap:1px}
.pm-act-n b{font-size:12px;font-weight:700}
.pm-act-n .lbl{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:132px}
.pm-act-n .lbl.w{color:var(--amber-d);font-weight:700}
.pm-sw{width:40px;height:23px;flex:none}
.pm-sw:after{width:17px;height:17px}
.pm-sw.on:after{inset-inline-start:calc(100% - 20px)}
.pm-sw.lock{cursor:not-allowed;opacity:.62}
/* مفتاح خارج صلاحية المفوَّض: يُرى ولا يُلمس */
.pm-act.lock{cursor:not-allowed;background:var(--page)}
.pm-act.lock:hover{border-color:var(--line);background:var(--page)}
.pm-act.lock.on{border-color:var(--accent-t);background:var(--accent-t)}
.pm-act.lock .pm-act-n b{display:flex;align-items:center;gap:5px}
.pm-act-l{flex:none;font-size:13px;color:var(--muted)}

/* شريط الحفظ يلتصق بأعلى المحرّر مهما طال الجدول، فلا يُبحَث عن زر الحفظ.
   البطاقة تقصّ ما يخرج عنها (card.pad0) فيُلغى القصّ هنا وتُدوَّر الأطراف بدله. */
.card.pad0.pm-main{overflow:visible}
.pm-main>:first-child{border-start-start-radius:var(--r-lg);border-start-end-radius:var(--r-lg)}
.pm-main>:last-child{border-end-start-radius:var(--r-lg);border-end-end-radius:var(--r-lg)}
.pm-dirty{display:flex;align-items:center;gap:11px;padding:11px 16px;flex-wrap:wrap;
  background:var(--brand-t);border-bottom:1px solid var(--line2);position:sticky;top:0;z-index:3}
.pm-dirty .ms{font-size:20px;color:var(--brand-d);flex:none}
.pm-dirty b{font-size:12.5px;font-weight:800;color:var(--brand-d)}
.pm-dirty.clean{background:var(--page)}
.pm-dirty.clean .ms{color:var(--accent-d)}
.pm-dirty.clean b{color:var(--ink2)}
.pm-dirty.ro{background:var(--amber-t)}
.pm-dirty.ro .ms{color:var(--amber-d)}
.pm-dirty.ro b{color:var(--amber-d)}

/* شرح الاعتماديات قبل الحفظ — بلا منح تلقائي */
.pm-deps{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;scrollbar-width:thin}
.pm-dep{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;border:1.5px solid var(--line);
  border-radius:13px;background:var(--page)}
.pm-dep .ms{font-size:16px;color:var(--muted)}

/* سجل التغييرات */
.pm-audit{display:flex;flex-direction:column}
.pm-audit-r{padding:13px 16px;border-bottom:1px solid var(--line2)}
.pm-audit-r:last-child{border-bottom:0}
.pm-audit-c{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}

.pm-foot{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;border-top:1px solid var(--line2);
  background:var(--page);font-size:11.5px;line-height:1.6;color:var(--ink2)}
.pm-foot .ms{font-size:17px;color:var(--muted);flex:none}

/* ---- نموذج الدور: اختيار الأيقونة واللون ---- */
.pm-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:7px}
.pm-icon{height:44px;border:1.5px solid var(--line);border-radius:12px;display:grid;place-items:center;color:var(--ink2);background:#fff;transition:.14s}
.pm-icon .ms{font-size:21px}
.pm-icon:hover{border-color:var(--brand-t);background:var(--page)}
.pm-icon.on{border-color:var(--brand);background:var(--brand-t);color:var(--brand-d)}
.pm-tones{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pm-tone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border:1.5px solid var(--line);border-radius:13px;
  font-size:11.5px;font-weight:700;color:var(--ink2);background:#fff;transition:.14s}
.pm-tone:hover{border-color:var(--brand-t);background:var(--page)}
.pm-tone.on{border-color:var(--brand);background:var(--brand-t);color:var(--brand-d)}

/* ---- شريط الحفظ السفلي ---- */
.pm-save{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:16px;padding:12px 18px;background:#fff;border:1.5px solid var(--brand-t);border-radius:var(--r);
  box-shadow:var(--sh2)}
.pm-save-t{flex:1;min-width:200px;display:flex;flex-direction:column;gap:1px}
.pm-save-t b{font-size:13.5px}
.pm-save .lbl{font-size:11.5px}

@media(max-width:1250px){
  .pm-wrap{grid-template-columns:290px minmax(0,1fr)}
  .pm-acts{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .pm-search{max-width:230px}
}
@media(max-width:1080px){
  .pm-wrap{grid-template-columns:minmax(0,1fr)}
  .pm-side{position:static;max-height:none}
  .pm-list{max-height:264px}
}

/* ═══ الرواتب: هيكل الراتب وقسيمة الراتب والمسيّر ═══ */
.pay-lines{display:flex;flex-direction:column;gap:0}
.pay-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line2);font-size:13px}
.pay-line:last-child{border-bottom:0}
.pay-line .k{color:var(--ink2)}
.pay-line.sum{border-top:1.5px solid var(--line);border-bottom:0;margin-top:4px;padding-top:11px;font-weight:800}
.pay-line.sum .money{font-size:15px}
.pay-line .tag{font-size:10.5px;color:var(--brand);margin-inline-start:6px;font-weight:700}
.pay-ded .money{color:var(--rose-d)}
.pay-add .money{color:var(--accent-d,#0A8F66)}
.pay-comp{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pay-comp .card{margin:0}
.pay-rows{display:flex;flex-direction:column;gap:8px}
.pay-row{display:grid;grid-template-columns:1.2fr 1.6fr 1fr auto;gap:8px;align-items:center}
.pay-row .input{margin:0}
.pay-net{background:linear-gradient(135deg,var(--brand),#5C7CFF);color:#fff;border-radius:16px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center}
.pay-net .lbl{color:rgba(255,255,255,.8)}
.pay-net .money{color:#fff;font-size:22px}
.pay-hist{display:flex;flex-direction:column;gap:0}
.pay-hist .it{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line2)}
.pay-hist .it:last-child{border-bottom:0}
.pay-hist .thumb{width:36px;height:36px;border-radius:11px;flex:none}
.pay-hist .thumb .ms{font-size:19px}
.pay-slip-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pay-mo{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line2);border-radius:12px;padding:4px 6px;background:#fff}
.pay-mo select{border:0;background:transparent;font:inherit;font-weight:700;padding:5px 6px;color:var(--ink);cursor:pointer}
.pay-mo .icon-btn{width:30px;height:30px;padding:0}
@media(max-width:980px){.pay-comp{grid-template-columns:1fr}.pay-row{grid-template-columns:1fr 1fr}}
@media print{.perm-cell:not(.on)::before{display:none}}

/* ═══ إدارة الرواتب — الشاشة المعاد تصميمها: بطاقات الشهر · الفلاتر · كشف الرواتب المثبَّت
   الترويسة · لوحة تفاصيل الراتب · معالج إنشاء المسيّر · نماذج الدفع والبنود · التقارير ═══ */
/* ---- بطاقات الملخص (سبع بطاقات في صف واحد على الشاشات الواسعة) ---- */
.pay-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.pay-kpi{background:#fff;border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--sh);padding:14px 14px 12px;min-width:0;position:relative;overflow:hidden}
.pay-kpi:before{content:'';position:absolute;inset-inline-start:0;top:14px;bottom:14px;width:3px;border-radius:var(--pill);background:var(--brand)}
.pay-kpi.ac:before{background:var(--accent)}.pay-kpi.am:before{background:var(--amber)}.pay-kpi.rs:before{background:var(--rose)}.pay-kpi.mu:before{background:var(--faint)}
.pay-kpi .ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--brand-t);color:var(--brand)}
.pay-kpi .ic .ms{font-size:18px}
.pay-kpi.ac .ic{background:var(--accent-t);color:var(--accent-d)}
.pay-kpi.am .ic{background:var(--amber-t);color:var(--amber-d)}
.pay-kpi.rs .ic{background:var(--rose-t);color:var(--rose-d)}
.pay-kpi.mu .ic{background:var(--page2);color:var(--muted)}
.pay-kpi .n{font-family:var(--f-disp);font-size:19px;font-weight:800;line-height:1.1;margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.pay-kpi .n small{font-size:11px;font-weight:700;color:var(--muted);margin-inline-start:3px}
.pay-kpi .l{font-size:11.5px;color:var(--ink2);font-weight:700;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-kpi .s{font-size:10.5px;color:var(--muted);font-weight:600;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1500px){.pay-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.pay-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- شريط البحث والفلاتر: حقول موحّدة الارتفاع بعنوان داخلي وأيقونة، الفلتر المفعّل يتلوّن،
   وشرائح تحت الشريط تلخّص الفلاتر النشطة، وزر المسح لا يعمل إلا حين يوجد ما يُمسح ---- */
/* ثلاثة تخطيطات ثابتة بدل الالتفاف الحرّ: اللوحي ثلاثة صفوف (البحث ثم الشهر مع فلترين ثم فلتران وزر المسح)،
   والحاسوب صفّان (البحث والشهر والمسح ثم أربعة فلاتر متساوية)، والشاشة الواسعة صفٌّ واحد */
.pay-fbar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;padding:12px 14px;align-items:center}
.pay-fbar .pf-search{grid-column:span 12}
.pay-fbar .pf-month,.pay-fbar .pf-sel{grid-column:span 4}
.pay-fbar .pf-clear{grid-column:span 4;justify-self:end}
@media(min-width:1280px){
  .pay-fbar .pf-search{grid-column:span 6}
  .pay-fbar .pf-month{grid-column:span 3}
  .pay-fbar .pf-clear{grid-column:10 / span 3;grid-row:1}
  .pay-fbar .pf-sel{grid-column:span 3}
}
@media(min-width:1560px){
  .pay-fbar{grid-template-columns:minmax(200px,1.3fr) auto repeat(4,minmax(140px,1fr)) auto}
  .pay-fbar .pf-search,.pay-fbar .pf-month,.pay-fbar .pf-sel,.pay-fbar .pf-clear{grid-column:auto;grid-row:auto}
}
.pf{position:relative;height:48px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#fff;border:1.5px solid var(--line);border-radius:14px;min-width:0;
  transition:border-color .15s,box-shadow .15s,background .15s}
.pf:hover{border-color:#C9D2EA}
.pf:focus-within{border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-t)}
.pf.on{border-color:var(--brand);background:var(--brand-t)}
.pf .pf-ic{font-size:19px;color:var(--muted);flex:none}
.pf.on .pf-ic,.pf.on .pf-cap,.pf.on .pf-cv{color:var(--brand-d)}
.pf-body{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:1;min-width:0;position:relative;height:100%}
.pf-cap{font-size:10.5px;font-weight:700;color:var(--muted);line-height:1;white-space:nowrap;display:flex;align-items:center;gap:4px}
.pf-cap .ms{font-size:13px}
.pf-in{appearance:none;-webkit-appearance:none;border:0;background:none;outline:none;padding:0;margin:0;width:100%;font:inherit;font-size:13px;font-weight:700;color:var(--ink);
  line-height:1.2;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.pf-cv{font-size:18px;color:var(--muted);flex:none;transition:transform .15s}
.pf:focus-within .pf-cv{transform:rotate(180deg)}
.pf-search{min-width:0}
.pf-search input{flex:1;min-width:0;border:0;outline:none;background:none;font:inherit;font-size:13px;color:var(--ink)}
.pf-search input::placeholder{color:var(--faint)}
.pf-x{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--muted);flex:none;transition:.14s}
.pf-x:hover{background:var(--rose-t);color:var(--rose-d)}
.pf-x .ms{font-size:16px}
.pf-sel{min-width:0}
.pf-month{min-width:0;padding:0 4px;gap:0}
.pf-nav{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);flex:none;transition:.14s}
.pf-nav:hover{background:var(--page);color:var(--brand)}
.pf-nav .ms{font-size:20px}
.pf-mo-body{align-items:center;min-width:164px;padding:0 6px;text-align:center;border-radius:9px}
.pf-mo-body:hover{background:rgba(46,91,255,.05)}
.pf-mo-body .pf-cap{justify-content:center}
.pay-mo-v{display:block;font-family:var(--f-disp);font-size:14px;font-weight:800;line-height:1.2;white-space:nowrap;color:var(--ink)}
.pay-mo-s{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;font:inherit}
.pf-clear{height:48px;padding:0 14px;border-radius:14px;border:1.5px dashed var(--line);background:#fff;color:var(--ink2);font-weight:700;font-size:12.5px;
  display:inline-flex;align-items:center;gap:7px;transition:.15s;flex:none}
.pf-clear .ms{font-size:18px}
.pf-clear:hover{border-color:var(--rose);color:var(--rose-d);background:var(--rose-t)}
.pf-clear:disabled{opacity:.45;pointer-events:none}
.pf-n{min-width:20px;height:20px;border-radius:var(--pill);background:var(--rose);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 6px}
.pay-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 14px 12px}
.pay-chips .lbl{margin-inline-end:2px}
.pf-chip{display:inline-flex;align-items:center;gap:6px;background:var(--brand-t);color:var(--brand-d);border-radius:var(--pill);padding:4px 5px 4px 11px;font-size:11.5px;font-weight:600;white-space:nowrap}
.pf-chip b{font-weight:800}
.pf-chip button{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--brand-d);transition:.14s}
.pf-chip button:hover{background:#fff;color:var(--rose-d)}
.pf-chip button .ms{font-size:14px}
/* قائمة الشهر في بقية الشاشة (التقارير والنماذج والمعالج): اسم الشهر ظاهر كاملاً والقائمة الأصلية شفافة فوقه */
.pay-mo{gap:2px;padding:3px;border-color:var(--line);height:42px}
.pay-mo-b{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:172px;height:100%;padding:0 8px;border-radius:9px;transition:.14s}
.pay-mo-b:hover{background:var(--page)}
.pay-mo-b>.ms{font-size:17px;color:var(--muted)}
.pay-mo-b .pay-mo-v{font-size:13px}

/* ---- شريط حالة المسيّر والتنبيهات ---- */
.pay-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;background:#fff;border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--sh)}
.pay-strip .lbl{font-size:11.5px}
.pay-strip .acts{margin-inline-start:auto;display:flex;gap:8px;flex-wrap:wrap}
.pay-issues{display:flex;flex-direction:column;gap:6px}
.pay-issue{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--rose-t);color:var(--rose-d);font-size:12.5px;font-weight:600;line-height:1.6}
.pay-issue.warn{background:var(--amber-t);color:var(--amber-d)}
.pay-issue .ms{font-size:18px;flex:none;margin-top:1px}
.pay-issue b{font-weight:800}
.pay-issue .fix{margin-inline-start:auto;flex:none}
.pay-issue .fix .btn.sm{height:28px;padding:0 9px;font-size:11px;border-radius:8px;background:#fff}

/* ---- كشف الرواتب: ترويسة مثبَّتة وأعمدة مضغوطة وتمرير داخل البطاقة وحدها ---- */
.pay-sheet .tbl-wrap{max-height:calc(100dvh - 330px);min-height:220px;overflow:auto;scrollbar-width:thin}
.pay-sheet .tbl{font-size:12.5px;min-width:1060px}
.pay-sheet .tbl thead th{position:sticky;top:0;z-index:3;background:#fff;box-shadow:inset 0 -1px 0 var(--line);padding:10px 6px;font-size:10.5px;white-space:nowrap}
.pay-sheet .tbl tbody td{padding:8px 6px;white-space:nowrap}
.pay-sheet .tbl .avatar.sm{width:30px;height:30px;font-size:11px;border-radius:9px}
.pay-sheet .pay-acts{display:flex;gap:3px;justify-content:center}
.pay-sheet .pay-acts .btn.sm{width:30px;height:30px;padding:0;border-radius:9px}
.pay-sheet .tbl .money{font-size:12.5px}
.pay-sheet .tbl tfoot td{position:sticky;bottom:0;z-index:2;background:#fff;font-weight:800;border-top:1.5px solid var(--line);padding:10px 8px;font-size:12.5px}
.pay-sheet .hr-emp-cell{min-width:170px;text-align:start}
.pay-sheet .hr-emp-cell b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.pay-sheet .tbl td .btn.sm{height:30px;padding:0 9px;font-size:11.5px;border-radius:9px}
.pay-sheet .tbl td .btn.sm .ms{font-size:16px}
.pay-sheet .tbl td .icon-btn.sm{width:30px}
.pay-mn{color:var(--rose-d)!important}.pay-pl{color:var(--accent-d)!important}
.pay-sub{display:block;font-size:10.5px;color:var(--muted);font-weight:600;margin-top:2px;white-space:nowrap}
.pay-empno{font-family:var(--f-disp);font-weight:800;font-size:12px;color:var(--ink2);letter-spacing:.2px}
.pay-empty{padding:40px 20px}

/* ---- لوحة تفاصيل راتب الموظف (جانبية عريضة) ---- */
.drawer.pay-drawer{width:min(800px,96vw)}
.pay-dh{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--page),#fff)}
.pay-dh .who{flex:1;min-width:0}
.pay-dh .who b{display:block;font-family:var(--f-disp);font-size:17px;font-weight:800;line-height:1.2}
.pay-dh .who .lbl{display:block;margin-top:3px;font-size:11.5px}
.pay-dh .pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.pay-db{padding:18px 22px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin}
.pay-df{padding:12px 22px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#fff}
.pay-sec{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pay-sec .ms{font-size:18px;color:var(--brand)}
.pay-sec .lbl{margin-inline-start:auto}
.pay-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.pay-fact{background:var(--page);border:1px solid var(--line2);border-radius:12px;padding:9px 11px;min-width:0}
.pay-fact .lbl{display:block;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-fact b{font-size:14px;font-family:var(--f-disp);font-weight:800;font-variant-numeric:tabular-nums}
.pay-fact b small{font-size:10.5px;font-weight:700;color:var(--muted);margin-inline-start:2px}
.pay-fact.bad b{color:var(--rose-d)}.pay-fact.good b{color:var(--accent-d)}
.pay-line .k{display:flex;flex-direction:column;gap:1px;min-width:0}
.pay-line .k .why{font-size:10.5px;color:var(--muted);font-weight:600}
.pay-formula{background:var(--brand-t);border-radius:14px;padding:12px 14px;font-size:12.5px;color:var(--brand-d);line-height:1.9}
.pay-formula b{font-weight:800}
.pay-formula .fx{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;color:var(--ink);font-size:12px;direction:rtl}
.pay-formula .fx span{background:#fff;border-radius:8px;padding:2px 8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pay-formula .fx span.eq{background:var(--brand);color:#fff;font-weight:800}
.pay-formula .fx i{font-style:normal;font-weight:800;color:var(--brand-d)}
.pay-prog{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink2);font-weight:700;margin-top:10px}
.pay-prog .pb{flex:1;height:8px;background:rgba(255,255,255,.35)}
.pay-prog .pb i{background:#fff}
.pay-net .pay-prog{color:#fff}
.pay-net.partial{background:linear-gradient(135deg,#8A5B00,var(--amber))}
.pay-net.paid{background:linear-gradient(135deg,var(--accent-d),var(--accent))}
.pay-net.review{background:linear-gradient(135deg,#4A5578,#6B76A0)}
.pay-net .col{gap:2px;min-width:0;flex:1}
.pay-pays{display:flex;flex-direction:column;gap:8px}
.pay-pay{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line2);border-radius:12px;background:#fff}
.pay-pay .thumb{width:34px;height:34px;border-radius:10px;flex:none}
.pay-pay .thumb .ms{font-size:18px}
.pay-pay .t{flex:1;min-width:0}
.pay-pay .t b{display:block;font-size:13px}
.pay-pay .t .lbl{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-pay .acts{display:flex;gap:4px;flex:none}
.pay-pay.void{opacity:.6;background:var(--page)}
.pay-pay.void .t b{text-decoration:line-through}
.pay-audit .tl-item{padding-bottom:14px}
.pay-audit .tl-item b{font-size:12.5px;display:block}
.pay-audit .tl-item .lbl{display:block;margin-top:2px}

/* ---- معالج إنشاء المسيّر ---- */
.pay-steps{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-bottom:16px}
.pay-step{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px;border-radius:12px;font-size:10.5px;font-weight:700;color:var(--muted);text-align:center;background:var(--page);line-height:1.3;cursor:default}
.pay-step i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1.5px solid var(--line);font-style:normal;font-weight:800;font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums}
.pay-step.on{background:var(--brand-t);color:var(--brand-d)}
.pay-step.on i{background:var(--brand);border-color:var(--brand);color:#fff}
.pay-step.done{color:var(--accent-d);cursor:pointer}
.pay-step.done i{background:var(--accent);border-color:var(--accent);color:#fff}
.pay-step.done i .ms{font-size:15px}
.pay-wz{min-height:320px}
.pay-wz .sec-t{font-size:14px}
.pay-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pay-sum .it{background:var(--page);border-radius:12px;padding:10px 12px;min-width:0}
.pay-sum .it .lbl{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-sum .it b{font-family:var(--f-disp);font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.pay-sum .it.ac b{color:var(--accent-d)}.pay-sum .it.rs b{color:var(--rose-d)}.pay-sum .it.am b{color:var(--amber-d)}
.pay-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto;scrollbar-width:thin;padding-inline-end:2px}
.pay-li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line2);border-radius:11px;font-size:12.5px;background:#fff}
.pay-li .t{flex:1;min-width:0}
.pay-li .t b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-li .t .lbl{display:block;margin-top:1px}
.pay-li .money{flex:none}
.pay-li.bad{border-color:var(--rose-t);background:#FFF6F9}
.pay-li.warn{border-color:var(--amber-t);background:#FFFBF0}
.pay-wz-foot{display:flex;align-items:center;gap:8px}
.pay-wz-foot .sp{margin-inline-start:auto}

/* ---- نموذج المكافأة/الخصم ونموذج الدفع ---- */
.pay-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pay-kind button{height:46px;border:1.5px solid var(--line);border-radius:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink2);transition:.14s}
.pay-kind button .ms{font-size:20px}
.pay-kind button.on.b{border-color:var(--accent);background:var(--accent-t);color:var(--accent-d)}
.pay-kind button.on.d{border-color:var(--rose);background:var(--rose-t);color:var(--rose-d)}
.pay-emps{border:1.5px solid var(--line);border-radius:12px;max-height:220px;overflow:auto;padding:6px;scrollbar-width:thin;background:#fff}
.pay-emp{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:9px;cursor:pointer;font-size:12.5px}
.pay-emp:hover{background:var(--page)}
.pay-emp .lbl{margin-inline-start:auto;flex:none}
.pay-emp b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-emps-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.pay-emps-bar .search{flex:1;min-width:160px;box-shadow:none;border:1.5px solid var(--line);padding:6px 12px}
.pay-attach{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;font-size:12.5px;color:var(--ink2);background:#fff;transition:.14s}
.pay-attach:hover{border-color:var(--brand);background:var(--page)}
.pay-attach .ms{color:var(--brand);font-size:20px}
.pay-attach b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pay-attach .lbl{margin-inline-start:auto;flex:none}
.pay-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pay-amounts .it{background:var(--page);border-radius:12px;padding:10px 12px;text-align:center}
.pay-amounts .it .lbl{display:block}
.pay-amounts .it b{font-family:var(--f-disp);font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.pay-amounts .it.rs b{color:var(--rose-d)}.pay-amounts .it.ac b{color:var(--accent-d)}
.pay-amt .input{height:52px;font-family:var(--f-disp);font-size:22px;font-weight:800;text-align:center}
.pay-quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pay-quick button{height:30px;padding:0 11px;border-radius:9px;background:var(--page2);font-size:11.5px;font-weight:700;color:var(--ink2)}
.pay-quick button:hover{background:var(--brand-t);color:var(--brand-d)}

/* ---- التقارير ---- */
.pay-reps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.pay-rep{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:14px;border:1.5px solid var(--line2);background:#fff;font-size:11.5px;font-weight:700;color:var(--ink2);cursor:pointer;transition:.14s;text-align:center;line-height:1.3}
.pay-rep .ms{font-size:22px;color:var(--muted)}
.pay-rep:hover{border-color:var(--brand-t);background:var(--page)}
.pay-rep.on{border-color:var(--brand);background:var(--brand-t);color:var(--brand-d)}
.pay-rep.on .ms{color:var(--brand)}
@media(max-width:1180px){.pay-reps{grid-template-columns:repeat(3,1fr)}}
.pay-rep-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px}
.pay-rep-head .sp{margin-inline-start:auto}

/* ---- بطاقة الصلاحيات في الإعدادات ---- */
.pay-perms{display:grid;grid-template-columns:1fr repeat(4,56px);gap:4px 8px;font-size:12px;align-items:center}
.pay-perms .h{font-size:10px;color:var(--muted);font-weight:800;text-align:center;padding-bottom:4px;border-bottom:1px solid var(--line2)}
.pay-perms .n{padding:6px 0;border-bottom:1px dashed var(--line2)}
.pay-perms .n b{display:block;font-size:12px}
.pay-perms .n .lbl{display:block}
.pay-perms .c{text-align:center;padding:6px 0;border-bottom:1px dashed var(--line2)}
.pay-perms .c .ms{font-size:17px}
.pay-perms .ok{color:var(--accent-d)}.pay-perms .no{color:var(--faint)}

/* ---- سند الاستلام وكشف الرواتب المطبوع ---- */
.pay-rc{border:1.5px solid #ccd3e6;border-radius:10px;padding:14px 16px;margin-top:4px}
.pay-rc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:12.5px}
.pay-rc-grid div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed #dfe4f0;padding:5px 0}
.pay-rc-grid span{color:#5a627a}
.pay-rc-amt{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;background:#eef1f9;border-radius:10px;font-size:14px;font-weight:800}
.pay-rc-amt b{font-size:19px;font-family:var(--f-disp)}
@media print{.pay-df,.pay-dh .close-x{display:none!important}}

/* ═══════════ شاشة الإقلاع (تحميل البيانات) ═══════════ */
/* طبقة ثابتة فوق الهيكل كله: خلفية أزرق ثلجي بحبيبات خفيفة، شعار العيادة (المربّع المتدرّج نفسه الذي
   في الشريط الجانبي وصفحة الدخول) داخل حلقة تقدّم رفيعة، ثم اسم النظام وسطر الحالة. app.js يضيف .out ثم يزيلها. */
.boot{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(70% 60% at 50% 42%,#F7F9FF 0%,#EFF3FC 55%,#EAF0FA 100%);
  transition:opacity .3s var(--ease),visibility .3s}
.boot:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.12;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
.boot.out{opacity:0;visibility:hidden;pointer-events:none}
/* الشعار وحلقته */
.boot-mark{position:relative;width:132px;height:132px;display:grid;place-items:center;animation:rise .5s var(--ease) both}
.boot-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.boot-ring circle{fill:none;stroke-width:3;stroke-linecap:round}
.boot-ring .track{stroke:#DCE4F5}
.boot-ring .arc{stroke:var(--brand);stroke-dasharray:96 256;transform-box:view-box;transform-origin:50% 50%;
  animation:spin 1.1s cubic-bezier(.45,.05,.55,.95) infinite}
.boot-logo{position:relative;width:84px;height:84px;border-radius:24px;display:grid;place-items:center;color:#fff;overflow:hidden;
  background:linear-gradient(140deg,var(--brand),var(--brand-g));
  box-shadow:0 18px 36px -12px rgba(46,91,255,.55),0 2px 6px rgba(27,36,64,.08),inset 0 1px 0 rgba(255,255,255,.35)}
.boot-logo:after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.22),transparent 55%)}
.boot-logo .ms{font-size:44px;position:relative;z-index:2;opacity:0;transition:opacity .2s}
.ms-ready .boot-logo .ms{opacity:1}   /* تُضاف بعد اكتمال خط الأيقونات كي لا يظهر اسم الأيقونة نصّاً */
/* الاسم وسطر الحالة */
.boot-brand{margin-top:22px;text-align:center;animation:rise .5s var(--ease) .06s both}
.boot-brand b{display:block;font-family:var(--f-disp);font-size:26px;font-weight:800;color:var(--ink);line-height:1.15}
.boot-brand span{display:block;margin-top:4px;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:1.6px;text-transform:uppercase;direction:ltr}
.boot-text{margin-top:30px;display:inline-flex;align-items:center;font-size:14px;font-weight:600;color:var(--ink2);animation:rise .5s var(--ease) .12s both}
.boot-dots{display:inline-flex;gap:3px;margin-inline-start:5px}
.boot-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.25;animation:bootDot 1.2s ease-in-out infinite}
.boot-dots i:nth-child(2){animation-delay:.2s}
.boot-dots i:nth-child(3){animation-delay:.4s}
@keyframes bootDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
/* المؤشر بيان جوهري عن الحالة: تبقى الحلقة تدور — أبطأ فقط — حتى مع طلب تقليل الحركة */
@media(prefers-reduced-motion:reduce){
  .boot-mark,.boot-brand,.boot-text{animation:none}
  .boot-ring .arc{animation-duration:2.4s}
  .boot-dots i{animation:none;opacity:.6}}

/* ═══════════ الطابور — بطاقات اللوحة ═══════════ */
/* رقم الدور ظاهر دائماً في زاوية البطاقة */
.q-no{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 7px;
  border-radius:9px;background:var(--brand-t);color:var(--brand-d);font-size:12.5px;font-weight:800}
.q-why{display:flex;align-items:flex-start;gap:6px;margin-top:8px;padding:7px 9px;border-radius:10px;
  background:var(--rose-t);color:var(--rose-d);font-size:11px;font-weight:700;line-height:1.6}
.q-why .ms{font-size:15px;flex:none}
.q-cxl{color:var(--rose-d)}
.q-col.drop{background:var(--brand-t);border-color:var(--brand);border-style:dashed}
/* العمود الأخير يُميَّز بلونه فلا يُخلط بغيره عند السحب */
.q-col[data-col="CANCELLED"] .bcol-h b{color:var(--rose-d)}
.q-cxl-sum{display:flex;gap:7px;flex-wrap:wrap}

@media(max-width:1400px){
  .board.q-board{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .board.q-board{grid-template-columns:minmax(0,1fr)}
}

/* ═══ English (LTR) ═══ */
/* The layout is written with logical properties (inline-start/end), so it mirrors by itself when
   <html dir="ltr">. Only the few physical values and direction-bearing icons need an override. */
[dir=ltr] select.input{background-position:right 14px center;padding-inline-start:14px;padding-inline-end:38px}
[dir=ltr] .tk-sel.input{background-position:right 9px center;padding-inline-start:11px;padding-inline-end:28px}
[dir=ltr] select.dt-sel,[dir=ltr] .dt-bar select.dt-sel{background-position:right 12px center;padding-inline-start:12px;padding-inline-end:36px}
[dir=ltr] .tbl tbody tr.usr-me{background:linear-gradient(to right,var(--brand-t),transparent 70%)}
[dir=ltr] .tbl tbody tr.usr-me:hover{background:linear-gradient(to right,var(--brand-t),transparent 55%)}
[dir=ltr] .tbl tbody tr.usr-me td:first-child{box-shadow:inset 3px 0 0 0 var(--brand)}
[dir=ltr] .hr-dbars i em{transform:translateX(-50%)}
[dir=ltr] .pl-f-ph input,[dir=ltr] .pay-formula .fx{direction:ltr}
/* icons drawn for the right-to-left reading direction (chevrons, arrows, first/last page) */
[dir=ltr] .ms.mirror{transform:scaleX(-1)}
[dir=rtl] .boot-brand span{letter-spacing:0;direction:rtl}
[dir=ltr] .pm-mod.shut .pm-grp-x.mirror{transform:rotate(-90deg) scaleX(-1)}
.top-btn.lang-btn{width:auto;min-width:40px;padding:0 11px;gap:5px;display:inline-flex;align-items:center;justify-content:center}
.top-btn.lang-btn .ms{font-size:18px}
.top-btn.lang-btn .lang-code{font-size:12px;font-weight:700;letter-spacing:.4px}
/* ───────── المواعيد: الحالة القابلة للتحديث من خانتها · مدة الحجز ← الفاتورة ───────── */
.ap-view{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ap-view .seg b{display:inline-block;min-width:20px;margin-inline-start:7px;padding:1px 6px;border-radius:999px;background:var(--page2);font-size:11px;font-weight:700;line-height:1.5;text-align:center}
.ap-view .seg button.on b{background:var(--brand-t);color:var(--brand-d)}
.ap-sum{display:flex;gap:8px;flex-wrap:wrap}
select.st-sel{appearance:none;-webkit-appearance:none;border:0;font:inherit;font-size:12px;font-weight:700;cursor:pointer;
  padding-block:5px;padding-inline:12px 26px;border-radius:var(--pill);max-width:100%;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;background-position:left 9px center,left 14px center}
[dir=ltr] select.st-sel{background-position:right 14px center,right 9px center}
select.st-sel:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
select.st-sel:disabled{cursor:progress;opacity:.6}
select.st-sel option{background:var(--surface,#fff);color:var(--ink)}
/* خانة الحالة الموحّدة: أيقونة + اسم + سهم في شارة واحدة لكل الصفوف؛ غير القابلة للتغيير معطَّلة بالشكل نفسه */
.pill.st-cell{padding:0;gap:0;min-width:138px;justify-content:flex-start;overflow:hidden;font-size:12px}
.pill.st-cell>.ms{flex:none;font-size:15px;margin-inline-start:10px}
.pill.st-cell select.st-sel{flex:1;min-width:0;background-color:transparent;color:inherit;border-radius:0;padding-block:5px;padding-inline:7px 24px;background-position:left 8px center,left 13px center}
[dir=ltr] .pill.st-cell select.st-sel{background-position:right 13px center,right 8px center}
.pill.st-cell select.st-sel[data-locked]:disabled{cursor:default;opacity:1}
select.st-sel option.opt-cxl{color:var(--rose-d);font-weight:700}
select.st-sel option:disabled{color:var(--faint);font-weight:500}
.ap-dur{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
.ap-dur .ms{font-size:16px}
.ap-dur.live{color:var(--amber-d)}
.ap-dur.live .ms{animation:apPulse 1.6s ease-in-out infinite}
.ap-dur.done{color:var(--accent-d,var(--ink2))}
.ap-dur.none{color:var(--faint);font-weight:500}
@keyframes apPulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.ap-dur.live .ms{animation:none}}
/* ───────── نافذة الموعد: رأس المراجع وبطاقات المعلومات ───────── */
.ap-info{background:var(--page);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:6px}
.ap-info-pat{display:flex;align-items:center;gap:11px;padding:2px 4px 12px;border-bottom:1px dashed var(--line);margin-bottom:12px}
.ap-info-who{display:flex;flex-direction:column;min-width:0;flex:1}
.ap-info-who .k{font-size:11px;color:var(--muted)}
.ap-info-who b{font-size:15px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ap-tile{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 11px;min-width:0}
.ap-tile-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-t);color:var(--brand-d)}
.ap-tile-ic .ms{font-size:18px}
.ap-tile-t{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.ap-tile-t .k{font-size:11px;color:var(--muted);line-height:1.2}
.ap-tile-t b{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-tile-t b .pill{font-size:11.5px;padding:3px 9px}
.ap-tile-t small{font-size:11px;color:var(--muted);line-height:1.2}
/* بطاقة «مدة الجلسة» — عرض بطاقتين: العنوان ثم العدّاد ووقت البدء ثم الشارة */
.ap-ses{grid-column:1/-1;gap:12px}
@media(max-width:420px){.ap-ses{flex-wrap:wrap}}
@media(min-width:620px){.ap-ses{grid-column:span 2}}
.ap-ses .ap-tile-ic{background:var(--accent-t);color:var(--accent-d)}
.ap-ses.is-none .ap-tile-ic,.ap-ses.is-idle .ap-tile-ic{background:var(--page2);color:var(--muted)}
.ap-ses-k{font-size:13px;font-weight:700;color:var(--ink2);white-space:nowrap}
.ap-ses-l{display:block;white-space:nowrap}
.ap-ses-v{margin-inline-start:auto;flex:0 1 auto;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center}
.ap-ses-v b{font-size:21px;font-weight:800;color:var(--ink);letter-spacing:.5px;font-variant-numeric:tabular-nums;line-height:1.15}
.ap-ses-v b.ap-ses-na{font-size:14px;color:var(--muted)}
.ap-ses-v small{font-size:11px;color:var(--muted);line-height:1.3}
.ap-ses-p{flex:none;margin-inline-end:6px}
.ap-ses-live{background:var(--accent-t);color:var(--accent-d);font-weight:700}
.ap-ses-live .d{background:var(--accent);animation:apSesPulse 1.6s ease-in-out infinite}
@keyframes apSesPulse{50%{opacity:.35}}
/* مدة الجلسة المختصرة تحت وقت الموعد في الجداول */
.ses-mini{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1.5;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help}
.ses-mini .ms{font-size:14px}
.ses-mini.live{background:var(--accent-t);color:var(--accent-d)}
.ses-mini.live .d{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:apSesPulse 1.6s ease-in-out infinite}
.ses-mini.done{background:var(--page2);color:var(--ink2)}
.ses-mini.done .ms{color:var(--accent-d)}
.ses-mini.na{padding-inline:2px;background:none;color:var(--faint);font-weight:600}
/* عدّاد الجلسة الجارية في «مواعيد اليوم» (لوحة اليوم) — بارتفاع زر الصف، وأرقام ثابتة العرض فلا يهتزّ السطر كل ثانية */
.td-q-st{display:inline-flex;align-items:center;gap:10px}
.ses-chip{display:inline-flex;align-items:center;gap:9px;height:38px;padding-inline:4px 12px;border-radius:12px;flex:none;
  background:var(--accent-t);color:var(--accent-d);box-shadow:inset 0 0 0 1px rgba(15,184,132,.2);white-space:nowrap;cursor:help}
.ses-chip-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--card);color:var(--accent-d)}
.ses-chip-ic .ms{font-size:18px}
.ses-chip-t{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.1}
.ses-chip-t small{font-size:10.5px;font-weight:700;color:var(--accent-d);opacity:.85}
.ses-chip-t b{font-size:14.5px;font-weight:800;color:var(--ink);letter-spacing:.4px}
.ses-chip-d{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:apSesPulse 1.6s ease-in-out infinite}
/* ═══════════ جرس الإشعارات — القائمة المنسدلة (app/views/_notifs.js) ═══════════ */
.nt-badge{position:absolute;top:-6px;inset-inline-end:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:var(--pill);
  background:var(--rose);color:#fff;font-family:var(--f-disp);font-size:10.5px;font-weight:800;line-height:19px;text-align:center;
  box-shadow:0 0 0 2px #fff;pointer-events:none}
.nt-badge[hidden]{display:none}
.top-btn[aria-expanded="true"]{color:var(--brand);border-color:var(--brand);background:var(--brand-t)}
.top-btn.nt-ring .ms{animation:nt-ring .9s var(--ease);transform-origin:50% 10%}
@keyframes nt-ring{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(9deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}}

.nt-pop{position:absolute;top:calc(100% + 8px);inset-inline-end:18px;z-index:40;width:410px;max-width:calc(100vw - 32px);
  max-height:min(640px,calc(100vh - var(--top) - 24px));display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh2);overflow:hidden;
  animation:rise .16s var(--ease)}
.nt-pop[hidden]{display:none}
.nt-pop:focus{outline:none}
.nt-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 10px;padding-inline-end:10px}
.nt-ttl{display:flex;align-items:center;gap:10px;min-width:0}
.nt-hic{width:36px;height:36px;border-radius:11px;background:var(--brand-t);color:var(--brand);display:grid;place-items:center;flex:none}
.nt-hic .ms{font-size:20px}
.nt-ttl b{display:block;font-family:var(--f-disp);font-size:15.5px;font-weight:800;line-height:1.25}
.nt-sub{display:block;font-size:11px;font-weight:600;color:var(--muted)}
.nt-acts{display:flex;gap:2px;flex:none}
.nt-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);transition:.12s}
.nt-ic .ms{font-size:19px}
.nt-ic:hover:not(:disabled){background:var(--page);color:var(--brand)}
.nt-ic:disabled{opacity:.35;cursor:default}
.nt-main{display:flex;flex-direction:column;min-height:0;flex:1}
.nt-seg{display:flex;margin:0 14px 6px}
.nt-seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 8px;font-size:12px;white-space:nowrap}
.nt-seg b{min-width:18px;height:18px;padding:0 5px;border-radius:var(--pill);background:var(--brand);color:#fff;
  font-family:var(--f-disp);font-size:10px;font-weight:800;line-height:18px;text-align:center}
.nt-seg button:not(.on) b{background:var(--line);color:var(--ink2)}
.nt-list{flex:1;min-height:120px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 8px 10px}
.nt-day{display:flex;align-items:center;gap:6px;padding:10px 8px 5px;font-size:10.5px;font-weight:800;color:var(--muted)}
.nt-day .ms{font-size:15px}

/* الإشعار: غير المقروء بخلفية مميّزة ونقطة وعنوان أثقل */
.nt-it{position:relative;display:flex;align-items:stretch;border-radius:14px;transition:background .12s}
.nt-it + .nt-it{margin-top:2px}
.nt-it:hover{background:var(--page)}
.nt-it.unread{background:#F1F4FF}
.nt-it.unread:hover{background:var(--brand-t)}
.nt-it.unread::before{content:'';position:absolute;top:19px;inset-inline-start:3px;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.nt-open{flex:1;min-width:0;display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border-radius:14px;text-align:start;color:var(--ink)}
.nt-thumb{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none}
.nt-thumb .ms{font-size:19px}
.nt-thumb.t-brand{background:var(--brand-t);color:var(--brand)}
.nt-thumb.t-accent{background:var(--accent-t);color:var(--accent-d)}
.nt-thumb.t-amber{background:var(--amber-t);color:var(--amber-d)}
.nt-thumb.t-rose{background:var(--rose-t);color:var(--rose-d)}
.nt-it.unread .nt-thumb{box-shadow:0 0 0 2px #fff}
.nt-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nt-top{display:flex;align-items:baseline;gap:8px}
.nt-top b{flex:1;min-width:0;font-size:12.8px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-it.unread .nt-top b{font-weight:800}
.nt-top time{flex:none;font-size:10.5px;font-weight:600;color:var(--muted)}
.nt-desc{font-size:12px;color:var(--ink2);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nt-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:3px;font-size:10.5px;font-weight:600;color:var(--muted)}
.nt-type{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:var(--pill);background:var(--page2);color:var(--ink2)}
.nt-it.unread .nt-type{background:#fff}
.nt-type .ms{font-size:13px}
.nt-mark{flex:none;align-self:center;width:32px;height:32px;margin-inline-end:6px;border-radius:10px;display:grid;place-items:center;
  color:var(--brand);opacity:0;transition:.12s}
.nt-mark .ms{font-size:18px}
.nt-it:hover .nt-mark,.nt-it:focus-within .nt-mark,.nt-pop.sheet .nt-mark{opacity:1}
.nt-mark:hover{background:#fff;box-shadow:var(--sh)}
@media(hover:none){.nt-mark{opacity:1}}

/* التحميل · الخلوّ · الفشل */
.nt-state{text-align:center;padding:34px 20px 30px;color:var(--muted)}
.nt-state .thumb{width:56px;height:56px;border-radius:18px;margin:0 auto 12px}
.nt-state .thumb .ms{font-size:28px}
.nt-state b{display:block;font-size:14px;font-weight:700;color:var(--ink)}
.nt-state p{max-width:290px;margin:5px auto 0;font-size:12px;line-height:1.7}
.nt-state .btn{margin-top:14px}
.nt-pop .thumb.rs{background:var(--rose-t);color:var(--rose-d)}
.nt-inline-err{display:flex;align-items:center;gap:6px;margin:8px 6px 0;padding:8px 10px;border-radius:10px;background:var(--rose-t);color:var(--rose-d);font-size:11.5px;font-weight:600}
.nt-inline-err .ms{font-size:16px}
.nt-more{display:block;width:calc(100% - 12px);margin:8px auto 2px;padding:9px;border-radius:12px;font-size:12px;font-weight:700;color:var(--brand-d);text-align:center}
.nt-more:hover:not(:disabled){background:var(--brand-t)}
.nt-more:disabled{color:var(--muted);cursor:default}
.nt-sk{display:flex;gap:11px;padding:12px 10px}
.nt-sk-ic{width:36px;height:36px;border-radius:11px;flex:none}
.nt-sk-l{flex:1;display:flex;flex-direction:column;gap:7px;padding-top:2px}
.nt-sk-l i{display:block;height:9px;border-radius:6px}
.nt-sk-l i:nth-child(1){width:55%}.nt-sk-l i:nth-child(2){width:90%}.nt-sk-l i:nth-child(3){width:35%}
.nt-sk-ic,.nt-sk-l i{background:linear-gradient(90deg,var(--page2) 25%,var(--line2) 50%,var(--page2) 75%);background-size:200% 100%;animation:nt-shim 1.2s linear infinite}
@keyframes nt-shim{from{background-position:200% 0}to{background-position:-200% 0}}
.nt-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:12px 8px 2px}

/* التذييل: حال القناة المباشرة ورابط إشعار المتصفح */
.nt-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;border-top:1px solid var(--line2);background:#FBFCFF}
.nt-foot[hidden]{display:none}
.nt-live{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:var(--muted)}
.nt-live i{width:7px;height:7px;border-radius:50%;background:var(--brand-g)}
.nt-live.ok i{background:var(--accent);animation:blip 1.6s infinite}
.nt-live.warn i{background:var(--amber)}
.nt-live.bad i{background:var(--rose)}
.nt-bn-link{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:9px;font-size:11.5px;font-weight:700;color:var(--brand-d)}
.nt-bn-link .ms{font-size:16px}
.nt-bn-link:hover{background:var(--brand-t)}

/* التفضيلات */
.nt-prefs{padding-top:2px}
.nt-bn{display:flex;gap:12px;margin:2px 6px 4px;padding:13px;border:1px solid var(--line);border-radius:16px;background:#FBFCFF}
.nt-bn .thumb{width:40px;height:40px;border-radius:12px}
.nt-bn .thumb .ms{font-size:21px}
.nt-bn-t{flex:1;min-width:0}
.nt-bn-t b{display:block;font-size:13px;font-weight:800}
.nt-bn-t p{margin:3px 0 9px;font-size:11.5px;line-height:1.65;color:var(--ink2)}
.nt-sec-t{padding:14px 8px 0;font-size:12.5px;font-weight:800}
.nt-hint{padding:2px 8px 2px;font-size:11px;line-height:1.6;color:var(--muted)}
.nt-pref{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:12px}
.nt-pref:hover{background:var(--page)}
.nt-pt{flex:1;min-width:0}
.nt-pt b{display:block;font-size:12.5px;font-weight:700}
.nt-pt .lbl{display:block;line-height:1.5}

/* الشاشات الأضيق من 1024 (اللوحة مصغَّرة كلها): صفحة كاملة بمقاس الجهاز الحقيقي */
.nt-pop.sheet{position:fixed;inset:0;width:auto;max-width:none;max-height:none;border:0;border-radius:0;z-index:90;zoom:var(--nt-z,1);animation:none}
.nt-pop.sheet .nt-head{padding-top:max(14px,env(safe-area-inset-top))}
.nt-pop.sheet .nt-list{padding-bottom:max(10px,env(safe-area-inset-bottom))}
.nt-pop.sheet .nt-open{padding:12px}
.nt-pop.sheet .nt-ic{width:42px;height:42px}
.nt-pop.sheet .nt-desc{-webkit-line-clamp:3}

.nt-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.top-btn.nt-ring .ms,.nt-pop,.nt-sk-ic,.nt-sk-l i,.nt-live.ok i{animation:none}}
@media print{.nt-pop{display:none!important}}
/* الإشعارات بلا «تخصيص الأنواع»: المفاتيح معروضة بحالها الافتراضية ومقفلة */
.nt-hint.nt-lock{display:flex;align-items:flex-start;gap:6px;margin:6px 6px 2px;padding:8px 10px;border-radius:10px;background:var(--page);color:var(--ink2)}
.nt-hint.nt-lock .ms{flex:none;margin-top:1px;font-size:15px;color:var(--muted)}
.nt-pref.locked:hover{background:none}
.nt-pref.locked .sw{opacity:.55;cursor:not-allowed}
/* ═══════════ ملاحظات المراجع — تبويب «الملاحظات» في ملف المريض (app/views/_notes.js) ═══════════ */
/* لون التصنيف يصل في --nc فيلوّن الحدّ الجانبي للبطاقة وأزرار التصنيف معاً */
.pnote-compose{margin-top:14px;padding:16px 18px 14px;background:var(--card);border:1px solid var(--line2);
  border-radius:var(--r-lg);box-shadow:var(--sh);transition:border-color .16s,box-shadow .16s var(--ease)}
.pnote-compose:focus-within{border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-t),var(--sh)}
.pnote-compose-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pnote-compose-h b{display:block;font-size:13px}
textarea.input.pnote-ta{min-height:92px;border:0;padding:6px 2px;background:transparent;font-size:13.5px;line-height:1.85}
textarea.input.pnote-ta:focus{box-shadow:none}
.pnote-compose-f{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:8px;padding-top:12px;border-top:1px dashed var(--line)}
.pnote-cats{display:flex;gap:6px;flex-wrap:wrap}
.pnote-cat{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 11px;border-radius:var(--pill);
  border:1.5px solid var(--line);background:#fff;font-size:11.5px;font-weight:700;color:var(--ink2);transition:.14s}
.pnote-cat .ms{font-size:15px;color:var(--nc)}
.pnote-cat:hover{border-color:var(--nc)}
.pnote-cat.on{background:var(--nc);border-color:var(--nc);color:#fff}
.pnote-cat.on .ms{color:#fff}
.pnote-pin-tg{position:relative;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:var(--pill);
  border:1.5px dashed var(--line);font-size:11.5px;font-weight:700;color:var(--ink2);cursor:pointer;user-select:none;transition:.14s}
.pnote-pin-tg input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pnote-pin-tg .ms{font-size:16px;color:var(--muted)}
.pnote-pin-tg:hover{border-color:var(--amber)}
.pnote-pin-tg.on{border-style:solid;border-color:var(--amber);background:var(--amber-t);color:var(--amber-d)}
.pnote-pin-tg.on .ms{color:var(--amber-d);font-variation-settings:'FILL' 1,'wght' 500}
.pnote-pin-tg:focus-within{outline:2.5px solid var(--brand);outline-offset:2px}
.pnote-count{font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:plaintext}
.pnote-count.warn{color:var(--amber-d)}
.pnote-count.bad{color:var(--rose-d)}
.pnote-kbd{font-size:10.5px;font-weight:600;color:var(--muted)}
.pnote-kbd kbd{display:inline-block;font:inherit;font-weight:700;padding:0 6px;border:1px solid var(--line);border-bottom-width:2px;
  border-radius:6px;background:var(--page);color:var(--ink2);direction:ltr}

/* البحث والتصفية */
.pnote-bar{display:flex;align-items:center;gap:12px;margin-top:18px}
.pnote-search{position:relative;flex:0 1 300px;min-width:200px}
.pnote-search>.ms{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--muted);pointer-events:none}
.pnote-search .input{height:38px;padding-inline-start:38px;font-size:12.5px}
.pnote-bar .chips{flex:1;min-width:0}
.pnote-bar .chip b{margin-inline-start:3px;font-size:11px;opacity:.7}

/* القائمة: مجموعة المثبّتة ثم يوماً بيوم */
.pnote-group{margin-top:18px}
.pnote-group-t{display:flex;align-items:center;gap:7px;margin-bottom:10px;font-size:11.5px;font-weight:800;color:var(--muted)}
.pnote-group-t .ms{font-size:16px}
.pnote-group-t:after{content:'';flex:1;height:1px;background:var(--line)}
.pnote-list{display:flex;flex-direction:column;gap:10px}
.pnote{background:var(--card);border:1px solid var(--line2);border-inline-start:4px solid var(--nc);border-radius:var(--r);
  box-shadow:var(--sh);padding:13px 16px 14px;transition:box-shadow .16s var(--ease)}
.pnote:hover{box-shadow:var(--sh2)}
.pnote.pinned{background:#FFFDF6;border-color:#F4E6C0;border-inline-start-color:var(--nc)}
.pnote-h{display:flex;align-items:center;gap:10px;min-width:0}
.pnote-who{display:flex;flex-direction:column;min-width:0}
.pnote-who b{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pnote-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-inline-start:4px}
.pnote-acts{display:flex;gap:4px;margin-inline-start:auto;opacity:.5;transition:opacity .14s}
.pnote:hover .pnote-acts,.pnote:focus-within .pnote-acts{opacity:1}
.pnote-acts .icon-btn{width:32px;height:32px;border-radius:10px}
.pnote-acts .icon-btn .ms{font-size:18px}
.pnote-acts .on{border-color:var(--amber);color:var(--amber-d)}
.pnote-acts .on .ms{font-variation-settings:'FILL' 1,'wght' 500}
.pnote-acts .del:hover{border-color:var(--rose);color:var(--rose-d)}
.pnote-body{margin-top:10px;font-size:13.5px;line-height:1.85;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.pnote-body.clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.pnote-more{display:inline-flex;align-items:center;gap:2px;margin-top:6px;font-size:12px;font-weight:700;color:var(--brand)}
.pnote-more .ms{font-size:18px}
.pnote-more:hover{color:var(--brand-d)}
.pnote-f{display:flex;align-items:center;gap:5px;margin-top:10px;font-size:11px;font-weight:600;color:var(--muted)}
.pnote-f .ms{font-size:14px}

/* مقتطف في بطاقة «الملاحظات» بالنظرة العامة */
.pnote-mini{padding:9px 11px;border-radius:12px;background:var(--page);border-inline-start:3px solid var(--nc)}
.pnote-mini-t{font-size:12.5px;line-height:1.7;color:var(--ink);margin-bottom:3px;overflow-wrap:anywhere}
.pnote-mini-t .ms{font-size:14px;color:var(--amber-d);vertical-align:-2px;margin-inline-end:4px}
@media print{.pnote-compose,.pnote-bar,.pnote-acts,.pnote-more{display:none!important}.pnote-body.clamp{display:block;-webkit-line-clamp:unset}}
