/* منصّة علامة — نظام التصميم: تباعد 4px · طبقات ظلال · تباين WCAG · كل الأصناف محفوظة */
:root{
  --gold:#C8A06B;--gold-dark:#a9824f;--cream:#FAF7F2;--ink:#1A1A1A;--paper:#fff;
  --line:#E9DEC9;--line-soft:#F0E8D8;--muted:#6b5c43;
  --fs-xs:.7rem;--fs-sm:.75rem;--fs-md:.82rem;--fs-base:.9rem;--fs-lg:1rem;--fs-xl:1.15rem;--soft:#F4ECDC;--soft-2:#FBF6EC;
  --t0:#1A1A1A;--tA:#C8A06B;--tB:#7A8B6F;--tC:#9C6B4A;
  --crit:#a8442f;--crit-bg:#FBEEE9;--ok:#2E7D32;--ok-bg:#E7F0E7;--warn:#B07A1E;--warn-bg:#F8EFD9;--blue:#35608F;--blue-bg:#E4EBF3;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;
  --r-sm:7px;--r:10px;--r-lg:14px;--r-xl:18px;
  --e1:0 1px 2px rgba(26,26,26,.06),0 1px 3px rgba(26,26,26,.04);
  --e2:0 2px 6px rgba(26,26,26,.07),0 1px 3px rgba(26,26,26,.05);
  --e3:0 8px 24px rgba(26,26,26,.10),0 2px 6px rgba(26,26,26,.06);
  --e4:0 20px 50px rgba(26,26,26,.22);
  --ring:0 0 0 3px rgba(200,160,107,.35);--t:.18s cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'IBM Plex Sans Arabic',system-ui,sans-serif;background:var(--cream);color:var(--ink);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:1500px;margin:0 auto;padding:0 var(--s5)}
.hidden{display:none!important}
::selection{background:rgba(200,160,107,.25)}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}
::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#d9cbb0;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#c7b594;background-clip:content-box}
#login{position:fixed;inset:0;background:radial-gradient(circle at 30% 20%,#fff 0,var(--cream) 60%);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--s5)}
.lcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s10) var(--s8);width:400px;max-width:100%;box-shadow:var(--e4);text-align:center;animation:rise .5s cubic-bezier(.2,.8,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.lcard .eb{color:var(--gold-dark);font-weight:700;font-size:var(--fs-md);letter-spacing:.08em}
.lcard h1{font-size:1.35rem;margin-top:var(--s2);font-weight:700;letter-spacing:-.01em}
.lcard p{font-size:var(--fs-base);color:var(--muted);margin:var(--s2) 0 var(--s6)}
.gbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--s3);background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:13px;font-family:inherit;font-weight:600;font-size:var(--fs-base);cursor:pointer;transition:var(--t);box-shadow:var(--e1)}
.gbtn:hover{border-color:var(--gold);box-shadow:var(--e2);transform:translateY(-1px)}
.gbtn:active{transform:translateY(0)}
.lerr{color:var(--crit);font-size:var(--fs-md);margin-top:var(--s4);display:none;background:var(--crit-bg);padding:var(--s2) var(--s3);border-radius:var(--r-sm)}
.lmute{font-size:var(--fs-md);color:var(--muted);margin-top:var(--s4)}
header{background:linear-gradient(180deg,#1f1d18,var(--ink));color:#fff;padding:var(--s4) 0;box-shadow:var(--e2)}
.htop{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.brand .eb{color:var(--gold);font-weight:600;font-size:var(--fs-xs);letter-spacing:.05em;opacity:.9}
.brand h1{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.01em;margin-top:1px}
.hright{margin-inline-start:auto;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.usr{font-size:var(--fs-md);color:#cdbfa6}.usr b{color:#fff;font-weight:600}
.rolechip{font-size:var(--fs-sm);font-weight:700;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;padding:4px 12px;border-radius:999px;box-shadow:var(--e1)}
.hbtn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;border-radius:var(--r-sm);padding:7px 13px;font-family:inherit;font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:var(--t)}
.hbtn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3)}
.hbtn:active{transform:translateY(1px)}
select.csel{font-family:inherit;border:1px solid #3a3528;background:#26241f;color:#fff;border-radius:var(--r-sm);padding:7px 11px;font-size:var(--fs-md);font-weight:600;cursor:pointer}
.bar2{background:rgba(255,255,255,.85);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;padding:var(--s3) 0}
.tg{display:flex;gap:var(--s2);align-items:center;font-size:var(--fs-md);font-weight:600;color:var(--muted)}
.tg input[type=date]{font-family:inherit;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:6px 9px;font-size:var(--fs-md);color:var(--ink);transition:var(--t)}
.tg input[type=date]:hover{border-color:var(--gold)}
.kpis{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s3)}
.kpi{position:relative;padding-inline-start:var(--s3)}
.kpi::before{content:'';position:absolute;inset-inline-start:0;top:3px;bottom:3px;width:3px;border-radius:3px;background:var(--gold);opacity:.5}
.kpi.crit::before{background:var(--crit)}.kpi.blk::before{background:var(--warn)}.kpi.cl::before{background:var(--crit)}.kpi.al::before{background:var(--blue)}
.kpi b{display:block;font-size:1.3rem;font-weight:700;line-height:1.1;color:var(--ink);letter-spacing:-.02em}
.kpi.crit b{color:var(--crit)}.kpi.blk b{color:var(--warn)}.kpi.cl b{color:var(--crit)}.kpi.al b{color:var(--blue)}
.kpi span{font-size:var(--fs-xs);color:var(--muted);font-weight:500}
.lifebadge{font-size:var(--fs-sm);font-weight:700;padding:5px 13px;border-radius:999px;background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.lifebadge.active{background:var(--ok-bg);color:var(--ok);border-color:#c5dcc5}
.lifebadge.proposal{background:var(--warn-bg);color:var(--warn);border-color:#ecdcb6}
.warn{margin:var(--s3) 0;padding:var(--s3) var(--s4);border-radius:var(--r);background:var(--crit-bg);border:1px solid #ecc9bf;border-inline-start:4px solid var(--crit);color:var(--crit);font-size:var(--fs-md);display:none;line-height:1.7}
.warn.show{display:block;animation:rise .3s ease}
.tabs{display:flex;gap:var(--s1);margin-top:var(--s5);flex-wrap:wrap;border-bottom:1px solid var(--line)}
.tab{font-family:inherit;font-size:var(--fs-base);font-weight:600;padding:11px 17px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px;transition:var(--t);border-radius:var(--r-sm) var(--r-sm) 0 0}
.tab:hover{color:var(--ink);background:var(--soft-2)}
.tab.active{color:var(--ink);border-bottom-color:var(--gold)}
.hintbar{font-size:var(--fs-sm);color:var(--muted);padding:var(--s2) 2px;display:flex;align-items:center;gap:6px}
#host{padding:var(--s4) 0 var(--s10);animation:fade .25s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s3);margin-bottom:var(--s4)}
.dcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);text-align:center;transition:var(--t);box-shadow:var(--e1)}
.dcard:hover{box-shadow:var(--e2);transform:translateY(-2px)}
.dcard b{display:block;font-size:1.85rem;font-weight:700;line-height:1;letter-spacing:-.02em}
.dcard span{font-size:var(--fs-sm);color:var(--muted);margin-top:5px;display:block}
.dcard.ok b{color:var(--ok)}.dcard.blue b{color:var(--blue)}.dcard.crit b{color:var(--crit)}.dcard.warn b{color:var(--warn)}
.dprog{height:11px;background:var(--soft);border-radius:999px;overflow:hidden;margin-bottom:var(--s5);box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.dprog-fill{height:100%;background:linear-gradient(90deg,var(--gold-dark),var(--gold));border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.dcols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:var(--s4)}
.dbox{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--e1)}
.dbox h4{font-size:var(--fs-base);font-weight:700;margin-bottom:var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px}
.dbox.alerts{border-color:#ecc9bf;background:linear-gradient(180deg,#fffaf8,#fff)}
.tlist{list-style:none;display:flex;flex-direction:column;gap:var(--s2)}
.tlist li{font-size:var(--fs-md);display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:5px 0;border-bottom:1px solid var(--line-soft)}
.tlist li:last-child{border-bottom:none}
.tlist li.empty{color:var(--muted);font-style:italic;border:none}
.tlist em{color:var(--muted);font-size:var(--fs-sm);font-style:normal}
.tlist .md{color:var(--gold-dark)}
.tgw{font-weight:700;font-size:var(--fs-xs);color:var(--tc);background:color-mix(in srgb,var(--tc) 14%,#fff);padding:2px 7px;border-radius:6px}
.ministat{font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}
.ministat.s-notstarted{background:#ede7da;color:var(--muted)}.ministat.s-inprogress{background:var(--blue-bg);color:var(--blue)}
.ministat.s-blocked{background:var(--crit-bg);color:var(--crit)}.ministat.s-done{background:var(--ok-bg);color:var(--ok)}
.alert{padding:8px 11px;border-radius:var(--r-sm);font-size:var(--fs-md);line-height:1.5}
.alert.a-client{background:var(--crit-bg);color:var(--crit)}.alert.a-alamah{background:var(--blue-bg);color:var(--blue)}.alert.a-blocked{background:var(--warn-bg);color:var(--warn)}
.lockbar{background:var(--soft);border:1px solid var(--line);border-inline-start:4px solid var(--gold);border-radius:var(--r);padding:10px 14px;font-size:var(--fs-md);font-weight:600;margin-bottom:var(--s3);display:flex;align-items:center;gap:var(--s3)}
.tablewrap{overflow:auto;max-height:calc(100vh - 230px);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e1)}
table#tbl{border-collapse:collapse;width:100%;min-width:1080px;font-size:var(--fs-md)}
#tbl th{background:var(--ink);color:#fff;font-weight:600;padding:11px 7px;text-align:center;position:sticky;top:0;white-space:nowrap;font-size:var(--fs-sm);letter-spacing:.01em}
#tbl td{border-bottom:1px solid var(--line-soft);padding:5px;text-align:center;vertical-align:middle}
#tbl tr.grp td{background:var(--soft);font-weight:700;text-align:right;padding:9px 14px;font-size:var(--fs-md);color:var(--ink)}
#tbl tbody tr:not(.grp):hover td{background:var(--soft-2)}
#tbl tr.crit td{background:#fdf4f2}
#tbl tr.crit:hover td{background:#fbece8}
input.cell,select.cell{font-family:inherit;border:1px solid transparent;border-radius:var(--r-sm);padding:5px 6px;font-size:var(--fs-md);background:transparent;width:100%;text-align:center;transition:var(--t);color:var(--ink)}
input.cell:hover,select.cell:hover{border-color:var(--line);background:#fff}
input.cell:focus,select.cell:focus{border-color:var(--gold);background:#fff;outline:none;box-shadow:var(--ring)}
input.cell:disabled,select.cell:disabled{color:var(--ink);opacity:.85;cursor:default;-webkit-text-fill-color:var(--ink)}
.iname{text-align:right;min-width:200px}.inum{width:52px}.iprog{width:50px}
.idcell{font-weight:700;font-size:var(--fs-sm);color:var(--tc);background:color-mix(in srgb,var(--tc) 14%,#fff);padding:3px 7px;border-radius:6px;white-space:nowrap}
.critdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--crit);margin-inline-start:4px;vertical-align:middle;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(168,68,47,.3)}
.dt{font-size:var(--fs-sm);color:#4a4233;white-space:nowrap;font-variant-numeric:tabular-nums}.dt.s{color:var(--muted)}
select.st{font-weight:600;border-radius:var(--r-sm);font-size:var(--fs-sm);padding:4px;border:1px solid var(--line);font-family:inherit;cursor:pointer;transition:var(--t)}
select.st:hover{border-color:var(--gold)}
.st-notstarted{color:var(--muted)}.st-inprogress{color:var(--blue)}.st-blocked{color:var(--crit)}.st-done{color:var(--ok)}
.delay{font-size:var(--fs-sm);font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap}
.delay.client{background:var(--crit-bg);color:var(--crit)}.delay.alamah{background:var(--blue-bg);color:var(--blue)}.delay.none{color:#c2b59a}
.reqbtn{font-family:inherit;font-size:var(--fs-sm);font-weight:600;border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:4px 10px;cursor:pointer;transition:var(--t);color:var(--ink)}
.reqbtn:hover{border-color:var(--gold);background:var(--soft-2)}
.reqcell{font-size:var(--fs-sm);color:var(--muted)}
.gctrl{display:flex;gap:var(--s2);align-items:center;margin-bottom:var(--s3);flex-wrap:wrap}
.zoom{display:flex;gap:var(--s1)}
.zb{width:32px;height:32px;border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-lg);font-weight:700;color:var(--ink);transition:var(--t);box-shadow:var(--e1)}
.zb:hover{border-color:var(--gold);background:var(--soft-2)}.zb:active{transform:translateY(1px)}
.gantt{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--e1)}.gscroll{overflow-x:auto}
.thead{position:relative;height:50px;border-bottom:2px solid var(--line);background:var(--soft)}
.corner{position:absolute;right:0;top:0;width:280px;height:100%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-weight:600;font-size:var(--fs-md);z-index:6}
.corner .dir{font-size:.58rem;color:var(--gold);opacity:.9}
.tl{position:absolute;right:280px;top:0;left:0;height:100%}
.mhead{position:absolute;top:0;height:25px;border-inline-start:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-sm);color:#4a4233}
.whead{position:absolute;top:25px;height:25px;border-inline-start:1px solid var(--line-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.whead b{font-size:.58rem;color:var(--muted)}.whead s{font-size:.54rem;color:#b8a988;text-decoration:none}
.grow{position:relative;display:flex;height:38px;border-bottom:1px solid var(--line-soft);transition:background var(--t)}
.grow:not(.grp):hover{background:var(--soft-2)}
.grow.grp{height:32px;background:var(--soft)}
.glbl{width:280px;flex:none;display:flex;align-items:center;gap:7px;padding:0 13px;font-size:var(--fs-md);background:var(--paper);position:sticky;right:0;z-index:5;border-inline-start:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grow:not(.grp):hover .glbl{background:var(--soft-2)}
.grow.grp .glbl{font-weight:700;background:var(--soft)}
.gw{font-weight:700;font-size:var(--fs-xs);color:var(--tc);background:color-mix(in srgb,var(--tc) 14%,#fff);padding:2px 7px;border-radius:5px;flex:none}
.sdot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 0 2px #fff}
.sdot.notstarted{background:#c2b59a}.sdot.inprogress{background:var(--blue)}.sdot.blocked{background:var(--crit)}.sdot.done{background:var(--ok)}
.glane{position:relative;flex:1}
.gbar{position:absolute;top:8px;height:22px;border-radius:7px;overflow:hidden;box-shadow:var(--e1);min-width:6px;transition:filter var(--t)}
.gbar:hover{filter:brightness(1.06) saturate(1.1)}
.gbar .fill{position:absolute;inset:0 auto 0 0;height:100%;background:rgba(0,0,0,.26)}
.gbar.notstarted{opacity:.5}.gbar.blocked{box-shadow:0 0 0 2px var(--crit),var(--e1)}
.gbar.cont{background:repeating-linear-gradient(90deg,var(--tC),var(--tC) 7px,#b98a64 7px,#b98a64 14px)!important}
.blbar{position:absolute;bottom:1px;height:4px;background:#a99;opacity:.55;border-radius:2px}
.blleg{width:18px;height:4px;background:#a99;opacity:.6;display:inline-block;margin-inline-end:5px;vertical-align:middle}
.gdur{position:absolute;top:10px;font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}.gdur.inside{color:#fff;font-weight:600;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.gmile{position:absolute;top:4px;z-index:3;display:flex;align-items:center;gap:4px}
.gmile .md{font-size:var(--fs-xl);color:var(--gold-dark);filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.gmile.crit .md{color:var(--crit)}
.gmile .ml{font-size:.62rem;font-weight:700;color:var(--muted);background:rgba(255,255,255,.9);padding:1px 4px;border-radius:4px;white-space:nowrap}
.vg{position:absolute;top:0;bottom:0;width:1px;background:var(--line-soft)}
.today{position:absolute;top:0;bottom:0;width:2px;background:var(--blue);z-index:4}
.today span{position:absolute;top:2px;right:3px;font-size:.6rem;color:#fff;font-weight:700;background:var(--blue);padding:1px 5px;border-radius:4px;white-space:nowrap;box-shadow:var(--e1)}
.glegend{display:flex;gap:var(--s4);flex-wrap:wrap;padding:13px var(--s4);border-top:1px solid var(--line);background:var(--soft);font-size:var(--fs-sm);align-items:center}
.glegend>span{display:flex;align-items:center}
.glegend .di{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--gold-dark);display:inline-block;margin-inline-end:5px;transform:translateY(-2px)}
.glegend .ci{width:18px;height:9px;border-radius:3px;display:inline-block;box-shadow:0 0 0 1.5px var(--crit);margin-inline-end:5px;vertical-align:middle}
.glegend .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-inline-end:5px;vertical-align:middle}
.dwrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e1)}
.dtbl{border-collapse:collapse;width:100%;font-size:var(--fs-md);min-width:760px}
.dtbl th{background:linear-gradient(180deg,var(--gold),var(--gold-dark));color:#fff;padding:11px;font-weight:600;font-size:var(--fs-md);text-align:right}
.dtbl td{border-bottom:1px solid var(--line-soft);padding:10px 12px;text-align:right}
.dtbl tbody tr:hover td{background:var(--soft-2)}
.dtbl tr.m td{background:var(--soft);font-weight:700}
.pill{font-size:var(--fs-sm);font-weight:600;color:#fff;padding:3px 10px;border-radius:999px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s4);margin-top:var(--s2)}
.pcard{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--cc);border-radius:var(--r-lg);padding:var(--s5);cursor:pointer;transition:var(--t);box-shadow:var(--e1);position:relative;overflow:hidden}
.pcard::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--cc) 6%,transparent),transparent 60%);pointer-events:none}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--e3);border-color:color-mix(in srgb,var(--cc) 40%,var(--line))}
.pcard:active{transform:translateY(-1px)}
.pcard-top{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}
.pdot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--cc) 18%,#fff)}
.pcard-top h3{font-size:var(--fs-xl);font-weight:700;flex:1;letter-spacing:-.01em}
.plife{font-size:var(--fs-xs);font-weight:700;color:var(--muted);background:var(--soft);padding:3px 10px;border-radius:999px;border:1px solid var(--line)}
.pcard-meta{display:flex;gap:var(--s3);font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--s3)}
.pbar{height:8px;background:var(--soft);border-radius:999px;overflow:hidden;margin-bottom:var(--s3);box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.pbar-fill{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--cc) 70%,#000 5%),var(--cc));border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.pstats{display:flex;gap:var(--s4);font-size:var(--fs-md)}.pstats b{font-size:var(--fs-xl);font-weight:700;display:block;letter-spacing:-.01em}.pstats span{color:var(--muted);font-size:var(--fs-sm)}.pstats .red b{color:var(--crit)}
.pempty{font-size:var(--fs-md);color:var(--muted);font-style:italic;padding:var(--s2) 0}
.crwrap{display:grid;grid-template-columns:330px 1fr;gap:var(--s4)}
.crform{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);align-self:start;display:flex;flex-direction:column;gap:var(--s2);box-shadow:var(--e1);position:sticky;top:120px}
.crform h4{font-size:var(--fs-base);margin-bottom:var(--s1)}
.crform select,.crform input,.crform textarea{font-family:inherit;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px;font-size:var(--fs-md);width:100%;transition:var(--t);color:var(--ink)}
.crform select:focus,.crform input:focus,.crform textarea:focus{border-color:var(--gold);outline:none;box-shadow:var(--ring)}
.crform textarea{min-height:72px;resize:vertical}
.crlist{display:flex;flex-direction:column;gap:var(--s3)}
.crcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3) var(--s4);box-shadow:var(--e1);transition:var(--t)}
.crcard:hover{box-shadow:var(--e2)}
.crhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s2)}
.crid{font-weight:700;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.crstate{font-size:var(--fs-sm);font-weight:700;padding:3px 11px;border-radius:999px}
.crstate.pending{background:var(--warn-bg);color:var(--warn)}.crstate.approved{background:var(--ok-bg);color:var(--ok)}.crstate.rejected{background:var(--crit-bg);color:var(--crit)}
.crbody{font-size:var(--fs-md);line-height:1.75}.crbody small{color:var(--muted)}
.cract{display:flex;gap:var(--s2);margin-top:var(--s3)}
.rqoverlay,#accessOverlay{position:fixed;inset:0;background:rgba(26,26,26,.55);backdrop-filter:blur(3px);z-index:120;display:none;align-items:flex-start;justify-content:center;padding:var(--s10) var(--s4);overflow:auto}
.rqmodal,#accessOverlay>div{background:#fff;border-radius:var(--r-lg);max-width:880px;width:100%;box-shadow:var(--e4);animation:rise .3s cubic-bezier(.2,.8,.2,1)}
.rqhd,#accessOverlay .mhd{background:var(--ink);color:#fff;padding:var(--s4) var(--s5);border-radius:var(--r-lg) var(--r-lg) 0 0;display:flex;justify-content:space-between;align-items:center}
.rqtbl{width:100%;border-collapse:collapse;font-size:var(--fs-md)}
.rqtbl th{background:var(--soft);padding:8px 5px;font-weight:600;font-size:var(--fs-sm);border:1px solid var(--line)}
.rqtbl td{border:1px solid var(--line);padding:4px;text-align:center}
.rqtbl .rq{font-family:inherit;border:1px solid transparent;background:transparent;border-radius:5px;padding:4px;font-size:var(--fs-sm);width:100%;text-align:center;transition:var(--t);color:var(--ink)}
.rqtbl .rq:hover{border-color:var(--line);background:var(--soft-2)}
.rqtbl .rq:focus{border-color:var(--gold);outline:none;box-shadow:var(--ring)}
.rstate{font-size:var(--fs-xs);font-weight:700;padding:2px 7px;border-radius:5px;white-space:nowrap}
.rstate.received{background:var(--ok-bg);color:var(--ok)}.rstate.pending{background:var(--warn-bg);color:var(--warn)}.rstate.overdue{background:var(--crit-bg);color:var(--crit)}.rstate.notrequested{background:#ede7da;color:var(--muted)}.rstate.latejust{background:#f0e0d6;color:#9a5a2a}
.ib{border:none;background:transparent;cursor:pointer;font-size:var(--fs-base);padding:3px 6px;border-radius:5px;transition:var(--t)}
.ib:hover{background:var(--crit-bg)}
.empty{color:var(--muted);font-style:italic}
#toastWrap{position:fixed;bottom:var(--s5);inset-inline-start:var(--s5);z-index:300;display:flex;flex-direction:column;gap:var(--s2);pointer-events:none}
.toast{background:var(--ink);color:#fff;padding:11px 16px;border-radius:var(--r);font-size:var(--fs-base);font-weight:500;box-shadow:var(--e3);display:flex;align-items:center;gap:9px;animation:toastIn .3s cubic-bezier(.2,.8,.2,1);max-width:360px}
.toast.ok{background:var(--ok)}.toast.err{background:var(--crit)}.toast.warn{background:var(--warn)}
.toast.out{animation:toastOut .3s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(-20px)}}
.loader{position:fixed;inset:0;background:var(--cream);display:flex;align-items:center;justify-content:center;z-index:150;flex-direction:column;gap:var(--s4)}
.spin{width:42px;height:42px;border:3px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
footer{text-align:center;color:var(--muted);font-size:var(--fs-md);padding:var(--s4) 0 var(--s8)}footer b{color:var(--gold-dark)}
@media(max-width:1100px){.crwrap{grid-template-columns:280px 1fr}}
@media(max-width:900px){.dcols{grid-template-columns:1fr}.crwrap{grid-template-columns:1fr}.crform{position:static}.kpis{gap:var(--s4)}}
@media(max-width:640px){.wrap{padding:0 var(--s3)}.brand h1{font-size:var(--fs-lg)}.kpi b{font-size:var(--fs-xl)}.dgrid{grid-template-columns:repeat(2,1fr)}.dcard b{font-size:1.5rem}.tab{padding:9px 12px;font-size:var(--fs-md)}.pgrid{grid-template-columns:1fr}.hright{gap:var(--s2)}.usr{display:none}}
@media print{.bar2,.tabs,.gctrl,.reqbtn,.hbtn{display:none}header{-webkit-print-color-adjust:exact;print-color-adjust:exact}.gbar,.dprog-fill,.pbar-fill{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* نوافذ الحوار المخصّصة */
.dlg-l{display:block;font-size:var(--fs-md);font-weight:600;color:var(--ink);margin-bottom:12px}
.dlg-i{display:block;width:100%;margin-top:5px;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px;font-family:inherit;font-size:var(--fs-base);color:var(--ink);transition:var(--t)}
.dlg-i:focus{border-color:var(--gold);outline:none;box-shadow:var(--ring)}
textarea.dlg-i{min-height:80px;resize:vertical}
/* تمرير التبويبات على الموبايل */
@media(max-width:760px){
  .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;flex:none}
}
/* مؤشّر سياق العميل في الرأس */
.brand h1{display:flex;align-items:center;gap:8px}
.ctx-dot{width:11px;height:11px;border-radius:50%;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
/* الحالة الفارغة بدعوة فعل */
.empty-cta{text-align:center;padding:48px 20px;background:var(--paper);border:1.5px dashed var(--line);border-radius:var(--r-lg)}
.empty-cta .ico{font-size:2.4rem;opacity:.5;margin-bottom:10px}
.empty-cta h3{font-size:var(--fs-lg);margin-bottom:6px}
.empty-cta p{font-size:var(--fs-base);color:var(--muted);margin-bottom:18px}
.empty-cta button{background:var(--gold);border:none;color:#fff;border-radius:var(--r);padding:11px 22px;font-family:inherit;font-weight:600;font-size:var(--fs-base);cursor:pointer;transition:var(--t);box-shadow:var(--e1)}
.empty-cta button:hover{background:var(--gold-dark);box-shadow:var(--e2)}
/* طبقة القرار DOL */
.dec-type{font-size:var(--fs-xs);font-weight:700;color:#fff;padding:2px 9px;border-radius:999px}
.dim-chip{display:inline-block;font-size:var(--fs-sm);background:var(--soft-2);border:1px solid var(--line);border-radius:7px;padding:3px 9px;margin:2px}
.dim-chip b{color:var(--ink)}.dim-chip i{color:var(--muted);font-style:normal;font-size:var(--fs-xs)}
.gate-card{background:var(--paper);border:1px solid var(--line);border-inline-start:4px solid var(--gc);border-radius:var(--r-lg);padding:16px;margin-bottom:14px;box-shadow:var(--e1)}
.gate-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.gate-title{font-size:var(--fs-lg);margin:0 8px}
.gate-acts{display:flex;gap:6px;align-items:center}
.gate-rationale{font-size:var(--fs-md);color:#4a4233;background:var(--soft-2);border-radius:8px;padding:8px 11px;margin-bottom:10px}
.gate-bounds{margin-bottom:8px}
.gate-btext{font-size:var(--fs-md);color:var(--muted);font-style:italic;border-inline-start:2px solid var(--line);padding-inline-start:9px;margin-bottom:10px}
.gate-ops{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:10px;border-top:1px dashed var(--line)}
.op-card{display:flex;align-items:center;gap:8px;background:var(--soft-2);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:var(--fs-md)}
.op-card b{font-weight:600}
.dol-empty-ops{font-size:var(--fs-md);color:var(--muted);font-style:italic;padding:4px 2px}
.dev-badge{font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:6px}
.dev-badge.ok{background:var(--ok-bg);color:var(--ok)}.dev-badge.warning{background:var(--warn-bg);color:var(--warn)}.dev-badge.breach{background:var(--crit-bg);color:var(--crit)}
.trace-node{background:var(--soft-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:var(--fs-md)}
.trace-arrow{text-align:center;color:var(--gold-dark);font-weight:700;margin:3px 0}
/* مستورد Excel */
.imp-hint{background:var(--soft-2);border:1px solid var(--line);border-radius:10px;padding:13px 15px;font-size:var(--fs-md);line-height:1.9;margin-bottom:14px}
.imp-hint b{color:var(--gold-dark)}
.imp-col{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:var(--fs-sm);margin:1px}
.imp-hint small{color:var(--muted);display:block;margin-top:6px}
.imp-drop{display:block;border:2px dashed var(--line);border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:var(--t);background:#fff}
.imp-drop:hover{border-color:var(--blue);background:var(--soft-2)}
.imp-drop-txt{font-size:var(--fs-base);font-weight:600;color:var(--blue)}
.imp-summary{background:var(--ok-bg);border:1px solid #c5dcc5;border-radius:9px;padding:11px 14px;font-size:var(--fs-base);margin:12px 0;color:#1e5620}
.imp-ok{color:var(--ok);font-size:var(--fs-md);padding:6px 0}
.imp-warn{background:var(--warn-bg);border:1px solid #ecdcb6;border-radius:9px;padding:11px 14px;font-size:var(--fs-md);margin:10px 0}
.imp-warn ul{margin:6px 18px 0;padding:0}.imp-warn li{margin-bottom:3px}
.imp-err{background:var(--crit-bg);border:1px solid #ecc9bf;border-inline-start:4px solid var(--crit);border-radius:9px;padding:13px 15px;font-size:var(--fs-base);color:var(--crit);line-height:1.8;margin:10px 0}
.imp-tablewrap{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:9px;margin:12px 0}
.imp-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}
.imp-table th{background:var(--soft);padding:7px 9px;position:sticky;top:0;font-weight:600;text-align:right}
.imp-table td{border-top:1px solid var(--line-soft);padding:6px 9px;text-align:right}
.imp-table tfoot td{color:var(--muted);font-style:italic;text-align:center}
.imp-actions{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap}
/* أدوات المحفظة + دورة الحياة + التدقيق (المرحلة 1) */
.portfolio-tools{display:flex;gap:8px;margin-inline-start:auto;flex-wrap:wrap}
.pcard-top{position:relative}
.pcard-menu{position:absolute;inset-inline-end:0;top:0;background:none;border:none;font-size:1.2rem;color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:6px;line-height:1}
.pcard-menu:hover{background:var(--soft-2);color:var(--ink)}
.arch-sec{font-size:var(--fs-base);color:var(--gold-dark);margin:16px 0 8px;font-weight:700}
.arch-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 15px;margin-bottom:8px}
.arch-row.pending{border-inline-start:4px solid var(--crit)}
.arch-badge{display:inline-block;font-size:var(--fs-xs);background:var(--soft-2);color:var(--muted);padding:2px 9px;border-radius:999px;margin-inline-start:8px}
.arch-badge.crit{background:var(--crit-bg);color:var(--crit);font-weight:700}
.arch-acts{display:flex;gap:7px;align-items:center}
.arch-note{font-size:var(--fs-sm);color:var(--muted);font-style:italic}
.hbtn.ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.audit-table{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.audit-row{display:grid;grid-template-columns:140px 90px 1fr 150px;gap:10px;align-items:center;background:var(--paper);padding:9px 14px;font-size:var(--fs-md)}
.audit-row:hover{background:var(--soft-2)}
.audit-act{font-weight:700;color:var(--ink)}
.audit-act.crit{color:var(--crit)}
.audit-ent{color:var(--muted);font-size:var(--fs-sm)}
.audit-detail{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audit-time{color:var(--muted);font-size:var(--fs-sm);text-align:end}
@media(max-width:640px){.audit-row{grid-template-columns:1fr 1fr;gap:4px}.audit-detail,.audit-time{grid-column:span 2}}
/* المرحلة 2: تعدد المشاريع + الفلترة + التنبيهات */
.pfilters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.pfilter{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:var(--fs-md);font-weight:600;color:var(--muted);cursor:pointer;transition:var(--t);font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.pfilter:hover{border-color:var(--gold);color:var(--ink)}
.pfilter.active{background:var(--ink);border-color:var(--ink);color:#fff}
.pfilter-n{background:var(--soft-2);color:var(--ink);border-radius:999px;padding:0 7px;font-size:var(--fs-sm);min-width:18px;text-align:center}
.pfilter.active .pfilter-n{background:rgba(255,255,255,.25);color:#fff}
.pcard-proj{font-size:var(--fs-md);color:var(--gold-dark);font-weight:600;margin:2px 0 8px;padding-inline-start:18px}
.palerts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;padding-inline-start:18px}
.palert{font-size:var(--fs-xs);font-weight:700;padding:2px 9px;border-radius:999px}
.palert.red{background:var(--crit-bg);color:var(--crit)}
.palert.amber{background:var(--warn-bg);color:var(--warn)}
.palert.blue{background:#e8eef5;color:var(--blue)}
/* جانت المحفظة (المرحلة 4) */
.pg-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px;font-size:var(--fs-md);color:var(--muted)}
.pg-leg{display:inline-flex;align-items:center;gap:5px}
.pg-leg i{width:13px;height:13px;border-radius:3px;display:inline-block}
.pg-leg-today{width:2px!important;height:14px!important;background:var(--crit);border-radius:0!important}
.pg-chart{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper)}
.pg-axis{display:flex;border-bottom:2px solid var(--line);background:var(--soft-2)}
.pg-axis-label{width:230px;flex-shrink:0;border-inline-end:1px solid var(--line)}
.pg-axis-track{position:relative;flex:1;height:30px}
.pg-week{position:absolute;top:7px;font-size:var(--fs-xs);color:var(--muted);transform:translateX(50%)}
.pg-today{position:absolute;top:0;bottom:-9999px;width:2px;background:var(--crit);z-index:5}
.pg-rows{position:relative}
.pg-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:var(--t);min-height:62px}
.pg-row:hover{background:var(--soft-2)}
.pg-label{width:230px;flex-shrink:0;padding:10px 14px;border-inline-end:1px solid var(--line)}
.pg-client{font-size:var(--fs-md);font-weight:700;display:flex;align-items:center;gap:6px}
.pg-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.pg-pname{font-size:var(--fs-md);color:var(--gold-dark);margin:2px 0;font-weight:600}
.pg-meta{font-size:var(--fs-xs);color:var(--muted)}
.pg-track{position:relative;flex:1;min-height:62px}
.pg-bar{position:absolute;top:50%;transform:translateY(-50%);height:26px;border-radius:7px;box-shadow:var(--e1);overflow:hidden;min-width:30px;display:flex;align-items:center}
.pg-bar-fill{position:absolute;inset-inline-start:0;top:0;bottom:0;background:rgba(255,255,255,.32)}
.pg-bar-txt{position:relative;font-size:var(--fs-xs);font-weight:700;color:#fff;padding:0 8px;white-space:nowrap;z-index:2;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.pg-date{position:absolute;top:2px;font-size:.62rem;color:var(--muted);white-space:nowrap}
.pg-date-s{transform:translateX(50%)}
.pg-date-e{transform:translateX(50%)}
@media(max-width:640px){.pg-label,.pg-axis-label{width:130px}.pg-meta{display:none}}
/* طلبات العميل (المرحلة 3) */
.rq-card{margin-bottom:10px}
.rq-badge{font-size:var(--fs-xs);font-weight:700;padding:2px 9px;border-radius:999px;margin-inline-start:8px}
.rq-tags{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0}
.rq-tag{font-size:var(--fs-xs);background:var(--soft-2);color:var(--ink-soft);padding:2px 9px;border-radius:6px}
.rq-tag.muted{color:var(--muted)}
.rq-resolution{font-size:var(--fs-md);background:var(--ok-bg);border-radius:7px;padding:8px 11px;margin:6px 0;color:#1e5620}
.rq-statusbtns{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.rq-sbtn{background:#fff;border:1.5px solid var(--line);border-radius:7px;padding:4px 11px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit;transition:var(--t)}
.rq-sbtn:hover{border-color:var(--sc);color:var(--sc)}
.rq-sbtn.active{background:var(--sc);border-color:var(--sc);color:#fff}
/* التجميع الذكي للمحفظة + تاريخ البدء (المرحلة 5) */
.pgrid-grouped{display:flex;flex-direction:column;gap:18px}
.pgroup{background:transparent}
.pgroup-hd{display:flex;align-items:center;gap:9px;padding:6px 4px 10px;border-bottom:2px solid var(--cc,var(--gold));margin-bottom:12px}
.pgroup-hd h3{font-size:var(--fs-lg);margin:0;font-weight:700}
.pgroup-hd .pdot{width:12px;height:12px;border-radius:50%}
.pgroup-count{font-size:var(--fs-sm);background:var(--soft-2);color:var(--ink-soft);padding:2px 10px;border-radius:999px;font-weight:600}
.pgroup-hd .pcard-menu{margin-inline-start:auto;position:static}
.pgroup-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.pgroup-cards.multi .pcard{border-inline-start:3px solid var(--cc)}
.pcard-proj-name{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-base);font-weight:700;color:var(--ink);margin-bottom:10px}
.pcard-proj-name .plife{font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--soft-2);padding:2px 8px;border-radius:999px;flex-shrink:0}
/* تاريخ البدء القابل للتعديل */
.kpi-start b{color:var(--blue)}
.kstart-edit{background:none;border:none;color:var(--gold-dark);cursor:pointer;font-size:var(--fs-md);padding:0 2px;margin-inline-start:3px;border-radius:4px;transition:var(--t)}
.kstart-edit:hover{background:var(--soft-2);color:var(--ink)}
/* المحفظة المعاد تنظيمها: بطاقات شركات مضغوطة + توسيع (UX) */
.pcompany-grid{display:flex;flex-direction:column;gap:10px}
.pcompany{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:var(--t);box-shadow:var(--e1)}
.pcompany:hover{box-shadow:var(--e2);border-color:var(--cc)}
.pcompany.has-alerts{border-inline-start:4px solid var(--crit)}
.pcompany-hd{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;user-select:none}
.pcompany-hd .pdot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.pcompany-info{flex:1;min-width:0}
.pcompany-info h3{margin:0;font-size:var(--fs-lg);font-weight:700}
.pcompany-sub{font-size:var(--fs-sm);color:var(--muted)}
.pcompany-side{display:flex;align-items:center;gap:14px;flex-shrink:0}
.pcompany-pct{display:flex;align-items:center;gap:8px}
.pcompany-pct b{font-size:var(--fs-base);color:var(--ink)}
.pbar.mini{width:70px;height:6px;margin:0}
.pcompany-chev{color:var(--muted);font-size:var(--fs-base);width:18px;text-align:center}
.pcompany.expanded .pcompany-hd{border-bottom:1px solid var(--line-soft)}
.pcompany-body{background:var(--soft-2);padding:6px 12px}
.proj-row{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line-soft);border-radius:9px;padding:10px 14px;margin:6px 0;cursor:pointer;transition:var(--t)}
.proj-row:hover{border-color:var(--cc);box-shadow:var(--e1)}
.proj-row-main{flex:1;display:flex;align-items:center;gap:9px;min-width:0}
.proj-row-name{font-size:var(--fs-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-row-alerts{display:flex;gap:4px}
.proj-row-alerts .palert{padding:1px 7px;font-size:var(--fs-xs)}
.proj-row-prog{display:flex;align-items:center;gap:7px;flex-shrink:0}
.proj-row-pct{font-size:var(--fs-sm);font-weight:700;color:var(--ink);min-width:34px}
.proj-row-empty{font-size:var(--fs-sm);color:var(--muted);font-style:italic}
.proj-row-go{color:var(--gold-dark);font-weight:700}
.psearch{margin-inline-start:auto;border:1.5px solid var(--line);border-radius:999px;padding:6px 16px;font-family:inherit;font-size:var(--fs-md);width:230px;background:var(--paper);transition:var(--t)}
.psearch:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,160,107,.15)}
@media(max-width:640px){.psearch{width:100%;margin:6px 0 0}.pcompany-side{gap:8px}.pcompany-pct .pbar.mini{display:none}}
/* أهداف اللمس (A11y) — حد أدنى مريح + 44px للّمس الخشن */
.reqbtn{min-height:32px;padding:6px 12px}
.ib{min-height:32px;min-width:32px;padding:6px 8px}
.pcard-menu{min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}
.kstart-edit{min-height:28px;min-width:28px}
@media(pointer:coarse){
  .reqbtn,.ib,.hbtn,.pcard-menu,.rq-sbtn,.pfilter,.tab{min-height:44px}
  .ib,.pcard-menu{min-width:44px}
}
/* حلقة تركيز ظاهرة لكل العناصر التفاعلية (لوحة المفاتيح) */
:focus-visible{outline:2.5px solid var(--gold-dark);outline-offset:2px;border-radius:4px}
[role="button"]:focus-visible{outline:2.5px solid var(--gold-dark);outline-offset:2px}
/* مؤشر تمرير التبويبات: تدرّج يوحي بوجود المزيد */
.tabs{position:relative}
.tabs::after{content:'';position:absolute;inset-inline-end:0;top:0;bottom:0;width:36px;background:linear-gradient(to var(--fade-dir,left),var(--cream),transparent);pointer-events:none;opacity:0}
@media(max-width:760px){.tabs::after{opacity:1}}
html[dir="rtl"] .tabs::after{--fade-dir:right}
/* أيقونات SVG موحدة */
.icn{width:15px;height:15px;vertical-align:-2.5px;flex-shrink:0}
.reqbtn,.hbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.empty-cta .ico .icn{width:44px;height:44px;color:var(--gold-dark)}
.pcard-menu .icn,.ib .icn{width:16px;height:16px;vertical-align:middle}
/* داشبورد العميل */
.cdash{display:flex;flex-direction:column;gap:16px}
.cd-hero{display:flex;gap:20px;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--e1);flex-wrap:wrap}
.cd-hero-right{flex:1;min-width:280px}
.cd-hero h3{margin:0 0 16px;font-size:var(--fs-xl)}
.cd-flow{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.cd-phase{flex:1;min-width:110px;text-align:center;border:1.5px solid var(--line);border-radius:11px;padding:12px 8px;background:var(--soft-2);opacity:.55}
.cd-phase.done{opacity:1;border-color:var(--ok);background:var(--ok-bg)}
.cd-phase.current{opacity:1;border-color:var(--pc);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 22%,transparent);position:relative}
.cd-phase.current .cd-phase-dot{animation:cdpulse 1.6s ease-in-out infinite}
@keyframes cdpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.cd-phase-dot{font-size:1.1rem;color:var(--pc);height:22px}
.cd-phase.done .cd-phase-dot{color:var(--ok)}
.cd-phase-name{font-weight:700;font-size:var(--fs-md)}
.cd-phase-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}
.cd-flow-arrow{align-self:center;color:var(--muted);font-weight:700}
.cd-prog{width:190px;text-align:center;border-inline-start:1px solid var(--line);padding-inline-start:20px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.cd-prog-num{font-size:2.6rem;font-weight:800;color:var(--gold-dark);line-height:1}
.cd-prog-num small{font-size:1.2rem}
.cd-prog-lbl{font-size:var(--fs-sm);color:var(--muted)}
.cd-prog-sub{font-size:var(--fs-xs);color:var(--muted)}
.cd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cd-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--e1)}
.cd-card h4{margin:0 0 12px;font-size:var(--fs-base);color:var(--ink)}
.cd-late-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-md);flex-wrap:wrap}
.cd-late-name{flex:1;font-weight:600;min-width:140px}
.cd-late-who{font-size:var(--fs-xs);font-weight:700;padding:2px 10px;border-radius:999px}
.cd-late-who.cl{background:var(--crit-bg);color:var(--crit)}
.cd-late-who.al{background:#e8eef5;color:var(--blue)}
.cd-late-date{font-size:var(--fs-xs);color:var(--muted)}
.cd-ontrack{background:var(--ok-bg);color:#1e5620;border-radius:9px;padding:14px;font-weight:600;font-size:var(--fs-md);text-align:center}
.cd-ms{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.cd-ms-d{color:var(--crit);font-size:1rem}
.cd-ms b{display:block;font-size:var(--fs-md)}
.cd-ms-date{font-size:var(--fs-xs);color:var(--muted)}
@media(max-width:700px){.cd-grid{grid-template-columns:1fr}.cd-prog{width:100%;border-inline-start:none;padding-inline-start:0;border-top:1px solid var(--line);padding-top:14px}.cd-flow-arrow{display:none}}

/* تثبيت رؤوس الجدول وأعمدته التعريفية */
#tbl th{z-index:6}
#tbl th:nth-child(1),#tbl td:nth-child(1){position:sticky;inset-inline-start:0;width:72px;max-width:72px;min-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tbl th:nth-child(2),#tbl td:nth-child(2){position:sticky;inset-inline-start:72px;min-width:150px}
#tbl td:nth-child(1),#tbl td:nth-child(2){background:var(--paper);z-index:4;border-inline-end:1px solid var(--line-soft)}
#tbl td:nth-child(1) .idcell{max-width:60px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:middle}
#tbl th:nth-child(1),#tbl th:nth-child(2){z-index:7;background:var(--ink)}
#tbl tr.grp td{position:static!important}
#tbl tr:hover td:nth-child(1),#tbl tr:hover td:nth-child(2){background:var(--soft-2)}
/* تثبيت رأس الجانت (المحور الزمني) وزاويته */
.gscroll{overflow:auto;max-height:calc(100vh - 230px)}
.gantt .thead{position:sticky;top:0;z-index:8;background:var(--soft)}
.gantt .corner{position:sticky;right:0;z-index:9;background:var(--soft)}
@media(max-width:760px){.tablewrap,.gscroll{max-height:calc(100vh - 190px)}
  #tbl th:nth-child(2),#tbl td:nth-child(2){position:static;min-width:120px}}
/* لوحة إدارة المراحل - تعديل مباشر */
.trk-hint{font-size:var(--fs-sm);color:var(--muted);margin-bottom:14px;line-height:1.7}
.trk-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line-soft)}
.trk-color{width:30px;height:30px;border:none;border-radius:8px;padding:0;cursor:pointer;flex-shrink:0}
.trk-key{font-weight:700;font-size:var(--fs-sm);min-width:22px;text-align:center;color:var(--muted)}
.trk-key-in{width:44px;text-align:center;border:1.5px solid var(--line);border-radius:7px;padding:6px 4px;font-family:inherit}
.trk-name{flex:1;border:1.5px solid var(--line);border-radius:7px;padding:7px 10px;font-family:inherit;font-size:var(--fs-md)}
.trk-name:focus,.trk-key-in:focus{outline:none;border-color:var(--gold)}
.trk-new{background:var(--soft-2);border-radius:9px;margin-top:6px;border-bottom:none}
/* فلترة المحفظة (أبعاد متعددة + شرائح نشطة) */
.pfilters-wrap{margin-bottom:10px}
.pfilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pfacet-lbl{font-size:var(--fs-xs);color:var(--muted);font-weight:600;margin-inline-start:6px}
.pfacet-lbl:first-child{margin-inline-start:0}
.chip-red.active{background:var(--crit);border-color:var(--crit);color:#fff}
.chip-amber.active{background:var(--warn);border-color:var(--warn);color:#fff}
.chip-blue.active{background:var(--blue);border-color:var(--blue);color:#fff}
.psort{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-family:inherit;font-size:var(--fs-sm);background:var(--paper)}
.pchips{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 14px;padding:8px 12px;background:var(--soft-2);border-radius:9px}
.pchips-lbl{font-size:var(--fs-xs);color:var(--muted)}
.pchip{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--gold);color:var(--gold-dark);border-radius:999px;padding:3px 6px 3px 12px;font-size:var(--fs-xs);font-weight:600}
.pchip button{background:none;border:none;color:var(--gold-dark);cursor:pointer;font-size:.8rem;padding:2px}
.pchips-clear{margin-inline-start:auto;background:none;border:none;color:var(--crit);font-size:var(--fs-xs);font-weight:700;cursor:pointer;text-decoration:underline}

/* فلترة الجدول/الجانت داخل المشروع */
.tfilter-bar{background:var(--soft-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.tfilter-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.tfilter-row:last-of-type{margin-bottom:8px}
.tfchip{border:1.5px solid var(--tc,var(--line));background:#fff;color:var(--ink-soft);border-radius:999px;padding:4px 12px;font-size:var(--fs-xs);font-weight:600;cursor:pointer;font-family:inherit;transition:var(--t)}
.tfchip[aria-pressed="true"]{background:var(--tc,var(--gold));border-color:var(--tc,var(--gold));color:#fff}
.tfchip.smart{border-color:var(--gold-dark)}
.tfchip.smart[aria-pressed="true"]{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}
.tfsearch{width:200px;padding:5px 14px}
.tfilter-count{font-size:var(--fs-xs);color:var(--muted)}

/* الطباعة: جدول الخطة وجانت */
@media print{
  header,.bar2,.tabs,.portfolio-tools,.pfilters-wrap,.pchips,.tfilter-bar,.lockbar,.hintbar,
  .kstart-edit,#projMenuBtn,#manageAccess,.gctrl .zoom,.reqbtn,.pcard-menu,.ib,#dataDate,.print-btn{display:none!important}
  body{background:#fff}
  .tablewrap,.gscroll{max-height:none!important;overflow:visible!important}
  #tbl{width:100%;font-size:9pt}
  #tbl th{position:static!important;background:#eee!important;color:#000!important}
  #tbl td:nth-child(1),#tbl td:nth-child(2){position:static!important;background:#fff!important}
  #tbl tr.grp{break-before:page;background:#ddd!important;color:#000!important}
  #tbl tr.grp:first-child{break-before:auto}
  #tbl tr{break-inside:avoid}
  .gantt .thead{position:static!important}
  .gantt .corner{position:static!important}
  .gscroll>div{min-width:0!important;width:100%!important}
  .gantt{break-inside:avoid}
  .grow{break-inside:avoid}
  @page{size:landscape;margin:12mm}
}
.print-btn{background:#fff;color:var(--ink);border-color:var(--line)}
/* WBS: حزم العمل والشجرة */
.row-pkg{background:color-mix(in srgb,var(--gold) 7%,var(--paper))}
.row-pkg td{font-weight:700;border-top:1.5px solid var(--line)}
.row-pkg .pkg-name{font-size:var(--fs-md)}
.pkg-n{font-weight:500;font-size:var(--fs-xs);color:var(--muted);background:var(--soft-2);border-radius:999px;padding:1px 9px;margin-inline-start:6px}
.pkg-pct{font-weight:800;color:var(--gold-dark)}
.pkg-tg{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--gold-dark);padding:2px 6px;margin-inline-end:2px;border-radius:5px;min-width:26px;min-height:26px}
.pkg-tg:hover{background:var(--soft-2)}
.child-cell .iname{padding-inline-start:4px}
.tree-ind{color:var(--line);margin-inline-start:14px;margin-inline-end:2px;font-size:.9rem}
#tbl tr.row-pkg td:nth-child(1),#tbl tr.row-pkg td:nth-child(2){background:color-mix(in srgb,var(--gold) 7%,var(--paper))}
/* الجانت: شريط الحزمة التجميعي */
.gpkg{position:absolute;top:10px;height:9px;background:var(--pc,var(--ink));border-radius:2px;opacity:.85}
.gpkg::before,.gpkg::after{content:'';position:absolute;bottom:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:var(--pc,var(--ink)) transparent transparent transparent}
.gpkg::before{right:-1px}.gpkg::after{left:-1px}
.gpkg.crit{outline:2px solid var(--crit);outline-offset:1px}
.row-gpkg .glbl b{font-size:var(--fs-md)}
.glbl.gchild{padding-inline-start:34px}
.glbl.gchild::before{content:'└';color:var(--line);margin-inline-end:4px}
/* تعديل المرحلة المباشر من عنوانها */
.grp-edit{background:none;border:none;cursor:pointer;color:var(--gold-dark);padding:3px 7px;border-radius:6px;opacity:0;transition:var(--t);vertical-align:middle;min-height:26px}
tr.grp:hover .grp-edit,.grp-edit:focus-visible{opacity:1}
.grp-edit:hover{background:var(--paper)}
.grp-inline{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.gie-c{width:34px;height:30px;border:none;border-radius:6px;padding:0;cursor:pointer}
.gie-n{border:1.5px solid var(--gold);border-radius:7px;padding:5px 11px;font-family:inherit;font-size:var(--fs-md);min-width:220px}
.gie-n:focus{outline:none}
@media print{.pkg-tg,.grp-edit{display:none!important}.row-pkg{background:#eee!important}}
