@font-face{font-family:system-fa;src:local("Vazirmatn"),local("Tahoma")}
:root{--bg:#08111d;--bg-soft:#0d1928;--surface:rgba(15,29,45,.82);--surface-2:#122238;--line:rgba(145,174,203,.15);--text:#edf6ff;--muted:#8fa5bc;--cyan:#27d7c4;--blue:#45a7ff;--warning:#f4bd62;--danger:#ff6680;--shadow:0 20px 65px rgba(0,0,0,.27);font-family:system-fa,Tahoma,Arial,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -10%,rgba(20,104,139,.2),transparent 40%),var(--bg);overflow-x:hidden}button,input{font:inherit}.hidden{display:none!important}.ambient{position:fixed;pointer-events:none;filter:blur(100px);opacity:.17;border-radius:50%;z-index:0}.ambient-a{width:430px;height:430px;background:#14b8a6;top:-240px;right:-90px}.ambient-b{width:380px;height:380px;background:#2878ff;bottom:-260px;left:-110px}.eyebrow{color:var(--cyan);font:700 10px/1.5 Arial,sans-serif;letter-spacing:2.2px;margin:0 0 7px}.muted{color:var(--muted)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;z-index:1}.login-card{width:min(430px,100%);padding:45px 42px;background:linear-gradient(155deg,rgba(17,35,54,.96),rgba(10,22,36,.96));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:24px;text-align:center}.login-card h1{font-size:27px;margin:18px 0 4px}.login-card p{font-size:13px}.brand-mark{width:66px;height:66px;margin:auto;border-radius:21px;background:linear-gradient(145deg,rgba(39,215,196,.22),rgba(69,167,255,.12));border:1px solid rgba(39,215,196,.35);display:grid;place-items:center;box-shadow:0 0 45px rgba(39,215,196,.15)}.brand-mark svg{width:37px;fill:rgba(39,215,196,.08);stroke:var(--cyan);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.stack-form{display:grid;gap:16px;margin-top:28px;text-align:right}.stack-form label,.form-grid label{display:grid;gap:8px;color:#b9cadb;font-size:12px;font-weight:700}.stack-form input,.form-grid input{width:100%;border-radius:10px;border:1px solid var(--line);background:#081522;color:var(--text);padding:12px 13px;outline:none;transition:.2s}.stack-form input:focus,.form-grid input:focus{border-color:rgba(39,215,196,.75);box-shadow:0 0 0 3px rgba(39,215,196,.08)}.button{border:0;border-radius:10px;padding:12px 17px;text-align:center;text-decoration:none;cursor:pointer;font-weight:800;font-size:12px;transition:.2s}.button:hover{transform:translateY(-1px)}.primary{color:#041919;background:linear-gradient(135deg,var(--cyan),#49e7bd);box-shadow:0 8px 22px rgba(39,215,196,.17)}.secondary{color:var(--text);border:1px solid var(--line);background:var(--surface-2);display:block}.form-error{color:var(--danger);min-height:18px;margin:0!important;font-size:12px!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr);position:relative;z-index:1}.sidebar{position:fixed;right:0;top:0;bottom:0;width:238px;background:rgba(7,17,29,.92);border-left:1px solid var(--line);backdrop-filter:blur(24px);padding:25px 17px;display:flex;flex-direction:column;z-index:3}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 27px}.brand-mark.small{width:43px;height:43px;margin:0;border-radius:14px}.brand-mark.small svg{width:25px}.brand div:last-child{display:grid;gap:3px}.brand strong{font-size:14px}.brand span{font:600 9px Arial;color:var(--muted);letter-spacing:.8px}.sidebar nav{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:11px;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:11px 13px;cursor:pointer;text-align:right;font-size:12px}.nav-item svg,.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-item:first-child svg{fill:currentColor;stroke:none}.nav-item:hover{color:var(--text);background:rgba(255,255,255,.035)}.nav-item.active{color:#aef9e9;background:linear-gradient(90deg,rgba(39,215,196,.14),rgba(39,215,196,.03));box-shadow:inset -2px 0 var(--cyan)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:19px 4px 0;display:flex;align-items:center;gap:8px}.admin-chip{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.admin-chip>div{display:grid;min-width:0}.admin-chip strong{font-size:11px;overflow:hidden;text-overflow:ellipsis}.admin-chip span:not(.avatar){font-size:9px;color:var(--muted)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#18334b;color:var(--cyan);font:bold 11px Arial}.icon-button{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:7px;border-radius:8px}.icon-button:hover{color:var(--danger);background:rgba(255,102,128,.08)}
.content{grid-column:2;padding:31px 35px 48px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.topbar h1{font-size:24px;margin:0}.live-pill{border:1px solid var(--line);background:rgba(10,24,38,.7);border-radius:20px;padding:8px 12px;color:var(--muted);font-size:10px;display:flex;gap:8px;align-items:center}.live-pill span{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(39,215,196,.1),0 0 12px var(--cyan);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.45}}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.stat-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:17px;min-height:126px;padding:23px;background:linear-gradient(145deg,rgba(19,38,58,.82),rgba(12,26,42,.82));border:1px solid var(--line);border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.11)}.stat-card.accent:after{content:"";position:absolute;inset:auto -30px -85px auto;width:170px;height:170px;background:var(--cyan);filter:blur(70px);opacity:.08}.stat-icon{width:47px;height:47px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;background:rgba(69,167,255,.09);color:var(--blue);border:1px solid rgba(69,167,255,.14)}.stat-icon.users{background:rgba(39,215,196,.09);color:var(--cyan);border-color:rgba(39,215,196,.14)}.stat-icon.gateway{color:#a48aff;background:rgba(164,138,255,.08)}.stat-icon svg{width:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.stat-card>div:last-child{display:grid;gap:3px}.stat-card span{font-size:11px;color:var(--muted)}.stat-card strong{font:700 28px/1.2 Arial,sans-serif}.stat-card small{font-size:9px;color:#647b92}.status-text{font-family:system-fa!important;font-size:17px!important}.status-text.online{color:var(--cyan)}.status-text.degraded{color:var(--warning)}.status-text.offline{color:var(--danger)}
.gateway-list{display:grid;gap:9px;margin:15px 0}.gateway-row{display:flex;align-items:center;justify-content:space-between;background:rgba(14,29,46,.6);border:1px solid var(--line);padding:11px 15px;border-radius:10px;font-size:11px}.gateway-row>div{display:flex;align-items:center;gap:9px}.dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}.dot.online{background:var(--cyan);box-shadow:0 0 10px rgba(39,215,196,.7)}.dot.degraded{background:var(--warning);box-shadow:0 0 10px rgba(244,189,98,.55)}.gateway-row span{color:var(--muted)}
.panel{background:linear-gradient(145deg,rgba(16,32,50,.88),rgba(10,23,38,.88));border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.connections-panel{margin-top:15px;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-header h2{font-size:14px;margin:0 0 5px}.panel-header p{font-size:10px;color:var(--muted);margin:0}.search-box{width:240px;height:36px;display:flex;direction:rtl;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:#091726;padding:0 10px}.search-box:focus-within{border-color:rgba(39,215,196,.55)}.search-box svg{width:15px;fill:none;stroke:var(--muted);stroke-width:1.8}.search-box input{border:0;outline:0;background:transparent;color:var(--text);width:100%;font-size:10px}.table-wrap{overflow:auto;min-height:240px}table{border-collapse:collapse;width:100%;min-width:850px;text-align:right}th{padding:12px 17px;color:#6f879f;background:rgba(5,15,25,.33);font-size:9px;font-weight:700}td{padding:15px 17px;border-top:1px solid rgba(145,174,203,.085);font-size:10px;color:#c5d5e5;vertical-align:middle}tbody tr:hover{background:rgba(39,215,196,.025)}.user-cell{display:flex;align-items:center;gap:9px}.user-cell .avatar{width:29px;height:29px}.user-cell strong{font-size:10px}.endpoint{direction:ltr;text-align:right;font:10px Arial}.tag{display:inline-block;border-radius:6px;padding:5px 7px;color:#8fdbea;background:rgba(69,167,255,.08);border:1px solid rgba(69,167,255,.11);white-space:nowrap}.tag.nat{color:#b4a5ff;background:rgba(164,138,255,.08)}.cipher{max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:right;color:#7f96ad}.empty-state{text-align:center;padding:49px 20px;color:var(--muted)}.empty-state h3{color:#cad9e7;font-size:13px;margin:15px 0 5px}.empty-state p{font-size:10px}.empty-radar{width:42px;height:42px;border:1px solid rgba(39,215,196,.35);border-radius:50%;margin:auto;display:grid;place-items:center;box-shadow:0 0 0 9px rgba(39,215,196,.03)}.empty-radar span{width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px}.settings-card{overflow:hidden}.settings-card .panel-header{padding:22px 25px}.revision-badge{font:700 9px Arial;color:var(--cyan);padding:6px 8px;background:rgba(39,215,196,.07);border:1px solid rgba(39,215,196,.15);border-radius:7px}.form-grid{padding:24px 25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .span-2{grid-column:span 2}.form-grid small{font-size:9px;color:#647c93;font-weight:400}.settings-card hr{border:0;border-top:1px solid var(--line);margin:0}.section-heading{padding:21px 25px 0}.section-heading h3{font-size:13px;margin:0 0 5px}.section-heading p{font-size:9px;color:#bd8d97;margin:0}.form-actions{display:flex;justify-content:flex-end;padding:0 25px 24px}.form-message{min-height:18px;margin:0 25px 8px;font-size:10px;color:var(--cyan)}.form-message.error{color:var(--danger)}.settings-side{display:grid;gap:16px;align-content:start}.help-card{padding:25px;height:max-content}.help-icon{width:43px;height:43px;border-radius:12px;background:rgba(39,215,196,.08);color:var(--cyan);display:grid;place-items:center;flex:0 0 auto}.help-icon svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.help-card h3{font-size:14px;margin:17px 0 8px}.help-card>p{color:var(--muted);font-size:10px;line-height:2;margin:0 0 17px}.notice{display:grid;gap:5px;margin-top:20px;border-right:2px solid var(--cyan);background:rgba(39,215,196,.04);padding:11px}.notice strong{font-size:10px}.notice span{font-size:9px;line-height:1.8;color:var(--muted)}
.radius-test-card{padding:22px}.radius-test-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.radius-test-heading h3{font-size:13px;margin:0 0 5px}.radius-test-heading p{font-size:9px;line-height:1.7;color:var(--muted);margin:0}.radius-test-form{display:grid;gap:13px}.radius-test-form label{display:grid;gap:7px;color:#b9cadb;font-size:10px;font-weight:700}.radius-test-form input{width:100%;border-radius:9px;border:1px solid var(--line);background:#081522;color:var(--text);padding:10px 11px;outline:none;transition:.2s}.radius-test-form input:focus{border-color:rgba(39,215,196,.75);box-shadow:0 0 0 3px rgba(39,215,196,.08)}.radius-test-form .button{margin-top:2px}.button:disabled{cursor:wait;opacity:.58;transform:none}.test-hint{font-size:8px;line-height:1.9;color:#647c93;margin:14px 0 0}.radius-test-result{margin-top:17px;padding:13px;border:1px solid var(--line);border-radius:10px;background:rgba(5,15,25,.34)}.radius-test-result.success{border-color:rgba(39,215,196,.24)}.radius-test-result.failure{border-color:rgba(255,102,128,.24)}.radius-test-summary{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.radius-test-summary strong{font-size:10px}.radius-test-summary small{grid-column:2;color:var(--muted);font-size:8px;line-height:1.8;margin-top:3px;overflow-wrap:anywhere}.test-status{width:8px;height:8px;border-radius:50%;background:var(--muted);grid-row:span 2}.test-status.success{background:var(--cyan);box-shadow:0 0 9px rgba(39,215,196,.7)}.test-status.failure{background:var(--danger);box-shadow:0 0 9px rgba(255,102,128,.5)}.radius-test-stages{display:grid;margin-top:11px}.test-stage{display:flex;gap:8px;padding:9px 0;border-top:1px solid rgba(145,174,203,.09)}.stage-mark{width:19px;height:19px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;font:bold 10px Arial;color:var(--cyan);background:rgba(39,215,196,.08)}.test-stage.failure .stage-mark{color:var(--danger);background:rgba(255,102,128,.08)}.test-stage>div{display:grid;gap:3px;min-width:0}.test-stage strong{font-size:9px}.test-stage small{font-size:8px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}.radius-test-policy{display:flex;flex-wrap:wrap;gap:5px}.radius-test-policy span{font-size:7px;color:#9ee9dc;background:rgba(39,215,196,.06);border:1px solid rgba(39,215,196,.12);border-radius:6px;padding:5px 6px}.toast{position:fixed;left:25px;bottom:25px;z-index:10;opacity:0;transform:translateY(12px);pointer-events:none;background:#122b35;color:#b7f6e9;border:1px solid rgba(39,215,196,.25);border-radius:9px;padding:11px 15px;font-size:10px;transition:.25s}.toast.show{opacity:1;transform:none}
@media(max-width:980px){.stats-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.help-card{order:-1}.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{width:76px;padding:20px 10px}.brand{justify-content:center;padding:0 0 24px}.brand>div:last-child,.nav-item:not(.active)::after,.nav-item{font-size:0}.nav-item{justify-content:center;padding:13px}.nav-item svg{width:20px}.sidebar-foot{justify-content:center}.admin-chip>div,.icon-button{display:none}.content{padding:25px 20px}.search-box{width:200px}}
@media(max-width:650px){.app-shell{display:block}.sidebar{position:fixed;top:auto;left:0;right:0;bottom:0;width:auto;height:65px;flex-direction:row;padding:8px 14px;border-left:0;border-top:1px solid var(--line)}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;width:100%;justify-content:center;gap:10px}.nav-item{font-size:10px!important;padding:9px 18px}.content{padding:23px 14px 85px}.topbar{align-items:flex-start}.topbar h1{font-size:20px}.live-pill{font-size:0;padding:9px}.panel-header{align-items:flex-start;flex-direction:column}.search-box{width:100%}.settings-grid{display:block}.help-card{margin-bottom:14px}.form-grid{grid-template-columns:1fr;padding:20px}.form-grid .span-2{grid-column:auto}}

/* ---- Server registry («سرورها») ---- */
.servers-grid {
  display: grid;
  gap: 16px;
}
.server-form-card {
  overflow: hidden;
}
.server-form-actions {
  gap: 10px;
}
.ltr-input {
  direction: ltr;
  text-align: left;
  font-family: Arial, sans-serif;
}
.form-grid .check-label {
  display: flex;
  align-items: center;
  align-self: end;
  gap: 9px;
  padding: 12px 0;
  cursor: pointer;
}
.check-label input {
  width: 16px;
  height: 16px;
  padding: 0;
  flex: 0 0 auto;
  accent-color: var(--cyan);
  cursor: pointer;
}
.check-label span {
  font-size: 12px;
  color: #b9cadb;
}
.servers-table table {
  min-width: 640px;
}
.tag.on {
  color: #9ee9dc;
  background: rgba(39, 215, 196, .08);
  border-color: rgba(39, 215, 196, .16);
}
.tag.off {
  color: #ffaab9;
  background: rgba(255, 102, 128, .08);
  border-color: rgba(255, 102, 128, .16);
}
.row-actions {
  display: flex;
  gap: 7px;
}
.mini-button {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
  color: var(--text);
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  padding: 7px 11px;
  cursor: pointer;
  white-space: nowrap;
  transition: .2s;
}
.mini-button:hover {
  border-color: rgba(39, 215, 196, .5);
  color: #aef9e9;
}
.mini-button.danger:hover {
  border-color: rgba(255, 102, 128, .5);
  color: var(--danger);
  background: rgba(255, 102, 128, .06);
}

/* ---- HTTPS warning tag in the server list ---- */
.server-url {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  direction: ltr;
}
.server-url .tag {
  font-family: system-fa, Tahoma, Arial, sans-serif;
  font-size: 9px;
  padding: 4px 6px;
}
.tag.warn {
  color: #ffd79a;
  background: rgba(244, 189, 98, .1);
  border-color: rgba(244, 189, 98, .22);
}
