@font-face { font-family: "Vazirmatn"; src: url("/fonts/Vazirmatn.woff2") format("woff2"); font-display: swap; }
:root { --bg:#f4f6fa; --card:#fff; --ink:#1d2433; --muted:#6b7589; --line:#e3e7ef; --pri:#2557d6; --pri2:#1b43a8; --ok:#117a45; --bad:#b42318; --warn:#9a6700; }
* { box-sizing: border-box; }
html { direction: rtl; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.7 Vazirmatn, Tahoma, "Segoe UI", Arial, sans-serif; }
a { color:var(--pri); text-decoration:none; } a:hover { text-decoration:underline; }
.wrap { display:flex; min-height:100vh; }
.side { width:220px; background:#14213d; color:#dbe3f5; padding:16px 10px; flex-shrink:0; }
.side h1 { font-size:16px; margin:0 8px 14px; color:#fff; }
.side a { display:block; color:#dbe3f5; padding:7px 12px; border-radius:8px; font-size:14px; }
.side a:hover { background:#22345f; text-decoration:none; }
.side .sec { margin:14px 12px 4px; font-size:12px; color:#8fa0c8; }
.badge { background:#e5484d; color:#fff; border-radius:10px; padding:0 7px; font-size:12px; margin-right:4px; }
.main { flex:1; padding:22px 26px; min-width:0; }
h2 { margin:0 0 14px; font-size:20px; } h3 { margin:18px 0 8px; font-size:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:16px; overflow-x:auto; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:16px; }
.stat { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; }
.stat b { display:block; font-size:26px; } .stat span { color:var(--muted); font-size:13px; }
table.t { width:100%; border-collapse:collapse; font-size:14px; }
.t th, .t td { padding:8px 10px; border-bottom:1px solid var(--line); text-align:right; vertical-align:top; white-space:nowrap; }
.t td.wrapok { white-space:normal; } .t th { background:#f0f3f9; color:var(--muted); font-weight:600; }
label { display:block; margin:10px 0 3px; font-size:13px; color:var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=file], select, textarea {
  width:100%; padding:8px 10px; border:1px solid #c9d1e0; border-radius:8px; font:inherit; background:#fff; color:var(--ink); }
textarea { min-height:90px; font-family:Consolas, monospace; direction:ltr; text-align:left; }
.ltr { direction:ltr; text-align:left; unicode-bidi:plaintext; font-family:Consolas, "Courier New", monospace; }
.row { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0 16px; }
.chk { display:flex; align-items:center; gap:8px; margin:8px 0; color:var(--ink); font-size:14px; } .chk input { width:auto; }
button, .btn { display:inline-block; background:var(--pri); color:#fff; border:0; border-radius:8px; padding:8px 16px; font:inherit; cursor:pointer; }
button:hover, .btn:hover { background:var(--pri2); text-decoration:none; }
.btn.sec { background:#e8ecf5; color:var(--ink); } .btn.red, button.red { background:var(--bad); } .btn.sm, button.sm { padding:3px 10px; font-size:13px; }
.flash { padding:10px 14px; border-radius:8px; margin-bottom:14px; }
.flash.ok { background:#e3f6ec; color:var(--ok); } .flash.err { background:#fdeceb; color:var(--bad); }
.codes { background:#fffbe6; border:1px dashed #d9b800; border-radius:8px; padding:10px 14px; margin-bottom:14px; }
.codes code, code.big { font:16px Consolas, monospace; direction:ltr; display:inline-block; }
.pill { display:inline-block; padding:0 9px; border-radius:10px; font-size:12px; background:#e8ecf5; }
.pill.active, .pill.ok, .pill.approved { background:#e3f6ec; color:var(--ok); }
.pill.revoked, .pill.denied, .pill.blocked, .pill.rejected { background:#fdeceb; color:var(--bad); }
.pill.expired, .pill.pending, .pill.unused { background:#fff4d6; color:var(--warn); }
.muted { color:var(--muted); font-size:13px; } .inline { display:inline; }
.filters { display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin-bottom:14px; } .filters > div { min-width:140px; } .filters label { margin-top:0; }
progress { width:100%; height:14px; } .bars { display:grid; grid-template-columns:repeat(7,1fr); gap:10px; text-align:center; font-size:12px; }
.pagination { display:flex; gap:4px; list-style:none; padding:0; justify-content:center; margin:14px 0 0; direction:ltr; }
.pagination .page-link { display:block; padding:4px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.pagination .active .page-link { background:var(--pri); color:#fff; } .pagination .disabled .page-link { color:#aab; }
.login { max-width:380px; margin:8vh auto; } .warn { background:#fff4d6; color:var(--warn); padding:10px 14px; border-radius:8px; margin:10px 0; }
@media (max-width:800px){ .wrap{ flex-direction:column; } .side{ width:100%; } .main{ padding:14px; } }
@media print { .side, .noprint { display:none !important; } body { background:#fff; } }
.full{width:100%;margin-top:10px} .side form{padding:0 4px}
