/* Malek license panel - navy & gold */
@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --ink:#14294f;--ink2:#0b1a36;--ink3:#24427a;--gold:#f5b800;--gold2:#e0a800;--gold-soft:#fff6d6;
  --paper:#f3f5f9;--card:#fff;--line:#dfe5ee;--line2:#c9d3e1;--text:#18212f;--muted:#617086;
  --ok:#1d7a55;--ok-soft:#e4f4ec;--bad:#b23a2a;--bad-soft:#fbe9e6;--warn:#a66b00;--warn-soft:#fff3d6;
  --r:12px;--r2:8px;--sh:0 1px 2px rgba(11,26,54,.06),0 4px 16px rgba(11,26,54,.06);--sh2:0 8px 28px rgba(11,26,54,.16)
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.85 Vazirmatn,Tahoma,sans-serif;color:var(--text);background:var(--paper)}
a{color:var(--ink3)}
::selection{background:var(--gold);color:var(--ink2)}

/* top bar */
nav{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;background:linear-gradient(90deg,var(--ink2),var(--ink));padding:0 20px;box-shadow:0 2px 10px rgba(11,26,54,.25)}
nav::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}
nav .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:1.05rem;text-decoration:none;padding:12px 0;margin-inline-end:18px}
nav .brand i{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--gold);color:var(--ink2);font-style:normal;font-weight:900}
nav a{color:#d7e0ee;text-decoration:none;font-weight:600;padding:16px 12px 15px;border-radius:0;position:relative}
nav a:hover{color:#fff}
nav a.on{color:#fff}
nav a.on::after{content:"";position:absolute;inset:auto 10px 3px 10px;height:3px;border-radius:3px;background:#fff;z-index:1}
nav .sp{flex:1}
nav .who{color:#b9c6d9;font-size:.9em;padding-inline-end:6px}
nav a.out{padding:6px 12px;margin-inline-start:4px;border:1px solid rgba(255,255,255,.25);border-radius:8px}
nav a.out:hover{border-color:var(--gold);color:var(--gold)}

main{max-width:1240px;margin:0 auto;padding:28px 24px 48px}
h1{font-size:1.45rem;line-height:1.4;color:var(--ink2);margin:.1em 0 1em;display:flex;align-items:center;gap:12px}
h1::before{content:"";width:6px;height:1.3em;border-radius:3px;background:var(--gold)}
h2{font-size:1.08rem;color:var(--ink2);margin:2em 0 .7em;display:flex;align-items:center;gap:8px}
h2::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold)}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;margin-bottom:18px;box-shadow:var(--sh)}
.narrow{max-width:440px}

/* tables */
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:16px;box-shadow:var(--sh)}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
thead th{background:var(--ink);color:#fff;font-weight:700;font-size:.86em;letter-spacing:.01em;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:#fafbfd}
tbody tr:hover{background:var(--gold-soft)}
tbody th{background:#f6f8fb;color:var(--ink2);font-weight:700;width:220px}
td input{margin:0}

/* forms */
label{display:grid;gap:6px;font-weight:600;font-size:.95em;color:var(--ink2);margin-bottom:14px}
label.check{display:inline-flex;gap:8px;align-items:center;font-weight:500;color:var(--text);margin:0 0 8px 16px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;transition:.15s}
label.check:hover{border-color:var(--gold)}
label.check:has(input:checked){background:var(--gold-soft);border-color:var(--gold);color:var(--ink2)}
input,select,textarea{font:inherit;color:var(--text);padding:9px 12px;border:1px solid var(--line2);border-radius:var(--r2);background:#fff;width:100%;transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:#9aa6b8}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--ink)}
input:hover,select:hover,textarea:hover{border-color:#9fb0c7}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ink3);box-shadow:0 0 0 3px rgba(245,184,0,.35)}
input:disabled{background:#f1f4f8;color:var(--muted)}
button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
fieldset{border:1px solid var(--line);border-radius:var(--r);margin:4px 0 16px;padding:12px 16px 6px;background:#fbfcfe}
legend{font-weight:800;color:var(--ink2);padding:0 8px}

/* buttons */
button,.btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-weight:800;background:var(--gold);color:var(--ink2);border:0;border-radius:var(--r2);padding:9px 20px;cursor:pointer;text-decoration:none;box-shadow:0 2px 0 var(--gold2);transition:transform .08s,background .15s,box-shadow .15s}
button:hover,.btn:hover{background:#ffc61f}
button:active,.btn:active{transform:translateY(1px);box-shadow:none}
button.small,.btn.small{background:var(--ink);color:#fff;box-shadow:none;padding:4px 12px;font-size:.86em;font-weight:700}
button.small:hover,.btn.small:hover{background:var(--ink3)}
.btn.small.on{background:var(--gold);color:var(--ink2)}
button.danger{background:var(--bad);color:#fff;box-shadow:0 2px 0 #7f2a1e}
button.danger:hover{background:#c9442f}
main a{font-weight:600}
.small{padding:3px 10px;font-size:.88em}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 22px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 16px}

/* dashboard */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.stats .card{display:grid;gap:2px;margin:0;border-top:0;position:relative;overflow:hidden}
.stats .card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--gold),#ffd95a)}
.stats b{font-size:2rem;line-height:1.3;color:var(--ink2)}
.stats span{color:var(--muted);font-size:.92em}
.statlink{text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.statlink:hover{transform:translateY(-2px);box-shadow:var(--sh2)}

/* messages & badges */
.muted{color:var(--muted)}
.ok,.err{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--r2);margin:0 0 16px;font-weight:600}
.ok{background:var(--ok-soft);color:#145c40;border:1px solid #bfe3d1}
.ok::before{content:"✓";font-weight:900}
.err{background:var(--bad-soft);color:#8a2f20;border:1px solid #f1c6be}
.err::before{content:"!";display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--bad);color:#fff;font-weight:900;line-height:1}
.warn{color:var(--warn);font-weight:700}
.err-t{color:var(--bad);font-weight:700}
.pill{display:inline-block;padding:1px 10px;border-radius:999px;font-size:.85em;font-weight:700;white-space:nowrap}
.pill.ok{display:inline-block;padding:1px 10px;margin:0;border:0;background:var(--ok-soft);color:var(--ok)}
.pill.ok::before{content:none}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.new{background:#e6edfb;color:var(--ink3)}
.pill.gray{background:#edf0f4;color:var(--muted)}

.search{display:flex;gap:8px;margin-bottom:16px;align-items:center}
.search input{max-width:460px}
.keybox .key{font:800 1.6rem/1.4 Consolas,monospace;letter-spacing:.08em;background:var(--gold-soft);color:var(--ink2);border:2px dashed var(--gold2);border-radius:var(--r);padding:16px;text-align:center;user-select:all}

/* login */
body.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 100% 0,#24427a 0,transparent 60%),linear-gradient(160deg,var(--ink2),var(--ink))}
body.auth main{width:100%;max-width:440px;padding:24px}
body.auth h1{color:#fff;justify-content:center}
body.auth h1::before{display:none}
body.auth .card{padding:28px;border:0;box-shadow:var(--sh2)}
body.auth .card button{width:100%;justify-content:center;padding:11px}
.authbrand{display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;margin-bottom:8px}
.authbrand i{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--gold);color:var(--ink2);font:900 1.7rem/1 Vazirmatn,Tahoma,sans-serif;box-shadow:0 8px 24px rgba(245,184,0,.35)}
.authbrand span{color:#c7d3e6}

/* date picker */
input.jdate{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2314294f' stroke-width='1.8' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") no-repeat left 10px center;padding-left:36px;cursor:pointer}
.jdp{position:absolute;z-index:1000;width:300px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh2);padding:12px;font:14px/1.6 Vazirmatn,Tahoma,sans-serif;direction:rtl;animation:jdp-in .14s ease-out}
@keyframes jdp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.jdp button{box-shadow:none;font-weight:600}
.jdp-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.jdp-title{flex:1;display:flex;gap:6px}
.jdp-sel{padding:4px 6px;border-radius:8px;font-weight:700;color:var(--ink2);background:#f6f8fb;border-color:var(--line)}
.jdp-nav{width:32px;height:32px;padding:0;justify-content:center;background:#f1f4f9;color:var(--ink2);border-radius:8px;font-size:1.3rem;line-height:1}
.jdp-nav:hover{background:var(--gold-soft)}
.jdp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.jdp-wd{font-size:.8em;font-weight:800;color:var(--muted);padding:2px 0 4px}
.jdp-day{height:34px;padding:0;justify-content:center;background:transparent;color:var(--text);border-radius:8px;font-weight:600}
.jdp-day:hover{background:var(--gold-soft);color:var(--ink2)}
.jdp-fri{color:var(--bad)}
.jdp-today{box-shadow:inset 0 0 0 2px var(--gold)}
.jdp-on,.jdp-on:hover{background:var(--ink);color:#fff}
.jdp-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.jdp-q{padding:4px 12px;font-size:.88em;background:#f1f4f9;color:var(--ink2);border-radius:999px}
.jdp-q:hover{background:var(--gold)}
.jdp-clear{margin-inline-start:auto;color:var(--bad)}

@media(max-width:760px){
  nav{padding:0 12px}nav a{padding:12px 8px}nav .brand{margin-inline-end:8px}
  main{padding:20px 14px 40px}
  table{display:block;overflow-x:auto}
  tbody th{width:auto}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* logo */
nav .brand img{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.authbrand img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(245,184,0,.35))}
nav a.who{color:#b9c6d9;font-size:.9em;padding:6px 8px}
nav a.who:hover{color:var(--gold)}
nav a.who::after{content:none}
.note{padding:10px 14px;border-radius:var(--r2);background:#eef3fb;border:1px solid #d3def0;color:var(--ink2);font-weight:600;margin:0 0 14px}
.nowrap{white-space:nowrap}
.stats .statlink.alert::before{background:linear-gradient(90deg,var(--bad),#e0735f)}
.stats .statlink.alert b{color:var(--bad)}
td input[type=password]{min-width:170px;padding:6px 10px}
