/* ═══════════════════════════════════════════════════════════
   عهد ورواتب — نفس هوية «عُهد»: دفتر أبيض/أسود، RTL، أهداف لمس ≥44px
   ═══════════════════════════════════════════════════════════ */
:root{
  --ink:#0B0B0C; --ink-2:#45454A; --ink-3:#8A8A90; --ink-4:#B9B9BE;
  --line:#E4E4E6; --line-2:#D0D0D3; --paper:#FFFFFF; --paper-2:#F7F7F8;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px;
  --r-card:16px; --r-ctl:12px; --r-pill:999px;
  --safe-top:env(safe-area-inset-top,0px); --safe-bottom:env(safe-area-inset-bottom,0px);
  --sans:"IBM Plex Sans Arabic",-apple-system,BlinkMacSystemFont,"SF Arabic","Segoe UI",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html,body{ margin:0; padding:0; min-height:100%; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans); font-size:16px; line-height:1.5; color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
button,input,textarea,select{ font:inherit; color:inherit; }
button{ background:none; border:0; padding:0; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button:not(:disabled):active{ transform:scale(.975); transition:transform .08s ease; }
::selection{ background:var(--ink); color:var(--paper); }
.num{ font-family:var(--mono); font-variant-numeric:tabular-nums; unicode-bidi:isolate; direction:ltr; display:inline-block; }

/* ───────── هيكل ───────── */
#app{ min-height:100dvh; display:flex; flex-direction:column; }
.topbar{
  position:sticky; top:0; z-index:5;
  display:flex; align-items:center; gap:var(--s2);
  padding:calc(var(--s2) + var(--safe-top)) var(--s2) var(--s2);
  min-height:calc(56px + var(--safe-top));
  border-bottom:1px solid var(--line); background:var(--paper);
}
.topbar__title{ flex:1; min-width:0; font-size:17px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding-inline:var(--s2); }
.topbar__sub{ font-size:12px; color:var(--ink-3); font-weight:400; }
.iconbtn{ width:44px; height:44px; display:grid; place-items:center; border-radius:var(--r-ctl); flex:none; }
.iconbtn:active{ background:var(--paper-2); }
main{ flex:1; width:100%; max-width:760px; margin-inline:auto; padding:var(--s4) var(--s4) calc(var(--s7) + var(--safe-bottom)); }

/* ───────── أزرار ───────── */
.btn{
  min-height:50px; padding-inline:var(--s4);
  display:inline-flex; align-items:center; justify-content:center; gap:var(--s2);
  border-radius:var(--r-ctl); font-size:16px; font-weight:600;
}
.btn--solid{ background:var(--ink); color:var(--paper); }
.btn--ghost{ background:var(--paper); box-shadow:inset 0 0 0 1.5px var(--ink); }
.btn--quiet{ background:var(--paper-2); }
.btn--danger{ background:var(--paper); color:#B3261E; box-shadow:inset 0 0 0 1.5px #E7B4B0; }
.btn--sm{ min-height:40px; font-size:14px; padding-inline:var(--s3); }
.btn--block{ width:100%; }
.btn:disabled{ opacity:.3; cursor:not-allowed; }
.row{ display:flex; gap:var(--s2); flex-wrap:wrap; }
.row > .btn{ flex:1 1 140px; }
.linkbtn{ color:var(--ink-2); text-decoration:underline; text-underline-offset:3px; font-size:14px; min-height:44px; }

/* ───────── عناوين وأقسام ───────── */
.wordmark{ font-size:44px; font-weight:700; letter-spacing:-.02em; line-height:1; text-align:center; }
.wordmark__sub{ font-size:14px; color:var(--ink-3); text-align:center; margin-top:var(--s2); }
.rule{ height:1px; background:var(--ink); width:56px; margin:var(--s3) auto; }
.rule--thick{ height:3px; }
.h{ font-size:13px; font-weight:600; color:var(--ink-3); letter-spacing:.02em; margin:var(--s6) 0 var(--s3); display:flex; align-items:center; gap:var(--s2); }
.h:first-child{ margin-top:var(--s2); }
.h__end{ margin-inline-start:auto; }
.muted{ color:var(--ink-3); }
.small{ font-size:13px; }
.empty{ padding:var(--s5) var(--s4); text-align:center; color:var(--ink-3); border:1px dashed var(--line-2); border-radius:var(--r-card); font-size:14px; }

/* ───────── بطاقات ───────── */
.stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:var(--s2); }
.stat{ border:1px solid var(--line); border-radius:var(--r-card); padding:var(--s4); }
.stat__label{ font-size:13px; color:var(--ink-3); }
.stat__value{ font-size:22px; font-weight:600; margin-top:var(--s1); }
.stat__value small{ font-size:12px; color:var(--ink-3); font-weight:400; margin-inline-start:4px; }
.stat--ink{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.stat--ink .stat__label, .stat--ink small{ color:var(--ink-4) !important; }

.list{ border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden; }
.item{
  display:flex; align-items:center; gap:var(--s3); width:100%;
  padding:var(--s3) var(--s4); min-height:64px; text-align:start;
  border-bottom:1px solid var(--line); background:var(--paper);
}
.item:last-child{ border-bottom:0; }
button.item:active{ background:var(--paper-2); transform:none; }
.item__main{ flex:1; min-width:0; }
.item__title{ font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.item__sub{ font-size:13px; color:var(--ink-3); }
.item__end{ text-align:end; flex:none; }
.item__amt{ font-weight:600; }
.avatar{ width:40px; height:40px; border-radius:50%; background:var(--paper-2); border:1px solid var(--line); display:grid; place-items:center; font-weight:600; flex:none; }
.avatar--off{ opacity:.4; }

.tag{ display:inline-flex; align-items:center; height:22px; padding:0 8px; border-radius:var(--r-pill); font-size:12px; border:1px solid var(--line-2); color:var(--ink-2); white-space:nowrap; }
.tag--ink{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.tag--warn{ border-color:#E8C98A; color:#7A5300; background:#FFF8E6; }
.tags{ display:flex; gap:4px; flex-wrap:wrap; margin-top:4px; }

/* ───────── تبويبات ───────── */
.tabs{ display:flex; gap:4px; padding:4px; background:var(--paper-2); border-radius:var(--r-ctl); margin:var(--s4) 0; }
.tab{ flex:1; min-height:44px; border-radius:10px; font-weight:600; font-size:15px; color:var(--ink-2); }
.tab.is-on{ background:var(--paper); color:var(--ink); box-shadow:0 1px 2px rgba(0,0,0,.08), 0 0 0 1px var(--line); }

/* ───────── مفاتيح تشغيل ───────── */
.switch{ display:flex; align-items:center; gap:var(--s3); padding:var(--s3) var(--s4); min-height:60px; border-bottom:1px solid var(--line); cursor:pointer; }
.switch:last-child{ border-bottom:0; }
.switch input{ appearance:none; -webkit-appearance:none; width:50px; height:30px; border-radius:15px; background:var(--line-2); position:relative; flex:none; cursor:pointer; transition:background .15s; margin:0; }
.switch input::after{ content:""; position:absolute; top:3px; inset-inline-start:3px; width:24px; height:24px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:inset-inline-start .15s; }
.switch input:checked{ background:var(--ink); }
.switch input:checked::after{ inset-inline-start:23px; }
.switch__text{ flex:1; }
.switch__sub{ font-size:13px; color:var(--ink-3); }
.switch--sub{ padding-inline-start:var(--s6); background:var(--paper-2); }

/* ───────── شاشة الرمز ───────── */
.lock{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s6); padding:calc(var(--s6) + var(--safe-top)) var(--s4) calc(var(--s5) + var(--safe-bottom)); }
.lock__title{ font-size:15px; color:var(--ink-2); text-align:center; min-height:24px; }
.dots{ display:flex; gap:var(--s4); justify-content:center; direction:ltr; }
.dots i{ width:16px; height:16px; border-radius:50%; border:1.5px solid var(--ink); transition:background .1s; }
.dots i.on{ background:var(--ink); }
.dots.shake{ animation:shake .35s; }
@keyframes shake{ 20%,60%{ transform:translateX(-8px);} 40%,80%{ transform:translateX(8px);} }
.lock__err{ color:#B3261E; font-size:14px; min-height:21px; text-align:center; }
.keypad{ display:grid; grid-template-columns:repeat(3,76px); gap:var(--s3) var(--s5); direction:ltr; }
.key{ width:76px; height:76px; border-radius:50%; font-size:28px; font-weight:500; font-family:var(--mono); box-shadow:inset 0 0 0 1px var(--line-2); }
.key:active{ background:var(--paper-2); }
.key--ghost{ box-shadow:none; font-size:15px; font-family:var(--sans); }
.lock__top{ position:absolute; top:calc(12px + var(--safe-top)); inset-inline-end:16px; }
.lock{ position:relative; }
.langbtn{
  display:inline-flex; align-items:center; gap:6px; flex:none;
  min-height:40px; padding:0 12px; border-radius:var(--r-pill);
  box-shadow:inset 0 0 0 1px var(--line-2); font-size:14px; font-weight:600;
}
.langbtn:active{ background:var(--paper-2); }
.langbtn--big{ min-height:46px; padding:0 18px; font-size:16px; box-shadow:inset 0 0 0 1.5px var(--ink); }
.remember{ display:flex; align-items:center; gap:10px; max-width:320px; font-size:14px; color:var(--ink-2); cursor:pointer; min-height:44px; }
.remember input{ width:22px; height:22px; accent-color:var(--ink); flex:none; margin:0; }
[dir=ltr] .flip{ transform:scaleX(-1); }
@media (max-width:420px){ .topbar .langbtn span{ display:none; } .topbar .langbtn{ padding:0 10px; } }
.input.setupname{ width:min(300px,100%); text-align:center; }

/* ───────── نماذج وأوراق ───────── */
.field{ display:block; margin-bottom:var(--s4); }
.field__label{ display:block; font-size:14px; font-weight:600; margin-bottom:6px; }
.field__hint{ font-size:12px; color:var(--ink-3); margin-top:4px; }
.input{
  width:100%; min-height:50px; padding:var(--s3) var(--s4);
  border:1.5px solid var(--line-2); border-radius:var(--r-ctl); background:var(--paper); font-size:16px;
}
.input:focus{ outline:none; border-color:var(--ink); }
.input--amt{ font-family:var(--mono); font-size:22px; direction:ltr; text-align:right; }
textarea.input{ min-height:80px; resize:vertical; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s3); }
@media (max-width:420px){ .grid2{ grid-template-columns:1fr; } }

.sheet-wrap{ position:fixed; inset:0; z-index:50; background:rgba(11,11,12,.42); display:flex; align-items:flex-end; justify-content:center; animation:fade .15s; }
@keyframes fade{ from{ opacity:0; } }
.sheet{
  width:100%; max-width:560px; max-height:92dvh; overflow-y:auto;
  background:var(--paper); border-radius:20px 20px 0 0;
  padding:var(--s5) var(--s4) calc(var(--s5) + var(--safe-bottom));
  animation:up .22s cubic-bezier(.2,.8,.2,1);
}
@media (min-width:640px){ .sheet-wrap{ align-items:center; } .sheet{ border-radius:20px; } }
@keyframes up{ from{ transform:translateY(30px); opacity:0; } }
.sheet__title{ font-size:19px; font-weight:700; margin:0 0 var(--s4); }
.sheet__actions{ display:flex; gap:var(--s2); margin-top:var(--s5); }
.sheet__actions .btn{ flex:1; }

.pinbox{ text-align:center; padding:var(--s5); border:2px solid var(--ink); border-radius:var(--r-card); margin:var(--s3) 0; }
.pinbox__code{ font-family:var(--mono); font-size:40px; font-weight:600; letter-spacing:.25em; direction:ltr; }

.photo{ display:flex; align-items:center; justify-content:center; gap:var(--s2); min-height:120px; border:1.5px dashed var(--line-2); border-radius:var(--r-card); color:var(--ink-2); cursor:pointer; overflow:hidden; position:relative; }
.photo img{ max-width:100%; max-height:240px; display:block; }
.photo input{ position:absolute; inset:0; opacity:0; cursor:pointer; }

.calc{ border:1px solid var(--line); border-radius:var(--r-card); padding:var(--s3) var(--s4); }
.calc__row{ display:flex; justify-content:space-between; padding:6px 0; font-size:15px; }
.calc__row--total{ border-top:2px solid var(--ink); margin-top:6px; padding-top:10px; font-weight:700; font-size:18px; }

.toast{ position:fixed; inset-inline:0; bottom:calc(24px + var(--safe-bottom)); margin:auto; width:max-content; max-width:calc(100% - 32px); z-index:80; background:var(--ink); color:var(--paper); padding:12px 18px; border-radius:var(--r-ctl); font-size:15px; animation:up .2s; }
.toast--err{ background:#B3261E; }

.viewer{ position:fixed; inset:0; z-index:90; background:rgba(0,0,0,.92); display:grid; place-items:center; padding:var(--s4); }
.viewer img{ max-width:100%; max-height:100%; border-radius:8px; }

.menu{ position:absolute; top:calc(56px + var(--safe-top)); inset-inline-end:8px; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-ctl); box-shadow:0 8px 30px rgba(0,0,0,.12); min-width:200px; z-index:20; overflow:hidden; }
.menu button{ display:block; width:100%; text-align:start; padding:14px 16px; border-bottom:1px solid var(--line); }
.menu button:last-child{ border-bottom:0; }
.menu button:active{ background:var(--paper-2); transform:none; }

@media print{
  .topbar, .noprint, .btn{ display:none !important; }
  main{ padding:0; max-width:none; }
}
