body{overflow-x:hidden}main{width:calc(100% - 235px);min-width:0}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis article{min-width:0}.kpis article:last-child{grid-column:2}.panel{overflow:hidden}.settings,.reports{margin-top:20px}.settings-note{font-size:11px;color:var(--muted)}#routerForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfe}#routerForm input,#reportPeriod{min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;font:12px 'DM Sans';color:var(--ink);background:#fff}#routerForm input:focus,#reportPeriod:focus{outline:2px solid #6d5dfc33;border-color:var(--purple)}#adminToken{grid-column:span 3}#routerForm button{min-height:38px;border:0;border-radius:8px;background:var(--purple);color:#fff;font:700 12px 'DM Sans';cursor:pointer}.form-message{font-size:12px;margin:0 0 10px;color:var(--green)}.remove{border:0;color:var(--red);background:#fff0f1;border-radius:6px;padding:5px 8px;font-size:11px;cursor:pointer}.scroll{scrollbar-width:thin}.scroll::-webkit-scrollbar{height:7px}.scroll::-webkit-scrollbar-thumb{background:#d7ddeb;border-radius:8px}@media(max-width:1080px){main{width:calc(100% - 235px)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis article:last-child{grid-column:auto}}@media(max-width:700px){main{width:100%}.kpis{grid-template-columns:1fr}.kpis article:last-child{grid-column:auto}#routerForm{grid-template-columns:1fr 1fr}#adminToken{grid-column:span 2}}@media(max-width:430px){#routerForm{grid-template-columns:1fr}#adminToken{grid-column:auto}}
 .edit{border:0;color:#5143d7;background:#efedff;border-radius:6px;padding:5px 8px;font-size:11px;cursor:pointer}
 .report-builder{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr repeat(4,auto) auto auto;gap:8px;align-items:center;margin:15px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfe}.report-builder input:not([type="checkbox"]),.report-builder select{min-width:0;border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px;font:12px 'DM Sans'}.report-builder label{font-size:11px;white-space:nowrap}.report-builder button{border:0;border-radius:7px;padding:9px 10px;font:700 11px 'DM Sans';background:var(--purple);color:white;cursor:pointer}.report-builder #printReport{background:#273352}.report-title{font:700 14px Manrope;margin:14px 0 4px;color:var(--ink)}@media(max-width:1100px){.report-builder{grid-template-columns:repeat(3,1fr)}.report-builder label{white-space:normal}}@media(max-width:600px){.report-builder{grid-template-columns:1fr}}@media print{aside,header,.view:not(#view-reports),.report-builder,.actions{display:none!important}body,main{background:#fff!important;width:100%!important;margin:0!important;padding:0!important}.view#view-reports{display:block!important}.reports{border:0!important;box-shadow:none!important;padding:0!important}.reports .heading,.reports .settings-note{display:none!important}}
 #printLayout{display:none}@media print{body.print-detail main>*{display:none!important}body.print-detail #printLayout{display:block!important}body.print-detail{background:#fff!important}.print-page{display:block;min-height:270mm;box-sizing:border-box;padding:14mm 15mm 12mm;page-break-after:always;color:#17223c;font-family:Arial,sans-serif}.print-header{display:flex!important;justify-content:space-between!important;align-items:flex-start;margin-bottom:8mm;border-bottom:3px solid #0c3a80;padding-bottom:5mm}.print-header h1{display:inline;font-size:19pt;color:#073b82;margin:0 0 0 8px}.print-header p{font-size:9pt;margin:5px 0 0;color:#4b5568}.print-number{display:inline-grid;place-items:center;background:#083d89;color:#fff;border-radius:3px;width:28px;height:28px;font-weight:bold}.print-brand{font-size:18pt;color:#0b3e86}.print-brand span{color:#6a5df5}.print-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:5mm;margin:6mm 0}.print-kpis article{border:1px solid #dbe3ed;border-radius:5px;padding:5mm;min-height:28mm}.print-kpis small{display:block;font-weight:bold;font-size:8pt;color:#0a438b}.print-kpis strong{display:block;font-size:18pt;margin:3px 0}.print-kpis span{font-size:8pt;color:#637087}.print-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:6mm}.print-card{border:1px solid #dbe3ed;border-radius:5px;padding:5mm;margin-top:5mm}.print-card h3{font-size:10pt;color:#073b82;margin:0 0 4mm}.print-card p,.print-card li,.print-card td{font-size:8pt;line-height:1.5}.print-card table{width:100%;border-collapse:collapse}.print-card td{padding:2mm;border-bottom:1px solid #e5eaf1}.chart-card svg{height:75mm;width:100%}.empty-chart{height:75mm;display:grid;place-items:center;color:#7c8798;font-size:9pt}.incident-list{padding-left:5mm}#printLayout footer{position:relative;margin-top:9mm;padding-top:3mm;border-top:1px solid #dce3ed;font-size:7pt;color:#65748a}}
body.print-preview .view,body.print-preview main>header,body.print-preview aside{display:none!important}body.print-preview main{width:100%!important;margin:0!important;padding:20px!important;background:#fff}body.print-preview #printLayout{display:block}#closePrintPreview{position:fixed;top:15px;right:15px;z-index:5;border:0;border-radius:8px;padding:10px 13px;background:#273352;color:#fff;font-weight:bold;cursor:pointer}@media print{#closePrintPreview{display:none!important}}
/* Template PDF laporan operasional */
.print-page{position:relative;background:#fff}.print-page:before{content:"";position:absolute;left:15mm;right:15mm;top:12mm;height:2px;background:linear-gradient(90deg,#073b82 0 72%,#55a7ef 72% 100%)}.print-header{padding-top:5mm!important;border-bottom:0!important;margin-bottom:4mm!important}.print-heading{display:flex;align-items:flex-start;gap:3mm}.print-number{width:7mm!important;height:7mm!important;border-radius:1mm!important;font-size:9pt!important;background:#073b82!important}.print-header h1{display:block!important;font-size:13pt!important;line-height:1.1;margin:0!important;color:#062d69!important}.print-header p{font-size:7.5pt!important;max-width:120mm;line-height:1.4;margin:2mm 0 0!important}.print-brand{display:grid!important;grid-template-columns:7mm auto;column-gap:1mm;align-items:center;font-size:8pt!important;line-height:1!important;color:#062d69!important}.print-brand i{grid-row:span 2;font-style:normal;font-size:13pt;font-weight:900;letter-spacing:-2px;color:#075bb1}.print-brand span{font-weight:900;letter-spacing:-.4px}.print-brand em{font-style:normal;letter-spacing:3px;font-size:6pt;font-weight:bold}.print-kpis{grid-template-columns:repeat(3,1fr)!important;gap:3mm!important;margin:3mm 0 4mm!important}.print-kpis article{position:relative;min-height:17mm!important;padding:3mm 3mm 3mm 10mm!important;border-radius:1mm!important;border:1px solid #d4e0ef!important;background:linear-gradient(135deg,#fff,#f7fbff)}.print-kpis article:before{content:"";position:absolute;left:3mm;top:5mm;width:4.5mm;height:4.5mm;border-radius:50%;background:#0c55a4;box-shadow:0 0 0 1.5mm #e4f0fc}.print-kpis article:nth-child(2):before{background:#1fa773}.print-kpis article:nth-child(3):before{background:#f09a28}.print-kpis small{font-size:6.5pt!important;color:#3c5d8d!important}.print-kpis strong{font-size:14pt!important;line-height:1;margin:1.5mm 0!important;color:#063779}.print-kpis span{font-size:6.5pt!important}.print-grid{gap:3mm!important}.print-card{position:relative;border-radius:1mm!important;border:1px solid #d4e0ef!important;padding:3mm!important;margin-top:3mm!important;overflow:hidden}.print-card h3{margin:-3mm -3mm 3mm!important;padding:2mm 3mm!important;background:#073b82;color:#fff!important;font-size:7.5pt!important;text-transform:uppercase}.print-card p,.print-card li,.print-card td{font-size:7pt!important;line-height:1.35!important}.print-card table td{padding:1.3mm!important}.chart-card svg{height:55mm!important}.empty-chart{height:55mm!important}.incident-list{padding-left:4mm!important;margin:0}.incident-list li{padding:1.2mm 0;border-bottom:1px solid #e7eef6}#printLayout footer{display:flex;justify-content:space-between;margin-top:4mm!important;padding-top:2mm!important;border-top:1px solid #b9cce3!important;font-size:6pt!important;color:#52709a!important}
.print-brand img{grid-row:span 2;width:7mm;height:7mm;object-fit:contain;border-radius:1mm}

/* Laporan SLA ringkas - dua halaman */
@media print{
  @page{size:A4 portrait;margin:0}
  .print-page{height:297mm;min-height:297mm;padding:12mm 14mm 10mm;overflow:hidden}
  .print-page:last-child{page-break-after:auto}
  .executive-kpis{grid-template-columns:repeat(3,1fr)!important}
  .executive-kpis article{min-height:20mm!important}
  .executive-kpis strong{font-size:13pt!important}
  .sla-evaluation{display:grid;grid-template-columns:1.05fr .95fr;gap:5mm;margin:4mm 0;padding:4mm;border-radius:2mm;border:1px solid #d6e1ef;background:#f7faff}
  .sla-evaluation.pass{border-left:3mm solid #16a37d}.sla-evaluation.fail{border-left:3mm solid #df5d67;background:#fff8f8}
  .sla-evaluation small{font-size:6.5pt;font-weight:800;color:#637087}.sla-evaluation>div>strong{display:block;margin:1.5mm 0;color:#073b82;font-size:13pt}.sla-evaluation.fail>div>strong{color:#ba3945}.sla-evaluation p{margin:1mm 0;font-size:7pt;line-height:1.35}
  .evaluation-list p{display:flex;align-items:center;justify-content:space-between;gap:3mm;padding-bottom:1.4mm;border-bottom:1px solid #e1e8f1}
  .print-status{min-width:22mm;padding:1mm 1.5mm;border-radius:8mm;text-align:center;font-size:6pt;font-weight:800}.print-status.pass{background:#e4f7ef;color:#158566}.print-status.fail{background:#fde8ea;color:#c53e49}
  .print-table-card{margin-top:3mm!important}.print-table-card table{table-layout:fixed}.print-table-card th{padding:1.6mm 1.2mm;background:#edf4fc;color:#31547d;font-size:6pt;text-transform:uppercase}.print-table-card td{font-size:6.5pt!important;text-align:left}
  .performance-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm}.performance-grid .print-card{margin-top:0!important}.performance-grid .chart-card svg,.performance-grid .empty-chart{height:39mm!important}
  .report-bottom-grid{grid-template-columns:1.25fr .75fr;margin-top:1mm}.executive-incidents{list-style:none;margin:0;padding:0}.executive-incidents li{display:flex;justify-content:space-between;gap:4mm;padding:2mm 0;border-bottom:1px solid #e7edf4}.executive-incidents li:last-child{border-bottom:0}.executive-incidents b,.executive-incidents span,.executive-incidents em{display:block;font-size:6.5pt;line-height:1.35}.executive-incidents span,.executive-incidents em{margin-top:.8mm;color:#68768a}.executive-incidents em{font-style:normal}.executive-incidents li>strong{align-self:flex-start;padding:1mm 1.5mm;border-radius:5mm;background:#e7f7f1;color:#158566;font-size:5.5pt}.incident-empty>strong{display:none}
  #printLayout footer{position:absolute;left:14mm;right:14mm;bottom:8mm}
}
body.print-preview .print-page{width:210mm;min-height:297mm;margin:0 auto 18px;padding:12mm 14mm 10mm;box-shadow:0 12px 40px #1d2c4720}
body.print-preview .executive-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
body.print-preview .sla-evaluation{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin:14px 0;padding:16px;border:1px solid #d6e1ef;border-left:10px solid #df5d67;border-radius:8px;background:#fff8f8}
body.print-preview .sla-evaluation.pass{border-left-color:#16a37d;background:#f7faff}
body.print-preview .evaluation-list p{display:flex;justify-content:space-between}.print-status{padding:4px 7px;border-radius:12px;font-size:9px;font-weight:800}.print-status.pass{background:#e4f7ef;color:#158566}.print-status.fail{background:#fde8ea;color:#c53e49}
body.print-preview .performance-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.executive-incidents{list-style:none;margin:0;padding:0}.executive-incidents li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #e7edf4}.executive-incidents b,.executive-incidents span,.executive-incidents em{display:block}.executive-incidents span,.executive-incidents em{font-size:10px;color:#68768a;margin-top:3px}.executive-incidents em{font-style:normal}

.whatsapp-panel{margin-bottom:20px}.whatsapp-badge{padding:7px 10px;border-radius:18px;background:#fff0f1;color:#d85b65;font-size:10px;font-weight:800}.whatsapp-badge.ready{background:#e8faf3;color:#118b6d}.whatsapp-layout{display:grid;grid-template-columns:260px 1fr;gap:24px;margin-top:20px}.whatsapp-qr-wrap{display:grid;place-items:center;align-content:start;min-height:220px;padding:16px;border:1px dashed #d8dfeb;border-radius:12px;background:#fafbfe;text-align:center}.whatsapp-qr-wrap img{display:none;width:210px;height:210px;border-radius:8px;background:#fff}.whatsapp-qr-wrap p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.whatsapp-panel form{display:grid;align-content:start;gap:12px}.whatsapp-panel form label{display:grid;gap:7px;color:var(--ink);font-size:12px;font-weight:700}.whatsapp-panel form input{border:1px solid var(--line);border-radius:9px;padding:11px;font:12px DM Sans}.whatsapp-panel form small{color:var(--muted);line-height:1.5}.whatsapp-panel form div{display:flex;gap:9px}.whatsapp-panel form button{border:0;border-radius:8px;padding:10px 13px;background:#6255e9;color:#fff;font:700 11px DM Sans;cursor:pointer}.whatsapp-panel form button+button{background:#e8faf3;color:#118b6d}@media(max-width:700px){.whatsapp-layout{grid-template-columns:1fr}.whatsapp-panel form div{display:grid}}
 #dashboardRouterSelect{min-width:170px;border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;color:var(--ink);font:600 12px 'DM Sans'}@media(max-width:700px){#dashboardRouterSelect{min-width:0;width:120px}.actions{gap:7px!important}}
 #routerCardsPanel{margin:0 0 20px}.router-cards-heading{display:flex;align-items:end;justify-content:space-between;margin:0 0 11px}.router-cards-heading h2{font:700 16px Manrope;margin:0}.router-cards-heading p{margin:3px 0 0;font-size:11px;color:var(--muted)}#routerCardTotal{font-size:11px;color:var(--muted)}.router-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:13px}.router-card{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;background:#fff;padding:15px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:0 2px 8px #25335908;transition:.15s}.router-card:hover,.router-card.selected{border-color:var(--purple);box-shadow:0 7px 20px #5143d71f;transform:translateY(-1px)}.router-card.offline{border-left-color:var(--red)}.router-card-top{display:flex;justify-content:space-between;gap:8px}.router-card-top b{font:700 13px Manrope}.router-card-top span{font-size:9px;font-weight:bold;color:var(--green)}.router-card.offline .router-card-top span{color:var(--red)}.router-card>p{font-size:10px;color:var(--muted);margin:5px 0 13px}.router-card-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.router-card-metrics small{display:block;font-size:8px;color:#98a3b6}.router-card-metrics strong{display:block;margin-top:3px;font-size:11px;white-space:nowrap}@media(max-width:600px){.router-cards{grid-template-columns:1fr}.router-card-metrics{grid-template-columns:repeat(2,1fr);gap:10px}.router-cards-heading{align-items:flex-start;flex-direction:column;gap:4px}}
 #routerDetailHero{margin-bottom:20px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 2px 8px #25335908}.detail-top{display:flex;justify-content:space-between;align-items:flex-start}.detail-top h2{font:700 23px Manrope;margin:4px 0}.detail-top .eyebrow{margin-top:10px}.detail-top button{border:0;background:#efedff;color:#5143d7;border-radius:7px;padding:7px 10px;font:700 11px 'DM Sans';cursor:pointer}.detail-top .sla-report-button{margin-left:7px;background:#e7faf3;color:#138b70}.detail-status{font-size:11px;font-weight:bold;padding:8px 10px;border-radius:20px;background:#e9faf4;color:var(--green)}.detail-status.down{background:#fff0f1;color:var(--red)}.detail-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px}.detail-metrics article{padding:11px;border-radius:8px;background:#f7f8fc}.detail-metrics small{display:block;font-size:9px;color:#8792a7}.detail-metrics strong{display:block;margin-top:5px;font:700 16px Manrope}.detail-metrics span{display:block;margin-top:4px;font-size:9px}.detail-metrics .sla-pass{background:#e9faf4}.detail-metrics .sla-pass strong,.detail-metrics .sla-pass span{color:#138b70}.detail-metrics .sla-fail{background:#fff1f2}.detail-metrics .sla-fail strong,.detail-metrics .sla-fail span{color:var(--red)}@media(max-width:700px){.detail-metrics{grid-template-columns:repeat(2,1fr)}.detail-top{gap:10px}.detail-status{white-space:nowrap}}
 #view-overview #overview,#view-overview .sla{display:none!important}#view-overview #routerCardsPanel{margin-top:2px}
 .router-card-message{margin:13px 0 5px;padding:7px 8px;border-radius:6px;background:#e9faf4;color:#138b70;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.router-card-message.error{background:#fff1f2;color:#cc5963}.router-last-check{display:block;color:#98a3b6;font-size:9px}.router-card.offline .router-card-metrics strong:first-letter{color:var(--red)}
 #metricChartsPanel{margin-top:20px}.metric-charts-heading{display:flex;align-items:end;justify-content:space-between;margin:0 0 11px}.metric-charts-heading h2{margin:0;font:700 17px Manrope}.metric-charts-heading p{margin:3px 0 0;font-size:11px;color:var(--muted)}.metric-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.metric-chart-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 2px 8px #25335908}.metric-chart-card>div{display:flex;justify-content:space-between;align-items:center}.metric-chart-card h3{margin:0;font:700 13px Manrope}.metric-chart-card strong{font:700 16px Manrope}.metric-chart-card svg{width:100%;height:105px;margin-top:11px}.metric-chart-card>span{display:block;color:#9aa5b8;font-size:9px}.chart-empty{height:105px;display:grid;place-items:center;color:#9aa5b8;font-size:11px}@media(max-width:900px){.metric-charts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.metric-charts{grid-template-columns:1fr}.metric-charts-heading{align-items:flex-start;flex-direction:column;gap:3px}}
 .metric-chart-card.sla-chart{border-color:#9fdfca;background:#f5fdf9}.metric-chart-card.sla-chart strong{color:#0d9b78}
 #graphRange{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);font:600 12px 'DM Sans'}
.metric-plot{position:relative;padding-left:34px}.metric-plot svg{width:100%;height:105px;margin-top:11px}.metric-chart-card>div.metric-plot{display:block}.graph-y-labels{position:absolute;left:0;top:13px;bottom:18px;width:29px;display:flex;flex-direction:column;justify-content:space-between;color:#9aa5b8;font-size:8px;line-height:1;text-align:right}.graph-date-labels{display:flex;justify-content:space-between;gap:4px;color:#9aa5b8;font-size:8px;line-height:1.2}.graph-date-labels span:nth-child(2){text-align:center}.graph-date-labels span:last-child{text-align:right}
.graph-date-filter{display:flex;align-items:end;gap:7px}.graph-date-filter label{display:grid;gap:3px;color:var(--muted);font-size:10px;font-weight:700}.graph-date-filter input{border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff;color:var(--ink);font:11px DM Sans}.graph-date-filter button{border:0;border-radius:7px;padding:8px 11px;background:#6255e9;color:#fff;font:700 11px DM Sans;cursor:pointer}@media(max-width:700px){.graph-date-filter{width:100%;align-items:end}.graph-date-filter label{flex:1}.graph-date-filter input{width:100%;box-sizing:border-box}}
.traffic-chart{border-color:#d9e1ff}.traffic-chart>span i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.download-dot{background:#6d5dfc}.upload-dot{background:#2995ff}
.incident-form-panel{margin-bottom:20px}.incident-form-panel form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.incident-form-panel select,.incident-form-panel input,.incident-form-panel textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px;font:12px DM Sans;color:var(--ink);background:#fff}.incident-form-panel textarea{min-height:78px;resize:vertical}.incident-form-panel button{border:0;border-radius:8px;background:#6255e9;color:#fff;padding:10px;font:700 12px DM Sans;cursor:pointer}.incident-form-panel button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.incident-form-panel form{grid-template-columns:1fr}}
.report-builder{display:grid;gap:12px;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbfe}.report-filter-fields{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:10px}.report-filter-fields label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.report-filter-fields input,.report-filter-fields select{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;color:var(--ink);font:12px DM Sans}.report-presets,.report-options,.report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.report-presets span,.report-options>span{font-size:11px;font-weight:700;color:var(--muted)}.report-presets button,.reset-report{border:1px solid #dfe3ed;border-radius:7px;background:#fff;color:#48536a;padding:7px 10px;font:700 11px DM Sans;cursor:pointer}.report-presets button:hover{border-color:#6d5dfc;color:#5d56e8}.report-options label{font-size:12px;color:var(--ink)}.report-options input{accent-color:#6255e9}.report-actions{justify-content:flex-end}.report-actions button{border:0;border-radius:8px;padding:10px 13px;background:#6255e9;color:#fff;font:700 12px DM Sans;cursor:pointer}.report-actions #printReport{background:#2d385d}.report-actions .reset-report{background:#fff;color:#48536a}@media(max-width:900px){.report-filter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.report-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-fields label:first-child{grid-column:span 2}.report-actions{justify-content:stretch}.report-actions button{flex:1}}
.report-builder{grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important}.report-builder>*{min-width:0}.report-filter-fields{grid-template-columns:2fr 1.4fr 1.3fr 1.3fr 1.4fr!important}.report-options{padding-top:2px}.report-actions{padding-top:2px;justify-content:flex-end!important}.report-actions button{white-space:nowrap}@media(max-width:900px){.report-filter-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:600px){.report-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}.report-actions{justify-content:stretch!important}}
.app-settings-panel{margin-bottom:20px}.app-settings-form,.user-settings-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfe}.app-settings-form input,.user-settings-form input,.user-settings-form select{min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;color:var(--ink);font:12px DM Sans}.app-settings-form #appSettingsToken,.user-settings-form #userSettingsToken{grid-column:span 3}.logo-upload{display:flex;align-items:center;gap:8px;border:1px dashed #b8c5d8;border-radius:8px;padding:9px;color:var(--muted);font-size:11px;background:#fff}.logo-upload input{border:0!important;padding:0!important;width:100%}.app-settings-form button,.user-settings-form button{border:0;border-radius:8px;padding:10px;background:#6255e9;color:#fff;font:700 12px DM Sans;cursor:pointer}.user-settings-heading{margin-top:22px}.user-role{display:inline-block;border-radius:12px;padding:4px 8px;font-size:10px;font-weight:700}.user-role.admin{background:#eeeaff;color:#5546d9}.user-role.noc{background:#e7f7ef;color:#15845f}.user-role.sales{background:#fff1dd;color:#be7217}.user-role.customer{background:#e8f2ff;color:#2677c9}.remove-user{border:0;border-radius:6px;padding:5px 8px;background:#fff0f1;color:#d84e60;font-size:11px;cursor:pointer}aside .brand img{width:34px;height:34px;object-fit:contain;border-radius:8px;vertical-align:middle;margin-right:7px}@media(max-width:700px){.app-settings-form,.user-settings-form{grid-template-columns:1fr 1fr}.app-settings-form #appSettingsToken,.user-settings-form #userSettingsToken{grid-column:span 2}}@media(max-width:430px){.app-settings-form,.user-settings-form{grid-template-columns:1fr}.app-settings-form #appSettingsToken,.user-settings-form #userSettingsToken{grid-column:auto}}
.login-screen{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,#7166f422,transparent 32%),linear-gradient(135deg,#0b1430,#1c2a55);transition:opacity .2s}.login-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.login-card{width:min(390px,100%);box-sizing:border-box;border:1px solid #ffffff2b;border-radius:18px;padding:30px;background:#fff;box-shadow:0 22px 60px #0005}.login-brand{display:flex;align-items:center;gap:10px;color:#14234a;font:700 24px Manrope}.login-brand b{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#6558e8;color:#fff}.login-brand img{width:42px;height:42px;object-fit:contain;border-radius:10px}.login-card>p{color:#73819b;font-size:13px;line-height:1.5}.login-card form{display:grid;gap:13px;margin-top:20px}.login-card label{display:grid;gap:6px;color:#51607a;font-size:12px;font-weight:700}.login-card input{border:1px solid #d9dfeb;border-radius:9px;padding:12px;color:#14234a;font:14px DM Sans}.login-card button{border:0;border-radius:9px;padding:12px;background:#6255e9;color:#fff;font:700 14px DM Sans;cursor:pointer}.login-card #loginMessage{min-height:18px;margin:12px 0 0;color:#d24f5d;font-size:12px}.login-card small{display:block;margin-top:14px;color:#8a96aa;font-size:11px}.session-badge{display:flex;align-items:center;gap:6px;color:#52617b;font-size:11px}.session-badge small{border-radius:10px;padding:3px 6px;background:#e9f6f0;color:#17805e;font-weight:700}.session-badge button{border:0;background:transparent;color:#596782;cursor:pointer;font:11px DM Sans;text-decoration:underline}
/* Modern operational dashboard */
:root{--ink:#102247;--muted:#8492ab;--line:#e5eaf3;--purple:#6557f6;--green:#20b486}body{background:radial-gradient(circle at 88% 5%,#e9edff 0,transparent 25%),#f7f9fd}aside{width:258px;padding:26px 14px;background:linear-gradient(180deg,#111a38 0%,#20294d 58%,#151d3b 100%);border-right:1px solid #ffffff12;box-shadow:12px 0 35px #15214610}.brand{display:flex;align-items:center;min-height:43px;margin:0 12px 43px;font-size:20px;letter-spacing:-.4px}.brand b{display:grid;place-items:center;width:38px;height:38px;margin-right:10px;padding:0;border-radius:11px;background:linear-gradient(135deg,#8b7cff,#5141d9);box-shadow:0 8px 18px #6858fb55}.brand img{width:38px;height:38px;border-radius:11px;background:#fff;padding:2px}.brand span{color:#9b91ff}nav{gap:8px;padding:0 5px}nav a{position:relative;padding:13px 14px;border:1px solid transparent;border-radius:11px;font-size:14px;transition:.18s ease}nav a:hover{color:#fff;background:#ffffff0d}nav a.active{border-color:#ffffff1d;background:linear-gradient(90deg,#7465f1,#5d67d0);box-shadow:0 9px 22px #090f292b}.api{padding:12px;margin:0 5px;color:#c4cde0;background:#ffffff08;border:1px solid #ffffff0d;border-radius:11px}main{margin-left:258px;padding:42px 62px;max-width:none;width:calc(100% - 258px)!important}header{align-items:center;margin-bottom:52px}header>div:first-child{flex:1;min-width:440px}header h1{font-size:34px;letter-spacing:-1.3px;white-space:nowrap}.eyebrow{letter-spacing:1.8px;font-size:11px;color:#7165fa}.muted{font-size:15px!important;margin-top:8px!important}.actions{gap:13px}.actions #dashboardRouterSelect{height:52px;min-width:225px;border:1px solid #e0e6f2;border-radius:13px;padding:0 16px;background:#fff;box-shadow:0 8px 24px #25335908;font-size:14px}.actions button{width:52px;height:52px;border-radius:13px;box-shadow:0 8px 24px #25335908;cursor:pointer;transition:.18s}.actions button:hover{transform:rotate(25deg);border-color:#958bff;color:var(--purple)}.session-badge{font-size:13px}.router-cards-heading{align-items:flex-end;margin-bottom:17px}.router-cards-heading h2{font-size:23px;letter-spacing:-.5px}.router-cards-heading p{font-size:13px;margin-top:6px}.router-cards{grid-template-columns:repeat(auto-fit,minmax(295px,1fr));gap:20px}.router-card{position:relative;min-height:222px;border:1px solid #e4e9f3;border-left:0;border-radius:18px;padding:22px;background:linear-gradient(145deg,#fff 0%,#fbfcff 100%);box-shadow:0 13px 30px #26385a0b;overflow:hidden;transition:.22s ease}.router-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(#57c799,#2fae81)}.router-card.selected:before{background:linear-gradient(#8d7cff,#6253ed)}.router-card:hover,.router-card.selected{transform:translateY(-5px);border-color:#a79dff;box-shadow:0 18px 38px #5547c92a}.router-card.offline:before{background:linear-gradient(#f58a92,#df5463)}.router-card-top b{font-size:18px;letter-spacing:-.4px}.router-card-top span{padding:6px 9px;border-radius:20px;background:#eaf9f2;font-size:10px;letter-spacing:.25px}.router-card.offline .router-card-top span{background:#fff0f1}.router-card>p{font-size:12px;margin:7px 0 19px}.router-card-metrics{gap:10px}.router-card-metrics>div{padding:9px 0;border-top:1px solid #edf1f6}.router-card-metrics small{font-size:9px;letter-spacing:.5px}.router-card-metrics strong{font-size:13px}.router-card-message{margin:18px 0 7px;border-radius:9px;padding:10px 11px;font-size:11px}.router-last-check{font-size:10px}.panel,#routerDetailHero{border:1px solid #e5eaf3;border-radius:18px;box-shadow:0 13px 32px #26385a0a}.metric-chart-card{border-radius:15px!important;box-shadow:0 12px 26px #26385a0a!important}.detail-metrics article{border:1px solid #edf1f6;border-radius:12px;background:#fbfcff}.login-screen{background:radial-gradient(circle at 17% 16%,#8776ff42,transparent 32%),radial-gradient(circle at 87% 79%,#37c79d2d,transparent 28%),linear-gradient(135deg,#0c1531,#202e5b)}.login-card{border-radius:24px;box-shadow:0 30px 80px #050a254f}.login-card button{background:linear-gradient(135deg,#7567f7,#5747de);box-shadow:0 10px 20px #6557f640}@media(max-width:1100px){main{padding:34px 32px}.router-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){header>div:first-child{min-width:0}header h1{white-space:normal}}@media(max-width:760px){aside{display:none}main{margin-left:0;padding:25px 18px;width:100%!important}header{align-items:flex-start;gap:20px;margin-bottom:35px}header h1{font-size:28px}.actions{flex-wrap:wrap;justify-content:flex-end}.actions #dashboardRouterSelect{min-width:170px;height:46px}.router-cards{grid-template-columns:1fr}.router-card{min-height:auto}}
:root{--ink:#102247;--muted:#8492ab;--line:#e5eaf3;--purple:#6557f6;--green:#20b486}body{background:radial-gradient(circle at 88% 5%,#e9edff 0,transparent 25%),#f7f9fd}aside{width:258px;padding:26px 14px;background:linear-gradient(180deg,#111a38 0%,#20294d 58%,#151d3b 100%);border-right:1px solid #ffffff12;box-shadow:12px 0 35px #15214610}.brand{display:flex;align-items:center;min-height:43px;margin:0 12px 43px;font-size:20px;letter-spacing:-.4px}.brand b{display:grid;place-items:center;width:38px;height:38px;margin-right:10px;padding:0;border-radius:11px;background:linear-gradient(135deg,#8b7cff,#5141d9);box-shadow:0 8px 18px #6858fb55}.brand img{width:38px;height:38px;border-radius:11px;background:#fff;padding:2px}.brand span{color:#9b91ff}nav{gap:8px;padding:0 5px}nav a{position:relative;padding:13px 14px;border:1px solid transparent;border-radius:11px;font-size:14px;transition:.18s ease}nav a:hover{color:#fff;background:#ffffff0d}nav a.active{border-color:#ffffff1d;background:linear-gradient(90deg,#7465f1,#5d67d0);box-shadow:0 9px 22px #090f292b}.api{padding:12px;margin:0 5px;color:#c4cde0;background:#ffffff08;border:1px solid #ffffff0d;border-radius:11px}main{margin-left:258px;padding:42px 62px;max-width:none;width:calc(100% - 258px)!important}header{align-items:center;margin-bottom:52px}header>div:first-child{flex:1;min-width:440px}header h1{font-size:34px;letter-spacing:-1.3px;white-space:nowrap}.eyebrow{letter-spacing:1.8px;font-size:11px;color:#7165fa}.muted{font-size:15px!important;margin-top:8px!important}.actions{gap:13px}.actions #dashboardRouterSelect{height:52px;min-width:225px;border:1px solid #e0e6f2;border-radius:13px;padding:0 16px;background:#fff;box-shadow:0 8px 24px #25335908;font-size:14px}.actions button{width:52px;height:52px;border-radius:13px;box-shadow:0 8px 24px #25335908;cursor:pointer;transition:.18s}.actions button:hover{transform:rotate(25deg);border-color:#958bff;color:var(--purple)}.session-badge{font-size:13px}.router-cards-heading{align-items:flex-end;margin-bottom:17px}.router-cards-heading h2{font-size:23px;letter-spacing:-.5px}.router-cards-heading p{font-size:13px;margin-top:6px}.router-cards{grid-template-columns:repeat(auto-fit,minmax(295px,1fr));gap:20px}.router-card{position:relative;min-height:222px;border:1px solid #e4e9f3;border-left:0;border-radius:18px;padding:22px;background:linear-gradient(145deg,#fff 0%,#fbfcff 100%);box-shadow:0 13px 30px #26385a0b;overflow:hidden;transition:.22s ease}.router-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(#57c799,#2fae81)}.router-card.selected:before{background:linear-gradient(#8d7cff,#6253ed)}.router-card:hover,.router-card.selected{transform:translateY(-5px);border-color:#a79dff;box-shadow:0 18px 38px #5547c92a}.router-card.offline:before{background:linear-gradient(#f58a92,#df5463)}.router-card-top b{font-size:18px;letter-spacing:-.4px}.router-card-top span{padding:6px 9px;border-radius:20px;background:#eaf9f2;font-size:10px;letter-spacing:.25px}.router-card.offline .router-card-top span{background:#fff0f1}.router-card>p{font-size:12px;margin:7px 0 19px}.router-card-metrics{gap:10px}.router-card-metrics>div{padding:9px 0;border-top:1px solid #edf1f6}.router-card-metrics small{font-size:9px;letter-spacing:.5px}.router-card-metrics strong{font-size:13px}.router-card-message{margin:18px 0 7px;border-radius:9px;padding:10px 11px;font-size:11px}.router-last-check{font-size:10px}.panel,#routerDetailHero{border:1px solid #e5eaf3;border-radius:18px;box-shadow:0 13px 32px #26385a0a}.metric-chart-card{border-radius:15px!important;box-shadow:0 12px 26px #26385a0a!important}.detail-metrics article{border:1px solid #edf1f6;border-radius:12px;background:#fbfcff}.login-screen{background:radial-gradient(circle at 17% 16%,#8776ff42,transparent 32%),radial-gradient(circle at 87% 79%,#37c79d2d,transparent 28%),linear-gradient(135deg,#0c1531,#202e5b)}.login-card{border-radius:24px;box-shadow:0 30px 80px #050a254f}.login-card button{background:linear-gradient(135deg,#7567f7,#5747de);box-shadow:0 10px 20px #6557f640}#adminToken,#appSettingsToken,#userSettingsToken,#incidentToken{display:none!important}@media(max-width:1100px){main{padding:34px 32px}.router-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){header>div:first-child{min-width:0}header h1{white-space:normal}}@media(max-width:760px){aside{display:none}main{margin-left:0;padding:25px 18px;width:100%!important}header{align-items:flex-start;gap:20px;margin-bottom:35px}header h1{font-size:28px}.actions{flex-wrap:wrap;justify-content:flex-end}.actions #dashboardRouterSelect{min-width:170px;height:46px}.router-cards{grid-template-columns:1fr}.router-card{min-height:auto}}
