:root{
  --g:#0A7C3E;--g2:#0d9e4e;--gl:rgba(10,124,62,.1);--gt:#065a2d;
  --r:#D94040;--rl:rgba(217,64,64,.1);--rt:#a32e2e;
  --b:#1A5FA8;--bl:rgba(26,95,168,.1);
  --amb:#C07A10;--ambl:rgba(192,122,16,.1);--ambt:#7a4e08;
  --pur:#4E43B0;--purl:rgba(78,67,176,.1);
  --bg:#f4f7f4;--bg2:#fff;--bg3:#eef1ee;
  --tx1:#1a2a1a;--tx2:#5a6a5a;--tx3:#8a9a8a;
  --bd:#e0e5e0;--radius:10px;
  --shadow:0 2px 12px rgba(0,0,0,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Cairo',sans-serif;background:var(--bg);color:var(--tx1);font-size:14px}
.hidden{display:none!important}
/* Activation */
.act-wall{position:fixed;inset:0;background:linear-gradient(135deg,#0a1a0e,#0A7C3E);z-index:99999;display:flex;align-items:center;justify-content:center}
.act-card{background:#fff;border-radius:20px;padding:40px 36px;width:420px;max-width:95vw;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.act-card h2{font-size:20px;font-weight:800;color:var(--g);margin-bottom:4px}
.act-card p{font-size:12px;color:var(--tx2);margin-bottom:24px}
.act-input{width:100%;padding:12px;border:1.5px solid var(--g);border-radius:10px;font-size:15px;text-align:center;letter-spacing:4px;direction:ltr;box-sizing:border-box;margin-bottom:10px;font-family:monospace;outline:none}
.act-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--g),var(--g2));color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Cairo',sans-serif}
/* Login */
.login-wrap{position:fixed;inset:0;background:linear-gradient(135deg,#0a1a0e,#0A7C3E);z-index:9999;display:flex;align-items:center;justify-content:center}
.login-card{background:#fff;border-radius:20px;padding:40px 36px;width:400px;max-width:95vw;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.login-card h2{font-size:20px;font-weight:800;color:var(--g);margin-bottom:4px}
.login-card p{font-size:12px;color:var(--tx2);margin-bottom:24px}
.login-input{width:100%;padding:11px 14px;border:1.5px solid var(--bd);border-radius:10px;font-size:14px;margin-bottom:10px;font-family:'Cairo',sans-serif;direction:rtl;outline:none;transition:.2s}
.login-input:focus{border-color:var(--g)}
.login-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--g),var(--g2));color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Cairo',sans-serif}
.login-btn:disabled{opacity:.6;cursor:wait}
/* Server sign-in (phase 1): password eye, strength meter, notices, banners */
.pw-wrap{position:relative;margin-bottom:10px}
.pw-wrap input{width:100%;padding-left:44px!important;margin-bottom:0!important}
.pw-eye{position:absolute;left:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--tx3);font-size:17px;padding:4px 6px;line-height:1}
.pw-eye:hover{color:var(--g)}
.pw-meter{height:6px;border-radius:4px;background:var(--bg3);overflow:hidden;margin:0 0 6px}
.pw-meter>i{display:block;height:100%;width:0;background:var(--r);transition:width .2s,background .2s}
.pw-rules{list-style:none;font-size:11.5px;color:var(--tx3);text-align:right;line-height:1.8;margin:0 0 10px}
.pw-rules li::before{content:'• '}
.pw-rules li.ok{color:var(--g)}.pw-rules li.ok::before{content:'✓ '}
.login-note{font-size:12px;border-radius:8px;padding:8px 10px;margin-top:8px;line-height:1.7;text-align:right;background:var(--ambl);color:var(--ambt)}
.login-link{background:none;border:none;color:var(--g);font-size:12px;text-decoration:underline;cursor:pointer;margin-top:10px;font-family:'Cairo',sans-serif}
.sm-banner{position:fixed;top:0;left:0;right:0;z-index:99990;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 14px;font-size:13px;font-weight:700;color:#fff;font-family:'Cairo',sans-serif;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.sm-banner.auth{background:var(--amb)}.sm-banner.update{background:var(--b);top:auto;bottom:0}
.sm-banner button{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.55);color:#fff;border-radius:6px;padding:3px 12px;cursor:pointer;font-family:inherit;font-weight:700}
.code-box{font-family:monospace;font-size:19px;letter-spacing:1px;direction:ltr;text-align:center;background:var(--bg);border:1.5px dashed var(--g);border-radius:10px;padding:14px;word-break:break-all;user-select:all;margin:10px 0}
/* Layout */
.topbar{background:var(--g);color:#fff;height:58px;display:flex;align-items:center;padding:0 18px;gap:10px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.tlogo{display:flex;align-items:center;gap:8px;min-width:160px}
.tlogo-icon{width:36px;height:36px;background:rgba(255,255,255,.2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px}
.tlogo-name{font-weight:800;font-size:15px;line-height:1.2}
.tlogo-sub{font-size:10px;opacity:.7}
.tnav{display:flex;gap:1px;flex:1;overflow-x:auto;min-width:0}
.tnav::-webkit-scrollbar{height:0}
.tnav-btn{background:transparent;border:none;color:rgba(255,255,255,.75);padding:6px 9px;border-radius:6px;cursor:pointer;font-family:'Cairo',sans-serif;font-size:11px;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:4px;transition:.15s}
.tnav-btn:hover,.tnav-btn.act{background:rgba(255,255,255,.2);color:#fff}
.tright{display:flex;align-items:center;gap:6px;flex-shrink:0}
.tright>*{flex-shrink:0}
.uinfo{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.15);border-radius:8px;padding:4px 9px;font-size:11px}
.logout-btn{background:rgba(255,255,255,.15);border:none;color:#fff;padding:5px 10px;border-radius:7px;cursor:pointer;font-family:'Cairo',sans-serif;font-size:12px;white-space:nowrap}
.main{padding:16px;max-width:1500px;margin:0 auto}
.page{display:none}.page.on{display:block}
/* Cards */
.card{background:var(--bg2);border-radius:var(--radius);padding:16px;border:1px solid var(--bd);box-shadow:var(--shadow)}
.pt{font-size:17px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ct{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}
.brow{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:8px;border:1px solid var(--bd);background:var(--bg2);color:var(--tx1);cursor:pointer;font-family:'Cairo',sans-serif;font-size:13px;font-weight:600;transition:.15s;white-space:nowrap}
.btn:hover{border-color:var(--g);color:var(--g)}
.btn.g{background:linear-gradient(135deg,var(--g),var(--g2));color:#fff;border-color:var(--g)}.btn.g:hover{opacity:.9}
.btn.b{background:var(--bl);color:var(--b);border-color:var(--b)}
.btn.r{background:var(--rl);color:var(--r);border-color:var(--r)}
.btn.a{background:var(--ambl);color:var(--amb);border-color:var(--amb)}
.btn.p{background:var(--purl);color:var(--pur);border-color:var(--pur)}
.btn.sm{padding:5px 10px;font-size:12px}
.fg{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}
.fg label{font-size:13.5px;font-weight:700;color:var(--tx2)}
.fg input,.fg select,.fg textarea{padding:11px 13px;border:1.5px solid var(--bd);border-radius:8px;font-family:'Cairo',sans-serif;font-size:15px;outline:none;transition:.2s}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--g)}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
table{width:100%;border-collapse:collapse}
th{background:var(--bg3);padding:10px 12px;text-align:right;font-size:12px;font-weight:700;color:var(--tx2);border-bottom:1.5px solid var(--bd)}
td{padding:10px 12px;border-bottom:1px solid var(--bg3);font-size:13px;vertical-align:middle}
tr:hover td{background:rgba(10,124,62,.03)}
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}
.bg{background:var(--gl);color:var(--gt)}.bb{background:var(--bl);color:var(--b)}
.br{background:var(--rl);color:var(--rt)}.ba{background:var(--ambl);color:var(--ambt)}
.bp{background:var(--purl);color:var(--pur)}
.sw{position:relative;flex:1;min-width:180px}
.sw input{width:100%;padding:9px 11px 9px 34px;border:1.5px solid var(--bd);border-radius:8px;font-family:'Cairo',sans-serif;font-size:13px;outline:none}
.sw input:focus{border-color:var(--g)}
.sw .si{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--tx3);pointer-events:none}
.mcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.mc{background:var(--bg2);border-radius:var(--radius);padding:14px;border:1px solid var(--bd);text-align:center}
.ml{font-size:11px;color:var(--tx2);margin-bottom:4px}
.mv{font-size:22px;font-weight:800;color:var(--g)}
.mv.r{color:var(--r)}.mv.b{color:var(--b)}.mv.a{color:var(--amb)}.mv.g{color:var(--g)}
/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:none;align-items:center;justify-content:center;padding:16px}
.modal-bg.open{display:flex}
.modal{background:#fff;border-radius:16px;width:600px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.3)}
.mh{padding:18px 22px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:800;position:sticky;top:0;background:#fff;z-index:1}
.mb{padding:22px}.mf{padding:14px 22px;border-top:1px solid var(--bd);display:flex;justify-content:flex-end;gap:8px}
/* Toast */
.toast-area{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:5000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:#1a2a1a;color:#fff;padding:10px 20px;border-radius:10px;font-size:13px;font-weight:600;animation:tin .3s;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.toast.e{background:var(--r)}.toast.w{background:var(--amb)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* POS */
.pos-grid{display:grid;grid-template-columns:1fr 370px;gap:14px;height:calc(100vh - 90px)}
.pos-left{overflow-y:auto;padding-bottom:8px}
.pos-right{display:flex;flex-direction:column;background:var(--bg2);border-radius:var(--radius);border:1px solid var(--bd);overflow:hidden;box-shadow:var(--shadow)}
.cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.cat-btn{padding:5px 12px;border-radius:20px;border:1.5px solid var(--bd);background:var(--bg2);cursor:pointer;font-family:'Cairo',sans-serif;font-size:12px;font-weight:600;transition:.15s;white-space:nowrap}
.cat-btn.act{background:var(--g);color:#fff;border-color:var(--g)}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.pc{background:var(--bg2);border:1.5px solid var(--bd);border-radius:10px;padding:11px;cursor:pointer;transition:.2s;text-align:center;position:relative}
.pc:hover{border-color:var(--g);transform:translateY(-2px);box-shadow:0 4px 12px rgba(10,124,62,.15)}
.pc.out{opacity:.45;cursor:not-allowed;pointer-events:none}
.pc-name{font-size:12px;font-weight:700;margin-bottom:4px;line-height:1.3}
.pc-price{font-size:14px;font-weight:800;color:var(--g)}
.pc-stock{font-size:10px;color:var(--tx3);margin-top:2px}
.cart-hdr{padding:12px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;background:var(--bg3)}
.cart-body{flex:1;overflow-y:auto;padding:8px}
.ci{display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;margin-bottom:7px;background:#fff;border:1px solid var(--bd);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .15s,transform .15s}
.ci:hover{box-shadow:0 3px 10px rgba(0,0,0,.08);transform:translateY(-1px)}
.ci-num{width:22px;height:22px;border-radius:50%;background:var(--gl);color:var(--g);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ci-name{flex:1;font-size:12.5px;font-weight:700;line-height:1.4;color:var(--tx1)}
.qc{display:flex;align-items:center;gap:4px;background:var(--bg);border-radius:8px;padding:3px}
.qb{width:24px;height:24px;border-radius:6px;border:1px solid var(--bd);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;line-height:1}
.ci-price{font-size:13px;font-weight:800;color:var(--g);min-width:60px;text-align:left}
.cart-foot{padding:12px 14px;border-top:1px solid var(--bd)}
.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}
.pay-btn{padding:7px;border-radius:8px;border:1.5px solid var(--bd);background:var(--bg2);cursor:pointer;font-family:'Cairo',sans-serif;font-size:12px;font-weight:700;transition:.15s;text-align:center}
.pay-btn.sel{border-color:var(--g);background:var(--gl);color:var(--g)}
.tr{display:flex;justify-content:space-between;margin-bottom:4px;font-size:13px}
.tr.big{font-size:16px;font-weight:800;color:var(--g);margin-top:6px;padding-top:6px;border-top:1.5px solid var(--bd)}
/* Reports */
.rtabs{display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap}
.rtab{padding:7px 14px;border-radius:8px;border:1.5px solid var(--bd);background:var(--bg2);cursor:pointer;font-family:'Cairo',sans-serif;font-size:12px;font-weight:700;transition:.15s}
.rtab.act{background:var(--g);color:#fff;border-color:var(--g)}
@media(max-width:900px){
  .pos-grid{grid-template-columns:1fr;height:auto}
  .pos-right{height:480px}
  .fg2,.fg3{grid-template-columns:1fr}
}
@media(max-width:480px){
  .modal{width:100%;max-height:95vh;border-radius:12px}
  .mh{padding:14px 16px;font-size:16px}
  .mb{padding:16px}
  .mf{padding:12px 16px}
  .fg label{font-size:14px}
  .fg input,.fg select,.fg textarea{font-size:16px;padding:12px 13px}
}
@media(max-width:640px){
  table{font-size:11px}
  table th,table td{padding:6px 7px}
  /* المخزون: نخفي الأعمدة الثانوية (الفئة/الحد الأدنى/الصلاحية/المورد) ونسيب الأساسي بس */
  #page-inv table th:nth-child(2),#page-inv table td:nth-child(2),
  #page-inv table th:nth-child(6),#page-inv table td:nth-child(6),
  #page-inv table th:nth-child(7),#page-inv table td:nth-child(7),
  #page-inv table th:nth-child(8),#page-inv table td:nth-child(8){display:none}
  /* الموردين — جدول سجل المشتريات: نخفي التاريخ وطريقة الدفع */
  #page-sups table:nth-of-type(2) th:nth-child(1),#page-sups table:nth-of-type(2) td:nth-child(1),
  #page-sups table:nth-of-type(2) th:nth-child(7),#page-sups table:nth-of-type(2) td:nth-child(7){display:none}
}

/* ── Alerts Bar ── */
.alerts-bar{background:#fff;border-radius:var(--radius);border:1px solid var(--bd);margin-bottom:14px;overflow:hidden;display:none}
.alerts-bar.show{display:block}
.alerts-title{background:var(--r);color:#fff;padding:8px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:8px}
.alerts-body{padding:0}
.alert-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--bg3);font-size:12px}
.alert-item:last-child{border-bottom:none}
.alert-item.low{border-right:3px solid var(--r)}
.alert-item.exp{border-right:3px solid var(--amb)}
.alert-item.exp-warn{border-right:3px solid #8B5CF6}
.alert-icon{font-size:16px;flex-shrink:0}
.alert-text{flex:1}
.alert-text strong{display:block;font-weight:700}
.alert-text span{color:var(--tx2)}
/* ── Notification Bell ── */
.notif-bell{position:relative;background:rgba(255,255,255,.15);border:none;color:#fff;width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px}
.notif-count{position:absolute;top:-4px;right:-4px;background:var(--r);color:#fff;border-radius:10px;padding:1px 5px;font-size:10px;font-weight:800;min-width:16px;text-align:center}
/* ── Expiry badges in table ── */
.exp-red{background:var(--rl);color:var(--r);padding:2px 6px;border-radius:5px;font-size:11px;font-weight:700}
.exp-warn{background:var(--ambl);color:var(--ambt);padding:2px 6px;border-radius:5px;font-size:11px;font-weight:700}
.exp-ok{color:var(--tx3);font-size:11px}
/* ── Stock badge ── */
.stock-zero{color:var(--r);font-weight:800}
.stock-low{color:var(--amb);font-weight:700}
.stock-ok{color:var(--g)}

#expBar{position:relative;z-index:200}
.topbar{position:sticky;top:0;z-index:100}

/* ── Shortcuts Bar ── */
.shortcuts-bar{
  position:fixed;bottom:0;left:0;right:0;
  background:#fff;border-top:1.5px solid var(--bd);
  display:none;align-items:center;justify-content:center;
  gap:6px;padding:8px 12px;z-index:200;
  box-shadow:0 -4px 16px rgba(0,0,0,.1);
  flex-wrap:wrap;
}
.shortcuts-bar.show{display:flex}
.sc-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:8px 14px;border-radius:10px;border:1.5px solid var(--bd);
  background:var(--bg2);cursor:pointer;transition:.15s;
  font-family:'Cairo',sans-serif;min-width:70px;
}
.sc-btn:hover{border-color:var(--g);background:var(--gl);}
.sc-btn:active{transform:scale(.95);}
.sc-btn i{font-size:20px;color:var(--g)}
.sc-btn span{font-size:11px;font-weight:700;color:var(--tx1);white-space:nowrap}
.sc-btn.red i{color:var(--r)}.sc-btn.red:hover{border-color:var(--r);background:var(--rl);}
.sc-btn.blue i{color:var(--b)}.sc-btn.blue:hover{border-color:var(--b);background:var(--bl);}
.sc-btn.amb i{color:var(--amb)}.sc-btn.amb:hover{border-color:var(--amb);background:var(--ambl);}
.sc-btn.pur i{color:var(--pur)}.sc-btn.pur:hover{border-color:var(--pur);background:var(--purl);}
.sc-btn.gold{background:linear-gradient(135deg,var(--g),var(--g2));border-color:var(--g);}
.sc-btn.gold i,.sc-btn.gold span{color:#fff}
.sc-btn.gold:hover{opacity:.9}
/* padding للـ main عشان الـ shortcuts مش تغطي المحتوى */
.main{padding-bottom:80px}
/* toggle button */
.sc-toggle{
  position:fixed;bottom:12px;left:12px;z-index:201;
  width:42px;height:42px;border-radius:50%;
  background:var(--g);color:#fff;border:none;
  font-size:18px;cursor:pointer;display:none;
  align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(10,124,62,.4);
  transition:.2s;
}
.sc-toggle.show{display:flex}
.sc-toggle:active{transform:scale(.9)}

/* ── Numpad Modal ── */
.numpad-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:3000;display:none;align-items:flex-end;justify-content:center;padding-bottom:0}
.numpad-overlay.open{display:flex}
.numpad-box{background:#1a2a1a;border-radius:20px 20px 0 0;padding:16px;width:100%;max-width:420px;box-shadow:0 -8px 32px rgba(0,0,0,.5)}
.numpad-display{background:#0a1a0e;border-radius:12px;padding:14px 16px;margin-bottom:12px;text-align:left;direction:ltr}
.numpad-display .nd-label{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:2px;direction:rtl;text-align:right}
.numpad-display .nd-val{font-size:28px;font-weight:800;color:#fff;min-height:36px;word-break:break-all}
.numpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.nk{padding:16px 8px;border-radius:12px;border:none;font-family:'Cairo',sans-serif;font-size:18px;font-weight:700;cursor:pointer;transition:.1s;text-align:center}
.nk:active{transform:scale(.93)}
.nk.num{background:#2a3a2a;color:#fff}
.nk.num:hover{background:#3a4a3a}
.nk.del{background:#3a2a1a;color:#C07A10}
.nk.del:hover{background:#4a3a2a}
.nk.zero{grid-column:span 2}
.nk.ok{background:linear-gradient(135deg,#0A7C3E,#0d9e4e);color:#fff;font-size:16px}
.nk.ok:hover{opacity:.9}
.nk.dot{background:#2a3a2a;color:#fff}
.nk.clear{background:#3a1a1a;color:#D94040}
.nk.clear:hover{background:#4a2a2a}
/* F1 button */
.f1-btn{position:fixed;bottom:80px;left:12px;z-index:201;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#1A5FA8,#2a7fd8);color:#fff;border:none;font-family:'Cairo',sans-serif;font-size:13px;font-weight:800;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(26,95,168,.5);transition:.2s;flex-direction:column;gap:1px}
.f1-btn.show{display:flex}
.f1-btn:active{transform:scale(.9)}
.f1-btn .f1-icon{font-size:18px;line-height:1}
.f1-btn .f1-label{font-size:9px;opacity:.85}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
