
/* Layout: app shell — sidebar on desktop, bottom tab bar on phone; gold from the company logo on charcoal/ivory neutrals */
:root{
  --gold:#C29A3A; --gold-hi:#EDB83A; --gold-ink:#8A6A1E;
  --ink:#2B2A27; --muted:#6F6A5E; --line:#E6E0D2;
  --bg:#F7F5F0; --card:#FFFFFF; --soft:#F1ECDF;
  --ok:#2F8F5B; --warn:#C27C0E; --bad:#C2412F; --info:#3A6EA5;
  --f-body:"IBM Plex Sans Arabic",system-ui,"Segoe UI",Tahoma,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --gold:#D4AA48; --gold-hi:#F0C24E; --gold-ink:#F0C24E;
  --ink:#EEEAE0; --muted:#A49E90; --line:#3A372F;
  --bg:#191815; --card:#23211D; --soft:#2C2924;
  --ok:#4CB97F; --warn:#E3A13A; --bad:#E06A55; --info:#6FA0D6; color-scheme:dark}}
:root[data-theme="dark"]{
  --gold:#D4AA48; --gold-hi:#F0C24E; --gold-ink:#F0C24E;
  --ink:#EEEAE0; --muted:#A49E90; --line:#3A372F;
  --bg:#191815; --card:#23211D; --soft:#2C2924;
  --ok:#4CB97F; --warn:#E3A13A; --bad:#E06A55; --info:#6FA0D6; color-scheme:dark}
html,body{height:100%}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55}
*{box-sizing:border-box}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:0}
.num{font-variant-numeric:tabular-nums}

/* ---------- login ---------- */
#login{min-height:100%;display:grid;place-items:center;padding-block:32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.login-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 22px;display:grid;gap:18px}
.brand{display:flex;align-items:center;gap:12px}
.brand svg{flex:none}
.brand b{display:block;font-size:17px;line-height:1.3}
.brand small{color:var(--muted);font-size:12.5px}
.login-card h1{font-size:20px;margin:0;text-wrap:balance}
.field{display:grid;gap:6px}
.field label{font-size:13px;color:var(--muted);font-weight:500}
.field select,.field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.btn{border:0;border-radius:var(--r);padding:11px 16px;font-weight:600;background:var(--soft);display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.primary{background:linear-gradient(90deg,var(--gold),var(--gold-hi) 50%,var(--gold));color:#211A08}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn.sm{padding:7px 11px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.err{color:var(--bad);font-size:13px;min-height:1em}
.demo-note{font-size:12.5px;color:var(--muted);background:var(--soft);border-radius:8px;padding:9px 11px}

/* ---------- shell ---------- */
#app{display:grid;grid-template-columns:240px 1fr;min-height:100%}
aside{background:var(--card);border-inline-end:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
nav.side{display:grid;gap:4px}
nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:500}
nav a:hover{background:var(--soft)}
nav a.on{background:var(--soft);color:var(--gold-ink);font-weight:700}
nav a svg{width:19px;height:19px;flex:none}
.me{margin-top:auto;display:grid;gap:8px;font-size:13px;border-top:1px solid var(--line);padding-top:14px}
.me b{font-size:14px}
.me .row{display:flex;gap:6px;flex-wrap:wrap}
main{min-width:0;padding-block:20px 90px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1180px;margin:0 auto;display:grid;gap:18px}
.topbar{display:none}
nav.tabs{display:none}
@media (max-width:860px){
  #app{grid-template-columns:1fr}
  aside{display:none}
  body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--card)}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--card);border-bottom:1px solid var(--line);padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .topbar .brand b{font-size:15px}
  nav.tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset:auto 0 0 0;z-index:5;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  nav.tabs a{flex-direction:column;gap:2px;font-size:11px;padding:8px 2px;border-radius:0;text-align:center}
  main{padding-block:14px 96px}
}

/* ---------- common ---------- */
h2.pg{font-size:22px;margin:0;text-wrap:balance}
.pg-sub{color:var(--muted);margin:2px 0 0;font-size:13.5px}
.head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.panel h3{margin:0 0 12px;font-size:15px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:2px}
.kpi .v{font-size:28px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi .l{color:var(--muted);font-size:12.5px;letter-spacing:.02em}
.kpi.gold .v{color:var(--gold-ink)}
.kpi.bad .v{color:var(--bad)}
.kpi.ok .v{color:var(--ok)}
.grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
@media (max-width:980px){.grid2{grid-template-columns:1fr}}
.bars{display:grid;gap:10px}
.bar{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:10px;font-size:13.5px}
.bar .t{height:12px;background:var(--soft);border-radius:6px;overflow:hidden}
.bar .t i{display:block;height:100%;background:var(--gold);border-radius:6px}
.bar .n{text-align:end;font-variant-numeric:tabular-nums;font-weight:600}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--soft);white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}
.pill.ok{color:var(--ok)} .pill.bad{color:var(--bad)} .pill.warn{color:var(--warn)} .pill.info{color:var(--info)} .pill.mut{color:var(--muted)}
.tag{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px;white-space:nowrap}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters input,.filters select{padding:9px 11px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);min-width:0}
.filters input{flex:1 1 220px}
.list{display:grid;gap:10px}
.wo{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 14px;display:grid;gap:8px;cursor:pointer;text-align:start;width:100%}
.wo:hover{border-color:var(--gold)}
.wo .top{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.wo .id{font-family:var(--f-mono);font-weight:500;font-size:14px}
.wo .meta{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.prog{height:6px;background:var(--soft);border-radius:4px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--gold)}
.step-now{font-size:13px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.step-now b{font-weight:600}
.empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
.more{justify-self:center}

/* phases in detail */
.phases{display:grid;gap:12px}
.phase{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.phase>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:var(--soft);flex-wrap:wrap}
.phase>header b{font-size:14.5px}
.steps{display:grid}
.step{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start;padding:10px 14px;border-top:1px solid var(--line)}
.step .ck{width:24px;height:24px;border-radius:7px;border:2px solid var(--line);display:grid;place-items:center;background:var(--card);padding:0}
.step.done .ck{background:var(--ok);border-color:var(--ok);color:#fff}
.step.cur{background:color-mix(in srgb,var(--gold) 9%,transparent)}
.step .nm{font-size:13.5px;min-width:0}
.step .who{font-size:12px;color:var(--muted)}
.step .acts{display:flex;gap:6px;align-items:center}
.step .acts .cnt{font-size:12px;color:var(--gold-ink);font-weight:600}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 18px}
.kv div{display:grid;gap:1px;min-width:0}
.kv span{font-size:12px;color:var(--muted)}
.kv b{font-weight:600;overflow-wrap:anywhere}
.copy{border:1px solid var(--line);background:var(--card);border-radius:6px;font-size:11.5px;padding:1px 7px;margin-inline-start:6px}
a.lnk{color:var(--gold-ink);font-weight:600}

/* photos */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ph{border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--card);display:grid;padding:0;text-align:start}
.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ph div{padding:6px 8px;font-size:11.5px;color:var(--muted);display:grid}
.ph div b{color:var(--ink);font-family:var(--f-mono);font-weight:500}

/* modal */
.modal{position:fixed;inset:0;z-index:20;background:rgba(10,9,6,.55);display:grid;place-items:center;padding:16px}
.sheet{background:var(--card);border-radius:16px;max-width:640px;width:100%;max-height:calc(100% - 20px);overflow:auto;padding:18px;display:grid;gap:14px}
.sheet h3{margin:0;font-size:17px}
.sheet .row{display:flex;gap:8px;flex-wrap:wrap}
.preview{width:100%;border-radius:10px;border:1px solid var(--line);display:block}
.src{font-size:12.5px;color:var(--muted)}

/* table */
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}
th{font-size:12px;color:var(--muted);font-weight:600}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.member{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:6px}
.member .av{width:40px;height:40px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:700;color:var(--gold-ink)}
.member .hd{display:flex;gap:10px;align-items:center}
.member .hd b{display:block}
.member .hd small{color:var(--muted)}
.toast{position:fixed;inset-inline:0;bottom:calc(84px + env(safe-area-inset-bottom,0px));display:grid;place-items:center;z-index:30;pointer-events:none}
.toast span{background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:500}
.att-big{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.att-big .btn{padding:18px;font-size:16px}
.clock{font-size:34px;font-weight:700;font-family:var(--f-mono)}
@media (prefers-reduced-motion:no-preference){.wo,.btn{transition:border-color .15s,transform .1s}.btn:active{transform:scale(.98)}}

/* ---------- full-version additions ---------- */
body{margin:0}
img{max-width:100%}
:root{padding-top:env(safe-area-inset-top,0px)}
.sync{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--muted);border:0}
.sync.off{color:var(--warn)} .sync.pend{color:var(--info)} .sync.ok{color:var(--ok)}
.sync::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.form .field.full{grid-column:1/-1}
.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.boot{min-height:100vh;display:grid;place-items:center;gap:12px;color:var(--muted)}
.mrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.member.off{opacity:.55}
.warnbox{background:color-mix(in srgb,var(--warn) 12%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:10px;padding:10px 12px;font-size:13.5px}

/* ---------- ERP sheets (Excel look) ---------- */
.wrap.wide{max-width:none}
.sh-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.shgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.shcard{display:grid;gap:6px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:inherit}
.shcard:hover{border-color:var(--gold)}
.fbar{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--card);min-height:40px;font-size:13.5px;flex-wrap:wrap}
#fAddr{min-width:52px;color:var(--gold-ink)}
#fVal{flex:1;min-width:0;overflow-wrap:anywhere}
.gscroll{position:relative;overflow:auto;height:calc(100dvh - 235px);min-height:320px;background:#fff;border:1px solid var(--line);border-radius:10px;direction:ltr;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media (max-width:860px){.gscroll{height:calc(100dvh - 300px)}}
.gsizer{position:relative;color:#111;font-family:Calibri,Carlito,"IBM Plex Sans Arabic",Arial,sans-serif}
.gbody{position:absolute;left:0;top:0}
.gtop{position:sticky;top:0;z-index:3;background:#fff}
.gcorner{position:sticky;left:0;z-index:4;background:#fff}
.gleft{position:sticky;left:0;z-index:2;background:#fff}
.gc{position:absolute;display:flex;overflow:hidden;white-space:nowrap;line-height:1.25;padding:0 3px;box-sizing:border-box}
i.gc,.gc.gl{box-shadow:inset -1px -1px 0 #e2e2e2}
.gc.wr{white-space:pre-wrap;word-break:break-word}
.gc.sp{overflow:visible;z-index:1}
.gc.ed{cursor:cell}
.gc.pend{outline:2px dashed #E3A13A;outline-offset:-2px;background-color:#FFF4D6!important}
.gsel{position:absolute;border:2px solid #217346;pointer-events:none;z-index:6;box-sizing:border-box}
.gimg{position:absolute;z-index:2;pointer-events:none}
.shnav{margin-top:6px;border-top:1px solid var(--line);padding-top:8px}
.shnav summary{cursor:pointer;font-weight:600;padding:6px 12px;color:var(--muted);font-size:13px}
.shnav a{padding:6px 12px;font-size:13px;font-weight:500}
aside{overflow-y:auto}

/* ---------- Dashboard v3 ---------- */
:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s-other:#a8a497;
  --st-wip:#2a78d6;--st-done:#1f9d5c;--st-hold:#e0a100;--st-cancel:#a8a497;--tile-bg:var(--card)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s-other:#77736a;--st-wip:#3987e5;--st-done:#3fb27a;--st-hold:#c98500;--st-cancel:#77736a}}
:root[data-theme="dark"]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s-other:#77736a;--st-wip:#3987e5;--st-done:#3fb27a;--st-hold:#c98500;--st-cancel:#77736a}
.num{font-variant-numeric:tabular-nums lining-nums}
.dhero{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;padding-bottom:4px;border-bottom:1px solid var(--line)}
.eyebrow{margin:0 0 4px;font-size:12.5px;color:var(--gold-ink);font-weight:600;letter-spacing:.02em}
.dtitle{margin:0;font-size:26px;font-weight:700;line-height:1.25;text-wrap:balance}
.fbarx{display:grid;gap:8px}
.fgroup{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.flbl{font-size:12px;color:var(--muted);font-weight:600;min-width:56px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex;gap:6px;align-items:center}
.chip .num{color:var(--muted);font-size:12px}
.chip:hover{border-color:var(--gold)}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip.on .num{color:inherit;opacity:.75}
.chip.ghost{border-style:dashed;color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media (max-width:1100px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{display:grid;gap:4px;text-align:start;background:var(--tile-bg);border:1px solid var(--line);border-radius:14px;padding:14px 14px 12px;position:relative;overflow:hidden;min-width:0}
.tile:hover{border-color:var(--gold);transform:translateY(-1px)}
.t-l{font-size:12.5px;color:var(--muted);font-weight:600}
.t-v{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.01em}
.t-s{font-size:12px;color:var(--muted)}
.t-m{display:block;height:4px;border-radius:4px;background:var(--soft);overflow:hidden;margin-top:4px}
.t-m i{display:block;height:100%;background:currentColor;border-radius:4px}
.tile.gold .t-v{color:var(--gold-ink)} .tile.ok .t-v,.tile.ok .t-m{color:var(--st-done)} .tile.warn .t-v,.tile.warn .t-m{color:var(--st-hold)} .tile.bad .t-v,.tile.bad .t-m{color:var(--bad)} .tile .t-m{color:var(--st-wip)}
.tile.gold::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--gold),var(--gold-hi))}
[dir="rtl"] .tile.gold::before{inset:0 0 0 auto}
.dgrid{display:grid;gap:14px}
.g-2-3{grid-template-columns:minmax(0,2fr) minmax(0,3fr)} .g-1-1{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:980px){.g-2-3,.g-1-1{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;min-width:0;display:grid;gap:12px;align-content:start}
.card>header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.card h3{margin:0;font-size:15px;font-weight:700}
.donutwrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:center}
.donut{width:180px;max-width:100%;height:auto}
.donut .vmark{cursor:pointer;transition:opacity .15s}
.donut .vmark.dim{opacity:.25}
.donut .vmark:hover{opacity:.85}
.d-big{font-size:30px;font-weight:700;fill:var(--ink);font-family:var(--f-body)} .d-sm{font-size:11px;fill:var(--muted);font-family:var(--f-body)}
.legend{list-style:none;margin:0;padding:0;display:grid;gap:4px;min-width:180px}
.legend.row{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.legend.row li{display:flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.legend .lg{display:grid;grid-template-columns:12px 1fr auto 44px;gap:8px;align-items:center;width:100%;border:0;background:transparent;padding:6px 8px;border-radius:8px;text-align:start;font-size:13.5px}
.legend .lg:hover,.legend .lg.on{background:var(--soft)}
.legend .lg em{font-style:normal;color:var(--muted);font-size:12px;text-align:end}
svg.area{width:100%;height:auto;display:block}
.vgrid{stroke:var(--line);stroke-width:1} .vax{fill:var(--muted);font-size:11px;font-family:var(--f-body)} .vlab{fill:var(--ink);font-size:12px;font-weight:700;font-family:var(--f-body)}
.vcross{stroke:var(--muted);stroke-dasharray:3 3}
.vtip{position:fixed;z-index:50;pointer-events:none;background:var(--ink);color:var(--bg);font-size:12.5px;line-height:1.45;padding:7px 10px;border-radius:8px;max-width:260px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.pipe{display:grid;grid-template-columns:12fr 4fr 8fr 11fr;gap:12px;overflow-x:auto;padding-bottom:4px}
@media (max-width:860px){.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}
.phasecol{display:grid;gap:6px;min-width:0;border-inline-start:1px solid var(--line);padding-inline-start:10px}
.phasecol:first-child{border:0;padding-inline-start:0}
.ph-h{display:flex;justify-content:space-between;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted)}
.ph-h b{color:var(--ink);font-size:16px}
.ph-bars{display:flex;align-items:flex-end;gap:3px;height:130px;padding-top:16px;direction:ltr}
.pbar{flex:1 1 0;min-width:6px;height:100%;border:0;background:transparent;padding:0;position:relative;display:flex;align-items:flex-end;cursor:pointer}
.pbar i{display:block;width:100%;height:var(--h);background:var(--s1);border-radius:4px 4px 1px 1px;transition:filter .15s}
.pbar.zero i{background:var(--line)}
.pbar:hover i{filter:brightness(1.15)}
.pbar span{position:absolute;bottom:calc(var(--h) + 2px);left:0;right:0;text-align:center;font-size:10.5px;font-weight:600;color:var(--ink)}
.ph-codes{display:flex;gap:3px;direction:ltr}
.ph-codes span{flex:1 1 0;min-width:6px;font-size:9px;color:var(--muted);text-align:center;overflow:hidden;white-space:nowrap}
.hbars{display:grid;gap:9px}
.hb{display:grid;grid-template-columns:minmax(90px,140px) 1fr 52px;gap:10px;align-items:center;font-size:13.5px}
.hb-l{border:0;background:transparent;padding:0;text-align:start;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
button.hb-l:hover{color:var(--gold-ink);text-decoration:underline}
.hb-t{display:flex;gap:2px;height:14px;background:var(--soft);border-radius:4px;overflow:hidden;direction:ltr}
.hb-t i{display:block;height:100%;border-radius:3px}
.hb b{text-align:end}
.attn{list-style:none;margin:0;padding:0;display:grid}
.attn a{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;align-items:baseline;padding:8px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;font-size:13.5px}
.attn a:hover{background:var(--soft)}
.attn .a-c{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attn .a-s{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 5px}
.attn b{color:var(--bad);font-size:15px} .attn small{color:var(--muted);font-size:11px}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.person{display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;font-size:13px;opacity:.6}
.person.in{opacity:1;border-color:color-mix(in srgb,var(--st-done) 45%,var(--line))}
.person .av{grid-row:1/3;width:30px;height:30px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:700;color:var(--gold-ink)}
.person.in .av{background:color-mix(in srgb,var(--st-done) 18%,var(--card));color:var(--st-done)}
.person small{color:var(--muted);font-size:11px}

/* ---------- v4: navigation, language, bell ---------- */
.sidetools{display:flex;align-items:center;justify-content:space-between;gap:8px}
.navgrp{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em;padding:12px 12px 4px;text-transform:uppercase}
nav.side{gap:2px}
nav.side a{position:relative}
.navcount{margin-inline-start:auto;font-style:normal;font-size:11.5px;font-weight:700;background:var(--gold);color:#211A08;border-radius:999px;padding:0 7px;min-width:20px;text-align:center;line-height:18px}
.navcount:empty{display:none}
.langsw{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:2px;background:var(--soft);gap:2px}
.langsw button{border:0;background:transparent;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;color:var(--muted);line-height:1.2}
.langsw button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.langsw.sm button{padding:4px 9px;font-size:12px}
.bell{position:relative;border:1px solid var(--line);background:var(--card);border-radius:10px;width:36px;height:34px;display:inline-grid;place-items:center;padding:0;color:var(--ink)}
.bell b{position:absolute;top:-6px;inset-inline-end:-6px;background:var(--bad);color:#fff;font-size:10.5px;border-radius:999px;padding:0 5px;min-width:18px;line-height:17px;text-align:center;border:2px solid var(--card)}
.nlist{display:grid;gap:6px;max-height:60vh;overflow:auto}
.nitem{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;font-size:13.5px}
.nitem.unread{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--card))}
.nitem span{color:var(--muted)} .nitem small{color:var(--muted);font-size:11.5px}
.btn.wa{background:#1FA855;color:#fff;text-decoration:none}
textarea{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);resize:vertical}
input[type=range]{width:100%;accent-color:var(--gold)}
.chk{display:inline-flex;gap:6px;align-items:center;font-size:13.5px}

/* ---------- tasks board ---------- */
.segtabs{display:inline-flex;gap:4px;background:var(--soft);padding:4px;border-radius:12px;flex-wrap:wrap}
.segtabs button{border:0;background:transparent;padding:8px 14px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted)}
.segtabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.segtabs .num{font-size:12px;opacity:.75}
.tfilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tfilters input[type=search],.tfilters select{padding:9px 11px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);min-width:0}
.tfilters input[type=search]{flex:1 1 200px}
.tfilters .btn{margin-inline-start:auto}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px;align-items:start}
.kcol{background:var(--soft);border-radius:14px;padding:10px;display:grid;gap:8px;min-height:160px;transition:outline-color .15s;outline:2px dashed transparent;outline-offset:-2px}
.kcol.over{outline-color:var(--gold)}
.kcol>header{display:flex;align-items:center;gap:8px;padding:2px 4px;font-size:14px}
.kcol>header .num{margin-inline-start:auto;color:var(--muted);font-size:12.5px;background:var(--card);border-radius:999px;padding:0 8px}
.kdot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.k-notstarted{background:var(--muted)} .k-inprogress{background:var(--st-wip)} .k-onhold{background:var(--st-hold)} .k-completed{background:var(--st-done)} .k-cancelled{background:var(--st-cancel)}
.klist{display:grid;gap:8px}
.kempty{font-size:12.5px;color:var(--muted);text-align:center;padding:16px 4px}
.tcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px;cursor:pointer;min-width:0}
.tcard:hover{border-color:var(--gold)}
.tcard.drag{opacity:.5}
.tc-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tc-pr{width:8px;height:8px;border-radius:2px;background:var(--st-hold);flex:none}
.pr-high .tc-pr,.tc-pr.pr-high{background:var(--bad)} .pr-low .tc-pr,.tc-pr.pr-low{background:var(--muted)} .pr-medium .tc-pr,.tc-pr.pr-medium{background:var(--st-hold)}
.tc-no,.tc-wo{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 5px}
.tc-t{font-size:14px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.tc-sub{font-size:12px;color:var(--muted)}
.tc-bar{height:4px;background:var(--soft);border-radius:4px;overflow:hidden}.tc-bar i{display:block;height:100%;background:var(--st-done)}
.tc-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px}
.tc-who{display:flex;gap:6px;align-items:center;min-width:0;color:var(--muted)}
.tc-who span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av.xs{width:22px;height:22px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--gold-ink);flex:none}
.tc-due{font-size:12px;font-weight:600;padding:1px 7px;border-radius:6px;background:var(--soft);color:var(--muted);white-space:nowrap}
.tc-due.late{background:color-mix(in srgb,var(--bad) 14%,var(--card));color:var(--bad)}
.tc-due.today{background:color-mix(in srgb,var(--st-hold) 18%,var(--card));color:var(--warn)}

/* ---------- home ---------- */
.hhero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border-radius:18px;background:linear-gradient(120deg,color-mix(in srgb,var(--gold) 16%,var(--card)),var(--card) 60%);border:1px solid var(--line)}
.hh-logo{flex:none;opacity:.95}
@media (max-width:560px){.hh-logo{display:none}}
.hstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:640px){.hstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hs{display:grid;gap:2px;padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:inherit}
.hs:hover{border-color:var(--gold)}
.hs-v{font-size:30px;font-weight:700;line-height:1.1}
.hs-l{font-size:12.5px;color:var(--muted);font-weight:600}
.hs.warn .hs-v{color:var(--warn)} .hs.bad .hs-v{color:var(--bad)} .hs.ok .hs-v{color:var(--st-done)}
.qas{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px}
.qa{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;border-radius:14px;border:1px solid var(--line);background:var(--bg);font-weight:600;font-size:13.5px}
.qa:hover{border-color:var(--gold);background:var(--card)}
.qa-i{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:linear-gradient(135deg,var(--gold),var(--gold-hi));color:#211A08}
.mylist{display:grid;gap:4px}
.mli{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:9px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:start;font-size:14px}
.mli:hover{background:var(--soft)}
.mli-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kmini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.kmini a{display:grid;padding:10px;border-radius:12px;background:var(--soft);text-decoration:none;color:inherit;text-align:center}
.kmini .num{font-size:22px;font-weight:700} .kmini .ok{color:var(--st-done)} .kmini .bad{color:var(--bad)}
.kmini small{font-size:11.5px;color:var(--muted)}
.people.sm{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.feed{list-style:none;margin:0;padding:0;display:grid}
.feed button{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:start;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 4px;font-size:13.5px}
.feed button:hover{background:var(--soft)}
.feed .kdot{margin-top:6px}
.feed small{color:var(--muted)}
@media (max-width:860px){.topbar .langsw{display:inline-flex}}
@media (max-width:860px){
  .topbar .brand b{display:none}
  .topbar{padding-block:8px}
  .topbar .mrow{gap:6px;flex-wrap:nowrap}
  .topbar .sync{padding:3px 8px;font-size:11px}
}
@media (max-width:380px){.topbar .sync{display:none}}
.gc.lk{cursor:pointer}
.gc.lk span{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-underline-offset:2px}
.gc.lk:hover span{text-decoration-color:currentColor}
.watchbar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--st-wip) 10%,var(--card));border:1px solid color-mix(in srgb,var(--st-wip) 35%,var(--line));font-size:13.5px}
.watchbar .spinner{width:16px;height:16px}

/* ===================== v6: control-center dashboard, permits, permissions ===================== */
:root{--rail:#1E1C18;--rail-ink:#F3EFE6;--rail-mut:#B7B0A0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--rail:#0F0E0C}}
:root[data-theme="dark"]{--rail:#0F0E0C}
.rail6{background:var(--rail);color:var(--rail-ink);border-radius:20px;padding:18px 20px;display:grid;gap:14px;position:relative;overflow:hidden}
.rail6::after{content:"";position:absolute;inset:auto -60px -90px auto;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(237,184,58,.22),transparent 65%);pointer-events:none}
[dir="rtl"] .rail6::after{inset:auto auto -90px -60px}
.rail6 .rail-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-end;position:relative;z-index:1}
.rail6 h2{margin:0;font-size:22px;font-weight:700;text-wrap:balance}
.eyebrow6{margin:0 0 2px;font-size:12.5px;color:var(--gold-hi);font-weight:600}
.sub6{margin:2px 0 0;color:var(--rail-mut);font-size:13px}
.rail6 .sync{background:rgba(255,255,255,.08);color:var(--rail-ink);border-color:rgba(255,255,255,.18)}
.chips6{display:flex;gap:6px;flex-wrap:wrap;position:relative;z-index:1}
.chip6{border:1px solid rgba(255,255,255,.18);background:transparent;color:var(--rail-ink);border-radius:999px;padding:5px 12px;font-size:13px}
.chip6:hover{border-color:var(--gold-hi)}
.chip6.on{background:var(--gold-hi);color:#211A08;border-color:var(--gold-hi);font-weight:700}
.kpis6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.09);border-radius:14px;overflow:hidden;position:relative;z-index:1}
@media (max-width:1100px){.kpis6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.kpis6{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rk6{background:var(--rail);color:var(--rail-ink);border:0;padding:13px 15px;display:grid;gap:3px;text-align:start;min-width:0}
.rk6:hover{background:#2a2722}
.rk6 .l{font-size:12px;color:var(--rail-mut);font-weight:600}
.rk6 .v{font-size:28px;font-weight:700;line-height:1.1}
.rk6 .d{font-size:12px;color:var(--rail-mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk6.ok .v{color:#58d394} .rk6.bad .v{color:#ff8a73} .rk6.warn .v{color:#ffc857} .rk6.gold .v{color:var(--gold-hi)}
@media (max-width:560px){.rk6 .v{font-size:23px}}
.sec6{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--gold-ink);margin:6px 2px -4px}
.g-3-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr)} .g-1-2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:980px){.g-3-2,.g-1-2{grid-template-columns:1fr}}
.funnel6{display:grid;gap:8px}
.fr6{display:grid;grid-template-columns:minmax(110px,170px) 1fr 54px;gap:10px;align-items:center;font-size:13.5px;border:0;background:transparent;padding:0;text-align:start}
.fr6 .fbar{height:30px;border-radius:8px;background:var(--soft);position:relative;overflow:hidden;display:block}
.fr6 .fbar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--gold),var(--gold-hi));border-radius:8px}
[dir="rtl"] .fr6 .fbar i{inset:0 0 0 auto}
.fr6 .fbar em{position:relative;z-index:1;padding:0 10px;line-height:30px;font-weight:600;font-size:12.5px;font-style:normal}
.fr6 b{text-align:end;font-size:15px}
.fr6:hover .fbar{outline:2px solid var(--gold);outline-offset:1px}
.steps6{display:flex;gap:2px;height:52px;align-items:flex-end;direction:ltr}
.steps6 button{flex:1;background:var(--st-wip);border:0;border-radius:3px 3px 0 0;min-height:3px;padding:0;opacity:.85}
.steps6 button:hover{opacity:1;filter:brightness(1.15)}
.steps6 button.z{background:var(--line)}
.hist6{display:flex;align-items:flex-end;gap:10px;height:180px;padding-top:16px;direction:ltr}
.hist6 .b{flex:1;display:grid;justify-items:center;gap:6px;height:100%;align-content:end;border:0;background:transparent;padding:0;min-width:0}
.hist6 .b i{width:100%;border-radius:6px 6px 2px 2px;display:block}
.hist6 .b:hover i{filter:brightness(1.1)}
.hist6 .b span{font-size:11.5px;color:var(--muted);text-align:center}
.hist6 .b b{font-size:13px}
.pgrid6{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:center}
@media (max-width:640px){.pgrid6{grid-template-columns:1fr;justify-items:center}}
.pdonut{width:180px;height:180px}
.pdonut .vmark{cursor:pointer} .pdonut .vmark:hover{opacity:.85}
.legend a.lg{text-decoration:none;color:inherit;grid-template-columns:12px 1fr auto}
.ptimers{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.ptimer{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:6px;background:var(--bg);min-width:0}
.ptimer.soon{border-color:color-mix(in srgb,var(--warn) 60%,var(--line));background:color-mix(in srgb,var(--warn) 6%,var(--card))}
.ptimer.expired{border-color:color-mix(in srgb,var(--bad) 60%,var(--line));background:color-mix(in srgb,var(--bad) 6%,var(--card))}
.pt-h{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.pt-h b{color:var(--ink)}
.pclock{display:flex;gap:6px;direction:ltr;justify-content:center}
.pclock div{display:grid;justify-items:center;background:var(--rail);color:var(--rail-ink);border-radius:8px;padding:4px 8px;min-width:48px}
.pclock div.exp{background:var(--bad);color:#fff;min-width:120px}
.pclock div.mut{background:var(--soft);color:var(--muted);min-width:120px}
.pclock b{font-family:var(--f-mono);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
.pclock small{font-size:10px;opacity:.75}
.plife{height:5px;border-radius:4px;background:var(--soft);overflow:hidden;direction:ltr}
.plife i{display:block;height:100%;background:var(--ok)}
.ptimer.soon .plife i{background:var(--warn)} .ptimer.expired .plife i{background:var(--bad)}
.maps6{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.map6{border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:8px}
.map6 h4{margin:0 0 4px;font-size:13px}
.map6 svg{width:100%;height:auto;display:block}
.mapbg{fill:var(--card)}
.mpt{stroke:var(--card);stroke-width:1.5;cursor:pointer} .mpt:hover{r:6.5}
.ptbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ptbl table{border-collapse:collapse;width:100%;font-size:13.5px}
.ptbl th,.ptbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}
.ptbl th{font-size:11.5px;color:var(--muted);font-weight:700;position:sticky;top:0;background:var(--card)}
.ptbl tbody tr:hover{background:var(--soft)}
.sc6 tr[data-reg]{cursor:pointer} .sc6 tr.on{background:var(--soft)}
.mini{display:inline-block;height:6px;border-radius:3px;vertical-align:middle;margin-inline-start:6px}
.risk6{display:grid;gap:6px}
.rkrow{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:10px;background:var(--bg);text-decoration:none;color:inherit}
.rkrow:hover{background:var(--soft)}
.rkrow .sc{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:700;color:#fff;font-size:12px}
.rkrow small{color:var(--muted)}
.tile.sel{outline:2px solid var(--gold);outline-offset:1px}
.attn b.bad{color:var(--bad)}
.finbox{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.permgrid{display:grid;gap:12px;max-height:62vh;overflow:auto;padding-inline-end:4px}
.permgrid fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.permgrid fieldset.fin{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.permgrid legend{font-size:12.5px;font-weight:700;color:var(--gold-ink);padding:0 6px}
.ckgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.ckgrid.sheets{grid-template-columns:1fr;max-height:200px;overflow:auto}
.ck2{display:flex;gap:8px;align-items:center;font-size:13.5px;padding:4px 2px;cursor:pointer}
.ck2 input{width:18px;height:18px;accent-color:var(--gold)}
.pgrid6 .legend{max-width:360px;width:100%}
.attn b{white-space:nowrap}
.permgrid.worker > fieldset:not(:has([data-zn])):not(:has(#pAR)){display:none}

/* ===================== v7: attendance, clock, WO files ===================== */
.clock6{background:var(--rail);color:var(--rail-ink);border-radius:18px;padding:16px 20px;display:grid;gap:10px;position:relative;overflow:hidden}
.clock6::after{content:"";position:absolute;inset:auto -50px -70px auto;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(237,184,58,.25),transparent 65%);pointer-events:none}
.ck-time{font-family:var(--f-mono);font-size:40px;font-weight:600;letter-spacing:.02em;color:var(--gold-hi);direction:ltr;text-align:center;line-height:1.1}
.clock6.big .ck-time{font-size:52px}
.ck-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:relative;z-index:1}
.ck-dates div{display:grid;gap:2px;background:rgba(255,255,255,.06);border-radius:10px;padding:8px 10px}
.ck-l{font-size:11px;color:var(--rail-mut);font-weight:600}
.ck-dates b{font-size:14px;font-weight:600}
@media (max-width:480px){.ck-time{font-size:34px}.clock6.big .ck-time{font-size:42px}.ck-dates{grid-template-columns:1fr}}
.punch6{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;gap:12px}
.pst{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-weight:600}
.pbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn.big{padding:16px 12px;font-size:17px;font-weight:700;border-radius:14px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.camwrap{border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3;display:grid;place-items:center}
.camwrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.camwrap img{width:100%;height:100%;object-fit:contain}
.selfie{width:30px;height:30px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-inline-end:6px;cursor:zoom-in;background:var(--soft)}
.att6 td{vertical-align:middle}
.att6 tr[data-au]{cursor:pointer}
.gold{color:var(--gold-ink)} .bad{color:var(--bad)} .warn{color:var(--warn)} .ok{color:var(--ok)}
.segtabs.sm button{padding:5px 10px;font-size:13px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.hclock{align-items:stretch}
/* WO folders & files */
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.fold{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg);display:grid;gap:4px;text-align:start;cursor:pointer}
.fold:hover,.fold.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--card))}
.fold b{font-size:14px} .fold small{color:var(--muted)}
.files{display:grid;gap:6px}
.file{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:10px;background:var(--bg)}
.file .ic{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:var(--soft);font-size:20px;overflow:hidden}
.file .ic img{width:100%;height:100%;object-fit:cover}
.file small{color:var(--muted)}
.houses{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.house{border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--bg);display:grid;gap:2px;text-align:start}
.house b{font-family:var(--f-mono)} .house small{color:var(--muted);font-size:11.5px}
.house .cnt{font-size:11px;color:var(--gold-ink);font-weight:700}
.linkbox{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.linkbox input{flex:1 1 220px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-family:var(--f-mono);font-size:12.5px;direction:ltr}
.drop{border:2px dashed var(--line);border-radius:12px;padding:14px;text-align:center;color:var(--muted)}
.drop.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--card))}
.geo-last{font-size:12.5px;color:var(--muted)}
#hAtt{grid-template-columns:repeat(5,minmax(0,1fr))} @media (max-width:520px){#hAtt{grid-template-columns:repeat(3,minmax(0,1fr))}}
.folders.sub{margin:8px 0}.folders.sub .fold{background:var(--card)}
.hbar{display:flex;gap:3px;direction:ltr;margin:4px 0 2px}
.hbar i{flex:1;height:6px;border-radius:3px;background:var(--line)}
.hbar i.ok{background:var(--st-done)} .hbar i.mid{background:var(--st-hold)} .hbar i.bad{background:var(--bad)}
.lmap{height:440px;border-radius:12px;border:1px solid var(--line);overflow:hidden;z-index:0}
@media (max-width:640px){.lmap{height:340px}}
.lmap .leaflet-popup-content{font-family:var(--f-body);direction:rtl;text-align:right;font-size:13px}
.mapregs{display:flex;gap:6px;flex-wrap:wrap}
.hupl{display:grid;gap:8px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:12px;padding:10px 12px;margin:8px 0;background:color-mix(in srgb,var(--gold) 5%,var(--card))}
.hupl label{font-weight:700;font-size:13.5px}
.hq{display:flex;gap:8px;justify-content:flex-end;font-size:17px}
.hq span{cursor:pointer;padding:2px 6px;border-radius:6px;background:var(--card);border:1px solid var(--line)}
.hq span:hover{border-color:var(--gold)}
.wotip{font-family:var(--f-body);font-size:12.5px;text-align:center}
.wolbl span{display:inline-block;white-space:nowrap;background:rgba(30,28,24,.82);color:#fff;font:600 11px var(--f-mono);padding:1px 5px;border-radius:5px;direction:ltr}

/* ===== v8: Excel-like chrome (headers, tabs) ===== */
.xh{position:absolute;display:flex;align-items:center;justify-content:center;background:#F3F3F3;color:#444;font-family:"Segoe UI",Calibri,Arial,sans-serif;font-style:normal;box-sizing:border-box;border-right:1px solid #D4D4D4;border-bottom:1px solid #D4D4D4;z-index:5;user-select:none}
.xh.xcol{top:0}.xh.xrow{left:0}.xh.xc0{left:0;top:0;background:#E6E6E6}
.xh.on{background:#D3F0E0;color:#0E5C2F;font-weight:700;border-bottom:2px solid #217346}
.xh.xrow.on{border-bottom:1px solid #D4D4D4;border-right:2px solid #217346}
.gcorner{z-index:6}
.fbar{background:#fff;border-color:#D4D4D4;border-radius:6px}
.fbar #fAddr{min-width:64px;border-right:1px solid #D4D4D4;padding-right:10px;color:#217346;font-weight:700}
[dir="rtl"] .fbar #fAddr{border-right:0;border-left:1px solid #D4D4D4;padding-right:0;padding-left:10px}
.fbar #fVal::before{content:"fx";font-style:italic;color:#777;margin-inline-end:10px;font-family:Georgia,serif}
.xtabs{display:flex;gap:2px;overflow-x:auto;background:#F3F3F3;border:1px solid #D4D4D4;border-top:0;border-radius:0 0 8px 8px;padding:0 6px;direction:ltr;scrollbar-width:thin}
.xtabs a{flex:0 0 auto;padding:6px 14px;font-size:12.5px;color:#333;text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap;font-family:"Segoe UI",Calibri,"IBM Plex Sans Arabic",sans-serif}
.xtabs a:hover{background:#E8E8E8}.xtabs a.on{background:#fff;color:#217346;font-weight:700;border-bottom-color:#217346}
.gscroll{border-radius:8px 8px 0 0}
.btn.xlx{color:#217346;border-color:#217346}.btn.xlp{color:#B42318;border-color:#B42318}

/* ===== v8: FINANCIAL REQUEST ===== */
.prform{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:14px}
.prhd{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border-bottom:2px solid var(--ink,#222);padding-bottom:10px}
.prlogo{display:grid;justify-items:center;gap:2px}.prlogo small{font-size:9px;color:var(--muted)}
.prttl{display:grid;text-align:center;gap:2px;font-size:15px}
.prmeta{display:grid;gap:6px;font-size:13px}.prmeta input{padding:4px 6px}
.prrow2{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--soft);padding:6px 10px;border-radius:8px;font-size:13px}
.prlbl{font-weight:700;font-size:12.5px;color:var(--muted);display:block;margin-bottom:4px}
.prgrid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.prkv{display:grid;gap:8px}.prkv label{display:grid;gap:3px;font-size:12.5px;color:var(--muted)}.prkv input,.prkv select,.prkv textarea{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink,inherit)}
.prkv.bank{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.prwos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.prwos button{border:0;background:none;cursor:pointer;color:var(--bad);font-weight:700}
.prtbl th{background:#7F7F7F;color:#fff;font-size:11.5px}.prtbl input,.prtbl select{width:100%;min-width:70px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.prtbl td:nth-child(5) input{min-width:200px}.prtbl td:nth-child(3) select{min-width:118px}.prtbl td:nth-child(2) input{min-width:60px;max-width:90px}
.prfoot{display:grid;grid-template-columns:1fr minmax(240px,320px);gap:16px;align-items:start}
@media (max-width:760px){.prfoot{grid-template-columns:1fr}.prhd{grid-template-columns:1fr}}
.prtot{display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;padding:10px}.prtot div{display:flex;justify-content:space-between;align-items:center;gap:8px}.prtot .big{border-top:2px solid var(--line);padding-top:6px;font-size:17px}
.prsigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.prsigs .prlbl{grid-column:1/-1}
.prsig{border:1px dashed var(--line);border-radius:10px;padding:10px;display:grid;gap:4px}.prsig.ok{border-style:solid;border-color:var(--st-done);background:color-mix(in srgb,var(--st-done) 7%,transparent)}
tr.clk{cursor:pointer}.nowrap{white-space:nowrap}
#printRoot{display:none}
@media print{
  body.printing>*:not(#printRoot){display:none!important}
  body.printing #printRoot{display:block}
  @page{size:A4 landscape;margin:10mm}
  .prp-t{width:100%;border-collapse:collapse;font:10.5px Calibri,Arial,sans-serif;color:#000}
  .prp-t td{border:1px solid #000;padding:3px 5px;height:17px}
  .prp-t .hd td{background:#7F7F7F!important;color:#fff;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .prp-t .gap td{background:#D9D9D9!important;height:10px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .prp-t .c{text-align:center}.prp-t .r{text-align:right}.prp-title{text-align:center;font-size:13px}.prp-logo{text-align:center;font-size:8px}
  .prp-t .sigs{display:flex;gap:30px;border:0}.pbx{font-size:12px}
}

/* ===== v8: Survey report ===== */
.modal .sheet:has(.svwrap){max-width:min(1180px,96vw);width:96vw}
.svhead{display:flex;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:-1px;background:var(--card);z-index:5;padding-bottom:6px}
.svwrap{display:grid;gap:12px}.svwrap details>summary{cursor:pointer;padding:4px 0}
.svgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin-top:8px}
.svf{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}.svf input,.svf select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:inherit}
.svyn{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--ink,inherit)}.svyn label{display:flex;gap:4px;align-items:center}
.svbt input,.svbt select{width:100%;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.svphotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:8px}
.svslot{border:1px solid var(--line);border-radius:10px;padding:8px;display:grid;gap:6px;font-size:12px}.svslot.opt{opacity:.85}
.svimg{aspect-ratio:1.1;background:var(--soft);border-radius:8px;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:26px}.svimg img{width:100%;height:100%;object-fit:contain;background:#fff}
.svpop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;display:grid;place-items:center}
.svpopin{background:var(--card);border-radius:12px;padding:14px;width:min(900px,94vw);max-height:86vh;overflow:auto;display:grid;gap:10px}
.svpg{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.svpg button{border:1px solid var(--line);border-radius:8px;padding:4px;background:var(--card);cursor:pointer;display:grid;gap:3px}.svpg img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:var(--soft)}
.svtools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.svt i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:6px;border:1px solid rgba(0,0,0,.25)}.svt.on{outline:2px solid var(--gold);background:var(--soft)}
.svmap{height:min(62vh,560px);border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.svlbl span{background:#fff;color:#111;border:2px solid #111;border-radius:4px;padding:1px 6px;font:700 12px Arial;white-space:nowrap}
.svtip{font-weight:700}
.svact{position:sticky;bottom:-1px;background:var(--card);padding:8px 0;z-index:5}

/* ===== v9: WhatsApp status + task countdown ===== */
.wabox{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:8px;background:var(--card)}
.waline{display:grid;gap:6px;border-top:1px dashed var(--line);padding-top:8px}.waline:first-of-type{border-top:0;padding-top:0}
.wahead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.wasteps{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.wasteps li{display:grid;justify-items:center;gap:2px;min-width:74px;padding:6px 8px;border-radius:10px;background:var(--soft);opacity:.45;font-size:12px}
.wasteps li.on{opacity:1;background:color-mix(in srgb,var(--st-done) 12%,var(--card));border:1px solid color-mix(in srgb,var(--st-done) 40%,transparent)}
.wasteps i{font-style:normal;font-weight:700}.wasteps small{font-size:10.5px;color:var(--muted)}
.waasg{font-size:13px;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--st-hold) 12%,transparent)}.waasg.ok{background:color-mix(in srgb,var(--st-done) 14%,transparent)}
.wareaders{display:flex;gap:4px;flex-wrap:wrap;align-items:center;font-size:12px}
.rcbox.ok{border-color:color-mix(in srgb,var(--st-done) 45%,var(--line))}.rcbox.mismatch{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}
.prsig.info{border-style:solid;background:var(--soft)}
.pill.xs{font-size:10.5px;padding:1px 6px}
.tleft{font-size:11.5px;padding:2px 7px;border-radius:999px;background:var(--soft);white-space:nowrap}.tleft.soon{background:color-mix(in srgb,var(--st-hold) 18%,transparent)}.tleft.late{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}
.ttimer{text-decoration:none;color:inherit;display:grid}.ttimer:hover{outline:2px solid var(--gold);outline-offset:1px}
.tkwa{display:grid;gap:8px}.tkdl{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px;background:var(--soft);padding:8px 10px;border-radius:10px}
.tc-foot{flex-wrap:wrap;gap:4px}
/* v10 — صفحة التزامن */
.sycard{display:block;text-decoration:none;color:inherit;padding:12px 16px}
.sycard:hover{border-color:var(--gold-ink)}
.sy-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sy-row b{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.sy-row b svg{width:18px;height:18px}
.sy-ago{color:var(--muted);font-size:12px;margin-inline-start:auto}
.sy-kv{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;border-bottom:1px dashed var(--line);padding-bottom:6px}
.sy-kv span{color:var(--muted)} .sy-kv b{font-weight:600;text-align:end;overflow-wrap:anywhere}
.sy-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.sy-list{display:grid;gap:6px;max-height:360px;overflow:auto}
.sy-li{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}
.sy-li-b{display:grid;gap:1px;min-width:0;flex:1}
.sy-li-b small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sy-li-b small.bad{color:var(--bad);white-space:normal}
.sy-log{font:12px/1.55 ui-monospace,Consolas,monospace;background:var(--soft);border-radius:10px;padding:10px;max-height:420px;overflow:auto;white-space:pre-wrap;direction:ltr;text-align:left;margin:0}
.sy-log .bad{color:var(--bad)} .sy-log .ok{color:var(--ok)} .sy-log .info{color:var(--info)}
.prpayee{margin:8px 0 2px}.prpayee label{display:grid;gap:3px;font-size:12.5px;color:var(--muted);max-width:520px}.prpayee select{padding:8px 10px;border:1px solid var(--gold-ink);border-radius:8px;background:var(--card);color:var(--ink,inherit);font-weight:600}
.prrest{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.ghost.danger{background:transparent;color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.btn.danger:disabled{opacity:.45}

/* =================== v11 — واجهة بأسلوب Monday =================== */
:root{--sd-bg:#1F1E1B;--sd-ink:#D9D4C7;--sd-mut:#8f8a7e;--sd-hi:#34312A;--sd-line:#34322c}
aside{background:var(--sd-bg);color:var(--sd-ink);border-inline-end:0;gap:12px}
aside .brand b{color:#fff}aside .brand small{color:var(--sd-mut)}
aside nav.side a{color:var(--sd-ink);padding:8px 11px;font-weight:500;font-size:14px}
aside nav.side a:hover{background:#2B2925}
aside nav.side a.on{background:var(--sd-hi);color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}
[dir="rtl"] aside nav.side a.on{box-shadow:inset -3px 0 0 var(--gold)}
aside .navgrp{color:var(--sd-mut)}
aside .navcount{background:#3a3731;color:#EDE7D8}
aside .me{border-color:var(--sd-line);color:var(--sd-ink)}aside .me b{color:#fff}aside .me span{color:var(--sd-mut)!important}
aside .me .btn.ghost{color:var(--sd-ink);border-color:#3a3731;background:transparent}
aside .langsw{background:#2B2925;border-color:#3a3731}aside .langsw button{color:var(--sd-mut)}aside .langsw button.on{background:#3a3731;color:#fff}
aside .bell{background:#2B2925;border-color:#3a3731;color:var(--sd-ink)}
aside details.shnav summary{color:var(--sd-mut)}aside details.shnav a{color:var(--sd-ink)}
.kp-side{display:flex;align-items:center;gap:8px;width:100%;background:#2B2925;border:1px solid #3a3731;border-radius:9px;padding:8px 10px;color:#a29c8f;font-size:13px;text-align:start}
.kp-side span{flex:1}.kp-side kbd{font:11px var(--f-mono);background:#3a3731;border-radius:4px;padding:1px 6px;color:#d9d4c7}
.kp-side:hover{border-color:var(--gold)}
nav.side a.nreg{padding-block:6px;font-size:13px}nav.side a.nreg i{width:9px;height:9px;border-radius:3px;flex:none}
aside nav.side a.nreg .navcount{background:transparent;color:var(--sd-mut);font-weight:500}

/* لوحات */
.bhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.btabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.btab{border:0;background:none;padding:9px 14px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}
.btab.on{color:var(--ink);font-weight:700;border-color:var(--gold)}
.btab:hover{color:var(--ink)}
.bbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bsearch{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:0 10px;min-width:200px;flex:0 1 260px}
.bsearch input{border:0;background:none;padding:7px 0;outline:none;width:100%}
.bchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--ink);white-space:nowrap}
.bchip select{border:0;background:none;font:inherit;color:inherit;padding:0;max-width:170px;outline:none}
.bchip.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--card));color:var(--gold-ink);font-weight:600}
.bchip .dot{width:8px;height:8px;border-radius:3px;display:inline-block}
.bgrp{display:grid;gap:6px}
.bgh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bgh b{font-size:16px}.bcnt{color:var(--muted);font-size:12.5px}
.bcar{border:0;background:none;color:var(--gc);font-size:12px;padding:2px 4px}
.btw{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.btbl{border-collapse:separate;border-spacing:0;width:100%;min-width:900px;table-layout:fixed}
.btbl col.c-name{width:27%}.btbl col.c-ph{width:12%}.btbl col.c-st{width:11%}.btbl col.c-av{width:7%}.btbl col.c-tl{width:18%}.btbl col.c-sla{width:11%}.btbl col.c-pr{width:14%}.btbl col.c-wo{width:11%}
.btbl th{font-size:12px;color:var(--muted);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--line);border-inline-start:1px solid var(--line);background:var(--soft);text-align:center}
.btbl th.nm{text-align:start;padding-inline-start:14px}
.btbl td{height:40px;border-bottom:1px solid var(--line);border-inline-start:1px solid var(--line);padding:0 8px;font-size:13px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btbl td:first-child,.btbl th:first-child{border-inline-start:0}
.btbl td.nm{text-align:start;position:relative;padding-inline-start:14px}
.btbl td.nm::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:6px;background:var(--gc,var(--gold))}
.btbl td.nm a{color:inherit;text-decoration:none;display:flex;gap:8px;align-items:baseline;min-width:0;overflow:hidden}
.btbl td.nm a small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.btbl td.nm .id{font-size:12.5px;font-weight:600;flex:none}
.btbl td.nm .bpc{position:absolute;inset-inline-end:6px;top:10px;text-decoration:none}
.btbl tr:hover td{background:color-mix(in srgb,var(--gold) 5%,transparent)}
.btbl tr:hover td.bcell{filter:brightness(.97);background:inherit}
.btbl td.bcell{color:#fff;font-weight:600;font-size:12.5px;padding:0 4px}
.btbl td.bcell.click{cursor:pointer}.btbl td.bcell.click:hover{filter:brightness(.92)}
.btbl tr.bsum td{height:32px;background:var(--soft)}
.btbl tr.bmore td{text-align:start;padding:6px 14px}
.btbl tr:last-child td{border-bottom:0}
.bav{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:12px;font-weight:700;vertical-align:middle;flex:none}
.bav.none{background:var(--soft);color:var(--muted)}
.btl{position:relative;height:20px;border-radius:10px;background:#B9B2A3;overflow:hidden;color:#fff;font-size:11px;font-weight:600;line-height:20px;margin:0 4px}
.btl span{position:absolute;inset-block:0;inset-inline-start:0;border-radius:10px}
.btl b{position:relative;text-shadow:0 0 3px rgba(0,0,0,.45);font-weight:600}
.bprog{display:flex;align-items:center;gap:6px;margin:0 4px}.bprog>div,.bprog>span{flex:1;height:8px;border-radius:4px;background:var(--line);overflow:hidden;display:block}.bprog i{display:block;height:100%;background:#00C875}
.bprog small{font-size:11px;color:var(--muted);min-width:34px}
.bprog.inl{display:inline-flex;width:160px;vertical-align:middle}
.bdist{display:flex;height:14px;border-radius:3px;overflow:hidden;min-width:90px;margin:0 6px;gap:1px}
.bgh .bdist{flex:0 0 160px}
.btag{display:inline-block;border-radius:4px;padding:1px 7px;color:#fff;font-size:11.5px;font-weight:600;white-space:nowrap}
.cmenu{position:absolute;z-index:60;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px;display:grid;gap:6px;width:180px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.cmenu button{border:0;border-radius:6px;color:#fff;font-weight:600;padding:7px;font-size:13px}.cmenu button.cur{outline:2px solid var(--ink);outline-offset:1px}
/* كانبان */
.bkb{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;align-items:start;overflow-x:auto}
.bkcol{background:var(--soft);border-radius:12px;padding:10px;min-height:120px;transition:outline .1s}
.bkcol.over{outline:2px dashed var(--gold)}
.bkcol h3{margin:0 0 10px;font-size:14px;display:flex;align-items:center;gap:8px}.bkcol h3 i{width:10px;height:10px;border-radius:3px}.bkcol h3 em{font-style:normal;color:var(--muted);font-weight:500;font-size:12px}
.bkdrop{display:grid;gap:8px}
.bkc{background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--gc,var(--gold));border-radius:10px;padding:10px 12px;display:grid;gap:6px;color:inherit;text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.05);cursor:grab}
.bkc.drag{opacity:.55;transform:rotate(-1.5deg)}
.bkc .m{display:flex;gap:6px;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);flex-wrap:wrap}
.bkc .t{font-weight:600;font-size:13.5px}.bkc .f{display:flex;align-items:center;justify-content:space-between;font-size:12px}
/* جدول زمني */
.bgt{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:auto}
.bgr{display:grid;grid-template-columns:minmax(220px,300px) 1fr;border-bottom:1px solid var(--line);min-height:36px;min-width:820px}
.bgr:last-child{border-bottom:0}
.bgr .l{padding:6px 10px;border-inline-end:1px solid var(--line);font-size:12.5px;display:flex;gap:8px;align-items:center;overflow:hidden}
.bgr .l a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bgr .l small{color:var(--muted)}
.bgr .r{position:relative;background-image:repeating-linear-gradient(to left,transparent 0 calc(100%/14 - 1px),var(--line) calc(100%/14 - 1px) calc(100%/14))}
.bghd{position:sticky;top:0;background:var(--soft);z-index:2}.bghd .r{height:28px;background:none}
.bghd .r span{position:absolute;top:6px;font:11px var(--f-mono);color:var(--muted);transform:translateX(50%)}
.btoday{position:absolute;top:0;bottom:0;width:2px;background:#E2445C;z-index:1}
.bbarx{position:absolute;top:7px;height:22px;border-radius:11px;color:#fff;font-size:11px;font-weight:600;line-height:22px;white-space:nowrap;overflow:hidden;text-decoration:none;z-index:2;min-width:6px}
.bbarx i{position:absolute;inset-block:0;inset-inline-start:0;background:rgba(0,0,0,.16)}
.bbarx span{position:relative;padding:0 8px}
/* تقويم */
.bcalh{display:flex;align-items:center;gap:10px;margin-bottom:8px}.bcalh b{font-size:16px;min-width:150px;text-align:center}
.bcal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bcw{font-size:12px;color:var(--muted);text-align:center;padding:4px}
.bcd{background:var(--card);border:1px solid var(--line);border-radius:8px;min-height:96px;padding:4px 5px;display:flex;flex-direction:column;gap:3px;overflow:hidden}
.bcd.off{background:transparent;border-style:dashed}.bcd.today{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.bcd b{font-size:12px;color:var(--muted)}.bcd small{font-size:11px;color:var(--muted)}
.bce{display:block;color:#fff;border-radius:4px;padding:1px 5px;font-size:11px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* خريطة */
.bmap{height:min(70vh,620px);border-radius:12px;border:1px solid var(--line);overflow:hidden}
.blegend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:6px}.blegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:5px;vertical-align:middle}
/* بحث Ctrl+K */
.kp-ov{position:fixed;inset:0;background:rgba(20,19,17,.45);z-index:80;display:grid;place-items:start center;padding:10vh 12px 12px}
.kp{width:min(660px,100%);background:var(--card);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column;max-height:76vh}
.kp-q{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:16px}
.kp-q input{flex:1;border:0;background:none;outline:none;font-size:16px;padding:4px 0}
.kp-q kbd,.kp-k{font:11px var(--f-mono);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--muted)}
.kp-res{overflow:auto;padding:6px 8px}
.kp-res h4{margin:8px 8px 4px;font-size:11.5px;color:var(--muted);font-weight:600}
.kp-it{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:start;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--ink)}
.kp-it.on{background:color-mix(in srgb,var(--gold) 14%,var(--card))}
.kp-ic{width:28px;text-align:center;flex:none}.kp-t{display:grid;min-width:0;flex:1}.kp-t b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-t small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-k{margin-inline-start:auto;flex:none}
.kp-none{padding:24px;text-align:center;color:var(--muted)}
.kp-ft{border-top:1px solid var(--line);padding:7px 14px;font-size:11.5px;color:var(--muted)}
@media (max-width:860px){.bkb{grid-template-columns:repeat(4,minmax(220px,1fr))}.bsearch{flex:1 1 100%}.bcd{min-height:70px}.bce{font-size:10px}}

/* =================== Project Charter =================== */
.pckpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pck{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:2px}
.pck .v{font-size:24px;font-weight:700;line-height:1.15}.pck .l{color:var(--muted);font-size:12.5px}
.pck.ok .v{color:var(--ok)}.pck.warn .v{color:var(--warn)}.pck.bad .v{color:var(--bad)}
.pckpis.sm .pck .v{font-size:19px}
.pcchips{display:flex;gap:6px;flex-wrap:wrap}
.dgrid.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width:980px){.dgrid.g-2-1{grid-template-columns:1fr}}
.vz{width:100%;height:auto;display:block;overflow:visible}
.vzg{stroke:var(--line);stroke-width:1}.vzbase{stroke:var(--muted);stroke-width:1}
.vzax{fill:var(--muted);font-size:11px;font-family:var(--f-mono)}.vzlab{fill:var(--ink);font-size:12px;font-family:var(--f-body)}
.vzbig{fill:var(--ink);font-size:22px;font-weight:700;font-family:var(--f-body)}
.vzhit{cursor:pointer}.vzhit:hover rect{fill:color-mix(in srgb,var(--gold) 8%,transparent)}.vzhit.sel rect{fill:color-mix(in srgb,var(--gold) 14%,transparent)}
.vzleg{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:6px}.vzleg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:6px;vertical-align:middle}
.vzleg.col{display:grid;gap:6px}.vzleg b{color:var(--ink);margin-inline-start:6px}
.vzdon{display:grid;grid-template-columns:170px 1fr;gap:14px;align-items:center}@media (max-width:520px){.vzdon{grid-template-columns:1fr}}
.vzhb{display:grid;gap:8px}.vzhr{display:grid;grid-template-columns:96px 1fr 60px;gap:8px;align-items:center;color:inherit;text-decoration:none;font-size:12.5px}
.vzhr div{display:grid;gap:2px}.vzhr div i{display:block;height:9px;border-radius:0 4px 4px 0}[dir="rtl"] .vzhr div i{border-radius:4px 0 0 4px}
.vztip{position:fixed;z-index:90;background:#1F1E1B;color:#fff;font-size:12.5px;padding:6px 10px;border-radius:8px;pointer-events:none;box-shadow:0 6px 16px rgba(0,0,0,.25);max-width:260px}
.pcph{display:grid;gap:10px}.pcphr{display:grid;grid-template-columns:150px 1fr 32px;gap:8px;align-items:center;font-size:13px}.pcphr span i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-inline-end:6px}
.pcphr div{height:12px;background:var(--line);border-radius:6px;overflow:hidden}.pcphr div i{display:block;height:100%}
.pctbl{min-width:860px}.dotl{display:inline-flex;align-items:center;gap:6px}.dotl i{width:9px;height:9px;border-radius:3px}
.pcbox{border-inline-start:4px solid var(--gold)}
.pcdoc{max-width:980px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.pccover{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:22px 26px;background:linear-gradient(135deg,#1F1E1B,#3a3428);color:#fff}
.pccover small{color:#cdbf9a;letter-spacing:.06em;font-size:11px}.pccover h1{margin:2px 0;font-size:26px;color:var(--gold-hi)}.pccover p{margin:0;color:#e9e3d5}
.pcact{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pccover .btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff}.pccover .btn.primary{background:var(--gold);color:#1F1E1B}
.pcprops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding:14px 26px;border-bottom:1px solid var(--line)}
.pcprop{display:grid;grid-template-columns:140px 1fr;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13.5px;align-items:center}
.pcprop span{color:var(--muted)}.pcprop b{font-weight:500;overflow-wrap:anywhere}
.pcsec{padding:18px 26px;border-bottom:1px solid var(--line);display:grid;gap:10px}
.pcsec h2{font-size:17px;margin:0}.pcsec h4{margin:6px 0 2px;font-size:13.5px;color:var(--muted)}
.pcp{margin:0;line-height:1.8}
.pcsec textarea,.pcsec input,.pcsec select,.pcbud input{width:100%;border:1px solid var(--gold);border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--gold) 5%,var(--card));font:inherit;color:inherit}
.pc2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pcfolder{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.pcfolder code{background:var(--soft);padding:3px 8px;border-radius:6px;font-size:12px;overflow-wrap:anywhere}
.pcfk details{border:1px solid var(--line);border-radius:10px;padding:6px 12px;margin-bottom:6px}.pcfk summary{cursor:pointer;font-weight:600}.pcfk summary em{font-style:normal;color:var(--muted);font-weight:500;margin-inline-start:6px}
.pcfk ul{margin:6px 0;padding-inline-start:18px;display:grid;gap:4px;font-size:13px}.pcfk li small{color:var(--muted);margin-inline-start:8px;font-size:11.5px}
.pcfk button.lnk{border:0;background:none;padding:0;color:var(--info);cursor:pointer;font:inherit;text-decoration:underline}
.pcms{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pcm{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:6px;font-size:13px}.pcm>i{width:100%;height:4px;border-radius:2px}.pcm.done{background:color-mix(in srgb,#00C875 6%,var(--card))}
.pctk{display:grid;gap:6px}.pctki{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px;color:inherit;text-decoration:none}.pctki span[dir]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pctki small.bad{color:var(--bad);font-weight:700}
.pct{width:100%;border-collapse:collapse;font-size:13px}.pct th{background:var(--soft);color:var(--muted);font-weight:600;padding:7px 8px;text-align:start;font-size:12px}.pct td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.pct.boq td.ds{max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pct td.warnc{color:var(--warn);font-weight:700}.pct tfoot td{border-top:2px solid var(--ink);border-bottom:0}
.pcdisc{display:flex;gap:16px;flex-wrap:wrap;font-size:13px}.pcdisc i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:6px;vertical-align:middle}
.pcown{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.pcown span{display:inline-flex;gap:6px;align-items:center}.pcown small{color:var(--muted)}
.pcbudbar{display:grid;gap:4px}.pcbudbar>div{display:flex;height:14px;background:var(--line);border-radius:7px;overflow:hidden;gap:2px}.pcbudbar small{color:var(--muted)}
.pcbud{display:grid;gap:4px;font-size:13px;color:var(--muted);max-width:420px}
.pcsig{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.pcsig>div{display:grid;gap:4px;border-top:2px solid var(--ink);padding-top:6px;font-size:13px}.pcsig span{color:var(--muted)}.pcsig small{color:var(--muted)}
.pcdoc.editing .pccover{background:linear-gradient(135deg,#3a3428,#5a4a22)}
@media (max-width:760px){.pcprops,.pc2,.pcms{grid-template-columns:1fr}.pccover{grid-template-columns:1fr}.pcact{justify-content:flex-start}.pcprop{grid-template-columns:110px 1fr}.pcsig{grid-template-columns:1fr}.pcsec,.pcprops,.pccover{padding-inline:16px}}
@media print{
  aside,.topbar,nav.tabs,.noprint,.toast,#vzTip{display:none!important}
  #app{display:block}main{padding:0}.wrap{max-width:none}
  .pcdoc{border:0;border-radius:0;max-width:none}.pcsec{break-inside:avoid-page}
  .pccover{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .btag,.bcell,.bprog i,.pcbudbar i,.vz path{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pcfk details{display:block}.pcfk details>*{display:block}
}
