@font-face{font-family:'IRANSans';src:url('/fonts/IRANSansWeb.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/IRANSansWeb-Bold.woff') format('woff');font-weight:700;font-display:swap}
:root{--font:'IRANSans',Tahoma,sans-serif;--bg:#0d1117;--bg2:#161b22;--bg3:#1c2128;--bg4:#22272e;--bg5:#2d333b;--border:#30363d;--border2:#3d444d;--text:#e6edf3;--text2:#8b949e;--text3:#6e7681;--accent:#4f6ef7;--accent2:#3d5ae0;--accent3:#6b8bff;--accent-dim:rgba(79,110,247,.15);--accent-glow:rgba(79,110,247,.3);--green:#2ea043;--green-l:#3fb950;--green-dim:rgba(46,160,67,.15);--red:#f85149;--red-dim:rgba(248,81,73,.15);--amber:#e3b341;--amber-dim:rgba(227,179,65,.15);--purple:#bc8cff;--purple-dim:rgba(188,140,255,.15);--cyan:#39c5cf;--cyan-dim:rgba(57,197,207,.15);--r:12px;--rsm:8px;--rxs:6px;--shadow:0 1px 3px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);--shadow-lg:0 8px 40px rgba(0,0,0,.5);--tr:.18s ease;--sw:240px}
[data-theme="light"]{--bg:#f4f6fb;--bg2:#fff;--bg3:#eef0f5;--bg4:#e3e7ef;--bg5:#d6dbe6;--border:#d0d5e0;--border2:#b8bed0;--text:#1a1f2e;--text2:#4a5568;--text3:#718096;--accent:#4f6ef7;--accent2:#3d5ae0;--accent3:#3451d1;--accent-dim:rgba(79,110,247,.1);--accent-glow:rgba(79,110,247,.2);--green:#16803a;--green-l:#1a9e47;--green-dim:rgba(22,128,58,.1);--red:#c0392b;--red-dim:rgba(192,57,43,.1);--amber:#b7791f;--amber-dim:rgba(183,121,31,.1);--purple:#6d28d9;--purple-dim:rgba(109,40,217,.1);--shadow:0 1px 4px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.06);--shadow-lg:0 8px 32px rgba(0,0,0,.12)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.65;min-height:100vh;direction:rtl;transition:background var(--tr),color var(--tr)}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sw);background:var(--bg2);border-left:1px solid var(--border);display:flex;flex-direction:column;position:fixed;inset:0 0 0 auto;z-index:100;overflow-y:auto;transition:transform var(--tr),background var(--tr)}
.s-logo{padding:1.1rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit}
.s-logo-ico{width:38px;height:38px;background:linear-gradient(135deg,#4f6ef7,#7b9fff);border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 3px 12px var(--accent-glow)}
.s-logo-name{font-size:17px;font-weight:700;letter-spacing:-.3px}
.s-logo-ver{font-size:10px;color:var(--text3)}
.s-nav{flex:1;padding:.5rem .5rem}
.s-sec{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--text3);padding:.7rem .65rem .25rem;text-transform:uppercase}
.s-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:var(--rxs);color:var(--text2);text-decoration:none;font-size:13.5px;margin-bottom:2px;transition:all var(--tr);position:relative;white-space:nowrap}
.s-item:hover{background:var(--bg3);color:var(--text)}
.s-item.on{background:var(--accent-dim);color:var(--accent);font-weight:600}
.s-item.on::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--accent);border-radius:0 3px 3px 0}
.s-ico{font-size:16px;width:22px;text-align:center;flex-shrink:0}
.s-badge{margin-right:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px;flex-shrink:0}
.s-badge.r{background:var(--red)}
.s-sep{border-top:1px solid var(--border);margin:.4rem .5rem}
.s-foot{padding:.7rem;border-top:1px solid var(--border)}
.u-card{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;background:var(--bg3);border-radius:var(--rsm)}
.u-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;background:var(--accent-dim);color:var(--accent)}
.u-av.adm{background:var(--purple-dim);color:var(--purple)}
.u-info{flex:1;overflow:hidden}
.u-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-role{font-size:10px;color:var(--text3)}
.u-out{color:var(--text3);text-decoration:none;font-size:16px;flex-shrink:0;transition:color var(--tr);padding:.2rem}
.u-out:hover{color:var(--red)}
.main{margin-right:var(--sw);flex:1;display:flex;flex-direction:column;min-height:100vh}
.topbar{padding:.8rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg2);position:sticky;top:0;z-index:50;gap:1rem}
.tb-l{display:flex;align-items:center;gap:.75rem}
.menu-btn{display:none;background:none;border:none;color:var(--text2);font-size:21px;cursor:pointer;padding:.2rem;line-height:1;flex-shrink:0;align-items:center;justify-content:center}
.pg-title{font-size:15px;font-weight:700}
.pg-sub{font-size:11px;color:var(--text3);margin-top:1px}
.tb-r{display:flex;align-items:center;gap:.5rem}
.theme-btn{width:34px;height:34px;border-radius:var(--rxs);border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all var(--tr)}
.theme-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.content{padding:1.5rem;flex:1}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem;transition:background var(--tr),border-color var(--tr)}
.card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.75rem;flex-wrap:wrap}
.card-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:.5rem}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}
.stat{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:1.1rem 1.25rem;position:relative;overflow:hidden;transition:all var(--tr)}
.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border2)}
.stat-bar{position:absolute;top:0;right:0;width:3px;height:100%}
.stat-ico{font-size:22px;margin-bottom:.5rem}
.stat-lbl{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:.25rem}
.stat-val{font-size:27px;font-weight:700;line-height:1}
.stat-ch{font-size:11px;color:var(--green-l);margin-top:.3rem}
.stat-ch.dn{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.52rem 1rem;border-radius:var(--rxs);border:none;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--tr);text-decoration:none;white-space:nowrap;line-height:1.2}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 4px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:var(--accent2);box-shadow:0 3px 14px var(--accent-glow)}
.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:var(--green-l)}
.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid transparent}.btn-danger:hover{background:var(--red);color:#fff}
.btn-warning{background:var(--amber-dim);color:var(--amber);border:1px solid transparent}.btn-warning:hover{background:var(--amber);color:#fff}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg3);color:var(--text);border-color:var(--border2)}
.btn-sm{padding:.3rem .65rem;font-size:12px}.btn-lg{padding:.72rem 1.5rem;font-size:15px}.btn-block{width:100%}
.form-group{margin-bottom:.9rem}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:.38rem}
.req{color:var(--red);margin-right:.15rem}
.form-hint{font-size:11px;color:var(--text3);margin-top:.3rem;line-height:1.5}
.form-ctrl{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:.62rem .9rem;border-radius:var(--rxs);font-family:var(--font);font-size:13.5px;outline:none;transition:border-color var(--tr),box-shadow var(--tr),background var(--tr);appearance:none}
.form-ctrl:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);background:var(--bg2)}
.form-ctrl::placeholder{color:var(--text3)}
.form-ctrl[disabled],.form-ctrl[readonly]{opacity:.6;cursor:not-allowed}
.form-ctrl.ltr{direction:ltr;text-align:left}
select.form-ctrl{cursor:pointer}
textarea.form-ctrl{resize:vertical;min-height:90px}
.form-row{display:grid;gap:1rem}.fr2{grid-template-columns:1fr 1fr}.fr3{grid-template-columns:1fr 1fr 1fr}
.input-grp{display:flex;gap:.5rem}.input-grp .form-ctrl{flex:1}
.input-prefix{background:var(--bg4);border:1px solid var(--border);border-left:none;padding:.62rem .8rem;border-radius:var(--rxs) 0 0 var(--rxs);color:var(--text3);font-size:13px;white-space:nowrap;display:flex;align-items:center}
.form-ctrl.no-br{border-right:none;border-radius:0 var(--rxs) var(--rxs) 0}
.form-check{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.form-check input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}
.check-lbl{font-size:13px;color:var(--text2);cursor:pointer}
.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .6rem;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.bg-green{background:var(--green-dim);color:var(--green-l)}.bg-red{background:var(--red-dim);color:var(--red)}.bg-amber{background:var(--amber-dim);color:var(--amber)}.bg-blue{background:var(--accent-dim);color:var(--accent3)}.bg-purple{background:var(--purple-dim);color:var(--purple)}.bg-cyan{background:var(--cyan-dim);color:var(--cyan)}.bg-gray{background:var(--bg4);color:var(--text3)}
.alert{padding:.8rem 1rem;border-radius:var(--rsm);font-size:13px;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.6rem;line-height:1.6;border:1px solid transparent}
.alert-ico{font-size:15px;flex-shrink:0;margin-top:1px}
.alert-ok{background:var(--green-dim);border-color:rgba(46,160,67,.3);color:var(--green-l)}
.alert-err{background:var(--red-dim);border-color:rgba(248,81,73,.3);color:var(--red)}
.alert-warn{background:var(--amber-dim);border-color:rgba(227,179,65,.25);color:var(--amber)}
.alert-info{background:var(--accent-dim);border-color:rgba(79,110,247,.3);color:var(--accent3)}
.tbl-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{padding:.65rem .9rem;text-align:right;font-size:11px;font-weight:700;color:var(--text3);background:var(--bg3);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}
.tbl td{padding:.78rem .9rem;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr:hover td{background:var(--bg3)}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(5px);z-index:200;align-items:center;justify-content:center;padding:1rem}
.overlay.open{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:1.75rem;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:mIn .2s ease}
@keyframes mIn{from{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.modal-title{font-size:15px;font-weight:700}
.modal-x{width:28px;height:28px;border:none;background:var(--bg3);color:var(--text2);border-radius:var(--rxs);cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;transition:all var(--tr)}
.modal-x:hover{background:var(--red-dim);color:var(--red)}
.tab-list{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab-btn{padding:.55rem 1rem;font-size:13px;font-weight:500;color:var(--text3);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-family:var(--font);transition:all var(--tr);white-space:nowrap}
.tab-btn:hover{color:var(--text)}
.tab-btn.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.tab-panel{display:none}.tab-panel.on{display:block}
.bar-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.55rem}
.bar-lbl{font-size:12px;color:var(--text2);min-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.bar-track{flex:1;background:var(--bg4);border-radius:20px;height:8px;overflow:hidden}
.bar-fill{height:100%;border-radius:20px;transition:width .6s ease}
.bar-val{font-size:11px;color:var(--text3);min-width:34px;text-align:left}
.mini-bars{display:flex;align-items:flex-end;gap:3px;height:70px}
.mini-bar{flex:1;border-radius:3px 3px 0 0;min-height:3px;cursor:pointer;transition:opacity var(--tr)}
.mini-bar:hover{opacity:.7}
.code-blk{background:var(--bg);border:1px solid var(--border);border-radius:var(--rxs);padding:.875rem 1rem;font-family:'Courier New',monospace;font-size:12.5px;direction:ltr;text-align:left;line-height:1.85;overflow-x:auto;color:var(--text2)}
.code-blk .kw{color:var(--accent3)}.code-blk .str{color:var(--amber)}.code-blk .cmt{color:var(--text3)}.code-blk .fn{color:var(--green-l)}
.code-inline{background:var(--bg4);padding:1px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:12px;color:var(--accent3)}
.copy-row{display:flex;align-items:center;gap:.5rem;background:var(--bg4);border:1px solid var(--border);border-radius:var(--rxs);padding:.45rem .75rem;margin-top:.3rem}
.copy-val{flex:1;font-family:'Courier New',monospace;font-size:12px;direction:ltr;text-align:left;word-break:break-all;color:var(--accent3)}
.link-ok{background:linear-gradient(135deg,rgba(46,160,67,.12),rgba(79,110,247,.08));border:1px solid rgba(46,160,67,.35);border-radius:var(--r);padding:2rem 1.5rem;margin-bottom:1.25rem;animation:sDown .35s ease;text-align:center}
@keyframes sDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
.link-ok-icon{font-size:52px;display:block;margin-bottom:.75rem;animation:bounce .5s ease}
@keyframes bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.link-ok-title{font-size:17px;font-weight:700;color:var(--green-l);margin-bottom:1.1rem}
.link-ok-url{background:var(--bg2);border:2px solid rgba(46,160,67,.3);border-radius:var(--rsm);padding:.875rem 1.1rem;display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem;direction:ltr}
.link-ok-url a{flex:1;font-family:'Courier New',monospace;font-size:15px;color:var(--accent3);word-break:break-all;text-decoration:none;font-weight:600}
.link-ok-url a:hover{text-decoration:underline}
.link-ok-meta{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}
.link-ok-acts{display:flex;gap:.625rem;justify-content:center;flex-wrap:wrap}
.pass-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1.5rem;overflow:hidden;position:relative}
.pass-glow{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(79,110,247,.12) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-60%);pointer-events:none}
.pass-card{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:2.5rem 2rem;width:100%;max-width:400px;text-align:center;box-shadow:var(--shadow-lg)}
.pass-lock{width:80px;height:80px;background:linear-gradient(135deg,var(--accent-dim),var(--purple-dim));border:2px solid rgba(79,110,247,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;margin:0 auto 1.25rem;animation:lockPulse 2s ease infinite}
@keyframes lockPulse{0%,100%{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 12px transparent}}
.pass-title{font-size:21px;font-weight:700;margin-bottom:.4rem}
.pass-sub{font-size:13px;color:var(--text3);margin-bottom:1.75rem;line-height:1.7}
.pass-input{width:100%;background:var(--bg3);border:2px solid var(--border);color:var(--text);padding:.82rem 1.1rem;border-radius:var(--rsm);font-size:16px;outline:none;font-family:var(--font);transition:all .2s;letter-spacing:3px;text-align:center;margin-bottom:1rem}
.pass-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim)}
.pass-btn{width:100%;background:var(--accent);color:#fff;border:none;padding:.85rem;border-radius:var(--rsm);font-family:var(--font);font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 2px 10px var(--accent-glow)}
.pass-btn:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 20px var(--accent-glow)}
.pass-err{background:var(--red-dim);border:1px solid rgba(248,81,73,.3);color:var(--red);padding:.65rem .9rem;border-radius:var(--rxs);font-size:13px;margin-bottom:.875rem;animation:shake .3s ease}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1.5rem;overflow:hidden;position:relative}
.l-glow1{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(79,110,247,.1) 0%,transparent 70%);top:40%;left:50%;transform:translate(-50%,-60%);pointer-events:none}
.l-glow2{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(188,140,255,.07) 0%,transparent 70%);bottom:10%;right:5%;pointer-events:none}
.l-box{position:relative;text-align:center;max-width:480px;width:100%}
.l-logo{width:80px;height:80px;background:linear-gradient(135deg,var(--accent),var(--accent3));border-radius:24px;display:flex;align-items:center;justify-content:center;font-size:40px;margin:0 auto 1.5rem;box-shadow:0 8px 32px var(--accent-glow)}
.l-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent-dim);border:1px solid rgba(79,110,247,.3);color:var(--accent3);padding:.35rem 1rem;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:1.25rem}
.l-title{font-size:36px;font-weight:700;margin-bottom:.75rem;line-height:1.1}
.l-sub{font-size:14px;color:var(--text3);line-height:1.75;margin-bottom:2rem}
.step-guide{display:flex;flex-direction:column;gap:.875rem}
.step-item{display:flex;gap:.875rem;align-items:flex-start}
.step-num{width:28px;height:28px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:1px}
.step-body{flex:1}
.step-title{font-size:13px;font-weight:600;margin-bottom:.25rem}
.step-desc{font-size:12px;color:var(--text3);line-height:1.6}
.div{border-top:1px solid var(--border);margin:1rem 0}
.text-muted{color:var(--text3)}.txt-sm{font-size:12px}.txt-xs{font-size:11px}
.txt-green{color:var(--green-l)}.txt-red{color:var(--red)}.txt-accent{color:var(--accent3)}
.mono{font-family:'Courier New',monospace;font-size:12px}
.ltr{direction:ltr;text-align:left}
.cut{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flex{display:flex}.ai-c{align-items:center}.fw{flex-wrap:wrap}.g-xs{gap:.35rem}.g-sm{gap:.5rem}.g-md{gap:.75rem}
#toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(12px);background:var(--bg2);border:1px solid var(--border);color:var(--text);padding:.55rem 1.25rem;border-radius:30px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;z-index:9999;transition:opacity .25s,transform .25s;box-shadow:var(--shadow);white-space:nowrap}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.ok{background:var(--green);color:#fff;border-color:var(--green)}
#toast.err{background:var(--red);color:#fff;border-color:var(--red)}
.s-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99}
@media(max-width:900px){:root{--sw:0px}.sidebar{transform:translateX(100%);width:265px;z-index:100}.sidebar.open{transform:translateX(0)}.s-back.show{display:block}.main{margin-right:0}.menu-btn{display:flex!important}.stats-grid{grid-template-columns:1fr 1fr}.fr2,.fr3{grid-template-columns:1fr}.content{padding:1rem}.topbar{padding:.7rem 1rem}}
@media(max-width:500px){.stats-grid{grid-template-columns:1fr}.link-ok-url{flex-direction:column;text-align:center}.modal{padding:1.25rem}}
