
/* EYECO_VAZIRMATN_GLOBAL_V1 */
@font-face {
  font-family: "Vazirmatn";
  src: url("/fonts/Vazirmatn.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

html,
body,
button,
input,
select,
textarea,
table,
th,
td,
label,
a,
span,
p,
div,
h1,
h2,
h3,
h4,
h5,
h6,
.mono {
  font-family: "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif !important;
}

body {
  font-feature-settings: "kern" 1;
  text-rendering: optimizeLegibility;
}

.ltr,
.mono {
  font-variant-numeric: tabular-nums;
}
/* /EYECO_VAZIRMATN_GLOBAL_V1 */

:root {
  --ink:#162033;--muted:#697386;--line:#d9e0ea;--soft:#f4f7fb;--card:#fff;
  --blue:#3157d5;--blue2:#e9eeff;--danger:#c9364e;--success:#20a86b;
  --shadow:0 14px 38px rgba(22,32,51,.10);
  font-family:"Vazirmatn",Tahoma,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--soft)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--soft)}body{font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.ltr{direction:ltr;text-align:left;font-variant-numeric:tabular-nums}.mono{font-family:Consolas,"Courier New",monospace}
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 85% 15%,#e7edff 0,transparent 33%),linear-gradient(145deg,#f6f8fc,#eef2f8)}
.login-card{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 24px 70px rgba(23,34,58,.14);text-align:center}.login-mark{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#7995f5,#3157d5);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:900;margin:0 auto 18px}.login-card h1{margin:0 0 8px;font-size:23px}.login-card>p{color:var(--muted);margin:0 0 25px}.stack-form{display:grid;gap:14px;text-align:right}.stack-form label{display:grid;gap:7px;font-weight:700;font-size:12px}.stack-form input{height:43px;border:1px solid var(--line);border-radius:10px;padding:0 12px;outline:0}.stack-form input:focus{border-color:#7891eb;box-shadow:0 0 0 3px #e7ecff}.form-error{background:#fff2f4;border:1px solid #f2bdc6;color:#a92f43;border-radius:9px;padding:10px;line-height:1.7}
.app{min-height:100vh}.topbar{min-height:72px;background:#17223a;color:#fff;display:flex;align-items:center;gap:14px;padding:10px 22px;position:sticky;top:0;z-index:50;box-shadow:0 3px 16px rgba(15,23,42,.2)}.brand{display:flex;align-items:center;gap:10px;min-width:205px;color:#fff;background:transparent;border:0;text-align:right;padding:0}.brandmark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#88a2ff,#4668df);display:grid;place-items:center;font-size:19px;font-weight:900}.brand b{display:block;font-size:15px}.brand small{display:block;color:#bfc9dd;margin-top:3px}.context-selectors{display:flex;gap:7px}.context-selectors select{height:40px;max-width:185px;border:1px solid #3b4963;border-radius:9px;background:#202d47;color:#fff;padding:0 10px;outline:0}.searchbox{position:relative;flex:1;max-width:560px}.searchbox>span{position:absolute;right:13px;top:7px;font-size:20px;color:#bdc8dc}.searchbox input{width:100%;height:40px;border:1px solid #3a4760;border-radius:10px;background:#202d47;color:#fff;padding:0 38px 0 12px;outline:0}.searchbox input:focus{border-color:#8da6ff;box-shadow:0 0 0 3px rgba(111,139,255,.18)}.search-results{position:absolute;top:46px;right:0;left:0;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:410px;overflow:auto;padding:6px;z-index:90}.search-item{display:flex;justify-content:space-between;gap:12px;padding:10px;border-radius:8px;cursor:pointer}.search-item:hover{background:#f0f3fa}.search-item small{color:var(--muted);direction:ltr}.top-actions{display:flex;gap:7px;margin-right:auto}.iconbtn,.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;min-height:38px;padding:0 13px}.iconbtn{display:inline-grid;place-items:center;text-decoration:none}.topbar .iconbtn{background:#202d47;color:#fff;border-color:#3a4760;width:40px;padding:0;font-size:17px}.btn:hover,.iconbtn:hover{filter:brightness(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger{color:var(--danger);border-color:#f2bdc6;background:#fff8f9}.btn.wide{width:100%}.btn.sm{min-height:31px;padding:0 10px;font-size:11px}.live-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid #3a4760;background:#202d47;color:#cbd5e8;border-radius:9px;height:38px;padding:0 10px;font-size:10px;white-space:nowrap}.live-badge i{width:8px;height:8px;border-radius:50%;background:#20a86b}.live-badge.offline i{background:#e04455}
.page{max-width:1680px;margin:0 auto;padding:22px 24px 60px}.headline{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:17px}.crumb{color:var(--muted);margin-bottom:8px}.headline h2{font-size:22px;margin:0 0 5px}.subtitle{color:var(--muted);line-height:1.8}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 2px 7px rgba(22,32,51,.03)}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-size:22px;font-weight:900;margin-top:7px}.stat .foot{font-size:11px;color:var(--muted);margin-top:4px}.progress{height:6px;border-radius:4px;background:#eef1f6;overflow:hidden;margin-top:9px}.progress i{display:block;height:100%;background:#607be2;border-radius:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px rgba(22,32,51,.04);overflow:hidden}.toolbar{min-height:60px;padding:10px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.toolgroup{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mode-note{color:var(--muted);font-size:12px}.segmented{display:flex;border:1px solid var(--line);border-radius:9px;overflow:auto;max-width:100%;background:#fff}.segmented button{border:0;border-left:1px solid var(--line);background:#fff;min-width:45px;height:34px;color:#4b5568}.segmented button:last-child{border-left:0}.segmented button.active{background:var(--blue2);color:var(--blue);font-weight:900}.paint-active{background:#fff7e8!important;border-color:#e8b14b!important;color:#8a5900!important}.legend{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:11px;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.used{background:#3157d5}.dot.free{background:#dce2eb}.dot.record{background:#e05a6c}
.company-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.company-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(22,32,51,.05)}.company-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}.company-card h3{margin:0;font-size:17px}.company-card p{margin:5px 0 0;color:var(--muted)}.space-card{display:block;width:100%;border:1px solid #e2e6ee;border-radius:11px;background:#f9fafc;padding:12px;margin-top:8px;text-align:right;color:var(--ink);position:relative;overflow:hidden}.space-card:before{content:"";position:absolute;right:0;top:0;bottom:0;width:5px;background:var(--space-color)}.space-card:hover{border-color:#8da4ed;transform:translateY(-1px)}.space-card b{display:block;margin-bottom:5px}.space-card small{color:var(--muted);direction:ltr;display:block;text-align:right}.empty-state{padding:55px 20px;text-align:center;color:var(--muted)}
.map-wrap,.ip-wrap{padding:14px;overflow:auto}.visual-map{min-width:1060px;direction:ltr}.visual-row{display:grid;grid-template-columns:38px repeat(16,minmax(58px,1fr));gap:4px;direction:ltr;margin-bottom:7px}.axis-row{margin-bottom:3px}.axis{height:25px;display:grid;place-items:center;color:#7b8596;font-size:10px;font-weight:700}.row-axis{height:64px;background:#f3f5f9;border-radius:6px;padding:4px;text-align:center}.subnet-tile{height:64px;border:1px solid #d8dee8;border-radius:7px;background:#f8fafc;padding:5px;text-align:left;direction:ltr;position:relative;overflow:hidden;color:#202a3c;transition:.12s}.subnet-tile:hover{transform:translateY(-1px);border-color:#6f89e8;box-shadow:0 4px 10px rgba(49,87,213,.13);z-index:3}.subnet-tile .octet{font-size:15px;font-weight:900;position:relative;z-index:2}.subnet-tile .cidr{font-size:9px;color:#536078;margin-top:2px;white-space:nowrap;position:relative;z-index:2}.subnet-tile .count{font-size:9px;color:#536078;position:absolute;left:5px;bottom:5px;z-index:2}.subnet-tile .fill{position:absolute;inset:0;background:var(--tile-color);opacity:.20}.subnet-tile .stripe{position:absolute;right:0;left:0;bottom:0;height:8px;background:var(--stripe);border-top:1px solid rgba(0,0,0,.05)}.band-stack{display:grid;grid-template-columns:38px repeat(16,minmax(58px,1fr));grid-auto-rows:18px;gap:3px 4px;direction:ltr;margin:2px 0 5px;min-height:102px}.band-guide{grid-column:2/18;border-bottom:1px dashed #e6eaf1;pointer-events:none}.range-band{border:0;border-radius:5px;padding:0 7px;min-width:0;color:#fff;font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 -1px 0 rgba(0,0,0,.14),0 1px 3px rgba(15,23,42,.12);text-align:center;direction:rtl;z-index:2}.range-band:hover{filter:brightness(.94);z-index:4;box-shadow:0 2px 7px rgba(15,23,42,.22)}.range-band small{font-weight:400;opacity:.9;margin-right:5px;direction:ltr}.sheet-banner{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px;box-shadow:0 3px 12px rgba(22,32,51,.04)}.sheet-color{height:8px;background:var(--sheet-color,#dfe5ed)}.sheet-main{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 17px}.sheet-title{display:flex;align-items:center;gap:12px}.sheet-title h2{margin:0;font-size:20px}.sheet-title p{margin:5px 0 0;color:var(--muted)}.back{border:0;background:#eef2ff;color:#3755be;border-radius:8px;height:36px;padding:0 12px}.sheet-nav{display:flex;gap:7px;align-items:center}.sheet-nav select{height:36px;border:1px solid var(--line);border-radius:8px;direction:ltr}.util{display:flex;gap:13px;align-items:center}.ring{--p:0;width:50px;height:50px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--p)*1%),#e8ecf2 0);display:grid;place-items:center}.ring:after{content:attr(data-value);width:37px;height:37px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:9px;font-weight:900}.ip-map .visual-row{grid-template-columns:38px repeat(16,minmax(55px,1fr))}.ip-map .band-stack{grid-template-columns:38px repeat(16,minmax(55px,1fr))}.ip-cell{height:62px;border:1px solid #d8dee8;border-radius:7px;background:#f8fafc;position:relative;padding:5px;text-align:left;overflow:visible;color:#202a3c;transition:.12s}.ip-cell:hover{border-color:#6f89e8;box-shadow:0 3px 9px rgba(49,87,213,.13);z-index:6}.ip-cell .last{font-size:14px;font-weight:900;position:relative;z-index:2}.ip-cell .host-name{font-size:9px;line-height:1.25;color:#42506a;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;z-index:2}.ip-cell .fill{position:absolute;inset:0;background:var(--cell-color);opacity:.20;border-radius:6px;pointer-events:none}.ip-cell.recorded{box-shadow:inset 0 -4px 0 var(--host-color,#3157d5)}.ip-cell.system{background:#edf0f5;color:#737d8f}.ip-cell.selected{outline:2px solid #e9a72f}.ping-dot{position:absolute;top:-5px;right:-5px;width:13px;height:13px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(15,23,42,.28);z-index:8;padding:0;min-height:0}.ping-dot.online{background:#20a86b}.ping-dot.offline{background:#e04455}.ping-dot.scanning{background:#e5a329;animation:pulse 1s infinite}.ping-dot.unknown{background:#8c96a8}.ping-dot.system{background:#bbc2cf;pointer-events:none}@keyframes pulse{50%{opacity:.45}}
.lower-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.75fr);gap:14px;margin-top:14px}.section-title{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.section-title h3{margin:0;font-size:14px}.range-list{max-height:390px;overflow:auto}.range-row{display:grid;grid-template-columns:18px 1fr 120px 95px 78px;gap:10px;align-items:center;padding:11px 15px;border-bottom:1px solid #edf0f5;cursor:pointer}.range-row:hover{background:#f8f9fc}.swatch{width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.1)}.range-name{font-weight:800}.range-row small{color:var(--muted)}.status-pill{display:inline-flex;justify-content:center;padding:4px 7px;border-radius:20px;background:#eef2ff;color:#405bb6;font-size:10px}.summary-list{padding:6px 12px 12px}.summary-item{display:flex;justify-content:space-between;gap:10px;padding:10px 4px;border-bottom:1px solid #edf0f5}.summary-item:last-child{border-bottom:0}
dialog{border:0;padding:0;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.25);width:min(720px,calc(100vw - 28px));color:var(--ink)}dialog.wide-dialog{width:min(980px,calc(100vw - 28px))}dialog::backdrop{background:rgba(15,23,42,.46);backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:17px}.modal-head p{margin:6px 0 0;color:var(--muted)}.close{border:0;background:#f1f3f7;border-radius:8px;width:32px;height:32px;font-size:18px}.modal-body{padding:18px 20px;max-height:72vh;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label,.field>span{font-size:11px;color:#4c586e;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px;outline:0;color:var(--ink)}.field input,.field select{height:39px}.field input[type=color]{padding:3px}.field textarea{min-height:78px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#718be8;box-shadow:0 0 0 3px #e8edff}.field small{color:var(--muted)}.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:13px 20px;border-top:1px solid var(--line);background:#fafbfc}.modal-foot.split{display:grid;grid-template-columns:auto 1fr auto auto}.ports-fieldset{border:1px solid var(--line);border-radius:10px;padding:12px}.ports-fieldset legend{font-weight:800;padding:0 7px}.ports-fieldset p{margin:0 0 10px;color:var(--muted);font-size:11px}.port-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.port-item{display:grid;gap:5px}.port-item span{font-weight:800}.port-item small{color:var(--muted)}.port-item input{direction:ltr}.users-layout{display:grid;grid-template-columns:310px 1fr;gap:18px}.card-form{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:11px;align-self:start}.card-form h4{margin:0 0 3px}.check-field{display:flex;gap:8px;align-items:center}.company-access{border:1px solid var(--line);border-radius:9px;padding:10px}.company-access legend{padding:0 5px;color:var(--muted)}.company-access label{display:flex;align-items:center;gap:7px;padding:5px}.table-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}.user-row{display:grid;grid-template-columns:1fr 100px 90px;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #edf0f5}.user-row:last-child{border-bottom:0}.user-row small{display:block;color:var(--muted);margin-top:4px}.tool-settings{display:grid;gap:10px}.tool-setting{display:grid;grid-template-columns:80px 1fr 130px 50px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px}.tool-setting input{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 9px}.tool-setting input[type=color]{padding:3px}.tool-menu{position:fixed;z-index:120;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.22);padding:9px;direction:ltr}.tool-menu-title{font-size:10px;color:var(--muted);margin:0 2px 7px}.tool-buttons{display:flex;gap:7px}.tool-square{width:55px;height:45px;border:0;border-radius:9px;color:#fff;font-size:10px;font-weight:900;box-shadow:inset 0 -2px 0 rgba(0,0,0,.16)}.tool-square small{display:block;font-size:8px;margin-top:3px;opacity:.9}.toast{position:fixed;bottom:20px;left:20px;background:#162033;color:#fff;border-radius:10px;padding:11px 15px;box-shadow:var(--shadow);z-index:150;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;max-width:420px}.toast.show{opacity:1;transform:none}
.entity-actions,.space-actions,.row-actions,.inline-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.space-card-wrap{border-bottom:1px solid #edf0f5;padding-bottom:9px;margin-bottom:8px}.space-actions{justify-content:flex-end;margin-top:6px}.subnet-tile .tile-name{position:relative;z-index:2;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.range-row{grid-template-columns:18px 1fr 100px 95px minmax(180px,auto);cursor:default}.range-row .row-actions{justify-content:flex-end}.user-row{grid-template-columns:1fr 100px 150px}.view-controls{margin-bottom:14px}.detail-stack{display:grid;gap:14px}.detail-block .section-title>div{display:flex;align-items:center;gap:12px}.subnet-map{width:max-content;min-width:100%;display:grid;gap:5px}.subnet-map-row{display:grid;grid-template-columns:52px repeat(256,7px);gap:1px;align-items:stretch;min-height:37px}.subnet-map-row>strong{grid-column:1;display:grid;place-items:center;background:#17223a;color:#fff;border-radius:5px;position:sticky;left:0;z-index:5}.map-cell{min-width:0;border:1px solid #d5dbe5;border-radius:4px;background:var(--range-color,#f6f8fb);padding:2px 1px;overflow:hidden;color:#263147;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:7px;line-height:1.05}.map-cell:hover{border-color:#3157d5;box-shadow:inset 0 0 0 1px #3157d5;z-index:3}.map-cell.named{background:var(--range-color);color:#fff;border-color:var(--range-color)}.map-cell.recorded{background:#dfe7ff;border-color:#7891eb}.map-cell small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;margin-top:2px}.map-ip-cell{min-height:50px}.map-ip-cell b{font-size:7px}.inline-actions{margin-top:2px}.inline-actions .check-field{font-size:10px;font-weight:400}
.subnet-map-row{grid-template-columns:52px repeat(256,14px)}
.root-table-container{padding:0}.root-vertical-wrap{max-height:780px;overflow:auto;direction:ltr}.root-range-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0;table-layout:fixed;direction:ltr}.root-range-table th{position:sticky;top:0;z-index:12;height:43px;background:#17223a;color:#fff;border-right:1px solid #34415b;direction:rtl}.root-range-table th:first-child{left:0;z-index:14;width:285px}.root-range-table td{height:48px;border-right:1px solid #e1e6ee;border-bottom:1px solid #e8ecf2;padding:0;background:#fff}.root-network-cell{position:sticky;left:0;z-index:8;width:285px}.root-row-open{width:100%;height:100%;border:0;background:color-mix(in srgb,var(--range-color) 18%,#fff);display:grid;grid-template-columns:42px 1fr;gap:9px;align-items:center;padding:4px 10px;text-align:left;color:var(--ink);direction:ltr}.root-row-open:hover{box-shadow:inset 4px 0 0 var(--blue);background:color-mix(in srgb,var(--range-color) 28%,#fff)}.root-row-open>span:last-child{min-width:0}.root-row-open b,.root-row-open small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-row-open small{margin-top:3px;color:var(--muted);direction:rtl;text-align:left}.root-octet{font-size:17px;font-weight:900;color:#3157d5}.root-prefix-span{vertical-align:middle;background:color-mix(in srgb,var(--range-color) 42%,#fff)!important;padding:4px!important}.root-prefix-open{width:100%;height:100%;min-height:38px;border:1px solid transparent;border-radius:7px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#344057}.root-prefix-open:hover{border-color:#3157d5;box-shadow:0 0 0 2px rgba(49,87,213,.12)}.root-prefix-open.named{background:var(--range-color);color:#fff}.root-prefix-open b{font-size:10px}.root-prefix-open span,.root-prefix-open small{font-size:9px}.root-prefix-open span{direction:ltr}.root-prefix-open small{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-item{width:100%;border:0;background:#fff;text-align:right;align-items:center}.search-item span{display:flex;align-items:center;gap:7px}.search-item em{font-style:normal;font-size:9px;color:#4964c7;background:#edf1ff;border-radius:20px;padding:3px 7px}.search-loading{padding:16px;text-align:center;color:var(--muted)}
.band-guide{position:relative}.band-guide:before{content:attr(data-label);position:absolute;left:-36px;top:1px;width:30px;text-align:center;color:#7b8596;font-style:normal;font-size:9px;font-weight:800}.compact-grid{gap:9px}.device-port-list{display:grid;gap:7px;margin-bottom:9px}.device-port-row{display:grid;grid-template-columns:1fr 1.35fr 105px 75px 100px auto;gap:6px;align-items:center}.device-port-row input,.device-port-row select{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 7px;min-width:0}.space-access-group{border-top:1px solid #edf0f5;padding:8px 0}.space-access-group:first-child{border-top:0}.space-access-group>b{display:block;margin-bottom:4px}.company-access small{color:var(--muted)}
.vertical-table-wrap{max-height:780px;overflow:auto;border:2px solid #bec8d7;border-radius:10px;direction:ltr;background:#fff}.vertical-subnet-table{width:100%;border-collapse:separate;border-spacing:0;direction:ltr;table-layout:fixed}.vertical-subnet-table th{position:sticky;top:0;z-index:10;background:#17223a;color:#fff;height:44px;border-right:1px solid #43506a;border-bottom:2px solid #0e1729;font-size:11px;direction:rtl}.vertical-subnet-table th:first-child{left:0;z-index:12;width:260px}.vertical-subnet-table th:nth-child(2){width:110px}.vertical-subnet-table td{height:40px;border-right:1px solid #cfd7e3;border-bottom:1px solid #d8dfe9;padding:0;background:#fff}.vertical-subnet-table tbody tr:nth-child(even)>td:not(.subnet-span){background:#f8fafc}.vertical-subnet-table tr:hover>td:not(.subnet-span){background:#edf2fb}.vertical-subnet-table tr.recorded>td:first-child{box-shadow:inset 4px 0 0 var(--blue)}.vertical-subnet-table tr.system>td:first-child{background:#eef1f5}.vertical-subnet-table td:first-child{position:sticky;left:0;z-index:4;border-right:2px solid #aeb9ca}.ip-line{width:100%;height:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 10px;text-align:left;direction:ltr;color:var(--ink)}.ip-line b{direction:rtl;font-size:11px;color:#3157d5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-status{display:flex;align-items:center;gap:6px;padding:0 9px;white-space:nowrap;direction:rtl}.table-status i,.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.table-status i.online,.status-dot.online{background:#20a86b}.table-status i.offline{background:#e04455}.table-status i.unknown,.status-dot.unknown{background:#aab2c0}.subnet-span{background:color-mix(in srgb,var(--range-color) 55%,#fff)!important;vertical-align:middle;padding:3px!important;border-right:2px solid #b9c3d1!important;border-bottom:2px solid #b9c3d1!important}.subnet-span.prefix-30{background:color-mix(in srgb,var(--range-color) 30%,#edf8f3)!important}.subnet-span.prefix-29{background:color-mix(in srgb,var(--range-color) 30%,#eef2ff)!important}.subnet-span.prefix-28{background:color-mix(in srgb,var(--range-color) 30%,#f5efff)!important}.subnet-span.prefix-27{background:color-mix(in srgb,var(--range-color) 30%,#fff6e7)!important}.subnet-span.prefix-26{background:color-mix(in srgb,var(--range-color) 30%,#edf8fb)!important}.subnet-span.prefix-25{background:color-mix(in srgb,var(--range-color) 30%,#f7f5ed)!important}.subnet-span.prefix-24{background:color-mix(in srgb,var(--range-color) 30%,#eaf0f8)!important}.table-prefix{width:100%;height:100%;min-height:30px;border:1px solid transparent;background:transparent;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#33405a}.table-prefix:hover{border-color:#3157d5;box-shadow:0 0 0 2px rgba(49,87,213,.12)}.table-prefix.named{background:var(--range-color);color:#fff}.table-prefix span{direction:ltr;font-size:10px;font-weight:800}.table-prefix b,.table-prefix small{font-size:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl}
.sheet-context{min-width:300px;max-width:470px;display:grid;grid-template-columns:7px 1fr;gap:10px;align-items:stretch;border:1px solid #dfe5ee;border-radius:10px;background:#f8fafc;padding:8px 10px}.sheet-context>i{display:block;border-radius:5px;background:var(--sheet-color)}.sheet-context span,.sheet-context b,.sheet-context small,.sheet-context em{display:block}.sheet-context span{color:var(--muted);font-size:9px}.sheet-context b{margin-top:2px}.sheet-context small{margin-top:2px;color:#526077}.sheet-context em{margin-top:3px;font-style:normal;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-load-more{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.table-load-more b,.table-load-more span{display:block}.table-load-more span{margin-top:5px;color:var(--muted)}
.subnet-selector{display:grid;grid-template-columns:repeat(8,minmax(150px,1fr));gap:8px;direction:ltr}.drill-tile{min-height:78px;border:1px solid #d8dee8;border-radius:9px;background:color-mix(in srgb,var(--range-color) 45%,#fff);padding:10px;text-align:left;display:flex;flex-direction:column;gap:5px;color:var(--ink)}.drill-tile:hover{border-color:#3157d5;transform:translateY(-1px)}.drill-tile span{direction:rtl;text-align:left;font-weight:700}.drill-tile small{color:var(--muted)}
.tree-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.tree-toolbar>div{display:flex;align-items:center;gap:8px}.tree-current{min-width:0;flex-wrap:wrap}.tree-current>small{color:var(--muted)}.tree-breadcrumbs{display:flex;align-items:center;gap:3px;overflow:auto;max-width:720px;direction:ltr}.tree-jump{border:0;background:#e9eeff;color:#3157d5;border-radius:6px;height:27px;padding:0 7px;white-space:nowrap;font-size:10px}.tree-scroll{width:100%;height:min(700px,68vh);overflow:scroll;padding:14px 18px 28px;direction:ltr;border:1px solid #e5eaf1;border-radius:10px;background:#fbfcfe;scrollbar-gutter:stable both-edges}.subnet-tree,.subnet-tree ul{list-style:none;margin:0;display:flex;justify-content:center;gap:14px;position:relative;width:max-content;min-width:max-content;direction:ltr}.subnet-tree{padding:0 32px 30px}.subnet-tree ul{padding:30px 0 0}.subnet-tree ul:before{content:"";position:absolute;top:13px;left:25%;right:25%;border-top:2px solid #cbd4e2}.subnet-tree li{display:flex;flex-direction:column;align-items:center;position:relative;min-width:150px}.subnet-tree li>ul>li:before{content:"";position:absolute;top:-17px;height:17px;border-left:2px solid #cbd4e2}.tree-node-wrap{display:flex;align-items:center;gap:4px}.tree-node{min-width:145px;border:1px solid #ccd5e2;border-radius:10px;background:color-mix(in srgb,var(--range-color) 48%,#fff);padding:8px;display:flex;flex-direction:column;gap:4px;color:var(--ink)}.tree-node.host-node{border-color:#7f95e6;background:#edf1ff}.tree-node:hover{border-color:#3157d5;box-shadow:0 4px 12px rgba(49,87,213,.12)}.tree-node small{color:#637087;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-edit-prefix{border:1px solid var(--line);border-radius:7px;background:#fff;width:28px;height:28px;color:#3157d5}.tree-note{text-align:center;margin-top:14px}
.quick-ip{display:flex;gap:7px}.quick-ip input,.map-select{height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px}.radio-register-panel{margin-bottom:14px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;overflow:visible}.radio-register-title{display:flex;align-items:center;gap:10px}.radio-register-title small{display:block;color:var(--muted);margin-top:5px}.radio-register-form{display:flex;align-items:center;gap:8px;direction:ltr;flex-wrap:wrap}.radio-register-form input,.radio-register-form select{height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px}.radio-register-form input{width:190px}.radio-register-form select{min-width:120px;direction:rtl}.radio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}.radio-ap-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 4px 16px rgba(22,32,51,.05)}.radio-ap-head{display:flex;justify-content:space-between;align-items:center;padding:14px;border-bottom:1px solid var(--line)}.radio-title{border:0;background:transparent;display:flex;gap:10px;align-items:center;text-align:right;color:var(--ink)}.radio-title h3{margin:0 0 4px}.radio-title p{margin:0;color:var(--muted)}.radio-icon{width:45px;height:45px;border-radius:12px;background:#e9eeff;color:#3157d5;display:grid;place-items:center;font-weight:900;direction:ltr}.radio-meta{display:flex;gap:15px;padding:10px 14px;background:#f8fafc;color:var(--muted);font-size:11px}.radio-children{display:grid;padding:8px}.radio-station{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center;border-bottom:1px solid #edf0f5;background:#fff;padding:7px;text-align:right;color:var(--ink)}.radio-list-main{border:0;background:transparent;text-align:right;color:var(--ink)}.radio-station:hover{background:#f7f9fc}.radio-station:last-child{border-bottom:0}.radio-station small{display:block;color:var(--muted);margin-top:3px}.radio-station>span{direction:ltr;color:#4c5a72}.compact-empty{padding:22px}.orphan-panel{margin-top:14px}.orphan-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.radio-tree-grid{display:grid;gap:16px}.radio-tree-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px rgba(22,32,51,.06);overflow:hidden}.radio-tree-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#f7f9ff)}.radio-tree-card-head h3{margin:0 0 4px}.radio-tree-card-head span{color:var(--muted)}.radio-tree-scroll{overflow:auto;padding:20px;direction:ltr}.radio-tree-canvas{width:max-content;min-width:100%;display:flex;flex-direction:column;align-items:center;padding:2px 28px 18px}.radio-ap-node{min-width:340px;max-width:430px;border:2px solid #6f88e5;border-radius:16px;background:linear-gradient(135deg,#f7f9ff,#e9eeff);box-shadow:0 8px 22px rgba(49,87,213,.13);display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:14px;text-align:left;color:var(--ink);direction:ltr}.radio-node-icon{width:42px;height:42px;border-radius:12px;background:#e8edff;color:#3157d5;display:grid;place-items:center;font-weight:900}.radio-node-icon.ap{width:50px;height:50px;background:#3157d5;color:#fff}.radio-ap-node b,.radio-ap-node small,.radio-ap-node em,.radio-station-main b,.radio-station-main small,.radio-station-main em{display:block}.radio-ap-node small,.radio-station-main small{color:var(--muted);margin-top:4px}.radio-ap-node em,.radio-station-main em{font-style:normal;color:#4964c7;margin-top:5px;font-size:10px;direction:rtl}.radio-ap-meta{text-align:right;color:#586680;font-size:10px;line-height:1.7;direction:ltr}.radio-tree-stem{width:2px;height:30px;background:#9eacd0}.radio-station-branches{position:relative;display:flex;align-items:stretch;justify-content:center;gap:22px;padding-top:30px}.radio-station-branches:before{content:"";position:absolute;top:0;left:calc(110px / 2);right:calc(110px / 2);height:2px;background:#9eacd0}.radio-branch{position:relative;width:250px;padding-top:16px}.radio-branch>i{position:absolute;top:0;left:50%;height:16px;border-left:2px solid #9eacd0}.radio-station-node{height:100%;border:1px solid #cfd7e4;border-top:4px solid #aab4c5;border-radius:13px;background:#fff;box-shadow:0 5px 15px rgba(20,31,52,.08);overflow:hidden}.radio-station-node.excellent{border-top-color:#20a86b}.radio-station-node.good{border-top-color:#e0a12b}.radio-station-node.weak{border-top-color:#d94b5b}.radio-station-main{width:100%;border:0;background:#fff;display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;padding:12px;text-align:left;color:var(--ink);direction:ltr}.radio-signal{font-size:10px;font-weight:800;color:#52617a;direction:ltr}.radio-node-tool{width:100%;height:31px;border:0;border-top:1px solid #edf0f5;background:#f7f9fc;color:#3157d5;font-size:10px;font-weight:800}.radio-node-tool:hover{background:#e9eeff}.radio-empty-branch{border:1px dashed #bfc9d9;border-radius:12px;margin-top:18px;padding:14px 20px;display:flex;align-items:center;gap:12px;color:var(--muted);direction:rtl}.radio-orphan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;padding:12px}
.topology-panel{overflow:hidden}.topology-toolbar{height:58px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.topology-toolbar>div:first-child{display:flex;align-items:center;gap:10px}.topology-toolbar span{color:var(--muted)}.topology-scroll{overflow:auto;background-color:#f7f9fc;background-image:radial-gradient(#cdd5e2 1px,transparent 1px);background-size:20px 20px}.topology-canvas{width:1800px;height:900px;position:relative;direction:ltr}.topology-svg{position:absolute;inset:0;z-index:1}.topology-link{stroke-width:4;cursor:pointer;pointer-events:stroke}.topology-link-group text{font-size:11px;fill:#40506a;text-anchor:middle;paint-order:stroke;stroke:#f7f9fc;stroke-width:5;stroke-linejoin:round;cursor:pointer}.topology-node{position:absolute;z-index:3;background:#fff;border:1px solid #cdd6e3;border-radius:12px;box-shadow:0 5px 15px rgba(24,35,56,.11);display:grid;grid-template-columns:24px 1fr auto;align-items:center;direction:ltr;overflow:hidden}.topology-node:hover,.topology-node.link-selected{border-color:#3157d5;box-shadow:0 0 0 3px rgba(49,87,213,.14),0 8px 18px rgba(24,35,56,.12)}.topology-node.dragging{opacity:.8;z-index:8}.node-drag{height:100%;border:0;border-right:1px solid #e1e6ee;background:#f4f6f9;color:#78849a;cursor:move}.node-main{border:0;background:#fff;display:flex;align-items:center;gap:8px;text-align:left;min-width:0;color:var(--ink)}.node-main>span:last-child{min-width:0}.node-main b,.node-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-main small{color:var(--muted);margin-top:3px}.node-icon{min-width:35px;height:35px;border-radius:9px;background:#e8edff;color:#3157d5;display:grid;place-items:center;font-size:10px;font-weight:900}.node-actions{display:grid;padding:3px;gap:2px}.node-actions button{width:23px;height:20px;border:0;border-radius:5px;background:#f0f3f8;color:#42516a}.node-actions button:hover{background:#dfe6f5}.backup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid #edf0f5}.backup-row:last-child{border-bottom:0}.backup-row small{display:block;color:var(--muted);margin-top:5px}.backup-row a{text-decoration:none;display:inline-flex;align-items:center}.compact-toolbar{min-height:50px;padding:0 0 12px;border-bottom:0}
.primary-nav{display:flex;gap:5px;padding:4px;border:1px solid #394760;background:#111b31;border-radius:11px;white-space:nowrap}.navbtn{height:32px;border:0;border-radius:7px;background:transparent;color:#bfc9dd;padding:0 11px;font-weight:700}.navbtn:hover,.navbtn.active{background:#3157d5;color:#fff}
.company-form-body{display:grid;gap:14px;background:#f4f7fb}.form-section{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.form-section>.form-grid,.form-section>.field,.form-section>.repeat-list{padding:15px}.section-title{min-width:0}.section-title h4{margin:0;font-size:14px}.section-title span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.section-title.split{display:flex}.large-notes{min-height:150px!important}.repeat-list{display:grid;gap:9px}.repeat-row{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:10px;display:grid;gap:8px}.contact-row{grid-template-columns:1.25fr 1fr 1fr 1fr 1.2fr auto}.connection-row{grid-template-columns:1.2fr 1fr 1fr .85fr 1fr auto}.repeat-row input,.repeat-row select{min-width:0;height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:0 8px}.repeat-row .check-field{grid-column:1/-1}
.connection-row .connection-username{grid-column:1/3}.connection-row .connection-methods{grid-column:3/-1}
.company-hero{background:linear-gradient(135deg,#17223a,#263d70);color:#fff;border-radius:18px;padding:22px;display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-bottom:15px;box-shadow:0 12px 30px rgba(22,32,51,.13)}.company-hero h2{margin:0 0 7px;font-size:24px}.company-hero p{margin:0;color:#d5dded;line-height:1.9;overflow-wrap:anywhere}.company-identity{display:flex;gap:14px;align-items:flex-start}.company-avatar{width:54px;height:54px;flex:0 0 54px;border-radius:15px;background:#fff;color:#3157d5;display:grid;place-items:center;font-size:20px;font-weight:900}.company-hero-actions{display:flex;justify-content:flex-end;align-items:flex-start;gap:8px;flex-wrap:wrap}.company-hero .btn{border-color:rgba(255,255,255,.28)}.company-quick-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.info-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;min-width:0}.info-card span{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.info-card b,.info-card a{display:block;color:var(--ink);text-decoration:none;overflow-wrap:anywhere;line-height:1.7}.company-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px}.company-section{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.company-section+.company-section{margin-top:14px}.company-section-body{padding:14px}.contact-card,.connection-card{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #e5eaf1;border-radius:10px;margin-bottom:8px;min-width:0}.contact-card:last-child,.connection-card:last-child{margin-bottom:0}.contact-icon{width:42px;height:42px;border-radius:11px;background:#e9eeff;color:#3157d5;display:grid;place-items:center;font-weight:900}.contact-card b,.contact-card small,.connection-card b,.connection-card small{display:block;overflow-wrap:anywhere}.contact-card small,.connection-card small{color:var(--muted);margin-top:4px}.connection-ip{direction:ltr;text-align:left;font-family:Consolas,monospace}.company-notes{white-space:pre-wrap;line-height:2;overflow-wrap:anywhere}.company-tree-badge{display:inline-flex;background:#e9eeff;color:#3157d5;border-radius:20px;padding:4px 8px;font-size:10px}.company-card{min-width:0}.company-card h3,.company-card p{overflow-wrap:anywhere}.company-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.company-card-meta span{display:block;border:1px solid #e6eaf1;background:#f8fafc;border-radius:8px;padding:8px;color:var(--muted);overflow-wrap:anywhere}.company-card-meta b{color:var(--ink);display:block;margin-top:4px}
.inventory-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:13px}.inventory-filters{display:flex;gap:8px;flex-wrap:wrap}.inventory-filters input,.inventory-filters select{height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:0 10px}.inventory-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff}.inventory-table{width:100%;min-width:1050px;border-collapse:collapse}.inventory-table th{background:#17223a;color:#fff;text-align:right;padding:12px;position:sticky;top:0}.inventory-table td{border-bottom:1px solid #e8ecf2;padding:11px;vertical-align:middle}.inventory-table tr:hover td{background:#f7f9fc}.inventory-name b,.inventory-name small{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-name small{color:var(--muted);margin-top:4px}.monitor-pill{display:inline-flex;align-items:center;gap:6px;border-radius:20px;background:#edf1f6;color:#657187;padding:5px 8px;font-size:10px;white-space:nowrap}.monitor-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#98a2b2}.monitor-pill.online{background:#e7f8f0;color:#11794a}.monitor-pill.online:before{background:#20a86b}.monitor-pill.warning{background:#fff4df;color:#8a5a00}.monitor-pill.warning:before{background:#e1a32a}.monitor-pill.offline{background:#fff0f2;color:#aa3044}.monitor-pill.offline:before{background:#d94b5b}
.backup-settings{display:grid;grid-template-columns:1.2fr repeat(3,minmax(110px,.65fr)) auto;gap:10px;align-items:end;border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:14px;background:#f8fafc}.backup-settings>.check-field{align-self:center}.backup-meta{grid-column:1/-1;display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-top:1px solid #e3e8f0;padding-top:10px;color:var(--muted)}.backup-meta b{color:var(--ink)}.drop-file{border:2px dashed #b9c5d7;border-radius:13px;min-height:110px;display:grid;place-items:center;text-align:center;padding:18px;background:#f8fafc;color:#3157d5;font-weight:800;cursor:pointer}.drop-file input{margin-top:10px}.drop-file span{display:block;color:var(--muted);font-weight:400;margin-top:8px}.import-layout{display:grid;gap:14px}.notice{border:1px solid #ecd49b;background:#fff9e9;color:#74521a;border-radius:10px;padding:11px;line-height:1.8}.script-output{min-height:190px!important;direction:ltr;text-align:left}.trash-row{display:grid;grid-template-columns:110px 1fr 160px auto;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #edf0f5}.trash-row:last-child{border-bottom:0}.trash-row small{color:var(--muted)}
.about-dialog{width:min(650px,calc(100vw - 28px))}.about-content{text-align:center;padding:30px}.about-mark{width:68px;height:68px;border-radius:20px;margin:0 auto 16px;display:grid;place-items:center;background:linear-gradient(135deg,#7995f5,#3157d5);color:#fff;font-size:23px;font-weight:900}.about-content h2{margin:0 0 12px}.about-content>p{max-width:520px;margin:0 auto;color:var(--muted);line-height:2.1}.about-content dl{margin:22px auto;max-width:420px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.about-content dl div{display:flex;justify-content:space-between;padding:11px 13px;border-bottom:1px solid var(--line)}.about-content dl div:last-child{border-bottom:0}.about-content dt{color:var(--muted)}.about-content dd{margin:0;font-weight:800}.github-star{text-decoration:none;display:inline-flex;align-items:center}.about-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.radio-health{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.radio-health small{margin:0}.unsaved-dot:after{content:"•";color:#e0a12b;margin-right:4px}.btn+.btn{margin-inline-start:0}.modal-foot>div{display:flex;gap:7px}

.client-download-page{min-height:100vh;padding:36px 18px;background:linear-gradient(145deg,#eef3ff,#f8fafc)}.client-shell{width:min(900px,100%);margin:0 auto}.client-hero{background:linear-gradient(135deg,#17223a,#274379);color:#fff;border-radius:20px;padding:28px;box-shadow:var(--shadow)}.client-hero h1{margin:0 0 10px}.client-hero p{margin:0;color:#d8e1f2;line-height:2}.client-download{margin-top:18px;display:inline-flex;align-items:center;text-decoration:none}.client-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-top:16px}.client-panel h2{margin:0 0 14px}.client-steps{display:grid;gap:10px;counter-reset:step}.client-step{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:start;border:1px solid #e3e8f0;border-radius:11px;padding:12px;line-height:1.9}.client-step:before{counter-increment:step;content:counter(step);width:32px;height:32px;border-radius:9px;background:#e8edff;color:#3157d5;display:grid;place-items:center;font-weight:900}.client-note{background:#fff8e8;border-color:#ead39b}.client-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.client-tools span{border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center;font-weight:800}.client-footer{text-align:center;color:var(--muted);padding:20px}
.connection-choice-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}.connection-choice{display:flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;background:#f8fafc}.connection-choice b{direction:ltr}
[data-theme="dark"]{--ink:#e7edf7;--muted:#9ba8bc;--line:#35425a;--soft:#101827;--card:#182338;--blue2:#223665;--shadow:0 14px 38px rgba(0,0,0,.34);color-scheme:dark}[data-theme="dark"] html,[data-theme="dark"] body,[data-theme="dark"] .page{background:var(--soft)}[data-theme="dark"] .panel,[data-theme="dark"] .stat,[data-theme="dark"] .company-card,[data-theme="dark"] .company-section,[data-theme="dark"] .info-card,[data-theme="dark"] .form-section,[data-theme="dark"] dialog,[data-theme="dark"] .inventory-table-wrap,[data-theme="dark"] .radio-ap-card,[data-theme="dark"] .radio-tree-card,[data-theme="dark"] .radio-station-node,[data-theme="dark"] .search-results,[data-theme="dark"] .tool-menu{background:#182338;color:var(--ink)}[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea,[data-theme="dark"] .repeat-row input,[data-theme="dark"] .repeat-row select,[data-theme="dark"] .inventory-filters input,[data-theme="dark"] .inventory-filters select,[data-theme="dark"] .quick-ip input,[data-theme="dark"] .map-select,[data-theme="dark"] .radio-register-form input,[data-theme="dark"] .radio-register-form select{background:#111b2e;color:var(--ink);border-color:var(--line)}[data-theme="dark"] .company-form-body,[data-theme="dark"] .modal-foot,[data-theme="dark"] .repeat-row,[data-theme="dark"] .backup-settings,[data-theme="dark"] .drop-file,[data-theme="dark"] .space-card,[data-theme="dark"] .company-card-meta span,[data-theme="dark"] .radio-meta,[data-theme="dark"] .connection-choice{background:#121c2f}[data-theme="dark"] .btn:not(.primary):not(.danger),[data-theme="dark"] .close{background:#223049;color:var(--ink);border-color:var(--line)}[data-theme="dark"] .search-item,[data-theme="dark"] .radio-station,[data-theme="dark"] .radio-station-main,[data-theme="dark"] .node-main{background:#182338;color:var(--ink)}[data-theme="dark"] .search-item:hover,[data-theme="dark"] .inventory-table tr:hover td,[data-theme="dark"] .radio-station:hover{background:#223049}[data-theme="dark"] .vertical-subnet-table td,[data-theme="dark"] .root-range-table td{color:#162033}[data-theme="dark"] .company-hero{background:linear-gradient(135deg,#20345c,#17223a)}

/* v0.5.1: readable range tables and connection controls */
.root-prefix-span,.subnet-span{padding:0!important;background:color-mix(in srgb,var(--range-color) 30%,#f6f8fb)!important}
.root-prefix-open,.table-prefix{border:0;border-radius:0;padding:8px 7px;background:transparent!important;box-shadow:none!important;color:#17233a;overflow:visible}
.root-prefix-open.named,.table-prefix.named{background:transparent!important;color:#17233a}
.root-prefix-open b,.root-prefix-open strong,.root-prefix-open span,.root-prefix-open small,.table-prefix b,.table-prefix strong,.table-prefix span,.table-prefix small{display:block;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.55;text-align:center}
.root-prefix-open strong,.table-prefix strong{font-size:10px}.root-prefix-open small,.table-prefix small{font-size:9px;color:inherit;opacity:.88}
.vertical-subnet-table{min-width:1280px}.vertical-subnet-table th:nth-child(3){width:145px}.table-connect{text-align:center;padding:4px!important}.table-connect>span{color:var(--muted)}
.table-connect-button{width:calc(100% - 8px);min-height:30px;border:1px solid #8ba1d7;border-radius:7px;background:#eaf0ff;color:#244bb8;font-size:9px;font-weight:900;direction:ltr;overflow-wrap:anywhere;padding:4px;cursor:pointer}.table-connect-button:hover{background:#dce6ff;border-color:#3157d5}
.ping-dot:not(.connectable){cursor:default}.ping-dot.connectable{box-shadow:0 0 0 3px rgba(32,168,107,.18)}
#radioParentField input{margin-bottom:7px}

[data-theme="dark"]{--soft:#07111f;--card:#0e1b2e;--line:#29415d;--ink:#edf6ff;--muted:#a9bad0;--blue:#00d8a4;--blue2:#123c43}
[data-theme="dark"] html,[data-theme="dark"] body,[data-theme="dark"] .page{background:#07111f;color:#edf6ff}
[data-theme="dark"] .topbar{background:#091628;border-bottom-color:#203954}
[data-theme="dark"] .panel,[data-theme="dark"] .stat,[data-theme="dark"] .company-card,[data-theme="dark"] .company-section,[data-theme="dark"] .info-card,[data-theme="dark"] .form-section,[data-theme="dark"] dialog,[data-theme="dark"] .inventory-table-wrap,[data-theme="dark"] .radio-ap-card,[data-theme="dark"] .radio-tree-card,[data-theme="dark"] .radio-station-node,[data-theme="dark"] .search-results,[data-theme="dark"] .tool-menu,[data-theme="dark"] .view-controls{background:#0e1b2e;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .sheet-banner{background:#0e1b2e;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .sheet-context,[data-theme="dark"] .tree-toolbar,[data-theme="dark"] .tree-scroll,[data-theme="dark"] .topology-scroll{background:#0a1728;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea,[data-theme="dark"] .repeat-row input,[data-theme="dark"] .repeat-row select,[data-theme="dark"] .inventory-filters input,[data-theme="dark"] .inventory-filters select,[data-theme="dark"] .quick-ip input,[data-theme="dark"] .map-select,[data-theme="dark"] .radio-register-form input,[data-theme="dark"] .radio-register-form select,[data-theme="dark"] #sheetSelect{background:#091627;color:#edf6ff;border-color:#35506e}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:#7890ad;opacity:1}
[data-theme="dark"] .vertical-table-wrap,[data-theme="dark"] .root-vertical-wrap{background:#081423;border-color:#35506e}
[data-theme="dark"] .vertical-subnet-table th,[data-theme="dark"] .root-range-table th{background:#0b1a2d;color:#f5fbff;border-color:#35506e}
[data-theme="dark"] .vertical-subnet-table td,[data-theme="dark"] .root-range-table td{background:#0b1728;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .vertical-subnet-table tbody tr:nth-child(even)>td:not(.subnet-span){background:#0d1c30}
[data-theme="dark"] .vertical-subnet-table tr:hover>td:not(.subnet-span){background:#122641}
[data-theme="dark"] .vertical-subnet-table tr.system>td:first-child{background:#101d2c}
[data-theme="dark"] .ip-line,[data-theme="dark"] .ip-line b,[data-theme="dark"] .table-status{color:#edf6ff}
[data-theme="dark"] .ip-line .mono{color:#8ee9ff}
[data-theme="dark"] .root-row-open{background:color-mix(in srgb,var(--range-color) 24%,#0b1728);color:#edf6ff}
[data-theme="dark"] .root-row-open:hover{background:color-mix(in srgb,var(--range-color) 36%,#0b1728)}
[data-theme="dark"] .root-octet{color:#67e8f9}
[data-theme="dark"] .root-prefix-span,[data-theme="dark"] .subnet-span,[data-theme="dark"] .subnet-span.prefix-30,[data-theme="dark"] .subnet-span.prefix-29,[data-theme="dark"] .subnet-span.prefix-28,[data-theme="dark"] .subnet-span.prefix-27,[data-theme="dark"] .subnet-span.prefix-26,[data-theme="dark"] .subnet-span.prefix-25,[data-theme="dark"] .subnet-span.prefix-24{background:color-mix(in srgb,var(--range-color) 34%,#081423)!important;border-color:#35506e!important}
[data-theme="dark"] .root-prefix-open,[data-theme="dark"] .root-prefix-open.named,[data-theme="dark"] .table-prefix,[data-theme="dark"] .table-prefix.named{color:#f4f9ff}
[data-theme="dark"] .table-connect-button{background:#103547;color:#76f7d5;border-color:#23876f}
[data-theme="dark"] .table-connect-button:hover{background:#15513f;border-color:#00d8a4}
[data-theme="dark"] .visual-map,[data-theme="dark"] .ip-map{background:#081423;border-color:#29415d}
[data-theme="dark"] .ip-cell{background:#0b1728;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .ip-cell .fill{opacity:.22}
[data-theme="dark"] .ip-cell .last,[data-theme="dark"] .ip-cell .host-name{color:#edf6ff}
[data-theme="dark"] .inventory-table td{background:#0e1b2e;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .inventory-table tr:hover td{background:#142742}
[data-theme="dark"] .radio-tree-card-head,[data-theme="dark"] .radio-ap-node,[data-theme="dark"] .radio-station-main,[data-theme="dark"] .node-main,[data-theme="dark"] .topology-node{background:#0e1b2e;color:#edf6ff;border-color:#35506e}
[data-theme="dark"] .notice{background:#332713;color:#ffe5aa;border-color:#7a6129}
[data-theme="dark"] .login-view{background:radial-gradient(circle at 85% 15%,#103547 0,transparent 34%),linear-gradient(145deg,#07111f,#0a1728)}
[data-theme="dark"] .login-card,[data-theme="dark"] .card-form,[data-theme="dark"] .table-list{background:#0e1b2e;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .stack-form input,[data-theme="dark"] .tool-setting input,[data-theme="dark"] .device-port-row input,[data-theme="dark"] .device-port-row select{background:#091627;color:#edf6ff;border-color:#35506e}
[data-theme="dark"] .segmented,[data-theme="dark"] .segmented button{background:#091627;color:#c9d8ea;border-color:#35506e}
[data-theme="dark"] .segmented button.active{background:#103547;color:#76f7d5}
[data-theme="dark"] .back{background:#103547;color:#76f7d5}
[data-theme="dark"] .ring{background:conic-gradient(var(--blue) calc(var(--p)*1%),#26384e 0)}
[data-theme="dark"] .ring:after{background:#0e1b2e;color:#edf6ff}
[data-theme="dark"] .row-axis,[data-theme="dark"] .subnet-tile,[data-theme="dark"] .drill-tile,[data-theme="dark"] .tree-node,[data-theme="dark"] .map-cell{background:#0b1728;color:#edf6ff;border-color:#29415d}
[data-theme="dark"] .subnet-tile .cidr,[data-theme="dark"] .subnet-tile .count,[data-theme="dark"] .tree-node small{color:#a9bad0}
[data-theme="dark"] .range-row,[data-theme="dark"] .summary-item,[data-theme="dark"] .user-row,[data-theme="dark"] .backup-row,[data-theme="dark"] .space-card-wrap{border-color:#29415d}
[data-theme="dark"] .range-row:hover{background:#142742}
[data-theme="dark"] .status-pill{background:#103547;color:#76f7d5}
[data-theme="dark"] .progress{background:#26384e}
[data-theme="dark"] .client-download-page{background:linear-gradient(145deg,#07111f,#0a1728)}
[data-theme="dark"] .client-panel,[data-theme="dark"] .client-step{background:#0e1b2e;color:#edf6ff;border-color:#29415d}
@media(max-width:1450px){.topbar{flex-wrap:wrap}.searchbox{order:4;flex-basis:100%;max-width:none}.context-selectors{flex:1}.context-selectors select{max-width:none;flex:1}}
@media(max-width:1120px){.primary-nav{order:3}.sheet-main{flex-wrap:wrap}.sheet-context{min-width:min(300px,100%);max-width:100%}.company-layout{grid-template-columns:1fr}.backup-settings{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:850px){.page{padding:16px 12px 50px}.stats{grid-template-columns:1fr 1fr}.lower-grid{grid-template-columns:1fr}.headline{flex-direction:column}.sheet-main{align-items:flex-start;flex-wrap:wrap}.users-layout{grid-template-columns:1fr}.port-grid{grid-template-columns:1fr 1fr}.live-badge span{display:none}.live-badge{width:38px;padding:0;justify-content:center}.brand small{display:none}.range-row{grid-template-columns:16px 1fr auto}.range-row>:nth-child(3),.range-row>:nth-child(4){display:none}.range-row .row-actions{display:flex}.entity-actions{justify-content:flex-end}.user-row{grid-template-columns:1fr auto}.user-row .status-pill{display:none}.device-port-row{grid-template-columns:1fr 1fr 90px}.device-port-row>:nth-child(4),.device-port-row>:nth-child(5){display:none}.subnet-selector{grid-template-columns:repeat(4,minmax(140px,1fr))}.radio-grid{grid-template-columns:1fr}.vertical-subnet-table{min-width:1050px}.tree-scroll{min-width:900px}.company-hero{grid-template-columns:1fr}.company-hero-actions{justify-content:flex-start}.company-quick-info{grid-template-columns:1fr 1fr}.contact-row,.connection-row{grid-template-columns:1fr 1fr}.backup-settings{grid-template-columns:1fr 1fr}.primary-nav{width:100%;overflow:auto}.navbtn{flex:1}.trash-row{grid-template-columns:90px 1fr auto}.trash-row>small{display:none}}
@media(max-width:580px){.topbar{padding:9px 10px}.brand{min-width:auto}.brand b{font-size:13px}.brandmark{width:36px;height:36px}.context-selectors{order:2;flex-basis:100%}.top-actions{margin-right:auto;overflow:auto}.topbar .iconbtn{width:36px;flex:0 0 36px}.stats{grid-template-columns:1fr 1fr}.stat{padding:11px}.stat .value{font-size:18px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.port-grid{grid-template-columns:1fr 1fr}.modal-body{padding:14px}.modal-foot.split{grid-template-columns:1fr 1fr}.modal-foot.split span{display:none}.company-grid{grid-template-columns:1fr}.util{display:none}.subnet-selector{grid-template-columns:1fr 1fr}.device-port-row{grid-template-columns:1fr 1fr}.device-port-row>:nth-child(3){display:none}.quick-ip{width:100%;flex-wrap:wrap}.quick-ip input{flex:1}.radio-meta{flex-wrap:wrap}.backup-row{align-items:flex-start;flex-direction:column}.client-tools{grid-template-columns:1fr 1fr}.client-hero,.client-panel{padding:18px}.client-step{grid-template-columns:32px 1fr}}
@media print{.topbar,.toolbar,.head-actions,.back,.sheet-nav,.lower-grid{display:none!important}.page{padding:0}.panel,.sheet-banner{box-shadow:none;border:0}.visual-map{min-width:100%}body{background:#fff}}


/* EYECO_PERSIAN_RTL_POLISH_V1 */

/* Base Persian direction */
html[dir="rtl"],
html[dir="rtl"] body {
  direction: rtl;
  text-align: start;
}

/* Persian form controls */
html[dir="rtl"] input:not(.ltr),
html[dir="rtl"] textarea:not(.ltr),
html[dir="rtl"] select:not(.ltr) {
  direction: rtl;
  text-align: start;
}

/* Technical values must remain LTR */
html[dir="rtl"] .ltr,
html[dir="rtl"] .mono,
html[dir="rtl"] [inputmode="numeric"],
html[dir="rtl"] [inputmode="decimal"] {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: left;
}

/* Better Persian typography */
html[dir="rtl"] body,
html[dir="rtl"] button,
html[dir="rtl"] input,
html[dir="rtl"] select,
html[dir="rtl"] textarea {
  font-family: "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif !important;
  letter-spacing: 0;
}

/* Persian labels/headings */
html[dir="rtl"] label,
html[dir="rtl"] .field,
html[dir="rtl"] .section-title,
html[dir="rtl"] .modal-head,
html[dir="rtl"] .modal-body,
html[dir="rtl"] .modal-foot,
html[dir="rtl"] .toolbar,
html[dir="rtl"] .headline {
  text-align: start;
}

/* Use logical spacing where RTL matters */
html[dir="rtl"] .top-actions {
  margin-inline-start: auto;
  margin-right: 0;
}

html[dir="rtl"] .searchbox > span {
  inset-inline-start: 13px;
  right: auto;
}

html[dir="rtl"] .searchbox input {
  padding-inline-start: 38px;
  padding-inline-end: 12px;
}

html[dir="rtl"] .search-results {
  inset-inline-start: 0;
  inset-inline-end: 0;
  right: auto;
  left: auto;
}

/* Dialogs */
html[dir="rtl"] dialog {
  direction: rtl;
}

html[dir="rtl"] .close {
  font-family: "Vazirmatn", sans-serif !important;
}

/* Numbers and technical tables */
html[dir="rtl"] .vertical-subnet-table,
html[dir="rtl"] .root-range-table,
html[dir="rtl"] .inventory-table {
  font-variant-numeric: tabular-nums;
}

/* Prevent mixed Persian/English strings from scrambling */
html[dir="rtl"] .mono,
html[dir="rtl"] .ltr,
html[dir="rtl"] code,
html[dir="rtl"] pre {
  unicode-bidi: isolate;
}

/* Persian placeholders */
html[dir="rtl"] input::placeholder,
html[dir="rtl"] textarea::placeholder {
  text-align: start;
}

/* /EYECO_PERSIAN_RTL_POLISH_V1 */
