
body{background:var(--bg)}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 400px at 100% 0,color-mix(in srgb,var(--pri) 18%,transparent),transparent 70%)}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
aside{position:sticky;top:0;height:100vh;padding:22px 16px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--surf) 70%,transparent);display:flex;flex-direction:column;gap:6px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;padding:4px 8px 18px}.logo{width:36px;height:36px;border-radius:11px;background:var(--grad);display:grid;place-items:center;color:#fff}
.nv{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--mut);font-weight:500;cursor:pointer;border:0;background:none;box-shadow:none;width:100%;justify-content:flex-start;position:relative}
.nv:hover{background:var(--glass2);color:var(--ink);transform:none;box-shadow:none}.nv.on{background:color-mix(in srgb,var(--pri) 20%,transparent);color:var(--ink)}.nv.on:before{content:"";position:absolute;right:-16px;top:10px;bottom:10px;width:4px;border-radius:4px;background:var(--grad)}
.nv .bd{margin-inline-start:auto;background:var(--bad);color:#fff;border-radius:99px;font-size:11.5px;padding:0 8px;min-width:22px;text-align:center}
main{padding:24px 28px 60px;min-width:0}.tb{display:flex;align-items:center;gap:12px;margin-bottom:24px}.tb h1{font-size:24px;font-weight:800;flex:1}.tb .who{color:var(--mut);font-size:13.5px}
.menu{display:none}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:18px}
.kpi{position:relative;overflow:hidden;cursor:default}.kpi .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin-bottom:12px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.kpi b{font-size:28px;font-weight:800;display:block;line-height:1.2}.kpi span{color:var(--mut);font-size:13.5px}.kpi.hot{cursor:pointer;border-color:color-mix(in srgb,var(--info) 55%,var(--line))}.kpi.hot .ic{animation:glow 2s infinite}@keyframes glow{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--c) 18%,transparent)}}
.g2{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-bottom:14px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.card h3{font-size:15.5px;margin-bottom:2px}.card .cap{color:var(--mut);font-size:13px;margin-bottom:14px}
.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{fill:var(--mut);font:13px Vazir,sans-serif}
.tip{position:absolute;pointer-events:none;background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12.5px;box-shadow:var(--shadow);transform:translate(-50%,-110%);white-space:nowrap;z-index:5}
.leg{display:grid;gap:8px;margin-top:6px}.leg div{display:flex;align-items:center;gap:8px;font-size:13.5px}.leg i{width:10px;height:10px;border-radius:3px}.leg b{margin-inline-start:auto}
.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut svg{width:150px;height:150px;flex:none}.donut .leg{flex:1;min-width:150px}
.hb{display:grid;gap:12px}.hb .r{display:grid;gap:4px}.hb .l{display:flex;justify-content:space-between;font-size:13.5px}.hb .t{height:8px;border-radius:8px;background:var(--glass2);overflow:hidden}.hb .t i{display:block;height:100%;border-radius:8px;background:var(--grad)}
.tw{overflow-x:auto;border-radius:var(--r)}table{width:100%;border-collapse:collapse;min-width:900px}th{position:sticky;top:0;background:var(--surf);color:var(--mut);font-weight:500;font-size:12.5px;text-align:right;padding:12px 14px;border-bottom:1px solid var(--line)}
td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}tr:hover td{background:var(--glass)}tr.hl td{background:color-mix(in srgb,var(--info) 8%,transparent)}
.acts{display:flex;gap:5px;flex-wrap:wrap}.sub{color:var(--mut);font-size:12.5px}.av{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;background:var(--grad);color:#fff;font-weight:700;margin-inline-end:10px;flex:none}
.cu{display:flex;align-items:center}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.row input,.row select{width:auto;min-width:160px}.row .grow{flex:1;min-width:200px}
.q{display:grid;gap:10px}.qi{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--glass2);border:1px solid var(--line);flex-wrap:wrap}.qi .m{flex:1;min-width:160px}
.empty{text-align:center;padding:40px 10px;color:var(--mut)}.empty svg{width:42px;height:42px;opacity:.5;margin-bottom:8px}
.pf{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.fg{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fg .full{grid-column:1/-1}
textarea{min-height:260px;direction:ltr;font-family:ui-monospace,Consolas,monospace;font-size:13px}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:100%;max-width:400px;background:var(--surf);padding:34px;box-shadow:var(--shadow)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:90;min-width:240px;animation:pop .25s}
@media(max-width:980px){.shell{grid-template-columns:1fr}aside{position:fixed;right:0;z-index:40;width:250px;transform:translateX(100%);transition:transform .25s}aside.open{transform:none}.menu{display:inline-flex}.g2,.g3{grid-template-columns:1fr}main{padding:18px 14px 60px}}
a.nv{text-decoration:none}.nv .i{width:20px;height:20px}
.chart rect[data-tip]{cursor:pointer}.chart rect.hv:hover{fill:var(--glass2)}
.tip{position:fixed;transform:none;pointer-events:none}
details.nt summary{cursor:pointer;color:var(--mut);font-size:12.5px;list-style:none}details.nt summary::-webkit-details-marker{display:none}details.nt form{display:flex;gap:4px;margin-top:4px}details.nt input{padding:4px 8px;font-size:13px;min-width:120px}
form.inl{display:inline}.acts form{margin:0}
.pager{display:flex;gap:6px;justify-content:center;margin-top:14px}
.setup{max-width:420px}
@supports not (background:color-mix(in srgb,red 50%,blue)){
 body:before{background:radial-gradient(900px 400px at 100% 0,rgba(116,102,255,.18),transparent 70%)}
 aside{background:var(--surf)}.nv.on{background:rgba(116,102,255,.2)}.kpi .ic{background:var(--glass2)}.kpi.hot{border-color:var(--info)}tr.hl td{background:rgba(122,184,255,.08)}
}

.thumb{position:relative;margin-bottom:10px;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:var(--glass2)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .chk{position:absolute;bottom:8px;right:8px;margin:0;display:flex;gap:6px;align-items:center;background:rgba(0,0,0,.65);color:#fff;padding:3px 10px;border-radius:99px;font-size:12.5px}
input[type=file]{padding:8px}
