:root{
  --page:#e8eeea;--surface:#fff;--line:#e5eae7;--line-strong:#cbd5cf;
  --text:#161d1a;--muted:#68746e;--green:#16bb55;--green-dark:#087f39;
  --soft-green:#edf9f0;--red:#d94f6c;--soft-red:#fff0f2;--amber:#aa7414;--soft-amber:#fff7e9;
  --blue:#3689a9;--vio:#6659a8;--bord:var(--line);--mut:var(--muted);--em:var(--green);--amb:var(--amber);--cyan:var(--blue);
}
*{box-sizing:border-box}
html{font-size:16px;background:var(--page)}
body{margin:0;color:var(--text);font:400 14px/1.45 Inter,Arial,sans-serif;background:var(--page);font-variant-numeric:tabular-nums}
button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,input:focus-visible,[data-bts]:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
.shell{width:min(1570px,calc(100% - 56px));margin:36px auto 48px;border:1px solid #dbe2dd;border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 20px 48px rgba(31,48,37,.09)}
.workspace{width:100%;min-width:0}.card{background:var(--surface)}.mut{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.statusbar{min-height:66px;padding:10px 24px;display:flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);background:white}
.statusbar-brand{display:flex;gap:9px;align-items:center;min-width:190px}.brand-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:7px;background:#111b16;color:white;font-size:17px;font-weight:800}
.statusbar-brand strong{font-weight:800;letter-spacing:-.035em;font-size:17px;line-height:1;display:block}.statusbar-sub{display:block;font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:.025em}
.apistat{display:inline-flex;gap:7px;align-items:center;padding:5px 9px;border:1px solid;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.apistat i{width:7px;height:7px;border-radius:50%;background:currentColor}.apistat.ok{color:var(--green-dark);background:var(--soft-green);border-color:#b9e2c7}.apistat.bad{color:#aa364c;background:var(--soft-red);border-color:#efd2d9}
.brand-sub{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.statusbar-controls{display:flex;align-items:center;gap:8px;margin-left:auto}.pill{color:var(--muted);font-size:11px;white-space:nowrap}
.btn{padding:7px 11px;min-height:32px;background:white;border:1px solid #dce3de;border-radius:6px;color:#354139;font-size:11px;font-weight:700;white-space:nowrap}.btn:hover{background:#f5f8f5;border-color:#acbdb1}.btn.arm{color:var(--green-dark);background:var(--soft-green);border-color:#b9e2c7}.btn.muted{color:#ac3d52;background:var(--soft-red);border-color:#f0ccd3}.btn-code{font-size:10px;font-weight:800}
.clockbox{text-align:right;margin-left:8px;padding-left:15px;border-left:1px solid var(--line)}.clockbox b{font-size:15px;line-height:1.1;font-weight:750;white-space:nowrap}.clockbox span{display:block;font-size:10px;color:var(--muted);white-space:nowrap}
.stale{display:none;align-items:center;gap:11px;padding:10px 23px;border-bottom:1px solid #edb9c4;background:#fff1f3;color:#992640}.stale.on{display:flex}.stale .s-ico{font-size:16px}.stale h2{margin:0;font-size:12px}.stale p{margin:1px 0 0;font-size:11px;color:#9d5464}#flash{display:none!important}
.overview{border-bottom:1px solid var(--line)}.brief{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px 14px}.brief-eyebrow{display:block;color:var(--muted);font-size:10px;letter-spacing:.09em;font-weight:750}.brief h2{margin:3px 0 0;font-size:21px;letter-spacing:-.04em;font-weight:750}.brief-tools{display:flex;align-items:center;gap:24px}.brief-state{text-align:right}.brief-state b{display:block;font-size:20px;letter-spacing:-.04em;color:var(--green-dark)}.brief-state span{font-size:11px;color:var(--muted)}
.metric-toggle{display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.metric-toggle:hover .lbl{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:3px}.metric-toggle:focus-visible{outline:2px solid var(--green-dark);outline-offset:4px;border-radius:2px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 12px 20px}.kpi{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;padding:11px 17px 12px;border-right:1px solid var(--line)!important}.kpi:last-child{border:0!important}.kpi .lbl{display:block;color:var(--muted)!important;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.kpi .val{display:block;margin-top:8px;font-size:29px;font-weight:750;letter-spacing:-.055em;line-height:1.1;color:var(--text)}.kpi .val.t-em{color:#129749}.kpi .val.t-red{color:var(--red)}.kpi .val.t-amb{color:var(--text)}.kpi .sub{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35;min-height:15px}.kpi .ico{color:#a9b3ac;font-size:11px;font-weight:700}
.main{display:grid;grid-template-columns:minmax(0,1.56fr) minmax(390px,.95fr);min-height:520px}.panel{min-width:0;display:flex;flex-direction:column}.queue-panel{border-right:1px solid var(--line)}.repeat-panel{background:#fdfefd}
.phead{min-height:66px;padding:17px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.ptitle{display:flex;gap:10px;align-items:center;min-width:0}.ptitle h2{margin:0;font-size:15px;font-weight:750;letter-spacing:-.025em;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pico{font-size:10px;font-weight:800;letter-spacing:.03em;color:var(--green-dark);background:var(--soft-green);border-radius:5px;padding:6px;min-width:32px;text-align:center}.badge{padding:4px 7px;background:#f0f3f1;border-radius:5px;color:#40564b;font-size:10px;letter-spacing:0;font-weight:700}.repeat-badge{background:#edf8ef;color:var(--green-dark)}.sites-summary{margin-top:2px;color:var(--muted);font-size:11px}
.panel-actions{display:flex;align-items:center;gap:7px}.search{position:relative}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.6}.search input{width:210px;height:34px;padding:7px 10px 7px 32px;border:1px solid #dce3de;border-radius:5px;background:white;color:var(--text);font-size:11px}.search input::placeholder{color:#9aa59c}
.queue-warning,.repeat-note{min-height:39px;display:flex;gap:9px;align-items:center;padding:9px 21px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.queue-warning p{margin:0}.queue-warning-code,.repeat-note span{font-size:9px;font-weight:800;letter-spacing:.06em;color:#568263;white-space:nowrap}.repeat-note span{color:var(--amber)}
.bulkbar{display:flex;align-items:center;gap:12px;padding:7px 21px;min-height:42px;border-bottom:1px solid var(--line)}.check-label{display:inline-flex;align-items:center;gap:6px;color:#4e5b53;font-size:11px;cursor:pointer}.selection-count{margin-left:auto;color:var(--muted);font-size:11px}.bulk-solve{color:var(--green-dark);border-color:#bde2c7;background:var(--soft-green)}input[type=checkbox]{accent-color:var(--green);width:15px;height:15px;cursor:pointer}
.twrap{flex:1;min-height:270px;overflow:auto}.twrap::-webkit-scrollbar{width:8px;height:8px}.twrap::-webkit-scrollbar-thumb{background:#d5dfd7;border-radius:20px}.twrap::-webkit-scrollbar-track{background:#f5f7f5}
table{border-collapse:collapse;width:100%;min-width:850px;font-size:11px;text-align:left}thead th{position:sticky;top:0;z-index:3;white-space:nowrap;padding:11px 12px;background:#fbfcfb;color:#758078;border-bottom:1px solid var(--line);font-size:10px;font-weight:750;letter-spacing:.03em}th.sortable{cursor:pointer}th.sortable:hover{color:var(--green-dark)}tbody td{padding:12px;border-bottom:1px solid #edf0ed;vertical-align:middle}tbody tr:hover{background:#f7fbf8}tbody tr.leaving{opacity:.35}.tc{text-align:center}.col-check{width:34px}.selected-row{background:#f0fbf2!important}.cname{display:flex;align-items:center;gap:7px;font-weight:750;font-size:12px;color:#1c2b21}.cname .trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.cuser{margin-top:3px;padding-left:14px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.comment{max-width:240px}.source-area{display:inline-flex;gap:4px;margin:4px 0 0 14px;color:#685da0;background:#f4f1ff;padding:2px 5px;border-radius:4px;font-size:10px}.source-area span{font-weight:750}
.tag{display:inline-block;border-radius:4px;padding:3px 6px;font-size:10px;font-weight:700;white-space:nowrap}.tag-bts{color:#287a49;background:#ecf8ef}.tag-dur{background:#f5f7f5;color:#53665a}.dur-crit{color:#ad2f49;background:#fff0f3}.dur-warn{color:#a66a10;background:#fff7e8}.dur-mild{color:#967c1e;background:#fffbe7}.dur-ok{color:#4d6656}.tag-hot{color:#ab4253;background:#fff0f2}.tag-dim{color:#67756b;background:#f3f6f3}.rx-bad{color:var(--red);font-weight:700}.rx-ok{color:var(--green-dark)}
.solve{padding:6px 9px;color:#0e8840;background:#eaf8ee;border:1px solid #b8e4c5;border-radius:5px;font-size:11px;font-weight:750}.solve:hover{background:#d7f4df}.tfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:10px 21px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.tfoot b{color:var(--green-dark)!important}.legend{display:flex;gap:12px;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:5px}.dot{width:7px;height:7px;flex:none;display:inline-block;border-radius:50%}.b-em{background:#17b653}.b-amb{background:#e2aa39}.b-red{background:var(--red)}.b-gray{background:#9ba9a0}.empty{text-align:center;padding:65px 15px}.empty .big{font-size:23px;color:#17a64f;margin-bottom:7px}.empty b{display:block;font-size:12px}.empty span{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.repeat-table{min-width:0;table-layout:fixed}.repeat-table th:first-child{width:47%}.repeat-table th:nth-child(2){width:31%}.repeat-table th:last-child{width:22%;text-align:right}.repeat-table td{padding:12px 9px}.repeat-table td:last-child{text-align:right}.repeat-name{font-size:12px;font-weight:750;overflow-wrap:anywhere}.repeat-comment,.repeat-site{margin-top:3px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.repeat-site{color:#257246}.repeat-drop{display:block;font-size:15px;font-weight:750;color:var(--text)}.repeat-status{display:inline-block;margin-top:3px;font-size:10px;font-weight:700}.repeat-status.is-offline{color:var(--red)}.repeat-status.is-online{color:#14974b}.repeat-last-logout{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35;overflow-wrap:anywhere}.repeat-resolve{padding:5px 7px}.repeat-empty{padding:75px 16px}
.bts-overview{border-top:1px solid var(--line);padding-bottom:9px}.bts-overview .phead{border-bottom:0;min-height:62px;padding:14px 25px 4px}.bts-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:9px 24px 16px}.bts{min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.bts:hover{border-color:#7bc897;background:#fbfefb}.bts.sel{border-color:#14aa4a;box-shadow:inset 0 0 0 1px #14aa4a;background:#f5fcf6}.bts.danger{border-left:3px solid var(--red)}.bts.warning{border-left:3px solid #dea53b}.bts.stale{display:block;opacity:.65;border-style:dashed}.bts .top{display:flex;align-items:center;justify-content:space-between;gap:8px}.bts .nm{font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bts .ip{margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bts .row2{display:flex;justify-content:space-between;margin-top:9px;color:var(--muted);font-size:10px}.bts .pct{color:var(--text);font-weight:750}.bts .pct.t-red{color:var(--red)}.bts .pct.t-amb{color:var(--amber)}.bar{height:4px;margin-top:6px;background:#eef2ee;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green);border-radius:5px}.bar i.f-red{background:var(--red)}.bar i.f-amb{background:#e6ad40}.bar i.f-gray{background:#a9b3a9}.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:11px;text-align:center}.mini div{min-width:0}.mini b{display:block;font-size:11px;font-weight:750;white-space:nowrap}.mini span{font-size:9px;color:var(--muted)}.mini .t-em{color:#119b49}.mini .t-red{color:var(--red)}
.toasts{position:fixed;z-index:50;right:24px;bottom:20px;width:min(380px,calc(100vw - 28px));display:grid;gap:8px;pointer-events:none}.toast{pointer-events:auto;display:flex;gap:9px;padding:12px;background:white;border:1px solid #dce4de;border-left:3px solid var(--blue);border-radius:6px;box-shadow:0 10px 26px #1b2b1b2c;font-size:12px;transition:opacity .25s,transform .25s}.toast.ok{border-left-color:var(--green)}.toast.err{border-left-color:var(--red)}.toast.warn{border-left-color:#dc9f30}.toast .t-body{flex:1;min-width:0}.toast .t-title{font-weight:750}.toast .t-desc{color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.toast .t-close{border:0;background:none;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.tv .shell{width:100%;max-width:none;margin:0;border:0;border-radius:0}body.tv .search,body.tv #btnAll{display:none}body.tv .main{min-height:65vh}body.tv td,body.tv th{font-size:13px}
@media(max-width:1250px){.shell{width:calc(100% - 26px);margin:14px auto}.brand-sub{display:none}.main{grid-template-columns:1fr}.queue-panel{border-right:0;border-bottom:1px solid var(--line)}.queue-panel .twrap{max-height:54vh}.repeat-panel .twrap{max-height:44vh}.bts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.shell{width:100%;margin:0;border:0;border-radius:0}.statusbar{gap:9px;flex-wrap:wrap;padding:11px 15px}.statusbar-brand{min-width:auto;flex:1}.statusbar-controls{margin-left:0;width:100%;justify-content:space-between;flex-wrap:wrap}.clockbox{margin-left:auto}.pill{display:none}.brief{padding:17px 16px 10px}.brief h2{font-size:19px}.brief-tools{gap:12px}.brief-state span{display:none}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 8px 12px}.kpi{padding:11px 10px;border-bottom:1px solid var(--line)!important}.kpi:nth-child(2){border-right:0!important}.kpi .val{font-size:24px}.phead{padding:14px 15px;align-items:flex-start;flex-wrap:wrap}.panel-actions{width:100%}.search{flex:1}.search input{width:100%}.queue-warning,.repeat-note,.bulkbar{padding-left:15px;padding-right:15px}.queue-panel .twrap{max-height:none}.queue-panel table{min-width:0;display:block}.queue-panel thead{display:none}.queue-panel tbody{display:grid;gap:8px;padding:10px}.queue-panel tbody tr{display:grid;grid-template-columns:24px 1fr auto;gap:8px;padding:10px;border:1px solid var(--line);border-radius:6px}.queue-panel tbody td{display:block;padding:0;border:0;text-align:left!important;min-width:0}.queue-panel tbody td:nth-child(1){grid-row:1/5;grid-column:1}.queue-panel tbody td:nth-child(2){grid-column:2;grid-row:1}.queue-panel tbody td:nth-child(3){grid-column:3;grid-row:1}.queue-panel tbody td:nth-child(4){grid-column:2/4;grid-row:2;color:var(--muted)}.queue-panel tbody td:nth-child(5){grid-column:2;grid-row:3}.queue-panel tbody td:nth-child(6){grid-column:3;grid-row:3}.queue-panel tbody td:nth-child(7){grid-column:2;grid-row:4}.queue-panel tbody td:nth-child(8){grid-column:3;grid-row:4;text-align:right!important}.repeat-panel .twrap{max-height:none}.repeat-table{display:table;min-width:0}.repeat-table thead{display:table-header-group}.repeat-table tbody{display:table-row-group}.repeat-table tbody tr{display:table-row}.repeat-table tbody td{display:table-cell;text-align:left!important;padding:12px 7px}.repeat-table tbody td:last-child{text-align:right!important}.bts-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 14px 16px}.bts-overview .phead{padding-left:15px;padding-right:15px}}
@media(max-width:430px){.statusbar-controls #soundLabel{display:none}.clockbox span{display:none}.brief{align-items:flex-start;flex-direction:column;gap:10px}.brief-state{display:none}.kpi .sub{font-size:10px}.ptitle h2{font-size:14px}.bulkbar{flex-wrap:wrap}.selection-count{margin-left:0}.bulk-solve{margin-left:auto}.repeat-table th:first-child{width:43%}.repeat-table th:nth-child(2){width:29%}.repeat-table th:last-child{width:28%}.repeat-resolve{font-size:10px;padding:5px}.bts-grid{gap:6px}.bts{padding:10px 8px}.mini b{font-size:10px}.mini span{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Laporan siap bagikan; operator tetap memilih tujuan di WhatsApp. */
.share-btn{background:#12994a;color:white;border-color:#12994a;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.share-btn:hover:not(:disabled){background:#087f39;color:white;border-color:#087f39}.share-btn:disabled{background:#edf2ee;color:#9aaa9f;border-color:#dce5de}
.report-dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 36px);padding:0;border:1px solid #d9e5db;border-radius:10px;background:white;color:var(--text);box-shadow:0 24px 75px #14291b44}.report-dialog::backdrop{background:#14211888}.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:20px 22px 10px}.report-head h2{margin:4px 0 0;font-size:20px;letter-spacing:-.035em}.report-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1}.report-dialog p{margin:0;padding:0 22px 14px;color:var(--muted);font-size:12px;line-height:1.5}.report-dialog textarea{display:block;width:calc(100% - 44px);height:min(43vh,390px);margin:0 22px;resize:vertical;padding:15px;border:1px solid var(--line);border-radius:6px;background:#f7faf7;color:#25372b;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.report-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 22px 20px}
@media(max-width:760px){.repeat-panel .phead .share-btn{margin-left:42px}.report-dialog textarea{height:40vh}}

/* NOC incident workspace: readable identifiers, measured severity and clear timestamps. */
.repeat-panel{background:#fff;border-top:3px solid #15364d}
.repeat-panel .phead{background:#f5f8fb;border-bottom:1px solid #dce5ed}
.repeat-panel .repeat-pico{background:#e6f0f5;color:#123c56;border:1px solid #c9dfe9}
.repeat-panel .repeat-badge{background:#e9f0f6;color:#143d55;border:1px solid #cadbe7}
.repeat-panel .repeat-note{background:#f5f9fc;color:#334c5e;border-bottom:1px solid #dce5ed}
.repeat-panel .repeat-note span{color:#a04c15}
.repeat-panel .repeat-table th{background:#edf3f7;color:#395368;letter-spacing:.045em}
.repeat-panel .repeat-table tbody tr:hover{background:#f6fafc}
.repeat-name{font-size:13px;font-weight:800;color:#163b53;letter-spacing:.01em}
.repeat-comment{color:#526778;font-size:11px}
.repeat-site{color:#497185;font-size:10px}
.repeat-drop{color:#153b55;font-variant-numeric:tabular-nums}
.repeat-last-logout{color:#435b6c;font-size:11px;font-variant-numeric:tabular-nums}
.report-dialog{border-color:#c8d8e3;box-shadow:0 25px 80px #112a3c55}
.report-dialog::backdrop{background:#10293999}
.report-head{background:#f2f7fa;border-bottom:1px solid #dae5ec;padding-bottom:16px}
.report-head .brief-eyebrow{color:#426579}
.report-head h2{color:#173c53}
.report-dialog textarea{background:#f7fafc;border-color:#cddde7;color:#223e50}

/* Pengingat jadwal laporan WhatsApp. */
.report-alarm[hidden]{display:none!important}.report-alarm{display:flex;align-items:center;gap:13px;padding:13px 22px;border-bottom:1px solid #efcb85;background:#fff7e8;color:#43371e}.report-alarm-icon{flex:none;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#e5a332;color:white;font-weight:800;font-size:16px}.report-alarm-copy{flex:1;min-width:0}.report-alarm-copy strong{display:block;font-size:13px}.report-alarm-copy span{display:block;margin-top:3px;color:#796844;font-size:11px}.report-alarm-actions{flex:none;display:flex;gap:8px}
@media(max-width:760px){.report-alarm{padding:13px 15px;align-items:flex-start;flex-wrap:wrap}.report-alarm-actions{width:100%;padding-left:42px}.report-alarm-actions .btn{flex:1}}
