:root{--bg:#0f172a;--bg-card:#1e293b;--bg-card-hover:#273449;--border:#334155;--text:#e2e8f0;--text-muted:#94a3b8;--primary:#14b8a6;--primary-hover:#0d9488;--accent:#f59e0b;--danger:#ef4444;--success:#22c55e}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Vazirmatn,Segoe UI,Tahoma,sans-serif;background:var(--bg);color:var(--text);direction:rtl}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select{font-family:inherit}.app{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-card);border-left:1px solid var(--border);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.25rem;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar .brand{font-size:1.25rem;font-weight:700;color:var(--primary);margin-bottom:1.5rem;padding:0 .75rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:.5rem;color:var(--text-muted);transition:all .15s;font-size:.95rem}.nav-item:hover{background:var(--bg-card-hover);color:var(--text)}.nav-item.active{background:var(--primary);color:#062e2b;font-weight:600}.nav-item .icon{font-size:1.1rem}.main{flex:1 1;padding:2rem;overflow-y:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.topbar h1{font-size:1.5rem;font-weight:700}.user-chip{display:flex;align-items:center;gap:.75rem;background:var(--bg-card);padding:.5rem 1rem;border-radius:2rem;border:1px solid var(--border)}.user-chip .role{font-size:.75rem;color:var(--accent);background:rgba(245,158,11,.15);padding:.15rem .5rem;border-radius:1rem}.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .75rem;border-radius:.5rem;transition:all .15s}.logout-btn:hover{border-color:var(--danger);color:var(--danger)}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.stat-card .label{color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem}.stat-card .value{font-size:1.75rem;font-weight:700;color:var(--primary)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.card h2{font-size:1.1rem;margin-bottom:1rem;color:var(--text)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:right;color:var(--text-muted);font-weight:600;white-space:nowrap}td,th{padding:.6rem .75rem;border-bottom:1px solid var(--border)}tr:hover td{background:var(--bg-card-hover)}.badge{display:inline-block;padding:.2rem .6rem;border-radius:1rem;font-size:.75rem;font-weight:600}.badge.success{background:rgba(34,197,94,.15);color:var(--success)}.badge.warning{background:rgba(245,158,11,.15);color:var(--accent)}.badge.danger{background:rgba(239,68,68,.15);color:var(--danger)}.badge.info{background:rgba(20,184,166,.15);color:var(--primary)}.badge.muted{background:rgba(148,163,184,.15);color:var(--text-muted)}.form{gap:1rem;max-width:480px}.form,.form-group{display:flex;flex-direction:column}.form-group{gap:.4rem}.form-group label{font-size:.85rem;color:var(--text-muted)}.form-group input,.form-group select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.6rem .75rem;border-radius:.5rem;font-size:.95rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary)}.btn{background:var(--primary);color:#062e2b;border:none;padding:.6rem 1.25rem;border-radius:.5rem;font-weight:600;font-size:.95rem;transition:all .15s}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:.35rem .75rem;font-size:.8rem}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(circle at 30% 20%,#134e4a,#0f172a)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;padding:2.5rem;width:100%;max-width:400px}.login-card h1{text-align:center;color:var(--primary);margin-bottom:.5rem}.login-card p{text-align:center;color:var(--text-muted);margin-bottom:2rem;font-size:.9rem}.error{color:var(--danger);font-size:.85rem;text-align:center}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.empty,.loading{color:var(--text-muted)}.empty{text-align:center;padding:2rem}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}