@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-primary-soft:#eff6ff;--color-bg:#f8fbff;--color-border:#dbeafe;--color-text:#1e293b;--color-text-muted:#64748b;--radius-sm:10px;--radius-md:16px;--shadow-sm:0 2px 10px -2px rgba(30,64,175,.08),0 8px 24px -8px rgba(30,64,175,.12);--sidebar-width:256px;--topbar-height:64px}
html,body{font-family:Inter,system-ui,sans-serif;background:#f8fbff;color:#1e293b;font-size:14px}h1,h2,h3,h4{font-weight:800;letter-spacing:-.025em;color:#1e293b}h1{font-size:25px}
.sidebar{width:256px;background:#fff;border-right:1px solid #dbeafe;box-shadow:none}.sidebar-brand{height:64px;min-height:64px;padding:0 16px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #dbeafe;color:#1e293b;font-weight:800;font-size:18px}.sidebar-brand .logo-mark,.auth-brand .logo-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;box-shadow:var(--shadow-sm);display:grid;place-items:center}.sidebar-brand .logo-mark svg{width:22px;height:22px}
.sidebar-nav{padding:14px 12px}.sidebar-group{margin-bottom:10px}.sidebar-group-label{padding:12px 12px 7px;font-size:10px;font-weight:800;letter-spacing:.09em;color:#94a3b8;text-transform:uppercase}.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;font-size:13px;font-weight:500;color:#475569;min-height:43px;transition:background .16s,color .16s}.sidebar-link:hover{background:#eff6ff;color:#1d4ed8}.sidebar-link.active{background:#eff6ff;color:#1d4ed8;font-weight:700;box-shadow:none}.sidebar-link .nav-icon{width:20px;height:20px;flex-shrink:0}.sidebar-sub{margin-left:21px;border-left:1px solid #dbeafe;padding-left:8px}.sidebar-sub .sidebar-link{font-size:12.5px}
.sidebar-foot{background:white;border-top:1px solid #dbeafe;padding:14px}.sidebar-profile{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sidebar-profile .avatar{width:36px;height:36px;background:#dbeafe;color:#1d4ed8}.sidebar-profile-name{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile-role{font-size:10px;letter-spacing:.08em;color:#94a3b8;text-transform:uppercase}.sidebar-foot .btn{color:#e11d48;border-color:transparent;background:transparent;justify-content:flex-start;width:100%}.sidebar-foot .btn:hover{background:#fff1f2}
.topbar{height:64px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid #dbeafe;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-title{font-size:17px;font-weight:700;color:#1e293b}.topbar-right .avatar{background:#dbeafe;color:#1d4ed8}.content{max-width:1280px;margin:0 auto;padding:28px 32px 50px}
.card,.auth-card{border:1px solid #dbeafe;border-radius:16px;box-shadow:var(--shadow-sm);background:white}.card-header{padding:17px 20px;border-bottom:1px solid #eff6ff}.card-body{padding:20px}.card-header h3{font-size:15px}
.stat-grid{gap:16px;margin-bottom:20px}.stat-card{border-radius:16px;padding:20px;min-height:116px;background:#fff;border:1px solid #dbeafe;box-shadow:var(--shadow-sm)}.stat-card:first-child{background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:transparent}.stat-card:first-child .stat-label,.stat-card:first-child .stat-value,.stat-card:first-child *{color:white}.stat-card .stat-value{font-size:27px;font-weight:800;color:#1e293b}.stat-card .stat-label{font-size:12px;color:#64748b}
.btn{border-radius:11px;font-size:13px;font-weight:700;padding:10px 16px;min-height:38px}.btn-primary{background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:#2563eb;color:white;box-shadow:0 3px 12px rgba(37,99,235,.16)}.btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#0284c7);border-color:#1d4ed8;filter:brightness(1.04)}.btn-outline{background:white;border-color:#cbd5e1;color:#475569}.btn-outline:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.btn-danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.btn-danger:hover{background:#e11d48;border-color:#e11d48;color:white}
.form-control,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]),select,textarea{border-radius:12px;border-color:#cbd5e1}.form-control:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#2563eb;outline:0;box-shadow:0 0 0 3px rgba(37,99,235,.13)}label{font-weight:600;color:#334155}
.table{font-size:13px}.table th{background:#f8fafc;color:#64748b;font-size:11px;font-weight:700;padding:13px 16px}.table td{padding:13px 16px;border-bottom:1px solid #f1f5f9}.table tr:hover td{background:#f8fafc}.table-wrap{overflow-x:auto;max-width:100%}
.badge{border-radius:999px;padding:5px 10px;font-weight:700}.badge-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.badge-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.badge-danger{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
.auth-shell{background:#f8fbff}.auth-card{border-radius:20px}.auth-brand h2{font-weight:800}.auth-brand .logo-mark{font-weight:800}.mb-page-heading-icon{background:linear-gradient(135deg,#2563eb,#0ea5e9)}.mb-router-hero{border-color:#dbeafe;border-radius:16px;box-shadow:var(--shadow-sm)}.callout-info{background:#eff6ff;border-color:#bfdbfe;border-radius:12px}.modal-backdrop{background:rgba(15,44,92,.55);backdrop-filter:blur(2px)}@keyframes mb-pop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.modal-panel,.modal-content{animation:mb-pop .18s ease-out}.sidebar-backdrop.is-open{background:rgba(15,23,42,.4)}
@media(max-width:900px){.sidebar{width:min(300px,86vw)}.content{padding:18px}.topbar{padding:0 16px}}@media(max-width:640px){.content{padding:14px}.card-body{padding:16px}.stat-card{padding:16px;min-height:100px}.stat-card .stat-value{font-size:22px}.topbar-title{font-size:15px}.btn{min-height:42px}}

/* Navigation usability fixes: left aligned labels and native, JS-independent submenus */
.sidebar-link{justify-content:flex-start!important;text-align:left;direction:ltr;width:100%;min-width:0}
.sidebar-link>span:not(.nav-chevron){text-align:left}
.sidebar-link .nav-icon{display:block;flex:0 0 20px}
.sidebar-link .nav-label{flex:1;min-width:0}
.sidebar-dropdown{display:block;width:100%}
.sidebar-dropdown>summary{list-style:none;cursor:pointer;user-select:none}
.sidebar-dropdown>summary::-webkit-details-marker{display:none}
.sidebar-dropdown>summary .nav-chevron{width:16px;height:16px;margin-left:auto;flex-shrink:0;transition:transform .2s}
.sidebar-dropdown[open]>summary .nav-chevron{transform:rotate(90deg)}
.sidebar-dropdown .sidebar-sub{display:block!important;visibility:visible!important}
.sidebar-sub .sidebar-link{justify-content:flex-start!important}
@media(max-width:900px){.sidebar{width:min(300px,86vw);max-width:86vw;overflow-x:hidden}.sidebar-nav{overflow-y:auto;flex:1;min-height:0}.sidebar-link{padding:12px;min-height:46px}.sidebar-dropdown>summary{touch-action:manipulation}.sidebar-sub{margin-left:15px;padding-left:8px}.sidebar-sub .sidebar-link{white-space:normal;overflow-wrap:anywhere}.sidebar-brand{flex-shrink:0}.sidebar-foot{flex-shrink:0}}
/* MikroTik adoption wizard */
.mb-wizard{max-width:920px;margin:0 0 22px}.mb-wizard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.mb-wizard-head h1{margin:3px 0 6px}.mb-wizard-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:0}.mb-wizard-steps li{display:flex;align-items:center;gap:7px;min-width:0;border:1px solid #dbeafe;background:#fff;border-radius:12px;padding:11px 10px;color:#94a3b8;font-size:12px;font-weight:700}.mb-wizard-steps li span{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#f1f5f9;color:#64748b;font-size:12px}.mb-wizard-steps li.current{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.mb-wizard-steps li.current span{background:#2563eb;color:#fff}.mb-wizard-steps li.done{border-color:#a7f3d0;color:#047857;background:#ecfdf5}.mb-wizard-steps li.done span{background:#059669;color:#fff}.mb-wizard+.card .card-body{padding:24px}.mb-wizard+.card textarea{max-width:100%;resize:vertical}.mb-wizard+.card .btn{margin-bottom:6px}
@media(max-width:700px){.mb-wizard-head{flex-wrap:wrap}.mb-wizard-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.mb-wizard-steps li{flex-direction:column;text-align:center;justify-content:center;gap:5px;padding:8px 3px;font-size:10px;overflow-wrap:anywhere}.mb-wizard-steps li span{flex:0 0 22px;width:22px;height:22px}.mb-wizard+.card .card-body{padding:16px}#waiting-indicator{flex-wrap:wrap}}
