/* FIREWALL School System — نظام التصميم
   الفكرة: مكتب حسابات المدرسة. عمود جانبي داكن كـ"كعب الدفتر"، أسطح بيضاء مسطّرة بدل البطاقات المظللة،
   الأخضر لون الحبر والذهبي للختم والتنبيه فقط. الأرقام دائماً بأعمدة متساوية. */
@font-face{font-family:"IBM Plex Sans Arabic";src:url(../fonts/plex-ar-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url(../fonts/plex-ar-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url(../fonts/plex-ar-SemiBold.woff) format("woff");font-weight:600;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url(../fonts/plex-ar-Bold.woff) format("woff");font-weight:700 900;font-display:swap}
@font-face{font-family:"Noto Sans Arabic";src:url(../fonts/NotoSansArabic.ttf) format("truetype");font-weight:100 900;font-display:swap}
:root{
  --spine:#0b3d2e;--spine-2:#0f4d3a;--spine-text:#cfe3da;
  --teal:#0b6b50;--teal-d:#084f3b;--teal-l:#e4f1ec;
  --gold:#b8862b;--gold-l:#f4c768;--gold-bg:#fbf1d9;
  --bg:#f3f6f4;--card:#ffffff;--field:#ffffff;--field-ro:#eef2f0;
  --ink:#15221d;--mute:#5d6e67;--line:#d6dfdb;--line-2:#e8eeeb;
  --bad:#b3261e;--bad-bg:#fbe4e1;--ok:#17724a;--ok-bg:#dcf1e6;--warn:#8a5a00;
  --hl:#fff6c9;--calc:#edf3ff;--zebra:#f8faf9;
  --r:6px;--focus:0 0 0 3px rgba(11,107,80,.28);
  color-scheme:light;
}
:root[data-theme=dark]{
  --spine:#08261d;--spine-2:#0d3428;--spine-text:#b9d3c8;
  --teal:#46b592;--teal-d:#7fd0b3;--teal-l:#173329;
  --gold:#e0b85a;--gold-l:#f4c768;--gold-bg:#3a3018;
  --bg:#0e1714;--card:#15211c;--field:#101a16;--field-ro:#1b2a24;
  --ink:#e4ece8;--mute:#9bb0a7;--line:#2a3c34;--line-2:#22332c;
  --bad:#ff8a80;--bad-bg:#40201d;--ok:#6fd3a4;--ok-bg:#16382a;--warn:#f0c264;
  --hl:#3b3413;--calc:#182a3d;--zebra:#18251f;
  --focus:0 0 0 3px rgba(70,181,146,.35);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:"IBM Plex Sans Arabic","Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif;font-size:14px;line-height:1.55;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;line-height:1.3}
a{color:var(--teal-d)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}
.num,.tbl td.num,.doc td.num{text-align:end;font-variant-numeric:tabular-nums;direction:ltr}
.muted{color:var(--mute)}
svg.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- الدخول */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,440px);background:var(--card)}
.login-art{background:var(--spine);color:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art::after{content:"";position:absolute;inset-inline-end:-120px;inset-block-end:-120px;width:420px;height:420px;border:56px solid rgba(244,199,104,.14);border-radius:50%}
.login-art .mark{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.5px}
.login-art .mark img{width:44px;height:44px}
.login-art h1{font-size:34px;font-weight:800;max-width:14em;line-height:1.5}
.login-art ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px;color:var(--spine-text);font-size:15px}
.login-art li{display:flex;gap:10px;align-items:baseline}
.login-art li::before{content:"";width:8px;height:8px;background:var(--gold-l);flex:none;transform:translateY(-1px)}
.login-art small{color:var(--spine-text);position:relative;z-index:1}
.login-form{display:flex;flex-direction:column;justify-content:center;padding:40px 44px}
.login-card h2{font-size:22px;margin-bottom:4px}
.login-card p{color:var(--mute);margin:0 0 22px}
.login-card label{display:block;margin:14px 0 5px;font-weight:600;font-size:13px}
.login-card input,.login-card select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--field)}
.login-card .btn{width:100%;margin-top:22px;padding:12px;justify-content:center;font-weight:700}
.login-foot{display:flex;justify-content:space-between;margin-top:18px;font-size:12.5px;color:var(--mute)}

/* ---------- الهيكل */
.shell{display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100vh}
.side{grid-row:1/3;background:var(--spine);color:var(--spine-text);overflow:auto;display:flex;flex-direction:column}
.side .brand{display:flex;gap:11px;align-items:center;padding:16px 16px 14px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.09)}
.side .brand img{width:38px;height:38px;border-radius:9px;background:#fff;object-fit:contain}
.side .brand b{display:block;font-size:14.5px;letter-spacing:.4px}
.side .brand span{display:block;font-size:12px;color:var(--spine-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.side nav{padding:8px 0;flex:1}
.side .home{display:flex;gap:10px;align-items:center;padding:9px 16px;color:var(--spine-text);text-decoration:none;font-weight:600}
.side .grp>button{width:100%;text-align:start;background:none;border:0;padding:9px 16px;font-weight:600;color:var(--spine-text);cursor:pointer;display:flex;align-items:center;gap:10px}
.side .grp>button .chev{margin-inline-start:auto;transition:transform .15s;opacity:.6}
.side .grp.open>button{color:#fff}
.side .grp.open>button .chev{transform:rotate(180deg)}
.side .grp>button:hover,.side .home:hover{background:var(--spine-2);color:#fff}
.side .grp ul{list-style:none;margin:0;padding:2px 0 8px;display:none}
.side .grp.open ul{display:block}
.side .grp li a{display:block;padding:6px 16px;padding-inline-start:44px;color:var(--spine-text);text-decoration:none;font-size:13.5px;border-inline-start:3px solid transparent}
.side .grp li a:hover{background:var(--spine-2);color:#fff}
.side .grp li a.on,.side .home.on{background:var(--spine-2);border-inline-start-color:var(--gold-l);color:#fff;font-weight:600}
.side .home{border-inline-start:3px solid transparent}
.side .grp li.sep{height:1px;background:rgba(255,255,255,.09);margin:6px 16px;margin-inline-start:44px}
.side .side-foot{padding:10px 16px;font-size:11.5px;color:rgba(207,227,218,.6);border-top:1px solid rgba(255,255,255,.09)}
.topbar{display:flex;align-items:center;gap:10px;background:var(--card);border-bottom:1px solid var(--line);padding:9px 18px;min-width:0}
.topbar .sp{flex:1}
.topbar .chip{border:1px solid var(--line);border-radius:20px;padding:3px 12px;font-size:12.5px;white-space:nowrap;color:var(--mute)}
.topbar .chip b{color:var(--ink);font-weight:600}
.icon-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--line);border-radius:var(--r);padding:6px 10px;cursor:pointer;white-space:nowrap}
.icon-btn:hover{background:var(--teal-l)}
.menu-toggle{display:none}
.gsearch{position:relative;flex:0 1 380px;min-width:0}
.gsearch input{width:100%;padding:8px 12px;padding-inline-start:36px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.gsearch>svg{position:absolute;inset-inline-start:10px;top:50%;transform:translateY(-50%);color:var(--mute)}
.gsearch kbd{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);font:inherit;font-size:11px;color:var(--mute);border:1px solid var(--line);border-radius:4px;padding:0 5px;background:var(--card)}
.gsearch .drop{position:absolute;inset-inline:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 30px rgba(0,0,0,.16);z-index:30;max-height:340px;overflow:auto}
.gsearch .drop a{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-2)}
.gsearch .drop a:hover,.gsearch .drop a.act{background:var(--teal-l)}
.gsearch .drop small{color:var(--mute)}
.usermenu{position:relative}
.usermenu .pop{position:absolute;inset-inline-end:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 30px rgba(0,0,0,.16);z-index:30;min-width:200px;padding:4px}
.usermenu .pop button{display:block;width:100%;text-align:start;background:none;border:0;padding:8px 12px;border-radius:4px;cursor:pointer}
.usermenu .pop button:hover{background:var(--teal-l)}
.main{overflow:auto;padding:20px 24px 48px;min-width:0}
.page-title{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.page-title h2{font-size:20px;font-weight:700}
.page-title small{color:var(--mute)}
.banner{display:flex;gap:12px;align-items:center;background:var(--gold-bg);border:1px solid var(--gold-l);border-inline-start:4px solid var(--gold);padding:10px 14px;border-radius:var(--r);margin-bottom:14px;color:var(--ink)}
.banner .sp{flex:1}

/* ---------- عناصر التحكم */
.btn{text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:7px 13px;cursor:pointer;white-space:nowrap;font-weight:500}
.btn:hover{border-color:var(--teal);color:var(--teal-d)}
.btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
:root[data-theme=dark] .btn.pri{color:#06241b}
.btn.pri:hover{filter:brightness(1.08);color:#fff}
.btn.danger{color:var(--bad)}
.btn.danger:hover{border-color:var(--bad);color:var(--bad)}
.btn.sm{padding:3px 9px;font-size:12.5px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn kbd{font:inherit;font-size:10.5px;opacity:.7;border:1px solid currentColor;border-radius:3px;padding:0 4px;margin-inline-start:2px}
.toolbar{display:flex;flex-wrap:wrap;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:7px;margin-bottom:14px;position:sticky;top:-20px;z-index:5}
.toolbar .sp{flex:1}
.toolbar .navgrp{display:inline-flex}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}
.card>h3{font-size:14.5px;font-weight:700;margin-bottom:12px}
fieldset{border:1px solid var(--line);border-radius:var(--r);margin:0 0 14px;padding:0;background:var(--card);min-width:0}
fieldset>legend{float:inline-start;width:100%;padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--teal-d);border-bottom:1px solid var(--line-2);background:linear-gradient(to left,transparent,transparent);margin:0}
fieldset>legend{margin-bottom:14px}
fieldset>legend+*{clear:both}
fieldset>*:not(legend){margin:0 16px 14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px}
.grid.g3{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld>label{font-size:12.5px;color:var(--mute);font-weight:600}
.fld.req>label::after{content:" *";color:var(--bad)}
.fld input:not([type=checkbox]):not([type=file]),.fld select,.inp{height:38px}
.fld input,.fld select,.fld textarea,.inp{width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);min-width:0}
.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus{outline:none;border-color:var(--teal);box-shadow:var(--focus);background:var(--hl)}
.fld input[readonly],.fld input:disabled,.fld select:disabled{background:var(--field-ro);color:var(--mute);border-style:dashed}
.fld.calc input{background:var(--calc);font-weight:700;color:var(--ink);border-style:solid}
.fld.wide{grid-column:1/-1}
.fld.chk{flex-direction:row;align-items:center;gap:8px;padding-top:20px}
.fld.chk input,.tbl td input[type=checkbox],input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal)}
.fld.chk label{color:var(--ink);font-weight:500;font-size:13.5px}
.pick{display:flex;gap:4px}
.pick input{flex:1}
.pick .btn{padding:6px 9px;height:38px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.checks{display:flex;flex-wrap:wrap;gap:6px 4px}
.checks label{white-space:nowrap}
.big-total{font-size:24px;font-weight:800;color:var(--bad);font-variant-numeric:tabular-nums}
.badge{display:inline-block;border-radius:4px;padding:1px 9px;font-size:12px;background:var(--teal-l);color:var(--teal-d);font-weight:600;white-space:nowrap}
.badge.warn{background:var(--gold-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.ok{background:var(--ok-bg);color:var(--ok)}
.empty{padding:28px 16px;text-align:center;color:var(--mute)}

/* ---------- الجداول */
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
table.tbl{border-collapse:collapse;width:100%;font-size:13px}
.tbl th{background:var(--card);color:var(--mute);font-weight:600;text-align:start;padding:8px 10px;white-space:nowrap;position:sticky;top:0;border-bottom:2px solid var(--teal)}
.tbl td{padding:7px 10px;border-top:1px solid var(--line-2);vertical-align:middle}
.tbl tbody tr:nth-child(even){background:var(--zebra)}
.tbl tbody tr.click{cursor:pointer}
.tbl tbody tr.click:hover,.tbl tbody tr.sel{background:var(--hl)}
.tbl tr.grp td{background:var(--teal-l);font-weight:700;color:var(--teal-d)}
.tbl td input:not([type=checkbox]){width:100%;padding:4px 7px;border:1px solid var(--line);border-radius:4px;background:var(--field)}

/* ---------- لوحة المؤشرات */
.dash-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.dash-head h2{font-size:22px}
.terms{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px}
.terms>header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 18px 4px;flex-wrap:wrap}
.terms>header h3{font-size:15px}
.terms>header .pct{font-size:30px;font-weight:800;color:var(--teal-d);font-variant-numeric:tabular-nums}
.term{display:grid;grid-template-columns:190px minmax(0,1fr) 270px;gap:16px;align-items:center;padding:12px 18px;border-top:1px solid var(--line-2)}
.term .name b{display:block}
.term .name small{color:var(--mute);white-space:nowrap}
.track{height:22px;background:var(--field-ro);border-radius:3px;position:relative;overflow:hidden;background-image:repeating-linear-gradient(to right,transparent 0 calc(10% - 1px),var(--line) calc(10% - 1px) 10%)}
.track i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--teal);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.track i.late{background:var(--gold)}
.term .amt{text-align:end;font-variant-numeric:tabular-nums}
.term .amt b{font-size:15px}
.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px}
.figures div{padding:14px 18px;border-inline-end:1px solid var(--line-2)}
.figures div:last-child{border-inline-end:0}
.figures small{display:block;color:var(--mute);font-size:12.5px}
.figures b{font-size:19px;font-variant-numeric:tabular-nums}
.figures .bad b{color:var(--bad)}
.dash-cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
.bars{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:8px}
.bars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;min-width:0}
.bars i{display:block;width:100%;max-width:46px;background:var(--teal);border-radius:3px 3px 0 0;min-height:2px}
.bars small{font-size:11px;color:var(--mute);white-space:nowrap}
.bars span{font-size:11px;font-variant-numeric:tabular-nums}
.hbar{display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr) 36px;gap:10px;align-items:center;margin:7px 0;font-size:13px}
.hbar i{display:block;height:10px;background:var(--teal);border-radius:2px}

/* ---------- الصورة / الكاميرا */
.photo{display:flex;flex-direction:column;gap:8px;align-items:center}
.photo .frame{width:150px;height:180px;border:1px dashed var(--line);border-radius:var(--r);background:var(--field-ro) center/cover no-repeat;display:grid;place-items:center;color:var(--mute);font-size:12px;text-align:center}
.cam video{width:100%;max-width:480px;border-radius:var(--r);background:#000}

/* ---------- النوافذ والتنبيهات */
.modal-back{position:fixed;inset:0;background:rgba(6,22,17,.55);display:grid;place-items:center;z-index:50;padding:16px}
.modal{background:var(--card);border-radius:10px;width:min(760px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.modal.lg{width:min(1050px,96vw)}
.modal>header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700}
.modal>header button{border:0;background:none;font-size:20px;cursor:pointer;color:var(--mute)}
.modal>.body{padding:14px 16px;overflow:auto}
.modal>footer{padding:10px 16px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
#toast-root{position:fixed;bottom:18px;inset-inline-start:18px;display:flex;flex-direction:column;gap:8px;z-index:99}
.toast{background:#15221d;color:#fff;padding:10px 16px;border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.3);max-width:440px;border-inline-start:4px solid var(--gold-l)}
.toast.err{background:#8f1d17;border-inline-start-color:#fff}
.toast.ok{background:#0b6b50}

/* ---------- الطباعة (دائماً فاتحة) */
#print-root{display:none}
.doc{font-size:13px;color:#000;--line:#000}
.doc-brand{display:flex;justify-content:space-between;font-size:9px;color:#666;border-top:4px solid #0b6b50;padding-top:3px;margin-bottom:6px}
.doc-head{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1.5px solid #000;padding-bottom:8px;margin-bottom:10px}
.doc-head img{max-height:80px;max-width:140px}
.doc-head .co{font-size:12px;line-height:1.6}
.doc-head .co b{font-size:15px}
.doc h1.t{font-size:16px;text-align:center;margin:8px 0 12px;padding:6px;border-block:1px solid #000;letter-spacing:.3px}
.doc h1.t small{font-weight:500;font-size:12px}
.doc table{border-collapse:collapse;width:100%}
.doc table.b td,.doc table.b th{border:1px solid #333;padding:4px 6px;font-size:12px}
.doc table.b th{background:#e9efec}
.doc table.b tr.grp td{background:#f3f3f3}
.doc table.kv td{padding:3px 6px;font-size:13px}
.doc table.kv td.k{font-weight:700;white-space:nowrap;width:1%}
.doc .sign{display:flex;justify-content:space-around;margin-top:44px;font-weight:700}
.doc .sign span{border-top:1px solid #000;padding-top:4px;min-width:140px;text-align:center}
.doc .qr{text-align:center}
.doc .foot{margin-top:14px;border-top:1px solid #999;padding-top:6px;font-size:11px;text-align:center;color:#444}
.doc .pb{page-break-after:always}
.doc.thermal{width:72mm;font-size:11px}
.doc.thermal .doc-head{flex-direction:column;text-align:center}
.doc.thermal .doc-head .co{text-align:center!important}
.doc.thermal table.kv td{font-size:11px;padding:1px 3px}
.doc.thermal table.b td,.doc.thermal table.b th{font-size:9.5px;padding:2px}
.doc.thermal .sign{margin-top:22px;flex-direction:column;gap:18px;align-items:center}
.doc.thermal .layout2,.doc.thermal .layout2>tbody,.doc.thermal .layout2>tbody>tr,.doc.thermal .layout2>tbody>tr>td{display:block;width:auto!important}
.letter{line-height:2.1;font-size:15px}
.preview .doc{background:#fff;border:1px solid var(--line);padding:22px;border-radius:var(--r)}
@media print{
  body{background:#fff}
  #app,#modal-root,#toast-root{display:none!important}
  #print-root{display:block}
  .doc table.b tr{page-break-inside:avoid}
  @page{margin:12mm}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (max-width:900px){
  .login{grid-template-columns:1fr}
  .login-art{display:none}
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;inset-block:0;inset-inline-start:0;width:270px;z-index:40;transform:translateX(110%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.4)}
  [dir=ltr] .side{transform:translateX(-110%)}
  .side.show{transform:none}
  .menu-toggle{display:inline-flex}
  .topbar{padding:8px 10px;gap:6px}
  .topbar .chip,.gsearch kbd{display:none}
  .main{padding:14px 12px 40px}
  .grid{grid-template-columns:1fr}
  .term{grid-template-columns:1fr;gap:6px}
  .term .amt{text-align:start}
  .dash-cols{grid-template-columns:minmax(0,1fr)}
  .figures div{border-inline-end:0;border-bottom:1px solid var(--line-2)}
}

/* ---------- إضافات 1.3: الخريطة، بطاقة الطالب، الحضور، واتساب، البطاقات */
.hijri-hint{color:var(--mute);font-size:11.5px;min-height:15px}
.map{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:#e7ece9 repeating-linear-gradient(0deg,transparent 0 31px,rgba(0,0,0,.05) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(0,0,0,.05) 31px 32px);cursor:grab;touch-action:none;user-select:none}
:root[data-theme=dark] .map{background-color:#1b2621}
:root[data-theme=dark] .map-tiles{filter:brightness(.78) contrast(1.05) saturate(.8)}
.map:active{cursor:grabbing}
.map-tiles img{position:absolute;width:256px;height:256px;max-width:none}
.map-pins{position:absolute;inset:0;pointer-events:none}
.pin{position:absolute;width:22px;height:22px;margin:-22px 0 0 -11px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pin,#b3261e);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);pointer-events:auto;cursor:pointer}
.pin.school{border-radius:4px;transform:none;width:20px;height:20px;margin:-10px 0 0 -10px;background:var(--gold-l);border-color:var(--spine)}
.pin span{display:none}
.map-zoom{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;gap:2px;z-index:2}
.map-zoom button{width:30px;height:30px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:4px;font-size:17px;cursor:pointer}
.map-attr{position:absolute;bottom:2px;right:4px;font-size:10px;background:rgba(255,255,255,.75);color:#333;padding:0 4px;border-radius:2px}
.geo-info{margin:8px 0 4px;font-size:13px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-bottom:10px;font-size:13px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:50%;display:inline-block}
.legend i.sq{border-radius:2px;background:var(--gold-l);border:2px solid var(--spine)}
.legend b{margin-inline-start:auto;font-weight:600;color:var(--mute)}
.map-info{margin-top:10px;font-size:13px}
.profile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--teal);border-radius:var(--r);padding:16px 18px;margin-bottom:10px}
.avatar{width:84px;height:84px;border-radius:12px;background:var(--teal-l) center/cover no-repeat;color:var(--teal-d);display:grid;place-items:center;font-size:28px;font-weight:800;border:1px solid var(--line)}
.avatar.lg{width:110px;height:110px;font-size:36px}
.profile h3{font-size:20px;font-weight:800}
.profile .meta{color:var(--mute);margin-top:2px;font-variant-numeric:tabular-nums}
.profile .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.profile .money{text-align:end;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.profile .money small{color:var(--mute)}
.row.actions{margin-bottom:14px;gap:6px}
.wa-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.wa-msg{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:opacity .4s}
.wa-msg.done{opacity:.35}
.wa-msg header{display:flex;flex-direction:column}
.wa-msg p{margin:0;background:#e7f6dc;color:#1d2b20;border-radius:8px 8px 2px 8px;padding:9px 11px;white-space:pre-wrap;font-size:13.5px;line-height:1.7}
:root[data-theme=dark] .wa-msg p{background:#1f3a2b;color:#e5efe8}
.wa-msg footer{display:flex;align-items:center;gap:6px}
.scan{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:14px}
.scan-box{position:relative}
.scan-box svg{position:absolute;inset-inline-start:16px;top:50%;transform:translateY(-50%);width:24px;height:24px;color:var(--mute)}
.scan-input{width:100%;font-size:22px;padding:14px 18px;padding-inline-start:52px;border:2px solid var(--teal);border-radius:10px;background:var(--field);font-variant-numeric:tabular-nums}
.scan-input:focus{outline:none;box-shadow:var(--focus)}
.scan-result:not(:empty){margin-top:14px}
.scan-card{border:1px solid var(--line);border-inline-start:6px solid var(--line);border-radius:var(--r);padding:14px 16px;animation:pop .25s ease-out}
.scan-card.ok{border-inline-start-color:var(--ok);background:var(--ok-bg)}
.scan-card.warn{border-inline-start-color:var(--gold);background:var(--gold-bg)}
.scan-card.bad{border-inline-start-color:var(--bad);background:var(--bad-bg);color:var(--bad)}
.scan-head{display:flex;gap:16px;align-items:center}
.scan-head h3{font-size:22px}
.scan-state{font-size:18px;font-weight:700;margin-top:10px}
.pickers{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pickers .btn{flex-direction:column;align-items:flex-start;padding:10px 16px;gap:0}
.pickers small{color:var(--mute);font-weight:400}
@keyframes pop{from{transform:scale(.98);opacity:.4}to{transform:none;opacity:1}}
.bday-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line-2)}
.bday-row:first-of-type{border-top:0}
.card.bday{border-top:3px solid var(--gold-l)}
.cards-preview{display:flex;flex-wrap:wrap;gap:14px}
.idcard{width:85.6mm;height:54mm;border:1px solid #9aa;border-radius:3mm;overflow:hidden;background:#fff;color:#111;display:flex;flex-direction:column;font-size:9pt;page-break-inside:avoid;box-sizing:border-box}
.idc-top{background:#0b3d2e;color:#fff;display:flex;align-items:center;gap:2mm;padding:1.6mm 3mm;font-weight:700;font-size:8.5pt}
.idc-top img{height:6mm;width:6mm;object-fit:contain;background:#fff;border-radius:1mm}
.idc-body{flex:1;display:grid;grid-template-columns:20mm minmax(0,1fr) 23mm;gap:2.5mm;padding:2.5mm 3mm;align-items:center}
.idc-photo{width:20mm;height:25mm;border-radius:1.5mm;background:#e4f1ec center/cover no-repeat;display:grid;place-items:center;font-size:16pt;font-weight:800;color:#0b6b50}
.idc-info{display:flex;flex-direction:column;gap:.6mm;min-width:0}
.idc-info b{font-size:10.5pt;line-height:1.25}
.idc-info small{color:#555;font-size:7.5pt}
.idc-qr svg{width:23mm;height:23mm;display:block}
.idc-foot{background:#f4c768;color:#3a2a00;font-size:6.5pt;text-align:center;padding:.7mm}
.cards-sheet{display:grid;grid-template-columns:repeat(2,85.6mm);gap:6mm 8mm;justify-content:center}
@media (max-width:900px){.profile{grid-template-columns:auto minmax(0,1fr)}.profile .money{grid-column:1/-1;align-items:flex-start;text-align:start}}
/* ---- 1.4 المرفقات والقراءة الذكية */
.att-panel{margin-top:14px}
.att-panel legend .badge{margin-inline-start:6px}
.att-panel.disabled .att-drop,.att-panel.disabled .row{opacity:.45;pointer-events:none}
.att-drop{display:flex;gap:10px;align-items:center;justify-content:center;border:2px dashed var(--line);border-radius:var(--r);padding:16px;color:var(--mute);cursor:pointer;transition:.15s;background:var(--field)}
.att-drop:hover,.att-drop:focus,.att-drop.over{border-color:var(--teal);color:var(--teal-d);background:var(--teal-l);outline:none}
.att-drop .ic{width:22px;height:22px}
.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.att-item{margin:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);display:flex;flex-direction:column}
.att-thumb{all:unset;cursor:zoom-in;height:110px;display:flex;align-items:center;justify-content:center;background:var(--zebra);overflow:hidden}
.att-thumb img{width:100%;height:100%;object-fit:cover}
.att-pdf{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--bad);font-weight:800}
.att-pdf .ic{width:34px;height:34px}
.att-item figcaption{padding:6px 8px;display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}
.att-item figcaption b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.att-item figcaption small{color:var(--mute)}
.att-acts{display:flex;gap:10px;margin-top:4px}
.att-acts a,.linkish{all:unset;cursor:pointer;color:var(--teal-d);font-weight:600;font-size:12px}
.att-acts .linkish{color:var(--bad)}
.att-view{text-align:center}.att-view img{max-width:100%;max-height:72vh;border-radius:6px}
code.path{display:block;padding:10px 12px;background:var(--field-ro);border:1px solid var(--line);border-radius:var(--r);font-size:13px;word-break:break-all}
.btn.ai{background:linear-gradient(135deg,#0b6b50,#0b3d2e);color:#fff;border-color:#0b3d2e}
.btn.ai .ic{color:#f4c768}
.ocr-src{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:8px 0}
.ocr-preview{min-height:120px;max-height:300px;border:2px dashed var(--line);border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:var(--mute);overflow:hidden;padding:6px;gap:6px}
.ocr-preview img{max-width:100%;max-height:280px;object-fit:contain}
.ocr-status{color:var(--teal-d);font-weight:700;min-height:20px}
.ocr-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.ocr-row{display:flex;gap:8px;align-items:flex-end}.ocr-row>input[type=checkbox]{margin-bottom:12px}.ocr-row .fld{flex:1}
.fld.ocr-filled input,.fld.ocr-filled select,.fld.ocr-filled .big-ref{background:var(--gold-bg)!important;border-color:var(--gold)!important}
.fld.ocr-filled label::after{content:" ✦";color:var(--gold)}
.banner.draft{position:sticky;top:0;z-index:5;flex-wrap:wrap}
.banner.draft span{flex:1}
@media print{.att-panel,.banner.draft{display:none!important}}
/* ---- 1.5 تسكين الفصول */
.nav-badge{display:inline-block;min-width:19px;padding:0 6px;margin-inline-start:6px;border-radius:10px;background:var(--gold);color:#3a2a00;font-size:11px;font-weight:800;text-align:center;line-height:18px;vertical-align:1px}
.fld.locked select{background:var(--field-ro)}
.fld .hint{display:block;color:var(--mute);font-size:11.5px;margin-top:3px}
.banner.bad{background:var(--bad-bg);border-color:var(--bad);border-inline-start-color:var(--bad)}
tr.bad-row td{background:var(--bad-bg)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto}
.tab{background:none;border:0;border-bottom:3px solid transparent;padding:9px 14px;font:inherit;font-weight:600;color:var(--mute);cursor:pointer;white-space:nowrap}
.tab.on{color:var(--teal-d);border-bottom-color:var(--teal)}
.plc-head .grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.plc-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:12px}
.kpi{border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;background:var(--card);border-inline-start:4px solid var(--line)}
.kpi small{display:block;color:var(--mute);font-size:12px}.kpi b{font-size:20px;font-variant-numeric:tabular-nums}
.kpi.ok{border-inline-start-color:var(--ok)}.kpi.warn{border-inline-start-color:var(--gold)}.kpi.bad{border-inline-start-color:var(--bad)}
.plc-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding:12px 2px 6px;align-items:start}
.plc-col{--cc:var(--teal);background:var(--card);border:1px solid var(--line);border-top:5px solid var(--cc);border-radius:var(--r);display:flex;flex-direction:column;min-height:240px;max-height:72vh;transition:box-shadow .15s,border-color .15s}
.plc-col.pool{--cc:var(--mute);background:var(--zebra);border-style:dashed;border-top-style:solid}
.plc-col.over-drop{box-shadow:0 0 0 3px var(--focus);border-color:var(--teal)}
.plc-col header{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px}
.plc-col header .ttl{display:flex;gap:6px;align-items:center;justify-content:space-between}
.plc-col header small{color:var(--mute);font-size:12px}
.plc-col .meter{height:7px;border-radius:5px;background:var(--zebra);overflow:hidden}
.plc-col .meter i,.plc-impact .meter i{display:block;height:100%;background:var(--ok);border-radius:5px;transition:width .3s}
.plc-col.high .meter i{background:var(--gold)}.plc-col.over .meter i{background:var(--bad)}
.plc-col.over{border-color:var(--bad)}
.plc-col .nums{display:flex;justify-content:space-between;font-size:12.5px}.plc-col .nums b{font-size:15px}
.plc-col.over .nums span{color:var(--bad);font-weight:700}
.plc-col .mix{display:flex;flex-wrap:wrap;gap:6px;font-size:11.5px;color:var(--mute)}
.plc-col .mix .m{color:#1d6fa5;font-weight:700}.plc-col .mix .f{color:#b83a6b;font-weight:700}
.plc-col .here{align-self:flex-start}
.plc-col .list{padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}
.plc-col .empty{text-align:center;margin:18px 0;font-size:12.5px}
.plc-card{display:flex;gap:9px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:grab;user-select:none;transition:transform .1s,box-shadow .1s,opacity .15s}
.plc-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.plc-card.drag{opacity:.4}.plc-card.sel{outline:2px solid var(--teal);outline-offset:1px}
.plc-card.locked{cursor:not-allowed;opacity:.75;background:var(--zebra)}
.plc-card.moved{border-color:var(--gold);background:var(--gold-bg)}
.plc-card.hit{outline:3px solid var(--gold)}.plc-card.dim{opacity:.35}
.plc-card .av{flex:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;color:#fff;background:#1d6fa5}
.plc-card.f .av{background:#b83a6b}
.plc-card .who{min-width:0;display:flex;flex-direction:column}
.plc-card .who b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plc-card .who small{color:var(--mute);font-size:11.5px}
.plc-card .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.plc-card .tag{font-size:10.5px;padding:0 6px;border-radius:4px;background:var(--teal-l);color:var(--teal-d);white-space:nowrap}
.plc-card .tag.moved{background:var(--gold-l);color:#3a2a00}.plc-card .tag.pend{background:var(--zebra);color:var(--mute)}.plc-card .tag.bad{background:var(--bad-bg);color:var(--bad)}
.plc-changes{position:sticky;bottom:0;z-index:4;margin-top:10px}
.plc-changes.on{background:var(--card);border:1px solid var(--gold);border-radius:var(--r);padding:8px 12px;box-shadow:0 -4px 14px rgba(0,0,0,.08)}
.plc-changes summary{cursor:pointer;padding:4px 0}
.plc-changes .tbl-wrap{max-height:190px}
.plc-changes input{width:100%;min-width:140px}
.plc-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;align-items:start}
.plc-dbox{position:sticky;top:10px}
.plc-detail{display:flex;flex-direction:column;gap:12px}
.plc-dhead{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}
.plc-dhead h3{display:inline;margin:0}
.plc-impact{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.plc-impact .imp{border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.plc-impact .imp.over{border-color:var(--bad);background:var(--bad-bg)}.plc-impact .imp.over .meter i{background:var(--bad)}
.plc-impact .imp small{color:var(--mute);font-size:11.5px}
.plc-impact .meter{height:6px;border-radius:5px;background:var(--zebra);overflow:hidden}
.plc-impact .nums{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;align-items:baseline}
@media (max-width:1000px){.plc-split{grid-template-columns:1fr}.plc-dbox{position:static}}
@media print{.plc-changes{display:none!important}}
.plc-col .pend-note{color:var(--warn);font-weight:700;font-size:11.5px}
.plc-card.locked{border-style:dashed}
.plc-impact .nums b{direction:ltr;unicode-bidi:isolate}
/* ---- 1.6 التنبيهات ونور */
.bellwrap{position:relative}
.icon-btn.bell{position:relative}
.icon-btn.bell.ring .ic{animation:ring 2.4s ease-in-out infinite;transform-origin:50% 10%}
@keyframes ring{0%,80%,100%{transform:rotate(0)}84%{transform:rotate(14deg)}88%{transform:rotate(-12deg)}92%{transform:rotate(8deg)}96%{transform:rotate(-4deg)}}
@media (prefers-reduced-motion:reduce){.icon-btn.bell.ring .ic{animation:none}}
.bell-n{position:absolute;top:-4px;inset-inline-end:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gold);color:#3a2a00;font-size:10.5px;font-weight:800;line-height:18px;text-align:center}
.bell-n.danger{background:var(--bad);color:#fff}
.bell-pop{position:absolute;top:calc(100% + 8px);inset-inline-end:0;width:380px;max-width:92vw;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 32px rgba(0,0,0,.16);z-index:60;overflow:hidden}
.bell-pop header,.bell-pop footer{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.bell-pop footer{border-bottom:0;border-top:1px solid var(--line);justify-content:center}
.bell-list{max-height:60vh;overflow:auto}
.bell-item{display:flex;gap:10px;padding:9px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.bell-item:hover{background:var(--zebra)}
.bell-item div{display:flex;flex-direction:column;min-width:0}.bell-item b{font-size:13px;font-weight:600}.bell-item small{color:var(--mute);font-size:12px}
.bell-item .dot{flex:none;width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--teal)}
.bell-item.danger .dot{background:var(--bad)}.bell-item.warn .dot{background:var(--gold)}
.al-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.al-kpi{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ic lb" "ic n" "bd bd";gap:0 10px;align-items:center;text-align:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink)}
.al-kpi .ic{grid-area:ic;width:26px;height:26px;color:var(--teal)}.al-kpi small{grid-area:lb;color:var(--mute)}.al-kpi b{grid-area:n;font-size:22px}.al-kpi .badge{grid-area:bd;justify-self:start;margin-top:4px}
.al-kpi.on{border-color:var(--teal);box-shadow:0 0 0 2px var(--focus)}
.al-filters .grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.al-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 4px}
.al-bulk .sp{flex:1}
.al-list{display:flex;flex-direction:column;gap:8px}
.al-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--teal);border-radius:var(--r);padding:10px 12px}
.al-item.danger{border-inline-start-color:var(--bad)}.al-item.warn{border-inline-start-color:var(--gold)}
.al-ic .ic{width:22px;height:22px;color:var(--mute)}.al-item.danger .al-ic .ic{color:var(--bad)}
.al-txt{display:flex;flex-direction:column;min-width:0}.al-txt small{color:var(--mute);font-size:12.5px}
.al-acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.btn.wa{background:#25d366;border-color:#1ebe5a;color:#fff}
.btn.ghost{background:transparent}
.al-clear{text-align:center;padding:30px}
.al-strip{background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--gold);border-radius:var(--r);padding:12px 14px;margin-bottom:14px}
.al-strip header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.al-strip header b{display:flex;gap:6px;align-items:center}
.al-chips{display:flex;flex-wrap:wrap;gap:8px}
.al-chip{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border-radius:20px;background:var(--zebra);color:var(--ink);text-decoration:none;font-size:13px}
.al-chip .ic{width:16px;height:16px}.al-chip b{background:var(--card);border-radius:10px;padding:0 7px}
.al-top{margin-top:8px}.al-top .bell-item{border:0;padding:6px 2px}
.al-ok{color:var(--ok);font-weight:700}
.focus-flash{animation:flash 1.8s ease-out 1}
@keyframes flash{0%,40%{background:var(--gold-bg);box-shadow:0 0 0 3px var(--gold);border-radius:8px}100%{box-shadow:none}}
.noor-kpis{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.noor-kpis .kpi{flex:1 1 150px}
.noor-ring{--p:0;width:118px;height:118px;border-radius:50%;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--zebra) 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.noor-ring::before{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--card)}
.noor-ring b,.noor-ring small{position:relative}.noor-ring b{font-size:24px}.noor-ring small{font-size:11px;color:var(--mute)}
.noor-map{margin-bottom:10px}.noor-map summary{cursor:pointer;color:var(--teal-d)}
.noor-foot{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.noor-foot .sp{flex:1}
.nav-badge.soft{background:var(--teal-l);color:var(--teal-d)}
@media (max-width:760px){.al-item{grid-template-columns:auto minmax(0,1fr)}.al-ic{display:none}.al-acts{grid-column:1/-1;justify-content:flex-start}}
/* ---- 1.7 الماسح الضوئي والقراءة التلقائية */
.spinner{width:34px;height:34px;border-radius:50%;border:4px solid var(--teal-l);border-top-color:var(--teal);animation:spin .9s linear infinite;margin:0 auto}
@keyframes spin{to{transform:rotate(360deg)}}
.scan-wait,.scan-empty{text-align:center;padding:24px 10px}.scan-wait p,.scan-empty p{margin:12px 0 4px;font-weight:700}
.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;min-height:180px}
.scan-grid .scan-empty{grid-column:1/-1}
.scan-item{margin:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);display:flex;flex-direction:column}
.scan-item .att-thumb{height:130px;cursor:pointer}
.scan-item figcaption{padding:6px 8px;display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}
.scan-item figcaption b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-item figcaption small{color:var(--mute)}
code.path-inline{background:var(--field-ro);padding:1px 6px;border-radius:4px;word-break:break-all}
.att-tools{align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}
.att-auto{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:16px;background:var(--gold-bg);border:1px solid var(--gold-l);font-size:12.5px;font-weight:600;cursor:pointer}
.att-item.pending{border-style:dashed;border-color:var(--gold)}
.att-item.pending .att-thumb{cursor:default}
.att-item .badge{align-self:flex-start}
body.file-drag .att-panel:not(.disabled) .att-drop,body.file-drag .ocr-preview{border-color:var(--gold);background:var(--gold-bg);color:#3a2a00;animation:dropPulse 1.1s ease-in-out infinite}
@keyframes dropPulse{0%,100%{box-shadow:0 0 0 0 rgba(244,199,104,.0)}50%{box-shadow:0 0 0 6px rgba(244,199,104,.45)}}
.ocr-preview{cursor:pointer}.ocr-preview.over{border-color:var(--teal);background:var(--teal-l)}
@media (prefers-reduced-motion:reduce){body.file-drag .att-drop{animation:none}.spinner{animation-duration:2s}}
/* ---- 2.0 لوحة المدرسة الآن */
.live{background:var(--bg)}
.live:fullscreen{padding:18px;overflow:auto}
.live-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;background:linear-gradient(135deg,#0b3d2e,#0b6b50);color:#fff;border-radius:var(--r);padding:14px 18px;margin-bottom:12px}
.live-clock b{display:block;font-size:34px;font-variant-numeric:tabular-nums;letter-spacing:1px;line-height:1.1}.live-clock small{color:#cfe3da}
.live-period small{color:#f4c768;font-weight:700}.live-period b{display:block;font-size:20px}.live-period span{color:#cfe3da;font-size:13px}
.live-period .meter{height:6px;background:rgba(255,255,255,.18);border-radius:4px;margin-top:6px;overflow:hidden}.live-period .meter i{display:block;height:100%;background:#f4c768}
.live-head .btn{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.25)}
.live-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px}
.live-kpi{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--teal);border-radius:var(--r);padding:10px 12px;text-decoration:none;color:var(--ink)}
.live-kpi small{color:var(--mute)}.live-kpi b{font-size:22px;font-variant-numeric:tabular-nums}.live-kpi span{font-size:12px;color:var(--mute)}
.live-kpi.ok{border-inline-start-color:var(--ok)}.live-kpi.warn{border-inline-start-color:var(--gold)}.live-kpi.bad{border-inline-start-color:var(--bad)}
a.live-kpi:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.live-tile{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-top:5px solid var(--cc);border-radius:var(--r);overflow:hidden;transition:box-shadow .15s,transform .15s}
.live-tile:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);transform:translateY(-2px)}.live-tile:focus-visible{outline:3px solid var(--focus)}
.live-tile header{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;gap:6px}.live-tile header b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-tile .cam{height:140px;background:#0f1a16;display:flex;align-items:center;justify-content:center}.live-tile .cam img{width:100%;height:100%;object-fit:cover}
.cam-off{display:flex;flex-direction:column;align-items:center;gap:6px;color:#8aa39a;font-size:12px}.cam-off .ic{width:26px;height:26px}.cam-off.on{color:#f4c768}
.cam-off.big{padding:60px 0;background:#0f1a16;border-radius:var(--r)}.cam-off.big a{color:#f4c768}
.live-tile .now{padding:8px 10px;display:flex;flex-direction:column;min-height:52px}.live-tile .now b{font-size:15px}.live-tile .now small{color:var(--mute)}
.live-tile footer{display:flex;gap:12px;padding:6px 10px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute)}.live-tile footer .ok{color:var(--ok)}.live-tile footer .bad{color:var(--bad)}
.live-detail{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:14px}
.live-cam{background:#000;border-radius:var(--r);overflow:hidden;min-height:260px;display:flex;align-items:center;justify-content:center}
.live-cam .cam-off.big{align-self:stretch;flex:1;justify-content:center}
.live-cam img,.live-cam video{width:100%;max-height:60vh;object-fit:contain}.live-cam iframe{width:100%;height:56vh;border:0}
.live-teacher{display:flex;gap:10px;align-items:center;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:var(--r)}
.live-teacher .av,.chat .av{flex:none;width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.live-teacher div{flex:1;display:flex;flex-direction:column}.live-teacher small{color:var(--mute)}
.live-sched{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:62vh;overflow:auto}
.live-sched li{display:flex;gap:10px;padding:6px 8px;border-radius:6px}.live-sched li .tm{color:var(--mute);font-variant-numeric:tabular-nums;width:44px;flex:none}
.live-sched li div{display:flex;flex-direction:column}.live-sched li small{color:var(--mute)}.live-sched li .topic{color:var(--teal-d)}
.live-sched li.cur{background:var(--gold-bg);outline:1px solid var(--gold)}.live-sched li.brk{opacity:.6}
@media (max-width:860px){.live-head{grid-template-columns:1fr}.live-detail{grid-template-columns:1fr}}
/* الجدول */
.tbl.tt th small{display:block;color:var(--mute);font-weight:400}
.tbl.tt td.slot{text-align:center;min-width:110px;height:54px;vertical-align:middle}
.tbl.tt td.slot b{display:block;font-size:13px}.tbl.tt td.slot small{color:var(--mute);font-size:11.5px}
.tbl.tt td.slot.on{background:var(--teal-l)}.tbl.tt td.slot.edit{cursor:pointer}.tbl.tt td.slot.edit:hover{outline:2px solid var(--teal);outline-offset:-2px}
.tbl.tt tr.brk td,.tbl.tt tr.brk th{background:var(--zebra);color:var(--mute);text-align:center}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* الحصص */
.lessons{display:flex;flex-direction:column;gap:10px}
.lesson{background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--line);border-radius:var(--r);padding:12px}
.lesson header{display:flex;gap:10px;align-items:center;margin-bottom:8px}.lesson header .tm{font-variant-numeric:tabular-nums;color:var(--mute)}.lesson header b{flex:1}
.lesson.done{border-inline-start-color:var(--ok)}.lesson.late{border-inline-start-color:var(--bad)}.lesson.now{border-inline-start-color:var(--gold)}
.kpi-mini{display:inline-flex;flex-direction:column;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.kpi-mini small{color:var(--mute);font-size:11px}
/* المستويات */
.lv-seg{display:flex;flex-wrap:wrap;gap:4px}
.lv-seg button{font:inherit;font-size:12px;padding:3px 9px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--mute);cursor:pointer}
.lv-seg button.on{color:#fff;border-color:transparent}
.lv-seg .lv-excellent.on,.lv-chip.lv-excellent{background:#0b6b50}.lv-seg .lv-very_good.on,.lv-chip.lv-very_good{background:#2f8f6e}.lv-seg .lv-good.on,.lv-chip.lv-good{background:#3a7bb8}
.lv-seg .lv-acceptable.on,.lv-chip.lv-acceptable{background:#b7791f}.lv-seg .lv-needs_support.on,.lv-chip.lv-needs_support{background:#b83a3a}
.lv-chip{display:inline-flex;gap:6px;align-items:center;color:#fff;padding:3px 10px;border-radius:14px;font-size:12.5px}.lv-chip b{background:rgba(255,255,255,.25);border-radius:9px;padding:0 6px}
tr.lv-draft td{background:var(--gold-bg)}
.lv-tbl input{width:100%;min-width:140px}
textarea.lv-report{width:100%;font:inherit;line-height:1.9;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink)}
/* المحادثات */
.chat{display:grid;grid-template-columns:280px minmax(0,1fr);height:calc(100vh - 170px);min-height:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.chat aside{border-inline-end:1px solid var(--line);overflow:auto;background:var(--zebra)}
.chat .grp{display:block;padding:10px 12px 4px;color:var(--mute);font-weight:700}
.chat .room{all:unset;box-sizing:border-box;width:100%;display:flex;gap:10px;align-items:center;padding:8px 12px;cursor:pointer}
.chat .room:hover{background:var(--card)}.chat .room.on{background:var(--card);box-shadow:inset 3px 0 0 var(--teal)}
.chat .room div{flex:1;min-width:0;display:flex;flex-direction:column}.chat .room b{font-size:13.5px}.chat .room small{color:var(--mute);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat .av{width:34px;height:34px;font-size:13px}
.chat section{display:flex;flex-direction:column;min-width:0}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:72%;align-self:flex-start;background:var(--zebra);border-radius:12px;padding:6px 12px}.msg.me{align-self:flex-end;background:var(--teal-l)}
.msg b{display:block;font-size:12px;color:var(--teal-d)}.msg p{margin:2px 0;white-space:pre-wrap;word-break:break-word}.msg small{color:var(--mute);font-size:11px}
.chat-compose{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.chat-compose textarea{flex:1;resize:none;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink)}
@media (max-width:760px){.chat{grid-template-columns:1fr;height:auto}.chat aside{max-height:220px}}
tr.muted-row td{opacity:.55}
/* ---- 2.1 رقم المستند التلقائي */
.fld.docno input{font-weight:800;font-size:15px;letter-spacing:.5px;direction:ltr;text-align:center}
.fld.docno input.auto-no{color:var(--teal-d);background:var(--gold-bg);border-style:dashed;border-color:var(--gold)}
.auto-hint{color:var(--warn)!important}.auto-hint.done{color:var(--ok)!important}
/* ---- 2.3 النسخ الاحتياطي */
.bk-steps{margin:0 0 6px;padding-inline-start:22px;line-height:2}
.bk-meter{height:10px;background:var(--zebra);border-radius:6px;overflow:hidden}.bk-meter i{display:block;height:100%;background:var(--teal);transition:width .3s}

/* ===== 2.3 — أيقونات الشاشات الملوّنة في القائمة الجانبية ===== */
.nt{--tc:#b8c7c0;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;flex:none;color:var(--tc);background:color-mix(in srgb,var(--tc) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 22%,transparent);transition:transform .15s ease,background .15s ease,color .15s ease}
.nt .ic{width:16px;height:16px;stroke-width:1.9}
.nt.t-blue{--tc:#8fb6ff}.nt.t-teal{--tc:#5fd6c2}.nt.t-green{--tc:#7edb9b}.nt.t-amber{--tc:#f4c768}
.nt.t-rose{--tc:#ff9fae}.nt.t-violet{--tc:#c4a8ff}.nt.t-sky{--tc:#7fd2f7}.nt.t-slate{--tc:#bcccc5}
.side .grp li a{display:flex;align-items:center;gap:10px;padding:5px 14px;padding-inline-start:22px}
.side .grp li a .nl{flex:1;min-width:0;line-height:1.35}
.side .grp li a .nav-badge{margin-inline-start:0}
.side .grp li a:hover .nt{transform:scale(1.08);background:color-mix(in srgb,var(--tc) 26%,transparent)}
.side .grp li a.on .nt{background:var(--tc);color:#0b2a20;box-shadow:0 2px 8px color-mix(in srgb,var(--tc) 45%,transparent)}
.side .grp li.sep{margin-inline-start:22px}
.side .grp>button>.ic,.side .home>.ic{color:var(--gold-l)}
/* عنوان الصفحة */
.page-title{align-items:center}
.nt.big{width:40px;height:40px;border-radius:12px;align-self:center}
.nt.big .ic{width:22px;height:22px;stroke-width:1.8}
.page-title .nt.t-blue{--tc:#2f6fdb}.page-title .nt.t-teal{--tc:#0f8f7e}.page-title .nt.t-green{--tc:#1f9d55}.page-title .nt.t-amber{--tc:#b7791f}
.page-title .nt.t-rose{--tc:#d6455d}.page-title .nt.t-violet{--tc:#7c4dde}.page-title .nt.t-sky{--tc:#1b8fc4}.page-title .nt.t-slate{--tc:#5b6f68}
:root[data-theme=dark] .page-title .nt{filter:brightness(1.35)}
@media print{.page-title .nt{display:none}}
@media (prefers-reduced-motion:reduce){.nt{transition:none}}

/* ===== 2.3 — الأدوار والحسابات ===== */
.role-chip{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;background:var(--teal-l);color:var(--teal-d);white-space:nowrap}
.role-chip.r-owner{background:#2b2140;color:#e7dcff}.role-chip.r-manager{background:#e3ecff;color:#1d4fb8}.role-chip.r-accountant{background:#e2f5e9;color:#17703f}
.role-chip.r-reception{background:#fde9ec;color:#a62a40}.role-chip.r-teacher{background:#fbf1d9;color:#8a5a00}.role-chip.r-custom{background:var(--field-ro);color:var(--mute)}
:root[data-theme=dark] .role-chip{filter:brightness(.9) saturate(.9)}
.tbl tr.owner td{background:color-mix(in srgb,#7c4dde 7%,transparent)}
.role-prev{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.role-prev .chip{display:inline-block;padding:2px 9px;border-radius:10px;background:var(--field-ro);border:1px solid var(--line);font-size:12px;margin:2px}
.role-prev .chip.ok{background:var(--teal-l);color:var(--teal-d);font-weight:700}
.usermenu .pop .pop-who{padding:10px 12px 8px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column;gap:3px}
.usermenu .pop .pop-who small{color:var(--mute)}.usermenu .pop .pop-who .badge{align-self:flex-start}

/* ===== 2.4 — الانسحاب والتسوية ===== */
.wd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.wd-kpi{background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--teal);border-radius:var(--r);padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.wd-kpi small{color:var(--mute)}.wd-kpi b{font-size:20px;font-variant-numeric:tabular-nums}
.wd-kpi.gold{border-inline-start-color:var(--gold)}.wd-kpi.ok{border-inline-start-color:#1f9d55}.wd-kpi.bad{border-inline-start-color:var(--bad)}
.wd-clr{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.chip-link{display:inline-block;margin:2px 4px;padding:2px 10px;border-radius:12px;background:var(--teal-l);color:var(--teal-d);text-decoration:none;font-size:13px}

/* ===== 2.4 — الفوترة الإلكترونية ===== */
.note-box{background:var(--teal-l);color:var(--teal-d);border-radius:var(--r);padding:12px 14px;font-size:13.5px;line-height:1.8}
.zt-steps{display:flex;flex-direction:column;gap:12px}
.zt-step{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.zt-step .zt-n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:var(--field-ro);color:var(--mute)}
.zt-step.cur{border-color:var(--gold)}.zt-step.cur .zt-n{background:var(--gold);color:#3a2a00}
.zt-step.done .zt-n{background:var(--teal);color:#fff}
.zt-step p{margin:4px 0 8px;font-size:13px}
.pp-url{background:var(--field-ro);padding:4px 10px;border-radius:6px;font-size:13px;word-break:break-all}
/* 2.5 — مخططات التقارير وبطاقات النتائج */
.doc .chart{margin:6px 0 14px;padding:8px 10px;border:1px solid #ccc;border-radius:6px;break-inside:avoid}
.doc .chart h3{margin:0 0 8px;font-size:13px}
.doc .cb{display:grid;grid-template-columns:minmax(90px,24%) 1fr 90px;gap:8px;align-items:center;font-size:11.5px;margin:3px 0}
.doc .cb .cl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc .cb .ct{background:#eef2f0;border-radius:3px;height:13px;position:relative;overflow:hidden}
.doc .cb .ct i{position:absolute;inset-block:0;inset-inline-start:0;background:#0f6b52;border-radius:3px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.doc .cb .ct i.c2{background:#f4c768;inset-block:auto 0;height:5px;opacity:.95}
.doc .cb b{text-align:end;font-variant-numeric:tabular-nums;direction:ltr}
.doc .chart .lg{font-size:11px;color:#555;margin-top:6px}.doc .chart .lg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline:8px 4px;vertical-align:middle;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.doc .rnote{background:#f3f7f5;border-inline-start:3px solid #0f6b52;padding:6px 10px;font-size:12.5px;margin:6px 0 10px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.doc table.roster td{height:26px}
.doc .card-info{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}
.doc .card-info div{border:1px solid #333;padding:6px;text-align:center;font-size:12px}.doc .card-info b{display:block;font-size:14px}
.pb-auto{break-after:page}
.rc-search{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.rc-search input{flex:1;font-size:16px;padding:10px 14px}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.rc-sec h3{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}
.rc-sec a{display:block;padding:7px 10px;border-radius:8px;text-decoration:none;color:inherit;border:1px solid transparent}
.rc-sec a:hover{background:var(--line-2);border-color:var(--line)}
.rc-sec a mark{background:#fde68a;color:inherit;border-radius:3px}
.rc-count{color:var(--mute,#64776f);font-size:13px}
/* السن والصف المقترح */
.age-hint:empty{display:none}
.age-hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;padding:6px 10px;border-radius:8px;font-size:12.5px;line-height:1.5;background:var(--soft,#eef6f3);color:var(--ink,#123)}
.age-hint.ok{background:#e7f6ee;color:#0b5e3c}
.age-hint.info{background:#eaf2fd;color:#173f73}
.age-hint.warn{background:#fff4e0;color:#8a4b00;border:1px solid #f3c77a}
.age-hint .btn.sm{padding:2px 10px;margin-inline-start:auto}
.age-hint .ah-ic{font-size:14px}
.map-offmsg{display:none;position:absolute;inset:auto 10px 10px 10px;background:rgba(255,248,230,.95);color:#7a4a00;border:1px solid #f0c674;border-radius:8px;padding:6px 10px;font-size:12px;z-index:3;text-align:center}
.map.map-off .map-offmsg{display:block}
.map.map-off{background:repeating-linear-gradient(45deg,#eef2f0 0 12px,#e6ebe8 12px 24px)}
.warn-txt{color:#a15c00;font-weight:600}

/* =====================================================================
   v3.1 — طبقة التصميم الاحترافي
   خط IBM Plex Sans Arabic، أسطح ناعمة بظلال خفيفة، تدرّج في العمود الجانبي،
   أزرار وحقول بارتفاع موحّد، جداول بعناوين هادئة، ومعاينة طباعة كصفحة ورق حقيقية.
   ===================================================================== */
:root{
  --bg:#f2f5f4;--line:#dbe3df;--line-2:#ebf0ee;--zebra:#f9fbfa;
  --r:9px;--r-lg:14px;
  --sh-1:0 1px 2px rgba(16,40,32,.05),0 1px 1px rgba(16,40,32,.03);
  --sh-2:0 4px 14px rgba(16,40,32,.07),0 1px 3px rgba(16,40,32,.05);
  --sh-3:0 18px 50px rgba(8,30,23,.18);
  --wa:#128c4a;--wa-l:#e6f6ec;
}
:root[data-theme=dark]{--sh-1:0 1px 2px rgba(0,0,0,.35);--sh-2:0 6px 18px rgba(0,0,0,.35);--sh-3:0 18px 50px rgba(0,0,0,.55);--wa:#4fd18b;--wa-l:#123423}
body{font-size:14px;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga"}
h1,h2,h3{letter-spacing:-.1px}
::selection{background:color-mix(in srgb,var(--teal) 22%,transparent)}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--mute) 45%,transparent) transparent}

/* العمود الجانبي */
.side{background:linear-gradient(180deg,#0d4433 0%,var(--spine) 38%,#082e23 100%);box-shadow:inset -1px 0 0 rgba(255,255,255,.04)}
:root[data-theme=dark] .side{background:linear-gradient(180deg,#0b2f24,#071d16)}
.side .brand{padding:18px 16px 16px}
.side .brand img{box-shadow:0 4px 12px rgba(0,0,0,.25)}
.side .home,.side .grp>button{margin:1px 8px;width:calc(100% - 16px);border-radius:9px;border-inline-start:0}
.side .home.on{background:rgba(255,255,255,.1);box-shadow:inset 3px 0 0 var(--gold-l)}
[dir=rtl] .side .home.on{box-shadow:inset -3px 0 0 var(--gold-l)}
.side .grp li a{margin:1px 8px;border-radius:8px;border-inline-start:0}
.side .grp li a.on{background:rgba(255,255,255,.1)}
.side .grp>button:hover,.side .home:hover,.side .grp li a:hover{background:rgba(255,255,255,.07)}

/* الشريط العلوي */
.topbar{background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);box-shadow:var(--sh-1);position:relative;z-index:6}
.topbar .chip{background:var(--bg);border-color:transparent}

/* البطاقات والمجموعات */
.card,fieldset,.tbl-wrap{border-color:var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.card{padding:18px}
fieldset>legend{padding:11px 18px;font-size:14px;color:var(--ink);background:linear-gradient(to bottom,color-mix(in srgb,var(--teal-l) 55%,transparent),transparent);border-radius:var(--r-lg) var(--r-lg) 0 0}
fieldset>legend::before{content:"";display:inline-block;width:4px;height:14px;border-radius:2px;background:var(--teal);margin-inline-end:9px;vertical-align:-2px}
fieldset>*:not(legend){margin:0 18px 16px}

/* الأزرار */
.btn{border-radius:9px;padding:8px 14px;min-height:38px;font-weight:500;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .05s;box-shadow:var(--sh-1)}
.btn:hover{background:color-mix(in srgb,var(--teal-l) 55%,var(--card))}
.btn:active{transform:translateY(1px)}
.btn.sm{min-height:30px;padding:4px 10px;border-radius:7px}
.btn.pri{background:linear-gradient(180deg,color-mix(in srgb,var(--teal) 88%,#fff),var(--teal));box-shadow:0 1px 2px rgba(0,0,0,.12),0 4px 12px color-mix(in srgb,var(--teal) 28%,transparent)}
.btn.pri:hover{background:var(--teal-d);filter:none}
:root[data-theme=dark] .btn.pri{color:#06241b}
.btn.danger:hover{background:var(--bad-bg)}
.btn.wa{background:var(--wa-l);border-color:color-mix(in srgb,var(--wa) 45%,transparent);color:var(--wa);font-weight:600}
.btn.wa:hover{background:var(--wa);border-color:var(--wa);color:#fff}
.btn.busy{opacity:.75;cursor:progress}
.btn.busy::after{content:"";width:13px;height:13px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* شريط الأدوات */
.toolbar{border-radius:var(--r-lg);padding:8px;gap:6px;box-shadow:var(--sh-2);background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(8px)}
.toolbar .btn{box-shadow:none}

/* الحقول */
.fld>label{font-size:12.5px;font-weight:600;color:color-mix(in srgb,var(--ink) 70%,var(--mute))}
.fld input:not([type=checkbox]):not([type=file]),.fld select,.inp{height:40px}
.fld input,.fld select,.fld textarea,.inp{border-radius:9px;padding:8px 11px;transition:border-color .15s,box-shadow .15s,background .15s}
.fld input:hover:not([readonly]):not(:disabled),.fld select:hover:not(:disabled),.fld textarea:hover,.inp:hover{border-color:color-mix(in srgb,var(--teal) 45%,var(--line))}
.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus{background:var(--field)}
.fld input[readonly],.fld input:disabled,.fld select:disabled{border-style:solid;border-color:var(--line-2)}

/* الجداول */
.tbl th{background:color-mix(in srgb,var(--teal-l) 45%,var(--card));color:color-mix(in srgb,var(--ink) 72%,var(--mute));font-size:12.5px;border-bottom:1px solid var(--line);padding:10px 12px}
.tbl td{padding:9px 12px}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr.click:hover{background:color-mix(in srgb,var(--teal-l) 60%,var(--card))}

/* النوافذ */
.modal-back{background:rgba(6,22,17,.45);backdrop-filter:blur(3px);animation:fadeIn .15s ease-out}
.modal{border-radius:16px;box-shadow:var(--sh-3);animation:popIn .18s ease-out;overflow:hidden}
.modal>header{padding:14px 18px;font-size:15px;background:color-mix(in srgb,var(--teal-l) 35%,var(--card))}
.modal>.body{padding:16px 18px}
.modal>footer{padding:12px 18px;background:color-mix(in srgb,var(--bg) 60%,var(--card))}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
.toast{border-radius:11px!important;box-shadow:var(--sh-3)!important}

/* مؤشرات الأداء */
.kpi{border-radius:12px;box-shadow:var(--sh-1);padding:10px 14px}
.kpi b{font-size:21px;letter-spacing:-.3px}

/* معاينة الطباعة / PDF */
.pv-modal{width:min(1000px,97vw)!important;height:94vh;max-height:94vh!important}
.pv-modal>.body{padding:0;display:flex;flex-direction:column;min-height:0;flex:1}
.pv-wrap{display:flex;flex-direction:column;min-height:0;flex:1}
.pv-tools{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:2}
.pv-scroll{flex:1;overflow:auto;background:#5f6b67;padding:26px 16px;min-height:0}
:root[data-theme=dark] .pv-scroll{background:#0a0f0d}
.pv-page{background:#fff;color:#000;width:210mm;max-width:100%;min-height:297mm;margin:0 auto;padding:12mm;box-shadow:0 10px 40px rgba(0,0,0,.35);border-radius:2px}
.pv-page.thermal{width:80mm;min-height:0;padding:4mm}
.pv-page.landscape{width:297mm;min-height:210mm}
.pv-tools .sp{flex:1}.pv-tools .pv-orient{gap:4px}.pv-zoom{align-self:center;font-size:12px}
.pdf-ready{display:grid;gap:12px;padding:4px 2px}.pdf-ok{font-weight:700;color:var(--ok)}
.pdf-acts{display:flex;flex-wrap:wrap;gap:8px}.pdf-hint:empty{display:none}
.pdf-hint{font-size:13px;line-height:1.8;background:var(--ok-bg);border-radius:10px;padding:10px 14px}
.pv-page .doc{max-width:100%}
@media (max-width:700px){.pv-page{padding:5mm;min-height:0}.pv-scroll{padding:10px 6px}}
.pdf-send .fld{margin-bottom:10px}
.pdf-who{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg);min-height:46px}
.pdf-who .hint{flex-basis:100%;color:var(--mute);font-size:12px}
.pdf-prog{color:var(--mute);font-size:12.5px;min-height:18px}
.seg{display:inline-flex;gap:6px;flex-wrap:wrap}
.seg .btn.on{background:var(--teal);border-color:var(--teal);color:#fff}
.pdf-host .doc{font-family:"IBM Plex Sans Arabic","Noto Sans Arabic",Tahoma,sans-serif}

/* المستندات المطبوعة */
.doc{font-family:"IBM Plex Sans Arabic","Noto Sans Arabic",Tahoma,Arial,sans-serif}
.doc h1.t{border:0;background:linear-gradient(90deg,transparent,#eef4f1 18%,#eef4f1 82%,transparent);border-radius:4px;font-weight:700;letter-spacing:0}
.doc table.b th{background:#e8f0ec;color:#0b3d2e;font-weight:600}
.doc table.b td,.doc table.b th{border-color:#9fb3aa}
.doc-brand{border-top-color:#0b6b50}

@media (max-width:860px){.toolbar{border-radius:12px}.card{padding:14px}fieldset>*:not(legend){margin:0 12px 12px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* شاشة الدخول */
.login-art{background:radial-gradient(1200px 600px at 85% -10%,rgba(244,199,104,.16),transparent 60%),radial-gradient(900px 700px at 0% 110%,rgba(70,181,146,.22),transparent 60%),linear-gradient(160deg,#0f4d3a,#082e23 70%)}
.login-art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,#000,transparent 85%);-webkit-mask-image:linear-gradient(to bottom,#000,transparent 85%);pointer-events:none}
.login-art>*{position:relative;z-index:1}
.login-art::after{border-color:rgba(244,199,104,.10)}
.login-art h1{font-size:38px;font-weight:700;line-height:1.45}
.login-art li{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px 14px;max-width:30em}
.login-form{background:var(--card)}
.login-card{max-width:380px;width:100%;margin-inline:auto}
.login-card h2{font-size:26px;font-weight:700}
.login-card input,.login-card select{height:46px;border-radius:10px}
.login-card .btn{height:48px;border-radius:10px;font-size:15px}

/* ================================================================ FIREWALL Accounting — الأستاذ العام */
.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:20px;padding:2px 11px;font-size:12.5px;white-space:nowrap;color:var(--mute);background:var(--card);text-decoration:none}
.chip.ok{color:var(--ok);background:var(--ok-bg);border-color:transparent}.chip.bad{color:var(--bad);background:var(--bad-bg);border-color:transparent}.chip.warn{color:var(--warn);background:var(--gold-bg);border-color:transparent}.chip.locked{color:var(--bad);background:var(--bad-bg);border-color:transparent}
.topbar .chip.locked{color:var(--bad)}
.chip-st{display:inline-block;border-radius:4px;padding:2px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}
.chip-st.ok{background:var(--ok-bg);color:var(--ok)}.chip-st.draft{background:var(--gold-bg);color:var(--warn)}.chip-st.new{background:var(--teal-l);color:var(--teal-d)}
.chk-l{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;font-size:13.5px}
.chk-l input{width:16px;height:16px;accent-color:var(--teal)}
.checks{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:8px 20px;align-items:center}
.radios{display:flex;gap:18px;align-items:center;min-height:36px}
.banner.ok{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.banner.warn{background:var(--gold-bg)}
.banner ul{margin:6px 0 0;padding-inline-start:18px}
.block{display:block;width:100%;text-align:start;padding:6px 4px}
.pick-list{max-height:55vh;overflow:auto;margin-top:8px}.pick-list .block:hover{background:var(--teal-l)}
.inp{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink)}
.tbl tr.bad td{background:var(--bad-bg)}.tbl tr.dim td{color:var(--mute)}.tbl tr.ok td{background:var(--ok-bg)}.tbl td.warn{color:var(--warn);font-weight:600}.tbl tr.cur td{background:var(--hl)}

/* اقتراحات الحساب */
.sg-box{position:absolute;z-index:120;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.16);max-height:330px;overflow:auto;padding:4px 0}
.sg-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:6px 12px;cursor:pointer;align-items:center;font-size:13.5px}
.sg-item b{font-variant-numeric:tabular-nums;color:var(--teal-d);font-weight:600}.sg-item small{color:var(--mute);font-size:11.5px}
.sg-item.act{background:var(--teal-l)}.sg-item.dim{color:var(--mute);cursor:default}.sg-item.dim b{color:var(--mute)}
.sg-empty{padding:10px 14px;color:var(--mute)}
.acc-field{display:flex;gap:4px;align-items:stretch;min-width:0}.acc-field input{flex:1;min-width:0}
.acc-field .btn.icon-only{padding:0 8px;min-width:32px;justify-content:center}
.acc-field.has-sub input{border-inline-start:3px solid var(--gold)}

/* الشجرة */
.split{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:14px;align-items:start}
.tree-side{position:sticky;top:70px;max-height:calc(100vh - 150px);display:flex;flex-direction:column;gap:8px;padding:12px}
.tree-box{overflow:auto;flex:1;min-height:200px}
.tree,.tree ul{list-style:none;margin:0;padding:0}.tree ul{padding-inline-start:16px;border-inline-start:1px dotted var(--line)}
.tree li{margin:0;white-space:nowrap}
.tree .tw{width:18px;height:18px;border:0;background:none;color:var(--mute);cursor:pointer;font-weight:700;padding:0;line-height:1}
.tree .tl{display:inline-flex;gap:4px;align-items:center;padding:2px 6px;border-radius:4px;cursor:pointer;font-size:13.5px}
.tree .tl:hover{background:var(--zebra)}.tree .tl.sel{background:var(--teal);color:#fff}.tree .tl.sel .tc{color:#fff}
.tree .tl.lv1{font-weight:700}.tree .tl.lv2{font-weight:600}.tree .tl.det{color:var(--ink)}.tree .tl.closed{text-decoration:line-through;color:var(--mute)}
.tree .tc{color:var(--teal-d);font-variant-numeric:tabular-nums;font-size:12.5px}
.tree .subl{color:var(--mute);font-size:12.5px}
.tree .tb{font-size:10.5px;border-radius:3px;padding:0 4px;background:var(--gold-bg);color:var(--warn)}.tree .tb.vat{background:var(--teal-l);color:var(--teal-d)}.tree .tb.off{background:none}
.parent-lbl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 16px 12px}
.itiles{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.itile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 14px;min-width:120px}
.itile small{display:block;color:var(--mute);font-size:12px}.itile b{font-size:16px;font-variant-numeric:tabular-nums}
.itile.cr b,.itile.bad b{color:var(--bad)}.itile.ok b{color:var(--ok)}
.sub-panel{border-color:var(--gold-l)!important}
.code-in{font-variant-numeric:tabular-nums;letter-spacing:.5px}

/* شبكة أسطر القيد */
.je-head .grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.je-head .row{gap:10px;align-items:center}
.recur-box{gap:6px!important}.recur-box select,.recur-box input{width:auto}
.grid-card{padding:0;overflow:hidden}
.grid-wrap{overflow:auto;max-height:58vh}
.grid-t{width:100%;border-collapse:collapse;font-size:13.5px}
.grid-t th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--teal-l) 55%,var(--card));color:var(--ink);font-weight:600;padding:8px 6px;text-align:start;white-space:nowrap;border-bottom:1px solid var(--line)}
.grid-t td{padding:2px 3px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.grid-t tr.cur td{background:var(--hl)}
.grid-t input,.grid-t select{width:100%;border:1px solid transparent;background:transparent;padding:6px 6px;border-radius:4px;color:var(--ink);font:inherit;min-width:0}
.grid-t input:focus,.grid-t select:focus{border-color:var(--teal);background:var(--field);outline:none}
.grid-t input:hover:not(:disabled),.grid-t select:hover:not(:disabled){border-color:var(--line)}
.grid-t input:disabled,.grid-t select:disabled{color:var(--mute)}
.grid-t select.need{border-color:var(--gold-l)}
.grid-t .ln{width:30px;text-align:center;color:var(--mute);font-size:12px}
.grid-t .rowdel{border:0;background:none;color:var(--mute);cursor:pointer;font-size:16px}.grid-t .rowdel:hover{color:var(--bad)}
.grid-t .w-acc{min-width:240px}.grid-t .w-sub{min-width:200px}.grid-t .w-dim{min-width:140px}.grid-t .w-amt{width:120px;min-width:110px}.grid-t .w-pct{width:70px}.grid-t .w-desc{min-width:220px}.grid-t .w-doc{width:110px}.grid-t .w-date{width:140px}.grid-t .w-party{min-width:160px}.grid-t .w-vat{width:150px}
.grid-t input.num,.grid-t .money-in{text-align:end;font-variant-numeric:tabular-nums}
.je-foot{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--line);background:var(--zebra)}
.je-foot .tot{display:flex;flex-direction:column;align-items:flex-end;min-width:120px}
.je-foot .tot span{font-size:12px;color:var(--mute)}.je-foot .tot b{font-size:16px}
.je-foot .tot.diff.bad b{color:var(--bad)}.je-foot .tot.diff b{color:var(--ok)}
.je-foot .f-line{display:flex;flex-direction:column;font-size:12.5px;min-width:0}.je-foot .f-acc{color:var(--mute)}.je-foot .f-bal{color:var(--teal-d)}
.grid-card>small.muted{display:block;padding:0 14px 10px}
.docno{font-variant-numeric:tabular-nums;font-weight:600;color:var(--teal-d)}
.btn.ai{background:linear-gradient(135deg,#6d4bd8,#0b6b50);color:#fff;border-color:transparent}

/* التقارير */
.rep-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.rep-layout>aside{position:sticky;top:70px;padding:8px;max-height:calc(100vh - 140px);overflow:auto}
.rep-list a{display:block;padding:8px 10px;border-radius:var(--r);color:var(--ink);text-decoration:none;font-size:13.5px}
.rep-list a:hover{background:var(--zebra)}.rep-list a.on{background:var(--teal);color:#fff;font-weight:600}
.rep-card{padding:0;overflow:hidden}
.rep-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.rep-head h3{margin:0;font-size:16px}
.rep-wrap{border:0;border-radius:0;max-height:70vh}
table.rep{width:100%}
table.rep tr.drill{cursor:pointer}table.rep tr.drill:hover td{background:var(--teal-l)}
table.rep tr.span td{background:color-mix(in srgb,var(--teal-l) 60%,var(--card));font-weight:700;color:var(--teal-d)}
table.rep tr.grp td{font-weight:700}
table.rep tr.tot td{font-weight:700;background:var(--zebra);border-top:1px solid var(--line)}
table.rep tr.gtot td,table.rep tfoot th{font-weight:700;background:var(--gold-bg);border-top:2px solid var(--gold)}
table.rep tr.open td{color:var(--mute);font-style:italic}table.rep tr.sub td{color:var(--mute);font-size:12.5px}table.rep tr.warn td{color:var(--warn)}
table.rep td.neg{color:var(--bad)}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.rc-g h3{display:flex;gap:8px;align-items:center;margin:0 0 8px;font-size:15px}.rc-g ul{margin:0;padding-inline-start:18px;line-height:2}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.tile{display:flex;flex-direction:column;gap:8px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;color:var(--ink);font-weight:600}
.tile:hover{border-color:var(--teal)}
.figures a{display:block;padding:14px 18px;border-inline-end:1px solid var(--line-2);color:inherit;text-decoration:none}.figures a:hover{background:var(--zebra)}
.figures .good b{color:var(--ok)}
.bars2{display:flex;align-items:flex-end;gap:8px;height:170px}
.bars2>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.bars2 .pair{flex:1;display:flex;align-items:flex-end;gap:2px;width:100%;justify-content:center}
.bars2 i{display:block;width:45%;max-width:18px;border-radius:3px 3px 0 0;min-height:2px}
.bars2 i.rev,.card .lg i.rev{background:var(--teal)}.bars2 i.exp,.card .lg i.exp{background:var(--gold)}
.bars2 small{font-size:11px;color:var(--mute)}
.card .lg{display:flex;gap:16px;margin-top:8px;font-size:12.5px;color:var(--mute)}.card .lg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:5px}
.al-chip.warn{background:var(--gold-bg);color:var(--warn)}.al-chip.bad{background:var(--bad-bg);color:var(--bad)}
.recon-sum{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.tbl.budget input{width:92px;text-align:end}.tbl.budget td.acc{white-space:nowrap;position:sticky;inset-inline-start:0;background:var(--card);z-index:1}
.card.fy header{gap:10px;margin-bottom:10px}.card.fy h3{margin:0}
.role-prev{min-height:24px}

/* المطبوعات */
.doc .vno{text-align:center;margin:-4px 0 10px;font-size:12.5px}
.doc table.sig{width:100%;margin-top:28px;border-collapse:collapse}.doc table.sig td{text-align:center;width:33%;padding-top:6px;border-top:1px dashed #999}
.doc table.rep tr.span td{background:#eef4f1;font-weight:700}.doc table.rep tr.tot td,.doc table.rep tr.gtot td{font-weight:700;background:#f4f4f4}.doc table.rep tfoot th{background:#f4f4f4}
.doc table.rep tr.pb-before{break-before:page}
.bank-form{font-size:12.5px}.bank-form .bk-head{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:center;border-bottom:3px solid var(--bk);padding-bottom:8px;margin-bottom:10px}
.bank-form .bk-head>div:first-child b{color:var(--bk);font-size:16px}.bank-form .bk-title{text-align:center;font-weight:700;font-size:15px;color:var(--bk)}.bank-form .bk-head>div:last-child{text-align:end}
.bank-form h4{margin:12px 0 4px;color:var(--bk);border-bottom:1px solid #ccc;padding-bottom:2px}
.bank-form table.kv.bk td.k{width:34%}.bank-form table.kv.bk small{color:#666}
.bank-form .bk-bank{margin-top:16px;border:1px dashed #999;padding:8px;display:flex;gap:24px}

@media (max-width:1000px){.split,.rep-layout{grid-template-columns:1fr}.tree-side,.rep-layout>aside{position:static;max-height:50vh}}
@media print{.rep-layout>aside,.rep-head .btn{display:none!important}}
.fld.row{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px}
.je-meta{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
[dir=rtl] .toolbar [data-act=first] .ic,[dir=rtl] .toolbar [data-act=prev] .ic,[dir=rtl] .toolbar [data-act=next] .ic,[dir=rtl] .toolbar [data-act=last] .ic{transform:scaleX(-1)}
.rep-filters{padding:0}.rep-filters>summary{cursor:pointer;padding:12px 16px;list-style-position:inside}.rep-filters[open]>summary{border-bottom:1px solid var(--line)}.rep-filters>.grid,.rep-filters>.row{margin:12px 16px}
td.ell{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* قائمة التقارير أفقية فوق الفلاتر — الجدول بعرض الصفحة كاملاً */
.rep-layout{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.rep-layout>aside{position:static;max-height:none;padding:8px;margin:0}
.rep-list{display:flex;flex-wrap:wrap;gap:6px}
.rep-list a{border:1px solid var(--line);padding:6px 12px;border-radius:20px;font-size:13px}
.rep-list a.on{border-color:var(--teal)}
table.rep td{white-space:nowrap}
.rep-filters,.rep-card{margin-bottom:12px}
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.act-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:var(--r);padding:12px;cursor:pointer;background:var(--card)}
.act-card:has(input:checked){border-color:var(--teal);background:var(--teal-l)}.act-card input{align-self:flex-start;width:18px;height:18px;accent-color:var(--teal)}
.chat-panel{display:flex;flex-direction:column;gap:10px;height:calc(100vh - 230px);min-height:420px}.chat-panel.compact{height:440px;min-height:0}
.chat-log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:6px}
.chat-msg{display:flex}.chat-msg.user{justify-content:flex-start}.chat-msg.assistant{justify-content:flex-end}
.chat-b{max-width:82%;padding:10px 14px;border-radius:14px;line-height:1.7;font-size:14px;white-space:pre-wrap}
.chat-msg.user .chat-b{background:var(--teal);color:#fff;border-end-start-radius:4px}.chat-msg.assistant .chat-b{background:var(--zebra);border:1px solid var(--line);border-end-end-radius:4px}
.chat-in{display:flex;gap:8px;align-items:stretch}.chat-in textarea{flex:1;resize:none;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink);font:inherit}.chat-in .col{display:flex;flex-direction:column;gap:4px}
.chat-empty{margin:auto;text-align:center;display:flex;flex-direction:column;gap:12px;color:var(--mute)}.chat-sugg{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.ai-fab{position:fixed;inset-inline-end:20px;bottom:20px;width:52px;height:52px;border-radius:50%;border:0;background:linear-gradient(135deg,#6d4bd8,#0b6b50);color:#fff;font-size:22px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:90}
.ai-pop{position:fixed;inset-inline-end:20px;bottom:84px;width:min(420px,calc(100vw - 32px));background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.25);z-index:95;padding:10px}
.ai-pop header{display:flex;gap:8px;align-items:center;margin-bottom:6px}
@media print{.ai-fab,.ai-pop{display:none!important}}

/* =====================================================================
   v1.4 — المتابعة والرقابة، صندوق الفواتير، العهد والسلف، تسوية البنك، التحصيل، الإقرار الضريبي، القوائم المالية
   ===================================================================== */
.bell-n.soft{background:var(--teal);color:#fff}
.chatbtn{text-decoration:none;color:inherit}
.bell-item small.when{font-size:11px;opacity:.8}
.pt-acts{margin-inline-start:auto;display:flex;gap:6px;align-self:center}
.pt-acts .btn{white-space:nowrap}
@media (max-width:760px){.pt-acts span{display:none}}
@media print{.pt-acts{display:none!important}}
.al-strip.ok{border-inline-start-color:var(--ok)}
.al-body{margin:3px 0;white-space:pre-line;font-size:13px;color:var(--ink);opacity:.85}
.al-item.esc{background:linear-gradient(90deg,transparent,var(--bad-bg))}
.unusual ul{margin:8px 0 0;padding-inline-start:20px;line-height:1.9}
/* طلبات المراجعة */
.rv-list{display:flex;flex-direction:column;gap:10px}
.rv-card{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--gold);border-radius:var(--r-lg,12px);padding:14px 16px;box-shadow:var(--sh-1)}
.rv-card.approved{border-inline-start-color:var(--ok)}.rv-card.rejected{border-inline-start-color:var(--bad)}.rv-card.cancelled{opacity:.6;border-inline-start-color:var(--line)}
.rv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.rv-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rv-top b{font-size:15px}
.rv-note{margin:4px 0 0;white-space:pre-line;background:var(--zebra);border-radius:8px;padding:8px 10px}
.rv-dec{margin:4px 0 0;padding:8px 10px;border-radius:8px;white-space:pre-line}.rv-dec.ok{background:var(--ok-bg)}.rv-dec.bad{background:var(--bad-bg)}.rv-dec.warn{background:var(--gold-bg)}
.rv-acts{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:150px}
@media (max-width:760px){.rv-card{flex-direction:column}.rv-acts{flex-direction:row;flex-wrap:wrap}}
/* متابعة الفريق */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.tm-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:var(--r-lg,12px);padding:14px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh-1)}
.tm-card.bad{border-top-color:var(--bad)}.tm-card.warn{border-top-color:var(--gold)}.tm-card.ok{border-top-color:var(--ok)}
.tm-card header{display:flex;gap:10px;align-items:center}.tm-card header div{flex:1;min-width:0;display:flex;flex-direction:column}.tm-card header small{color:var(--mute)}
.tm-card .av{flex:none;width:40px;height:40px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.tm-figs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tm-fig{background:var(--zebra);border-radius:8px;padding:6px 8px;text-align:center}.tm-fig b{display:block;font-size:18px}.tm-fig small{color:var(--mute);font-size:11.5px}
.tm-fig.bad b{color:var(--bad)}.tm-fig.warn b{color:var(--warn)}
.tm-card footer{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tm-card footer .sp{flex:1}
.figures .warn b{color:var(--warn)}
/* المحادثات */
.chat.over{outline:3px dashed var(--teal);outline-offset:-6px}
.chat-pend{padding:0 10px}.chat-pend .chip{margin:6px 0 0}.chat-pend .x{background:none;border:0;cursor:pointer;font-size:16px;color:var(--mute)}
.chat-img{display:block;max-width:260px;max-height:220px;border-radius:8px;margin:4px 0;border:1px solid var(--line)}
.chat-file{display:inline-flex;gap:6px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:4px 0;color:var(--ink);text-decoration:none}.chat-file small{color:var(--mute)}
.chat-day{align-self:center;font-size:11.5px;color:var(--mute);background:var(--zebra);border-radius:10px;padding:2px 10px;margin:6px 0}
.chat-msgs .older{align-self:center}.chat .msg a.chip-link{margin:4px 0;display:inline-block}
.chat-msgs .chat-empty{max-width:420px}
/* صندوق الفواتير الواردة */
.inb-drop{display:flex;gap:16px;align-items:center;border:2px dashed var(--teal);background:var(--teal-l);border-radius:var(--r-lg,14px);padding:18px 20px;cursor:pointer;margin-bottom:12px;transition:.15s}
.inb-drop:hover,.inb-drop.over{background:color-mix(in srgb,var(--teal) 16%,var(--card));transform:translateY(-1px)}
.inb-drop>div:nth-child(2){flex:1;display:flex;flex-direction:column;gap:2px}.inb-drop b{font-size:16px;color:var(--teal-d)}.inb-drop small{color:var(--mute)}
.inb-drop-ic{width:52px;height:52px;border-radius:14px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center}.inb-drop-ic .ic{width:28px;height:28px}
.inb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin-bottom:6px}
.inb-kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-align:start;cursor:pointer;font:inherit;color:var(--ink);display:flex;flex-direction:column}
.inb-kpi b{font-size:20px}.inb-kpi small{color:var(--mute);font-size:12px}.inb-kpi.on{border-color:var(--teal);box-shadow:var(--focus)}
.inb-kpi.ok b{color:var(--ok)}.inb-kpi.warn b{color:var(--warn)}.inb-kpi.bad b{color:var(--bad)}
.inb-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg,12px)}
table.inb{width:100%;border-collapse:separate;border-spacing:0;min-width:1180px}
table.inb th{position:sticky;top:0;background:var(--zebra);font-size:12.5px;color:var(--mute);text-align:start;padding:8px;border-bottom:1px solid var(--line);z-index:1}
table.inb td{padding:8px;vertical-align:top;border-bottom:1px solid var(--line-2)}
table.inb input,table.inb select{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:5px 7px;background:var(--field);color:var(--ink);font:inherit;font-size:13px}
table.inb input:disabled,table.inb select:disabled{background:transparent;border-color:transparent;color:var(--ink)}
.inb-row td:first-child{border-inline-start:5px solid var(--line)}
.inb-row.st-ready td:first-child{border-inline-start-color:var(--ok)}.inb-row.st-needs td:first-child{border-inline-start-color:var(--gold)}.inb-row.st-duplicate td:first-child,.inb-row.st-error td:first-child,.inb-row.st-rejected td:first-child{border-inline-start-color:var(--bad)}.inb-row.st-posted td:first-child{border-inline-start-color:var(--teal)}.inb-row.st-approval td:first-child{border-inline-start-color:#7c4dde}
.inb-row.st-posted,.inb-row.st-rejected{opacity:.78}.inb-row.sel td{background:var(--teal-l)}.inb-row.saving td:last-child{background:linear-gradient(90deg,transparent,var(--gold-bg))}
.inb-row.st-new td,.inb-row.st-reading td{background:repeating-linear-gradient(135deg,transparent 0 12px,color-mix(in srgb,var(--teal) 6%,transparent) 12px 24px)}
.inb-thumb{position:relative;width:54px;height:66px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0;cursor:zoom-in;overflow:hidden;display:flex;align-items:center;justify-content:center}
.inb-thumb img{width:100%;height:100%;object-fit:cover}.inb-thumb .qr-dot{position:absolute;bottom:2px;inset-inline-end:2px;background:var(--teal);color:#fff;font-size:9px;font-weight:800;border-radius:4px;padding:0 3px}
.c-sup{min-width:220px}.c-sup .sup-in{font-weight:700}.c-date{width:150px}.c-amt{width:130px}.c-acc{min-width:220px}.c-pay{min-width:200px}.c-st{min-width:170px}
.c-sup>*,.c-date>*,.c-amt>*,.c-acc>*,.c-pay>*{margin-bottom:4px}
.money-in{text-align:end;font-weight:700;direction:ltr}.money-in.sm{font-weight:500;width:80px!important}
.row.tight{gap:4px;flex-wrap:nowrap;align-items:center}
.vat-in{direction:ltr;font-size:12px!important}.vat-ok{font-weight:800;width:16px;text-align:center}.vat-ok.ok{color:var(--ok)}.vat-ok.bad{color:var(--bad)}
.acc-btn{width:100%;text-align:start;border:1px dashed var(--line);border-radius:7px;background:var(--field);color:var(--ink);padding:6px 8px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-btn.missing{border-color:var(--gold);background:var(--gold-bg);color:var(--warn);font-weight:700}
.pay-cell{display:flex;flex-direction:column;gap:4px}.pay-cell .chk-l{display:flex;gap:5px;align-items:center;font-size:12.5px}.pay-cell .chk-l input{width:auto}
.inb-st{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.inb-st small{font-size:11.5px}.learned{color:#7c4dde;font-weight:700}
.bad-txt{color:var(--bad)}.ok-txt{color:var(--ok)}
.inb-acts{display:flex;flex-direction:column;gap:4px}
.inb-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px}
.inb-prev{display:flex;flex-direction:column;gap:6px}.inb-prev img{width:100%;max-height:72vh;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff}.inb-prev iframe{width:100%;height:68vh;border:1px solid var(--line);border-radius:8px;background:#fff}
@media (max-width:900px){.inb-detail{grid-template-columns:1fr}.inb-prev img{max-height:40vh}.inb-prev iframe{height:46vh}}
.up-head{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.up-head .track{height:8px;background:var(--zebra);border-radius:4px;overflow:hidden}.up-head .track i{display:block;height:100%;background:var(--teal);transition:width .3s}
.up-list{max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.up-row{display:flex;gap:10px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line-2);font-size:13px}.up-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ocr-pill{background:var(--teal-l);color:var(--teal-d);font-weight:600}
.pa-list{display:flex;flex-direction:column;gap:12px}.pa-card{background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--gold);border-radius:var(--r-lg,12px);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.pa-card.approved{border-inline-start-color:var(--ok)}.pa-card.rejected{border-inline-start-color:var(--bad)}
.pa-card header{display:flex;gap:10px;justify-content:space-between;align-items:flex-start}.pa-card header>div:first-child{display:flex;flex-direction:column}.pa-card footer{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* العهد والسلف */
input.sm{width:84px;display:inline-block;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--field);color:var(--ink);font:inherit}
.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.cu-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:var(--r-lg,12px);padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--sh-1)}
.cu-card.bad{border-top-color:var(--bad)}.cu-card.warn{border-top-color:var(--gold)}.cu-card.open{grid-column:1/-1}
.cu-card header{display:flex;gap:10px;align-items:center}.cu-card .av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.cu-who{flex:1;min-width:0;display:flex;flex-direction:column}.cu-who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-body{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.cu-bal small{display:block;color:var(--mute);font-size:12px}.cu-bal b{font-size:26px;font-variant-numeric:tabular-nums}
.cu-meta{flex:1;display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:180px}.cu-body .banner{width:100%;margin:0;text-decoration:none}
.cu-card footer{display:flex;gap:6px;flex-wrap:wrap}.cu-items{border-top:1px solid var(--line);padding-top:8px;overflow-x:auto}
.cu-qr{display:flex;justify-content:center;margin:10px 0}.cu-deduct{margin-top:14px}.msg-pre{white-space:pre-wrap;font:inherit;background:var(--zebra);padding:8px;border-radius:6px;margin:6px 0}
/* تسوية البنك */
.br-banks{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.br-bank{--bk:var(--teal);display:flex;flex-direction:column;align-items:flex-start;gap:0;border:2px solid var(--line);border-inline-start:6px solid var(--bk);background:var(--card);border-radius:12px;padding:8px 14px;cursor:pointer;font:inherit;color:var(--ink);min-width:150px}
.br-bank small{color:var(--mute);font-size:11.5px}.br-bank.on{border-color:var(--bk);box-shadow:0 0 0 3px color-mix(in srgb,var(--bk) 25%,transparent)}
.br-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:10px}
.br-sum>div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.br-sum small{display:block;color:var(--mute);font-size:12px}.br-sum b{font-size:20px;font-variant-numeric:tabular-nums}
.br-sum .good{background:var(--ok-bg);border-color:var(--ok)}.br-sum .good b{color:var(--ok)}.br-sum .bad{background:var(--bad-bg);border-color:var(--bad)}.br-sum .bad b{color:var(--bad)}.br-sum .warn b{color:var(--warn)}
.br-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.br-chip{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:20px;padding:6px 14px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}
.br-chip b{background:var(--zebra);border-radius:10px;padding:0 8px}.br-chip.on{border-color:var(--teal);background:var(--teal-l)}
.br-chip.bad b{color:var(--bad)}.br-chip.warn b{color:var(--warn)}.br-chip.ok b{color:var(--ok)}
.br-list{display:flex;flex-direction:column;gap:10px}
.br-block{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:stretch;background:var(--card);border:1px solid var(--line);border-inline-start:7px solid var(--bad);border-radius:14px;padding:14px 16px;box-shadow:var(--sh-1);min-height:92px}
.br-block.suggested{border-inline-start-color:var(--gold);background:linear-gradient(90deg,var(--card) 60%,var(--gold-bg))}
.br-block.matched,.br-block.posted{border-inline-start-color:var(--ok);background:linear-gradient(90deg,var(--card) 70%,var(--ok-bg))}
.br-block.ignored{border-inline-start-color:var(--line);opacity:.6}
.br-block.new{background:linear-gradient(90deg,var(--card) 70%,var(--bad-bg))}
.br-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--zebra);border-radius:10px}.br-date b{font-size:24px;line-height:1}.br-date small{color:var(--mute);font-size:11px}
.br-main{display:flex;flex-direction:column;gap:6px;min-width:0}.br-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.br-desc{margin:0;font-size:15px;font-weight:600;word-break:break-word}
.br-sugg{background:color-mix(in srgb,var(--gold) 12%,var(--card));border:1px solid var(--gold-l);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.br-sugg small{color:var(--mute)}
.conf{height:6px;background:var(--zebra);border-radius:3px;overflow:hidden}.conf i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--ok))}
.br-done{color:var(--ok);font-weight:600}
.br-amt{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:200px}.br-amt>b{font-size:22px;font-variant-numeric:tabular-nums;direction:ltr}
.pos{color:var(--ok)}.neg{color:var(--bad)}td.num.pos{color:var(--ok)}td.num.neg{color:var(--bad)}
.br-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:auto}
@media (max-width:760px){.br-block{grid-template-columns:52px minmax(0,1fr)}.br-amt{grid-column:1/-1;align-items:stretch;min-width:0}.br-acts{justify-content:flex-start}}
.br-imports{margin-top:12px}.br-imports summary{cursor:pointer;color:var(--mute)}
.br-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:760px){.br-cols{grid-template-columns:1fr}}
table.rs td{padding:8px 10px;font-size:14px}table.rs tr.tot td{font-weight:800;border-top:2px solid var(--ink)}
.br-diff{margin:12px 0;padding:12px 16px;border-radius:12px;font-weight:800;font-size:16px;text-align:center;background:var(--zebra)}.br-diff.ok{background:var(--ok-bg);color:var(--ok)}.br-diff.bad{background:var(--bad-bg);color:var(--bad)}
.br-stmt h3{margin:16px 0 6px;font-size:14px}
/* التحصيل */
.cl-aging{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.cl-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--zebra)}.cl-bar i{display:block;height:100%}
.cl-leg{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:12.5px}.cl-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:4px;vertical-align:-1px}
.cl-bar i.ok,.cl-leg i.ok{background:var(--ok)}.cl-bar i.warn1,.cl-leg i.warn1{background:#e9c46a}.cl-bar i.warn2,.cl-leg i.warn2{background:#f4a261}.cl-bar i.warn3,.cl-leg i.warn3{background:#e76f51}.cl-bar i.bad,.cl-leg i.bad{background:var(--bad)}
.chip.warn1{background:#fbf3d8;color:#7a5a00}.chip.warn2{background:#fde6d2;color:#8a4b12}.chip.warn3{background:#fbdcd3;color:#8f2f17}
.cl-list{display:flex;flex-direction:column;gap:10px}
.cl-card{background:var(--card);border:1px solid var(--line);border-inline-start:6px solid var(--ok);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.cl-card.bad{border-inline-start-color:var(--bad)}.cl-card.warn{border-inline-start-color:var(--gold)}
.cl-card header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cl-card header>div{flex:1;min-width:200px;display:flex;flex-direction:column}
.cl-body{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.cl-fig small{display:block;color:var(--mute);font-size:12px}.cl-fig b{font-size:20px;font-variant-numeric:tabular-nums}.cl-fig.bad b{color:var(--bad)}
.cl-mini{display:flex;gap:6px;flex-wrap:wrap;flex:1}.cl-cd{font-size:13px;color:var(--mute)}
.cl-note{margin:0;background:var(--zebra);border-radius:8px;padding:6px 10px;font-size:13px}
.cl-card footer{display:flex;gap:6px;flex-wrap:wrap}
/* تجهيز الإقرار الضريبي */
.vp-top{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.4fr);gap:18px;align-items:center}
@media (max-width:900px){.vp-top{grid-template-columns:1fr}}
.vp-ring{--p:0;--c:var(--gold);width:120px;height:120px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--zebra) 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.vp-ring::before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--card)}.vp-ring b,.vp-ring small{position:relative}.vp-ring b{font-size:26px}.vp-ring small{color:var(--mute);font-size:12px}
.vp-ring.ok{--c:var(--ok)}.vp-ring.bad{--c:var(--bad)}
.vp-meta p{margin:4px 0}.vp-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.vp-figs>div{background:var(--zebra);border-radius:10px;padding:8px 10px}.vp-figs small{display:block;color:var(--mute);font-size:12px}.vp-figs b{font-size:17px;font-variant-numeric:tabular-nums}
.vp-figs .bad{background:var(--bad-bg)}.vp-figs .bad b{color:var(--bad)}.vp-figs .good{background:var(--ok-bg)}.vp-figs .good b{color:var(--ok)}
.vp-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.vp-check{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-inline-start:5px solid var(--teal);border-radius:10px;padding:10px 12px}
.vp-check.bad{border-inline-start-color:var(--bad);background:linear-gradient(90deg,var(--card) 75%,var(--bad-bg))}.vp-check.warn{border-inline-start-color:var(--gold)}.vp-check.ok{border-inline-start-color:var(--ok)}
.vp-ic{font-size:20px;text-align:center}.vp-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.vp-txt small{color:var(--mute)}.vp-txt details{margin-top:4px}
/* القوائم المالية — النموذج السعودي */
.fs-body{margin-top:8px}
.fs-paper{background:#fff;color:#111;max-width:900px;margin:0 auto;padding:34px 44px;border:1px solid #d6dfdb;border-radius:6px;box-shadow:var(--sh-2)}
.fs-co{text-align:center;font-weight:800;font-size:17px}
.doc h1.fs-t,.fs-t{text-align:center;font-size:17px;margin:4px 0;border:0;padding:0}
.fs-subt{text-align:center;margin-bottom:14px;font-size:13px}.fs-subt small{color:#555}
table.fs{width:100%;border-collapse:collapse;font-size:13px}
table.fs td,table.fs th{padding:5px 8px}
table.fs td.num,table.fs th.num{text-align:end;font-variant-numeric:tabular-nums;direction:ltr;width:15%;white-space:nowrap}
table.fs .fs-nt{width:7%;text-align:center;color:#444}
table.fs tr.fs-cols th{border-bottom:1.5px solid #111;font-weight:800;font-size:12.5px}
table.fs tr.fs-h1 td{font-weight:800;font-size:14px;padding-top:12px;text-decoration:underline}
table.fs tr.fs-h2 td{font-weight:800;padding-top:8px}table.fs tr.fs-h2b td{font-weight:800;padding-top:10px;font-size:13.5px}table.fs tr.fs-h3 td{font-style:italic;padding-inline-start:16px;color:#333}
table.fs tr.fs-sub td{font-weight:700}table.fs tr.fs-sub td.num{border-top:1px solid #111}
table.fs tr.fs-total td{font-weight:800}table.fs tr.fs-total td.num{border-top:1px solid #111;border-bottom:3px double #111}
table.fs tbody tr:not(.fs-h1):not(.fs-h2):not(.fs-h2b):not(.fs-sub):not(.fs-total):not(.fs-h3) td:first-child{padding-inline-start:16px}
table.fs.soce td.num,table.fs.soce th.num{width:auto}
table.fs-n{margin:6px 0 10px;width:auto;min-width:60%}
.fs-note{margin-bottom:14px;page-break-inside:avoid}.fs-note h3{font-size:14px;margin:12px 0 6px}.fs-note p{margin:4px 0;line-height:1.9;text-align:justify}
.fs-tag{font-size:11.5px;color:#444;margin-top:14px;text-align:center}
.fs-sign{margin-top:26px}.fs-sign p{font-size:12px;margin:0 0 6px}.fs-sign>div{display:flex;justify-content:space-around;gap:20px;text-align:center;font-weight:700;font-size:12.5px}
.fs-warn{color:#b3261e;font-weight:700}
.fs-cover{text-align:center;padding:80px 20px 40px;display:flex;flex-direction:column;align-items:center;gap:14px}.fs-cover img{max-width:160px;max-height:120px}.fs-cover h1{font-size:28px;margin:0}.fs-cover h2{font-size:18px;margin:0;color:#333}.fs-cover h3{font-size:20px;line-height:1.8;margin:30px 0 10px;border-block:2px solid #111;padding:14px 30px}.fs-cover .fs-fw{font-size:13px;color:#333;max-width:520px}
table.fs-idx td{padding:10px 8px;border-bottom:1px dotted #999}table.fs-idx td:last-child{text-align:center;width:20%}
.fs-print .fs-page{padding:4px 0}
@media (max-width:560px){.usermenu>.icon-btn{font-size:0;gap:0;padding:6px 8px}.gsearch{flex:1 1 70px;min-width:70px}.gsearch input{padding-inline-start:30px;font-size:13px}#btn-lang{padding:6px 8px;font-size:12px}.topbar{gap:6px}}
/* ===== v1.4: تأكيد قبل الحفظ (مبلغ غير معتاد / حماية المدفوعات / الموازنة) ===== */
.gate-blk{border:1px solid var(--line);border-inline-start:5px solid var(--gold);border-radius:10px;padding:10px 12px;margin:0 0 10px;background:var(--card)}
.gate-blk.risk{border-inline-start-color:var(--bad);background:linear-gradient(90deg,var(--card) 70%,var(--bad-bg))}.gate-blk.budget{border-inline-start-color:var(--teal)}
.gate-blk>b{display:block;font-size:15px}.gate-blk>p{margin:4px 0 0;font-size:12.5px}.gate-blk ul{margin:6px 0 0;padding-inline-start:20px;line-height:1.8}.gate-blk li.danger{color:var(--bad);font-weight:600}
/* ===== v1.4: إقفال الشهر ===== */
.mc-months{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;margin-bottom:6px}
.mc-m{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:86px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:inherit;cursor:pointer;font:inherit;font-size:12.5px}
.mc-m i{font-style:normal;font-size:15px}.mc-m.closed i{color:var(--ok)}.mc-m.open{border-color:var(--gold)}.mc-m.open i{color:#c07a00}.mc-m.current i{color:var(--teal)}
.mc-m.sel{outline:2px solid var(--teal);background:var(--teal-l)}.mc-m:disabled{opacity:.45;cursor:default}
td.mc-desc{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ===== v1.4: توقعات السيولة ===== */
.cf-opts{align-items:flex-end;gap:14px;margin-bottom:10px}.cf-opts .fld{min-width:160px}
.cf-gap p{margin:6px 0}.cf-chart{padding:10px 12px;margin:10px 0}
.cf-svg{width:100%;height:auto;display:block}.cf-svg .ax{stroke:var(--line);stroke-width:1}.cf-svg .minl{stroke:var(--bad);stroke-dasharray:6 5;stroke-width:1.4}
.cf-svg .bin{fill:#2e9b6e;opacity:.8}.cf-svg .bout{fill:#d0584d;opacity:.8}.cf-svg .bal{fill:none;stroke:#2563eb;stroke-width:2.5}.cf-svg .dot{fill:#2563eb}.cf-svg .dneg{fill:var(--bad)}
.cf-svg .xl{font-size:11px;fill:var(--mute);text-anchor:middle}.cf-svg .lbl{font-size:11px;fill:var(--bad)}
.cf-leg{display:flex;gap:16px;font-size:12.5px;color:var(--mute);padding:4px 6px}.cf-leg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px}.cf-leg i.in{background:#2e9b6e}.cf-leg i.out{background:#d0584d}.cf-leg i.bal{background:#2563eb;height:3px;vertical-align:3px}
.cf-tbl{margin:10px 0}table.cf th{white-space:nowrap;font-weight:500}table.cf thead th{font-size:12px}table.cf tr.sec th{background:var(--zebra);color:var(--mute);font-size:12.5px}
table.cf th.ind{padding-inline-start:22px;color:var(--ink-2,inherit)}table.cf tr.tot th,table.cf tr.tot td{font-weight:700;border-top:1px solid var(--line)}table.cf tr.tot.good td{color:var(--ok)}table.cf tr.tot.bad td{color:var(--bad)}
table.cf tr.bal th,table.cf tr.bal td{background:var(--teal-l);font-weight:700}table.cf tr.strong td{font-size:14.5px}table.cf td a{color:inherit;text-decoration:underline dotted}
.cf-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;align-items:start}.cf-side>.banner,.cf-side>p.muted{grid-column:1/-1}
@media (max-width:900px){.cf-side{grid-template-columns:1fr}}
.figures .fig.good b{color:var(--ok)}.figures .fig small.muted{font-size:11.5px;margin-top:2px}
/* ---------------- البيانات (قائمة المستخدم) + البيانات التجريبية ---------------- */
.usermenu .pop{min-width:230px}
.usermenu .pop .pop-data{border-top:1px solid var(--line);margin-top:4px;padding:8px 4px 4px;width:330px;max-width:88vw}
.pop-data .pd-title{font-weight:700;color:var(--mute);font-size:12px;padding:0 8px 4px}
.pop-data .pd-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px;border-radius:8px}
.pop-data .pd-row+.pd-row{border-top:1px dashed var(--line)}
.pop-data .pd-row small{display:block;color:var(--mute);font-size:12px;line-height:1.55;margin-top:2px}
.pop-data .pd-row.demo{background:var(--gold-bg)}
.usermenu .pop .pop-data .btn{display:inline-flex;width:auto;white-space:nowrap;flex:0 0 auto;padding:5px 10px;border:1px solid var(--line);background:var(--card);border-radius:6px}
.usermenu .pop .pop-data .btn:hover{background:var(--teal-l)}
.usermenu .pop .pop-data .btn.pri{background:var(--teal);color:#fff;border-color:var(--teal)}
.usermenu .pop .pop-logout{border-top:1px solid var(--line);margin-top:4px;border-radius:0 0 4px 4px;color:var(--bad)}
.chip.demo-chip{background:var(--gold-bg);border-color:var(--gold-l);color:var(--ink);font-weight:600}
.chip.demo-chip .chip-btn{border:0;background:var(--gold);color:#fff;border-radius:999px;padding:1px 9px;cursor:pointer;font:inherit;font-size:11.5px;font-weight:600}
.demo-dlg>p{line-height:1.7}
.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin:10px 0}
.demo-card{display:flex;flex-direction:column;gap:6px}
.demo-card .dc-h{display:flex;align-items:center;gap:8px;font-size:15.5px}
.demo-card .dc-ic{font-size:26px;line-height:1}
.demo-card ul{margin:2px 0 6px;padding-inline-start:18px}
.demo-card li{margin:3px 0;font-size:13px;line-height:1.55}
.demo-card.ready{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal-l) inset}
.demo-card .dc-st{font-weight:600;font-size:13px}.demo-card .dc-st.ok{color:var(--ok)}.demo-card .dc-st.bad{color:var(--bad)}
.demo-card .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.demo-prog .bar{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin:6px 0 4px}
.demo-prog .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .6s}
.demo-users-box summary{cursor:pointer;font-size:13px;color:var(--teal-d);margin-top:4px}
.demo-users{width:100%;margin-top:6px;font-size:12.5px;border-collapse:collapse}
.demo-users td{padding:3px 6px;border-bottom:1px solid var(--line)}
.demo-pw{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.demo-pw code{font-size:14px;background:var(--gold-bg);padding:2px 8px;border-radius:6px}

/* ===== 1.5: الرسوم البيانية والملاحظات التلقائية في التقارير ===== */
.rep-extra:empty{display:none}
.rep-extra{padding:12px 16px 0}
.rep-ins{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.rep-ins li{display:flex;gap:6px;align-items:baseline;border:1px solid var(--line);border-inline-start:3px solid var(--teal);background:var(--zebra);border-radius:var(--r);padding:5px 10px;font-size:13px;line-height:1.5}
.rep-ins li b{font-size:12px}
.rep-ins li.good{border-inline-start-color:var(--ok)}.rep-ins li.good b{color:var(--ok)}
.rep-ins li.bad{border-inline-start-color:var(--bad);background:color-mix(in srgb,var(--bad-bg) 55%,var(--card))}.rep-ins li.bad b{color:var(--bad)}
.rep-ins li.warn{border-inline-start-color:var(--gold);background:color-mix(in srgb,var(--gold-bg) 70%,var(--card))}.rep-ins li.warn b{color:var(--warn)}
.rep-chart{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--card);break-inside:avoid}
.rep-chart figcaption{font-weight:700;font-size:13.5px;margin-bottom:4px}
.ch-leg{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--mute);margin-bottom:4px}
.ch-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:5px;vertical-align:-1px}
svg.ch{display:block;max-height:420px}
svg.ch text{fill:var(--mute);font-size:11px;font-family:inherit}
svg.ch text.lbl{fill:var(--ink);font-size:12px}
svg.ch .grid{stroke:var(--line-2);stroke-width:1}
svg.ch .axis{stroke:var(--mute);stroke-width:1}
td.spk{padding-top:2px!important;padding-bottom:0!important}
svg.spark{display:block}
table.rep tr.neg-row td:not(.num){color:var(--bad)}
table.rep tr.muted td{color:var(--mute);font-style:italic}
.doc .rep-ins li{background:#fff;font-size:11.5px;padding:3px 8px}
.doc .rep-chart{border-color:#ddd;padding:6px 8px}

/* شاشة توزيع التكاليف المشتركة */
.al-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
@media (max-width:760px){.al-cols{grid-template-columns:1fr}}
.al-rule.off{opacity:.7}
.al-prev{margin-top:10px;display:grid;gap:8px}

/* ===== 1.5: مصمم التقارير ===== */
.rd-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:980px){.rd-layout{grid-template-columns:1fr}}
.rd-list{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 160px);overflow:auto}
.rd-list h4{margin:12px 4px 4px;font-size:12.5px;color:var(--mute);font-weight:700}
.rd-list a{display:flex;flex-direction:column;padding:7px 10px;border-radius:var(--r);color:var(--ink);text-decoration:none;font-size:13px;line-height:1.5}
.rd-list a small{color:var(--mute);font-size:11.5px}
.rd-list a:hover{background:var(--zebra)}.rd-list a.on{background:var(--teal);color:#fff}.rd-list a.on small{color:#d7efe6}
.rd-new{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.rd-editor fieldset .grid{align-items:end}
.rd-filt{margin:0 0 12px;border:1px dashed var(--line);border-radius:var(--r);padding:6px 12px;background:var(--card)}
.rd-filt summary{cursor:pointer;font-weight:600;padding:4px 0}
.rd-cols{display:flex;flex-direction:column;gap:6px;padding:10px 12px}
.rd-col{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rd-col>select{flex:0 0 210px;width:210px}.rd-col>input:not([type=checkbox]){flex:1 1 160px;min-width:120px;width:auto}.rd-col>label{white-space:nowrap}
.rd-col select[multiple]{min-width:220px}
.rd-ck{display:inline-block;min-width:30px;text-align:center;background:var(--teal-l);color:var(--teal-d);border-radius:4px;padding:2px 4px;font-size:12px}
.rd-lines{max-height:58vh}
.rd-lines td{padding:3px 4px!important;vertical-align:middle}
.rd-lines input:not([type=checkbox]),.rd-lines select{padding:5px 6px;min-width:0;width:100%;font-size:12.5px}
.rd-lines .rd-key{width:70px}
.rd-lines td.rd-spec{display:flex;gap:4px;min-width:260px}
.rd-lines tr.rd-heading td{background:color-mix(in srgb,var(--teal-l) 50%,var(--card))}
.rd-lines tr.rd-formula td{background:color-mix(in srgb,var(--calc) 60%,var(--card))}
.rd-lines .rd-acts{white-space:nowrap}
.rd-fs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.rd-fs code{cursor:pointer;background:var(--zebra);border:1px solid var(--line-2);border-radius:4px;padding:2px 6px;font-size:11.5px}
.rd-fs code span{color:var(--mute);font-family:inherit}
.view{min-width:0}

/* روابط Excel المباشرة */
.xl-url{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.xl-url code{flex:1 1 320px;background:var(--zebra);border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;font-size:12.5px;word-break:break-all}
.xl-steps{background:var(--teal-l);border-radius:var(--r);padding:10px 12px;line-height:1.9;font-size:13px;margin:8px 0}
.xl-gs{display:inline-block;margin-top:6px;font-size:12px;word-break:break-all}

/* ===== 1.5: الملخص الذكي + التحقق من التقارير + الجدولة ===== */
.smart{border-inline-start:4px solid var(--gold);background:linear-gradient(90deg,color-mix(in srgb,var(--gold-bg) 55%,var(--card)),var(--card))}
.smart-h{display:flex;gap:12px;align-items:center}
.smart-h small{display:block;color:var(--mute);font-size:12px;margin-bottom:2px}
.smart-h b{font-size:15px;line-height:1.6}
.smart-ic{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#fff;font-size:16px}
.smart-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.smart-list li{display:flex;gap:8px;align-items:baseline;font-size:13.5px;line-height:1.6}
.smart-list li i{font-style:normal;font-size:12px;width:16px;text-align:center}
.smart-list li.good i{color:var(--ok)}.smart-list li.bad i{color:var(--bad)}.smart-list li.warn i{color:var(--warn)}.smart-list li.info i{color:var(--teal)}
.smart-list li a{margin-inline-start:auto;font-size:12px;white-space:nowrap;color:var(--teal)}
.doc .verify{display:flex;gap:12px;align-items:center;border:1px dashed #999;border-radius:6px;padding:8px 10px;margin-top:12px;font-size:10.5px;line-height:1.6;break-inside:avoid}
.doc .verify .qr svg{display:block}
.vf-box{margin-bottom:12px}.vf-box summary{cursor:pointer;font-weight:600}
/* ربط الأنظمة الأخرى (API) */
.xa-code{direction:ltr;text-align:left;white-space:pre-wrap;word-break:break-word;background:var(--zebra);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font:12.5px/1.55 Consolas,Menlo,monospace;margin:8px 0;max-width:100%;overflow:auto}
.xa-guide .tbl td,.xa-guide .tbl th{font-size:13px}
.xa-guide code{font-size:12.5px}
tr.hl td{background:var(--gold-bg,#fbf1d9)}
