:root{--bg:#08111f;--surface:#0e1a2b;--surface-2:#122238;--border:#1b2c42;--text:#e7eef8;--muted:#8190a7;--green:#32d583;--red:#ef596f;--yellow:#f6b94a;--blue:#45b5ff;--purple:#a57bff;--radius:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,Arial,sans-serif;font-size:13px;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh;min-width:0;background:radial-gradient(circle at 80% 0%,rgba(50,112,163,.11),transparent 32%)}.sidebar{width:252px;min-width:252px;flex:none;flex-shrink:0;background:rgba(8,17,31,.82);border-right:1px solid var(--border);padding:27px 15px 17px;display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow-y:auto}.brand{font-size:20px;font-weight:800;letter-spacing:-.8px;padding:0 13px 30px;display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;background:linear-gradient(145deg,var(--green),#20a8a1);color:#07151b;width:29px;height:29px;border-radius:8px;font-size:15px}.brand-muted{color:#6f829c;font-weight:500}.workspace{margin:0 8px 26px;padding:12px 10px;border:1px solid var(--border);background:rgba(18,34,56,.58);border-radius:10px;display:flex;align-items:center;gap:9px}.workspace small,.nav-label,.eyebrow{color:#70819a;display:block;font-size:9px;letter-spacing:1.2px;font-weight:800}.workspace strong{display:block;font-size:11px;margin-top:2px}.workspace i{color:#647892;font-size:9px}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#596d84}.status-dot.live{background:var(--green);box-shadow:0 0 0 4px rgba(50,213,131,.1),0 0 12px var(--green)}.nav-label{padding:0 13px;margin:14px 0 7px}.nav-link{color:#8292aa;text-decoration:none;padding:11px 13px;border-radius:9px;display:flex;gap:12px;align-items:center;font-size:12px;font-weight:600;margin:2px 0}.nav-link i{font-size:14px;width:17px;text-align:center;color:#677c98}.nav-link:hover,.nav-link.active{color:#eaf4ff;background:#16263b}.nav-link.active i{color:var(--green)}.nav-badge,.soon{font-size:9px;color:var(--green);border:1px solid rgba(50,213,131,.25);border-radius:10px;padding:2px 6px;margin-left:auto}.alarm-count{background:rgba(239,89,111,.14);color:#ff8494;padding:2px 6px;border-radius:10px;margin-left:auto;font-size:10px}.soon{color:#7790b1;border-color:#29415d}.sidebar-footer{margin-top:auto}.support-card{margin:20px 8px 14px;padding:13px 11px;border:1px solid var(--border);border-radius:11px;display:flex;align-items:center;gap:9px;background:linear-gradient(135deg,rgba(69,181,255,.09),rgba(50,213,131,.03))}.support-icon{width:28px;height:28px;border-radius:8px;background:#183551;display:grid;place-items:center;color:var(--blue)}.support-card strong{font-size:11px}.support-card p{font-size:10px;color:var(--muted);margin:2px 0 0}.support-card>i{font-size:10px;color:#69809a;margin-left:auto}.logout{margin-bottom:12px}.version{font:10px 'DM Mono';color:#52657e;padding:0 13px}.version span{float:right;color:#3d526c}.main-content{min-width:0;flex:1;width:0;overflow-x:hidden}.topbar{height:83px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 36px;justify-content:space-between}.breadcrumb{display:flex;align-items:center;gap:12px;color:#7888a0;font-size:11px}.breadcrumb i{font-size:8px}.breadcrumb strong{color:#dce8f7;font-weight:600}.top-actions{display:flex;align-items:center;gap:11px}.global-search,.topology-search{display:flex;align-items:center;gap:9px;background:#0c1727;border:1px solid var(--border);border-radius:8px;padding:0 11px;color:#60738e}.global-search{width:240px;height:36px}.global-search input,.topology-search input{border:0;outline:0;color:var(--text);background:transparent;width:100%;font-size:11px}.global-search kbd{background:#17263a;color:#7789a3;border:1px solid #263c57;border-radius:4px;padding:2px 5px;font-size:9px;white-space:nowrap}.icon-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:#0d1a2c;color:#7790ab;display:grid;place-items:center}.icon-btn:hover{border-color:#315273;color:var(--text)}.notification-btn{position:relative}.notification-btn span{position:absolute;right:7px;top:6px;width:5px;height:5px;border-radius:50%;background:var(--red)}.profile{display:flex;align-items:center;gap:9px;margin-left:10px}.avatar{background:linear-gradient(135deg,#5f79ff,#9a5cff);width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800}.profile-copy strong,.profile-copy small{display:block}.profile-copy strong{font-size:11px}.profile-copy small{color:#73839a;font-size:10px;margin-top:2px}.profile-copy i{font-size:8px;margin-left:5px}.page-wrap{padding:37px 36px 60px;max-width:1600px;margin:auto}.page-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:29px;gap:20px}.page-header h1{font-size:25px;letter-spacing:-1px;margin:7px 0 5px;font-weight:800}.page-header p{color:var(--muted);margin:0;font-size:12px}.wave{color:var(--green);font-size:20px}.primary-btn,.secondary-btn{border:1px solid transparent;border-radius:8px;padding:10px 14px;font-weight:700;font-size:11px;color:#062019;background:var(--green);box-shadow:0 6px 18px rgba(50,213,131,.11)}.primary-btn i,.secondary-btn i{margin-right:7px}.primary-btn:hover{background:#5de59c}.secondary-btn{background:#122238;border-color:#29415d;color:#b7cbe0;box-shadow:none}.secondary-btn:hover{background:#1a304a}.stat-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:11px;margin-bottom:19px}.stat-card{border:1px solid var(--border);background:linear-gradient(145deg,rgba(17,34,55,.95),rgba(12,24,40,.95));border-radius:12px;padding:15px 13px;min-width:0}.stat-icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#1a3047;color:var(--blue);font-size:12px;margin-bottom:15px}.stat-card.positive .stat-icon{color:var(--green);background:rgba(50,213,131,.12)}.stat-card.negative .stat-icon{color:var(--red);background:rgba(239,89,111,.12)}.stat-card.alarm .stat-icon{color:var(--yellow);background:rgba(246,185,74,.12)}.stat-card.bandwidth .stat-icon{color:var(--purple);background:rgba(165,123,255,.12)}.stat-card small,.stat-card strong,.stat-meta{display:block}.stat-card small{font-size:10px;color:#8393a9;white-space:nowrap}.stat-card strong{font-size:22px;letter-spacing:-1px;margin:3px 0 5px}.stat-meta{font-size:9px;color:#5c718d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card.positive .stat-meta{color:#49bf84}.stat-card.negative .stat-meta{color:#df7180}.dashboard-grid{display:grid;grid-template-columns:1.42fr 1fr;gap:19px;margin-bottom:19px}.panel{border:1px solid var(--border);background:rgba(13,27,45,.78);border-radius:13px;overflow:hidden}.panel-head{padding:18px 20px 0;display:flex;justify-content:space-between;align-items:start}.panel h2{margin:0;font-size:13px;letter-spacing:-.2px}.panel-head p{margin:5px 0 0;color:#75869e;font-size:10px}.segmented{border:1px solid var(--border);padding:3px;border-radius:7px;display:flex}.segmented button{background:transparent;border:0;color:#637994;font-size:9px;padding:5px 7px;border-radius:4px}.segmented button.selected{background:#21405b;color:#bfe8ff}.chart{height:245px;padding:0 12px 12px}.live-label{font-size:10px;color:#72dca1;display:flex;gap:7px;align-items:center}.health-panel .panel-head{padding-bottom:3px}.health-body{display:flex;align-items:center;justify-content:space-around;padding:9px 20px 22px}.health-chart{height:185px;width:185px}.health-legend{display:flex;flex-direction:column;gap:15px}.health-legend div{display:grid;grid-template-columns:10px 53px;gap:5px 9px;align-items:center}.health-legend strong{font-size:14px}.health-legend small{grid-column:2;color:#7889a0;font-size:10px}.legend-dot,.summary-dot{width:8px;height:8px;border-radius:50%;background:var(--green);grid-row:span 2}.legend-dot.weak,.summary-dot.warning{background:var(--yellow)}.legend-dot.offline,.summary-dot.critical{background:var(--red)}.summary-dot.info{background:var(--blue)}.text-link{color:var(--blue);text-decoration:none;font-size:10px}.text-link i{margin-left:7px}.alarm-list{padding:12px 20px 13px}.alarm-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid rgba(27,44,66,.75)}.alarm-row:last-child{border-bottom:0}.alarm-symbol{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;font-size:11px;flex:none}.alarm-symbol.critical{color:var(--red);background:rgba(239,89,111,.12)}.alarm-symbol.warning{color:var(--yellow);background:rgba(246,185,74,.12)}.alarm-symbol.info{color:var(--blue);background:rgba(69,181,255,.11)}.alarm-info{min-width:0;flex:1}.alarm-info strong,.alarm-info small{display:block}.alarm-info strong{font-size:11px;font-weight:600}.alarm-info small{color:#70819a;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-info small span{color:#465d77;margin:0 3px}.severity{font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.5px}.severity.critical{color:var(--red)}.severity.warning{color:var(--yellow)}.severity.info{color:var(--blue)}.bar-chart{height:200px;padding:13px 20px 18px}.header-actions{display:flex;gap:9px;align-items:center}.topology-search{width:205px;height:35px}.topology-toolbar,.table-toolbar,.alarm-filter{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.filter-pills{display:flex;gap:5px;flex-wrap:wrap}.filter-pills button,.table-tabs button{border:1px solid transparent;background:transparent;color:#74869e;padding:8px 11px;border-radius:7px;font-size:10px}.filter-pills button span,.table-tabs button span{background:#152940;padding:2px 5px;border-radius:8px;margin-left:4px;color:#98aac1}.filter-pills button.active,.table-tabs button.active{background:#142b43;color:#c9d9eb;border-color:#203e5c}.legend{display:flex;gap:16px;color:#75869d;font-size:10px}.legend span{display:flex;gap:6px;align-items:center}.node-legend{width:7px;height:7px;background:var(--green);border-radius:50%}.node-legend.weak{background:var(--yellow)}.node-legend.offline{background:var(--red)}.graph-panel{height:590px}.graph-head{padding:17px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between}.graph-head p{color:#62758f;font-size:9px;margin:7px 0 0}.graph-actions{display:flex;gap:7px}.graph-actions .icon-btn{width:29px;height:29px}.graph-panel{background:radial-gradient(circle at 50% 50%,rgba(32,76,98,.11),transparent 47%),#0c1929}.graph-panel #cy{height:520px}.table-panel{padding:17px 20px}.table-toolbar{margin-bottom:10px}table{width:100%;border-collapse:collapse}th{color:#667990;font-size:9px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;text-align:left;padding:13px 10px;border-bottom:1px solid var(--border)}td{padding:13px 10px;border-bottom:1px solid rgba(27,44,66,.65);color:#aebdd0;font-size:11px}tr:last-child td{border-bottom:0}.device-cell{display:flex;align-items:center;gap:10px}.device-cell strong,.device-cell small{display:block}.device-cell small{font-size:9px;color:#62758f;margin-top:3px}.device-mini{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;color:var(--blue);background:rgba(69,181,255,.12)}.device-mini.onu{color:var(--green);background:rgba(50,213,131,.12)}.device-mini.switch{color:var(--purple);background:rgba(165,123,255,.12)}.mono{font-family:'DM Mono';font-size:10px!important;color:#8da5bf}.row-menu{background:transparent;border:0;color:#687c95}.status-pill{display:inline-flex;align-items:center;gap:6px;color:#6de2a0;font-size:10px}.status-pill span{width:6px;height:6px;background:var(--green);border-radius:50%}.status-pill.offline{color:#f47b8b}.status-pill.offline span{background:var(--red)}.status-pill.weak{color:#e9bb63}.status-pill.weak span{background:var(--yellow)}.alarm-summary{display:flex;align-items:center;gap:0;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;margin-bottom:19px;padding:16px 23px}.alarm-summary>div:not(.summary-critical){display:flex;align-items:center;gap:8px;margin-left:45px;color:#8495ab;font-size:11px}.alarm-summary>div strong{color:#e4edf7;font-size:18px}.summary-critical{padding-right:42px;border-right:1px solid var(--border)}.summary-critical strong,.summary-critical span,.summary-critical small{display:block}.summary-critical strong{font-size:25px}.summary-critical span{font-weight:700;font-size:11px;margin-top:1px}.summary-critical small{color:#70829a;font-size:9px;margin-top:4px}.alarm-filter select{background:#112137;border:1px solid var(--border);color:#90a2b8;padding:8px;border-radius:7px;font-size:10px}.empty-state{text-align:center;padding:95px 30px}.empty-illustration{width:58px;height:58px;border-radius:18px;background:rgba(69,181,255,.12);color:var(--blue);display:grid;place-items:center;font-size:22px;margin:0 auto 20px}.empty-state h2{font-size:17px}.empty-state p{color:#75879f;font-size:11px;max-width:390px;margin:0 auto 20px}.drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(2,8,16,.58);z-index:4}.drawer-backdrop.show{display:block}.device-drawer{position:fixed;right:0;top:0;bottom:0;width:390px;max-width:94vw;background:#0c1929;border-left:1px solid var(--border);z-index:5;transform:translateX(100%);transition:transform .28s ease;padding:25px;overflow:auto}.device-drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--border);padding-bottom:19px}.drawer-head h2{font-size:20px;margin:7px 0 0}.drawer-status{display:flex;align-items:center;justify-content:space-between;padding:18px 0}.drawer-actions{display:flex;gap:8px;padding-bottom:20px;border-bottom:1px solid var(--border)}.drawer-actions button{flex:1}.detail-section{padding:21px 0;border-bottom:1px solid var(--border)}.detail-section h3{font-size:11px;margin:0 0 16px}.detail-section h3 span{float:right;color:#60748d;font-size:9px;font-weight:400}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:#6c7e96;font-size:9px;margin-bottom:4px}.detail-grid strong{font-size:10px;font-weight:600;color:#b8c9da}.mini-bars{height:75px;display:flex;align-items:end;gap:7px}.mini-bars i{display:block;flex:1;background:linear-gradient(180deg,var(--green),rgba(50,213,131,.2));border-radius:3px 3px 0 0}.toast-stack{position:fixed;right:22px;bottom:22px;z-index:8;display:flex;flex-direction:column;gap:9px}.toast-msg{display:flex;align-items:center;gap:10px;background:#142a42;border:1px solid #2a4c6b;border-radius:8px;padding:12px 15px;color:#dbe9f7;font-size:11px;box-shadow:0 12px 30px #0005}.toast-msg.success i{color:var(--green)}.toast-msg.error i{color:var(--yellow)}.mobile-menu{display:none}.bright-glow .stat-card{box-shadow:0 0 30px rgba(50,213,131,.06)}
@media(max-width:1200px){.stat-grid{grid-template-columns:repeat(4,1fr)}.dashboard-grid{grid-template-columns:1fr}.health-panel{min-height:280px}.sidebar{width:220px}.topbar{padding:0 24px}.page-wrap{padding:30px 24px}}@media(max-width:900px){.sidebar{position:fixed;z-index:7;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.mobile-menu{display:grid!important;place-items:center;width:31px;height:31px;background:transparent;border:0;color:#9cafc5}.topbar{height:65px;padding:0 15px}.breadcrumb{display:none}.global-search{width:36px;padding:0;justify-content:center;border:0;background:transparent}.global-search input,.global-search kbd{display:none}.top-actions{gap:5px}.profile-copy{display:none}.profile{margin-left:2px}.page-wrap{padding:25px 15px}.page-header{align-items:start;flex-direction:column;margin-bottom:22px}.page-header h1{font-size:22px}.header-actions{width:100%;flex-wrap:wrap}.header-actions .topology-search{flex:1}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:12px 10px}.stat-card strong{font-size:19px}.stat-meta{font-size:8px}.dashboard-grid{gap:12px;margin-bottom:12px}.panel-head{padding:15px}.chart{height:210px}.health-body{padding:5px 10px 15px}.health-chart{width:145px}.alarm-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.summary-critical{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--border);padding:0 0 13px}.alarm-summary>div:not(.summary-critical){margin-left:0}.topology-toolbar,.table-toolbar,.alarm-filter{align-items:start;flex-direction:column;gap:10px}.legend{display:none}.graph-panel{height:520px}.graph-panel #cy{height:450px}.table-panel{padding:12px 8px}.table-responsive{font-size:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.drawer-head h2{font-size:17px}th,td{padding:10px 6px}}

/* ===================== SMIRITY NETWORK MANAGEMENT — v1.1 additions ===================== */
/* brand two-line name */
.brand-name{display:flex;flex-direction:column;line-height:1.02}
.brand-name small{font-size:8px;letter-spacing:1.8px;color:#6f829c;font-weight:800;margin-top:3px;white-space:nowrap}
.login-brand .brand-name small{font-size:8.5px}

/* larger, more readable text throughout */
body{font-size:13.5px}
td{font-size:12.5px;padding:14px 11px;color:#b6c6d9}
th{font-size:10px}
.device-cell strong{font-size:13px}
.device-cell small{font-size:10.5px}
.mono{font-size:11px!important}
.status-pill{font-size:11px}
.stat-card small{font-size:10.5px}
.stat-card strong{font-size:23px}
.alarm-info strong{font-size:12px}
.alarm-info small{font-size:10px}
.panel h2{font-size:14px}
.panel-head p{font-size:10.5px}
.nav-link{font-size:12.5px}
.detail-grid strong{font-size:11.5px}
.detail-grid small{font-size:10px}

/* MikroTik submenu */
.nav-parent .nav-caret{margin-left:auto;font-size:9px;transition:transform .2s}
.nav-parent.expanded .nav-caret{transform:rotate(180deg)}
.nav-sub{display:flex;flex-direction:column;margin:2px 0 6px;padding-left:6px;border-left:1px solid #1b2c42;margin-left:18px}
.nav-link.sub{font-size:11.5px;padding:8px 12px;color:#7688a0}
.nav-link.sub i{font-size:11px}

/* profile dropdown */
.profile{position:relative;cursor:pointer}
.profile-menu{position:absolute;right:0;top:46px;width:210px;background:#0e1a2b;border:1px solid #26405c;border-radius:11px;box-shadow:0 18px 50px rgba(0,0,0,.5);padding:8px;display:none;z-index:9}
.profile-menu.open{display:block}
.pm-head{display:flex;gap:10px;align-items:center;padding:8px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}
.pm-head strong{display:block;font-size:12px}
.pm-head small{display:block;color:#7a8ba2;font-size:10px;margin-top:2px}
.pm-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#b7c8db;text-decoration:none;font-size:12px}
.pm-item i{width:16px;color:#6d84a0}
.pm-item:hover{background:#16263b}
.pm-logout{color:#f2899a}.pm-logout i{color:#f2899a}

/* copy button */
.copy-btn{background:transparent;border:0;color:#61748f;margin-left:8px;font-size:11px;padding:2px 5px;border-radius:5px}
.copy-btn:hover{color:var(--blue);background:rgba(69,181,255,.12)}
.addr-cell{white-space:nowrap}

/* inline empties + spinner */
.inline-empty{display:flex;align-items:center;gap:10px;color:#6c7e96;font-size:12px;padding:22px 4px}
.inline-empty i{color:#40597a}
.empty-illustration.spin i{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.muted-cell{color:#5f7391}
.secondary-btn.danger{color:#f2899a;border-color:#5a2c38}
.secondary-btn.active{background:#173a2c;border-color:#2f6b4f;color:#8ff0bd}

/* MikroTik overview cards */
.mik-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px 20px 22px}
.mik-card{display:block;text-decoration:none;border:1px solid var(--border);border-radius:12px;padding:16px;background:linear-gradient(150deg,rgba(17,34,55,.9),rgba(12,24,40,.9));transition:border-color .15s,transform .15s}
.mik-card:hover{border-color:#31567a;transform:translateY(-2px)}
.mik-card.down{opacity:.7}
.mik-card-top{display:flex;align-items:center;gap:9px;font-weight:700;font-size:12.5px;color:#dbe8f7}
.mik-dot{width:8px;height:8px;border-radius:50%;background:#596d84}
.mik-dot.up{background:var(--green);box-shadow:0 0 0 3px rgba(50,213,131,.12)}
.mik-dot.down{background:var(--red)}
.mik-rate{display:flex;gap:20px;margin:16px 0 14px}
.mik-rate small{display:block;color:#7889a0;font-size:10px}
.mik-rate strong{display:block;font-size:17px;letter-spacing:-.5px;margin-top:3px}
.mik-link{color:var(--blue);font-size:11px}
.mik-link i{margin-left:6px}
.mik-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:640px}
.mik-form label{display:block;color:#8ea1b8;font-size:10.5px;font-weight:700}
.mik-form input,.mik-form select{width:100%;margin-top:7px;padding:11px;border:1px solid var(--border);border-radius:8px;background:#0a1626;color:var(--text);outline:0;font-size:12px}
.mik-form input:focus,.mik-form select:focus{border-color:var(--blue)}
.mik-form-actions{grid-column:1/-1;display:flex;gap:10px}
.mik-stat{grid-template-columns:repeat(4,1fr)}

/* settings */
.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.settings-card{padding:22px}
.settings-card h2{font-size:16px;margin:6px 0 16px}
.settings-card .kv{display:grid;gap:14px;margin-bottom:18px}
.settings-card .kv small{display:block;color:#6c7e96;font-size:10px;margin-bottom:3px}
.settings-card .kv strong{display:block;font-size:12.5px;font-weight:600;color:#c1d2e4}

/* hide any stray write-controls for viewers as a safety net */
body.role-viewer #addDevice,body.role-viewer #ackAll,body.role-viewer .row-menu{display:none!important}

@media(max-width:900px){
  .mik-cards{grid-template-columns:1fr}
  .settings-grid{grid-template-columns:1fr}
  .mik-form{grid-template-columns:1fr}
  .mik-stat{grid-template-columns:repeat(2,1fr)}
  td{font-size:11.5px}
}

/* ================= v1.1 additions ================= */
/* --- larger, more legible text --- */
body{font-size:14px}
td{font-size:13px}
th{font-size:10px}
.device-cell small{font-size:11px}
.device-cell strong{font-size:13.5px}
.stat-card small{font-size:11px}
.stat-card strong{font-size:24px}
.stat-meta{font-size:10px}
.status-pill{font-size:11.5px}
.mono{font-size:11px!important}
.alarm-info strong{font-size:12.5px}
.alarm-info small{font-size:10.5px}
.panel h2{font-size:14px}
.panel-head p{font-size:11px}
.health-legend strong{font-size:16px}
.health-legend small{font-size:11px}
.nav-link{font-size:12.5px}
.page-header p{font-size:12.5px}
.severity{font-size:10px}

/* --- brand with subtitle --- */
.brand-name{display:inline-flex;flex-direction:column;line-height:1.02}
.brand-name small{font-size:8px;letter-spacing:2.2px;color:#6f829c;font-weight:800;margin-top:3px}
.login-brand .brand-name small{font-size:8.5px}

/* --- collapsible mikrotik submenu --- */
.nav-parent{position:relative}
.nav-caret{margin-left:auto;font-size:9px!important;color:#5f7590;transition:transform .2s}
.nav-sub{display:flex;flex-direction:column;margin:2px 0 4px 12px;padding-left:10px;border-left:1px solid #1b2c42}
.nav-link.sub{font-size:11.5px;padding:8px 12px;color:#7488a0}
.nav-link.sub i{font-size:11px;width:14px}
.nav-link.sub.active{color:#eaf4ff;background:#16263b}

/* --- profile dropdown --- */
.profile{position:relative;cursor:pointer;border-radius:9px;padding:4px 6px}
.profile:hover{background:#122238}
.profile-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);width:210px;background:#0e1a2b;border:1px solid #24405c;border-radius:11px;box-shadow:0 20px 50px rgba(0,0,0,.45);padding:8px;z-index:9}
.profile-menu.open{display:block}
.pm-head{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}
.pm-head strong{display:block;font-size:12.5px}
.pm-head small{display:block;color:#7889a0;font-size:10.5px;margin-top:2px}
.pm-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#b7cbe0;text-decoration:none;font-size:12px}
.pm-item:hover{background:#16263b;color:#eaf4ff}
.pm-item i{width:16px;color:#6f84a0}
.pm-logout:hover{color:#ff8494}
.pm-logout:hover i{color:#ff8494}

/* --- copy button + mac cell --- */
.copy-btn{background:transparent;border:1px solid #24405c;color:#7f97b3;border-radius:6px;padding:3px 7px;margin-left:6px;font-size:10px;vertical-align:middle}
.copy-btn:hover{border-color:#357;color:#cfe0f2;background:#132842}
.mac-cell{white-space:nowrap}

/* --- mini empty / td empty --- */
.mini-empty{display:flex;align-items:center;gap:9px;color:#7d8ea6;font-size:12px;padding:22px 6px;justify-content:center}
.mini-empty i{color:#4f6a85}
.td-empty{text-align:center;color:#6d7f97;padding:26px!important}

/* --- dashboard mik mini panel --- */
.mik-mini{padding:14px 20px 18px;display:flex;flex-direction:column;gap:2px}
.mik-mini-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(27,44,66,.7)}
.mik-mini-row:last-child{border-bottom:0}
.mmr-name{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:#cddcec}
.mmr-vals{display:flex;gap:16px;font-size:12px;color:#9fb2c8;font-family:'DM Mono'}
.mmr-vals i{font-size:9px;margin-right:3px}
.dot{width:8px;height:8px;border-radius:50%;background:#596d84;flex:none}
.dot.up{background:var(--green);box-shadow:0 0 8px rgba(50,213,131,.6)}
.dot.down{background:var(--red)}

/* --- mikrotik pages --- */
.mik-status-bar{display:flex;align-items:center;gap:14px;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;padding:14px 20px;margin-bottom:18px;flex-wrap:wrap}
.mik-status-bar strong{font-size:14px}
.mik-uptime{color:#8496ad;font-size:11.5px;margin-left:auto}
.mik-err{color:#f6b94a;font-size:11.5px;display:flex;align-items:center;gap:6px}
.mik-focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.mik-card{display:block;border:1px solid var(--border);background:linear-gradient(145deg,rgba(17,34,55,.95),rgba(12,24,40,.9));border-radius:13px;padding:16px 16px 14px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.mik-card:hover{border-color:#2f628c;transform:translateY(-2px)}
.mik-card-top{display:flex;align-items:center;gap:9px;font-weight:700;font-size:12.5px;color:#dbe8f7;margin-bottom:14px}
.mik-card-vals{display:flex;gap:26px}
.mik-card-vals small{display:block;color:#7f92a9;font-size:10px;margin-bottom:3px}
.mik-card-vals strong{font-size:17px;font-family:'DM Mono';letter-spacing:-.5px}
.mik-card-go{display:inline-block;margin-top:14px;color:var(--blue);font-size:11px}
.mik-card-go i{margin-left:5px}
.mik-detail-stats{grid-template-columns:repeat(4,1fr)}

/* --- customers --- */
.cust-summary{display:flex;align-items:center;gap:34px;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;padding:16px 22px;margin-bottom:18px}
.cust-summary strong{font-size:22px;display:block;letter-spacing:-1px}
.cust-summary span{color:#8496ad;font-size:11px}
.cust-src{margin-left:auto;color:#8496ad;font-size:11.5px}
.cust-src strong{display:inline;font-size:11.5px;color:#b8c9da}

/* --- roles / permissions --- */
.role-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10.5px;font-weight:800;letter-spacing:.3px}
.role-badge.admin{background:rgba(69,181,255,.14);color:#7cc6ff}
.role-badge.jr_admin{background:rgba(165,123,255,.15);color:#c1a4ff}
.role-badge.viewer{background:rgba(129,144,167,.16);color:#a9bad0}
.role-legend{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:16px;color:#8b9db3;font-size:11.5px}
.role-legend>div{display:flex;align-items:center;gap:8px}
.hid-cell{max-width:280px}
.hid-chip{display:inline-block;background:#152940;color:#9db0c8;border:1px solid #23415e;border-radius:14px;padding:2px 9px;font-size:10px;margin:2px 3px 2px 0}
.hid-none{color:#647892;font-size:11px;font-style:italic}
.perm-actions{display:flex;gap:6px;white-space:nowrap}
.secondary-btn.sm{padding:6px 9px;font-size:10.5px}
.secondary-btn.sm i{margin-right:4px}
.secondary-btn.danger,.drawer-actions .danger{color:#f47b8b;border-color:#5a2c38}
.secondary-btn.danger:hover{background:#2a1720}

/* --- user modal hidden-views grid --- */
.device-modal-card .full{grid-column:1/-1}
.device-modal-card.sm{width:420px}
.pw-row small{color:#6f829c;font-weight:400}
.hid-group{margin-top:4px}
.hid-title{display:block;color:#8ea1b8;font-size:10px;font-weight:700;margin-bottom:9px}
.hid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hid-check{display:flex;align-items:center;gap:7px;font-size:11px;color:#a9bccf;font-weight:500!important;background:#0a1626;border:1px solid var(--border);border-radius:7px;padding:8px 10px;cursor:pointer}
.hid-check input{width:auto;margin:0}
.hid-hint{display:block;color:#647892;font-size:10px;margin-top:8px}

/* --- settings --- */
.set-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.set-card{padding:20px}
.set-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.set-head>i{width:40px;height:40px;border-radius:11px;background:rgba(69,181,255,.12);color:var(--blue);display:grid;place-items:center;font-size:16px;flex:none}
.set-head h3{font-size:14px;margin:0 0 4px}
.set-head p{margin:0;color:#8496ad;font-size:11.5px}
.set-meta{color:#8496ad;font-size:11px}

/* --- topology toggle --- */
.topo-toggle{display:flex;align-items:center;gap:8px;color:#a9bccf;font-size:11.5px;background:#122238;border:1px solid #29415d;border-radius:8px;padding:8px 12px}
.topo-toggle input{accent-color:var(--green)}

@media(max-width:900px){
  .mik-focus-grid{grid-template-columns:1fr}
  .mik-detail-stats{grid-template-columns:repeat(2,1fr)}
  .set-grid{grid-template-columns:1fr}
  .hid-grid{grid-template-columns:repeat(2,1fr)}
  .cust-summary{flex-wrap:wrap;gap:18px}
  .cust-src{margin-left:0;width:100%}
}

/* --- API access card --- */
.set-grid .full-card{grid-column:1/-1}
.api-keybox{margin-bottom:14px;font-size:12px}
.api-ok{color:var(--green);display:inline-flex;align-items:center;gap:7px}
.api-muted{color:#8496ad}
.api-newkey-label{color:#f6b94a;font-size:11.5px;margin-bottom:8px;display:flex;align-items:center;gap:7px}
.api-key-row,.api-ep{display:flex;align-items:center;gap:8px}
.api-key-row code,.api-ep code{background:#0a1626;border:1px solid #24405c;border-radius:7px;padding:8px 10px;font-family:'DM Mono';font-size:11px;color:#8fd6ff;overflow:auto;white-space:nowrap;flex:1}
.api-endpoints{margin-bottom:14px}
.api-ep-title{color:#8ea1b8;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:9px}
.api-ep{margin-bottom:7px}
.api-ep-label{font-size:11px;color:#a9bccf;min-width:180px}
.api-auth{margin-top:10px;color:#8496ad;font-size:11px;line-height:1.6}
.api-auth code{background:#0a1626;border:1px solid #24405c;border-radius:5px;padding:1px 6px;font-family:'DM Mono';font-size:10.5px;color:#b8c9da}
.api-hint{color:#647892;font-size:10.5px;margin-top:9px}
@media(max-width:900px){ .api-ep{flex-wrap:wrap} .api-ep-label{min-width:0} }

/* ================= v1.1 additions ================= */
.brand-name{display:flex;flex-direction:column;line-height:1.02}
.brand-name small{font-size:8px;letter-spacing:1.8px;color:#6f829c;font-weight:800;margin-top:3px;white-space:nowrap}
.login-brand .brand-name small{font-size:8.5px}
body{font-size:14px}
td{font-size:13px}
.nav-link{font-size:12.5px}

/* MikroTik submenu */
.nav-parent .nav-caret{margin-left:auto;font-size:9px;transition:transform .2s}
.nav-parent.expanded .nav-caret{transform:rotate(180deg)}
.nav-sub{display:flex;flex-direction:column;margin:2px 0 6px;padding-left:6px;border-left:1px solid #1b2c42;margin-left:18px}
.nav-link.sub{font-size:11.5px;padding:8px 12px;color:#7688a0}

/* Profile dropdown */
.profile{position:relative;cursor:pointer}
.profile-menu{position:absolute;right:0;top:46px;width:210px;background:#0e1a2b;border:1px solid #26405c;border-radius:11px;box-shadow:0 18px 50px rgba(0,0,0,.5);padding:8px;display:none;z-index:9}
.profile-menu.open{display:block}
.pm-head{display:flex;gap:10px;align-items:center;padding:8px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}
.pm-head strong{display:block;font-size:12px}
.pm-head small{display:block;color:#7a8ba2;font-size:10px;margin-top:2px}
.pm-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#b7c8db;text-decoration:none;font-size:12px}
.pm-item i{width:16px;color:#6d84a0}
.pm-item:hover{background:#16263b}
.pm-logout{color:#f2899a}.pm-logout i{color:#f2899a}

/* Location inline edit */
.loc-edit-btn{opacity:0;transition:opacity .15s}
.loc-cell:hover .loc-edit-btn{opacity:1}
.loc-input{background:#0a1626;border:1px solid var(--blue);border-radius:6px;color:var(--text);padding:4px 8px;font-size:12px;font-family:inherit;outline:none;width:160px;margin-right:4px}

/* MikroTik pages */
.mik-status-bar{display:flex;align-items:center;gap:14px;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;padding:14px 20px;margin-bottom:18px;flex-wrap:wrap}
.mik-uptime{color:#8496ad;font-size:11.5px;margin-left:auto}
.mik-err{color:#f6b94a;font-size:11.5px;display:flex;align-items:center;gap:6px}
.mik-focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.mik-card{display:block;border:1px solid var(--border);background:linear-gradient(145deg,rgba(17,34,55,.95),rgba(12,24,40,.9));border-radius:13px;padding:16px 16px 14px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.mik-card:hover{border-color:#2f628c;transform:translateY(-2px)}
.mik-card-top{display:flex;align-items:center;gap:9px;font-weight:700;font-size:12.5px;color:#dbe8f7;margin-bottom:14px}
.mik-card-vals{display:flex;gap:26px}
.mik-card-vals small{display:block;color:#7f92a9;font-size:10px;margin-bottom:3px}
.mik-card-vals strong{font-size:17px;font-family:'DM Mono';letter-spacing:-.5px}
.mik-card-go{display:inline-block;margin-top:14px;color:var(--blue);font-size:11px}
.mik-detail-stats{grid-template-columns:repeat(4,1fr)}
.mik-mini{padding:14px 20px 18px;display:flex;flex-direction:column;gap:2px}
.mik-mini-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(27,44,66,.7)}
.mik-mini-row:last-child{border-bottom:0}
.mmr-name{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:#cddcec}
.mmr-vals{display:flex;gap:16px;font-size:12px;color:#9fb2c8}
.mmr-vals i{font-size:9px;margin-right:3px}
.dot{width:8px;height:8px;border-radius:50%;background:#596d84;flex:none}
.dot.up{background:var(--green);box-shadow:0 0 8px rgba(50,213,131,.6)}
.dot.down{background:var(--red)}

/* Customers */
.cust-summary{display:flex;align-items:center;gap:34px;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;padding:16px 22px;margin-bottom:18px}
.cust-summary strong{font-size:22px;display:block;letter-spacing:-1px}
.cust-summary span{color:#8496ad;font-size:11px}
.cust-src{margin-left:auto;color:#8496ad;font-size:11.5px}

/* Settings */
.set-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.set-card{padding:20px}
.set-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.set-head>i{width:40px;height:40px;border-radius:11px;background:rgba(69,181,255,.12);color:var(--blue);display:grid;place-items:center;font-size:16px;flex:none}
.set-head h3{font-size:14px;margin:0 0 4px}
.set-head p{margin:0;color:#8496ad;font-size:11.5px}
.set-meta{color:#8496ad;font-size:11px}
.topo-toggle{display:flex;align-items:center;gap:8px;color:#a9bccf;font-size:11.5px;background:#122238;border:1px solid #29415d;border-radius:8px;padding:8px 12px}
.topo-toggle input{accent-color:var(--green)}
.secondary-btn.sm{padding:6px 9px;font-size:10.5px}
.secondary-btn.sm i{margin-right:4px}
.secondary-btn.danger{color:#f47b8b;border-color:#5a2c38}
.secondary-btn.danger:hover{background:#2a1720}
.role-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10.5px;font-weight:800;letter-spacing:.3px}
.role-badge.admin{background:rgba(69,181,255,.14);color:#7cc6ff}
.role-badge.jr_admin{background:rgba(165,123,255,.15);color:#c1a4ff}
.role-badge.viewer{background:rgba(129,144,167,.16);color:#a9bad0}
.hid-chip{display:inline-block;background:#152940;color:#9db0c8;border:1px solid #23415e;border-radius:14px;padding:2px 9px;font-size:10px;margin:2px 3px 2px 0}
.hid-none{color:#647892;font-size:11px;font-style:italic}
.perm-actions{display:flex;gap:6px;white-space:nowrap}
.hid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hid-check{display:flex;align-items:center;gap:7px;font-size:11px;color:#a9bccf;font-weight:500!important;background:#0a1626;border:1px solid var(--border);border-radius:7px;padding:8px 10px;cursor:pointer}
.hid-check input{width:auto;margin:0}
.mik-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:640px}
.mik-form label{display:block;color:#8ea1b8;font-size:10.5px;font-weight:700}
.mik-form input,.mik-form select{width:100%;margin-top:7px;padding:11px;border:1px solid var(--border);border-radius:8px;background:#0a1626;color:var(--text);outline:0;font-size:12px}
.mik-form input:focus,.mik-form select:focus{border-color:var(--blue)}
.mik-form-actions{grid-column:1/-1;display:flex;gap:10px}

/* API card */
.set-grid .full-card{grid-column:1/-1}
.api-keybox{margin-bottom:14px;font-size:12px}
.api-ok{color:var(--green);display:inline-flex;align-items:center;gap:7px}
.api-muted{color:#8496ad}
.api-key-row,.api-ep{display:flex;align-items:center;gap:8px}
.api-key-row code,.api-ep code{background:#0a1626;border:1px solid #24405c;border-radius:7px;padding:8px 10px;font-family:'DM Mono';font-size:11px;color:#8fd6ff;overflow:auto;white-space:nowrap;flex:1}
.api-ep{margin-bottom:7px}
.api-ep-label{font-size:11px;color:#a9bccf;min-width:180px}
.api-auth{margin-top:10px;color:#8496ad;font-size:11px;line-height:1.6}
.api-auth code{background:#0a1626;border:1px solid #24405c;border-radius:5px;padding:1px 6px;font-family:'DM Mono';font-size:10.5px;color:#b8c9da}
.api-hint{color:#647892;font-size:10.5px;margin-top:9px}
.api-newkey-label{color:#f6b94a;font-size:11.5px;margin-bottom:8px;display:flex;align-items:center;gap:7px}
.copy-btn{background:transparent;border:0;color:#61748f;margin-left:8px;font-size:11px;padding:2px 5px;border-radius:5px}
.copy-btn:hover{color:var(--blue);background:rgba(69,181,255,.12)}
.inline-empty{display:flex;align-items:center;gap:10px;color:#6c7e96;font-size:12px;padding:22px 4px}
.td-empty{text-align:center;color:#6d7f97;padding:26px!important}
.muted-cell{color:#5f7391}
.text-warn{color:var(--yellow)!important}

/* PON List */
.pon-summary-bar{display:flex;align-items:center;gap:34px;background:#0e1b2c;border:1px solid var(--border);border-radius:12px;padding:16px 22px;margin-bottom:18px}
.pon-summary-bar strong{font-size:22px;display:block;letter-spacing:-1px}
.pon-summary-bar span{color:#8496ad;font-size:11px}
.pon-tag{display:inline-block;background:#0f2035;border:1px solid #1e3a56;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:600;color:#7cc6ff;letter-spacing:.2px}
.onu-name-cell{font-size:12px;font-weight:600;color:#b8cbe0}
.mac-cell{font-size:11px;font-weight:500;color:#8da5bf;white-space:nowrap;letter-spacing:.3px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.rx-cell{font-size:11.5px;font-weight:600;color:#a0b8ce;white-space:nowrap}
.onu-status-badges{display:flex;gap:6px;flex-wrap:wrap}
.onu-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:5px;font-size:10.5px;font-weight:700}
.onu-badge.online{background:rgba(50,213,131,.12);color:#72dca1}
.onu-badge.offline{background:rgba(239,89,111,.12);color:#f47b8b}
.onu-badge.weak{background:rgba(246,185,74,.12);color:#e9bb63}
.pon-bar-wrap{height:5px;background:#0d1b2c;border-radius:3px;width:80px;display:inline-block;vertical-align:middle;margin-right:7px}
.pon-bar{height:5px;border-radius:3px;background:var(--green)}
.pon-bar.warning{background:var(--yellow)}
.pon-bar.info{background:var(--blue)}
.pon-pct{font-size:11px;font-weight:600;color:#8496ad}
.filter-pills-btn{border:1px solid transparent;background:transparent;color:#74869e;padding:7px 11px;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer}
.filter-pills-btn span{background:#152940;padding:2px 5px;border-radius:8px;margin-left:4px;color:#98aac1;font-size:10px}
.filter-pills-btn.active{background:#142b43;color:#c9d9eb;border-color:#203e5c}
.onu-filter-sel{background:#0c1829;border:1px solid var(--border);color:#90a2b8;padding:7px 11px;border-radius:7px;font-size:11.5px;font-family:inherit;font-weight:500;outline:none;cursor:pointer}
.onu-filter-sel:focus{border-color:var(--blue)}
.vendor-badge{display:inline-block;background:rgba(165,123,255,.13);border:1px solid rgba(165,123,255,.25);border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:700;color:#c1a4ff;letter-spacing:.3px}
.model-tag{display:inline-block;background:rgba(69,181,255,.1);border:1px solid rgba(69,181,255,.2);border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:600;color:#7cc6ff}

/* Speed font */
.mik-card-vals strong,.mmr-vals span{font-family:Manrope,Arial,sans-serif!important;font-weight:800!important;letter-spacing:-.5px;font-size:15px!important}
.mik-card-vals strong{font-size:18px!important}

/* Table scroll — NEVER expand past container */
.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive table{min-width:500px}
.table-responsive th,.table-responsive td{white-space:nowrap}

/* Responsive fixes */
@media(max-width:900px){
  .mik-focus-grid{grid-template-columns:1fr}
  .mik-detail-stats{grid-template-columns:repeat(2,1fr)}
  .set-grid{grid-template-columns:1fr}
  .hid-grid{grid-template-columns:repeat(2,1fr)}
  .cust-summary{flex-wrap:wrap;gap:18px}
  .cust-src{margin-left:0;width:100%}
  .mik-form{grid-template-columns:1fr}
}

/* ================= SIDEBAR ALWAYS VISIBLE ON DESKTOP ================= */
@media screen and (min-width:901px){
  .sidebar{transform:translateX(0)!important;position:sticky!important;top:0!important;height:100vh!important}
  .mobile-menu{display:none}
}
