:root{
  --paper:#F6F7F8; --surface:#FFFFFF; --surface-2:#FAFBFB;
  --ink:#171C21; --ink-2:#4A555F; --ink-3:#6E7B85;
  --line:#DBE1E5; --line-strong:#B9C3C9;
  --brand:#14505C; --brand-2:#1B6C7C; --brand-soft:#E3EEF0;
  --ok:#2A6B4E; --ok-soft:#E2F0E9;
  --warn:#8A6412; --warn-soft:#F8F0DC;
  --risk:#93321F; --risk-soft:#F9E9E4;
  --track:#E7ECEF;
  --shadow:0 1px 2px rgba(20,40,50,.05), 0 8px 24px -14px rgba(20,40,50,.22);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0F1316; --surface:#161B1F; --surface-2:#1A2126;
    --ink:#E8EDF0; --ink-2:#9DAAB2; --ink-3:#7C8A93;
    --line:#283137; --line-strong:#3A464E;
    --brand:#63B8C7; --brand-2:#8AD0DC; --brand-soft:#152F35;
    --ok:#7CC7A4; --ok-soft:#172C23;
    --warn:#D9AF64; --warn-soft:#2C2618;
    --risk:#E08D79; --risk-soft:#31201C;
    --track:#242D33;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --paper:#0F1316; --surface:#161B1F; --surface-2:#1A2126;
  --ink:#E8EDF0; --ink-2:#9DAAB2; --ink-3:#7C8A93;
  --line:#283137; --line-strong:#3A464E;
  --brand:#63B8C7; --brand-2:#8AD0DC; --brand-soft:#152F35;
  --ok:#7CC7A4; --ok-soft:#172C23;
  --warn:#D9AF64; --warn-soft:#2C2618;
  --risk:#E08D79; --risk-soft:#31201C;
  --track:#242D33;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.7);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; direction:rtl; text-align:right; background:var(--paper); color:var(--ink);
  font-family:"Vazirmatn","IRANSansXFaNum","IRANSansX","Segoe UI",Tahoma,"Noto Sans Arabic",sans-serif;
  font-size:16px; line-height:1.8;
}
.mono{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; direction:ltr;
      unicode-bidi:isolate; font-size:.86em;}
.num{font-variant-numeric:tabular-nums;}
a{color:var(--brand-2); text-underline-offset:3px;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{
  outline:2px solid var(--brand-2); outline-offset:2px; border-radius:4px;}

/* ---------- top nav ---------- */
.topbar{position:sticky; top:0; z-index:40; background:var(--surface);
        border-bottom:1px solid var(--line); box-shadow:0 1px 0 rgba(0,0,0,.03);}
.topbar-in{max-width:1180px; margin:0 auto; padding:0 20px; display:flex; align-items:center;
           gap:8px; min-height:56px; flex-wrap:wrap;}
.brandmark{display:flex; align-items:center; gap:9px; font-weight:800; font-size:.94rem;
           text-decoration:none; color:var(--ink); margin-inline-end:6px; white-space:nowrap;}
.brandmark .dot{width:9px; height:9px; border-radius:50%; background:var(--brand-2); flex:none;}
.navlinks{display:flex; gap:2px; flex-wrap:wrap; flex:1;}
.navlinks a{padding:6px 11px; border-radius:7px; text-decoration:none; color:var(--ink-2);
            font-size:.87rem; font-weight:600; white-space:nowrap;}
.navlinks a:hover{background:var(--surface-2); color:var(--ink);}
.navlinks a[aria-current="page"]{background:var(--brand-soft); color:var(--brand);}
.logout{font-size:.8rem; color:var(--ink-3); text-decoration:none; padding:6px 10px;
        border:1px solid var(--line); border-radius:7px;}
.logout:hover{border-color:var(--risk); color:var(--risk);}

.wrap{max-width:1180px; margin:0 auto; padding:30px 20px 90px;}
.prose{max-width:70ch;}
h1{margin:0 0 6px; font-size:clamp(1.55rem,4vw,2.2rem); font-weight:800; line-height:1.35;
   letter-spacing:-.01em; text-wrap:balance;}
.lede{margin:0 0 28px; color:var(--ink-2); max-width:66ch;}
h2{margin:38px 0 15px; font-size:clamp(1.08rem,2.4vw,1.3rem); font-weight:800;
   border-bottom:2px solid var(--brand); padding-bottom:9px; display:flex; gap:11px; align-items:baseline;}
h2 .n{font-family:ui-monospace,Consolas,monospace; font-size:.76rem; color:var(--brand);
      background:var(--brand-soft); padding:3px 8px; border-radius:5px; direction:ltr;}
h3{margin:24px 0 8px; font-size:1rem; font-weight:700;}
p{margin:0 0 12px;}
ul,ol{margin:0 0 12px; padding-inline-start:1.25em;} li{margin-bottom:5px;}
li::marker{color:var(--brand);}

/* ---------- cards / tiles ---------- */
.tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:13px; margin:0 0 26px;}
.tile{background:var(--surface); border:1px solid var(--line); border-radius:11px;
      padding:15px 17px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:4px;}
.tile .lab{font-size:.75rem; letter-spacing:.05em; color:var(--ink-3);}
.tile .big{font-size:2rem; font-weight:800; line-height:1; font-variant-numeric:tabular-nums;}
.tile .foot{font-size:.79rem; color:var(--ink-2);}
.tile.now .big{color:var(--warn);} .tile.pot .big{color:var(--ok);} .tile.gap .big{color:var(--risk);}

.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:14px;}
.card{background:var(--surface); border:1px solid var(--line); border-radius:11px; padding:17px 19px;
      box-shadow:var(--shadow); text-decoration:none; color:var(--ink); display:flex;
      flex-direction:column; gap:7px; transition:border-color .15s, transform .15s;}
a.card:hover{border-color:var(--brand-2); transform:translateY(-2px);}
.card .kicker{font-size:.72rem; letter-spacing:.07em; color:var(--brand); font-weight:700;}
.card h3{margin:0; font-size:1.03rem; font-weight:800;}
.card p{margin:0; font-size:.87rem; color:var(--ink-2); line-height:1.7;}

/* ---------- tables ---------- */
.tscroll{overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--surface);
         box-shadow:var(--shadow); margin:0 0 18px;}
table{border-collapse:collapse; width:100%; font-size:.89rem;}
th,td{padding:10px 13px; text-align:right; vertical-align:middle; border-bottom:1px solid var(--line);}
thead th{background:var(--surface-2); font-size:.75rem; letter-spacing:.04em; color:var(--ink-2);
         font-weight:700; white-space:nowrap; border-bottom:1px solid var(--line-strong);}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surface-2);}
tfoot td{background:var(--surface-2); font-weight:800; border-top:1.5px solid var(--line-strong);}
td.n,th.n{font-variant-numeric:tabular-nums; white-space:nowrap;}

.mini{display:block; height:7px; background:var(--track); border-radius:4px; overflow:hidden;
      min-width:74px; position:relative;}
.mini i{position:absolute; inset-inline-start:0; top:0; bottom:0; border-radius:4px;}
.mini i.now{background:var(--warn);} .mini i.pot{background:var(--ok); opacity:.3;}

.chip{display:inline-block; font-size:.71rem; font-weight:700; padding:2px 8px; border-radius:20px;
      white-space:nowrap; line-height:1.7;}
.chip.done{background:var(--ok-soft); color:var(--ok);}
.chip.part{background:var(--warn-soft); color:var(--warn);}
.chip.zero{background:var(--risk-soft); color:var(--risk);}
.chip.info{background:var(--brand-soft); color:var(--brand);}

.note{border:1px solid var(--line); border-inline-start:3px solid var(--brand); background:var(--surface);
      border-radius:9px; padding:14px 17px; margin:0 0 15px; box-shadow:var(--shadow);}
.note.ok{border-inline-start-color:var(--ok); background:var(--ok-soft); border-color:transparent;}
.note.warn{border-inline-start-color:var(--warn); background:var(--warn-soft); border-color:transparent;}
.note.risk{border-inline-start-color:var(--risk); background:var(--risk-soft); border-color:transparent;}
.note > :last-child{margin-bottom:0;}
.note-t{display:block; font-weight:800; font-size:.91rem; margin-bottom:5px; color:var(--brand);}
.note.ok .note-t{color:var(--ok);} .note.warn .note-t{color:var(--warn);} .note.risk .note-t{color:var(--risk);}

/* ---------- controls ---------- */
.controls{display:flex; gap:9px; flex-wrap:wrap; margin:0 0 16px; align-items:center;}
input[type="search"],select{font:inherit; font-size:.88rem; padding:8px 12px; border-radius:8px;
  border:1px solid var(--line); background:var(--surface); color:var(--ink); min-width:150px;}
input[type="search"]{flex:1; min-width:190px;}
.count{font-size:.83rem; color:var(--ink-3); margin-inline-start:auto;}

footer{border-top:1px solid var(--line); margin-top:52px; padding-top:20px; color:var(--ink-3); font-size:.82rem;}
@media(max-width:640px){ body{font-size:15px;} }
@media(prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important;}}
