/* Damavand-Web · shared styles for the NEW pages (login, admin, sheets, 403).
   Same tokens as the source dashboard (dark paper #09090b, card #121217, orange #ff6b00,
   yellow #ffcc00, Vazirmatn, RTL). Plain CSS: these pages do not load Tailwind Play. */
:root{
  --paper:#09090b; --card:#121217; --card2:#0f0f13; --field:#0c0c10; --hover:#1c1c22;
  --line:#26262c; --line2:#3f3f46;
  --ink:#f4f4f5; --ink2:#d4d4d8; --soft:#a1a1aa; --muted:#8a8a94; --faint:#7a7a85;
  --orange:#ff6b00; --orange2:#ff8533; --yellow:#ffcc00; --ok:#34d399; --bad:#fb7185; --brass:#c99a3f;
  --r-card:16px; --r-ctl:12px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.dmv-app{margin:0;background:var(--paper);color:var(--ink);font-family:Vazirmatn,system-ui,sans-serif;font-size:13px;line-height:1.7;
  min-height:100vh;overflow-x:hidden}
.num,.tabular{font-variant-numeric:tabular-nums}
.ltr{direction:ltr;unicode-bidi:isolate;text-align:left}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11.5px}
a.app-link{color:var(--orange2);text-decoration:underline;text-decoration-style:dotted}
.app-muted{color:var(--muted)}
.app-h1{font-size:18px;font-weight:800;margin:0 0 6px}
.app-h2{font-size:14px;font-weight:800;margin:0;color:var(--ink)}
.app-narrow{max-width:440px;margin:0 auto;padding:48px 16px}
.app-wrap{max-width:1280px;margin:0 auto;padding:20px 16px 64px}
.app-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card)}
.app-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.app-card-b{padding:16px}
.app-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.app-stack>*+*{margin-top:16px}
.app-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.app-logo{width:40px;height:40px;border-radius:99px;flex:none;background:#1c1c22;object-fit:cover}
.app-title{font-size:15px;font-weight:800;margin:0;background:linear-gradient(to left,#fde68a,var(--yellow),var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.app-sub{font-size:11px;color:var(--muted);margin:0}

/* controls */
.fld{width:100%;background:var(--field);border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 12px;color:var(--ink);
  font:inherit;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;min-height:42px}
.fld:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,107,0,.14)}
.fld::placeholder{color:var(--faint)}
.fld[readonly],.fld:disabled{opacity:.7}
.fld.bad{border-color:var(--bad)}
select.fld{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--orange) 50%),linear-gradient(135deg,var(--orange) 50%,transparent 50%);
  background-position:14px 50%,19px 50%;background-size:5px 5px;background-repeat:no-repeat;padding-left:32px}
.lbl{display:block;font-size:12px;font-weight:700;color:var(--ink2);margin:0 0 6px}
.hint{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.8}
.field+.field{margin-top:14px}
.btn{font:inherit;font-size:12.5px;font-weight:700;padding:9px 18px;border-radius:var(--r-ctl);border:1px solid transparent;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;transition:.15s;text-decoration:none}
.btn:disabled{opacity:.42;cursor:not-allowed}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--orange);color:#000}
.btn-primary:hover:not(:disabled){background:var(--orange2)}
.btn-ghost{background:var(--card2);border-color:var(--line);color:var(--soft)}
.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--ink)}
.btn-danger{background:transparent;border-color:rgba(251,113,133,.45);color:var(--bad)}
.btn-danger:hover:not(:disabled){background:rgba(251,113,133,.1)}
.btn-sm{font-size:11.5px;padding:5px 12px;min-height:32px;border-radius:10px}
.btn-block{width:100%}
.check{display:flex;gap:9px;align-items:flex-start;cursor:pointer;font-size:12px;color:var(--ink2);line-height:1.8}
.check input{width:17px;height:17px;margin:3px 0 0;accent-color:var(--orange);flex:none}

/* chips / status */
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap;border:1px solid}
.chip.ok{color:var(--ok);background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.28)}
.chip.bad{color:var(--bad);background:rgba(251,113,133,.1);border-color:rgba(251,113,133,.3)}
.chip.warn{color:var(--yellow);background:rgba(255,204,0,.1);border-color:rgba(255,204,0,.3)}
.chip.info{color:var(--orange2);background:rgba(255,107,0,.1);border-color:rgba(255,107,0,.35)}
.chip.mute{color:var(--soft);background:var(--card2);border-color:var(--line)}
.dot{width:8px;height:8px;border-radius:99px;display:inline-block;flex:none;background:currentColor}
.msg{font-size:12px;line-height:1.8;border-radius:var(--r-ctl);padding:10px 12px;border:1px solid}
.msg[hidden]{display:none}
.msg.bad{color:var(--bad);border-color:rgba(251,113,133,.35);background:rgba(251,113,133,.07)}
.msg.ok{color:var(--ok);border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.07)}
.msg.warn{color:var(--yellow);border-color:rgba(255,204,0,.3);background:rgba(255,204,0,.07)}
.msg.info{color:var(--ink2);border-color:var(--line);background:var(--card2)}

/* key/value */
.kv{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:8px 14px;font-size:12px;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;color:var(--ink2);min-width:0;overflow-wrap:anywhere}
.big{font-size:22px;font-weight:900;color:var(--ink);line-height:1.4}

/* tables: internal horizontal scroll, never the page */
.tbl-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{font-size:11px;font-weight:700;color:var(--muted);text-align:right;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--card2)}
.tbl td{padding:9px 12px;border-bottom:1px solid rgba(38,38,44,.7);color:var(--ink2);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:var(--hover)}
.tbl td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:12px}

/* tabs */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.tab{font:inherit;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;border:1px solid var(--line);
  background:var(--card2);color:var(--soft);cursor:pointer}
.tab svg{width:15px;height:15px}
.tab:hover{background:var(--hover);color:var(--ink)}
.tab[aria-selected="true"]{background:rgba(255,107,0,.12);border-color:rgba(255,107,0,.45);color:var(--orange2)}
[role="tabpanel"][hidden]{display:none}

/* modal */
.veil{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.66);display:flex;align-items:center;justify-content:center;padding:16px}
.veil[hidden]{display:none}
.dlg{width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card)}
.dlg.wide{max-width:760px}
.dlg-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.dlg-h h3{margin:0;font-size:14px;font-weight:800;flex:1;min-width:0}
.dlg-x{background:none;border:0;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px}
.dlg-x:hover{color:var(--ink);background:var(--hover)}
.dlg-b{padding:16px}
.dlg-f{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}
.dlg-text{white-space:pre-wrap;font-size:12.5px;line-height:2;color:var(--ink2);overflow-wrap:anywhere}
.dlg iframe{display:block;width:100%;border:0;border-radius:0 0 var(--r-card) var(--r-card);background:#F4F3EF}

.spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--orange);border-radius:50%;animation:sp .7s linear infinite;display:inline-block;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:640px){
  .app-wrap{padding:16px 16px 56px}
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv dd{margin-bottom:8px}
  .hide-sm{display:none !important}
}
@media (min-width:641px){ .show-sm{display:none !important} }
