:root{--bg:#f5f7fb;--surface:#fff;--ink:#182230;--muted:#7b8797;--line:#e8edf3;--blue:#3369f5;--blue-soft:#edf2ff;--green:#15956a;--green-soft:#e7f7f0;--amber:#b7791f;--red:#d14c52;--shadow:0 16px 42px #192a490b;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px Vazirmatn,system-ui,sans-serif;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{background:#111a2b;color:#d8e0ef;padding:25px 17px;display:flex;flex-direction:column;gap:32px;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 8px;color:inherit;text-decoration:none}.brand-mark{width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#5c89ff,#3157db);display:grid;place-items:center;color:#fff;font-size:20px;font-weight:800;box-shadow:0 8px 20px #2f5ee44a}.brand-name{font-size:16px;letter-spacing:-.3px}.brand-sub{display:block;font:9px 'DM Mono',monospace;color:#8290a8;letter-spacing:1.3px}.nav-label{font-size:10px;color:#74829a;padding:0 12px;margin-bottom:8px}.nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;color:#9aa7bc;text-decoration:none;transition:.2s}.nav-item:hover,.nav-item.active{background:#202d45;color:#fff}.nav-item.active{box-shadow:inset 2px 0 #6e91ff}.nav-icon{width:19px;text-align:center;color:#91a7d5}.side-bottom{margin-top:auto}.safe-note{display:flex;gap:11px;align-items:center;padding:12px;margin-bottom:16px;background:#19263b;border-radius:12px;color:#86a4ff}.safe-note div{display:grid}.safe-note b{font-size:11px;color:#dce5f6}.safe-note small{font-size:9px;color:#8996ac}.user-box{display:flex;align-items:center;gap:10px;border-top:1px solid #263249;padding:18px 7px 0}.avatar,.top-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#293b5b;color:#aac0ff;font-weight:700}.user-meta{min-width:0;flex:1}.user-name{font-size:12px;font-weight:600}.user-role{font-size:10px;color:#8694aa}.main{min-width:0;padding:24px clamp(17px,3vw,42px) 28px}.topbar{height:45px;display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.crumb{color:var(--muted);font-size:12px}.crumb b{color:var(--ink);font-weight:600}.top-actions{display:flex;align-items:center;gap:9px}.icon-btn,.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.2s}.icon-btn{width:38px;height:38px;font-size:16px}.icon-btn:hover,.btn:hover{border-color:#cbd6eb;transform:translateY(-1px)}.top-avatar{width:33px;height:33px;background:#e7edff;color:#486de0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.eyebrow{font:10px 'DM Mono',monospace;color:var(--blue);font-weight:700;margin-bottom:6px}.page-head h1{font-size:26px;line-height:1.25;margin:0;font-weight:800;letter-spacing:-.8px}.page-head p{margin:7px 0 0;color:var(--muted);font-size:12px}.btn{padding:10px 14px;font-size:12px;font-weight:600}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 7px 16px #3369f526}.btn-primary:hover{background:#2459e8}.btn-sm{padding:7px 10px;font-size:10px}.btn-danger{color:var(--red)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat,.panel,.mini-panel,.empty,.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 14px #1c31500a}.stat{padding:17px 18px}.stat-top{display:flex;justify-content:space-between;align-items:center}.stat-label{color:var(--muted);font-size:11px}.stat-icon{width:34px;height:34px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.stat-value{font:500 24px 'DM Mono',monospace;direction:ltr;text-align:start;margin-top:12px;letter-spacing:-1px}.stat-foot{font-size:10px;color:var(--muted);margin-top:4px}.panel{overflow:hidden;margin-bottom:17px}.panel-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title{font-size:13px;font-weight:700}.panel-sub{font-size:10px;color:var(--muted);margin-top:3px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:600px;text-align:start}thead{background:#fafbfd}th{font-size:10px;font-weight:600;color:#8590a0;padding:12px 18px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:12px 18px;border-bottom:1px solid #eff2f6;font-size:11px;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcff}.mono{font:11px 'DM Mono',monospace;direction:ltr;text-align:start;color:#394961}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:600;background:var(--green-soft);color:var(--green)}.pill:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.pill.offline{background:#f0f2f5;color:#7d8793}.pill.warning{background:#fff4dc;color:var(--amber)}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:38px 20px;text-align:center;color:var(--muted);font-size:12px}.empty strong{display:block;color:var(--ink);font-size:14px;margin-bottom:6px}.notice{padding:12px 15px;margin-bottom:16px;border-radius:12px;background:#edf2ff;border:1px solid #dce6ff;color:#455a83;font-size:11px}.notice.error{background:#fff0f0;color:var(--red);border-color:#ffd9da}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-panel{padding:17px 19px}.mini-title{font-size:12px;font-weight:700;margin-bottom:12px}.metric-line{display:flex;justify-content:space-between;padding:8px 0;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}.metric-line:last-child{border:0}.metric-line b{color:var(--ink);font-weight:600;direction:ltr}.modal-backdrop{position:fixed;inset:0;background:#101a2d66;display:grid;place-items:center;padding:18px;z-index:5}.modal{width:min(480px,100%);background:var(--surface);border-radius:18px;padding:21px;box-shadow:var(--shadow);max-height:90vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.modal h2{font-size:17px;margin:0}.modal form{display:grid;gap:13px}.modal label,.login-card label{display:grid;gap:6px;font-size:11px;color:var(--muted)}input,select{width:100%;padding:10px 11px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);outline:none;font-size:12px}input:focus,select:focus{border-color:#9bb4ff;box-shadow:0 0 0 3px #3369f512}.modal .btn{margin-top:5px}.toast{position:fixed;bottom:23px;inset-inline-end:22px;background:#17243a;color:white;padding:11px 16px;border-radius:11px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(8px);transition:.2s;z-index:10;pointer-events:none}.toast.show{opacity:1;transform:none}footer{padding:20px 3px;color:#9aa4b2;font-size:10px}footer span{padding:0 4px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 5%,#e6edff,transparent 50%),var(--bg)}.login-card{width:min(410px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:33px;box-shadow:var(--shadow);display:grid;gap:16px}.login-card .brand-mark{margin:auto;width:49px;height:49px;font-size:24px}.login-brand{text-align:center;font-size:22px;font-weight:800}.login-card>p{text-align:center;color:var(--muted);font-size:12px;margin:-11px 0 8px}.login-card label{font-size:11px}.wide{width:100%;padding:12px}.login-foot{text-align:center;color:#9aa4b2;font-size:10px}.error{color:var(--red);font-size:11px;text-align:center;min-height:15px}
html[dir=rtl] .nav-item.active{box-shadow:inset -2px 0 #6e91ff}html[dir=rtl] .crumb{direction:rtl}
body.dark{--bg:#101722;--surface:#182332;--ink:#e8edf5;--muted:#94a0b1;--line:#2a3748;--blue-soft:#202f51;--green-soft:#17392f;--shadow:0 16px 42px #0003}body.dark thead{background:#1b2838}body.dark tbody tr:hover{background:#1d2b3d}body.dark .notice{background:#202f51;color:#b7c9f5;border-color:#32446b}body.dark input,body.dark select{background:#111c2a}body.dark .icon-btn{background:#182332}body.dark .top-avatar{background:#293b5b}
@media(max-width:950px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.app{grid-template-columns:210px minmax(0,1fr)}.grid-two{grid-template-columns:1fr}}
@media(max-width:650px){.app{display:block}.sidebar{position:static;height:auto;min-height:0;padding:13px 15px;gap:14px}.sidebar>.brand{padding:0}.sidebar>div:first-of-type{overflow:auto}.nav-label,.safe-note{display:none}.nav{display:flex;gap:5px}.nav-item{flex:none;padding:8px 10px;font-size:10px}.side-bottom{display:none}.main{padding:16px}.topbar{margin-bottom:20px}.page-head h1{font-size:22px}.stats{gap:9px}.stat{padding:13px}.stat-value{font-size:20px}.page-head{align-items:flex-start}.page-head .btn{padding:8px}.login-card{padding:27px 23px}}
.config-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.config-row .mono{max-width:min(720px,65vw);overflow-wrap:anywhere}.qr-canvas{margin:10px auto;max-width:100%;background:#fff;padding:8px;border-radius:10px}
.brand-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.brand-form label{display:grid;gap:6px;font-size:11px;color:var(--muted);min-width:190px}.brand-form input[type=color]{height:38px;padding:4px}
.traffic-summary{display:flex;justify-content:space-between;gap:12px;padding:13px 20px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.traffic-summary span:last-child{color:var(--green);font-weight:700}
.panel-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.node-picker{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);min-width:min(330px,100%)}.node-picker select{max-width:270px}.protocol{display:inline-flex;padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:var(--blue-soft);font:10px 'DM Mono',monospace;text-transform:uppercase}.data-view{white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow:auto;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:11px;font:11px/1.6 'DM Mono',monospace;direction:ltr;text-align:left}.modal textarea{width:100%;resize:vertical;min-height:220px;font:11px/1.5 'DM Mono',monospace;direction:ltr;text-align:left}.modal{width:min(650px,100%)}.row-actions .btn-danger{border-color:#f4dada}
