:root{--navy:#082d55;--navy2:#0b3d70;--blue:#1779e6;--sky:#8ed7ff;--pale:#eaf7ff;--bg:#f4f8fc;--card:#fff;--text:#10233f;--muted:#6b7f99;--border:#dce7f2;--success:#16a34a;--danger:#dc2626}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--blue)}body.app-shell{display:flex}.sidebar{width:250px;min-height:100vh;background:linear-gradient(180deg,var(--navy),#061f3c);color:#fff;position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column;z-index:50;box-shadow:10px 0 30px rgba(8,45,85,.08)}.sidebar-brand{background:linear-gradient(180deg,#c8ecff,#8ed7ff);padding:18px;display:flex;justify-content:center}.sidebar-brand img{width:150px;height:150px;object-fit:contain;border-radius:12px}.sidebar-user{display:flex;gap:12px;align-items:center;padding:18px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-user .avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#dff3ff;color:var(--navy);font-weight:800}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{color:#b8c8da;font-size:11px;margin-top:3px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.side-nav{padding:14px 12px;overflow-y:auto}.nav-section{display:block;color:#8fa9c4;font-size:11px;text-transform:uppercase;letter-spacing:.12em;padding:12px 10px 6px}.side-nav a{display:flex;align-items:center;gap:12px;color:#e8f2ff;text-decoration:none;padding:11px 12px;border-radius:8px;margin:2px 0;font-size:14px}.side-nav a span{width:22px;text-align:center}.side-nav a:hover,.side-nav a.active{background:linear-gradient(90deg,#1f84ed,#176bd0);color:#fff;box-shadow:0 6px 20px rgba(23,121,230,.28)}.sidebar-footer{margin-top:auto;padding:18px 22px;color:#c5d6e8}.sidebar-footer strong,.sidebar-footer small{display:block}.sidebar-footer small{margin-top:4px;font-size:11px}.main-panel{margin-left:250px;min-height:100vh;width:calc(100% - 250px)}.top-header{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:20}.menu-toggle{display:none;border:0;background:none;font-size:22px;color:var(--navy)}.header-search{width:min(420px,45vw);background:#f8fbfe;border:1px solid var(--border);border-radius:9px;padding:11px 14px;color:#8a9bb0;font-size:13px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.logout-link{margin-left:8px;text-decoration:none;font-weight:700}.content-area{padding:24px}.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dashboard-heading h1{margin:0;font-size:28px}.dashboard-heading p{margin:6px 0 0;color:var(--muted)}.date-chip{background:#fff;border:1px solid var(--border);padding:10px 14px;border-radius:9px;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.kpi-card{background:#fff;border:1px solid var(--border);border-radius:13px;padding:18px;display:flex;gap:14px;align-items:center;box-shadow:0 7px 25px rgba(20,72,115,.05)}.kpi-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--pale);color:var(--blue);font-size:24px}.kpi-card span,.kpi-card small{display:block}.kpi-card span{font-size:13px;font-weight:700}.kpi-card strong{display:block;font-size:23px;margin:4px 0}.kpi-card small{color:var(--muted);font-size:11px}.dashboard-grid{display:grid;gap:16px}.main-overview{grid-template-columns:1.25fr 1fr .55fr}.lower-grid{grid-template-columns:1fr 1fr;margin-top:16px}.panel{background:#fff;border:1px solid var(--border);border-radius:13px;padding:18px;box-shadow:0 7px 25px rgba(20,72,115,.05)}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.panel-title h2{margin:0;font-size:17px}.panel-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-title a{text-decoration:none;font-size:12px;font-weight:700}.network-hero{min-height:220px;border-radius:12px;background:linear-gradient(135deg,#eef9ff,#d8efff);display:flex;align-items:center;justify-content:center;gap:24px;padding:24px}.network-hero span{color:var(--muted);font-size:13px}.network-hero strong{display:block;font-size:48px;color:var(--navy);margin:4px 0}.network-hero p{max-width:260px;color:var(--muted);font-size:13px}.signal-visual{position:relative;width:130px;height:130px;display:grid;place-items:center}.signal-ring{position:absolute;border:2px solid #72c8ff;border-radius:50%}.ring-1{inset:8px}.ring-2{inset:28px}.signal-core{width:54px;height:54px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:24px;box-shadow:0 0 0 12px rgba(23,121,230,.12)}.mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.mini-metrics div{background:#f8fbfe;border:1px solid var(--border);padding:12px;border-radius:9px}.mini-metrics span,.mini-metrics strong{display:block}.mini-metrics span{font-size:11px;color:var(--muted)}.mini-metrics strong{font-size:20px;margin-top:5px}.clean-list-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #edf2f7;text-decoration:none;color:inherit}.clean-list-row:last-child{border-bottom:0}.clean-list-row strong,.clean-list-row small{display:block}.clean-list-row small{color:var(--muted);margin-top:3px}.list-amount{text-align:right}.health-circle{width:135px;height:135px;border-radius:50%;margin:8px auto 20px;display:grid;place-items:center;align-content:center;border:11px solid #d9ecff;border-top-color:var(--blue);color:var(--navy)}.health-circle span,.health-circle strong{display:block;text-align:center}.health-circle span{font-size:12px}.health-circle strong{font-size:20px}.summary-list{list-style:none;margin:0;padding:0}.summary-list li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf2f7;font-size:13px}.summary-list li:last-child{border:0}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-actions a{display:flex;gap:9px;align-items:center;background:#f6fbff;border:1px solid var(--border);padding:14px;border-radius:9px;text-decoration:none;font-weight:700;color:var(--navy)}.quick-actions a span{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#dff3ff;color:var(--blue)}.brand-card{background:linear-gradient(135deg,#eaf7ff,#ccecff);display:flex;justify-content:space-between;align-items:center}.brand-card p{color:#47647f;max-width:500px;line-height:1.6}.brand-card img{width:130px;height:130px;object-fit:contain;border-radius:12px}.container{width:min(1180px,94%);margin:25px auto}.auth-container{min-height:100vh;display:grid;place-items:center}.auth-card{width:min(430px,92vw);background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px;box-shadow:0 20px 60px rgba(8,45,85,.12)}label{display:block;font-weight:700;font-size:13px}input,select,textarea{width:100%;padding:11px;border:1px solid var(--border);border-radius:8px;margin-top:6px;font:inherit;background:#fff}textarea{min-height:100px}button,.button{background:var(--blue);color:#fff;border:0;border-radius:8px;padding:11px 16px;text-decoration:none;display:inline-block;cursor:pointer;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.full{grid-column:1/-1}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card{background:#fff;border:1px solid var(--border);border-radius:13px;padding:20px;box-shadow:0 7px 25px rgba(20,72,115,.05)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);font-size:13px}th{background:#f5faff;color:#4d647d}tr:last-child td{border-bottom:0}.right{text-align:right}.badge{padding:4px 8px;border-radius:20px;font-size:11px;background:#e2e8f0}.badge.paid,.badge.active,.badge.online{background:#dcfce7;color:#166534}.badge.overdue,.badge.suspended,.badge.offline{background:#fee2e2;color:#991b1b}.badge.sent,.badge.part-paid,.badge.open{background:#fff3cd;color:#8a5a00}.alert{padding:12px 15px;border-radius:9px;margin:12px 0}.alert.success{background:#dcfce7}.alert.error{background:#fee2e2}.alert.info{background:#dbeafe}.invoice-top{display:flex;justify-content:space-between}.script-box{width:100%;min-height:430px;font-family:Consolas,monospace;font-size:13px;white-space:pre;overflow:auto}.small-script{min-height:110px}.connection-panel{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 5px 20px #0000000d}.connection-panel h2{margin:4px 0 8px;font-size:26px}.connection-panel p{margin:0;color:var(--muted);max-width:760px;line-height:1.5}.connection-icon{width:50px;height:50px;flex:0 0 50px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:800}.connection-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800;color:var(--muted)}.connection-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:13px;font-size:13px}.connection-online{border-left:6px solid #16a34a}.connection-online .connection-icon{background:#dcfce7;color:#166534}.connection-offline{border-left:6px solid #dc2626}.connection-offline .connection-icon{background:#fee2e2;color:#991b1b}.connection-disabled,.connection-not-configured{border-left:6px solid #64748b}.connection-disabled .connection-icon,.connection-not-configured .connection-icon{background:#e2e8f0;color:#334155}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.main-overview{grid-template-columns:1fr 1fr}.system-card{grid-column:1/-1}.lower-grid{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar-open .sidebar{transform:translateX(0)}.main-panel{margin-left:0;width:100%}.menu-toggle{display:block}.header-search{display:none}.content-area{padding:16px}.kpi-grid,.main-overview,.lower-grid,.form-grid{grid-template-columns:1fr}.brand-card{flex-direction:column;align-items:flex-start}.sidebar-brand img{width:120px;height:120px}.connection-panel{align-items:center}.connection-meta{flex-direction:column;gap:5px}table{display:block;overflow-x:auto}}
@media print{.sidebar,.top-header,.page-head button{display:none}.main-panel{margin:0;width:100%}.content-area{padding:0}.card{box-shadow:none;border:0}}
.finance-grid{grid-template-columns:1.5fr 1fr}.ageing-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.ageing-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:16px}.ageing-grid span,.ageing-grid strong{display:block}.ageing-grid span{font-size:11px;color:var(--muted)}.ageing-grid strong{margin-top:8px;font-size:18px}.collection-rate{text-align:center}.collection-rate p{color:var(--muted);font-size:13px}.statement-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:16px}.statement-logo{width:110px;height:110px;object-fit:contain}.statement-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.statement-summary div{padding:14px;background:#f7fbff;border:1px solid var(--border);border-radius:9px}.statement-summary span,.statement-summary strong{display:block}.statement-summary span{font-size:11px;color:var(--muted)}.statement-summary strong{margin-top:6px}.statement-balance{background:#e3f3ff!important;border-color:#8ed7ff!important}.finance-small{grid-template-columns:repeat(2,1fr);max-width:600px}
@media(max-width:900px){.finance-grid,.ageing-grid,.statement-summary{grid-template-columns:1fr 1fr}.statement-filter{grid-template-columns:1fr}}
@media(max-width:600px){.ageing-grid,.statement-summary{grid-template-columns:1fr}}

.check-row{display:flex;align-items:center;gap:9px}.check-row input,.danger-button{background:var(--danger)}code{background:#eef5fb;padding:2px 5px;border-radius:5px}
@media(max-width:800px){}

.backbone-alert-panel{margin-top:16px;border-left:5px solid #dc2626}.network-alert{display:flex;gap:14px;align-items:center;padding:14px;border-radius:10px;margin:10px 0}.network-alert.critical{background:#fff1f2;border:1px solid #fecdd3}.network-alert-icon{width:40px;height:40px;border-radius:50%;background:#dc2626;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900}.network-alert p{margin:4px 0 0;color:#7f1d1d}.customer-network-warning{display:flex;gap:18px;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fdba74;border-left:7px solid #ea580c;border-radius:14px;padding:22px;margin-bottom:18px}.customer-network-warning h2{margin:4px 0 10px;color:#9a3412}.customer-network-warning p{margin:7px 0;line-height:1.5}.warning-symbol{width:52px;height:52px;flex:0 0 52px;border-radius:50%;background:#ea580c;color:#fff;display:grid;place-items:center;font-size:28px;font-weight:900}.warning-note{font-size:12px;color:#9a3412}.customer-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.customer-check-grid label{display:flex;gap:8px;align-items:center;border:1px solid var(--border);background:#f8fbfe;padding:11px;border-radius:8px}.customer-check-grid input{width:auto;margin:0}.badge.critical{background:#fee2e2;color:#991b1b}.badge.high{background:#ffedd5;color:#9a3412}.badge.normal{background:#dbeafe;color:#1e40af}
@media(max-width:850px){.customer-check-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.customer-check-grid{grid-template-columns:1fr}.customer-network-warning{align-items:flex-start}}

.service-control-box{background:linear-gradient(135deg,#eef8ff,#dcefff);border:1px solid #9ed8ff;border-radius:11px;padding:16px}.service-control-box h2{margin:0 0 6px}.service-control-box p{margin:0;color:var(--muted)}.control-status-row{display:flex;gap:20px;flex-wrap:wrap;background:#f8fbfe;border:1px solid var(--border);padding:13px;border-radius:9px}.control-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.control-details div{background:#f7fbff;border:1px solid var(--border);border-radius:9px;padding:13px}.control-details span,.control-details strong{display:block}.control-details span{font-size:11px;color:var(--muted)}.control-details strong{margin-top:5px;word-break:break-word}@media(max-width:700px){.control-details{grid-template-columns:1fr}}

.inline-form{display:inline;margin:0;padding:0}.link-button{border:0;background:none;padding:0;font:inherit;font-weight:700;cursor:pointer}.danger-link{color:#dc2626}.danger-link:hover{text-decoration:underline}

.asset-actions{display:flex;gap:10px}.equipment-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.equipment-card{display:flex;gap:15px;background:#fff;border:1px solid var(--border);border-radius:13px;padding:18px;box-shadow:0 7px 25px rgba(20,72,115,.05)}.equipment-card h2{margin:0 0 10px;font-size:18px}.equipment-card p{margin:5px 0;color:var(--muted);font-size:13px}.equipment-icon{width:50px;height:50px;flex:0 0 50px;border-radius:12px;background:var(--pale);color:var(--blue);display:grid;place-items:center;font-size:26px}
.badge.in-stock{background:#dcfce7;color:#166534}.badge.assigned{background:#dbeafe;color:#1e40af}.badge.faulty,.badge.lost{background:#fee2e2;color:#991b1b}.badge.returned,.badge.retired{background:#e2e8f0;color:#334155}
@media(max-width:1000px){.equipment-cards{grid-template-columns:1fr 1fr}}@media(max-width:650px){.equipment-cards{grid-template-columns:1fr}.asset-actions{flex-direction:column}}

/* Modern Techfury login */
body.auth-layout{min-height:100vh;background:#eef6fc}
.auth-layout .auth-container{width:100%;max-width:none;margin:0;padding:0;display:block;min-height:100vh}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr)}
.login-brand-panel{position:relative;overflow:hidden;background:
 radial-gradient(circle at 18% 22%,rgba(142,215,255,.35),transparent 28%),
 linear-gradient(145deg,#061f3c 0%,#082d55 48%,#0d5ca8 100%);
 color:#fff;padding:64px 7vw;display:flex;align-items:center}
.login-brand-content{position:relative;z-index:2;max-width:650px}
.login-logo{width:190px;height:190px;object-fit:contain;border-radius:24px;background:rgba(255,255,255,.94);padding:12px;box-shadow:0 25px 70px rgba(0,0,0,.22);margin-bottom:34px}
.login-kicker{display:inline-block;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:#79cfff;margin-bottom:10px}
.login-brand-copy h1{font-size:clamp(38px,4vw,64px);line-height:1.05;margin:0 0 22px;max-width:760px}
.login-brand-copy p{font-size:17px;line-height:1.7;color:#d4e6f7;max-width:620px;margin:0}
.login-features{display:grid;grid-template-columns:1fr;gap:13px;margin-top:34px}
.login-features div{display:flex;gap:11px;align-items:center;color:#e9f5ff}
.login-features span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(142,215,255,.18);border:1px solid rgba(142,215,255,.45);color:#8ed7ff}
.login-network-art{position:absolute;inset:0;opacity:.65}
.login-network-art .node{position:absolute;width:18px;height:18px;border-radius:50%;background:#8ed7ff;box-shadow:0 0 0 8px rgba(142,215,255,.12),0 0 35px rgba(142,215,255,.65)}
.node-a{right:18%;top:20%}.node-b{right:8%;top:45%}.node-c{right:25%;bottom:16%}.node-d{left:16%;bottom:10%}
.login-network-art .link{position:absolute;height:2px;background:linear-gradient(90deg,transparent,#8ed7ff,transparent);transform-origin:left center}
.link-a{width:220px;right:8%;top:34%;transform:rotate(54deg)}
.link-b{width:270px;right:8%;top:46%;transform:rotate(126deg)}
.link-c{width:360px;left:18%;bottom:18%;transform:rotate(-7deg)}
.login-form-panel{display:flex;align-items:center;justify-content:center;padding:48px;background:
 linear-gradient(180deg,#f9fcff,#edf6fd)}
.modern-login-card{width:min(470px,100%);background:#fff;border:1px solid #d9e7f4;border-radius:24px;padding:36px;box-shadow:0 28px 80px rgba(8,45,85,.13)}
.login-mobile-logo{display:none;text-align:center;margin-bottom:20px}
.login-mobile-logo img{width:120px;height:120px;object-fit:contain}
.login-card-heading h2{font-size:31px;margin:0 0 10px;color:#082d55}
.login-card-heading p{margin:0 0 26px;color:#6b7f99;line-height:1.55}
.modern-login-form{display:grid;gap:18px}
.modern-login-form label{font-size:13px;color:#263f5d}
.input-with-icon{position:relative;margin-top:8px}
.input-with-icon input{height:52px;padding:0 54px 0 46px;border:1px solid #d4e2ef;border-radius:12px;background:#f9fcff;transition:.2s;box-shadow:none}
.input-with-icon input:focus{outline:none;border-color:#1779e6;background:#fff;box-shadow:0 0 0 4px rgba(23,121,230,.1)}
.field-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#1779e6;font-weight:900;z-index:1}
.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#1779e6;padding:7px 8px;font-size:12px}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px}
.remember-option{display:flex!important;align-items:center;gap:8px;font-weight:500!important;color:#60758d!important}
.remember-option input{width:auto;margin:0}
.secure-login-note{font-size:11px;color:#16a34a;font-weight:700}
.login-submit{width:100%;height:52px;border-radius:12px;background:linear-gradient(90deg,#1779e6,#0d5ca8);display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;box-shadow:0 12px 30px rgba(23,121,230,.28);transition:.2s}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 16px 35px rgba(23,121,230,.34)}
.login-submit span{font-size:20px}
.login-help{margin-top:24px;padding:16px;border-radius:12px;background:#f2f9ff;border:1px solid #d8ebfb}
.login-help strong{font-size:13px;color:#082d55}
.login-help p{margin:5px 0 0;color:#6b7f99;font-size:12px;line-height:1.5}
.login-footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px;color:#8a9bb0;font-size:11px}
@media(max-width:980px){
 .login-shell{grid-template-columns:1fr}
 .login-brand-panel{display:none}
 .login-form-panel{min-height:100vh;padding:24px}
 .login-mobile-logo{display:block}
 .modern-login-card{padding:28px}
}
@media(max-width:520px){
 .login-form-panel{padding:14px}
 .modern-login-card{border-radius:18px;padding:24px 20px}
 .login-card-heading h2{font-size:26px}
 .login-options,.login-footer{align-items:flex-start;flex-direction:column}
}

.alternative-login{display:grid;gap:10px;margin-top:18px;text-align:center}.alternative-login a{text-decoration:none;font-size:13px;font-weight:700}.otp-login-button{border:1px solid var(--blue);border-radius:11px;padding:12px;background:#f1f8ff}.otp-auth-card{width:min(450px,92vw);margin:6vh auto;background:#fff;border:1px solid var(--border);border-radius:22px;padding:32px;box-shadow:0 24px 70px rgba(8,45,85,.14)}.otp-auth-card>img{width:125px;height:125px;object-fit:contain;display:block;margin:0 auto 20px}.otp-auth-card h1{margin:0 0 8px;color:var(--navy)}.otp-auth-card>p{color:var(--muted);line-height:1.5}.otp-auth-card form{display:grid;gap:17px;margin-top:22px}.otp-auth-card button{height:50px}.otp-links{display:flex;justify-content:space-between;gap:12px;margin-top:20px;font-size:12px}.otp-links a{text-decoration:none;font-weight:700}

.admin-account-grid{grid-template-columns:1fr 1fr}.password-guidance{display:grid;gap:5px;background:#f4f9fd;border:1px solid var(--border);border-radius:10px;padding:14px}.password-guidance strong{color:var(--navy);margin-bottom:4px}.password-guidance span{font-size:12px;color:var(--muted)}.password-guidance span:before{content:"✓";color:var(--success);font-weight:800;margin-right:7px}.admin-security-summary{margin-top:16px}.admin-security-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-security-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:15px}.admin-security-grid span,.admin-security-grid strong{display:block}.admin-security-grid span{font-size:11px;color:var(--muted);margin-bottom:7px}.admin-security-grid strong{word-break:break-word}
@media(max-width:950px){.admin-account-grid{grid-template-columns:1fr}.admin-security-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.admin-security-grid{grid-template-columns:1fr}}

.billing-run-success{background:#dcfce7;border:1px solid #86efac;border-radius:10px;padding:14px}.invoice-link-note{font-size:12px;color:var(--muted)}

.document-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.document-toolbar h1{margin:0}.document-toolbar p{margin:5px 0 0;color:var(--muted)}.document-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.modern-document{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 18px 55px rgba(8,45,85,.08)}.document-header{display:flex;justify-content:space-between;gap:25px;padding:30px;background:linear-gradient(135deg,#f6fbff,#e7f5ff);border-bottom:1px solid var(--border)}.document-brand{display:flex;gap:18px}.document-brand img{width:120px;height:120px;object-fit:contain;border-radius:16px;background:#fff;padding:7px}.document-brand h2{margin:0 0 8px;color:var(--navy);font-size:25px}.document-brand p{margin:5px 0;color:#49657f;line-height:1.5;font-size:13px}.document-title-block{text-align:right}.document-title-block .document-label,.document-section-label{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:800;color:var(--blue)}.document-title-block h1{margin:7px 0 12px;font-size:30px;color:var(--navy)}.document-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:24px 30px}.document-address-box,.document-details-box,.statement-highlight{background:#f8fbfe;border:1px solid var(--border);border-radius:12px;padding:18px}.document-address-box strong{display:block;font-size:17px;margin-top:8px}.document-address-box p{margin:7px 0 0;color:var(--muted);line-height:1.55}.document-details-box{display:grid;grid-template-columns:1fr 1fr;gap:14px}.document-details-box div{padding-bottom:10px;border-bottom:1px solid #e6eef5}.document-details-box span,.document-details-box strong{display:block}.document-details-box span{font-size:11px;color:var(--muted);margin-bottom:5px}.document-table-wrap{padding:0 30px}.document-table{border-radius:12px}.document-table thead th{background:var(--navy);color:#fff}.document-bottom-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;padding:24px 30px}.payment-panel,.contact-panel{background:#f8fbfe;border:1px solid var(--border);border-radius:12px;padding:18px}.payment-panel h3,.contact-panel h3{margin:0 0 14px}.payment-row{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px solid #e4edf5}.payment-warning{margin-top:13px;background:#fff3cd;border:1px solid #facc15;border-radius:8px;padding:10px;color:#7c5a00;font-size:12px;font-weight:700}.document-totals{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fff}.document-totals>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf2f7}.document-totals>div:last-child{border-bottom:0}.document-total-main{font-size:19px;color:var(--navy)}.document-terms{margin:0 30px 24px;background:#f8fbfe;border:1px solid var(--border);border-radius:12px;padding:18px}.document-terms h3{margin:0 0 10px}.document-terms p{margin:6px 0;color:#526a82;font-size:12px;line-height:1.5}.document-footer{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;background:var(--navy);color:#fff;padding:15px;font-size:12px}.statement-highlight{display:grid;align-content:center}.statement-highlight span,.statement-highlight strong,.statement-highlight small{display:block}.statement-highlight span{font-size:12px;color:var(--muted)}.statement-highlight strong{font-size:30px;color:var(--navy);margin:8px 0}.modern-statement-summary{padding:0 30px}.company-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.company-contact-grid div{background:#f8fbfe;border:1px solid var(--border);border-radius:10px;padding:14px}.company-contact-grid span,.company-contact-grid strong{display:block}.company-contact-grid span{font-size:11px;color:var(--muted);margin-bottom:6px}.login-business-contact{display:grid;gap:4px;background:#f4f9fd;border:1px solid var(--border);border-radius:10px;padding:13px;margin-top:18px;font-size:11px;color:#60758d}.login-business-contact strong{color:var(--navy)}
@media(max-width:850px){.document-header,.document-toolbar{flex-direction:column}.document-title-block{text-align:left}.document-meta-grid,.document-bottom-grid{grid-template-columns:1fr}.document-brand{flex-direction:column}.document-details-box{grid-template-columns:1fr}.company-contact-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.document-header,.document-meta-grid,.document-bottom-grid{padding:20px}.document-table-wrap{padding:0 20px}.document-terms{margin:0 20px 20px}.modern-statement-summary{padding:0 20px}.company-contact-grid{grid-template-columns:1fr}}
@media print{.no-print,.document-toolbar,.sidebar,.top-header{display:none!important}.main-panel{margin:0!important;width:100%!important}.content-area{padding:0!important}.modern-document{box-shadow:none;border:0;border-radius:0}.document-header{background:#fff}.document-footer{background:#fff;color:#000;border-top:1px solid #ccc}.document-table thead th{background:#eee!important;color:#000!important}}

.payment-method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.payment-method-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:14px}.payment-method-grid strong,.payment-method-grid span{display:block}.payment-method-grid span{font-size:11px;color:var(--muted);margin-top:5px}.payment-method-grid.compact{grid-template-columns:repeat(2,1fr)}.payfast-checkout-grid{grid-template-columns:1fr 1fr}.payfast-summary{display:grid;gap:8px;margin-bottom:20px}.payfast-summary>div{display:flex;justify-content:space-between;padding:11px;border-bottom:1px solid var(--border)}.payfast-amount{background:#e8f5ff;border-radius:9px;border:1px solid #99d5ff!important;font-size:18px;color:var(--navy)}.payfast-button{width:100%;min-height:52px;background:linear-gradient(90deg,#073b73,#1779e6)}.payfast-top-button{background:linear-gradient(90deg,#073b73,#1779e6)}.payment-result-card{width:min(600px,92vw);margin:8vh auto;background:#fff;border:1px solid var(--border);border-radius:20px;padding:35px;text-align:center;box-shadow:0 25px 70px rgba(8,45,85,.14)}.payment-result-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;font-size:34px;font-weight:900;background:#dcfce7;color:#166534}.payment-result-card.cancelled .payment-result-icon{background:#ffedd5;color:#9a3412}.payment-result-card p{color:var(--muted);line-height:1.6}.payment-result-card .button{margin:6px}
@media(max-width:900px){.payment-method-grid{grid-template-columns:1fr 1fr}.payfast-checkout-grid{grid-template-columns:1fr}}
@media(max-width:550px){.payment-method-grid,.payment-method-grid.compact{grid-template-columns:1fr}}

.noc-health-banner{display:flex;justify-content:space-between;align-items:center;gap:25px;border-radius:16px;padding:24px;margin-bottom:16px;color:#fff;background:linear-gradient(135deg,#0f766e,#16a34a)}.noc-health-banner.warning{background:linear-gradient(135deg,#b45309,#f59e0b)}.noc-health-banner.critical{background:linear-gradient(135deg,#991b1b,#dc2626)}.noc-health-score strong,.noc-health-score span{display:block}.noc-health-score strong{font-size:44px}.noc-health-score span{opacity:.9}.noc-health-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.noc-health-stats strong,.noc-health-stats span{display:block;text-align:center}.noc-health-stats strong{font-size:24px}.noc-health-stats span{font-size:11px;opacity:.85}.noc-main-grid{grid-template-columns:1.2fr .8fr;margin-bottom:16px}.noc-alert-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:10px;margin:8px 0}.noc-alert-row.critical{background:#fff1f2;border-color:#fecdd3}.noc-alert-row.warning{background:#fffbeb;border-color:#fde68a}.noc-alert-dot{width:11px;height:11px;border-radius:50%;background:#f59e0b}.noc-alert-row.critical .noc-alert-dot{background:#dc2626}.noc-alert-row p{margin:4px 0;color:var(--muted);font-size:12px}.noc-alert-row small{color:var(--muted)}.noc-empty{text-align:center;padding:30px;color:var(--muted)}.noc-router-list{display:grid;gap:8px}.noc-router-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:11px;border-bottom:1px solid var(--border)}.noc-status-dot{width:10px;height:10px;border-radius:50%}.noc-status-dot.online{background:#16a34a;box-shadow:0 0 0 5px #dcfce7}.noc-status-dot.offline{background:#dc2626;box-shadow:0 0 0 5px #fee2e2}.noc-router-row strong,.noc-router-row small{display:block}.noc-router-row small{font-size:11px;color:var(--muted);margin-top:3px}.noc-router-state{text-align:right}.alert-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.alert-detail-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:9px;padding:14px}.alert-detail-grid span,.alert-detail-grid strong{display:block}.alert-detail-grid span{font-size:11px;color:var(--muted);margin-bottom:5px}
@media(max-width:900px){.noc-health-banner{align-items:flex-start;flex-direction:column}.noc-health-stats{width:100%;grid-template-columns:1fr 1fr}.noc-main-grid{grid-template-columns:1fr}.alert-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:550px){.noc-health-stats,.alert-detail-grid{grid-template-columns:1fr}.noc-router-row{grid-template-columns:auto 1fr}.noc-router-state{grid-column:2;text-align:left}}

.speedtest-panel{background:linear-gradient(145deg,#061f3c,#0b4b88);color:#fff;border-radius:20px;padding:30px;margin-bottom:18px;box-shadow:0 24px 60px rgba(8,45,85,.18)}.speedtest-gauge{text-align:center}.speedtest-ring{width:220px;height:220px;border-radius:50%;margin:auto;display:grid;place-items:center;align-content:center;background:radial-gradient(circle,#0b3d70 55%,transparent 57%),conic-gradient(#8ed7ff 0 78%,rgba(255,255,255,.12) 78%);box-shadow:inset 0 0 35px rgba(142,215,255,.22),0 18px 45px rgba(0,0,0,.2)}.speedtest-ring span{font-size:45px;font-weight:800}.speedtest-ring small{font-size:13px;color:#bfe6ff}.speedtest-gauge>span{display:block;margin-top:14px;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:#8ed7ff}.speedtest-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.speedtest-metrics div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:16px;text-align:center}.speedtest-metrics span,.speedtest-metrics strong,.speedtest-metrics small{display:block}.speedtest-metrics span{font-size:11px;color:#bfe6ff}.speedtest-metrics strong{font-size:25px;margin:7px 0}.speedtest-metrics small{font-size:11px}.speedtest-actions{text-align:center}.speedtest-actions button{min-width:220px;height:52px;background:linear-gradient(90deg,#8ed7ff,#1779e6);color:#06264a}.speedtest-message{margin-top:18px;text-align:center;color:#cfeaff;font-size:13px}.speedtest-message.success{color:#bbf7d0}.speedtest-message.error{color:#fecaca}.badge.excellent{background:#dcfce7;color:#166534}.badge.good{background:#dbeafe;color:#1e40af}.badge.fair{background:#fef3c7;color:#92400e}.badge.poor{background:#fee2e2;color:#991b1b}
@media(max-width:700px){.speedtest-metrics{grid-template-columns:1fr 1fr}.speedtest-ring{width:180px;height:180px}.speedtest-ring span{font-size:37px}}

.map-header-actions{display:flex;gap:10px;flex-wrap:wrap}.map-toolbar{display:grid;grid-template-columns:1.3fr .8fr .8fr auto;gap:12px;align-items:end;margin-bottom:16px}.map-legend{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:8px}.map-legend span{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.map-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.map-dot.active{background:#16a34a}.map-dot.suspended{background:#f59e0b}.map-dot.inactive{background:#64748b}.map-dot.router{background:#1779e6}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.map-container-panel{position:relative;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}.map-container-panel #customer-live-map{height:650px}.map-loading{position:absolute;left:50%;top:18px;transform:translateX(-50%);z-index:500;background:#fff;border:1px solid var(--border);border-radius:9px;padding:10px 14px;box-shadow:0 8px 25px rgba(8,45,85,.12)}.map-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.map-summary-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:9px;padding:12px}.map-summary-grid span,.map-summary-grid strong{display:block}.map-summary-grid span{font-size:10px;color:var(--muted)}.map-summary-grid strong{font-size:21px;margin-top:5px}.map-selected-card{margin-top:16px;border-top:1px solid var(--border);padding-top:16px}.map-selected-card h3{margin:8px 0}.map-selected-card p{margin:7px 0;color:var(--muted);font-size:12px}.map-selected-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.live-map-icon{background:transparent;border:0}.live-map-marker{display:block;width:22px;height:22px;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 12px rgba(0,0,0,.35)}.live-map-marker.customer.active{background:#16a34a}.live-map-marker.customer.suspended{background:#f59e0b}.live-map-marker.customer.inactive{background:#64748b}.live-map-marker.customer.router-offline{background:#dc2626}.live-map-marker.router{border-radius:6px;background:#1779e6}.live-map-marker.router.offline{background:#dc2626}.location-edit-grid{grid-template-columns:420px minmax(0,1fr)}#location-edit-map{height:570px}.location-button-row{display:flex;gap:10px;flex-wrap:wrap}.customer-location-status{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.customer-location-status div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:14px}.customer-location-status span,.customer-location-status strong{display:block}.customer-location-status span{font-size:11px;color:var(--muted);margin-bottom:5px}
@media(max-width:1000px){.map-toolbar{grid-template-columns:1fr 1fr}.map-layout{grid-template-columns:1fr}.map-container-panel #customer-live-map{height:520px}.location-edit-grid{grid-template-columns:1fr}}
@media(max-width:600px){.map-toolbar{grid-template-columns:1fr}.map-summary-grid,.customer-location-status{grid-template-columns:1fr}.map-container-panel #customer-live-map,#location-edit-map{height:430px}}

.installation-actions{display:flex;gap:10px;flex-wrap:wrap}.installation-status-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px}.installation-status-strip div{background:#e8f1f8;border-radius:10px;padding:12px;text-align:center;font-size:11px;text-transform:uppercase}.installation-status-strip .active{background:var(--blue);color:#fff}.installation-main-grid{grid-template-columns:1fr 1fr}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-grid div{background:#f7fbff;border:1px solid var(--border);border-radius:9px;padding:12px}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{font-size:11px;color:var(--muted);margin-bottom:5px}.installation-checklist{display:grid;gap:9px;margin-bottom:14px}.installation-checklist label{display:flex;gap:9px;align-items:center}.installation-checklist input{width:auto;margin:0}.installation-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.installation-photo-grid figure{margin:0}.installation-photo-grid img{width:100%;height:180px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}.installation-photo-grid figcaption{font-size:11px;color:var(--muted);margin-top:5px}.signature-preview{max-width:500px;width:100%;border:1px solid var(--border);border-radius:10px;background:#fff}.signature-actions{display:flex;gap:10px;margin-top:10px}#signature-canvas{width:100%;max-width:700px;border:1px solid var(--border);border-radius:10px;background:#fff;touch-action:none}.installation-customer-list{display:grid;gap:14px}.installation-customer-card{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:16px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}.installation-customer-card h2{margin:8px 0 5px}.installation-customer-card p{margin:0;color:var(--muted)}.installation-customer-card span,.installation-customer-card strong{display:block}.installation-customer-card>div:not(:first-child) span{font-size:11px;color:var(--muted);margin-bottom:5px}.badge.urgent{background:#fee2e2;color:#991b1b}.badge.high{background:#ffedd5;color:#9a3412}.badge.low{background:#e2e8f0;color:#334155}
@media(max-width:900px){.installation-main-grid{grid-template-columns:1fr}.installation-status-strip{grid-template-columns:1fr 1fr 1fr}.installation-photo-grid{grid-template-columns:1fr 1fr}.installation-customer-card{grid-template-columns:1fr}}
@media(max-width:550px){.installation-status-strip{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.installation-photo-grid{grid-template-columns:1fr}}

/* Audited UI refresh */
:root{--navy:#082d55;--blue:#1779e6;--sky:#8ed7ff;--pale:#edf7ff;--border:#d9e7f4;--muted:#667d95;--success:#16a34a;--danger:#dc2626;--warning:#f59e0b;--surface:#fff;--page:#f2f7fb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--page);color:#132c46}.sidebar{width:278px;background:linear-gradient(180deg,#061f3c,#082d55 56%,#073865);box-shadow:14px 0 40px rgba(5,31,60,.12)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px}.sidebar-brand img{width:54px;height:54px;margin:0;border-radius:13px}.sidebar-brand strong,.sidebar-brand small{display:block;color:#fff}.sidebar-brand strong{font-size:18px}.sidebar-brand small{color:#9fd8ff;margin-top:2px}.sidebar-user{margin:0 14px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);border-radius:13px}.side-nav{padding:4px 10px 100px;overflow-y:auto}.nav-group{margin-bottom:7px}.nav-group-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 11px;border:0;background:transparent;color:#a9cae8;text-transform:uppercase;letter-spacing:.11em;font-size:10px}.nav-group-toggle b{font-size:15px;transition:.2s}.nav-group.open .nav-group-toggle b{transform:rotate(180deg)}.nav-group-links{display:none;gap:3px}.nav-group.open .nav-group-links{display:grid}.side-nav a{border-radius:10px;padding:10px 12px;color:#d8eafa;transition:.16s}.side-nav a:hover{background:rgba(142,215,255,.12);transform:none}.side-nav a.active{background:linear-gradient(90deg,#1779e6,#0f67bd);color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.14)}.side-nav a span{width:24px;text-align:center}.main-panel{margin-left:278px}.top-header{height:76px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 28px;position:sticky;top:0;z-index:700}.header-title strong,.header-title small{display:block}.header-title strong{color:var(--navy);font-size:16px}.header-title small{color:var(--muted);margin-top:3px}.content-area{padding:26px;max-width:1700px;width:100%;margin:0 auto}.panel,.card{border:1px solid var(--border);box-shadow:0 8px 28px rgba(8,45,85,.055);border-radius:15px}.kpi-card{border:1px solid var(--border);box-shadow:0 9px 30px rgba(8,45,85,.06);border-radius:15px;transition:.18s}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(8,45,85,.09)}table{border-radius:12px;overflow:hidden}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:#f0f6fb;color:#47637d}td{vertical-align:middle}.button,button{border-radius:10px}.mobile-overlay{display:none}.health-pill{border-radius:999px;padding:9px 14px;font-weight:800;font-size:12px}.health-pill.all-good{background:#dcfce7;color:#166534}.health-pill.has-errors{background:#fee2e2;color:#991b1b}.health-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.health-check{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:15px}.health-check.fail{border-color:#fecaca;background:#fff7f7}.health-check-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#166534;font-weight:900}.health-check.fail .health-check-icon{background:#fee2e2;color:#991b1b}.health-check strong,.health-check small{display:block}.health-check small{color:var(--muted);margin-top:4px;word-break:break-word}.timeline-list{display:grid;gap:12px;margin-top:18px}.timeline-list article{display:grid;grid-template-columns:auto 1fr;gap:12px}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--blue);margin-top:5px;box-shadow:0 0 0 5px #e2f2ff}.timeline-list p{margin:5px 0;color:#38536d}.timeline-list small{color:var(--muted)}.empty-state{padding:24px;text-align:center;color:var(--muted);background:#f8fbfe;border-radius:10px}.installation-note-form{margin-top:12px}
@media(max-width:1100px){.health-check-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.22s;z-index:1000}.main-panel{margin-left:0}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .mobile-overlay{display:block;position:fixed;inset:0;background:rgba(5,25,45,.5);z-index:900}.top-header{padding:0 18px}.content-area{padding:18px}.health-check-grid{grid-template-columns:1fr}.desktop-only{display:none}}
@media(max-width:520px){.header-title small{display:none}.top-header{height:64px}.content-area{padding:12px}.dashboard-heading{align-items:flex-start}.sidebar{width:min(88vw,310px)}}

.customer-collection-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:13px;padding:18px;margin-bottom:16px;background:#fff7ed;border:1px solid #fdba74;border-left:6px solid #ea580c}.customer-collection-banner.suspended{background:#fff1f2;border-color:#fda4af;border-left-color:#dc2626}.customer-collection-banner strong{font-size:17px}.customer-collection-banner p{margin:5px 0 0;color:#7c2d12}.customer-collection-banner.suspended p{color:#881337}.collection-manual-actions{display:flex;gap:10px}.danger-button{background:#dc2626}.badge.suspended{background:#fee2e2;color:#991b1b}
@media(max-width:650px){.customer-collection-banner{align-items:flex-start;flex-direction:column}}

/* Techfury Billing V4 Enterprise */
:root{
 --enterprise-navy:#071d36;
 --enterprise-blue:#0878d1;
 --enterprise-cyan:#37b8ff;
 --enterprise-surface:#f3f7fb;
 --enterprise-border:#d8e4ef;
}
body.enterprise-shell{background:linear-gradient(135deg,#edf4fa,#f8fbfe)}
.enterprise-sidebar{background:linear-gradient(180deg,#06182d 0%,#082b4f 58%,#07466f 100%);box-shadow:18px 0 50px rgba(3,18,35,.16)}
.enterprise-brand{padding-top:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}
.enterprise-brand img{width:48px;height:48px;border-radius:13px;background:#fff;padding:4px}
.enterprise-brand strong{font-size:18px;letter-spacing:.01em}
.enterprise-brand small{color:#8ed7ff;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.enterprise-nav .nav-group{margin:5px 9px}
.enterprise-nav .nav-group-toggle{border-radius:9px;color:#bcd3e7;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.enterprise-nav .nav-group-toggle:hover{background:rgba(255,255,255,.06)}
.enterprise-nav .nav-group-links a{border-radius:9px;margin:2px 0;padding:10px 12px;color:#d5e5f3}
.enterprise-nav .nav-group-links a span{width:23px;color:#81d1ff}
.enterprise-nav .nav-group-links a:hover{background:rgba(75,181,255,.12);color:#fff}
.enterprise-nav .nav-group-links a.active{background:linear-gradient(90deg,#0878d1,#0b9de5);color:#fff;box-shadow:0 8px 22px rgba(0,119,209,.28)}
.enterprise-nav .nav-group-links a.active span{color:#fff}
.billing-nav-group{border:1px solid rgba(71,190,255,.22);border-radius:12px;background:rgba(36,144,212,.08)}
.enterprise-header{background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--enterprise-border)}
.enterprise-header .header-title strong{color:var(--enterprise-navy)}
.content-area{max-width:1680px;margin:0 auto}
.enterprise-welcome{display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(125deg,#071d36,#07548d 65%,#0a8dd0);color:#fff;border-radius:18px;padding:28px;margin-bottom:18px;box-shadow:0 20px 55px rgba(5,54,96,.2)}
.enterprise-eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:10px;color:#8ed7ff;font-weight:800}
.enterprise-welcome h1{font-size:32px;margin:7px 0 8px}
.enterprise-welcome p{margin:0;color:#d7ebfa}
.enterprise-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;min-width:330px}
.enterprise-quick-actions a{display:block;text-align:center;text-decoration:none;color:#fff;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.2);padding:11px;border-radius:10px;font-size:12px;font-weight:750}
.enterprise-quick-actions a:hover{background:rgba(255,255,255,.2)}
.panel,.card,.kpi-card{border-color:var(--enterprise-border);box-shadow:0 10px 30px rgba(8,45,85,.055)}
.kpi-card{transition:transform .18s ease,box-shadow .18s ease}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 15px 38px rgba(8,45,85,.1)}
table{border-radius:11px;overflow:hidden}
table th{background:#edf4fa;color:#38536c;text-transform:uppercase;letter-spacing:.05em;font-size:10px}
button,.button{border-radius:9px}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:13px}
.sidebar-footer small{display:block;margin-top:3px}
@media(max-width:900px){
 .enterprise-welcome{align-items:flex-start;flex-direction:column}
 .enterprise-quick-actions{width:100%;min-width:0}
}
@media(max-width:520px){
 .enterprise-quick-actions{grid-template-columns:1fr}
 .enterprise-welcome h1{font-size:26px}
}

/* Support Desk with Automatic Diagnostics */
.support-actions{display:flex;gap:10px;flex-wrap:wrap}.diagnostic-score{display:inline-block;border-radius:999px;padding:5px 9px;font-weight:800;font-size:11px}.diagnostic-score.healthy{background:#dcfce7;color:#166534}.diagnostic-score.warning{background:#fef3c7;color:#92400e}.diagnostic-score.critical{background:#fee2e2;color:#991b1b}.sla-overdue{color:#b91c1c;font-weight:800}.support-ticket-status-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}.support-ticket-status-grid div,.diagnostic-facts div,.customer-ticket-status div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:13px}.support-ticket-status-grid span,.support-ticket-status-grid strong,.diagnostic-facts span,.diagnostic-facts strong,.customer-ticket-status span,.customer-ticket-status strong{display:block}.support-ticket-status-grid span,.diagnostic-facts span,.customer-ticket-status span{font-size:10px;color:var(--muted);margin-bottom:5px}.diagnostic-panel{display:flex;gap:24px;align-items:center;border-radius:15px;padding:22px;margin-bottom:16px;border:1px solid var(--border)}.diagnostic-panel.healthy{background:#f0fdf4;border-color:#86efac}.diagnostic-panel.warning{background:#fffbeb;border-color:#fde68a}.diagnostic-panel.critical{background:#fff1f2;border-color:#fecdd3}.diagnostic-score-large{min-width:110px;text-align:center}.diagnostic-score-large strong{font-size:44px}.diagnostic-score-large span{font-size:20px}.diagnostic-score-large small{display:block;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.support-diagnostic-grid{grid-template-columns:1fr 1fr}.diagnostic-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.support-main-grid{grid-template-columns:1.4fr .6fr}.support-thread{display:grid;gap:10px;margin-bottom:18px}.support-message{border:1px solid var(--border);border-radius:11px;padding:14px;background:#fff}.support-message.customer{background:#eff8ff;border-color:#b9ddf7}.support-message.internal{background:#fff8e1;border-color:#f5d778}.support-message.system{background:#f5f7fa}.support-message>div{display:flex;justify-content:space-between;gap:12px}.support-message small{color:var(--muted)}.support-message p{margin:8px 0 0;line-height:1.55}.customer-ticket-list{display:grid;gap:12px}.customer-ticket-card{display:grid;grid-template-columns:1.4fr .7fr .7fr 1.4fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px}.customer-ticket-card h2{margin:7px 0 4px}.customer-ticket-card p{margin:0;color:var(--muted)}.customer-ticket-card>div:not(:first-child) span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.customer-ticket-status{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px;margin-bottom:16px}
@media(max-width:1050px){.support-ticket-status-grid{grid-template-columns:1fr 1fr 1fr}.support-main-grid,.support-diagnostic-grid{grid-template-columns:1fr}.customer-ticket-card{grid-template-columns:1fr 1fr}.customer-ticket-card>a{grid-column:1/-1}}
@media(max-width:650px){.support-ticket-status-grid,.diagnostic-facts,.customer-ticket-status,.customer-ticket-card{grid-template-columns:1fr}.diagnostic-panel{align-items:flex-start;flex-direction:column}}

/* Customer contracts and recurring mandates */
.contract-actions{display:flex;gap:10px;flex-wrap:wrap}.contract-editor{min-height:430px;font-family:ui-monospace,monospace;font-size:12px}.contract-document .contract-terms{padding:28px 32px;line-height:1.7}.contract-terms h2{color:var(--navy);font-size:18px;margin:22px 0 8px}.contract-terms p{color:#425c74}.contract-acceptance{margin:0 30px 26px;background:#f0fdf4;border:1px solid #86efac;border-radius:12px;padding:18px}.contract-sign-panel{margin-top:16px}.contract-consent{display:flex!important;align-items:flex-start;gap:10px;background:#f6f9fc;border:1px solid var(--border);border-radius:10px;padding:14px}.contract-consent input{width:auto;margin-top:3px}.customer-contract-list{display:grid;gap:12px}.customer-contract-list article,.mandate-customer-card{display:grid;grid-template-columns:1.5fr .7fr .7fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px}.customer-contract-list h2,.mandate-customer-card h2{margin:7px 0 4px}.customer-contract-list p,.mandate-customer-card p{margin:0;color:var(--muted)}.customer-contract-list article>div:not(:first-child) span,.mandate-customer-card>div:not(:first-child) span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.mandate-consent-panel{max-width:900px;margin:auto}.mandate-legal-text{background:#f7fbff;border:1px solid var(--border);border-radius:11px;padding:17px;margin:18px 0}.mandate-legal-text p{line-height:1.6;color:#425c74}.badge.active,.badge.accepted{background:#dcfce7;color:#166534}.badge.pending,.badge.sent,.badge.viewed{background:#fef3c7;color:#92400e}.badge.cancelled,.badge.declined,.badge.failed{background:#fee2e2;color:#991b1b}
@media(max-width:800px){.customer-contract-list article,.mandate-customer-card{grid-template-columns:1fr 1fr}.customer-contract-list article>a,.mandate-customer-card>a{grid-column:1/-1}}
@media(max-width:520px){.customer-contract-list article,.mandate-customer-card{grid-template-columns:1fr}}

/* ============================================================
   Techfury Billing V5 Mission Control
   ============================================================ */
:root{
 --mc-navy:#06182d;
 --mc-blue:#0878d1;
 --mc-cyan:#36b7ff;
 --mc-green:#16a34a;
 --mc-amber:#f59e0b;
 --mc-red:#dc2626;
 --mc-slate:#64748b;
 --mc-surface:#f4f8fc;
 --mc-border:#d9e6f1;
}
.mission-shell{display:grid;gap:16px}
.mission-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:
 radial-gradient(circle at 80% 20%,rgba(54,183,255,.25),transparent 32%),
 linear-gradient(125deg,#06182d,#073a65 65%,#0878d1);color:#fff;border-radius:20px;padding:28px 30px;box-shadow:0 25px 65px rgba(4,32,60,.22)}
.mission-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:#8fd9ff;font-weight:900}
.mission-hero h1{font-size:38px;line-height:1;margin:8px 0 10px}
.mission-hero p{margin:0;color:#d8ebfa;font-size:14px}
.mission-toolbar{display:flex;gap:9px;flex-wrap:wrap}
.mission-toolbar button,.mission-toolbar .button{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.24);color:#fff}
.mission-toolbar button:hover,.mission-toolbar .button:hover{background:rgba(255,255,255,.2)}
.mission-alert-ticker{display:grid;grid-template-columns:auto 1fr;align-items:center;overflow:hidden;background:#fff;border:1px solid var(--mc-border);border-radius:12px;min-height:48px;box-shadow:0 10px 28px rgba(8,45,85,.06)}
.ticker-label{height:100%;display:grid;place-items:center;background:#071d36;color:#8fd9ff;font-size:10px;letter-spacing:.14em;font-weight:900;padding:0 16px}
.ticker-window{overflow:hidden;white-space:nowrap}
.ticker-content{display:inline-flex;gap:30px;padding-left:100%;animation:missionTicker 35s linear infinite}
.ticker-content:hover{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:8px;color:#435d75;text-decoration:none;padding:12px 0}
.ticker-item:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mc-blue)}
.ticker-item.warning:before{background:var(--mc-amber)}.ticker-item.critical:before{background:var(--mc-red)}.ticker-item.success:before{background:var(--mc-green)}
.ticker-item strong{color:#122f4a}
@keyframes missionTicker{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.mission-health-row{display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:16px}
.business-health-card,.mission-status-card,.mission-panel,.mission-kpi{background:#fff;border:1px solid var(--mc-border);border-radius:16px;box-shadow:0 12px 36px rgba(8,45,85,.065)}
.business-health-card{display:grid;grid-template-columns:190px 1fr;gap:20px;padding:21px}
.health-gauge{--health-angle:0deg;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:
 radial-gradient(circle,#fff 56%,transparent 57%),
 conic-gradient(var(--mc-blue) var(--health-angle),#dfeaf3 0);box-shadow:inset 0 0 0 1px #edf3f8}
.health-gauge>div{text-align:center}.health-gauge strong{font-size:38px;color:var(--mc-navy)}.health-gauge span{font-size:17px;color:var(--mc-blue)}.health-gauge small{display:block;margin-top:4px;color:#6d8397;font-weight:800}
.health-breakdown h2{margin:4px 0 17px;color:var(--mc-navy)}
.health-breakdown>div{display:grid;grid-template-columns:85px 1fr 38px;gap:10px;align-items:center;margin:10px 0;font-size:11px;color:#607990}
.health-breakdown progress{width:100%;height:8px;border:0;border-radius:99px;overflow:hidden}.health-breakdown progress::-webkit-progress-bar{background:#e6eef5}.health-breakdown progress::-webkit-progress-value{background:linear-gradient(90deg,#0878d1,#36b7ff)}.health-breakdown b{text-align:right;color:#173550}
.mission-status-card{padding:20px}
.mission-card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:17px}
.mission-card-header span{display:block;color:#71889c;font-size:11px}.mission-card-header strong{display:block;color:var(--mc-navy);font-size:30px;margin-top:5px}.mission-card-header a{font-size:11px;text-decoration:none;color:var(--mc-blue);font-weight:800}
.mission-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mission-mini-grid div{background:#f5f9fc;border:1px solid #e3edf5;border-radius:10px;padding:12px}.mission-mini-grid span,.mission-mini-grid strong{display:block}.mission-mini-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#74899a}.mission-mini-grid strong{font-size:18px;color:#173550;margin-top:5px;word-break:break-word}
.mission-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.mission-kpi{padding:18px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.mission-kpi:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(8,45,85,.12)}
.mission-kpi span,.mission-kpi strong,.mission-kpi small{display:block}.mission-kpi span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#70879a}.mission-kpi strong{font-size:24px;color:var(--mc-navy);margin:8px 0 6px}.mission-kpi small{color:#71879a}
.mission-grid{display:grid;gap:16px}.mission-grid-main{grid-template-columns:1.4fr 1fr}.mission-grid-secondary{grid-template-columns:1fr 1fr 1fr}.mission-grid-lists{grid-template-columns:1fr 1fr 1fr}
.mission-panel{padding:20px;min-width:0}.mission-panel-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:15px}.mission-panel-header h2{margin:0;color:var(--mc-navy);font-size:17px}.mission-panel-header p{margin:5px 0 0;color:#75899b;font-size:11px}.mission-panel-header a{font-size:11px;text-decoration:none;color:var(--mc-blue);font-weight:800}
.mission-chart-panel canvas{display:block;width:100%;height:300px}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap}.chart-legend span{font-size:10px;color:#647d92}.chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#0a8dd0;margin-right:5px}.chart-legend span:nth-child(2):before{background:#f59e0b}.chart-legend span:nth-child(3):before{background:#16a34a}
.mission-value-chip{display:inline-block;background:#edf7ff;color:#0a639f;border:1px solid #c9e8fb;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800}
.mission-stat-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mission-stat-list div{display:flex;justify-content:space-between;gap:10px;background:#f6f9fc;border:1px solid #e4edf5;border-radius:10px;padding:12px}.mission-stat-list span{font-size:10px;color:#6e8598}.mission-stat-list strong{color:#193752}
.customer-donut-wrap{display:flex;gap:18px;align-items:center}.customer-donut-legend{display:grid;gap:12px;flex:1}.customer-donut-legend div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;color:#5f778c;font-size:11px}.customer-donut-legend b{color:#183550}.dot{width:10px;height:10px;border-radius:50%}.dot.active{background:#16a34a}.dot.suspended{background:#f59e0b}.dot.inactive{background:#64748b}
.mission-list{display:grid;gap:8px}.mission-list-row{display:flex;justify-content:space-between;gap:13px;align-items:center;text-decoration:none;color:inherit;background:#f8fbfd;border:1px solid #e5edf4;border-radius:10px;padding:12px}.mission-list-row:hover{border-color:#a9d9f7;background:#f1f9fe}.mission-list-row strong,.mission-list-row span{display:block}.mission-list-row strong{color:#1a3853;font-size:12px}.mission-list-row span{font-size:10px;color:#73899a;margin-top:4px}.mission-list-row b{color:#0b6da9;font-size:12px;text-align:right}.router-row-title{display:flex;align-items:center;gap:10px}.router-state-dot{width:10px;height:10px;border-radius:50%}.router-state-dot.online{background:#16a34a;box-shadow:0 0 0 4px #dcfce7}.router-state-dot.offline{background:#dc2626;box-shadow:0 0 0 4px #fee2e2}
.mission-empty{text-align:center;padding:28px;color:#7b8f9e;font-size:12px}
.mission-activity-feed{display:grid;max-height:520px;overflow:auto}.activity-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border-bottom:1px solid #e9f0f5;text-decoration:none;color:inherit}.activity-row:hover{background:#f8fbfd}.activity-dot{width:9px;height:9px;border-radius:50%;background:#0878d1}.activity-row.success .activity-dot{background:#16a34a}.activity-row.warning .activity-dot{background:#f59e0b}.activity-row.critical .activity-dot{background:#dc2626}.activity-row strong{color:#173550}.activity-row p{margin:3px 0 0;color:#71879a;font-size:11px}.activity-row time{font-size:10px;color:#8193a2;text-align:right}
.mission-shell:fullscreen{background:#eef5fa;padding:18px;overflow:auto}.mission-shell:fullscreen .mission-hero{border-radius:16px}
.settings-section-title{margin-top:10px;border-top:1px solid var(--border);padding-top:15px}
@media(max-width:1250px){
 .mission-health-row{grid-template-columns:1fr 1fr}.business-health-card{grid-column:1/-1}
 .mission-grid-main{grid-template-columns:1fr}.mission-grid-secondary,.mission-grid-lists{grid-template-columns:1fr 1fr}
 .mission-kpi-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:800px){
 .mission-hero{align-items:flex-start;flex-direction:column}.mission-hero h1{font-size:31px}
 .mission-health-row,.mission-grid-secondary,.mission-grid-lists{grid-template-columns:1fr}
 .business-health-card{grid-template-columns:1fr;justify-items:center}.health-breakdown{width:100%}
 .mission-kpi-grid{grid-template-columns:1fr 1fr}.customer-donut-wrap{flex-direction:column}
}
@media(max-width:520px){
 .mission-kpi-grid{grid-template-columns:1fr}.mission-mini-grid,.mission-stat-list{grid-template-columns:1fr}
 .mission-alert-ticker{grid-template-columns:1fr}.ticker-label{padding:8px}.mission-toolbar{width:100%}.mission-toolbar>*{flex:1;text-align:center}
 .activity-row{grid-template-columns:auto 1fr}.activity-row time{grid-column:2;text-align:left}
}

/* Customer Usage Portal */
.usage-service-selector{max-width:620px}.usage-live-banner{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;background:linear-gradient(125deg,#06182d,#074d81);color:#fff;border-radius:16px;padding:20px;margin-bottom:16px}.usage-live-banner>div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:11px;padding:15px}.usage-live-banner span,.usage-live-banner strong,.usage-live-banner small{display:block}.usage-live-banner span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#a8dcfb}.usage-live-banner strong{font-size:24px;margin-top:7px}.usage-live-banner small{color:#bcdcf0;margin-top:5px}.usage-summary-grid{grid-template-columns:repeat(4,1fr)}.usage-chart-grid{grid-template-columns:1fr 1fr}.usage-chart{display:block;width:100%;height:310px}.usage-peak-list{display:grid;gap:9px}.usage-peak-list>div{display:grid;grid-template-columns:1fr auto;gap:5px;background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:13px}.usage-peak-list span{font-weight:800;color:#183550}.usage-peak-list strong{color:#0878d1}.usage-peak-list small{grid-column:1/-1;color:var(--muted)}
@media(max-width:900px){.usage-live-banner,.usage-chart-grid{grid-template-columns:1fr}.usage-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.usage-summary-grid{grid-template-columns:1fr}}

/* Invoice and statement management */
.inline-document-action{display:inline-flex;margin:0}.inline-document-action button{height:100%}
.table-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.table-actions form{display:inline;margin:0}
.link-danger{border:0;background:transparent;color:#b91c1c;padding:0;box-shadow:none;font:inherit;font-weight:750;cursor:pointer}
.link-danger:hover{text-decoration:underline;background:transparent}
.bill-to-details{line-height:1.65}
.document-brand>div>p{line-height:1.5}
@media print{.inline-document-action,.document-toolbar-actions,.no-print{display:none!important}}

.invoice-delivery-status{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.invoice-delivery-status>div{background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:12px}.invoice-delivery-status span,.invoice-delivery-status strong,.invoice-delivery-status a{display:block}.invoice-delivery-status span{font-size:10px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.invoice-delivery-status .delivery-error{grid-column:1/-1;background:#fff1f2;border-color:#fecdd3;color:#991b1b}.delivery-chip{display:inline-block;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;margin:2px}.delivery-chip.sent{background:#dcfce7;color:#166534}.delivery-chip.pending{background:#fef3c7;color:#92400e}.link-button{border:0;background:transparent;color:#0878d1;padding:0;box-shadow:none;font:inherit;font-weight:750;cursor:pointer}.public-invoice-page{background:#eef4f8;padding:24px}.public-invoice-wrap{max-width:980px;margin:auto}@media(max-width:700px){.invoice-delivery-status{grid-template-columns:1fr}.public-invoice-page{padding:8px}}

/* Outgoing SMTP settings */
.badge.failed{background:#fee2e2;color:#991b1b}.badge.sent{background:#dcfce7;color:#166534}

/* Proof of Payment */
.pop-consent{display:flex!important;gap:10px;align-items:flex-start;background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:14px}.pop-consent input{width:auto;margin-top:3px}.pop-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.risk-score,.pop-risk-large{display:inline-block;border-radius:999px;font-weight:900}.risk-score{padding:5px 9px;font-size:10px}.pop-risk-large{font-size:30px;padding:14px 20px;margin-bottom:15px}.risk-low{background:#dcfce7;color:#166534}.risk-medium{background:#fef3c7;color:#92400e}.risk-high{background:#fee2e2;color:#991b1b}.pop-check{display:flex;justify-content:space-between;gap:15px;padding:10px;border-bottom:1px solid var(--border);text-transform:capitalize}.pop-check.pass strong{color:#166534}.pop-check.fail strong{color:#b45309}.pop-review-actions{display:flex;gap:10px;flex-wrap:wrap}.badge.pending,.badge.under-review{background:#fef3c7;color:#92400e}.badge.approved{background:#dcfce7;color:#166534}.badge.rejected,.badge.duplicate{background:#fee2e2;color:#991b1b}.small-button{padding:6px 9px;font-size:10px}
@media(max-width:800px){.pop-review-grid{grid-template-columns:1fr}}

/* Central Company Profile */
.company-profile-section{border-top:1px solid var(--border);padding-top:15px;margin-top:8px}
.company-profile-section h2{margin:0;color:var(--navy)}
.company-preview>div{display:grid;gap:6px;background:#f7fbff;border:1px solid var(--border);border-radius:11px;padding:18px;max-width:620px}
.company-preview span,.company-preview strong{display:block}

.current-status-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.current-status-card span,.current-status-card strong,.current-status-card small{display:block}.current-status-card span{font-size:10px;text-transform:uppercase;color:var(--muted)}.current-status-card strong{font-size:26px;margin:6px 0}.current-status-card strong.active{color:#166534}.current-status-card strong.suspended{color:#92400e}.current-status-card strong.inactive{color:#64748b}.status-notify-option{display:flex!important;align-items:center;gap:9px;background:#f7fbff;border:1px solid var(--border);border-radius:10px;padding:13px}.status-notify-option input{width:auto}.status-edit-control{display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-height:42px}.customer-status-reason{display:grid;grid-template-columns:1fr 2fr 1fr;gap:10px;border-radius:13px;padding:15px;margin-bottom:16px;border:1px solid var(--border)}.customer-status-reason.active{background:#f0fdf4;border-color:#86efac}.customer-status-reason.suspended{background:#fffbeb;border-color:#fde68a}.customer-status-reason.inactive{background:#f8fafc;border-color:#cbd5e1}.customer-status-reason span,.customer-status-reason strong{display:block}.customer-status-reason span{font-size:10px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.badge.suspended{background:#fef3c7;color:#92400e}.badge.inactive{background:#e2e8f0;color:#475569}@media(max-width:760px){.customer-status-reason{grid-template-columns:1fr}}

/* Invoice package and manual-item selector */
.invoice-create-form{max-width:980px}
.invoice-live-total{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.invoice-live-total>div{background:#f7fbff;border:1px solid var(--border);border-radius:11px;padding:14px}
.invoice-live-total span,.invoice-live-total strong{display:block}
.invoice-live-total span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.invoice-live-total strong{font-size:20px;color:var(--navy)}
.invoice-live-total>div:last-child{background:linear-gradient(125deg,#06182d,#0878d1);border-color:transparent}
.invoice-live-total>div:last-child span{color:#b8def5}.invoice-live-total>div:last-child strong{color:#fff}
.invoice-create-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#invoice-unit-price[readonly]{background:#eef4f8;color:#476174;cursor:not-allowed}
@media(max-width:650px){.invoice-live-total{grid-template-columns:1fr}}

/* Multiple invoice items */
.invoice-header-fields{margin-bottom:18px}
.invoice-items-section{margin-top:8px}
.invoice-items-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.invoice-items-heading h2{margin:0;color:var(--navy)}
.invoice-items-heading p{margin:5px 0 0;color:var(--muted);font-size:11px}
.invoice-item-table{display:grid;gap:8px}
.invoice-item-header,.invoice-item-row{display:grid;grid-template-columns:1.25fr 2fr .55fr .8fr .8fr 46px;gap:9px;align-items:center}
.invoice-item-header{padding:0 8px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.invoice-item-row{background:#f7fbff;border:1px solid var(--border);border-radius:11px;padding:10px}
.invoice-item-row input,.invoice-item-row select{margin:0}
.invoice-item-line-total{font-weight:850;color:var(--navy);text-align:right;padding-right:4px}
.invoice-item-remove{width:36px;height:36px;display:grid;place-items:center;padding:0;border-radius:9px;font-size:20px;line-height:1}
.invoice-live-total{grid-template-columns:repeat(4,1fr)}
@media(max-width:1050px){
 .invoice-item-header{display:none}
 .invoice-item-row{grid-template-columns:1fr 1fr}
 .invoice-item-row>div:nth-child(2){grid-column:1/-1}
 .invoice-item-row>div:nth-child(5){text-align:left}
}
@media(max-width:620px){
 .invoice-item-row{grid-template-columns:1fr}
 .invoice-item-row>div:nth-child(2){grid-column:auto}
 .invoice-live-total{grid-template-columns:1fr 1fr}
}

/* Internet package deletion and lifecycle */
.package-actions{min-width:220px}
.package-delete-disabled{font-size:11px;color:#94a3b8;font-weight:750;cursor:not-allowed}
.package-edit-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ============================================================
   Dashboard Experience Upgrade
   ============================================================ */
.content-area{max-width:1780px;width:100%;margin:0 auto}
.customer-dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:
 radial-gradient(circle at 85% 20%,rgba(54,183,255,.24),transparent 32%),
 linear-gradient(125deg,#06182d,#073a65 64%,#0878d1);color:#fff;border-radius:20px;padding:27px 30px;margin-bottom:16px;box-shadow:0 24px 60px rgba(5,32,58,.18)}
.customer-hero-eyebrow,.card-eyebrow{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:900}
.customer-hero-eyebrow{color:#8fd9ff}.customer-dashboard-hero h1{font-size:32px;margin:7px 0}.customer-dashboard-hero p{margin:0;color:#cfe8f8}
.customer-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.customer-hero-actions .secondary-button{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.customer-dashboard-grid{display:grid;gap:16px}.customer-dashboard-top{grid-template-columns:1.3fr 1fr;margin-bottom:16px}
.customer-connection-card,.dashboard-weather-card,.customer-usage-card,.customer-quick-actions-card,.customer-list-card,.customer-service-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 35px rgba(8,45,85,.065)}
.customer-connection-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:21px;border-left:5px solid #64748b}
.customer-connection-card.connection-online{border-left-color:#16a34a}.customer-connection-card.connection-offline{border-left-color:#dc2626}.customer-connection-card.connection-disabled{border-left-color:#f59e0b}
.connection-status-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:25px;font-weight:900;background:#edf4f8;color:#173550}
.connection-online .connection-status-icon{background:#dcfce7;color:#166534}.connection-offline .connection-status-icon{background:#fee2e2;color:#991b1b}
.customer-connection-main>span,.dashboard-weather-current span{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#71879a;font-weight:850}
.customer-connection-main h2{margin:5px 0;color:#102f4b}.customer-connection-main p{margin:0 0 10px;color:#60788d}
.customer-connection-card>a{font-size:11px;color:#0878d1;text-decoration:none;font-weight:850}
.dashboard-weather-card{padding:20px;min-height:210px;overflow:hidden;background:
 radial-gradient(circle at 90% 15%,rgba(54,183,255,.18),transparent 35%),#fff}
.dashboard-weather-current{display:flex;gap:14px;align-items:center}.weather-main-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:18px;background:#e8f6ff;font-size:35px}
.dashboard-weather-current h2{font-size:34px;margin:4px 0;color:#0d2d49}.dashboard-weather-current p{margin:0;color:#647d92}
.weather-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.weather-facts>div{background:#f5f9fc;border:1px solid #e2edf5;border-radius:9px;padding:9px}.weather-facts span,.weather-facts strong{display:block}.weather-facts span{font-size:9px;text-transform:uppercase;color:#73899a}.weather-facts strong{color:#173550;margin-top:4px}
.weather-days{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.weather-days>div{text-align:center;background:#f8fbfd;border-radius:9px;padding:8px 4px}.weather-days span,.weather-days b,.weather-days strong,.weather-days small{display:block}.weather-days span,.weather-days small{font-size:9px;color:#73899a}.weather-days b{font-size:19px;margin:3px}.weather-days strong{font-size:12px;color:#173550}.weather-loading,.weather-error{display:grid;place-items:center;min-height:170px;color:#71879a;text-align:center}.weather-error strong,.weather-error span{display:block}.weather-stale{display:block;margin-top:8px;color:#b45309}
.customer-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}.customer-kpi-grid article{background:#fff;border:1px solid var(--border);border-radius:13px;padding:17px;box-shadow:0 10px 28px rgba(8,45,85,.05)}.customer-kpi-grid span,.customer-kpi-grid strong,.customer-kpi-grid small{display:block}.customer-kpi-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#71879a}.customer-kpi-grid strong{font-size:21px;color:#102f4b;margin:7px 0}.customer-kpi-grid small{color:#74899a}
.customer-usage-dashboard-grid{grid-template-columns:1.45fr 1fr;margin-bottom:16px}.customer-usage-card,.customer-quick-actions-card,.customer-list-card,.customer-service-card{padding:20px}
.customer-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.customer-card-heading h2{margin:4px 0 0;color:#102f4b;font-size:18px}.card-eyebrow{color:#0878d1}.customer-card-heading>a{font-size:11px;color:#0878d1;text-decoration:none;font-weight:850}
.customer-usage-live,.customer-usage-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.customer-usage-live>div,.customer-usage-totals>div{background:#f6fafd;border:1px solid #e2edf5;border-radius:10px;padding:12px}.customer-usage-live span,.customer-usage-totals span,.customer-usage-live strong,.customer-usage-totals strong{display:block}.customer-usage-live span,.customer-usage-totals span{font-size:9px;text-transform:uppercase;color:#73899a}.customer-usage-live strong,.customer-usage-totals strong{color:#173550;margin-top:5px}.customer-usage-totals{margin-top:8px}.usage-ok{color:#166534!important}.usage-stale{color:#b45309!important}
.customer-usage-chart-wrap{margin-top:16px}.customer-usage-chart-wrap canvas{display:block;width:100%;height:190px}.usage-chart-legend{display:flex;justify-content:flex-end;gap:14px;font-size:9px;color:#71879a}.usage-chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#0878d1;margin-right:5px}.usage-chart-legend span+span:before{background:#16a34a}
.customer-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.customer-action-grid a{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center;text-decoration:none;background:#f7fbff;border:1px solid #e1edf5;border-radius:11px;padding:13px;transition:.18s}.customer-action-grid a:hover{transform:translateY(-2px);border-color:#9dd7f8;box-shadow:0 9px 20px rgba(8,120,209,.09)}.customer-action-grid a>span{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e6f5ff;color:#0878d1;font-weight:900}.customer-action-grid strong{color:#173550}.customer-action-grid small{color:#73899a}
.customer-account-grid{grid-template-columns:1.25fr 1fr;margin-bottom:16px}.customer-invoice-list{display:grid;gap:8px}.customer-invoice-list>a{display:flex;justify-content:space-between;gap:12px;text-decoration:none;background:#f8fbfd;border:1px solid #e4edf4;border-radius:10px;padding:12px}.customer-invoice-list strong,.customer-invoice-list span,.customer-invoice-list b,.customer-invoice-list small{display:block}.customer-invoice-list strong,.customer-invoice-list b{color:#173550}.customer-invoice-list span,.customer-invoice-list small{font-size:10px;color:#73899a;margin-top:4px;text-align:right}
.customer-service-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.customer-service-facts>div{background:#f7fbff;border:1px solid #e3edf4;border-radius:10px;padding:12px}.customer-service-facts span,.customer-service-facts strong{display:block}.customer-service-facts span{font-size:9px;text-transform:uppercase;color:#73899a}.customer-service-facts strong{color:#173550;margin-top:5px}
.customer-notices{margin-bottom:16px}.customer-contact-strip{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:9px;background:#071d36;color:#fff;border-radius:14px;padding:16px}.customer-contact-strip span,.customer-contact-strip strong{display:block}.customer-contact-strip span{font-size:10px;color:#a9cbe2;margin-top:3px}.customer-empty{text-align:center;color:#73899a;padding:25px}
.mission-dashboard-intelligence{grid-template-columns:1fr 1fr}.admin-weather-card{min-height:270px}.mission-action-centre{display:grid;gap:8px}.mission-action-item{display:grid;grid-template-columns:46px 1fr auto;gap:11px;align-items:center;text-decoration:none;background:#f7fbff;border:1px solid #e3edf5;border-radius:10px;padding:11px}.mission-action-count{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#e6f5ff;color:#0878d1;font-weight:900}.mission-action-item.warning .mission-action-count{background:#fef3c7;color:#92400e}.mission-action-item.critical .mission-action-count{background:#fee2e2;color:#991b1b}.mission-action-item.success .mission-action-count{background:#dcfce7;color:#166534}.mission-action-item strong,.mission-action-item small{display:block}.mission-action-item strong{color:#173550}.mission-action-item small{color:#73899a;margin-top:3px}.mission-action-item>b{font-size:22px;color:#7b91a3}
.weather-settings-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:1200px){.customer-dashboard-top,.customer-usage-dashboard-grid,.customer-account-grid,.mission-dashboard-intelligence{grid-template-columns:1fr}.customer-kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.customer-dashboard-hero{flex-direction:column;align-items:flex-start}.customer-hero-actions{width:100%}.customer-hero-actions>*{flex:1;text-align:center}.customer-connection-card{grid-template-columns:auto 1fr}.customer-connection-card>a{grid-column:2}.customer-kpi-grid,.customer-usage-live,.customer-usage-totals,.customer-service-facts{grid-template-columns:1fr 1fr}.weather-days{grid-template-columns:1fr 1fr}.customer-contact-strip{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.customer-kpi-grid,.customer-usage-live,.customer-usage-totals,.customer-action-grid,.customer-service-facts,.customer-contact-strip{grid-template-columns:1fr}.customer-dashboard-hero h1{font-size:27px}}

/* Customer automatic billing enrolment */
.automatic-billing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.automatic-billing-summary article{background:#fff;border:1px solid var(--border);border-radius:14px;padding:17px;box-shadow:0 10px 28px rgba(8,45,85,.05)}
.automatic-billing-summary span,.automatic-billing-summary strong,.automatic-billing-summary small{display:block}
.automatic-billing-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#73899a}
.automatic-billing-summary strong{font-size:22px;color:#173550;margin:7px 0}
.automatic-billing-summary small{color:#74899a}
.billing-enabled{color:#166534!important}.billing-disabled{color:#b45309!important}
.billing-dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px;margin-bottom:16px}
.billing-run-panel{height:max-content}.billing-run-preview{background:#f7fbff;border:1px solid #e2edf5;border-radius:11px;padding:16px;margin-bottom:14px}
.billing-run-preview span,.billing-run-preview strong,.billing-run-preview small{display:block}
.billing-run-preview span{font-size:9px;text-transform:uppercase;color:#73899a}
.billing-run-preview strong{font-size:25px;color:#173550;margin:6px 0}
.billing-customer-enrolment{padding:20px}
.billing-selection-counter{text-align:right;background:#edf7ff;border-radius:10px;padding:8px 13px}
.billing-selection-counter span,.billing-selection-counter strong{display:block}
.billing-selection-counter span{font-size:8px;text-transform:uppercase;color:#71879a}
.billing-selection-counter strong{font-size:20px;color:#0878d1}
.billing-customer-tools{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:14px}
.billing-search{max-width:520px;flex:1}.billing-tool-actions{display:flex;gap:8px;flex-wrap:wrap}
.billing-customer-list{display:grid;gap:8px;max-height:720px;overflow:auto;padding-right:4px}
.billing-customer-row{display:grid;grid-template-columns:auto 1.4fr 1fr .75fr;gap:13px;align-items:center;background:#f9fbfd;border:1px solid #e2ebf2;border-radius:12px;padding:13px;cursor:pointer;transition:.16s}
.billing-customer-row:hover{border-color:#a5d9f7;box-shadow:0 8px 20px rgba(8,120,209,.06)}
.billing-customer-row.selected{background:#eef9ff;border-color:#69bff0;box-shadow:inset 4px 0 #0878d1}
.billing-customer-row>input{width:18px;height:18px}
.billing-customer-main{display:flex;justify-content:space-between;gap:10px;align-items:center}
.billing-customer-main strong,.billing-customer-main span,.billing-customer-service span,.billing-customer-service strong,.billing-customer-service small,.billing-customer-amount span,.billing-customer-amount strong,.billing-customer-amount small{display:block}
.billing-customer-main strong{color:#173550}.billing-customer-main span,.billing-customer-service span,.billing-customer-service small,.billing-customer-amount span,.billing-customer-amount small{font-size:9px;color:#74899a;margin-top:4px}
.billing-customer-badges{display:flex;gap:5px;flex-wrap:wrap}
.billing-customer-service strong,.billing-customer-amount strong{color:#173550;margin-top:4px}
.billing-customer-amount{text-align:right}
.billing-warning-chip{display:inline-block!important;background:#fef3c7;color:#92400e!important;border-radius:999px;padding:4px 7px;margin:0!important;font-weight:800}
.billing-enrolment-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:15px;border-top:1px solid var(--border)}
.billing-enrolment-footer div{display:flex;align-items:baseline;gap:5px}.billing-enrolment-footer strong{font-size:20px;color:#173550}.billing-enrolment-footer span{font-size:10px;color:#74899a}
@media(max-width:1150px){.automatic-billing-summary{grid-template-columns:1fr 1fr}.billing-dashboard-grid{grid-template-columns:1fr}.billing-customer-row{grid-template-columns:auto 1fr 1fr}.billing-customer-amount{grid-column:2/-1;text-align:left}}
@media(max-width:760px){.billing-customer-tools{flex-direction:column;align-items:stretch}.billing-customer-row{grid-template-columns:auto 1fr}.billing-customer-service,.billing-customer-amount{grid-column:2}.billing-customer-main{display:block}.billing-customer-badges{margin-top:7px}.automatic-billing-summary{grid-template-columns:1fr}}

/* Techfury V5.5 Customer Usage Analytics */
.usage-period-grid,.usage-performance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:16px}
.usage-period-grid article,.usage-performance-grid article{background:#fff;border:1px solid var(--border);border-radius:13px;padding:16px;box-shadow:0 9px 26px rgba(8,45,85,.05)}
.usage-period-grid span,.usage-period-grid strong,.usage-period-grid small,.usage-performance-grid span,.usage-performance-grid strong,.usage-performance-grid small{display:block}
.usage-period-grid span,.usage-performance-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#71879a}
.usage-period-grid strong,.usage-performance-grid strong{font-size:20px;color:#173550;margin:7px 0}
.usage-period-grid small,.usage-performance-grid small{color:#758b9d}
.usage-performance-grid article:first-child{border-left:4px solid #0878d1}.usage-performance-grid article:nth-child(2){border-left:4px solid #16a34a}
.usage-top-users-panel{overflow:auto}
@media(max-width:950px){.usage-period-grid,.usage-performance-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.usage-period-grid,.usage-performance-grid{grid-template-columns:1fr}}

/* Customer portal login tracking */
.page-head-actions{display:flex;gap:9px;flex-wrap:wrap}
.login-meta{display:block;color:#73899a;margin-top:4px;line-height:1.45}
.never-login{display:inline-block;background:#f1f5f9;color:#64748b;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}
.portal-login-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.portal-login-summary>div,.customer-login-notice>div{background:#f7fbff;border:1px solid #e2edf5;border-radius:11px;padding:13px}
.portal-login-summary span,.portal-login-summary strong,.portal-login-summary small,.customer-login-notice span,.customer-login-notice strong{display:block}
.portal-login-summary span,.customer-login-notice span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#71879a}
.portal-login-summary strong,.customer-login-notice strong{color:#173550;margin-top:5px}
.portal-login-summary small{color:#74899a;margin-top:4px}
.customer-login-notice{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px}
.portal-login-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.portal-login-kpis article{background:#fff;border:1px solid var(--border);border-radius:13px;padding:17px;box-shadow:0 9px 26px rgba(8,45,85,.05)}
.portal-login-kpis span,.portal-login-kpis strong,.portal-login-kpis small{display:block}
.portal-login-kpis span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#71879a}
.portal-login-kpis strong{font-size:24px;color:#173550;margin-top:7px}
.portal-login-kpis small{color:#74899a;margin-top:4px}
.portal-login-filter{display:grid;grid-template-columns:220px minmax(260px,1fr) auto;gap:12px;align-items:end}
.login-method-chip{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900}
.login-method-chip.password{background:#e0f2fe;color:#075985}
.login-method-chip.otp{background:#dcfce7;color:#166534}
.user-agent-cell{max-width:420px;font-size:10px;color:#64748b}
@media(max-width:1000px){.portal-login-summary,.customer-login-notice,.portal-login-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.portal-login-filter{grid-template-columns:1fr}.portal-login-summary,.customer-login-notice,.portal-login-kpis{grid-template-columns:1fr}}

/* Mission Control Operations Module */
.mc-shell{display:grid;gap:15px}.mc-command-header{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(125deg,#041426,#07365e 70%,#0878d1);color:#fff;padding:23px 26px;border-radius:18px}.mc-command-header h1{font-size:30px;margin:5px 0}.mc-command-header p{margin:0;color:#b9d8eb}.mc-eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#7bd2ff;font-weight:900}.mc-header-actions{display:flex;gap:8px;flex-wrap:wrap}.mc-header-actions .secondary-button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
.mc-status-banner{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;border-radius:14px;padding:16px 20px;border:1px solid}.mc-status-banner.normal{background:#ecfdf5;border-color:#86efac}.mc-status-banner.warning{background:#fffbeb;border-color:#fde68a}.mc-status-banner.critical{background:#fff1f2;border-color:#fda4af}.mc-status-pulse{width:18px;height:18px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 7px rgba(22,163,74,.12)}.warning .mc-status-pulse{background:#f59e0b}.critical .mc-status-pulse{background:#dc2626;animation:mcPulse 1.2s infinite}.mc-status-banner span,.mc-status-banner strong{display:block}.mc-status-banner span{font-size:9px;text-transform:uppercase;color:#64748b}.mc-status-banner strong{font-size:18px;color:#173550;margin:3px 0}.mc-status-banner p{margin:0;color:#61788d}.mc-clock{font-size:26px;font-weight:850;color:#173550}@keyframes mcPulse{50%{box-shadow:0 0 0 12px rgba(220,38,38,0)}}
.mc-kpi-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:9px}.mc-kpi-grid article{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px}.mc-kpi-grid span,.mc-kpi-grid strong,.mc-kpi-grid small{display:block}.mc-kpi-grid span{font-size:8px;text-transform:uppercase;color:#71879a}.mc-kpi-grid strong{font-size:20px;color:#173550;margin:6px 0}.mc-kpi-grid small{font-size:9px;color:#74899a}
.mc-main-grid,.mc-operations-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:15px}.mc-three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.mc-panel{background:#fff;border:1px solid var(--border);border-radius:15px;padding:17px;box-shadow:0 10px 28px rgba(5,35,65,.05)}.mc-panel-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:13px}.mc-panel-header h2{margin:0;color:#173550;font-size:17px}.mc-panel-header p{margin:4px 0 0;color:#74899a;font-size:10px}.mc-panel-header>a{font-size:10px;color:#0878d1;text-decoration:none;font-weight:850}.mc-legend{display:flex;gap:7px;flex-wrap:wrap}.mc-legend span{font-size:8px;font-weight:850}.mc-legend span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.mc-legend .online:before{background:#16a34a}.mc-legend .degraded:before{background:#f59e0b}.mc-legend .critical:before{background:#dc2626}.mc-legend .offline:before{background:#64748b}
.mc-topology{display:grid;gap:12px;max-height:580px;overflow:auto}.mc-topology-layer{display:grid;grid-template-columns:95px 1fr;gap:10px;align-items:start}.mc-topology-layer h3{margin:9px 0;color:#70879a;font-size:9px;letter-spacing:.12em}.mc-topology-layer>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mc-node{position:relative;text-decoration:none;border:1px solid #e1ebf2;border-radius:10px;padding:11px 11px 10px 19px;background:#f8fbfd}.mc-node-state{position:absolute;left:8px;top:13px;width:7px;height:7px;border-radius:50%;background:#64748b}.mc-node.online .mc-node-state{background:#16a34a}.mc-node.degraded .mc-node-state{background:#f59e0b}.mc-node.critical .mc-node-state,.mc-node.offline .mc-node-state{background:#dc2626}.mc-node strong,.mc-node small,.mc-node em{display:block}.mc-node strong{font-size:11px;color:#173550}.mc-node small,.mc-node em{font-size:8px;color:#758b9c;margin-top:3px}.mc-node em{font-style:normal}
.mc-list{display:grid;gap:7px;max-height:330px;overflow:auto}.mc-list-item{display:grid;grid-template-columns:78px 1fr auto;gap:9px;align-items:center;text-decoration:none;border:1px solid #e5edf3;border-radius:9px;padding:10px}.mc-list-item>span{font-size:8px;text-transform:uppercase;font-weight:900;color:#64748b}.mc-list-item strong,.mc-list-item small{display:block}.mc-list-item strong{color:#173550}.mc-list-item small{font-size:9px;color:#74899a;margin-top:3px}.mc-list-item.critical{border-left:4px solid #dc2626}.mc-list-item.warning{border-left:4px solid #f59e0b}.mc-list-item.info{border-left:4px solid #0878d1}.mc-empty,.mc-loading{text-align:center;color:#74899a;padding:25px}.mc-empty.success{color:#166534;background:#f0fdf4;border-radius:9px}
.mc-note-form{display:grid;grid-template-columns:1fr 110px auto;gap:7px;margin-bottom:10px}.mc-note{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid #e5edf3;border-radius:9px;padding:9px}.mc-note.urgent{border-left:4px solid #dc2626}.mc-note.important{border-left:4px solid #f59e0b}.mc-note strong,.mc-note small{display:block}.mc-note strong{font-size:10px;color:#173550}.mc-note small{font-size:8px;color:#74899a;margin-top:3px}
.mc-operation-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mc-operation-cards a{text-decoration:none;background:#f7fbff;border:1px solid #e3edf4;border-radius:10px;padding:12px}.mc-operation-cards span,.mc-operation-cards strong{display:block}.mc-operation-cards span{font-size:8px;text-transform:uppercase;color:#74899a}.mc-operation-cards strong{font-size:22px;color:#173550;margin-top:5px}
.mc-activity{display:grid;gap:7px;max-height:300px;overflow:auto}.mc-activity-item{display:grid;grid-template-columns:auto 1fr;gap:8px;text-decoration:none}.mc-activity-item>span{width:8px;height:8px;border-radius:50%;background:#0878d1;margin-top:5px}.mc-activity-item.warning>span{background:#f59e0b}.mc-activity-item.critical>span{background:#dc2626}.mc-activity-item.success>span{background:#16a34a}.mc-activity-item strong,.mc-activity-item small{display:block}.mc-activity-item strong{font-size:10px;color:#173550}.mc-activity-item small{font-size:8px;color:#74899a;margin-top:2px}
.mc-weather-current{display:flex;align-items:center;gap:15px}.mc-weather-current>strong{font-size:42px;color:#173550}.mc-weather-current b,.mc-weather-current span{display:block}.mc-weather-current span{color:#74899a;margin-top:4px}.mc-weather-facts,.mc-weather-days{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}.mc-weather-days{grid-template-columns:repeat(4,1fr)}.mc-weather-facts>div,.mc-weather-days>div{background:#f7fbff;border-radius:9px;padding:9px;text-align:center}.mc-weather-facts span,.mc-weather-facts strong,.mc-weather-days span,.mc-weather-days b,.mc-weather-days strong,.mc-weather-days small{display:block}.mc-weather-facts span,.mc-weather-days span,.mc-weather-days small{font-size:8px;color:#74899a}.mc-weather-days b{font-size:18px;margin:3px}
.mc-wall-mode .sidebar,.mc-wall-mode .topbar,.mc-wall-mode .footer{display:none!important}.mc-wall-mode .main-content{margin:0!important}.mc-wall-mode .content-area{max-width:none;padding:10px}.mc-wall-mode .mc-command-header{padding:14px 20px}.mc-wall-mode .mc-header-actions a,.mc-wall-mode .mc-header-actions .secondary-button{display:none}
@media(max-width:1400px){.mc-kpi-grid{grid-template-columns:repeat(4,1fr)}.mc-topology-layer>div{grid-template-columns:repeat(2,1fr)}}@media(max-width:1050px){.mc-main-grid,.mc-operations-grid,.mc-three-grid{grid-template-columns:1fr}.mc-topology-layer>div{grid-template-columns:1fr}.mc-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.mc-command-header{flex-direction:column;align-items:flex-start}.mc-status-banner{grid-template-columns:auto 1fr}.mc-clock{grid-column:2}.mc-kpi-grid,.mc-operation-cards{grid-template-columns:1fr 1fr}.mc-topology-layer{grid-template-columns:1fr}.mc-note-form{grid-template-columns:1fr}.mc-weather-days{grid-template-columns:1fr 1fr}}

/* Advanced electronic contracts */
.contract-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.contract-progress>div{position:relative;background:#f7fbff;border:1px solid #dce8f1;border-radius:11px;padding:12px;display:flex;align-items:center;gap:9px}.contract-progress span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#dbe7ef;color:#64748b;font-weight:900}.contract-progress strong{font-size:10px;color:#64748b}.contract-progress .complete{background:#f0fdf4;border-color:#86efac}.contract-progress .complete span{background:#16a34a;color:#fff}.contract-progress .complete strong{color:#166534}.advanced-contract-document{max-width:1080px}.advanced-sign-panel{max-width:1080px;margin:18px auto}.contract-sign-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}.contract-sign-heading h2{margin:5px 0;color:#173550}.contract-sign-heading p{margin:0;color:#71879a}.touch-sign-icon{font-size:36px;width:64px;height:64px;border-radius:18px;background:#e7f6ff;display:grid;place-items:center}.signature-pad-wrapper{position:relative;margin:18px 0;border:2px dashed #9fc9e3;border-radius:14px;background:#fbfdff;padding:0;overflow:hidden}.signature-pad-wrapper.signature-error{border-color:#dc2626;background:#fff7f7}.signature-pad-header{display:flex;justify-content:space-between;padding:10px 14px;background:#edf7fc;border-bottom:1px solid #dce8f0}.signature-pad-header span{font-weight:850;color:#173550}.signature-pad-header small{color:#b45309}.signature-pad-header small.complete{color:#166534}.signature-pad-wrapper canvas{display:block;width:100%;height:230px;background:transparent;cursor:crosshair}.signature-line{position:absolute;left:9%;right:9%;bottom:38px;border-bottom:1px solid #9eb1bf}.signature-name-label{position:absolute;left:9%;bottom:14px;font-size:9px;text-transform:uppercase;color:#71879a}.signature-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:-6px}.contract-submit-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.contract-submit-row strong,.contract-submit-row span{display:block}.contract-submit-row span{font-size:10px;color:#71879a;margin-top:4px}.advanced-acceptance{background:#f8fbfd;border:1px solid #dce8f1;border-radius:12px;padding:18px;margin-top:22px}.advanced-acceptance .signature-preview{max-width:430px;max-height:180px;object-fit:contain;background:#fff;border:1px solid #e0e9ef;border-radius:8px;padding:8px}.signature-certificate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.signature-certificate-grid>div{background:#fff;border:1px solid #e2eaf0;border-radius:9px;padding:10px}.signature-certificate-grid .full{grid-column:1/-1}.signature-certificate-grid span,.signature-certificate-grid strong{display:block}.signature-certificate-grid span{font-size:8px;text-transform:uppercase;color:#71879a}.signature-certificate-grid strong{color:#173550;margin-top:4px}.contract-hash{font-family:monospace;font-size:9px;overflow-wrap:anywhere}.contract-delivery-status{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:15px}.contract-delivery-status>div{background:#f7fbff;border:1px solid #e1ebf2;border-radius:10px;padding:12px}.contract-delivery-status span,.contract-delivery-status strong{display:block}.contract-delivery-status span{font-size:8px;text-transform:uppercase;color:#71879a}.contract-delivery-status strong{color:#173550;margin-top:5px;font-size:10px;overflow-wrap:anywhere}.contract-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.contract-event-list{display:grid;gap:8px;max-height:420px;overflow:auto}.contract-event-list>div{border-left:3px solid #0878d1;padding:8px 11px;background:#f8fbfd;border-radius:0 9px 9px 0}.contract-event-list span,.contract-event-list strong{display:block}.contract-event-list span{font-size:8px;color:#71879a}.contract-event-list strong{margin-top:3px;color:#173550}.contract-event-list p{margin:4px 0 0;color:#647d90;font-size:10px}
@media(max-width:900px){.contract-progress,.signature-certificate-grid,.contract-delivery-status{grid-template-columns:1fr 1fr}.contract-admin-grid{grid-template-columns:1fr}}@media(max-width:600px){.contract-progress,.signature-certificate-grid,.contract-delivery-status{grid-template-columns:1fr}.contract-submit-row,.contract-sign-heading{flex-direction:column;align-items:stretch}.contract-submit-row button{width:100%}.signature-actions{justify-content:stretch}.signature-actions button{flex:1}}

/* PayFast signature diagnostics */
.payfast-diagnostic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.payfast-diagnostic-grid>div{background:#f7fbff;border:1px solid #e1ebf2;border-radius:10px;padding:13px}
.payfast-diagnostic-grid span,.payfast-diagnostic-grid strong{display:block}
.payfast-diagnostic-grid span{font-size:9px;text-transform:uppercase;color:#71879a}
.payfast-diagnostic-grid strong{color:#173550;margin-top:5px;overflow-wrap:anywhere}
.diagnostic-hash{font-family:monospace;font-size:10px}
.payfast-field-order{columns:2;column-gap:30px;color:#173550}
@media(max-width:700px){.payfast-diagnostic-grid{grid-template-columns:1fr}.payfast-field-order{columns:1}}

/* PayFast mandate recreation */
.mandate-cancelled-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff7ed;border:1px solid #fdba74;border-left:5px solid #ea580c;border-radius:13px;padding:17px;margin-bottom:16px}.mandate-cancelled-banner span,.mandate-cancelled-banner strong{display:block}.mandate-cancelled-banner span{font-size:9px;text-transform:uppercase;color:#9a3412}.mandate-cancelled-banner strong{font-size:17px;color:#7c2d12;margin:4px 0}.mandate-cancelled-banner p{margin:0;color:#9a5a3a}.replacement-created{text-align:right}.replacement-created a{display:block;color:#0878d1;font-weight:850;margin-top:5px}.recreate-available{font-size:9px;color:#b45309;font-weight:850}.customer-mandate-recreate{border-left:5px solid #0878d1}.mandate-cancel-form{max-width:700px}@media(max-width:700px){.mandate-cancelled-banner{flex-direction:column;align-items:stretch}.replacement-created{text-align:left}}

/* PayFast webhook diagnostics */
.payfast-webhook-filter{display:flex;gap:7px;margin-bottom:14px}.payfast-webhook-filter a{text-decoration:none;padding:7px 11px;border-radius:999px;background:#eef4f8;color:#526c80;font-size:10px;font-weight:850}.payfast-webhook-filter a.active{background:#0878d1;color:#fff}.validation-chip{display:inline-block;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}.validation-chip.pass{background:#dcfce7;color:#166534}.validation-chip.fail{background:#fee2e2;color:#991b1b}

/* Protected PayFast mandate deletion */
.mandate-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:11px 13px;background:#f7fbff;border:1px solid #e1ebf2;border-radius:10px}
.mandate-list-toolbar>div{display:flex;align-items:center;gap:10px}
.mandate-list-toolbar>div>span{font-size:10px;color:#71879a;font-weight:800}
.mandate-select-all{display:flex;align-items:center;gap:8px;margin:0}
.mandate-select-all input,.mandate-delete-checkbox{width:17px;height:17px}
.mandate-deletable{background:#fffdfd}
.mandate-protected-lock{display:inline-block;width:10px;height:10px;border-radius:50%;background:#cbd5e1}
.mandate-delete-protected{font-size:9px;color:#94a3b8;font-weight:800}
.inline-delete-form{display:inline}
.mandate-danger-zone{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #fecaca;border-left:5px solid #dc2626;background:#fff7f7;margin-top:16px}
.mandate-danger-zone h2{margin:5px 0;color:#991b1b}
.mandate-danger-zone p{margin:0;color:#7f1d1d}
@media(max-width:750px){.mandate-list-toolbar,.mandate-danger-zone{flex-direction:column;align-items:stretch}.mandate-list-toolbar>div{justify-content:space-between}}

/* Recurring mandate administrator list correction */
.mandate-status-summary{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:14px}
.mandate-status-summary a{text-decoration:none;background:#fff;border:1px solid var(--border);border-radius:10px;padding:11px;text-align:center}
.mandate-status-summary a.active{border-color:#0878d1;background:#edf8ff;box-shadow:inset 0 -3px #0878d1}
.mandate-status-summary span,.mandate-status-summary strong{display:block}
.mandate-status-summary span{font-size:8px;text-transform:uppercase;color:#71879a}
.mandate-status-summary strong{font-size:18px;color:#173550;margin-top:5px}
.mandate-filter-form{display:grid;grid-template-columns:220px minmax(280px,1fr) auto auto;gap:10px;align-items:end}
.mandate-subtext{display:block;color:#74899a;margin-top:4px}
.mandate-protected-lock{display:inline-block;width:10px;height:10px;border-radius:50%;background:#cbd5e1}
.mandate-single-delete{margin-left:5px}
.mandate-empty-state{display:grid;gap:5px;text-align:center;padding:35px;color:#71879a}
.mandate-empty-state strong{color:#173550}
.table-scroll{overflow:auto}
@media(max-width:1150px){.mandate-status-summary{grid-template-columns:repeat(4,1fr)}}
@media(max-width:750px){.mandate-filter-form{grid-template-columns:1fr}.mandate-status-summary{grid-template-columns:repeat(2,1fr)}}

/* Sleek customer mandate and invoice payment flow */
.active-mandate-hero,.dashboard-active-mandate{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:16px;background:linear-gradient(120deg,#ecfdf5,#f7fffb);border:1px solid #86efac;border-radius:16px;padding:18px;margin-bottom:16px}
.active-mandate-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:23px;font-weight:900;box-shadow:0 8px 20px rgba(22,163,74,.2)}
.active-mandate-main>span,.dashboard-active-mandate>div>span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#166534;font-weight:900}
.active-mandate-main h2,.dashboard-active-mandate h2{margin:4px 0;color:#14532d}
.active-mandate-main p,.dashboard-active-mandate p{margin:0;color:#4b7560}
.active-mandate-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.active-mandate-facts>div{background:rgba(255,255,255,.78);border-radius:9px;padding:9px 12px}
.active-mandate-facts span,.active-mandate-facts strong{display:block}
.active-mandate-facts span{font-size:8px;text-transform:uppercase;color:#5f7f6c}
.active-mandate-facts strong{margin-top:4px;color:#14532d}
.customer-invoice-payment-list{display:grid;gap:11px}
.customer-invoice-payment-card{display:grid;grid-template-columns:120px 1fr minmax(310px,auto);align-items:center;gap:15px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 9px 25px rgba(8,45,85,.04)}
.customer-invoice-payment-card.paid{background:#f8fffb}
.invoice-payment-status small,.invoice-payment-details span,.invoice-payment-details strong,.invoice-payment-details b{display:block}
.invoice-payment-status small{margin-top:7px;color:#61788b;font-weight:850}
.invoice-payment-details strong{font-size:19px;color:#173550}
.invoice-payment-details span{font-size:9px;color:#74899a;margin:4px 0}
.invoice-payment-details b{color:#b45309}.invoice-paid-label{color:#166534!important}
.invoice-payment-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.mandate-pay-button{background:#16a34a!important;border-color:#16a34a!important}
.mandate-payment-pending{display:block;background:#fff7ed;border:1px solid #fdba74;border-radius:9px;padding:7px 10px;color:#9a3412;font-size:9px;font-weight:850}
.mandate-payment-pending small{display:block;margin-top:3px}
.mandate-payment-security-note{display:flex;gap:15px;align-items:flex-start;background:#f7fbff;border:1px solid #dce8f1;border-radius:12px;padding:15px;margin-top:16px}
.mandate-payment-security-note p{margin:0;color:#61788b}
.mandate-payment-shell{max-width:760px;margin:0 auto}.mandate-payment-back{display:inline-block;margin-bottom:12px;text-decoration:none;color:#0878d1;font-weight:850}
.mandate-payment-confirm-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:25px;box-shadow:0 20px 55px rgba(5,35,65,.1)}
.mandate-payment-confirm-header{display:flex;gap:14px;align-items:center}.mandate-payment-confirm-header span{font-size:9px;text-transform:uppercase;color:#166534;font-weight:900}.mandate-payment-confirm-header h1{margin:4px 0;color:#173550}.mandate-payment-confirm-header p{margin:0;color:#71879a}
.mandate-payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.mandate-payment-summary>div{background:#f7fbff;border-radius:12px;padding:15px}.mandate-payment-summary span,.mandate-payment-summary strong,.mandate-payment-summary small{display:block}.mandate-payment-summary span{font-size:8px;text-transform:uppercase;color:#71879a}.mandate-payment-summary strong{font-size:18px;color:#173550;margin:5px 0}.mandate-charge-amount{font-size:27px!important;color:#166534!important}
.mandate-payment-method{border:1px solid #dce8f1;border-radius:12px;padding:14px;margin-bottom:17px}.mandate-payment-method>div{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.mandate-card-symbol{width:45px;height:35px;border-radius:7px;background:#071d36;color:#fff;display:grid;place-items:center;font-size:9px;letter-spacing:2px}.mandate-payment-method span,.mandate-payment-method strong,.mandate-payment-method small{display:block}.mandate-payment-method>div>div>span{font-size:8px;text-transform:uppercase;color:#71879a}.mandate-payment-method strong{margin:4px 0;color:#173550}.mandate-payment-method small{color:#71879a}
.mandate-charge-consent{background:#f7fbff;border-radius:11px;padding:14px!important}.mandate-confirm-button{width:100%;font-size:15px;padding:14px;margin-top:14px;background:#16a34a!important}.mandate-confirm-footer{display:flex;justify-content:space-between;gap:10px;margin-top:16px;color:#71879a;font-size:9px}
.dashboard-active-mandate{grid-template-columns:auto 1fr auto}.dashboard-mandate-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.customer-mandate-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.customer-mandate-modern{background:#fff;border:1px solid var(--border);border-radius:15px;padding:18px;box-shadow:0 9px 26px rgba(8,45,85,.05)}.customer-mandate-modern.active{border-top:4px solid #16a34a}.customer-mandate-modern-header{display:flex;justify-content:space-between;gap:10px}.customer-mandate-modern-header h2{margin:8px 0 3px;color:#173550}.customer-mandate-modern-header p{margin:0;color:#71879a}.mandate-status-symbol{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#ecfdf5;color:#16a34a;font-size:18px;font-weight:900}.customer-mandate-modern-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.customer-mandate-modern-facts>div{background:#f7fbff;border-radius:9px;padding:10px}.customer-mandate-modern-facts span,.customer-mandate-modern-facts strong{display:block}.customer-mandate-modern-facts span{font-size:8px;text-transform:uppercase;color:#71879a}.customer-mandate-modern-facts strong{margin-top:4px;color:#173550}.customer-mandate-ready{background:#ecfdf5;border-radius:9px;padding:11px}.customer-mandate-ready strong,.customer-mandate-ready span{display:block}.customer-mandate-ready strong{color:#166534}.customer-mandate-ready span{font-size:9px;color:#4b7560;margin-top:3px}.customer-mandate-modern-actions{display:flex;gap:8px;margin-top:14px}
@media(max-width:1050px){.active-mandate-hero{grid-template-columns:auto 1fr}.active-mandate-facts,.active-mandate-hero>a{grid-column:2}.customer-invoice-payment-card{grid-template-columns:100px 1fr}.invoice-payment-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:760px){.active-mandate-hero,.dashboard-active-mandate{grid-template-columns:1fr;text-align:center}.active-mandate-icon{margin:auto}.active-mandate-facts,.active-mandate-hero>a{grid-column:auto}.dashboard-mandate-actions{justify-content:center}.customer-invoice-payment-card{grid-template-columns:1fr}.invoice-payment-actions{grid-column:auto;justify-content:stretch}.invoice-payment-actions a{flex:1;text-align:center}.customer-mandate-grid{grid-template-columns:1fr}.mandate-payment-summary{grid-template-columns:1fr}.mandate-confirm-footer{flex-direction:column}.customer-mandate-modern-actions{flex-direction:column}}

/* Tokenization mandate payment capability */
.mandate-capability-note{background:#fff7ed;border:1px solid #fdba74;border-radius:9px;padding:10px;max-width:330px}.mandate-capability-note strong,.mandate-capability-note span{display:block}.mandate-capability-note strong{color:#9a3412}.mandate-capability-note span{font-size:9px;color:#9a5a3a;margin-top:3px}.customer-mandate-ready.scheduled-only{background:#fff7ed}.customer-mandate-ready.scheduled-only strong{color:#9a3412}.customer-mandate-ready.scheduled-only span{color:#9a5a3a}.mandate-capability-panel{border-left:5px solid #0878d1}

/* Client portal My Details and password security */
.account-security-badge{background:#ecfdf5;border:1px solid #86efac;border-radius:999px;padding:8px 13px;text-align:right}.account-security-badge span,.account-security-badge strong{display:block}.account-security-badge span{font-size:8px;text-transform:uppercase;color:#4b7560}.account-security-badge strong{color:#166534}
.my-details-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:16px;margin-bottom:16px}.my-details-profile-card{margin:0}.profile-card-heading{display:flex;align-items:center;gap:13px;margin-bottom:18px}.profile-avatar{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0878d1,#071d36);color:#fff;font-size:23px;font-weight:900}.profile-card-heading h2{margin:4px 0;color:#173550}.profile-card-heading p{margin:0;color:#71879a}.account-activity-card{background:linear-gradient(145deg,#071d36,#0b416f);color:#fff;border-radius:16px;padding:19px;box-shadow:0 12px 32px rgba(4,29,54,.16)}.account-activity-card .card-eyebrow{color:#78cdf8}.account-activity-card h2{margin:5px 0 15px}.account-activity-list{display:grid;gap:9px}.account-activity-list>div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px}.account-activity-list span,.account-activity-list strong{display:block}.account-activity-list span{font-size:8px;text-transform:uppercase;color:#a8cbdf}.account-activity-list strong{margin-top:4px;font-size:10px;overflow-wrap:anywhere}
.password-security-panel{scroll-margin-top:20px}.password-security-heading{display:flex;gap:13px;align-items:center;margin-bottom:18px}.security-lock-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#e8f5ff;color:#0878d1;font-size:25px;font-weight:900}.password-security-heading h2{margin:4px 0;color:#173550}.password-security-heading p{margin:0;color:#71879a}.password-change-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.password-field label{margin:0}.password-input-wrap{display:grid;grid-template-columns:1fr auto;border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden;margin-top:5px}.password-input-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important}.password-toggle{border:0!important;border-left:1px solid var(--border)!important;border-radius:0!important;background:#f5f9fc!important;color:#0878d1!important;padding:0 13px!important;font-size:9px!important}.password-strength{margin-top:8px}.password-strength-bar{height:6px;background:#e6edf2;border-radius:999px;overflow:hidden}.password-strength-bar span{display:block;height:100%;width:0;background:#dc2626;transition:width .2s ease}.password-strength-bar span[data-score="3"],.password-strength-bar span[data-score="4"]{background:#f59e0b}.password-strength-bar span[data-score="5"]{background:#16a34a}.password-strength>strong{display:block;font-size:9px;color:#71879a;margin-top:5px}.password-field>small{display:block;margin-top:7px;min-height:13px}.password-field>small.valid{color:#166534}.password-field>small.invalid{color:#b91c1c}.password-requirements{grid-column:1/-1;background:#f7fbff;border:1px solid #e1ebf2;border-radius:11px;padding:13px}.password-requirements>strong{color:#173550}.password-requirements ul{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;list-style:none;margin:10px 0 0;padding:0}.password-requirements li{position:relative;padding-left:19px;font-size:9px;color:#71879a}.password-requirements li:before{content:"×";position:absolute;left:0;top:-1px;width:14px;height:14px;border-radius:50%;display:grid;place-items:center;background:#fee2e2;color:#b91c1c;font-weight:900}.password-requirements li.valid{color:#166534}.password-requirements li.valid:before{content:"✓";background:#dcfce7;color:#166534}.password-submit-row{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--border);padding-top:15px}.password-session-note strong,.password-session-note span{display:block}.password-session-note strong{color:#173550}.password-session-note span{font-size:9px;color:#71879a;margin-top:3px}.password-submit-row button:disabled{opacity:.45;cursor:not-allowed}.account-safety-note{display:flex;gap:10px;align-items:center;background:#fff7ed;border:1px solid #fdba74;border-radius:11px;padding:13px;margin-top:16px}.account-safety-note strong{color:#9a3412;white-space:nowrap}.account-safety-note span{color:#9a5a3a}
@media(max-width:1000px){.my-details-layout{grid-template-columns:1fr}.password-change-form{grid-template-columns:1fr 1fr}.password-field:first-of-type{grid-column:1/-1}.password-requirements ul{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.password-change-form{grid-template-columns:1fr}.password-field:first-of-type{grid-column:auto}.password-requirements ul{grid-template-columns:1fr}.password-submit-row,.account-safety-note{flex-direction:column;align-items:stretch}.password-submit-row button{width:100%}.account-security-badge{display:none}}

/* Customer installation location maps */
.installation-location-state{border-radius:999px;padding:8px 13px;text-align:right}.installation-location-state.saved{background:#ecfdf5;border:1px solid #86efac}.installation-location-state.missing{background:#fff7ed;border:1px solid #fdba74}.installation-location-state span,.installation-location-state strong{display:block}.installation-location-state span{font-size:8px;text-transform:uppercase}.installation-location-state.saved span,.installation-location-state.saved strong{color:#166534}.installation-location-state.missing span,.installation-location-state.missing strong{color:#9a3412}
.installation-location-layout{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);gap:16px}.installation-location-controls{margin:0}.location-customer-summary{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.location-summary-icon{width:49px;height:49px;border-radius:15px;display:grid;place-items:center;background:#e8f5ff;color:#0878d1;font-size:25px;font-weight:900}.location-customer-summary h2{margin:4px 0;color:#173550}.location-customer-summary p{margin:0;color:#71879a;line-height:1.5}.coordinate-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.location-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0}.location-action-grid button span{margin-right:5px}.coordinate-help{background:#f7fbff;border:1px solid #e1ebf2;border-radius:10px;padding:12px}.coordinate-help strong{color:#173550}.coordinate-help p{margin:4px 0 0;color:#71879a}.location-feedback{border-radius:10px;padding:11px 12px;margin:12px 0;font-size:10px}.location-feedback.info{background:#eff8ff;border:1px solid #bae6fd;color:#075985}.location-feedback.success{background:#ecfdf5;border:1px solid #86efac;color:#166534}.location-feedback.error{background:#fff1f2;border:1px solid #fda4af;color:#991b1b}.save-installation-location{width:100%;padding:13px;font-size:13px}.saved-coordinate-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.saved-coordinate-card>div{background:#f7fbff;border-radius:9px;padding:10px}.saved-coordinate-card>div:last-child{grid-column:1/-1}.saved-coordinate-card span,.saved-coordinate-card strong{display:block}.saved-coordinate-card span{font-size:8px;text-transform:uppercase;color:#71879a}.saved-coordinate-card strong{margin-top:4px;color:#173550;overflow-wrap:anywhere}
.installation-location-map-card{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 12px 32px rgba(8,45,85,.06)}.installation-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px}.installation-map-toolbar h2{margin:4px 0 0;color:#173550}.map-coordinate-preview{display:flex;gap:7px}.map-coordinate-preview span{background:#f0f6fa;border-radius:999px;padding:6px 9px;font-size:9px;color:#47677d;font-family:monospace}.installation-location-map-card #installation-location-map{height:570px;background:#e7eff4}.installation-map-footer{display:flex;justify-content:space-between;gap:10px;padding:10px 15px;color:#71879a;font-size:8px}.installation-map-footer a{color:#0878d1;text-decoration:none;font-weight:850}.installation-location-marker-wrap{background:transparent;border:0}.installation-location-marker{position:relative;width:44px;height:44px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#0878d1;border:4px solid #fff;box-shadow:0 7px 20px rgba(5,52,92,.35);display:grid;place-items:center}.installation-location-marker span{transform:rotate(45deg);color:#fff;font-size:20px}.installation-location-privacy{display:flex;gap:13px;align-items:flex-start;background:#ecfdf5;border:1px solid #86efac;border-radius:12px;padding:14px;margin-top:16px}.privacy-location-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-weight:900}.installation-location-privacy strong{color:#166534}.installation-location-privacy p{margin:4px 0 0;color:#4b7560}
.dashboard-installation-location-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:16px;box-shadow:0 10px 28px rgba(8,45,85,.05)}.dashboard-location-content{padding:18px}.dashboard-location-heading{display:flex;gap:12px;align-items:flex-start}.dashboard-location-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#e8f5ff;color:#0878d1;font-size:23px}.dashboard-location-heading h2{margin:4px 0;color:#173550}.dashboard-location-heading p{margin:0;color:#71879a}.dashboard-location-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.dashboard-location-coordinates>div{background:#f7fbff;border-radius:9px;padding:10px}.dashboard-location-coordinates span,.dashboard-location-coordinates strong{display:block}.dashboard-location-coordinates span{font-size:8px;text-transform:uppercase;color:#71879a}.dashboard-location-coordinates strong{margin-top:4px;color:#173550;font-family:monospace}.dashboard-location-map-wrap{position:relative;min-height:235px;background:#e7eff4}.dashboard-location-map-wrap #customer-dashboard-location-map{height:100%;min-height:235px;cursor:pointer}.dashboard-map-badge{position:absolute;left:12px;bottom:12px;z-index:500;background:rgba(7,29,54,.9);color:#fff;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:850}.dashboard-location-marker-wrap{background:transparent;border:0}.dashboard-location-marker{width:38px;height:38px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;background:#0878d1;border:3px solid #fff;color:#fff;box-shadow:0 6px 16px rgba(5,52,92,.35)}.dashboard-location-marker-wrap .dashboard-location-marker{font-size:17px}.dashboard-location-marker{line-height:1}.dashboard-location-marker::first-letter{transform:rotate(45deg)}.dashboard-location-map-empty{height:100%;min-height:235px;display:grid;place-items:center;align-content:center;gap:5px;text-decoration:none;color:#71879a;background:linear-gradient(145deg,#edf6fb,#dceaf2)}.dashboard-location-map-empty>span{font-size:37px;color:#0878d1}.dashboard-location-map-empty strong{color:#173550}.dashboard-location-map-empty small{color:#71879a}
@media(max-width:1050px){.installation-location-layout{grid-template-columns:1fr}.installation-location-map-card #installation-location-map{height:470px}.dashboard-installation-location-card{grid-template-columns:1fr}.dashboard-location-map-wrap{min-height:260px}}
@media(max-width:650px){.coordinate-entry-grid,.location-action-grid,.saved-coordinate-card,.dashboard-location-coordinates{grid-template-columns:1fr}.saved-coordinate-card>div:last-child{grid-column:auto}.installation-map-toolbar,.installation-map-footer{flex-direction:column;align-items:flex-start}.map-coordinate-preview{flex-direction:column}.installation-location-map-card #installation-location-map{height:400px}.installation-location-state{display:none}}

/* Customer installation location change lock */
.customer-location-lock-panel{margin-bottom:16px;border-left:5px solid #0878d1}.customer-location-lock-heading{display:flex;gap:13px;align-items:flex-start}.location-lock-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#e8f5ff;font-size:22px}.customer-location-lock-heading h2{margin:4px 0;color:#173550}.customer-location-lock-heading p{margin:0;color:#71879a}.customer-location-lock-status{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.customer-location-lock-status>div{background:#f7fbff;border-radius:9px;padding:10px}.customer-location-lock-status span,.customer-location-lock-status strong{display:block}.customer-location-lock-status span{font-size:8px;text-transform:uppercase;color:#71879a}.customer-location-lock-status strong{margin-top:4px;color:#173550;overflow-wrap:anywhere}.customer-location-lock-status strong.locked{color:#991b1b}.customer-location-lock-status strong.unlocked{color:#166534}.customer-location-lock-action{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f8fbfd;border:1px solid #e1ebf2;border-radius:10px;padding:12px}.customer-location-lock-action strong,.customer-location-lock-action span{display:block}.customer-location-lock-action strong{color:#173550}.customer-location-lock-action span{font-size:9px;color:#71879a;margin-top:3px}
.customer-location-locked-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:#fff7ed;border:1px solid #fdba74;border-left:5px solid #ea580c;border-radius:14px;padding:16px;margin-bottom:16px}.customer-location-locked-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#ffedd5;font-size:21px}.customer-location-locked-banner span{font-size:9px;text-transform:uppercase;color:#9a3412;font-weight:900}.customer-location-locked-banner h2{margin:4px 0;color:#7c2d12}.customer-location-locked-banner p{margin:0;color:#9a5a3a}.save-installation-location:disabled{opacity:.65;cursor:not-allowed;background:#64748b!important}.location-lock-chip{display:inline-block;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:900}.location-lock-chip.locked{background:#fee2e2;color:#991b1b}.location-lock-chip.saved{background:#dcfce7;color:#166534}.location-lock-chip.missing{background:#f1f5f9;color:#64748b}
@media(max-width:850px){.customer-location-lock-status{grid-template-columns:1fr 1fr}.customer-location-locked-banner{grid-template-columns:1fr;text-align:center}.customer-location-locked-icon{margin:auto}.customer-location-lock-action{flex-direction:column;align-items:stretch}}
@media(max-width:550px){.customer-location-lock-status{grid-template-columns:1fr}}

/* Clear customer lock message and compact dashboard map */
.customer-location-lock-explanation{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:14px;
 align-items:center;
 background:#fffaf0;
 border:1px solid #fed7aa;
 border-radius:12px;
 padding:14px;
 margin:-4px 0 16px
}
.customer-location-lock-explanation>strong{
 grid-column:1;
 color:#7c2d12
}
.customer-location-lock-explanation>p{
 grid-column:1;
 margin:3px 0 0;
 color:#9a5a3a
}
.customer-location-lock-explanation>div{
 grid-column:2;
 grid-row:1/3;
 min-width:165px;
 background:#fff;
 border:1px solid #fed7aa;
 border-radius:9px;
 padding:10px
}
.customer-location-lock-explanation>div span,
.customer-location-lock-explanation>div strong{
 display:block
}
.customer-location-lock-explanation>div span{
 font-size:8px;
 text-transform:uppercase;
 color:#9a5a3a
}
.customer-location-lock-explanation>div strong{
 margin-top:4px;
 color:#7c2d12
}
.dashboard-installation-location-card.compact{
 grid-template-columns:minmax(0,1fr) 300px;
 max-width:980px
}
.dashboard-installation-location-card.compact .dashboard-location-content{
 padding:14px 16px
}
.dashboard-installation-location-card.compact .dashboard-location-heading{
 gap:10px
}
.dashboard-installation-location-card.compact .dashboard-location-icon{
 width:38px;
 height:38px;
 border-radius:12px;
 font-size:19px
}
.dashboard-installation-location-card.compact .dashboard-location-heading h2{
 font-size:16px
}
.dashboard-installation-location-card.compact .dashboard-location-heading p{
 font-size:9px
}
.dashboard-installation-location-card.compact .dashboard-location-coordinates{
 gap:6px;
 margin:10px 0
}
.dashboard-installation-location-card.compact .dashboard-location-coordinates>div{
 padding:8px
}
.dashboard-installation-location-card.compact .dashboard-location-map-wrap{
 min-height:165px
}
.dashboard-installation-location-card.compact #customer-dashboard-location-map{
 min-height:165px;
 height:165px
}
.dashboard-installation-location-card.compact .dashboard-location-map-empty{
 min-height:165px
}
.dashboard-location-lock-note{
 display:inline-block;
 margin:10px 0 0;
 border-radius:999px;
 padding:6px 9px;
 background:#fff7ed;
 border:1px solid #fdba74;
 color:#9a3412;
 font-size:8px;
 font-weight:850
}
@media(max-width:900px){
 .dashboard-installation-location-card.compact{
   grid-template-columns:1fr;
   max-width:none
 }
 .dashboard-installation-location-card.compact .dashboard-location-map-wrap,
 .dashboard-installation-location-card.compact #customer-dashboard-location-map,
 .dashboard-installation-location-card.compact .dashboard-location-map-empty{
   min-height:185px;
   height:185px
 }
}
@media(max-width:650px){
 .customer-location-lock-explanation{
   grid-template-columns:1fr
 }
 .customer-location-lock-explanation>div{
   grid-column:1;
   grid-row:auto
 }
}

/* Visual network topology and customer traffic route */
.topology-admin-notice{background:linear-gradient(120deg,#071d36,#0b416f);color:#fff;border-radius:12px;padding:13px 16px;margin-bottom:13px}.topology-admin-notice strong{color:#78cdf8}.topology-toolbar{grid-template-columns:minmax(220px,1fr) 180px 190px auto;align-items:end}.topology-toggle{display:flex!important;align-items:center;gap:7px;padding-bottom:8px}.topology-toggle input{width:17px;height:17px}.topology-map-legend{grid-column:1/-1}.topology-legend-icon{width:23px;height:23px;border-radius:7px;display:inline-grid;place-items:center;color:#fff;font-style:normal;font-size:10px;font-weight:900;margin-right:5px}.topology-legend-icon.cpe{background:#0878d1}.topology-legend-icon.tower{background:#d97706}.topology-legend-icon.router{background:#7c3aed}.topology-legend-icon.switch{background:#475569}.topology-legend-icon.fibre{background:#16a34a}.topology-legend-icon.wan{background:#2563eb}.topology-legend-icon.ocean{background:#0891b2}.topology-map-layout{grid-template-columns:minmax(0,1fr) 330px}.topology-map-layout #customer-live-map{height:690px}.topology-map-instructions{position:absolute;left:14px;bottom:14px;z-index:500;max-width:390px;background:rgba(7,29,54,.92);color:#fff;border-radius:10px;padding:9px 12px;font-size:9px}.topology-side-panel{max-height:690px;overflow:auto}.topology-management-table{margin-top:16px}.topology-table-meta{display:block;color:#71879a;margin-top:3px}
.topology-dialog{width:min(760px,calc(100vw - 24px));border:0;border-radius:17px;padding:0;box-shadow:0 26px 80px rgba(0,0,0,.28)}.topology-dialog::backdrop{background:rgba(3,18,32,.7)}.topology-dialog form{padding:20px}.topology-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.topology-dialog-header h2{margin:4px 0;color:#173550}.dialog-close{width:34px;height:34px;border-radius:50%!important;padding:0!important;background:#eef4f8!important;color:#173550!important;font-size:20px!important}.topology-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.checkbox-label{display:flex!important;align-items:center;gap:8px}.checkbox-label input{width:17px;height:17px}
.topology-node-icon-wrap{background:transparent;border:0}.topology-node-icon{position:relative;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;border:3px solid #fff;box-shadow:0 8px 22px rgba(5,35,65,.3)}.topology-node-icon span{font-size:15px;font-weight:900}.topology-node-icon.customer-cpe{background:#0878d1}.topology-node-icon.tower,.topology-node-icon.wireless-ap{background:#d97706}.topology-node-icon.mikrotik-router{background:#7c3aed}.topology-node-icon.network-switch{background:#475569}.topology-node-icon.fibre-pop,.topology-node-icon.fibre-junction{background:#16a34a}.topology-node-icon.wan-gateway{background:#2563eb}.topology-node-icon.data-centre{background:#0f766e}.topology-node-icon.submarine-cable,.topology-node-icon.overseas-pop{background:#0891b2}.topology-node-icon.internet{background:#0e7490;border-radius:50%}.topology-node-icon.offline{filter:grayscale(1);opacity:.62}.topology-node-icon.degraded{box-shadow:0 0 0 4px rgba(245,158,11,.35),0 8px 22px rgba(5,35,65,.3)}.topology-node-icon.maintenance{box-shadow:0 0 0 4px rgba(37,99,235,.25),0 8px 22px rgba(5,35,65,.3)}.topology-node-selected .topology-node-icon{box-shadow:0 0 0 6px rgba(14,165,233,.35),0 8px 22px rgba(5,35,65,.3)}
.leaflet-overlay-pane path.topology-traffic-line{stroke-linecap:round}.leaflet-overlay-pane path.traffic-animated{stroke-dasharray:12 12;animation:topology-flow 1.4s linear infinite}.leaflet-overlay-pane path.direction-reverse{animation-direction:reverse}.leaflet-overlay-pane path.status-offline{animation:none!important;stroke:#dc2626!important}.leaflet-overlay-pane path.status-degraded{stroke:#f59e0b!important}@keyframes topology-flow{to{stroke-dashoffset:-24}}
.customer-route-explainer{display:flex;gap:14px;align-items:center;background:linear-gradient(120deg,#eff8ff,#f7fcff);border:1px solid #bae6fd;border-radius:14px;padding:16px;margin-bottom:15px}.route-explainer-icon{width:49px;height:49px;border-radius:15px;display:grid;place-items:center;background:#0878d1;color:#fff;font-size:25px}.customer-route-explainer span{font-size:8px;text-transform:uppercase;color:#075985;font-weight:900}.customer-route-explainer h2{margin:4px 0;color:#173550}.customer-route-explainer p{margin:0;color:#61788b}.customer-route-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:15px}.customer-route-map-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:15px;overflow:hidden;box-shadow:0 12px 34px rgba(5,35,65,.07)}.customer-route-map-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px}.customer-route-map-toolbar h2{margin:4px 0;color:#173550}.customer-route-live{display:flex;align-items:center;gap:6px;font-size:9px;color:#166534;font-weight:850}.customer-route-live i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.15)}#customer-network-route-map{height:590px}.customer-route-details{margin:0;max-height:660px;overflow:auto}.customer-route-legend{display:grid;gap:8px;margin-top:18px}.customer-route-legend>strong{color:#173550}.customer-route-legend>span{display:flex;align-items:center;color:#61788b}
@media(max-width:1100px){.topology-map-layout,.customer-route-layout{grid-template-columns:1fr}.topology-side-panel,.customer-route-details{max-height:none}.topology-map-layout #customer-live-map,#customer-network-route-map{height:520px}.topology-toolbar{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.topology-toolbar{grid-template-columns:1fr}.topology-dialog-actions{flex-direction:column}.topology-dialog-actions button{width:100%}.topology-map-layout #customer-live-map,#customer-network-route-map{height:430px}.customer-route-explainer{align-items:flex-start}.route-explainer-icon{flex:0 0 auto}}

/* Tower signal coverage radius */
.tower-radius-key{
 display:inline-block;
 width:22px;
 height:12px;
 border-radius:999px;
 border:2px solid currentColor;
 margin-right:5px;
 vertical-align:middle
}
.tower-radius-key.strong{
 color:#16a34a;
 background:rgba(22,163,74,.14)
}
.tower-radius-key.medium{
 color:#ca8a04;
 background:rgba(234,179,8,.14)
}
.tower-radius-key.weak{
 color:#dc2626;
 background:rgba(220,38,38,.12)
}
.leaflet-overlay-pane path.tower-coverage-ring{
 pointer-events:auto
}
.leaflet-overlay-pane path.tower-coverage-strong{
 fill:#16a34a;
 fill-opacity:.09;
 stroke:#16a34a
}
.leaflet-overlay-pane path.tower-coverage-medium{
 fill:#eab308;
 fill-opacity:.075;
 stroke:#eab308
}
.leaflet-overlay-pane path.tower-coverage-weak{
 fill:#dc2626;
 fill-opacity:.065;
 stroke:#dc2626
}

/* Editable per-tower signal radius */
.topology-radius-fields{
 background:#f7fbff;
 border:1px solid #dce8f1;
 border-radius:11px;
 padding:13px
}
.topology-radius-fields[hidden]{
 display:none!important
}
.topology-radius-heading{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:10px;
 margin-bottom:10px
}
.topology-radius-heading strong{
 color:#173550
}
.topology-radius-heading span{
 font-size:9px;
 color:#71879a
}
.topology-radius-grid{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:9px
}
.topology-radius-grid label{
 border-radius:9px;
 padding:10px;
 margin:0
}
.topology-radius-grid label.radius-strong{
 background:rgba(22,163,74,.08);
 border:1px solid rgba(22,163,74,.3)
}
.topology-radius-grid label.radius-medium{
 background:rgba(234,179,8,.09);
 border:1px solid rgba(202,138,4,.34)
}
.topology-radius-grid label.radius-weak{
 background:rgba(220,38,38,.07);
 border:1px solid rgba(220,38,38,.28)
}
.topology-radius-grid label>span{
 display:block;
 font-size:9px;
 font-weight:850;
 margin-bottom:6px
}
.topology-radius-grid .radius-strong>span{
 color:#166534
}
.topology-radius-grid .radius-medium>span{
 color:#854d0e
}
.topology-radius-grid .radius-weak>span{
 color:#991b1b
}
.topology-radius-grid label>div{
 display:grid;
 grid-template-columns:1fr auto;
 align-items:center;
 border:1px solid var(--border);
 border-radius:8px;
 overflow:hidden;
 background:#fff
}
.topology-radius-grid input{
 border:0!important;
 border-radius:0!important;
 box-shadow:none!important;
 margin:0!important
}
.topology-radius-grid b{
 padding:0 10px;
 color:#61788b;
 font-size:9px
}
.topology-radius-fields>small{
 display:block;
 margin-top:8px;
 color:#71879a
}
.tower-radius-summary{
 display:flex;
 flex-wrap:wrap;
 gap:4px;
 margin-bottom:5px
}
.tower-radius-summary span{
 border-radius:999px;
 padding:4px 7px;
 font-size:8px;
 font-weight:900
}
.tower-radius-summary .strong{
 background:#dcfce7;
 color:#166534
}
.tower-radius-summary .medium{
 background:#fef9c3;
 color:#854d0e
}
.tower-radius-summary .weak{
 background:#fee2e2;
 color:#991b1b
}
.link-button{
 border:0!important;
 background:transparent!important;
 color:#0878d1!important;
 padding:0!important;
 font-size:9px!important;
 text-decoration:underline
}
.tower-radius-dialog-grid{
 margin:14px 0
}
@media(max-width:750px){
 .topology-radius-grid{
   grid-template-columns:1fr
 }
 .topology-radius-heading{
   align-items:flex-start;
   flex-direction:column
 }
}

/* Customer home to tower topology links */
.leaflet-overlay-pane path.customer-to-tower-line{
 stroke-linecap:round;
 filter:drop-shadow(0 1px 1px rgba(5,35,65,.24))
}
.customer-home-selected .live-map-marker{
 box-shadow:
   0 0 0 7px rgba(14,165,233,.28),
   0 0 0 2px #fff
}
#customer-tower-link-dialog .location-feedback{
 margin-top:14px
}
@media(max-width:850px){
 #customer-tower-link-dialog .topology-dialog-actions{
   flex-direction:column
 }
 #customer-tower-link-dialog .topology-dialog-actions button{
   width:100%
 }
}

/* Tower coordinate editor */
.tower-node-actions{display:flex;flex-wrap:wrap;gap:7px}.tower-coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tower-coordinate-tools{display:flex;gap:9px;margin-top:13px}.tower-coordinate-warning{background:#eff8ff;border:1px solid #bae6fd;border-radius:10px;padding:12px;margin-top:12px}.tower-coordinate-warning strong{color:#075985}.tower-coordinate-warning p{margin:4px 0 0;color:#47677d}#customer-live-map.tower-coordinate-selection-mode{cursor:crosshair!important}#customer-live-map.tower-coordinate-selection-mode:after{content:"Click the new tower position";position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:1000;background:rgba(7,29,54,.94);color:#fff;border-radius:999px;padding:8px 14px;font-size:10px;font-weight:900;pointer-events:none}@media(max-width:650px){.tower-coordinate-grid{grid-template-columns:1fr}.tower-coordinate-tools{flex-direction:column}.tower-coordinate-tools button{width:100%}}

/* Payment arrangements */
.arrangement-kpis,.arrangement-calculator{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.arrangement-kpis>div,.arrangement-calculator>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px}.arrangement-kpis span,.arrangement-kpis strong,.arrangement-calculator span,.arrangement-calculator strong{display:block}.arrangement-kpis span,.arrangement-calculator span{font-size:8px;text-transform:uppercase;color:#71879a}.arrangement-kpis strong,.arrangement-calculator strong{font-size:18px;color:#173550;margin-top:5px}.payment-arrangement-hero{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;background:linear-gradient(120deg,#071d36,#0b416f);color:#fff;border-radius:15px;padding:18px;margin-bottom:16px}.payment-arrangement-hero span,.payment-arrangement-hero strong{display:block}.payment-arrangement-hero span{font-size:8px;text-transform:uppercase;color:#9acbe8}.payment-arrangement-hero h2{margin:5px 0}.payment-method-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.payment-method-cards label{border:1px solid var(--border);border-radius:12px;padding:14px;display:grid;gap:6px}.payment-method-cards input{width:18px;height:18px}.payment-method-cards strong{color:#173550}.payment-method-cards span{font-size:9px;color:#71879a}.arrangement-terms{display:flex!important;gap:10px;align-items:flex-start;background:#fff7ed;border:1px solid #fdba74;border-radius:10px;padding:12px;margin:15px 0}.arrangement-terms input{width:18px;height:18px;flex:0 0 auto}.arrangement-event{border-left:3px solid #0878d1;padding:8px 12px;margin:8px 0;background:#f7fbff}.arrangement-event span{display:block;font-size:8px;color:#71879a}.arrangement-event p{margin:4px 0}.payment-confirm-card{max-width:540px;margin:40px auto;background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;text-align:center;box-shadow:0 20px 60px rgba(5,35,65,.12)}.payment-confirm-card>strong{display:block;font-size:30px;color:#166534;margin:15px}.payment-confirm-card button{width:100%;padding:14px}
@media(max-width:850px){.arrangement-kpis,.arrangement-calculator,.payment-method-cards,.payment-arrangement-hero{grid-template-columns:1fr 1fr}}@media(max-width:550px){.arrangement-kpis,.arrangement-calculator,.payment-method-cards,.payment-arrangement-hero{grid-template-columns:1fr}}

/* Customer Portal Shop */
.nav-cart-count{margin-left:auto;background:#0878d1;color:#fff;border-radius:999px;padding:2px 6px;font-size:8px}.shop-admin-summary,.shop-order-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.shop-admin-summary>div,.shop-order-summary>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px}.shop-admin-summary span,.shop-admin-summary strong,.shop-order-summary span,.shop-order-summary strong{display:block}.shop-admin-summary span,.shop-order-summary span{font-size:8px;text-transform:uppercase;color:#71879a}.shop-admin-summary strong,.shop-order-summary strong{font-size:18px;color:#173550;margin-top:4px}.shop-admin-product{display:flex;gap:10px;align-items:center;min-width:230px}.shop-admin-product img{width:48px;height:48px;object-fit:cover;border-radius:9px}.shop-admin-product strong,.shop-admin-product small{display:block}.shop-admin-product small{max-width:280px;color:#71879a}.stock-chip{display:inline-block;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:900}.stock-chip.good{background:#dcfce7;color:#166534}.stock-chip.low{background:#fee2e2;color:#991b1b}.table-actions{display:flex;gap:8px;align-items:center}.shop-proof-row{display:grid;grid-template-columns:1fr 2fr;gap:12px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:12px;margin:9px 0}.shop-proof-row span{display:block;font-size:9px;color:#71879a}.shop-proof-row form{display:grid;grid-template-columns:1fr auto auto;gap:7px}.shop-cart-button span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#fff;color:#0878d1;margin-left:5px}.shop-filter-bar{display:grid;grid-template-columns:1fr 220px auto;gap:9px;margin-bottom:16px}.shop-filter-bar input,.shop-filter-bar select{margin:0}.shop-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.shop-product-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:15px;overflow:hidden;box-shadow:0 8px 24px rgba(5,35,65,.06);display:flex;flex-direction:column}.shop-product-card.featured{border-color:#7dd3fc;box-shadow:0 12px 30px rgba(8,120,209,.12)}.shop-featured-label{position:absolute;left:10px;top:10px;z-index:2;background:#0878d1;color:#fff;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:900}.shop-product-image{height:190px;background:linear-gradient(145deg,#f2f8fc,#e4eef5);display:grid;place-items:center;text-decoration:none}.shop-product-image img{width:100%;height:100%;object-fit:contain;padding:13px}.shop-product-image>span{font-size:48px;color:#94b4c8}.shop-product-body{padding:14px;display:flex;flex-direction:column;flex:1}.shop-product-body>small{color:#0878d1;text-transform:uppercase;font-size:8px;font-weight:900}.shop-product-body h2{font-size:15px;margin:5px 0}.shop-product-body h2 a{text-decoration:none;color:#173550}.shop-product-body p{color:#71879a;flex:1}.shop-product-meta{display:flex;justify-content:space-between;align-items:center;margin:10px 0}.shop-product-meta>strong{font-size:18px;color:#173550}.shop-product-meta span{font-size:8px;font-weight:900}.in-stock{color:#166534}.out-stock{color:#991b1b}.shop-product-card form button{width:100%}.shop-product-detail{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden}.shop-product-detail-image{min-height:430px;background:#eef6fa;display:grid;place-items:center}.shop-product-detail-image img{width:100%;height:100%;max-height:520px;object-fit:contain;padding:25px}.shop-product-detail-image span{font-size:70px;color:#94b4c8}.shop-product-detail-content{padding:28px}.shop-product-detail-content h2{font-size:27px;color:#173550}.shop-detail-price{font-size:30px;font-weight:900;color:#0878d1;margin:18px 0}.shop-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shop-detail-info>div{background:#f7fbff;border-radius:9px;padding:10px}.shop-detail-info span,.shop-detail-info strong{display:block}.shop-detail-info span{font-size:8px;text-transform:uppercase;color:#71879a}.shop-detail-info strong{margin-top:4px;color:#173550}.shop-add-form{display:flex;align-items:end;gap:10px;margin-top:20px}.shop-add-form label{margin:0;max-width:120px}.shop-cart-qty{width:90px!important}.shop-cart-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px;padding-top:15px;border-top:1px solid var(--border)}.shop-cart-footer span,.shop-cart-footer strong{display:block}.shop-cart-footer span{font-size:8px;text-transform:uppercase;color:#71879a}.shop-cart-footer strong{font-size:24px;color:#173550}.shop-cart-footer>div:last-child{display:flex;gap:8px}.shop-empty-cart{background:#fff;border:1px solid var(--border);border-radius:16px;padding:45px;text-align:center}.shop-empty-cart>span{font-size:50px;color:#94b4c8}.shop-checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:15px}.shop-checkout-summary{align-self:start}.shop-checkout-summary>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:9px 0}.shop-checkout-summary .total{font-size:16px;border-top:2px solid #173550;margin-top:10px}.customer-shop-orders{display:grid;gap:10px}.customer-shop-order-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;text-decoration:none}.customer-shop-order-card>div:first-child span,.customer-shop-order-card>div:first-child strong,.customer-shop-order-card>div:first-child small{display:block}.customer-shop-order-card>div:first-child span{color:#0878d1;font-size:9px;font-weight:900}.customer-shop-order-card>div:first-child strong{font-size:18px;color:#173550;margin:4px 0}.customer-shop-order-card>div:last-child{display:flex;gap:6px}.shop-order-status-banner{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:linear-gradient(120deg,#071d36,#0b416f);color:#fff;border-radius:15px;padding:17px;margin-bottom:16px}.shop-order-status-banner span,.shop-order-status-banner strong{display:block}.shop-order-status-banner span{font-size:8px;text-transform:uppercase;color:#9acbe8}.shop-order-status-banner strong{margin-top:5px}.shop-proof-status{display:flex;justify-content:space-between;align-items:center;margin-top:9px;background:#f7fbff;border-radius:9px;padding:10px}
@media(max-width:1200px){.shop-product-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:950px){.shop-product-grid{grid-template-columns:repeat(2,1fr)}.shop-product-detail,.shop-checkout-layout{grid-template-columns:1fr}.shop-order-summary,.shop-admin-summary,.shop-order-status-banner{grid-template-columns:1fr 1fr}}@media(max-width:650px){.shop-filter-bar,.shop-product-grid,.shop-order-summary,.shop-admin-summary,.shop-order-status-banner{grid-template-columns:1fr}.shop-cart-footer,.customer-shop-order-card{flex-direction:column;align-items:stretch}.shop-cart-footer>div:last-child{flex-direction:column}.shop-proof-row{grid-template-columns:1fr}.shop-proof-row form{grid-template-columns:1fr}.shop-product-detail-image{min-height:290px}}

.wifi-router-hero,.home-wifi-customer-hero,.home-wifi-band-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:15px}.wifi-router-hero,.home-wifi-customer-hero{background:linear-gradient(120deg,#071d36,#0b416f);color:#fff;border-radius:15px;padding:17px}.home-wifi-band-grid>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px}.wifi-router-hero span,.wifi-router-hero strong,.home-wifi-customer-hero span,.home-wifi-customer-hero strong,.home-wifi-band-grid span,.home-wifi-band-grid strong{display:block}.agent-credential-alert{background:#052e16;color:#fff;border-radius:14px;padding:16px;margin-bottom:15px}.agent-credential-alert code{display:block;word-break:break-all;background:rgba(255,255,255,.15);padding:8px;border-radius:8px}@media(max-width:800px){.wifi-router-hero,.home-wifi-customer-hero,.home-wifi-band-grid{grid-template-columns:1fr 1fr}}@media(max-width:500px){.wifi-router-hero,.home-wifi-customer-hero,.home-wifi-band-grid{grid-template-columns:1fr}}

.router-credential-panel{background:#f5faff;border:1px solid #cfe3f2;border-radius:12px;padding:14px}.router-credential-panel h2{margin:0;color:#173550}.router-credential-panel p{margin:4px 0 13px;color:#617b8e}.router-credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.router-credential-grid small{display:block;color:#71879a;margin-top:4px}@media(max-width:650px){.router-credential-grid{grid-template-columns:1fr}}

.agent-detail-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin-bottom:14px}.agent-detail-grid>div{background:#f7fbff;border:1px solid #dce8f1;border-radius:10px;padding:11px}.agent-detail-grid span,.agent-detail-grid strong{display:block}.agent-detail-grid span{font-size:8px;text-transform:uppercase;color:#71879a}.agent-detail-grid strong{margin-top:4px;color:#173550;word-break:break-word}@media(max-width:850px){.agent-detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:550px){.agent-detail-grid{grid-template-columns:1fr}}

/* Unified Techfury Agent */
.unified-agent-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:15px}.unified-agent-heading h2{margin:4px 0}.agent-test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}.agent-test-item{display:flex;align-items:center;gap:9px;border-radius:10px;padding:11px;border:1px solid var(--border)}.agent-test-item>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:900}.agent-test-item.passed{background:#f0fdf4;border-color:#bbf7d0}.agent-test-item.passed>span{background:#16a34a;color:#fff}.agent-test-item.waiting{background:#f8fafc}.agent-test-item.waiting>span{background:#e2e8f0;color:#475569}.agent-test-item strong,.agent-test-item small{display:block}.agent-test-item small{color:#71879a;margin-top:2px}.agent-test-form{display:flex;gap:8px;margin-bottom:18px}.script-copy-header{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--border);padding-top:16px}.script-copy-header h3{margin:0}.script-copy-header p{margin:4px 0;color:#71879a}.routeros-script-box{width:100%;min-height:540px;margin-top:10px;padding:15px;border-radius:10px;background:#071d36;color:#d9f3ff;font-family:Consolas,Monaco,monospace;font-size:11px;line-height:1.55;white-space:pre;overflow:auto;resize:vertical}.unified-agent-panel .agent-detail-grid{margin-bottom:5px}@media(max-width:800px){.agent-test-grid{grid-template-columns:1fr}.script-copy-header,.unified-agent-heading{flex-direction:column;align-items:stretch}.agent-test-form{flex-direction:column}.routeros-script-box{min-height:430px}}

/* Home Wi-Fi router deletion */
.home-wifi-delete-note{color:#991b1b}.table-actions form{display:inline;margin:0}.table-actions .link-danger{background:none;border:0;padding:0;color:#b91c1c;text-decoration:underline;cursor:pointer;font:inherit}

/* Home Wi-Fi WAN management */
.home-router-management-path{border-left:4px solid #0878d1}.home-router-management-path .muted{color:#71879a;margin-top:12px}

/* Cudy HTTPS management */
.https-management-test{border-left:4px solid #0878d1}.https-management-test .page-head{margin-bottom:12px}.https-management-test .page-head form{margin:0}.https-management-test .agent-detail-grid{grid-template-columns:repeat(4,1fr)}@media(max-width:850px){.https-management-test .agent-detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:550px){.https-management-test .agent-detail-grid{grid-template-columns:1fr}}

.agent-public-url-box{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8fbfe}
.agent-public-url-row{display:flex;gap:8px;margin:8px 0}
.agent-public-url-row input{flex:1;min-width:0}
@media(max-width:650px){.agent-public-url-row{flex-direction:column}}

/* Home Router Gateway V9 */
.hwg-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.hwg-summary article{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px}.hwg-summary span,.hwg-summary strong,.hwg-summary small{display:block}.hwg-summary span{font-size:9px;text-transform:uppercase;color:#6d8395}.hwg-summary strong{font-size:22px;color:#173550;margin-top:6px}.hwg-summary small{color:#70869a;margin-top:4px}.hwg-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}.hwg-password{display:flex;gap:9px}.hwg-password input{flex:1}.agent-script{width:100%;min-height:420px;font-family:Consolas,monospace;font-size:12px;white-space:pre}.badge.online{background:#e7f8ed;color:#167d40}.badge.offline{background:#fff0f0;color:#b33232}
@media(max-width:900px){.hwg-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.hwg-summary{grid-template-columns:1fr}.hwg-password{flex-direction:column}.hwg-actions>*{width:100%}}

/* Home Router Gateway V9.1 navigation and configuration */
.hwg-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:15px;margin-bottom:15px}
.hwg-quick-links{display:grid;gap:10px}.hwg-quick-links a{display:block;padding:13px;border:1px solid var(--border);border-radius:11px;text-decoration:none;background:#f8fbfd}.hwg-quick-links strong,.hwg-quick-links span{display:block}.hwg-quick-links span{font-size:12px;color:#70869a;margin-top:3px}
.driver-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.driver-card-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.driver-card-head h2{margin-bottom:2px}
.badge.supported{background:#e7f8ed;color:#167d40}.badge.limited{background:#fff6dc;color:#916000}.badge.untested{background:#eff3f7;color:#577083}.badge.unsupported{background:#fff0f0;color:#b33232}
@media(max-width:900px){.hwg-dashboard-grid,.driver-card-grid{grid-template-columns:1fr}}

/* Home Router Gateway V10 Enterprise */
.badge.passed{background:#e7f8ed;color:#167d40}
.badge.failed{background:#fff0f0;color:#b33232}
.badge.never{background:#eff3f7;color:#577083}
.badge.not-required{background:#eff3f7;color:#577083}
code{word-break:break-word}

/* Techfury TR-069 ACS V12 */
.copy-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.copy-row code{flex:1;min-width:260px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#f8fbfd}
.badge.queued{background:#fff6dc;color:#916000}
.badge.sent{background:#eaf3ff;color:#2366a8}
.badge.completed{background:#e7f8ed;color:#167d40}
.badge.failed{background:#fff0f0;color:#b33232}

/* V12.8 admin-to-customer portal access */
.admin-impersonation-banner{margin:10px 12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.06)}
.admin-impersonation-banner strong,.admin-impersonation-banner small{display:block;margin-bottom:6px}
.admin-impersonation-banner form{margin:8px 0 0}
.admin-client-login-form{display:inline-flex;margin-left:6px;vertical-align:middle}
.admin-client-panel-access{margin-bottom:18px}


/* ============================================================
   V12.9.4 — Unified Techfury action buttons
   Matches the Customer > Client Panel action button.
   ============================================================ */

:root{
  --tf-action-bg:#1677e8;
  --tf-action-bg-hover:#0f66cd;
  --tf-action-text:#ffffff;
  --tf-action-radius:9px;
  --tf-action-shadow:0 2px 5px rgba(20,85,160,.16);
}

/* Primary buttons and button-like links throughout admin/customer menus. */
button:not(.btn-danger):not(.danger):not(.delete):not(.icon-button),
input[type="submit"]:not(.btn-danger):not(.danger),
input[type="button"]:not(.btn-danger):not(.danger),
a.button:not(.danger):not(.btn-danger),
.button:not(.danger):not(.btn-danger),
.btn:not(.btn-danger):not(.danger),
.secondary-button:not(.danger):not(.btn-danger),
.admin-client-login-form button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:9px 15px;
  border:1px solid var(--tf-action-bg) !important;
  border-radius:var(--tf-action-radius) !important;
  background:var(--tf-action-bg) !important;
  color:var(--tf-action-text) !important;
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.15;
  text-decoration:none !important;
  cursor:pointer;
  box-shadow:var(--tf-action-shadow);
  transition:
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    transform .08s ease;
}

button:not(.btn-danger):not(.danger):not(.delete):not(.icon-button):hover,
input[type="submit"]:not(.btn-danger):not(.danger):hover,
input[type="button"]:not(.btn-danger):not(.danger):hover,
a.button:not(.danger):not(.btn-danger):hover,
.button:not(.danger):not(.btn-danger):hover,
.btn:not(.btn-danger):not(.danger):hover,
.secondary-button:not(.danger):not(.btn-danger):hover,
.admin-client-login-form button:hover {
  background:var(--tf-action-bg-hover) !important;
  border-color:var(--tf-action-bg-hover) !important;
  color:#fff !important;
  box-shadow:0 4px 10px rgba(20,85,160,.22);
  transform:translateY(-1px);
}

button:not(.btn-danger):not(.danger):not(.delete):not(.icon-button):active,
input[type="submit"]:not(.btn-danger):not(.danger):active,
input[type="button"]:not(.btn-danger):not(.danger):active,
a.button:not(.danger):not(.btn-danger):active,
.button:not(.danger):not(.btn-danger):active,
.btn:not(.btn-danger):not(.danger):active,
.secondary-button:not(.danger):not(.btn-danger):active {
  transform:translateY(0);
  box-shadow:0 1px 3px rgba(20,85,160,.16);
}

button:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled,
.button.disabled,
.btn.disabled {
  opacity:.52 !important;
  cursor:not-allowed !important;
  transform:none !important;
  box-shadow:none !important;
}

/* Keep destructive actions red but give them the same geometry/weight. */
button.btn-danger,
button.danger,
button.delete,
a.btn-danger,
a.danger,
.button.danger,
.btn-danger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:9px 15px;
  border-radius:var(--tf-action-radius) !important;
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.15;
  text-decoration:none !important;
  cursor:pointer;
}

/* Make grouped table/menu actions line up consistently. */
.actions,
.table-actions,
.page-head-actions,
.inline-actions,
.admin-client-login-form {
  align-items:center;
  gap:7px;
}

.actions form,
.table-actions form,
.page-head-actions form,
.inline-actions form,
.admin-client-login-form {
  margin:0;
}

/* Small-screen buttons stay usable and consistent. */
@media (max-width:640px){
  .page-head-actions button,
  .page-head-actions .button,
  .page-head-actions .btn {
    min-height:40px;
  }
}


/* V12.9.5 - Legacy action-link normalization.
   Older views use plain anchors (Edit/Status/Service/Equipment/etc.)
   instead of .button classes. Style action links by page target, without
   modifying PHP templates or sidebar navigation. */
main a[href*="page=customer_edit"],
main a[href*="page=customer_status_change"],
main a[href*="page=service_edit"],
main a[href*="page=customer_assets"],
main a[href*="page=asset_"],
main a[href*="page=invoice_"],
main a[href*="page=statement_"],
main a[href*="page=payment_"],
main a[href*="page=mandate_"],
main a[href*="page=contract_"],
main a[href*="page=ticket_"],
main a[href*="page=installation_"],
main a[href*="page=router_"],
main a[href*="page=tr069_"],
main a[href*="page=package_"],
main a[href*="page=user_"],
main a[href*="page=customer_location"],
main a[href*="page=proof_"],
main a[href*="page=job_"],
main a[href*="page=technician_"],
.content a[href*="page=customer_edit"],
.content a[href*="page=customer_status_change"],
.content a[href*="page=service_edit"],
.content a[href*="page=customer_assets"] {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  min-height:38px !important;
  padding:9px 15px !important;
  margin:2px 3px 2px 0 !important;
  border:1px solid var(--tf-action-bg,#1677e8) !important;
  border-radius:var(--tf-action-radius,9px) !important;
  background:var(--tf-action-bg,#1677e8) !important;
  color:#fff !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  box-shadow:var(--tf-action-shadow,0 2px 5px rgba(20,85,160,.16)) !important;
  transition:background-color .16s ease,border-color .16s ease,
             box-shadow .16s ease,transform .08s ease !important;
}

main a[href*="page=customer_edit"]:hover,
main a[href*="page=customer_status_change"]:hover,
main a[href*="page=service_edit"]:hover,
main a[href*="page=customer_assets"]:hover,
main a[href*="page=asset_"]:hover,
main a[href*="page=invoice_"]:hover,
main a[href*="page=statement_"]:hover,
main a[href*="page=payment_"]:hover,
main a[href*="page=mandate_"]:hover,
main a[href*="page=contract_"]:hover,
main a[href*="page=ticket_"]:hover,
main a[href*="page=installation_"]:hover,
main a[href*="page=router_"]:hover,
main a[href*="page=tr069_"]:hover,
main a[href*="page=package_"]:hover,
main a[href*="page=user_"]:hover,
main a[href*="page=customer_location"]:hover,
main a[href*="page=proof_"]:hover,
main a[href*="page=job_"]:hover,
main a[href*="page=technician_"]:hover {
  background:var(--tf-action-bg-hover,#0f66cd) !important;
  border-color:var(--tf-action-bg-hover,#0f66cd) !important;
  color:#fff !important;
  text-decoration:none !important;
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(20,85,160,.22) !important;
}

/* Explicitly preserve danger/delete colour where a danger class is present. */
main a.danger,
main a.btn-danger,
main a.delete {
  background:#c93636 !important;
  border-color:#c93636 !important;
}

/* V13 productivity UI */
.v13-productivity-bar{display:flex;gap:10px;align-items:center;padding:10px 18px;background:rgba(9,18,33,.76);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:60}.v13-search{position:relative;display:flex;align-items:center;gap:8px;flex:1;max-width:680px;padding:0 12px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.06)}.v13-search input{width:100%;height:42px;border:0!important;background:transparent!important;box-shadow:none!important}.v13-search #v13Results{display:none;position:absolute;top:48px;left:0;right:0;padding:6px;border-radius:12px;background:#111d2e;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 50px rgba(0,0,0,.35);z-index:100}.v13-search #v13Results.show{display:block}.v13-search #v13Results a{display:flex;flex-direction:column;padding:10px 12px;color:#fff;text-decoration:none;border-radius:8px}.v13-search #v13Results a:hover{background:rgba(255,255,255,.08)}.v13-search #v13Results small{opacity:.6}.v13-quick{position:relative}.v13-quick #v13QuickMenu{display:none;position:absolute;right:0;top:46px;width:210px;padding:6px;background:#111d2e;border:1px solid rgba(255,255,255,.12);border-radius:12px;z-index:100}.v13-quick #v13QuickMenu.show{display:block}.v13-quick #v13QuickMenu a{display:block;padding:10px 12px;color:#fff;text-decoration:none;border-radius:8px}.v13-quick #v13QuickMenu a:hover{background:rgba(255,255,255,.08)}.v13-bell{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:rgba(255,255,255,.07);border-radius:11px;text-decoration:none}.v13-eye{display:block;letter-spacing:.14em;font-weight:800;opacity:.55;margin-bottom:5px}.v13-head{align-items:flex-end}.v13-actions{display:flex;gap:7px;flex-wrap:wrap}.v13-actions form{margin:0}.v13-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.v13-kpis article{padding:18px;border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.08)}.v13-kpis span,.v13-kpis small{display:block;opacity:.65}.v13-kpis strong{display:block;font-size:25px;margin:6px 0}.v13-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.v13-details{display:grid;grid-template-columns:110px 1fr;gap:10px}.v13-details dd{margin:0;font-weight:600}.v13-details dt{opacity:.6}.v13-list{display:flex;flex-direction:column;gap:7px}.v13-list a{display:flex;justify-content:space-between;padding:11px 12px;border-radius:9px;background:rgba(255,255,255,.045);color:inherit;text-decoration:none}.v13-empty{padding:18px;border:1px dashed rgba(255,255,255,.14);border-radius:11px;opacity:.65;text-align:center}.v13-ops{display:flex;flex-direction:column;gap:8px}.v13-op{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;padding:13px;border-radius:12px;background:rgba(255,255,255,.045);color:inherit;text-decoration:none}.v13-op i{width:9px;height:9px;border-radius:50%;background:#e0a52d}.v13-op.danger i{background:#e25252}.v13-op span{display:flex;flex-direction:column}.v13-op small{opacity:.55;font-size:10px}.v13-op em{font-style:normal;opacity:.6;font-size:12px}@media(max-width:900px){.v13-kpis{grid-template-columns:repeat(2,1fr)}.v13-grid{grid-template-columns:1fr}.v13-productivity-bar{flex-wrap:wrap}.v13-search{max-width:none;flex-basis:100%}}@media(max-width:560px){.v13-kpis{grid-template-columns:1fr}}

/* V13.1 DNS Protection */
.dns-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.dns-profile-card{display:flex;gap:12px;padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.04);cursor:pointer;transition:.16s ease}
.dns-profile-card:hover,.dns-profile-card.selected{border-color:#1677e8;background:rgba(22,119,232,.09);transform:translateY(-1px)}
.dns-profile-card input{position:absolute;opacity:0;pointer-events:none}.dns-profile-radio{width:18px;height:18px;flex:0 0 18px;border-radius:50%;border:2px solid rgba(255,255,255,.35);margin-top:2px}
.dns-profile-card.selected .dns-profile-radio{border:5px solid #1677e8;background:#fff}
.dns-profile-content{display:flex;flex-direction:column;gap:6px}.dns-profile-content small{text-transform:uppercase;letter-spacing:.08em;opacity:.55}.dns-profile-content strong{font-size:17px}.dns-profile-content em{font-style:normal;opacity:.7;line-height:1.45}.dns-address{font-family:monospace;font-size:12px;opacity:.75}
.dns-save-panel{display:flex;align-items:center;justify-content:space-between;gap:14px}.dns-save-panel div{display:flex;flex-direction:column}.dns-save-panel small{opacity:.65;margin-top:4px}
@media(max-width:850px){.dns-profile-grid{grid-template-columns:1fr}}@media(max-width:560px){.dns-save-panel{align-items:stretch;flex-direction:column}.dns-save-panel button{width:100%}}

/* V13.3 TR-069 Vendor Profiles */
.vendor-profile-panel{margin-bottom:16px}
.vendor-capabilities{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.vendor-capabilities .badge{opacity:.58}
.vendor-capabilities .badge.active{opacity:1}
.vendor-wifi-summary{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px}

/* V13.4 TR-069 Auto Intelligence */
.ai-health-score{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px;min-width:110px;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.06);text-align:right}
.ai-health-score strong{font-size:30px;line-height:1}.ai-health-score span{opacity:.55}.ai-health-score small{grid-column:1/3;font-weight:700;margin-top:4px}
.ai-health-score.excellent,.ai-health-score.healthy{box-shadow:inset 0 0 0 1px rgba(40,190,110,.35)}
.ai-health-score.attention{box-shadow:inset 0 0 0 1px rgba(230,170,45,.4)}
.ai-health-score.poor{box-shadow:inset 0 0 0 1px rgba(225,75,75,.45)}
.ai-health-issues{display:flex;flex-wrap:wrap;gap:7px}.ai-health-issues span{padding:7px 10px;border-radius:999px;background:rgba(230,170,45,.12);border:1px solid rgba(230,170,45,.22);font-size:12px}
.ai-timeline{display:flex;flex-direction:column;gap:0}.ai-timeline-item{display:grid;grid-template-columns:16px 1fr;gap:10px;padding:11px 2px;border-bottom:1px solid rgba(255,255,255,.06)}
.ai-timeline-item:last-child{border-bottom:0}.ai-timeline-dot{width:9px;height:9px;border-radius:50%;background:#4e8fe8;margin-top:5px}
.ai-timeline-item.failed .ai-timeline-dot,.ai-timeline-item.fault .ai-timeline-dot{background:#e25252}
.ai-timeline-item.completed .ai-timeline-dot{background:#37b978}
.ai-timeline-item.queued .ai-timeline-dot,.ai-timeline-item.sent .ai-timeline-dot{background:#e0a52d}
.ai-timeline-item div{display:flex;flex-direction:column;gap:2px}.ai-timeline-item small{opacity:.55}.ai-timeline-item p{margin:2px 0 0;opacity:.72;font-size:12px}

/* V13.5 TR-069 Operations Intelligence */
.ops-range{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px}.ops-range span{opacity:.6;margin-right:3px}.ops-range a{padding:7px 10px;border-radius:9px;text-decoration:none;color:inherit;background:rgba(255,255,255,.05)}.ops-range a.active{background:var(--tf-action-bg,#1677e8);color:#fff}
.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.ops-kpis a{display:flex;flex-direction:column;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.045);color:inherit;text-decoration:none}.ops-kpis a:hover{border-color:rgba(22,119,232,.55)}.ops-kpis span,.ops-kpis small{opacity:.62}.ops-kpis strong{font-size:26px;margin:4px 0}
.ops-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.ops-svg-chart{min-height:250px}.ops-svg-chart svg{width:100%;height:auto;overflow:visible}.ops-svg-chart text{fill:currentColor;opacity:.6;font-size:11px}.ops-svg-chart .trend-line{fill:none;stroke:var(--tf-action-bg,#1677e8);stroke-width:3}.ops-svg-chart circle{fill:var(--tf-action-bg,#1677e8)}.ops-svg-chart .threshold{stroke:currentColor;opacity:.15;stroke-dasharray:5 5}
.ops-bar-list{display:flex;flex-direction:column;gap:9px}.ops-bar-list a{display:grid;grid-template-columns:150px 1fr 40px;gap:10px;align-items:center;color:inherit;text-decoration:none}.ops-bar-list i{height:10px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.ops-bar-list i b{display:block;height:100%;background:var(--tf-action-bg,#1677e8);border-radius:99px}.ops-bar-list strong{text-align:right}
.ops-firmware-list,.ops-device-list{display:flex;flex-direction:column;gap:7px}.ops-firmware-list>div,.ops-device-list a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 11px;border-radius:9px;background:rgba(255,255,255,.04);color:inherit;text-decoration:none}.ops-firmware-list span,.ops-device-list span{display:flex;flex-direction:column}.ops-firmware-list small,.ops-device-list small{opacity:.58}
.ops-live-feed{display:flex;flex-direction:column}.ops-live-feed a{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:9px 2px;border-bottom:1px solid rgba(255,255,255,.055);color:inherit;text-decoration:none}.ops-live-feed i{width:8px;height:8px;border-radius:50%;background:var(--tf-action-bg,#1677e8);margin-top:5px}.ops-live-feed span{display:flex;flex-direction:column}.ops-live-feed small,.ops-live-feed em{opacity:.57;font-style:normal}
.problem-group.critical{border-color:rgba(225,70,70,.35)}.problem-group.warning{border-color:rgba(225,165,40,.3)}.problem-count{display:flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.07);font-weight:800}
.ops-device-filter{display:grid;grid-template-columns:minmax(220px,1fr) 150px 170px auto auto;gap:8px;align-items:end;margin-bottom:14px}
@media(max-width:950px){.ops-kpis{grid-template-columns:repeat(2,1fr)}.ops-chart-grid{grid-template-columns:1fr}.ops-device-filter{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ops-kpis{grid-template-columns:1fr}.ops-device-filter{grid-template-columns:1fr}.ops-bar-list a{grid-template-columns:110px 1fr 32px}}

/* V13.5.4 Customer 360 */
.customer360-head{align-items:flex-end;margin-bottom:18px}.customer360-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.customer360-actions form{margin:0}
.customer360-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.customer360-kpis article{display:flex;flex-direction:column;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.045);min-height:92px}.customer360-kpis article.attention{border-color:rgba(224,165,45,.35)}.customer360-kpis span,.customer360-kpis small{opacity:.62}.customer360-kpis strong{font-size:22px;margin:5px 0}
.customer360-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.customer360-wide{grid-column:1/-1}.customer360-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.customer360-panel-head h2{margin:0}.customer360-panel-head a{text-decoration:none}
.customer360-details{display:grid;grid-template-columns:150px 1fr;gap:9px 14px;margin:0}.customer360-details dt{opacity:.6}.customer360-details dd{margin:0;min-width:0;overflow-wrap:anywhere}.customer360-details dd small{opacity:.58}
.customer360-router-title{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;margin-bottom:14px}.customer360-router-title>div{display:flex;flex-direction:column}.customer360-router-title small{opacity:.58}.customer360-router-title b{font-size:13px}.status-dot{display:block;width:10px;height:10px;border-radius:50%;background:#8592a3}.status-dot.online{background:#36b978}.status-dot.offline{background:#e25555}.status-dot.linked{background:#e0a52d}
.customer360-list{display:flex;flex-direction:column}.customer360-list a,.customer360-invoices a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.06);color:inherit;text-decoration:none}.customer360-list a:last-child,.customer360-invoices a:last-child{border-bottom:0}.customer360-list span,.customer360-invoices span{display:flex;flex-direction:column}.customer360-list small,.customer360-invoices small{opacity:.58}.customer360-invoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.customer360-diagnostics details summary{cursor:pointer;font-weight:700}.customer360-diagnostics details>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px 0}.customer360-diagnostics code{white-space:normal;overflow-wrap:anywhere}
@media(max-width:1250px){.customer360-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.customer360-grid{grid-template-columns:1fr}.customer360-wide{grid-column:auto}.customer360-invoices{grid-template-columns:1fr}.customer360-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.customer360-kpis{grid-template-columns:1fr}.customer360-details{grid-template-columns:110px 1fr}.customer360-actions{width:100%}.customer360-actions>*{flex:1 1 auto;text-align:center}.customer360-actions form button{width:100%}}

/* V13.5.5 Universal Wi-Fi Credential Engine */
.wifi-protected-note{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.04)}
.wifi-protected-note span{opacity:.6;font-size:12px}
.vendor-profile-panel .hwg-actions{display:flex;gap:8px;flex-wrap:wrap}
.vendor-profile-panel code{font-size:11px;overflow-wrap:anywhere;white-space:normal}

/* V14.0 Operations Automation */
.opsauto-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.opsauto-kpis article{display:flex;flex-direction:column;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.045);min-height:96px}
.opsauto-kpis span,.opsauto-kpis small{opacity:.62}.opsauto-kpis strong{font-size:25px;margin:5px 0}.opsauto-kpis .opsauto-small-strong{font-size:15px;line-height:1.35}
.opsauto-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.opsauto-wide{grid-column:1/-1}
.opsauto-feed{display:flex;flex-direction:column}.opsauto-feed-item{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:10px 2px;border-bottom:1px solid rgba(255,255,255,.06)}
.opsauto-feed-item i{width:8px;height:8px;border-radius:50%;background:#3888e8;margin-top:5px}.opsauto-feed-item.warning i{background:#dda426}.opsauto-feed-item.critical i{background:#df5353}
.opsauto-feed-item span{display:flex;flex-direction:column}.opsauto-feed-item small,.opsauto-feed-item em{opacity:.58;font-style:normal}.opsauto-feed-item p{margin:3px 0 0;opacity:.75}
.opsauto-runs{display:flex;flex-direction:column;gap:8px}.opsauto-runs>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04)}
.opsauto-runs span{display:flex;flex-direction:column}.opsauto-runs small{opacity:.55}.opsauto-runs p{grid-column:1/-1;margin:0;opacity:.68;font-size:12px}
.opsauto-toggle{display:flex!important;align-items:center;gap:10px}.opsauto-toggle input{width:auto!important}
@media(max-width:950px){.opsauto-kpis{grid-template-columns:repeat(2,1fr)}.opsauto-grid{grid-template-columns:1fr}.opsauto-wide{grid-column:auto}}
@media(max-width:560px){.opsauto-kpis{grid-template-columns:1fr}}
