/* بوابة الأمانات — الأستوديوهات التصميمية (v12.11.109)
   Visual identity: teal side panel, warm off-white page and white cards. */
:root{
  /* v12.11.153: colours from the Saudi Architecture Map — Najd's mud brown, a charcoal-brown side panel, gypsum-white pages; the regions'
     colours (Najd, the East, Hijaz, the South) as accents. Chart slots validated (dataviz validator, light on #FFFFFF, dark on #201A16). */
  --bg:#F6F1E8;--surface:#FFFFFF;--surface2:#FBF8F2;--line:#E4DACB;--line2:#EFE8DC;
  --ink:#251B14;--ink2:#47392E;--ink3:#685849;--mute:#85766A;--mute-soft:#F2ECE2;
  --primary:#8E5F36;--primary-2:#6F4826;--primary-ink:#FFFFFF;--primary-soft:#F3E8DB;--primary-line:#E3CDB3;
  --navy:#1F6F95;--navy-soft:#E5F0F5;--gold:#A8741A;--gold-soft:#F5EBD8;--gold-2:#D9A05B;
  --ok:#0B7A3E;--ok-soft:#E3F3E9;--warn:#8A5B00;--warn-soft:#FBF1D9;--bad:#B42318;--bad-soft:#FBE7E4;--info:#1F6F95;--info-soft:#E5F0F5;
  --side:#3F2E25;--side-2:#4B382D;--side-ink:#FFFFFF;--side-mute:rgba(255,255,255,.7);--side-line:rgba(255,255,255,.13);
  --najd:#9A6B3F;--east:#2F7FA6;--hijaz:#3E7D5A;--south:#A0453B;
  /* chart slots (validated: Hijaz green, Najdi ochre, East blue) */
  --s1:#13866F;--s2:#C27919;--s3:#3366CC;--grid:#ECE5D9;--axis:#D3C8B8;
  --st-good:#0CA30C;--st-warn:#FAB219;--st-crit:#D03B3B;
  --shadow:0 1px 2px rgba(37,27,20,.05),0 6px 20px rgba(37,27,20,.06);--shadow-lg:0 20px 50px rgba(37,27,20,.2);
  --radius:18px;--font:'IBM Plex Sans Arabic',-apple-system,'Segoe UI',Tahoma,sans-serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#17120F;--surface:#201A16;--surface2:#261F1A;--line:#3A3029;--line2:#2E2620;
  --ink:#F4EDE5;--ink2:#D8CCBF;--ink3:#B1A293;--mute:#9A8B7D;--mute-soft:#2A221C;
  --primary:#D3A577;--primary-2:#E8C59E;--primary-ink:#24170D;--primary-soft:#3A2B1E;--primary-line:#5A4229;
  --navy:#7FB7D9;--navy-soft:#1B2A33;--gold:#D4A24C;--gold-soft:#33291A;--gold-2:#D9A05B;
  --ok:#6FD39A;--ok-soft:#173326;--warn:#F2C25C;--warn-soft:#352A12;--bad:#F1897C;--bad-soft:#3A1F1B;--info:#7FB7D9;--info-soft:#1B2A33;
  --side:#241B16;--side-2:#2F241D;--side-mute:rgba(255,255,255,.66);--side-line:rgba(255,255,255,.1);
  --s1:#34A483;--s2:#C4832C;--s3:#6A90E6;--grid:#30271F;--axis:#4A3D32;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);--shadow-lg:0 24px 60px rgba(0,0,0,.5);color-scheme:dark}}
:root[data-theme=dark]{
  --bg:#17120F;--surface:#201A16;--surface2:#261F1A;--line:#3A3029;--line2:#2E2620;
  --ink:#F4EDE5;--ink2:#D8CCBF;--ink3:#B1A293;--mute:#9A8B7D;--mute-soft:#2A221C;
  --primary:#D3A577;--primary-2:#E8C59E;--primary-ink:#24170D;--primary-soft:#3A2B1E;--primary-line:#5A4229;
  --navy:#7FB7D9;--navy-soft:#1B2A33;--gold:#D4A24C;--gold-soft:#33291A;--gold-2:#D9A05B;
  --ok:#6FD39A;--ok-soft:#173326;--warn:#F2C25C;--warn-soft:#352A12;--bad:#F1897C;--bad-soft:#3A1F1B;--info:#7FB7D9;--info-soft:#1B2A33;
  --side:#241B16;--side-2:#2F241D;--side-mute:rgba(255,255,255,.66);--side-line:rgba(255,255,255,.1);
  --s1:#34A483;--s2:#C4832C;--s3:#6A90E6;--grid:#30271F;--axis:#4A3D32;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);--shadow-lg:0 24px 60px rgba(0,0,0,.5);color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 var(--font);min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--primary)}
[hidden]{display:none!important}
.noscript{padding:40px;text-align:center}
.boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--ink3)}
.boot i{width:28px;height:28px;border-radius:50%;border:3px solid var(--primary-soft);border-top-color:var(--primary);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
::selection{background:var(--primary-soft)}

/* ================================================================ shell: teal side panel + page */
.shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;z-index:30}
.side-brand{display:flex;align-items:center;gap:12px;padding:20px 20px 16px;text-decoration:none;color:inherit}
.side-brand b{display:block;font-size:17px;line-height:1.3}
.side-brand small{display:block;font-size:12px;color:var(--side-mute)}
.side-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0 10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
.side-sec{font-size:12px;color:var(--side-mute);padding:14px 26px 6px;letter-spacing:.2px}
.side-nav a{position:relative;display:flex;align-items:center;gap:12px;margin:2px 0 2px 0;padding:11px 22px 11px 16px;margin-right:14px;border-radius:0 0 0 0;color:var(--side-ink);text-decoration:none;font-weight:600;font-size:15px;border-top-right-radius:999px;border-bottom-right-radius:999px;transition:background .15s}
.side-nav a svg{width:21px;height:21px;flex:none;opacity:.95}
.side-nav a:hover{background:rgba(255,255,255,.08)}
.side-nav a.on{background:var(--bg);color:var(--ink)}
.side-nav a.on svg{color:var(--primary)}
.side-nav a.on::before,.side-nav a.on::after{content:'';position:absolute;left:0;width:22px;height:22px;background:transparent;pointer-events:none}
.side-nav a.on::before{top:-22px;border-bottom-left-radius:22px;box-shadow:-6px 6px 0 6px var(--bg)}
.side-nav a.on::after{bottom:-22px;border-top-left-radius:22px;box-shadow:-6px -6px 0 6px var(--bg)}
.side-nav .badge{margin-inline-start:auto;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--gold-2);color:#2b1b05;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.side-nav a.on .badge{background:var(--gold-soft);color:var(--gold)}
.side-alert{margin:8px 14px 0;padding:11px 13px;border-radius:14px;background:rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.12);font-size:12.5px;line-height:1.6;display:block;color:var(--side-ink);text-decoration:none}
.side-alert b{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#FFD9A0}
.side-alert b svg{width:15px;height:15px}
.side-out{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 14px 8px;padding:11px;border-radius:999px;border:0;background:var(--bg);color:var(--ink);font-weight:600;cursor:pointer}
.side-out svg{width:19px;height:19px}
.side-user{display:flex;align-items:center;gap:10px;margin:0 14px 14px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.08);color:inherit;text-decoration:none;min-width:0}
.side-user .av{width:38px;height:38px;border-radius:50%;background:#fff;color:var(--side);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.side-user b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-user small{display:block;font-size:11.5px;color:var(--side-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-user>span{min-width:0}
.page{min-width:0;display:flex;flex-direction:column;position:relative}
.topbar{display:flex;align-items:center;gap:10px;padding:18px 32px 0}
.topbar .sp{flex:1}
.ibtn{position:relative;width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink2);transition:border-color .15s,background .15s}
.ibtn:hover{border-color:var(--primary);color:var(--primary)}
.ibtn svg{width:19px;height:19px}
.ibtn .dotc{position:absolute;top:-5px;left:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}
.menu-btn{display:none}
main{padding:14px 32px 70px;max-width:1500px;width:100%;position:relative;z-index:1}
.wm{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55}
.scrim-side{display:none}

/* page head: breadcrumb + title (start), actions + date (end) */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 0 18px;padding-bottom:18px;position:relative}
.crumbs{font-size:12.5px;color:var(--ink3);display:flex;gap:6px;align-items:center;margin-bottom:4px}
.crumbs i{font-style:normal;opacity:.6}
.page-head h1{margin:0;font-size:26px;line-height:1.35;display:flex;align-items:center;gap:10px}
.page-head h1 svg{width:24px;height:24px;color:var(--primary)}
.page-head p{margin:2px 0 0;color:var(--ink3);font-size:14px}
.page-head .acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.today{font-size:13px;color:var(--ink3);white-space:nowrap}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grow{flex:1}

/* ================================================================ controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 18px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,transform .08s}
.btn:hover{border-color:var(--primary)}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn svg{width:18px;height:18px;flex:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 28%,transparent)}
.btn.primary:hover{background:var(--primary-2);border-color:var(--primary-2)}
.btn.soft{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--primary-2)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--primary)}
.btn.ghost:hover{background:var(--primary-soft)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.btn.danger:hover{background:var(--bad-soft)}
.btn.sm{min-height:34px;padding:5px 12px;font-size:13px;border-radius:10px}
.btn.icon{width:42px;padding:0}
.btn.sm.icon{width:34px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-weight:600;font-size:13px;color:var(--ink3)}
.input,select.input,textarea.input{width:100%;min-height:42px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}
textarea.input{min-height:90px;resize:vertical}
.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 16%,transparent)}
.input[dir=ltr]{text-align:right}
.hint{font-size:12.5px;color:var(--ink3)}
.err{color:var(--bad);font-size:13px}
.check{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--primary)}

/* ================================================================ cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:20px}
.card h2,.card h3{margin:0 0 4px;font-size:17px}
.card .sub{color:var(--ink3);font-size:13.5px;margin:0}
.card-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.card-h h3{margin:0;font-size:16.5px}
.card-h p{margin:2px 0 0;color:var(--ink3);font-size:13px}
.grid{display:grid;gap:16px}
.grid.tracks{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.grid.kpis{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.grid.c2{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
.grid.split{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.kpi{padding:16px 18px}
.kpi span{display:block;color:var(--ink3);font-size:13px}
.kpi b{display:block;font-size:26px;line-height:1.3;margin-top:4px}
.kpi small{color:var(--ink3);font-size:12px}
.mt{margin-top:16px}.mb{margin-bottom:16px}
.muted{color:var(--ink3)}
.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:28px 0 12px}
.section-title h2{margin:0;font-size:18px}
.section-title p{margin:2px 0 0;color:var(--ink3);font-size:13px}
.section-title a{font-size:13.5px;font-weight:600}

/* headline KPI cards (v12.11.156: cards, no longer rings) */
.rings{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}
.rk{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 20px 16px;overflow:hidden;min-height:150px}
.rk::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:var(--arc,var(--primary));opacity:.85}
.rk .kp-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.rk .kp-ic{flex:none;width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--track,var(--primary-soft));color:var(--arc,var(--primary))}
.rk .kp-ic svg{width:19px;height:19px}
.rk .kp-l{font-size:14px;font-weight:700;color:var(--ink2);line-height:1.45}
.rk .kp-v{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.rk .kp-v b{font-size:34px;font-weight:700;line-height:1.15;color:var(--ink);letter-spacing:-.3px}
.rk .kp-of{font-size:15px;font-weight:600;color:var(--ink3)}
.rk .kp-s{margin:0;font-size:12.5px;line-height:1.7;color:var(--ink3)}
.rk .kp-m{margin-top:auto;padding-top:10px}
.rk .kp-tr{display:block;height:8px;border-radius:4px;background:var(--track,var(--primary-soft));overflow:hidden}
.rk .kp-tr i{display:block;height:100%;border-radius:4px;background:var(--arc,var(--primary));transition:width .6s cubic-bezier(.2,.8,.2,1)}
.rk .kp-mc{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:12px;color:var(--ink3)}
.rk .kp-mc b{font-weight:700;color:var(--ink2)}
.rk.teal{--arc:var(--primary);--track:var(--primary-soft)}
.rk.navy{--arc:var(--navy);--track:var(--navy-soft)}
.rk.gold{--arc:var(--gold);--track:var(--gold-soft)}
.rk.muted{--arc:var(--mute);--track:var(--mute-soft)}

/* filter bar */
.fbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:14px 16px;margin-bottom:18px}
.fbar .field{min-width:150px}
.fbar .presets{display:flex;gap:6px;flex-wrap:wrap;margin-inline-start:auto}
.pill{flex:none;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2);white-space:nowrap;transition:all .15s}
.pill:hover{border-color:var(--primary)}
.pill.on{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary-2)}
.busy{opacity:.55;transition:opacity .2s;pointer-events:none}

/* track tiles */
.tt{padding:18px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;text-decoration:none;color:inherit}
.tt:hover{border-color:var(--primary-line);box-shadow:0 10px 28px rgba(15,27,20,.08);transform:translateY(-2px)}
.tt-h{display:flex;align-items:center;gap:12px}
.tt-h b{font-size:15.5px;display:block}
.tt-h small{display:block;color:var(--ink3);font-size:12px}
.tt-n{display:flex;align-items:baseline;gap:8px}
.tt-n b{font-size:30px;line-height:1.1;font-weight:700}
.tt-n span{color:var(--ink3);font-size:13px}
.tt-k{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink3)}
.tt-k strong{color:var(--ink);font-weight:700}

/* stat tiles (indicators) */
.stats{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:16px}
.stat{padding:16px 18px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}
.stat .k{display:flex;align-items:center;gap:8px;color:var(--ink3);font-size:13px;font-weight:600}
.stat .k svg{width:16px;height:16px;color:var(--primary)}
.stat .v{font-size:28px;font-weight:700;line-height:1.25}
.stat .v small{font-size:14px;font-weight:600;color:var(--ink3);margin-inline-start:4px}
.stat .d{font-size:12.5px;color:var(--ink3)}
.stat .meter{height:6px;border-radius:3px;background:var(--primary-soft);overflow:hidden;margin-top:6px}
.stat .meter i{display:block;height:100%;border-radius:3px;background:var(--primary)}

/* ================================================================ charts (inline SVG / HTML) */
.chart{position:relative}
.chart svg{display:block;width:100%;overflow:visible;direction:ltr}
.chart .gl{stroke:var(--grid);stroke-width:1}
.chart .bl{stroke:var(--axis);stroke-width:1}
.chart text{fill:var(--ink3);font-size:11px;font-family:var(--font)}
.chart .hit{fill:transparent;cursor:pointer}
.chart .hl{fill:var(--ink);opacity:0;transition:opacity .12s}
.chart g.col:hover .hl,.chart g.col:focus .hl{opacity:.045}
.chart .ln{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .ar{opacity:.1}
.chart .pt{stroke:var(--surface);stroke-width:2}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink3);margin-top:10px}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend i.l{height:3px;border-radius:2px;width:16px}
.legend i.na{background:transparent;border:1.5px dashed var(--line)}
.tip{position:fixed;z-index:90;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px;font-size:12.5px;min-width:150px;max-width:280px;opacity:0;transition:opacity .1s}
.tip.on{opacity:1}
.tip .t{color:var(--ink3);margin-bottom:6px;font-weight:600}
.tip .r{display:flex;align-items:center;gap:8px;justify-content:space-between}
.tip .r span{display:flex;align-items:center;gap:6px;color:var(--ink3)}
.tip .r i{width:12px;height:3px;border-radius:2px;display:inline-block}
.tip .r b{color:var(--ink);font-size:13.5px}
.hb{display:flex;flex-direction:column;gap:9px}
.hb .r{display:grid;grid-template-columns:minmax(110px,34%) 1fr auto;gap:12px;align-items:center;font-size:13px;padding:2px 4px;border-radius:8px;cursor:default}
.hb .r:hover{background:var(--surface2)}
.hb .r.em .lbl{color:var(--ink);font-weight:700}
.hb .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}
.hb .trk{height:12px;position:relative}
.hb .trk i{position:absolute;top:0;bottom:0;right:0;border-radius:0 0 0 0;border-top-left-radius:4px;border-bottom-left-radius:4px;background:var(--s1);min-width:2px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.hb .r.dim .trk i{background:color-mix(in srgb,var(--s1) 38%,var(--line))}
.hb .v{display:flex;align-items:baseline;gap:6px;justify-content:flex-end;font-weight:700;min-width:44px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hb .v small{color:var(--ink3);font-weight:500;font-size:11.5px;min-width:42px;text-align:left}
.ctog{display:flex;gap:4px}
.ctog button{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--ink3);cursor:pointer}
.ctog button.on{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary-2)}
.ctable{max-height:340px;overflow:auto}
.heat td.c{padding:5px 4px}
.hc{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:46px;height:30px;border-radius:8px;font-size:12px;font-weight:700}
.hc.good{background:var(--ok-soft);color:var(--ok)}.hc.warn{background:var(--warn-soft);color:var(--warn)}.hc.bad{background:var(--bad-soft);color:var(--bad)}.hc.mid{background:var(--info-soft);color:var(--info)}.hc.na{background:transparent;border:1px dashed var(--line);color:var(--mute)}.hc.open{background:var(--mute-soft);color:var(--mute)}

/* ================================================================ weekly upload */
.banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;margin-bottom:16px;background:linear-gradient(135deg,var(--primary-soft),var(--surface) 70%);border:1px solid var(--line);border-radius:var(--radius)}
.banner b{font-size:16px}
.banner .meter{flex:1;min-width:180px;height:10px;border-radius:5px;background:var(--surface);border:1px solid var(--line2);overflow:hidden}
.banner .meter i{display:block;height:100%;background:var(--primary);border-radius:5px;transition:width .4s}
.weeks{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:14px;scrollbar-width:thin}
.weeks button{flex:none;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2)}
.weeks button.on{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.tc{display:flex;flex-direction:column;gap:12px;padding:18px}
.tc-head{display:flex;align-items:flex-start;gap:12px}
.tc-ico{width:44px;height:44px;border-radius:13px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:none}
.tc-ico svg{width:22px;height:22px}
.tc-ico.gold{background:var(--gold-soft);color:var(--gold)}.tc-ico.navy{background:var(--navy-soft);color:var(--navy)}
.tc-head b{display:block;font-size:15.5px}
.tc-head small{display:block;color:var(--ink3);font-size:12.5px}
.tc-st{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tc-note{font-size:13px;padding:9px 11px;border-radius:12px;background:var(--bad-soft);color:var(--bad)}
.tc-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.todo{display:flex;flex-direction:column;gap:8px}
.todo a,.todo div{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--line2);text-decoration:none;color:inherit;font-size:13.5px}
.todo svg{width:18px;height:18px;color:var(--primary);flex:none}
.todo .chip{margin-inline-start:auto}

/* chips & dots */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;background:var(--mute-soft);color:var(--mute)}
.chip::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.chip.plain::before{display:none}
.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.wait{background:var(--info-soft);color:var(--info)}.chip.bad{background:var(--bad-soft);color:var(--bad)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.nil{background:var(--mute-soft);color:var(--mute)}.chip.teal{background:var(--primary-soft);color:var(--primary-2)}
.dot{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--line)}
.dot.ok{background:var(--ok)}.dot.wait{background:var(--info)}.dot.bad{background:var(--bad)}.dot.warn{background:var(--warn)}.dot.nil{background:color-mix(in srgb,var(--ok) 45%,var(--line))}.dot.na{background:transparent;border:1.5px dashed var(--line)}

/* tables */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
table.t{width:100%;border-collapse:collapse;font-size:13.5px}
table.t th{position:sticky;top:0;background:var(--surface2);color:var(--ink3);font-weight:600;font-size:12.5px;text-align:right;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
table.t td{padding:11px 14px;border-bottom:1px solid var(--line2);vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
table.t tr.click{cursor:pointer}
table.t tr.click:hover td{background:var(--surface2)}
table.t td.num,table.t th.num{font-variant-numeric:tabular-nums;white-space:nowrap}
table.t td.nw{white-space:nowrap}
table.t td .clip{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.matrix td,table.matrix th{text-align:center}
table.matrix td:first-child,table.matrix th:first-child{text-align:right;white-space:nowrap}
.mcell{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:5px 9px;border-radius:9px;font-size:12px;font-weight:600;border:0;cursor:pointer;background:var(--mute-soft);color:var(--mute);text-decoration:none}
.mcell.ok{background:var(--ok-soft);color:var(--ok)}.mcell.wait{background:var(--info-soft);color:var(--info)}.mcell.bad{background:var(--bad-soft);color:var(--bad)}.mcell.warn{background:var(--warn-soft);color:var(--warn)}.mcell.na{background:transparent;color:var(--mute);border:1px dashed var(--line);cursor:default}.mcell.nil{background:var(--surface2);color:var(--ok)}
.minibar{display:flex;align-items:center;gap:8px}
.minibar span{flex:1;min-width:60px;height:7px;border-radius:4px;background:var(--line2);overflow:hidden}
.minibar span i{display:block;height:100%;background:var(--s1);border-radius:4px}
.minibar b{font-variant-numeric:tabular-nums;min-width:38px;text-align:left}
.empty{padding:40px 20px;text-align:center;color:var(--ink3)}
.empty svg{width:42px;height:42px;display:block;margin:0 auto 10px;color:var(--mute);padding:9px;border-radius:50%;background:var(--mute-soft)}
.empty.dashed{border:1.5px dashed var(--line);border-radius:var(--radius);background:transparent;box-shadow:none}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 4px;color:var(--ink3);font-size:13px}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.filters .field{min-width:150px}
.tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px;scrollbar-width:thin}
.tabs button{flex:none;display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink2)}
.tabs button svg{width:17px;height:17px}
.tabs button.on{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}

/* library */
.lib{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.doc{padding:16px;display:flex;flex-direction:column;gap:10px}
.doc-h{display:flex;gap:12px;align-items:flex-start}
.fx{width:46px;height:54px;border-radius:10px;flex:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:7px;font-size:11px;font-weight:800;letter-spacing:.5px;color:#fff;position:relative;background:var(--mute);text-transform:uppercase}
.fx::before{content:'';position:absolute;top:0;left:0;width:14px;height:14px;background:linear-gradient(225deg,transparent 50%,rgba(255,255,255,.45) 50%);border-bottom-right-radius:4px}
.fx.pdf{background:#C2413A}.fx.doc,.fx.docx{background:#2F5BB0}.fx.xls,.fx.xlsx{background:#1E7D4E}.fx.ppt,.fx.pptx{background:#C4622D}.fx.dwg,.fx.dxf{background:#5B4BB0}.fx.jpg,.fx.jpeg,.fx.png,.fx.webp{background:#B07C18}.fx.zip{background:#4B5563}
.doc-h b{display:block;font-size:15px;line-height:1.45}
.doc-h small{display:block;color:var(--ink3);font-size:12.5px;margin-top:2px}
.doc p{margin:0;font-size:13px;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-m{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--ink3)}
.doc-m span{display:inline-flex;align-items:center;gap:5px}
.doc-m svg{width:14px;height:14px}
.doc-a{display:flex;gap:6px;margin-top:auto;padding-top:4px}

/* modal */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(10,20,18,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .15s ease}
.modal{background:var(--surface);border-radius:22px;box-shadow:var(--shadow-lg);width:min(980px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;animation:pop .18s ease}
.modal.sm{width:min(500px,100%)}
.modal.md{width:min(680px,100%)}
.modal-h{display:flex;align-items:flex-start;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-h h3{margin:0;font-size:18px}
.modal-h p{margin:2px 0 0;color:var(--ink3);font-size:13.5px}
.modal-b{padding:18px 22px;overflow:auto}
.modal-f{display:flex;gap:8px;justify-content:flex-start;padding:14px 22px;border-top:1px solid var(--line);flex-wrap:wrap;background:var(--surface2)}
@keyframes fade{from{opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.drop{display:block;border:2px dashed var(--primary-line);border-radius:18px;padding:30px 18px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface2)}
.drop:hover,.drop.over{border-color:var(--primary);background:var(--primary-soft)}
.drop svg{display:block;margin:0 auto;width:42px;height:42px;color:var(--primary)}
.drop span{display:block;margin-top:4px}
.drop b{display:block;font-size:16px;margin-top:8px}
.sumbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.sumbar .chip{font-size:13px;padding:6px 12px}
.errlist{max-height:260px;overflow:auto;border:1px solid color-mix(in srgb,var(--bad) 35%,var(--line));border-radius:14px}
.errlist table.t td{color:var(--ink)}
.form2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form2 .full{grid-column:1/-1}

/* notifications panel */
.pop{position:fixed;z-index:70;width:min(380px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .15s ease}
.pop h4{margin:0;padding:14px 16px;border-bottom:1px solid var(--line);font-size:15px}
.pop .it{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--line2);text-decoration:none;color:inherit;font-size:13.5px}
.pop .it:hover{background:var(--surface2)}
.pop .it svg{width:18px;height:18px;color:var(--primary);flex:none;margin-top:2px}
.pop .it small{display:block;color:var(--ink3);font-size:12px}
.pop .none{padding:26px 16px;text-align:center;color:var(--ink3);font-size:13.5px}

/* toast */
.toasts{position:fixed;bottom:18px;left:18px;right:18px;z-index:95;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{pointer-events:auto;max-width:560px;width:100%;padding:12px 16px;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:0 12px 30px rgba(0,0,0,.25);font-weight:600;animation:pop .2s ease}
.toast.bad{background:var(--bad);color:#fff}.toast.ok{background:var(--ok);color:#fff}

/* ================================================================ sign-in */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.auth-side{background:radial-gradient(900px 520px at 105% -8%,rgba(217,160,91,.16),transparent 62%),linear-gradient(170deg,#2E211A,var(--side) 55%,#4A3428);color:#fff;padding:52px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-side h1{font-size:36px;line-height:1.35;margin:20px 0 10px}
.auth-side p{opacity:.9;max-width:520px;margin:0;font-size:15.5px}
.auth-side ul{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px;position:relative;z-index:1}
.auth-side li{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);font-size:14px}
.auth-side li svg{width:20px;height:20px;flex:none;opacity:.95}
.auth-side small{opacity:.8;position:relative;z-index:1}
.auth-main{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--bg)}
.auth-card{width:min(430px,100%);padding:32px 30px}
.auth-card h2{margin:0 0 4px;font-size:25px}
.auth-card .sub{margin:0 0 20px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:14px;background:var(--line2);margin-bottom:18px}
.seg button{border:0;background:transparent;border-radius:10px;padding:9px;font-weight:700;cursor:pointer;color:var(--ink3);font-size:13.5px}
.seg button.on{background:var(--surface);color:var(--primary-2);box-shadow:var(--shadow)}
.stack{display:flex;flex-direction:column;gap:14px}

/* misc */
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:12px 0}
.kv div{padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--line2)}
.kv span{display:block;font-size:12px;color:var(--ink3)}
.kv b{display:block;font-size:14px;overflow-wrap:anywhere}
.secret{font:700 20px/1.4 ui-monospace,Consolas,monospace;letter-spacing:1px;padding:12px 14px;border-radius:12px;background:var(--surface2);border:1px dashed var(--primary-line);text-align:center;direction:ltr;user-select:all}
.tpl{display:flex;flex-direction:column;gap:10px;padding:18px}
.spark{width:100%;height:46px;display:block}
.bars{display:flex;flex-direction:column;gap:8px}

/* ================================================================ responsive */
@media (max-width:1200px){.rings{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.split{grid-template-columns:1fr}}
@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;top:0;bottom:0;right:0;width:286px;transform:translateX(105%);transition:transform .25s ease;box-shadow:var(--shadow-lg)}
  .side.open{transform:none}
  .scrim-side.open{display:block;position:fixed;inset:0;z-index:25;background:rgba(20,14,10,.42)}
  .menu-btn{display:inline-flex}
  .topbar{padding:14px 18px 0}
  main{padding:10px 18px 70px}
  .auth{grid-template-columns:1fr}.auth-side{padding:30px 24px}.auth-side h1{font-size:27px}.auth-side ul{display:none}
  .grid.c2{grid-template-columns:1fr}
}
@media (max-width:640px){
  main{padding:8px 14px 70px}.topbar{padding:12px 14px 0}
  .rings{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rk{padding:14px 14px 12px;min-height:0}.rk .kp-ic{width:32px;height:32px;border-radius:10px}.rk .kp-ic svg{width:16px;height:16px}.rk .kp-l{font-size:12.5px}.rk .kp-v b{font-size:26px}.rk .kp-of{font-size:13px}.rk .kp-s{font-size:11.5px}
  .page-head h1{font-size:21px}.page-head{margin-bottom:14px}
  .fbar .presets{margin-inline-start:0}
  .form2{grid-template-columns:1fr}
  .hb .r{grid-template-columns:minmax(90px,38%) 1fr auto;gap:8px}
  .modal{border-radius:20px 20px 0 0;max-height:94vh;align-self:flex-end}.scrim{padding:0;align-items:flex-end}
  .auth-card{padding:26px 18px}
}
/* ================================================================ central upload (v12.11.110) */
.drop.has{display:flex;align-items:center;gap:12px;padding:12px 16px;text-align:start;border-style:solid}
.drop.has svg{margin:0;width:26px;height:26px;flex:none}
.drop.has b{margin:0;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop.has span{margin:0 auto 0 0;font-size:12.5px;white-space:nowrap}
.mcell.up{gap:4px;cursor:pointer;font-family:inherit;transition:box-shadow .15s,transform .15s}
.mcell.up .plus{display:inline-block;width:0;overflow:hidden;opacity:0;font-weight:800;transition:width .15s,opacity .15s}
.mcell.up:hover,.mcell.up:focus-visible{box-shadow:0 0 0 2px var(--primary);outline:none}
.mcell.up:hover .plus,.mcell.up:focus-visible .plus{width:10px;opacity:1}
.cu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-bottom:12px}
.cu-appr{align-self:end;min-height:42px}
.cu-mode{max-width:440px;margin:2px 0 6px}
.cu-mhint{margin:0 0 12px}
.cu-box{border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:14px;background:var(--surface)}
.cu-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.cu-bar .grow{flex:1;min-width:200px}
.cu-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--primary-soft);color:var(--primary-2);flex:none}
.cu-ico svg{width:19px;height:19px}
.cu-box .table-wrap{margin-top:10px;max-height:360px;overflow:auto}
.t.cu-map td{vertical-align:middle}
.t.cu-map select.input{min-height:36px;padding:5px 10px;min-width:180px}
.t.cu-map select.input.guess{border-color:var(--info);background:var(--info-soft)}
.cu-vh{margin:14px 0 0;font-size:14px}
.cu-ex{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;color:var(--ink2)}
.req{color:var(--bad);font-style:normal;margin-inline-start:3px}
.chip.central{background:var(--primary-soft);color:var(--primary-2);font-size:11.5px;padding:2px 8px}
@media (max-width:640px){.cu-grid{grid-template-columns:1fr}.cu-appr{min-height:0}}
@media print{.side,.topbar,.btn,.filters,.fbar,.wm{display:none!important}.shell{display:block}body{background:#fff}}

/* v12.11.124: track groups — the ministry report's minimum templates first */
.tgroup{margin:6px 0 18px}
.tgroup-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 10px}
.tgroup-h b{font-size:15px;color:var(--ink)}
.tgroup-h small{color:var(--ink3);font-size:12.5px}
.tgroup.ministry .tgroup-h b{display:inline-flex;align-items:center;gap:8px}
.tgroup.ministry .tgroup-h b::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--gold)}
.tgroup.ministry .card{border-color:var(--gold-soft)}
table.matrix tr.grp th{font-size:11.5px;color:var(--ink2);background:var(--surface);border-bottom:0;padding:8px 10px}
table.matrix tr.grp th.g-ministry{background:var(--gold-soft);color:var(--gold)}
table.matrix th.g-ministry{box-shadow:inset 0 -2px 0 var(--gold-2)}

/* v12.11.124: the ministry report dialog */
.mr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.mr-grid[hidden]{display:none}
.mr-checks{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding-bottom:6px}
.mr-checks .check[hidden]{display:none}
.mr-status{min-height:22px;font-size:13px;color:var(--ink2);margin-top:8px}
.mr-status.bad{color:var(--bad)}
@media (max-width:560px){.mr-grid{grid-template-columns:1fr}}
table.matrix tr.grp th{position:static}

/* ================================================================ v12.11.125: direct entry */
/* state tones */
.chip.t-wait{background:var(--info-soft);color:var(--info)}.chip.t-work{background:var(--primary-soft);color:var(--primary-2)}
.chip.t-office{background:var(--gold-soft);color:var(--gold)}.chip.t-ok{background:var(--ok-soft);color:var(--ok)}
.chip.t-bad{background:var(--bad-soft);color:var(--bad)}.chip.t-muted{background:var(--mute-soft);color:var(--mute)}
/* state filters of a register */
.spills{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin:-4px 0 14px;scrollbar-width:thin}
.spill{flex:none;display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2)}
.spill b{min-width:24px;height:22px;padding:0 7px;border-radius:11px;background:var(--surface2);border:1px solid var(--line2);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-variant-numeric:tabular-nums}
.spill.zero{opacity:.55}
.spill.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.spill.on b{background:rgba(255,255,255,.2);border-color:transparent;color:inherit}
.spill.t-wait b{color:var(--info)}.spill.t-work b{color:var(--primary-2)}.spill.t-office b{color:var(--gold)}.spill.t-ok b{color:var(--ok)}.spill.t-bad b{color:var(--bad)}
.spill.on[class*=" t-"] b{color:inherit}
table.t.reg td small{display:block;font-size:11.5px}
table.t svg.ti{width:16px;height:16px;vertical-align:-3px;color:var(--primary)}
.q-age{font-size:12px;color:var(--ink3);white-space:nowrap}.q-age.late{color:var(--warn);font-weight:700}
/* the queue on the employee's home */
.queue{display:flex;flex-direction:column;gap:8px}
.q-it{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--line2);background:var(--surface2);cursor:pointer;text-align:start;transition:border-color .15s,box-shadow .15s}
.q-it:hover,.q-it:focus-visible{border-color:var(--primary-line);box-shadow:0 6px 18px rgba(15,27,20,.06);outline:none}
.q-it .tc-ico{width:38px;height:38px;border-radius:11px}.q-it .tc-ico svg{width:19px;height:19px}
.q-it b{display:block;font-size:14px}.q-it small{display:block;color:var(--ink3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q-it .grow{min-width:0}
.quick{display:grid;grid-template-columns:1fr;gap:8px}
.qa{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px dashed var(--primary-line);background:transparent;cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink);text-align:start}
.qa svg{width:18px;height:18px;color:var(--primary);flex:none}.qa span{flex:1}
.qa:hover{background:var(--primary-soft);border-style:solid}
/* the request window */
.modal.xl{width:min(1240px,100%)}
.rw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:18px;align-items:start}
.rw.one{grid-template-columns:minmax(0,1fr)}
.rw section{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--surface)}
.rw-st{background:var(--surface2)!important}
.rw-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.rw-h h4{margin:0;font-size:15.5px;display:flex;align-items:center;gap:8px}
.rw-h h4 svg{width:18px;height:18px;color:var(--primary)}
.rw-who{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--line2);font-size:13.5px}
.rw-who .input{min-height:36px;padding:5px 10px;width:auto;min-width:180px}
.rw-end{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--ok-soft);color:var(--ok);font-weight:700;font-size:13.5px}
.rw-end svg{width:18px;height:18px}
.rw-log{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:var(--surface)}
.rw-log summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink2)}
.rw-log ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.rw-log li{font-size:13px}.rw-log li small{display:block;color:var(--ink3);font-size:12px}
.field.bad .input{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 14%,transparent)}
.ferr{color:var(--bad);font-size:12.5px;font-weight:600}
.hj{min-height:0}
.field label small{font-weight:500;color:var(--mute)}
.input:disabled{background:var(--surface2);color:var(--ink);opacity:1;cursor:default}
/* the stages timeline */
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl-i{position:relative;padding:0 26px 16px 0}
.tl-i::before{content:'';position:absolute;right:7px;top:16px;bottom:-2px;width:2px;background:var(--line)}
.tl-i.last::before{display:none}
.tl-dot{position:absolute;right:0;top:4px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--mute)}
.tl-i.t-wait .tl-dot{border-color:var(--info)}.tl-i.t-work .tl-dot{border-color:var(--primary)}.tl-i.t-office .tl-dot{border-color:var(--gold)}
.tl-i.t-ok .tl-dot{border-color:var(--ok);background:var(--ok)}.tl-i.t-bad .tl-dot{border-color:var(--bad);background:var(--bad)}.tl-i.last .tl-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}
.tl-b{background:var(--surface);border:1px solid var(--line2);border-radius:14px;padding:10px 12px}
.tl-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tl-top b{font-size:14px}
.tl-dur{font-size:11.5px;font-weight:700;color:var(--ink3);background:var(--surface2);border:1px solid var(--line2);border-radius:999px;padding:1px 8px;white-space:nowrap}
.tl-d{font-size:12.5px;color:var(--ink2);margin-top:2px}
.tl-n{font-size:13px;margin-top:6px;padding:7px 10px;border-radius:10px;background:var(--surface2);white-space:pre-wrap;overflow-wrap:anywhere}
.tl-x{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tl-m{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:12px;color:var(--ink3)}
.tl-m span{flex:1}
.lnk{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:2px 4px;border-radius:6px;cursor:pointer;color:var(--primary);font-weight:600;font-size:12px}
.lnk svg{width:14px;height:14px}.lnk:hover{background:var(--primary-soft)}.lnk.bad{color:var(--bad)}.lnk.bad:hover{background:var(--bad-soft)}
.se{gap:10px;margin:10px 0}
/* new stage rows */
.srows{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.srow{border:1.5px dashed var(--primary-line);border-radius:14px;padding:10px 12px;background:var(--surface)}
.srow-h{display:flex;align-items:center;gap:8px}
.srow-h .input{flex:1;min-height:40px}
.srow-n{width:26px;height:26px;border-radius:50%;background:var(--primary);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;flex:none}
.srow-b{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:10px}
.srow-b .full,.srow-x{grid-column:1/-1}
.srow-x{gap:10px 12px}
.srow-x:empty{display:none}
.add-row{margin-top:10px}
/* weekly summary */
.led{display:flex;flex-direction:column;gap:8px}
.led-r{display:flex;gap:6px;align-items:center}
.wk-ro{margin:0;padding-inline-start:18px;display:flex;flex-direction:column;gap:4px;font-size:14px}
table.t.ch td{vertical-align:top;padding:8px}
table.t.ch .input{min-height:38px}
table.t.ch textarea.input{min-height:60px}
.full-row{grid-column:1/-1}
@media (max-width:980px){.rw{grid-template-columns:1fr}.rw.existing .rw-st{order:-1}}
@media (max-width:640px){.srow-b{grid-template-columns:1fr}.rw section{padding:12px}.modal.xl .modal-b{padding:12px}.q-it{flex-wrap:wrap}.q-it .grow{flex-basis:calc(100% - 60px)}}
table.t.reg td .clip{max-width:200px}
@media (min-width:981px){.rw-st .tl{max-height:min(52vh,560px);overflow:auto;padding-inline-start:4px;scrollbar-width:thin}}

/* v12.11.129: الصفحة الرئيسية (مؤشرات) · الطلبات (تبويب لكل نوع) · المكتبة */
.side-sep{height:1px;background:var(--side-line);margin:12px 26px}
.ring-a{display:block;color:inherit;text-decoration:none;border-radius:18px}
.ring-a>.rk{height:100%;transition:border-color .15s,box-shadow .15s}
.ring-a:hover>.rk,.ring-a:focus-visible>.rk{border-color:var(--primary-line);box-shadow:var(--shadow)}
.rtabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 10px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:16px;scrollbar-width:thin;box-shadow:var(--shadow)}
.rtab{flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px;color:var(--ink2);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.rtab svg{width:18px;height:18px;flex:none}
.rtab:hover{background:var(--surface2);color:var(--ink)}
.rtab.on{background:var(--primary);color:var(--primary-ink)}
.rtab .badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--gold-2);color:#2b1b05;font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.rtab .badge[hidden]{display:none}
.rdesc{display:flex;align-items:center;gap:8px;margin:0 4px 14px;color:var(--ink3);font-size:13px;line-height:1.6}
.rdesc svg{width:16px;height:16px;flex:none;color:var(--primary)}
a.card.tt{cursor:pointer}
@media (max-width:640px){.rtabs{border-radius:14px;margin-inline:-2px}.rtab{padding:9px 12px;font-size:13.5px}.rdesc{font-size:12.5px}}
.fq-row{display:flex;gap:8px;align-items:stretch}
.fq-row .input{flex:1;min-width:0}
.rbar .ftog{display:none}
@media (max-width:640px){.rdesc{display:none}.rbar{padding:12px}.rbar .ftog{display:inline-flex}.rbar>.field:not(.fq){display:none}.rbar.open>.field:not(.fq){display:flex}.rbar .fq{min-width:0!important;width:100%;flex:1 1 100%}}
.fq-row .btn{flex:none;white-space:nowrap}
/* v12.11.130: year-to-date home, the report's inputs in its dialog, clauses, computed amounts, Amanah lists */
.ytd{display:inline-flex;align-items:center;gap:6px;margin-inline-start:8px;padding:2px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-2);font-size:12.5px;font-weight:700;white-space:nowrap;vertical-align:middle}
.ytd svg{width:14px;height:14px}
.page-head .acts .hsel{min-width:210px;width:auto;min-height:40px}
.mr-sec{border:1px solid var(--line2);border-radius:14px;padding:14px 16px;margin:0 0 14px;background:var(--surface2)}
.mr-sec h4{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px}
.mr-sec h4 svg{width:18px;height:18px;color:var(--primary)}
.mr-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.mr-grid .mr-sec{margin:0}
.mr-sec .presets{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 0 10px}
.mr-checks.row{flex-direction:row;flex-wrap:wrap;gap:18px;padding:0}
.mr-note{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:9px 12px;border-radius:12px;background:var(--info-soft);color:var(--info);font-size:13.5px}
.mr-note svg{width:16px;height:16px;flex:none}
@media (max-width:900px){.mr-grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.mr-grid.c4{grid-template-columns:1fr}.page-head .acts .hsel{min-width:0;width:100%}}
.mchk{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto;padding:2px}
.mc{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-size:13.5px;line-height:1.55}
.mc:hover{border-color:var(--primary-line)}
.mc input{margin-top:4px;flex:none;width:17px;height:17px;accent-color:var(--primary)}
.mc b{font-weight:800;color:var(--primary-2);margin-inline-end:4px}
.mc small{display:block;color:var(--ink3);font-size:12.5px;margin-top:2px}
.mc em{font-style:normal;color:var(--bad);font-weight:700}
.mc.direct{border-color:var(--bad-soft)}
.mc:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.mc:has(input:disabled){cursor:default}
.mc-none{margin:4px 0 0}
.calc{border:1px dashed var(--primary-line);border-radius:12px;padding:10px 12px;background:var(--surface2)}
.calc b{font-size:18px;color:var(--ink)}
.calc small{display:block;color:var(--ink3);font-size:12.5px;margin-top:4px}
.calc ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}
.calc li{display:flex;justify-content:space-between;gap:10px}
.calc li span:first-child{font-weight:700;direction:ltr}
.calc em{font-style:normal;color:var(--bad);font-size:12px}
.ro-val{display:flex;align-items:center;background:var(--surface2);color:var(--ink2);font-weight:700}
.rw-me{display:block;margin:0 0 12px;padding:8px 12px;border-radius:12px;background:var(--primary-soft);color:var(--primary-2);font-size:13.5px}
.rw-me svg{width:16px;height:16px;vertical-align:-3px;margin-inline-end:6px}
@media (max-width:640px){.mchk{max-height:none;overflow:visible}}
#lstCard textarea{font-size:13.5px;line-height:1.7;min-height:140px}
/* ---- v12.11.146: the richer home page — indicators with a line saying what each counts, the month comparison, the daily
   entries, the speed of the review decisions, and the glossary */
.kpis146{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.stat.kpi{gap:5px}
.stat.kpi .v{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}
.stat .kx{font-size:11.5px;line-height:1.65;color:var(--mute);margin-top:4px;padding-top:7px;border-top:1px dashed var(--line2)}
.delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--mute-soft);color:var(--ink2);white-space:nowrap;line-height:1.5}
.delta.up{background:var(--primary-soft);color:var(--primary-2)}
.delta.down{background:var(--navy-soft);color:var(--navy)}
.mc146 td svg{width:16px;height:16px;vertical-align:-3px;color:var(--primary)}
.ops146{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 10px}
.ops146>div{padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--line2);display:flex;flex-direction:column;gap:2px}
.ops146 b{font-size:22px;line-height:1.2}
.ops146 span{font-size:12px;color:var(--ink3)}
#cOps146 .spark{width:100%;height:70px;display:block}
.gloss146{margin-top:22px;padding:0}
.gloss146 summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 20px;cursor:pointer;list-style:none}
.gloss146 summary::-webkit-details-marker{display:none}
.gloss146 summary svg{width:20px;height:20px;color:var(--primary)}
.gloss146 summary b{font-size:16px}
.gloss146 summary span{color:var(--ink3);font-size:13px}
.gloss146[open] summary{border-bottom:1px solid var(--line2)}
.gloss146 dl{margin:0;padding:8px 20px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:4px 26px}
.gloss146 dl>div{padding:10px 0;border-bottom:1px dashed var(--line2)}
.gloss146 dt{font-weight:700;font-size:14px;margin-bottom:3px;color:var(--primary-2)}
.gloss146 dd{margin:0;font-size:13px;line-height:1.75;color:var(--ink2)}
@media (max-width:560px){.kpis146{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis146 .stat{padding:12px 12px}.kpis146 .stat .v{font-size:22px}.stat .kx{font-size:10.5px}.gloss146 dl{grid-template-columns:1fr}.ops146 b{font-size:18px}}
#cMonth146,#cOps146,#cSpeed{min-width:0}
.mc146 td:first-child{white-space:normal}
.ops146>div{min-width:0}
@media (max-width:560px){.mc146 th,.mc146 td{padding:8px 6px;font-size:12.5px}.mc146 .delta{font-size:11px;padding:2px 6px}}

/* v12.11.147: «التقارير» — choosing the report, the general report's dialog, the Amanat of the ministry report */
.rp-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rp-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:start;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.rp-card:hover,.rp-card:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}
.rp-card svg{width:26px;height:26px;color:var(--primary)}
.rp-card b{font-size:16px}
.rp-card span{font-size:13.5px;color:var(--ink2);line-height:1.75}
.rp-card em{margin-top:auto;font-style:normal;font-size:12px;font-weight:600;color:var(--primary-2);background:var(--primary-soft);border-radius:999px;padding:3px 10px}
.mr-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gr-list ol{margin:0;padding:0 20px 0 0;columns:2;column-gap:28px;font-size:13.5px;color:var(--ink2);line-height:1.95}
.mr-ams{margin:0 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px}
.mr-ams[hidden]{display:none}
.mr-ams-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:13px;color:var(--ink2)}
.mr-ams-h span{margin-inline-end:auto;font-weight:600}
.mr-ams-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 14px}
.mr-ams-g .check{font-size:13.5px}
@media (max-width:560px){.rp-pick,.mr-grid.c3{grid-template-columns:1fr}.gr-list ol{columns:1}}

/* v12.11.148: «رفع من Excel» */
.imp-top{display:flex;align-items:flex-start;gap:14px;margin:0 0 12px}
.imp-top p{margin:0;flex:1;font-size:13.5px;color:var(--ink2);line-height:1.8}
.imp-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:0 0 12px}
.imp-sum div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.imp-sum b{display:block;font-size:20px}
.imp-sum span{font-size:12.5px;color:var(--ink2)}
.imp-sum .t-ok b{color:var(--ok,var(--primary))}.imp-sum .t-info b{color:var(--info)}.imp-sum .t-bad b{color:var(--bad)}
.mr-status+#impOut{margin-top:6px}
.imp-cols{margin:0 0 12px;font-size:13px}.imp-cols summary{cursor:pointer;font-weight:600;color:var(--ink2)}.imp-cols p{margin:8px 0 0;line-height:2}.imp-cols .bad{color:var(--bad)}
.imp-ams{max-width:760px;margin:0 0 12px}
.imp-bar2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}.imp-bar2 .presets{display:flex;gap:6px;flex-wrap:wrap;margin-inline-end:auto}
.imp-res{max-height:420px;overflow:auto}
.imp-res td small.imp-warn{display:block;color:var(--warn,#9a6a00);font-size:12px;margin-top:2px}
.imp-bar{display:inline-block;vertical-align:middle;width:160px;height:8px;margin-inline-start:10px;border-radius:4px;background:var(--line2);overflow:hidden}.imp-bar i{display:block;height:100%;background:var(--primary)}
@media (max-width:560px){.imp-top{flex-direction:column}.imp-bar{width:100px}#impDrop.has span.muted{display:none}}
.chip.t-info{background:var(--info-soft);color:var(--info)}
/* v12.11.152: «الإنجازات والتحديات» */
.nbar{align-items:flex-end}.nbar .presets{display:flex;gap:6px;flex-wrap:wrap;margin-inline-start:auto}
.notes2{margin-bottom:16px}.notes2>.card{min-width:0}
.card-h h3 svg{width:18px;height:18px;vertical-align:-3px;color:var(--primary)}
.nlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nlist li{border:1px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--surface2)}
.nl-t{font-size:14.5px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.nl-m{display:flex;align-items:center;gap:12px;margin-top:4px;font-size:12.5px;color:var(--ink3)}
.nl-m svg{width:13px;height:13px;vertical-align:-2px}.nl-m .sp{flex:1}
.t.chal152 thead th{background:#826844;color:#fff;font-weight:700}
.t.chal152 td{vertical-align:top;line-height:1.75;min-width:110px;white-space:pre-wrap}
.t.chal152 td small{display:block;margin-top:4px;font-size:12px}
.t.chal152 tbody tr:nth-child(odd) td{background:color-mix(in srgb,#EFEBE5 55%,var(--surface))}
.mr-note a{color:inherit;font-weight:700;text-decoration:underline}

/* ================================================================ v12.11.153: the Saudi Architecture Map as the portal's motif
   The mark (the Kingdom as a mosaic of the 19 styles, in their colours), the sign-in art with the four regions' names, a faint copy
   behind the home page's title, and the Najdi crenellations (الشرفات) — in the four regions' colours under each page's title, and as a
   skyline along the side panel and the sign-in art. */
:root{--cren:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12'%3E%3Cpath fill-rule='evenodd' d='M1 12 12 1 23 12ZM8.6 12 12 8.6 15.4 12Z'/%3E%3C/svg%3E");
  --regions:linear-gradient(to left,var(--najd) 0 25%,var(--east) 25% 50%,var(--hijaz) 50% 75%,var(--south) 75% 100%)}
.mark153{display:inline-flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;border-radius:13px;background:#F6F1E8;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.mark153 svg{width:36px;height:auto;display:block;overflow:visible}
.mark153 path{stroke:#F6F1E8;stroke-width:16;stroke-linejoin:round}
.mark153.lg{width:76px;height:76px;border-radius:22px}.mark153.lg svg{width:60px}
.boot .mark153{box-shadow:var(--shadow)}
.side{isolation:isolate}
.side::after{content:'';position:absolute;left:0;right:0;bottom:0;height:12px;background:rgba(255,255,255,.07);-webkit-mask:var(--cren) repeat-x 0 100%/24px 12px;mask:var(--cren) repeat-x 0 100%/24px 12px;pointer-events:none;z-index:-1}
.side-brand{position:relative;padding-bottom:22px;margin-bottom:6px}
.side-brand::after{content:'';position:absolute;right:20px;left:20px;bottom:4px;height:8px;background:var(--regions);opacity:.75;-webkit-mask:var(--cren) repeat-x 100% 100%/16px 8px;mask:var(--cren) repeat-x 100% 100%/16px 8px}
.page-head::after{content:'';position:absolute;right:0;bottom:0;width:168px;height:10px;background:var(--regions);opacity:.72;-webkit-mask:var(--cren) repeat-x 100% 100%/21px 10px;mask:var(--cren) repeat-x 100% 100%/21px 10px}
.hwm153{position:absolute;top:2px;left:30px;width:290px;opacity:.11;pointer-events:none;z-index:-1}
.hwm153 svg{width:100%;height:auto;display:block}.hwm153 path{stroke:var(--bg);stroke-width:5;stroke-linejoin:round}
:root[data-theme=dark] .hwm153{opacity:.14}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hwm153{opacity:.14}}
.auth-side{position:relative;overflow:hidden;isolation:isolate}
.auth-side::before{content:'';position:absolute;left:0;right:0;bottom:0;height:16px;background:var(--regions);opacity:.85;-webkit-mask:var(--cren) repeat-x 0 100%/32px 16px;mask:var(--cren) repeat-x 0 100%/32px 16px}
.auth-top{position:relative;z-index:1}
.auth-side h1{margin-top:22px}
.auth-art{position:relative;flex:1 1 auto;min-height:220px;margin:22px 0 18px;pointer-events:none;z-index:0}
.auth-art svg{position:absolute;left:-10px;bottom:0;height:100%;width:auto;max-width:calc(100% + 10px);display:block;overflow:visible;filter:drop-shadow(0 18px 34px rgba(0,0,0,.3))}
.auth-art path{stroke:var(--side);stroke-width:4;stroke-linejoin:round}
.auth-art .mo-ol{fill:rgba(255,255,255,.05);stroke:rgba(246,241,232,.32);stroke-width:14}
.auth-art text{fill:#fff;font:700 27px var(--font);text-anchor:middle;paint-order:stroke;stroke:rgba(36,27,22,.6);stroke-width:7px;stroke-linejoin:round}
.auth-side small{padding-bottom:12px}
@media (max-width:980px){.auth-art{display:none}.auth-side::before{height:12px;-webkit-mask-size:24px 12px;mask-size:24px 12px}
  .hwm153{width:200px;left:12px}}
@media (max-width:640px){.hwm153{display:none}}
@media print{.hwm153,.page-head::after{display:none}}
