@font-face{font-family:"Vazirmatn";src:url("fonts/Vazirmatn.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{
  --bg:#0a0d10; --surface:#14181d; --sunk:#0f1317; --ink:#e8edf1; --muted:#8f9ba6; --line:#232a31;
  --accent:#4fb3c4; --accent-ink:#0a0d10; --accent-soft:#143037;
  --crit:#ef7a6f; --crit-soft:#3a1d1a; --warn:#e3a94c; --warn-soft:#372a14; --ok:#6cc792; --ok-soft:#173022; color-scheme:dark;
  --font:"Vazirmatn", Tahoma, "Segoe UI", sans-serif; --r:18px;
}
:root[data-theme="light"]{
  --bg:#eef1f4; --surface:#ffffff; --sunk:#f6f8fa; --ink:#15202b; --muted:#5b6673; --line:#d8dee5;
  --accent:#0e6a7a; --accent-ink:#ffffff; --accent-soft:#d9eef1;
  --crit:#b83227; --crit-soft:#fbe5e2; --warn:#a86a12; --warn-soft:#fbefd9; --ok:#2c7a4b; --ok-soft:#dff1e6;
  color-scheme:light }
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;direction:rtl;min-height:100vh}
h1,h2,h3{margin:0;line-height:1.35}
h1{font-size:1.35rem;font-weight:800} h2{font-size:1.05rem;font-weight:800}
a{color:var(--accent)}
.num,td.n{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .small{font-size:.82rem}
.ltr{direction:ltr;unicode-bidi:isolate;text-align:left}

/* controls */
.btn{font:inherit;font-size:.88rem;font-weight:700;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:7px 14px;cursor:pointer;line-height:1.4;transition:background .2s,transform .15s}
.btn:hover{background:var(--sunk)}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{color:var(--crit)}
.btn.mini{padding:3px 10px;font-size:.78rem}
.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:.8rem;font-weight:700;color:var(--muted)}
.field input,.field select{font:inherit;font-size:.95rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;width:100%}
.field input.code{font-size:1.4rem;letter-spacing:.35em;text-align:center;direction:ltr}
.check{display:flex;gap:8px;align-items:center;font-size:.9rem}
.err{color:var(--crit);font-size:.85rem;font-weight:700;min-height:1.2em}
.note{border-radius:var(--r);padding:10px 14px;font-size:.88rem}
.note.warn{background:var(--warn-soft);color:var(--warn)}
.note.ok{background:var(--ok-soft);color:var(--ok)}
.note.crit{background:var(--crit-soft);color:var(--crit)}
.pill{display:inline-block;font-size:.72rem;font-weight:700;padding:1px 9px;border-radius:999px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.crit{background:var(--crit-soft);color:var(--crit)} .pill.acc{background:var(--accent-soft);color:var(--accent)}

/* auth screens */
.auth{min-height:100vh;display:grid;place-items:center;padding:16px}
.auth .card{width:min(400px,100%);gap:14px}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{width:38px;height:38px;border-radius:10px;display:block}
.stack{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.qr{display:grid;place-items:center;background:#fff;border-radius:8px;padding:12px;width:max-content;margin-inline:auto}
.qr svg{display:block;width:200px;height:200px}
.secret{font-family:ui-monospace,Consolas,monospace;font-size:.95rem;letter-spacing:.08em;background:var(--sunk);border-radius:8px;padding:8px 10px;text-align:center;direction:ltr;overflow-wrap:anywhere}
ol.steps{margin:0;padding-inline-start:20px;font-size:.9rem;color:var(--muted)}

/* shell: menu on the physical left (RTL grid: first area is on the right) */
.shell{display:grid;grid-template-columns:minmax(0,1fr) 230px;grid-template-areas:"main side";min-height:100vh}
.side{grid-area:side;background:var(--surface);border-inline-start:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}
.side .brand{padding:4px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.side .grp{font-size:.72rem;font-weight:800;color:var(--muted);padding:10px 10px 2px}
.side a.nav{display:block;text-decoration:none;color:var(--ink);padding:7px 12px;border-radius:8px;font-size:.92rem}
.side a.nav:hover{background:var(--sunk)}
.side a.nav[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:800}
.side .who{margin-top:auto;border-top:1px solid var(--line);padding:12px 8px 0;display:flex;flex-direction:column;gap:6px;font-size:.85rem}
.main{grid-area:main;min-width:0}
.top{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--surface)}
.top h1{flex:1}
.menu-btn{display:none}
.wrap{max-width:960px;margin:0 auto;padding:20px 16px 48px;display:flex;flex-direction:column;gap:16px}
.staging{background:var(--warn);color:#fff;text-align:center;font-weight:800;font-size:.85rem;padding:4px 8px}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:30}

/* tables */
.scroll-x{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{font-size:.75rem;color:var(--muted);font-weight:800;text-align:start;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
tr.off td{color:var(--muted)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.empty{color:var(--muted);text-align:center;padding:20px}
.temp{border:1px dashed var(--accent);border-radius:8px;padding:10px;background:var(--accent-soft)}
.toast{position:fixed;bottom:18px;inset-inline:0;margin:auto;width:max-content;max-width:90vw;background:var(--ink);color:var(--surface);padding:8px 16px;border-radius:999px;font-weight:700;font-size:.88rem;z-index:50}
.offline{background:var(--crit);color:#fff;text-align:center;font-size:.82rem;padding:3px}

@media (max-width:760px){
  .shell{grid-template-columns:1fr;grid-template-areas:"main"}
  .side{position:fixed;inset-block:0;left:0;width:260px;z-index:40;transform:translateX(-105%);transition:transform .2s;visibility:hidden}
  .side.open{transform:none;visibility:visible;box-shadow:0 0 30px rgba(0,0,0,.2)}
  .menu-btn{display:inline-block}
  .grid2{grid-template-columns:1fr}
  .top{padding:12px 16px}
}
.acc-t{max-width:520px}.acc-t td,.acc-t th{padding:5px 8px;text-align:right}.acc-t input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
