/* نظام الإجازات الإلكترونية — كلية الطب / جامعة كركوك
   نفس ثيم بقية أنظمة الكلية (CME / Faculty CV): كحلي #0d2845 + ذهبي #c79a3f · خط Cairo */

@font-face{font-family:'Cairo';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cairo-400.ttf') format('truetype')}
@font-face{font-family:'Cairo';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/cairo-600.ttf') format('truetype')}
@font-face{font-family:'Cairo';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/cairo-700.ttf') format('truetype')}

:root{
  --ink:#08152a; --ink-2:#4a5972; --ink-3:#7c8799;
  --line:#e4e8ee; --line-2:#eef1f5;
  --bg:#f5f7fa; --card:#ffffff;
  --brand:#0d2845; --brand-d:#08152a; --brand-l:#e8edf5;
  --accent:#c79a3f; --accent-d:#a87c1e; --accent-l:#f6eedd;
  --ok:#0f766e; --ok-l:#e3f4f1;
  --bad:#b4252c; --bad-l:#fbe9e9;
  --warn:#9a6700; --warn-l:#fdf6e3;
  --r:14px; --r-s:9px;
  --sh:0 1px 2px rgba(8,21,42,.06), 0 8px 24px -12px rgba(8,21,42,.18);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Cairo',system-ui,'Segoe UI',Tahoma,sans-serif;
  background:var(--bg); color:var(--ink);
  font-size:15px; line-height:1.75; -webkit-font-smoothing:antialiased;
}
input,select,textarea,button{font-family:inherit}
a{color:var(--brand); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
h1,h2,h3,h4{margin:0 0 .4rem; line-height:1.35; font-weight:700; letter-spacing:-.01em}
h2.section{font-size:1.2rem; margin:0 0 14px}
h3{font-size:1.02rem; margin:18px 0 8px}
.muted{color:var(--ink-3); font-size:.88rem}
.container{width:min(1140px,100%); margin-inline:auto; padding-inline:16px}

/* ---------- الترويسة ---------- */
header.site{background:var(--brand); color:#fff; position:sticky; top:0; z-index:40;
  box-shadow:0 1px 0 rgba(255,255,255,.07)}
.notice{background:var(--accent-l); color:#6b5214; text-align:center; font-size:.8rem; padding:6px 10px;
  border-bottom:1px solid #e8d9b4}
.site .bar{display:flex; align-items:center; gap:14px; padding:12px 0; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:12px; line-height:1.35}
.brand .logo{
  width:52px; height:52px; flex:0 0 52px;
  object-fit:contain; object-position:center; display:block;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));
}
.brand b, .brand > div > span{display:block; color:#fff; font-size:1rem; font-weight:700}
.brand small{display:block; font-weight:400; font-size:.76rem; color:#c9b27a}
.site nav{display:flex; gap:2px; margin-inline-start:auto; flex-wrap:wrap}
.site nav button{background:transparent; border:0; color:#cfd7e4; padding:8px 13px;
  border-radius:var(--r-s); cursor:pointer; font-size:.9rem; font-weight:600}
.site nav button:hover{background:rgba(255,255,255,.08); color:#fff}
.site nav button.active{background:var(--accent); color:#fff}
.site .tools{display:flex; gap:8px; align-items:center}
.btn-ghost{background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r-s); padding:7px 13px; cursor:pointer; font-size:.86rem; font-weight:600}
.btn-ghost:hover{background:rgba(255,255,255,.18)}

/* ---------- الواجهة الترحيبية ---------- */
.hero{background:linear-gradient(150deg,var(--brand) 0%,var(--brand-d) 100%); color:#fff; padding:48px 0 54px}
.hero .kicker{letter-spacing:.14em; font-size:.72rem; color:var(--accent); font-weight:700}
.hero h1{font-size:clamp(1.5rem,4vw,2.3rem); margin:10px 0 12px; color:#fff}
.hero p{max-width:640px; color:#c3cddc; margin:0 0 22px}
.hero .cta{display:flex; gap:10px; flex-wrap:wrap}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(225px,1fr)); gap:12px; margin-top:32px}
.cards .c{background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r); padding:15px; cursor:pointer; transition:background .15s}
.cards .c:hover{background:rgba(255,255,255,.12)}
.cards .c b{display:block; margin-bottom:3px; color:var(--accent)}
.cards .c span{font-size:.84rem; color:#c3cddc}

/* ---------- عناصر عامة ---------- */
main{padding:26px 0 56px}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:20px; box-shadow:var(--sh); margin-bottom:16px}
.btn{background:var(--brand); color:#fff; border:0; border-radius:var(--r-s);
  padding:10px 20px; font-size:.92rem; font-weight:700; cursor:pointer; transition:background .15s}
.btn:hover{background:var(--brand-d)}
.btn.alt{background:var(--accent)} .btn.alt:hover{background:var(--accent-d)}
.btn.light{background:var(--brand-l); color:var(--brand)} .btn.light:hover{background:#dae2ef}
.btn.danger{background:var(--bad)}
.btn:disabled{opacity:.5; cursor:not-allowed}
.row{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.grid{display:grid; gap:13px; grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}
label.f{display:block; margin-bottom:13px; font-size:.86rem; font-weight:600; color:var(--ink-2)}
label.f span.req{color:var(--bad)}
input,select,textarea{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:var(--r-s);
  font-size:.95rem; background:#fff; color:var(--ink); margin-top:5px;
}
input:focus,select:focus,textarea:focus{outline:0; border-color:var(--brand); box-shadow:0 0 0 3px rgba(13,40,69,.1)}
textarea{min-height:94px; resize:vertical}
.check{display:flex; align-items:center; gap:8px; font-weight:500; font-size:.9rem}
.check input{width:17px; height:17px; margin:0}
.alert{border-radius:var(--r-s); padding:11px 14px; font-size:.88rem; margin-bottom:14px; border:1px solid}
.alert.err{background:var(--bad-l); color:var(--bad); border-color:#f3c9cb}
.alert.ok{background:var(--ok-l); color:var(--ok); border-color:#bfe3dd}
.alert.info{background:var(--brand-l); color:var(--brand); border-color:#cfdaea}
.badge{display:inline-block; padding:3px 11px; border-radius:999px; font-size:.75rem; font-weight:700}
.b-draft{background:var(--line-2); color:var(--ink-3)}
.b-awaiting_authority{background:var(--warn-l); color:var(--warn)}
.b-submitted{background:var(--brand-l); color:var(--brand)}
.b-under_review{background:var(--accent-l); color:#8a6a1d}
.b-revisions{background:var(--warn-l); color:var(--warn)}
.b-approved{background:var(--ok-l); color:var(--ok)}
.b-rejected{background:var(--bad-l); color:var(--bad)}
table.list{width:100%; border-collapse:collapse; font-size:.88rem}
table.list th,table.list td{border-bottom:1px solid var(--line); padding:10px 8px; text-align:start; vertical-align:middle}
table.list th{color:var(--ink-3); font-weight:600; font-size:.8rem}
.table-wrap{overflow-x:auto}

/* ---------- واجهة الدخول ---------- */
.auth-wrap{min-height:calc(100vh - 210px); display:flex; align-items:center; justify-content:center; padding:30px 16px}
.auth-box{width:min(960px,100%); background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:var(--sh); display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line)}
.auth-side{background:linear-gradient(160deg,var(--brand),var(--brand-d)); color:#fff;
  padding:36px 28px; display:flex; flex-direction:column; justify-content:center; text-align:center; gap:10px}
.auth-side img{width:132px; height:132px; object-fit:contain; margin:0 auto 8px;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}
.auth-side h3{margin:0; font-size:1.12rem; color:#fff}
.auth-side p{margin:0; color:#c9b27a; font-size:.88rem}
.auth-side ul{list-style:none; padding:0; margin:16px 0 0; text-align:start; display:grid; gap:7px}
.auth-side li{font-size:.85rem; color:#c3cddc; padding-inline-start:20px; position:relative}
.auth-side li::before{content:'✓'; position:absolute; inset-inline-start:0; color:var(--accent); font-weight:700}
.auth-form{padding:30px 28px}
.auth-tabs{display:flex; background:var(--line-2); border-radius:var(--r-s); padding:4px; margin-bottom:18px}
.auth-tabs button{flex:1; background:transparent; border:0; padding:9px; border-radius:7px;
  cursor:pointer; font-size:.9rem; font-weight:700; color:var(--ink-3)}
.auth-tabs button.on{background:#fff; color:var(--brand); box-shadow:0 1px 3px rgba(8,21,42,.12)}
.auth-form h2{font-size:1.25rem; margin-bottom:4px}
.auth-form .sub{color:var(--ink-3); font-size:.85rem; margin-bottom:16px}
.auth-form .btn{width:100%; margin-top:6px}
.auth-hint{font-size:.8rem; color:var(--ink-3); margin-top:14px; text-align:center}

/* ---------- خطوات الاستمارة ---------- */
.wsteps{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px}
.wsteps .s{flex:1 1 180px; background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:11px 14px; font-size:.85rem; cursor:pointer}
.wsteps .s b{display:block; font-size:.9rem}
.wsteps .s.on{border-color:var(--accent); box-shadow:0 0 0 2px rgba(199,154,63,.2)}
.wsteps .s.done{background:var(--ok-l); border-color:#bfe3dd}
.wsteps .s i{font-style:normal; color:var(--ink-3); font-size:.75rem}
.author{border:1px solid var(--line); border-radius:var(--r); padding:14px; margin-bottom:12px; background:#fcfdfe}
.author .hd{display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap}
.author .hd b{font-size:.88rem}
.mini{background:var(--line-2); border:1px solid var(--line); border-radius:7px;
  padding:5px 10px; font-size:.8rem; cursor:pointer; color:var(--ink-2); font-weight:600}
.mini:hover{background:#e6eaf0}
.mini.danger{background:var(--bad-l); color:var(--bad); border-color:#f3c9cb}
.wizard-nav{display:flex; justify-content:space-between; gap:10px; margin-top:18px; flex-wrap:wrap}
.file-row{display:flex; justify-content:space-between; align-items:center; gap:10px;
  border:1px solid var(--line); border-radius:var(--r-s); padding:9px 12px; margin-bottom:8px;
  font-size:.86rem; background:#fcfdfe; flex-wrap:wrap}
.drop{border:2px dashed #c3cfdf; border-radius:var(--r); padding:16px; text-align:center; background:#f8fafc; margin-bottom:12px}
.stat{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:14px; text-align:center}
.stat b{display:block; font-size:1.7rem; color:var(--brand)}
.stat span{font-size:.8rem; color:var(--ink-3)}
.timeline{list-style:none; padding:0; margin:0; font-size:.86rem}
.timeline li{border-inline-start:2px solid var(--line); padding:5px 12px; margin-inline-start:6px}
footer.site{background:var(--brand-d); color:#9fb0c6; padding:22px 0; font-size:.85rem; text-align:center}
.hidden{display:none !important}

@media(max-width:860px){
  .auth-box{grid-template-columns:1fr}
  .auth-side{padding:26px 20px}
  .auth-side img{width:104px; height:104px}
  .auth-side ul{display:none}
}
@media(max-width:700px){
  .site .bar{gap:10px}
  .site nav{order:3; width:100%; margin-inline-start:0; justify-content:center}
  .brand .logo{width:44px; height:44px; flex:0 0 44px}
  .hero{padding:32px 0 38px}
  .card{padding:15px}
}

/* ===== مسار الطلب كما يراه الباحث ===== */
.track{list-style:none;display:flex;gap:0;margin:10px 0 0;padding:0;counter-reset:s;flex-wrap:wrap}
.track li{flex:1 1 150px;min-width:140px;position:relative;display:flex;flex-direction:column;align-items:center;
  gap:8px;text-align:center;padding:4px 6px;color:var(--muted);font-size:.9rem}
.track li::before{content:"";position:absolute;top:17px;inset-inline-start:-50%;width:100%;height:3px;background:#e4e8ee;z-index:0}
.track li:first-child::before{display:none}
.track li.done::before,.track li.now::before{background:var(--accent,#c79a3f)}
.track .dot{position:relative;z-index:1;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#eef1f6;color:#64748b;font-weight:700;border:2px solid #e4e8ee}
.track li.done .dot{background:#1f6b3a;color:#fff;border-color:#1f6b3a}
.track li.now .dot{background:var(--brand,#0d2845);color:#fff;border-color:var(--accent,#c79a3f);
  box-shadow:0 0 0 4px rgba(199,154,63,.22)}
.track li.done,.track li.now{color:var(--ink,#0d2845);font-weight:600}
.track-now{margin-top:14px;text-align:center}
@media(max-width:560px){
  .track{flex-direction:column;align-items:stretch}
  .track li{flex-direction:row;justify-content:flex-start;gap:12px;text-align:start;padding:8px 2px}
  .track li::before{inset-inline-start:17px;top:-50%;width:3px;height:100%}
}

/* ===== رسائل رئيس اللجنة ===== */
.msg{border:1px solid var(--line,#e4e8ee);border-inline-start:4px solid var(--accent,#c79a3f);
  border-radius:10px;padding:10px 14px;margin:10px 0;background:#fcfcfd}
.msg-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.85rem;margin-bottom:6px}
.msg-b{white-space:pre-wrap;line-height:1.9}

/* ===== صلاحيات الأعضاء ===== */
.permlist{display:flex;flex-direction:column;gap:4px;min-width:230px}
.check.sm{display:flex;align-items:flex-start;gap:7px;font-size:.84rem;line-height:1.5;cursor:pointer;font-weight:400}
.check.sm input{width:16px;height:16px;flex:0 0 auto;margin-top:2px}

/* ===== مفتاح تبديل الواجهة ===== */
#nav .swap{margin-inline-start:6px;border:1px dashed rgba(255,255,255,.45);border-radius:999px;opacity:.95}
#nav .swap:hover{border-style:solid}
.sumline{cursor:pointer;padding:4px 0;list-style:none}
.sumline::-webkit-details-marker{display:none}
.sumline::before{content:"▸ ";color:var(--accent,#c79a3f)}
details[open] .sumline::before{content:"▾ "}

/* ===== بوابة الدخول: باب لكل صفة ===== */
.gate{background:var(--card,#fff);border-radius:20px;padding:30px 26px;max-width:760px;width:100%;
  box-shadow:0 24px 60px -18px rgba(13,40,69,.35)}
.gate-head{text-align:center;margin-bottom:20px}
.gate-head img{height:62px;margin-bottom:10px}
.gate-head h2{margin:0 0 2px;font-size:1.22rem;color:var(--brand,#0d2845)}
.gate-head p{margin:0;color:var(--muted,#6b7687);font-size:.92rem}
.gate-q{margin-top:14px!important;font-weight:600;color:var(--brand,#0d2845)!important}
.gate-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gate-card{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;
  padding:20px 14px;border:1px solid var(--line,#e4e8ee);border-radius:16px;background:#fcfcfd;
  cursor:pointer;transition:.16s;font:inherit;color:inherit}
.gate-card:hover{border-color:var(--accent,#c79a3f);background:#fff;transform:translateY(-2px);
  box-shadow:0 10px 24px -12px rgba(13,40,69,.3)}
.gate-card b{font-size:1rem;color:var(--brand,#0d2845)}
.gate-card .gd{font-size:.82rem;color:var(--muted,#6b7687);line-height:1.6}
.gi{font-size:1.7rem;line-height:1}
.gi.sm{font-size:1.1rem}
.backlink{background:none;border:0;color:var(--muted,#6b7687);font:inherit;cursor:pointer;padding:0 0 10px;font-size:.86rem}
.backlink:hover{color:var(--brand,#0d2845);text-decoration:underline}
@media(max-width:560px){.gate{padding:22px 16px}.gate-cards{grid-template-columns:1fr}}

/* ===== تبويبات لوحة الإدارة ===== */
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{padding:9px 16px;border:1px solid var(--line,#e4e8ee);background:#fff;border-radius:999px;
  cursor:pointer;font:inherit;color:var(--muted,#6b7687);font-weight:600;display:inline-flex;align-items:center;gap:7px}
.tab.on{background:var(--brand,#0d2845);border-color:var(--brand,#0d2845);color:#fff}
.tab .pill{background:rgba(0,0,0,.08);border-radius:999px;padding:1px 8px;font-size:.78rem}
.tab.on .pill{background:rgba(255,255,255,.2)}
.pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0 2px}
.pager .mini[disabled]{opacity:.45;cursor:default}
.stack>.card{box-shadow:none;border:1px solid var(--line,#e4e8ee);margin:12px 0 0}

/* ===== بطاقات العدّادات ولوحة المؤشرات ===== */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}
.statgrid .stat{background:#f7f9fc;border:1px solid var(--line,#e4e8ee);border-radius:14px;
  padding:14px 12px;text-align:center;display:flex;flex-direction:column;gap:4px}
.statgrid .stat b{font-size:1.6rem;color:var(--brand,#0d2845);line-height:1.1;font-variant-numeric:tabular-nums}
.statgrid .stat span{font-size:.8rem;color:var(--muted,#6b7687);line-height:1.5}
.statgrid .stat.ok{background:#eef7f1;border-color:#cfe6d8}
.statgrid .stat.ok b{color:#126b3f}
.statgrid .stat.bad{background:#fdf0f1;border-color:#f0d4d7}
.statgrid .stat.bad b{color:#a3232b}
.statgrid .stat.warn{background:#fff8ea;border-color:#f0e2c2}
.statgrid .stat.warn b{color:#8f6412}
.statgrid .stat.gold{background:#fdf6e7;border-color:#e8d6a8}
.statgrid .stat.gold b{color:#7a5a16}
.bar-row{display:grid;grid-template-columns:minmax(110px,30%) 1fr auto;align-items:center;gap:10px;padding:6px 0}
.bar-row .bl{font-size:.88rem;color:var(--ink,#0d2845)}
.bar-row .bt{background:#eef1f6;border-radius:999px;height:10px;overflow:hidden}
.bar-row .bt i{display:block;height:100%;background:linear-gradient(90deg,#c79a3f,#0d2845);border-radius:999px}
.bar-row b{font-variant-numeric:tabular-nums;color:var(--brand,#0d2845);min-width:28px;text-align:center}
.sumline .pill{background:#eef2f8;color:#3b4a63;border-radius:999px;padding:1px 9px;font-size:.78rem;margin-inline-start:6px}
@media(max-width:480px){.statgrid{grid-template-columns:repeat(2,1fr)}.statgrid .stat b{font-size:1.35rem}}
.hint-strong{color:#2b3a52;font-size:.9rem;margin:6px 0 14px;line-height:1.8}

/* ===== توحيد واجهة الدخول مع بقية أنظمة الكلية (CME والمحاضرات) ===== */
body.auth-mode{background:var(--brand,#0d2845)}
/* في صفحات الدخول: نخفي الشريط العلوي التعريفي والتذييل ليكون الدخول صفحة واحدة نظيفة
   مثل بقية أنظمة الكلية، مع إبقاء مبدّل اللغة في أعلى الصفحة */
body.auth-mode header.site .notice,body.auth-mode footer.site{display:none}
body.auth-mode header.site{background:transparent;border:0;box-shadow:none;position:absolute;
  inset-inline:0;inset-block-start:0;z-index:3}
body.auth-mode header.site .brand{opacity:0;pointer-events:none}
body.auth-mode #nav,body.auth-mode #authBtn{display:none}
body.auth-mode #view{min-height:100vh}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px;
  background:radial-gradient(1200px 600px at 50% -10%,#16365c 0%,#0d2845 45%,#081a2e 100%)}
.auth-card{width:min(560px,100%);background:#fff;border-radius:16px;overflow:hidden;
  border-top:4px solid var(--accent,#c79a3f);box-shadow:0 28px 70px -20px rgba(0,0,0,.55);padding:30px 28px 26px}
.auth-card .ah{text-align:center;margin-bottom:22px}
.auth-card .ah img{height:84px;object-fit:contain;margin-bottom:12px}
.auth-card .ah h1{margin:0 0 4px;font-size:1.3rem;color:var(--brand,#0d2845);line-height:1.5}
.auth-card .ah p{margin:0;color:var(--muted,#6b7687);font-size:.9rem}
.auth-card .ah .q{margin-top:14px;font-weight:600;color:var(--brand,#0d2845);font-size:.95rem}
.auth-card .f label,.auth-card label{font-weight:600;color:#2b3a52}
.auth-card .btn{width:100%;justify-content:center}
.auth-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#e4e8ee);
  text-align:center;font-size:.88rem;color:var(--muted,#6b7687)}
.auth-foot a{color:var(--brand,#0d2845);font-weight:600}
.auth-brandline{margin-top:16px;text-align:center;color:#8fa3bd;font-size:.8rem;line-height:1.8}

/* أبواب الدخول */
.gates{display:grid;gap:10px;margin-top:4px}
.gate-row{display:flex;align-items:center;gap:14px;width:100%;text-align:start;font:inherit;color:inherit;
  padding:15px 16px;border:1px solid var(--line,#e4e8ee);border-radius:14px;background:#fcfcfd;cursor:pointer;
  transition:.15s}
.gate-row:hover{border-color:var(--accent,#c79a3f);background:#fff;box-shadow:0 8px 20px -12px rgba(13,40,69,.45)}
.gate-row .ic{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:var(--brand,#0d2845);color:#fff;font-size:1.25rem}
.gate-row .tx{min-width:0}
.gate-row .tx b{display:block;color:var(--brand,#0d2845);font-size:1rem;margin-bottom:2px}
.gate-row .tx span{display:block;color:var(--muted,#6b7687);font-size:.83rem;line-height:1.6}
.gate-row .go{margin-inline-start:auto;color:var(--accent,#c79a3f);font-size:1.2rem}
@media(max-width:480px){.auth-card{padding:24px 18px}.gate-row{padding:13px 12px;gap:11px}
  .gate-row .ic{width:38px;height:38px;font-size:1.1rem}}

/* ===== الرئيسية: بطاقات مرقّمة ودليل أوضح ===== */
.hero .cards .c{position:relative;padding-top:34px}
.hero .cards .c i{position:absolute;inset-block-start:12px;inset-inline-start:14px;
  font-style:normal;font-size:1.25rem;color:var(--accent,#c79a3f);line-height:1}
.sechead{border-bottom:1px solid var(--line,#e4e8ee);padding-bottom:12px;margin-bottom:6px}
.helpbox{background:#fbfcfe}
.helpbox h3{margin-top:0}
.steps{list-style:none;counter-reset:gs;padding:0;margin:16px 0 0;display:grid;gap:12px}
.steps li{counter-increment:gs;position:relative;padding:14px 16px 14px 16px;padding-inline-start:60px;
  background:#fbfcfe;border:1px solid var(--line,#e4e8ee);border-radius:14px}
.steps li::before{content:counter(gs);position:absolute;inset-inline-start:14px;inset-block-start:14px;
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--brand,#0d2845);color:#fff;font-weight:700;font-size:.92rem;font-variant-numeric:tabular-nums}
.steps li b{display:block;color:var(--brand,#0d2845);margin-bottom:3px;font-size:1rem}
.steps li span{display:block;color:#51607a;font-size:.9rem;line-height:1.85}
@media(min-width:900px){.steps{grid-template-columns:1fr 1fr}}

/* ================= نظام الإجازات ================= */

/* حالات الطلب */
.b-substitute{background:#eef2f8;color:#3b4a63}
.b-head{background:var(--accent-l);color:#8a6a1d}
.b-assistant{background:#efe7fb;color:#5b3aa6}
.b-cancelled{background:var(--line-2);color:var(--ink-3)}

/* بطاقات الأرصدة */
.balgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.bal{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;
  border-top:4px solid var(--brand);display:flex;flex-direction:column;gap:9px;min-height:148px}
/* السطر الأخير يُثبَّت في أسفل البطاقة فتستوي كل البطاقات مهما اختلف محتواها */
.bal .lg{margin-top:auto}
.bal .bh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.bal .bh b{font-size:.95rem;color:var(--brand)}
.bal .bh .u{font-size:.74rem;color:var(--ink-3)}
.bal .big{font-size:1.9rem;font-weight:700;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums}
.bal .big small{font-size:.78rem;font-weight:600;color:var(--ink-3);margin-inline-start:4px}
.bal .meter{background:#eef1f6;border-radius:999px;height:9px;overflow:hidden}
.bal .meter i{display:block;height:100%;border-radius:999px;background:var(--brand)}
.bal .lg{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-3)}
.bal.none{border-top-color:var(--ink-3);opacity:.92}
.bal.none .big{font-size:1.05rem;color:var(--ink-2);font-weight:600}

/* سلسلة الموافقات */
.chain{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:9px}
.chain li{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:#fbfcfe}
.chain li .n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:#eef1f6;color:#64748b;font-weight:700;font-size:.85rem;border:2px solid #e4e8ee}
.chain li.done{background:#f1f8f4;border-color:#cfe6d8}
.chain li.done .n{background:#1f6b3a;color:#fff;border-color:#1f6b3a}
.chain li.now{background:#fff8ea;border-color:#e8d6a8}
.chain li.now .n{background:var(--brand);color:#fff;border-color:var(--accent);box-shadow:0 0 0 3px rgba(199,154,63,.22)}
.chain li.bad{background:var(--bad-l);border-color:#f3c9cb}
.chain li.bad .n{background:var(--bad);color:#fff;border-color:var(--bad)}
.chain .tx{min-width:0;flex:1}
.chain .tx b{display:block;font-size:.93rem;color:var(--brand)}
.chain .tx span{display:block;font-size:.83rem;color:var(--ink-2);line-height:1.7}
.chain .tx .nt{margin-top:5px;padding:7px 10px;background:#fff;border:1px solid var(--line);
  border-radius:8px;font-size:.84rem;white-space:pre-wrap;color:var(--ink)}
.chain .dt{font-size:.76rem;color:var(--ink-3);direction:ltr;text-align:end;white-space:nowrap}

/* بطاقة طلب في القوائم */
.rq{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;margin-bottom:10px;
  cursor:pointer;transition:.15s}
.rq:hover{border-color:var(--accent);box-shadow:0 8px 20px -14px rgba(13,40,69,.45)}
.rq .ty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  color:#fff;font-weight:700;font-size:.78rem;text-align:center;line-height:1.2;padding:3px}
.rq .mn{min-width:0}
.rq .mn b{display:block;font-size:.97rem;color:var(--brand);margin-bottom:2px}
.rq .mn span{display:block;font-size:.84rem;color:var(--ink-2)}
.rq .mn .ref{font-size:.76rem;color:var(--ink-3);direction:ltr;unicode-bidi:plaintext}
.rq .rt{text-align:end;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
@media(max-width:620px){
  .rq{grid-template-columns:auto 1fr;gap:11px}
  .rq .rt{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;width:100%}
}

/* شريط من في إجازة اليوم */
.today{display:flex;gap:9px;flex-wrap:wrap}
.today .p{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;
  padding:6px 13px;background:#fff;font-size:.85rem}
.today .p i{width:9px;height:9px;border-radius:50%;flex:0 0 auto;font-style:normal}

/* الإشعارات */
.bell{position:relative}
.bell .dot{position:absolute;top:4px;inset-inline-end:6px;width:9px;height:9px;background:#e11d48;
  border-radius:50%;font-style:normal;border:2px solid var(--brand)}
.drawer{position:fixed;inset-block:0;inset-inline-end:0;width:min(400px,92vw);background:#fff;z-index:60;
  box-shadow:-20px 0 50px -20px rgba(8,21,42,.4);display:flex;flex-direction:column}
.dr-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;
  background:var(--brand);color:#fff}
.dr-head .btn-ghost{padding:4px 11px}
.dr-body{flex:1;overflow:auto;padding:14px}
.scrim{position:fixed;inset:0;background:rgba(8,21,42,.45);z-index:55}
.nf{border:1px solid var(--line);border-inline-start:4px solid var(--accent);border-radius:10px;
  padding:11px 13px;margin-bottom:9px;background:#fcfcfd}
.nf.unseen{background:#fff8ea;border-inline-start-color:var(--brand)}
.nf b{display:block;font-size:.9rem;color:var(--brand);margin-bottom:3px}
.nf .bd{font-size:.84rem;color:var(--ink-2);line-height:1.75}
.nf .dt{font-size:.74rem;color:var(--ink-3);direction:ltr;margin-top:5px}

/* جدول مضغوط */
table.list td .sub{display:block;font-size:.76rem;color:var(--ink-3)}
.nowrap{white-space:nowrap}
.empty{text-align:center;padding:34px 16px;color:var(--ink-3)}
.empty .ic{font-size:2.4rem;display:block;margin-bottom:8px;opacity:.5}

/* صف فلاتر */
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}
.filters label.f{margin-bottom:0}

/* وحدة البصمة */
.fp-off{border:1px dashed #c3cfdf;border-radius:14px;padding:20px;text-align:center;background:#f8fafc}
.fp-off .ic{font-size:2rem;display:block;margin-bottom:8px;opacity:.6}

/* جداول متجاوبة على الموبايل */
@media(max-width:700px){
  table.list.resp thead{display:none}
  table.list.resp tr{display:block;border:1px solid var(--line);border-radius:12px;
    padding:10px 12px;margin-bottom:10px;background:#fff}
  table.list.resp td{display:grid;grid-template-columns:minmax(96px,38%) 1fr;gap:10px;
    border:0;padding:5px 0;align-items:baseline}
  table.list.resp td::before{content:attr(data-l);color:var(--ink-3);font-size:.79rem;font-weight:600}
  table.list.resp td:empty{display:none}
}

/* سمة hidden يجب أن تغلب على display في اللوح والحاجب */
.drawer[hidden],.scrim[hidden],[hidden]{display:none !important}

/* جدول «حقل: قيمة» — يعرض العنوان على كل الشاشات لا على الموبايل وحده */
table.kv{width:100%;border-collapse:collapse;font-size:.9rem}
table.kv th{width:34%;text-align:start;vertical-align:top;color:var(--ink-3);font-weight:600;
  font-size:.84rem;padding:10px 0 10px 10px;border-bottom:1px solid var(--line-2);white-space:nowrap}
table.kv td{padding:10px 0;border-bottom:1px solid var(--line-2);vertical-align:top;color:var(--ink)}
table.kv tr:last-child th,table.kv tr:last-child td{border-bottom:0}
@media(max-width:620px){
  table.kv th,table.kv td{display:block;width:auto;white-space:normal;border-bottom:0;padding:0}
  table.kv th{padding-top:11px;color:var(--ink-3)}
  table.kv td{padding-bottom:11px;border-bottom:1px solid var(--line-2)}
}

/* تنبيه تجاوز سقف التراكم */
.capnote{margin-top:2px;padding:9px 11px;border-radius:10px;background:#fdf6e4;
  border:1px solid #e8d9ae;color:#5a4612;font-size:.8rem;line-height:1.7}
.capnote b{color:#7a5c12}
.shared-note{font-size:.88rem;color:#2b3a52;line-height:1.75;margin:2px 0 4px}
.shared-note b{color:var(--brand)}

/* ===== لوحة الصلاحيات ===== */
.hint-inline{font-size:.74rem;font-weight:500;color:var(--ink-3)}
.permbox{margin:4px 0 14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe;padding:12px 14px}
.permbox>summary{cursor:pointer;font-weight:700;color:var(--brand);list-style:none}
.permbox>summary::-webkit-details-marker{display:none}
.permbox>summary::before{content:'▸';display:inline-block;margin-inline-end:7px;color:var(--accent);transition:.15s}
.permbox[open]>summary::before{transform:rotate(90deg)}
.presets{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.permgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:6px}
.permgroup h4{margin:0 0 7px;font-size:.84rem;color:var(--accent);font-weight:700}
.pcheck{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.86rem;color:#2b3a52;cursor:pointer;line-height:1.6}
.pcheck input{margin-top:3px;flex:0 0 auto;width:16px;height:16px}
/* النص يملأ ما تبقّى من السطر بدل أن ينكمش إلى عرض أطول كلمة */
.pcheck span{flex:1 1 auto;min-width:0}
.permgroup{min-width:0}
.credbox{background:#f6eedd;padding:3px 9px;border-radius:6px;font-weight:700;color:#5a4612}

/* لوحة تعديل المنتسب داخل الجدول */
tr.uerow>td{background:#fdf8ec;border-top:2px solid var(--accent);padding:16px}
.ueform .uehd{font-weight:700;color:var(--brand);margin-bottom:12px}
@media(max-width:900px){
  tr.uerow{display:block}
  tr.uerow>td{display:block}
  tr.uerow>td::before{content:none!important}
}

/* شريط بطاقات الدخول */
.cardbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  margin-top:14px;padding:13px 15px;border:1px solid #e8d9ae;background:#fdf8ec;border-radius:14px}
.cardbar b{display:block;color:var(--brand);margin-bottom:2px}
.cardbar .muted{font-size:.83rem;line-height:1.7;display:block;max-width:60ch}
.mini.ok{border-color:#bfe3dd;background:var(--ok-l);color:#14604f}
