@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700;800&display=swap");

:root{
  --bg:#080b10;
  --bg2:#0d1118;
  --panel:#0f141c;
  --panel2:#121923;
  --line:#202a37;
  --line2:#293547;
  --text:#e7edf5;
  --muted:#7f8da0;
  --muted2:#9eabbc;
  --cyan:#49b8ff;
  --green:#49d17d;
  --amber:#efb84b;
  --red:#f25c69;
  --shadow:0 14px 40px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at top right,#111b28 0,#080b10 38%),#080b10;color:var(--text)}
body{font-family:Inter,Segoe UI,Arial,sans-serif}
button,input,textarea,select{font:inherit}
.app{min-height:100vh;display:flex}
.sidebar{
  width:255px;min-width:255px;
  background:linear-gradient(180deg,#0a0f16 0%,#080c12 100%);
  border-right:1px solid #1a2430;
  padding:22px 15px;display:flex;flex-direction:column;
}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 26px}
.brand-icon{
  width:38px;height:38px;border:1px solid #2e4157;border-radius:10px;
  display:grid;place-items:center;background:#0e1722;box-shadow:inset 0 0 0 1px rgba(73,184,255,.08);
  font-size:20px
}
.brand b{display:block;font-size:15px;letter-spacing:.2px}
.brand span{display:block;margin-top:3px;color:var(--muted);font:10px "IBM Plex Mono",monospace;letter-spacing:1px;text-transform:uppercase}
nav{display:flex;flex-direction:column;gap:5px}
.nav{
  width:100%;border:1px solid transparent;background:transparent;color:#8f9daf;
  text-align:left;padding:12px 13px;border-radius:9px;font-size:13px;cursor:pointer
}
.nav:hover{background:#0f151e;border-color:#1d2936;color:#d8e2ee}
.nav.active{
  background:linear-gradient(90deg,#121d29,#0e151e);
  border-color:#24384d;color:#eff6ff;box-shadow:inset 3px 0 0 var(--cyan)
}
.side-note{margin-top:auto;padding:14px 9px;color:#677487;font-size:10px;line-height:1.6;font-family:"IBM Plex Mono",monospace}
.main{flex:1;padding:25px 30px;overflow:auto;max-width:1700px;margin:0 auto}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.eyebrow{font:10px "IBM Plex Mono",monospace;color:#6f8094;letter-spacing:1.5px}
.eyebrow span{color:#3a4b5e}
.topbar h1{margin:7px 0 0;font-size:27px;letter-spacing:-.4px}
.top-actions{display:flex;align-items:center;gap:8px}
.badge,.top-chip{
  border:1px solid #243242;background:#0d131b;color:#8fa0b4;border-radius:8px;
  padding:8px 10px;font:9px "IBM Plex Mono",monospace;letter-spacing:.8px
}
.top-chip{color:#b5c2d1}.top-chip i{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--green);box-shadow:0 0 8px rgba(73,209,125,.7);margin-right:6px}
.hero{
  background:linear-gradient(125deg,#0e1823 0%,#111923 58%,#0c131b 100%);
  border:1px solid #263444;border-radius:12px;padding:22px 23px;display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;box-shadow:var(--shadow);position:relative;overflow:hidden
}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(73,184,255,.04) 52%,transparent 100%);pointer-events:none}
.hero span{font:9px "IBM Plex Mono",monospace;color:#6f91ae;letter-spacing:1.3px}
.hero h2{margin:6px 0;font-size:21px;max-width:780px;letter-spacing:-.2px}
.hero p{margin:6px 0 0;max-width:760px;color:#8493a5;font-size:11px;line-height:1.6}
.secondary,.primary{
  border-radius:8px;padding:10px 13px;cursor:pointer;font-weight:700
}
.primary{
  background:#dcecff;color:#08101a;border:1px solid #dcecff;
  box-shadow:0 6px 18px rgba(73,184,255,.08)
}
.secondary{background:#101821;border:1px solid #2a3949;color:#bfd0e1}
.primary:hover{filter:brightness(1.05)}
.secondary:hover{border-color:#3a4c60}
.panel{
  background:linear-gradient(180deg,#10151d,#0d1219);
  border:1px solid #1e2a37;border-radius:11px;overflow:hidden;margin-bottom:13px;box-shadow:var(--shadow)
}
.head{padding:14px 16px;border-bottom:1px solid #1c2733;display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.012)}
.head h3{margin:0;font-size:13px}
.head small{color:#718196;font:9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.5px}
.link{border:0;background:none;color:#6fc5ff;cursor:pointer;font-size:11px}
.hidden{display:none!important}
.panel textarea{
  width:100%;min-height:270px;border:0;outline:0;resize:vertical;
  padding:18px 19px;background:#080d13;color:#dbe7f4;
  font:11px/1.65 "IBM Plex Mono",Consolas,monospace;
  caret-color:var(--cyan)
}
.panel textarea::selection{background:#25435a;color:#fff}
.editor-meta{
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 18px;border-bottom:1px solid #18222d;
  background:#0a0f15;color:#58697d;font:9px "IBM Plex Mono",monospace;letter-spacing:.8px;text-transform:uppercase
}
.actions{display:flex;justify-content:flex-end;padding:12px 16px 15px;border-top:1px solid #18222d;background:#0b1017}
.status-line{
  background:#0d1821;border:1px solid #24415a;border-radius:9px;padding:10px 12px;font:10px "IBM Plex Mono",monospace;
  margin-bottom:12px;color:#9db8cf
}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.kvgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:15px}
.kv{
  border:1px solid #1e2a36;border-radius:8px;padding:10px;background:#0b1017
}
.kv span{display:block;text-transform:uppercase;font:8px "IBM Plex Mono",monospace;color:#66788d;letter-spacing:.7px;margin-bottom:5px}
.kv b{display:block;font-size:11px;color:#e1e9f3;word-break:break-word;font-weight:600}
.tablewrap{overflow:auto}
.tablewrap table{border-collapse:collapse;width:100%;font-size:10px}
.tablewrap th,.tablewrap td{padding:10px 12px;border-bottom:1px solid #18222d;text-align:left;vertical-align:top}
.tablewrap th{font:8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.8px;color:#708096;background:#0b1016;position:sticky;top:0}
.tablewrap td:nth-child(2){white-space:pre-wrap;word-break:break-word;max-width:720px;color:#cdd7e3}
.codebar{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 13px;border-bottom:1px solid #1c2733;background:#0a0f15;
  color:#667990;font:8px "IBM Plex Mono",monospace;letter-spacing:.8px
}
.panel pre{
  margin:0;padding:15px;white-space:pre-wrap;word-break:break-word;
  background:#070b10;color:#c9d8e8;font:10px/1.6 "IBM Plex Mono",Consolas,monospace;max-height:420px;overflow:auto
}
.save-row{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:7px 0 18px}
.save-row span{font:10px "IBM Plex Mono",monospace;color:var(--green)}
.source-pill{
  display:inline-block;padding:4px 6px;border-radius:6px;
  border:1px solid #263646;background:#0d151d;color:#b9cbe0;font:8px "IBM Plex Mono",monospace
}
.sev-high{color:var(--red);font-weight:800}.sev-medium{color:var(--amber);font-weight:800}
.empty{color:#647389!important;text-align:center;padding:28px!important}
@media(max-width:1000px){
  .sidebar{width:205px;min-width:205px}.grid2{grid-template-columns:1fr}
}
@media(max-width:700px){
  .sidebar{display:none}.main{padding:16px}.topbar h1{font-size:23px}.hero{display:block}.secondary{margin-top:13px}
  .kvgrid{grid-template-columns:1fr}.top-actions{display:none}
}
.history-context{border-color:#29445a}
.history-badge{font:9px "IBM Plex Mono",monospace;color:#7fc9ff;border:1px solid #2b536d;background:#0b1721;border-radius:7px;padding:5px 7px}
.history-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:15px}
.hstat{background:#0b1017;border:1px solid #1e2a36;border-radius:8px;padding:10px}.hstat span{display:block;color:#65778b;font:8px "IBM Plex Mono",monospace;text-transform:uppercase;margin-bottom:4px}.hstat b{font-size:13px}
.history-list{padding:0 15px 15px}.history-item{padding:11px 0;border-top:1px solid #18222d}.history-item:first-child{border-top:0}.history-item .top{display:flex;justify-content:space-between;gap:10px}.history-item .date{color:#8ea0b2;font:9px "IBM Plex Mono",monospace;background:transparent;border:0;padding:0}.history-item .note{margin-top:5px;color:#b9c6d4;font-size:10px;line-height:1.5}
.verdict-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:15px}.verdict-form label{display:flex;flex-direction:column;gap:6px;color:#708197;font:9px "IBM Plex Mono",monospace;text-transform:uppercase}.verdict-form select,.verdict-form textarea{background:#0b1017;border:1px solid #243342;color:#dbe5ef;border-radius:8px;padding:9px;outline:0}.verdict-form textarea{min-height:100px;resize:vertical;font:11px/1.5 Inter,Segoe UI,Arial,sans-serif;text-transform:none}.verdict-form .full{grid-column:1/-1}
.pill-green{color:#67d491;border-color:#2a5a40;background:#0c1912}.pill-red{color:#f27983;border-color:#5a2930;background:#1a0d10}
@media(max-width:700px){.history-grid{grid-template-columns:1fr 1fr}.verdict-form{grid-template-columns:1fr}.verdict-form .full{grid-column:auto}}

.advanced{margin:0 0 12px;border:1px solid #1e2a37;border-radius:10px;background:#0d1219;overflow:hidden}
.advanced summary{list-style:none;cursor:pointer;padding:11px 14px;display:flex;justify-content:space-between;align-items:center;background:#0a0f15;color:#aebccc;font-size:11px;font-weight:700}
.advanced summary::-webkit-details-marker{display:none}
.advanced summary:before{content:"▸";color:#5e7389;margin-right:8px;transition:transform .15s}
.advanced[open] summary:before{transform:rotate(90deg)}
.advanced summary span{font:8px "IBM Plex Mono",monospace;color:#607187;text-transform:uppercase;letter-spacing:.7px}
.advanced-head{display:flex;justify-content:flex-end;padding:9px 12px;border-bottom:1px solid #1b2632}

.threat-panel{border-color:#27475f}
.ti-status{font:8px "IBM Plex Mono",monospace;letter-spacing:.7px;color:#7fa2bd;border:1px solid #274357;background:#0b151d;border-radius:7px;padding:5px 7px}
.ti-top{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #182530}
.ti-label{display:block;font:8px "IBM Plex Mono",monospace;color:#657b90;letter-spacing:.9px;margin-bottom:5px}
.ti-top b{font:15px "IBM Plex Mono",monospace;color:#e8f1fa}
.ti-top .primary{background:#dcecff;color:#08101a}
.ti-top .primary:disabled{opacity:.45;cursor:not-allowed}
.abuse-result{padding:14px}
.ti-score{display:flex;justify-content:space-between;align-items:center;padding:13px;border:1px solid #223241;border-radius:9px;background:#0a1016;margin-bottom:10px}
.ti-score span{font:9px "IBM Plex Mono",monospace;letter-spacing:.8px;color:#7c8da0}
.ti-score b{font:20px "IBM Plex Mono",monospace}
.ti-danger b{color:#f25c69}.ti-warning b{color:#efb84b}.ti-good b{color:#55d58a}
.ti-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ti-grid .kv{background:#0b1017}
.ti-loading{padding:18px;text-align:center;color:#8ca3b8;font:10px "IBM Plex Mono",monospace}
.ti-error{padding:13px;border:1px solid #5a2930;background:#1a0d10;color:#f28790;border-radius:8px;font-size:10px}
@media(max-width:1100px){.ti-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.ti-top{display:block}.ti-top .primary{margin-top:12px;width:100%}.ti-grid{grid-template-columns:1fr 1fr}}

.grey-grid{grid-template-columns:repeat(4,1fr)}
.grey-link{padding:10px 2px 2px;font-size:10px}
.grey-link a{color:#6fc5ff;text-decoration:none}
.grey-link a:hover{text-decoration:underline}

.ti-run-note{font:9px "IBM Plex Mono",monospace;color:#64788d}
.consolidated-panel{border-color:#35536a}
.consolidated-body{padding:15px}
.consolidated-ip{padding:8px 0 13px}.consolidated-ip span,.convergence-number span,.confidence-block span,.source-summary span{display:block;font:8px "IBM Plex Mono",monospace;color:#64798e;letter-spacing:.8px;text-transform:uppercase}.consolidated-ip b{display:block;margin-top:5px;font:15px "IBM Plex Mono",monospace}
.convergence-main{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}
.convergence-number,.confidence-block{border:1px solid #1e2e3d;border-radius:8px;background:#0a1016;padding:12px}
.convergence-number strong,.confidence-block strong{display:block;margin-top:5px;font:18px "IBM Plex Mono",monospace;color:#dce8f3}
.confidence-block strong.risk-high{color:#f25c69}.confidence-block strong.risk-medium{color:#efb84b}.confidence-block strong.risk-low{color:#6fc8ff}
.convergence-text{margin-top:9px;padding:10px;border:1px solid #1e2e3d;border-radius:8px;background:#0b1118;color:#a9b9ca;font-size:10px;line-height:1.5}
.source-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.source-summary{border:1px solid #1e2e3d;border-radius:8px;padding:10px;background:#0a1016}.source-summary b{display:block;margin-top:5px;color:#dae5f0;font-size:10px}
.consolidated-note{margin-top:9px;color:#65778b;font-size:9px;line-height:1.5}
@media(max-width:700px){.convergence-main,.source-summary-grid{grid-template-columns:1fr}}

.rdap-grid{grid-template-columns:repeat(5,1fr)}
.rdap-note{padding-top:8px}
@media(max-width:1200px){.rdap-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.rdap-grid{grid-template-columns:1fr 1fr}}

/* ===== V1.8.1 real layout redesign ===== */
:root{
  --bg:#101820;
  --panel:#16212c;
  --panel-alt:#121b24;
  --line:#33495c;
  --line-soft:#263746;
  --text:#edf4f9;
  --muted:#8ea4b7;
  --blue:#62b7ff;
  --red:#ff4f61;
  --amber:#ffc14d;
  --green:#55d68a;
}
body{background:radial-gradient(circle at 70% -10%,#182737 0%,#101820 48%,#0c131b 100%);color:var(--text)}
#resultArea{max-width:1500px;margin:0 auto;padding-bottom:34px}
.section-kicker{display:block;font:9px "IBM Plex Mono",monospace;color:#78a1c1;letter-spacing:1.5px}
.section-header{display:flex;justify-content:space-between;align-items:end;margin:24px 0 10px;padding:0 2px}
.section-header h2{margin:3px 0 0;font-size:19px;letter-spacing:-.2px}
.section-help{font-size:10px;color:#71889a}
.event-grid{margin-bottom:12px}
.event-section .panel{box-shadow:0 10px 28px rgba(0,0,0,.16)}
.investigation-section{margin-top:8px}
.panel{background:linear-gradient(180deg,#16212c,#131d26);border:1px solid var(--line);border-radius:12px}
.panel .head{border-bottom:1px solid var(--line-soft);background:rgba(7,13,19,.22)}
.panel h3{color:#f2f7fb}
.panel small{color:#88a1b4}
.kvgrid .kv{background:#0f1820;border-color:#2b4052}
.kvgrid .kv .k{color:#6f91aa}
.kvgrid .kv .v{color:#eef5fa}
.ioc-principal{border-color:#47708d;margin:0 0 12px;box-shadow:0 0 0 1px rgba(98,183,255,.06),0 14px 36px rgba(0,0,0,.20)}
.ioc-main{display:grid;grid-template-columns:1.4fr .8fr;gap:12px;padding:16px}
.ioc-ip-wrap,.ioc-risk-wrap{min-height:78px;border:1px solid #355064;border-radius:10px;background:#0d161f;padding:14px}
.ioc-ip-wrap b{font:21px "IBM Plex Mono",monospace;color:#f6fbff}
.ioc-risk-wrap b{font:20px "IBM Plex Mono",monospace}
.ioc-meta{padding:0 16px 16px}
.ioc-state{border-color:#3c617a;background:#0d1922;color:#8bcaff}
.ti-command{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 18px;margin:0 0 12px;border-color:#4f6c82;background:linear-gradient(90deg,#182634,#12202b)}
.ti-command-copy h3{margin:4px 0 3px}.ti-command-copy p{margin:0;color:#91a7b8;font-size:10px}
.ti-main-btn{min-width:280px;min-height:48px}
.consolidated-panel{margin:0 0 12px;border-color:#476a81}
.consolidated-panel .head{background:#152430}
.confidence-block strong.risk-high,.ioc-risk-critical{color:var(--red)!important}
.confidence-block strong.risk-medium,.ioc-risk-medium{color:var(--amber)!important}
.confidence-block strong.risk-low,.ioc-risk-low{color:var(--green)!important}
.source-summary b{color:#dcecf7}
.threat-panel{margin:0 0 12px}
.threat-panel .head{background:#14202a}
.ti-status{font:8px "IBM Plex Mono",monospace;letter-spacing:.8px;border-radius:6px;padding:5px 8px}
.ti-danger b{color:var(--red)!important}.ti-warning b{color:var(--amber)!important}.ti-good b{color:var(--green)!important}
.history-context{margin:12px 0}
.decision-section{margin-top:18px}
.decision-section .panel{box-shadow:0 8px 22px rgba(0,0,0,.14)}
.save-row{padding:4px 2px 16px}
.save-row .primary{min-width:190px}
#saveMsg{color:#77d89c;font-size:10px;margin-left:10px}
.technical-section{margin-top:4px}
.advanced{background:#111a23;border-color:#2a3d4f}
.advanced summary{background:#0e171f;color:#b9c9d6}
button.primary{background:#e8f3ff!important;color:#0a131c!important;border-color:#a6c9e7!important}
button.primary:hover{background:#f1f7fc!important}
input,textarea,select{background:#0d161e!important;border-color:#31495b!important}
@media(max-width:900px){
  .ti-command{display:block}.ti-main-btn{width:100%;margin-top:12px}
  .ioc-main{grid-template-columns:1fr}.section-header{display:block}.section-help{margin-top:5px}
}

/* V1.8.2 history UX */
.history-row{cursor:pointer;outline:none;transition:background .15s ease,transform .08s ease}
.history-row:hover{background:#172634!important}
.history-row:focus{box-shadow:inset 3px 0 0 #62b7ff;background:#152431}
.history-list-panel .tablewrap{max-height:none}
.history-detail{margin-bottom:12px}
.history-detail-top{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px;border-bottom:1px solid #2a3d4f}
.detail-kicker{display:block;font:8px "IBM Plex Mono",monospace;color:#78a1bd;letter-spacing:1.2px}
.detail-ip{display:block;margin-top:6px;font:24px "IBM Plex Mono",monospace;color:#f3f8fc}
.detail-sub{margin-top:6px;color:#8399aa;font-size:10px}
.detail-status{min-width:170px;padding:12px 14px;border:1px solid #334a5e;border-radius:9px;background:#0d161e;text-align:right}
.detail-status span{display:block;font:8px "IBM Plex Mono",monospace;color:#8096a8}
.detail-status b{display:block;margin-top:5px;font:12px "IBM Plex Mono",monospace}
.detail-critical b{color:#ff5262}.detail-warning b{color:#ffc24d}.detail-info b{color:#62b7ff}
.history-detail-grid,.history-ti-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:14px 18px 0}
.detail-card{border:1px solid #304659;border-radius:9px;background:#0d161e;padding:11px;min-height:66px}
.detail-card span{display:block;font:8px "IBM Plex Mono",monospace;color:#7691a6;letter-spacing:.7px}
.detail-card b{display:block;margin-top:6px;color:#e8f1f7;font-size:10px;line-height:1.4}
.detail-card small{display:block;margin-top:4px;color:#71879a;font-size:9px}
.detail-section-title{padding:18px 18px 9px;font-size:10px;font-weight:700;color:#cbd9e4}
.history-ti-grid{padding-top:0}
.ti-detail{min-height:58px}
.detail-note{margin:0 18px 18px;padding:12px;border:1px solid #304659;border-radius:9px;background:#0d161e;color:#a8bac9;font-size:10px;line-height:1.5;white-space:pre-wrap}
.history-detail .secondary{border:1px solid #334a5e;background:#101b24;color:#cfe0ec;padding:8px 10px;border-radius:7px}
.history-detail .secondary:hover{background:#172733}
@media(max-width:900px){.history-detail-grid,.history-ti-grid{grid-template-columns:repeat(2,1fr)}.history-detail-top{display:block}.detail-status{text-align:left;margin-top:12px}}
@media(max-width:600px){.history-detail-grid,.history-ti-grid{grid-template-columns:1fr}}

/* V1.8.5 — History is a top-level view inside .main.
   Position it explicitly under the topbar so hidden Analyzer content
   can never push it down the page. */
.main{position:relative}
#history{
  position:absolute!important;
  top:92px!important;
  left:30px!important;
  right:30px!important;
  margin:0!important;
  padding:0!important;
  z-index:5!important;
}
#history .hero.compact{
  margin:0 0 12px!important;
  padding:16px 18px!important;
  min-height:0!important;
  height:auto!important;
}
#history .history-list-panel{margin-top:0!important}
@media(max-width:700px){
  #history{top:78px!important;left:16px!important;right:16px!important}
}

.history-return-row{
  display:flex;
  justify-content:flex-end;
  padding:4px 0 10px;
}
.history-return-row .secondary{
  min-width:180px;
}

/* V1.9 AI on-demand knowledge panel */
.ai-panel{margin:12px 0;border-color:#3b556b;overflow:hidden}
.ai-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:15px 17px;background:linear-gradient(90deg,#15222e,#111b24)}
.ai-summary::-webkit-details-marker{display:none}
.ai-summary h3{margin:4px 0 3px;color:#eef6fb;font-size:13px}
.ai-summary small{color:#8198a9;font:9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.6px}
.ai-chevron{width:26px;height:26px;border:1px solid #35526a;border-radius:7px;display:grid;place-items:center;color:#8ec7ef;font:16px "IBM Plex Mono",monospace}
.ai-panel[open] .ai-chevron{transform:rotate(45deg)}
.ai-body{padding:14px 16px;background:#101923}
.ai-meta{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}
.ai-meta>div{border:1px solid #2e4456;border-radius:8px;padding:10px;background:#0c151d}
.ai-meta span,.ai-section>span,.ai-list>span{display:block;color:#71899b;font:8px "IBM Plex Mono",monospace;letter-spacing:.8px}
.ai-meta b{display:block;color:#e9f2f8;font-size:10px;margin-top:5px;word-break:break-word}
.ai-action-row{display:flex;align-items:center;gap:12px;padding:13px 0}
.ai-run-btn{min-width:190px}
.ai-help{font-size:9px;color:#718798}
.ai-origin{display:inline-block;padding:6px 8px;border-radius:7px;font:8px "IBM Plex Mono",monospace;letter-spacing:.5px;margin-bottom:10px}
.ai-origin.reused{color:#7ecbff;border:1px solid #315a76;background:#0c1b25}
.ai-origin.new{color:#8ee2aa;border:1px solid #2d6040;background:#0d1c14}
.ai-section{padding:11px 0;border-top:1px solid #223341}
.ai-section p,.ai-list p{margin:5px 0 0;color:#c6d4df;font-size:10px;line-height:1.55}
.ai-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid #223341}
.ai-list{padding:12px 0}
.ai-list ul{margin:7px 0 0 17px;padding:0;color:#c6d4df;font-size:10px;line-height:1.55}
.ai-list li{margin:3px 0}
.ai-footer{padding-top:10px;color:#62798b;font:8px "IBM Plex Mono",monospace}
@media(max-width:800px){.ai-meta{grid-template-columns:1fr}.ai-two-col{grid-template-columns:1fr}.ai-action-row{display:block}.ai-run-btn{width:100%}.ai-help{display:block;margin-top:8px}}

/* V1.9.2 — AI eligibility: hidden means no layout space */
#aiPanel.hidden{display:none!important}

/* ===== V1.9.4 Firebase Authentication ===== */
.auth-gate{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 50% 0%,rgba(73,184,255,.08),transparent 38%),
    linear-gradient(145deg,#091019 0%,#0d1620 48%,#0a1017 100%);
}
.auth-card{
  width:min(430px,100%);
  background:linear-gradient(180deg,#16212c 0%,#111a23 100%);
  border:1px solid #355068;border-radius:16px;
  padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.45);
}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}
.auth-brand .brand-icon{
  width:42px;height:42px;border:1px solid #2e5c79;border-radius:10px;
  display:grid;place-items:center;background:#0d1924;font-size:21px
}
.auth-brand b{display:block;font-size:16px;color:#eff6fb}
.auth-brand span{display:block;margin-top:3px;color:#7f95a8;font:9px "IBM Plex Mono",monospace;letter-spacing:1px;text-transform:uppercase}
.auth-kicker{font:8px "IBM Plex Mono",monospace;color:#72b9e8;letter-spacing:1.4px}
.auth-card h1{margin:6px 0 5px;font-size:25px;color:#f3f8fb}
.auth-sub{margin:0 0 22px;color:#8aa0b1;font-size:11px}
#loginForm{display:flex;flex-direction:column;gap:7px}
#loginForm label{font:9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.7px;color:#7890a4;margin-top:5px}
#loginForm input{
  width:100%;padding:12px 13px;border-radius:9px;
  border:1px solid #31495b;background:#0c151d;color:#edf5f9;outline:none;
}
#loginForm input:focus{border-color:#5a8fb3;box-shadow:0 0 0 3px rgba(98,183,255,.08)}
.password-wrap{position:relative}
.password-wrap input{padding-right:44px}
.password-toggle{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  border:0;background:none;color:#7290a5;cursor:pointer;padding:7px;
}
.auth-submit{
  margin-top:12px;width:100%;min-height:44px;border-radius:9px;
  border:1px solid #b7d6ee;background:#e8f3ff;color:#07131d;
  font-weight:800;cursor:pointer;
}
.auth-submit:disabled{opacity:.65;cursor:wait}
.auth-error{
  margin-top:6px;padding:10px 11px;border:1px solid #69333a;
  background:#220f14;color:#ff9aa4;border-radius:8px;font-size:10px;
}
.auth-footer{margin-top:22px;padding-top:14px;border-top:1px solid #263847;color:#627789;font:8px "IBM Plex Mono",monospace;text-align:center}
.current-user-email{color:#8ab4d1;font:9px "IBM Plex Mono",monospace;word-break:break-word;margin-bottom:8px}
.logout-btn{
  width:100%;padding:8px 10px;border:1px solid #31485a;border-radius:7px;
  background:#0f1821;color:#b9cbd8;font:9px "IBM Plex Mono",monospace;cursor:pointer;
}
.logout-btn:hover{border-color:#4a6980;color:#e7f1f7}
.side-note-legacy{margin-top:12px;padding-top:10px;border-top:1px solid #1d2a36;color:#677487;font-size:9px;line-height:1.5}
body.auth-locked{overflow:hidden}
body.auth-locked .app{filter:blur(1px)}

/* ===== Bitdefender parser/result view ===== */
.bitdefender-panel{border-color:#516f84;margin-bottom:13px}
.bd-section{padding:14px 15px 3px}
.bd-section+.bd-section{border-top:1px solid #263947;margin-top:4px}
.bd-title{font:10px "IBM Plex Mono",monospace;letter-spacing:.9px;color:#b9cddd;margin-bottom:9px;text-transform:uppercase}
.bd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.bd-grid .kv{background:#0f1820;border-color:#2b4052}
#genericEventPanels.hidden{display:none!important}
@media(max-width:1100px){.bd-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.bd-grid{grid-template-columns:1fr}}

/* Bitdefender Phishing -> AbuseIPDB uses resolved external domain IPv4 */

/* V2.8 — Hide external TI for Bitdefender only */
#investigationSection.bd-hide-ti #iocPrincipalPanel,
#investigationSection.bd-hide-ti #abusePanel,
#investigationSection.bd-hide-ti #greyPanel,
#investigationSection.bd-hide-ti #rdapPanel,
#investigationSection.bd-hide-ti #dnsPanel,
#investigationSection.bd-hide-ti #consolidatedPanel,
#investigationSection.bd-hide-ti #tiCommandPanel{
  display:none!important;
}

/* V2.9 — recurrence highlight only for Bitdefender */
.bd-history-highlight{
  margin:14px 15px 15px;padding:13px 14px;border:1px solid #30495a;
  border-radius:9px;background:#0d171f;
}
.bd-history-title{font:9px "IBM Plex Mono",monospace;letter-spacing:.8px;color:#7fa1b4}
.bd-history-count{display:flex;align-items:baseline;gap:8px;margin-top:5px}
.bd-history-count b{font-size:25px;color:#eaf4f9}
.bd-history-count span{font-size:10px;color:#9bb0bf}
.bd-history-dates{display:flex;gap:18px;margin-top:7px;color:#71899b;font:9px "IBM Plex Mono",monospace}
.bd-history-dates b{color:#bdced9;font-weight:500}

/* V3.0 — standalone AbuseIPDB action */
.ti-command-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.ti-command-actions .ti-main-btn{margin:0}
.ti-abuse-btn{white-space:nowrap}
@media(max-width:760px){
  .ti-command-actions{width:100%;justify-content:stretch}
  .ti-command-actions button{width:100%}
}

/* ===== V3.1 Dashboard SOC ===== */
.dashboard-hero{align-items:flex-end}
.dashboard-actions{display:flex;gap:8px}
.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.dashboard-period{display:flex;gap:6px;flex-wrap:wrap}
.period-btn{border:1px solid #31495a;background:#0e1720;color:#9db0be;border-radius:7px;padding:8px 11px;font:9px "IBM Plex Mono",monospace;cursor:pointer}
.period-btn.active{background:#dceaf4;color:#0c1821;border-color:#a9c7da}
.dashboard-custom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dashboard-custom label{font:8px "IBM Plex Mono",monospace;text-transform:uppercase;color:#7890a2}
.dashboard-custom input{margin-left:5px;border:1px solid #2f4657;background:#0d1720;color:#dce8ef;border-radius:7px;padding:8px}
.dashboard-range-label{color:#7d93a4;font:9px "IBM Plex Mono",monospace}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.metric-card{background:#111c25;border:1px solid #2d4354;border-radius:10px;padding:14px}
.metric-card span,.api-usage-card span,.ai-dashboard-row span{display:block;color:#71889a;font:8px "IBM Plex Mono",monospace;letter-spacing:.8px}
.metric-card b{display:block;color:#eff6fa;font-size:27px;margin-top:5px}
.metric-card small{color:#6d8292;font-size:9px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.dashboard-panel{overflow:hidden}
.bar-chart{min-height:170px;display:flex;align-items:flex-end;gap:8px;padding:16px 10px 12px}
.bar-row{flex:1;min-width:24px;height:145px;display:flex;flex-direction:column;align-items:center;gap:6px}
.bar-row>span{font:8px "IBM Plex Mono",monospace;color:#71889a}
.bar-row>b{font-size:9px;color:#b8cad6}
.bar-track{height:105px;width:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #263946}
.bar-track i{display:block;width:70%;min-width:9px;background:#5f8eac;border-radius:4px 4px 0 0}
.rank-list{padding:8px 12px 14px}
.rank-row{margin:8px 0}
.rank-main{display:flex;justify-content:space-between;gap:10px;color:#c1d0db;font-size:10px}
.rank-main span{color:#7ca4bb;font-family:"IBM Plex Mono",monospace}
.rank-track{height:5px;background:#18252f;border-radius:10px;overflow:hidden;margin-top:5px}
.rank-track i{display:block;height:100%;background:#668da5;border-radius:10px}
.dashboard-empty{padding:22px 4px;color:#687f90;font-size:10px}
.api-usage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:0 14px 14px}
.api-usage-card{border:1px solid #2a4051;border-radius:8px;padding:12px;background:#0e1820}
.api-usage-card b{display:block;color:#edf5f9;font-size:23px;margin:6px 0}
.api-usage-card small{color:#657c8d;font-size:8px}
.dashboard-note{border-top:1px solid #243644;padding:11px 14px;color:#687f90;font-size:9px}
.ai-dashboard-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 16px}
.ai-dashboard-row>div{border:1px solid #2a4051;border-radius:8px;padding:12px}
.ai-dashboard-row b{display:block;color:#edf5f9;font-size:22px;margin-top:5px}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.api-usage-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.metric-grid{grid-template-columns:1fr}.api-usage-grid{grid-template-columns:1fr}.ai-dashboard-row{grid-template-columns:1fr}.dashboard-actions{width:100%}.dashboard-actions button{flex:1}.bar-chart{gap:4px}}

/* V3.2 — Dashboard top placement + return button */
.dashboard-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:850px){.dashboard-actions button{flex:1;min-width:150px}}

/* V3.3 — Excel report button only */
#dashboardReportBtn{white-space:nowrap}

/* =========================================================
   V3.6 — Visual Facelift
   CSS ONLY: no HTML/JS behavior changes
   ========================================================= */

:root{
  --ui-bg:#0b1219;
  --ui-surface:#101a23;
  --ui-surface-2:#13202b;
  --ui-surface-3:#172633;
  --ui-border:#263b4b;
  --ui-border-soft:#1d3040;
  --ui-text:#edf5f8;
  --ui-muted:#7890a1;
  --ui-accent:#69b8e5;
  --ui-accent-soft:rgba(105,184,229,.12);
  --ui-good:#55c68b;
  --ui-warn:#e7ae55;
  --ui-danger:#ee6670;
  --ui-radius:12px;
}

/* Global feel */
body{
  background:
    radial-gradient(circle at 88% 8%, rgba(56,112,146,.09), transparent 26%),
    radial-gradient(circle at 18% 2%, rgba(64,95,122,.06), transparent 24%),
    var(--ui-bg);
  color:var(--ui-text);
}
.main{
  background:linear-gradient(180deg,rgba(16,26,35,.72),rgba(9,16,22,.18));
}
.topbar{
  backdrop-filter:blur(12px);
}
.top-chip,.badge{
  border-color:var(--ui-border);
  background:rgba(14,23,31,.76);
  border-radius:999px;
}

/* Sidebar */
.sidebar{
  background:linear-gradient(180deg,#091118 0%,#081018 100%);
  border-right:1px solid var(--ui-border-soft);
}
.brand{
  padding-bottom:18px;
}
.brand-icon{
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.nav{
  border-color:transparent;
  border-radius:10px;
  transition:transform .16s ease,background .16s ease,border-color .16s ease;
}
.nav:hover{
  background:rgba(104,184,229,.07);
  border-color:rgba(104,184,229,.16);
  transform:translateX(2px);
}
.nav.active{
  background:linear-gradient(90deg,rgba(105,184,229,.14),rgba(105,184,229,.05));
  border-color:rgba(105,184,229,.30);
  box-shadow:inset 3px 0 0 var(--ui-accent);
}

/* Headings */
.hero h2,
.topbar h1,
.panel .head h3{
  letter-spacing:-.02em;
}
.hero p,
.section-help,
.panel small{
  color:var(--ui-muted);
}

/* Panels */
.panel,
.metric-card,
.dashboard-panel,
.bitdefender-panel{
  background:linear-gradient(180deg,rgba(18,30,40,.96),rgba(13,23,31,.98));
  border-color:var(--ui-border);
  border-radius:var(--ui-radius);
  box-shadow:0 10px 28px rgba(0,0,0,.10);
}
.panel:hover{
  border-color:#355064;
}
.panel .head{
  border-bottom-color:var(--ui-border-soft);
}

/* Inputs */
textarea,
input,
select{
  border-color:#2b4354 !important;
  background:#0c161f !important;
  color:var(--ui-text) !important;
  border-radius:10px !important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
textarea:focus,
input:focus,
select:focus{
  outline:none;
  border-color:rgba(105,184,229,.65) !important;
  box-shadow:0 0 0 3px rgba(105,184,229,.09);
}

/* Buttons */
button.primary{
  border-radius:10px;
  background:linear-gradient(180deg,#dcecf6,#c8dfeb);
  color:#0b1620;
  box-shadow:0 6px 18px rgba(104,184,229,.10);
}
button.primary:hover{
  transform:translateY(-1px);
  box-shadow:0 9px 24px rgba(104,184,229,.16);
}
button.secondary,
button.link{
  border-radius:10px;
}
button.secondary:hover,
button.link:hover{
  border-color:#416177;
}

/* Chips / statuses */
.ti-status,
.ioc-state,
.history-badge,
.top-chip,
.badge{
  border-radius:999px;
}
.ti-status{
  letter-spacing:.05em;
}

/* Key/value cards */
.kv,
.metric-card,
.api-usage-card,
.ai-dashboard-row>div,
.source-summary,
.hstat{
  border-color:var(--ui-border-soft);
  background:linear-gradient(180deg,rgba(16,27,36,.92),rgba(13,22,30,.94));
  border-radius:10px;
}
.kv span,
.metric-card span,
.api-usage-card span,
.ai-dashboard-row span{
  color:#71899b;
}
.kv b{
  color:#e9f3f7;
}

/* More visual hierarchy for important values */
.ti-danger,
.risk-high{
  color:var(--ui-danger);
}
.ti-warning,
.risk-medium{
  color:var(--ui-warn);
}
.ti-good,
.risk-low{
  color:var(--ui-good);
}

/* Result / command cards */
.ti-command,
.consolidated-panel,
.ioc-principal{
  background:linear-gradient(135deg,rgba(18,32,43,.98),rgba(13,23,31,.98));
}
.ti-command{
  border-color:#31556a;
}

/* Dashboard */
.dashboard-toolbar{
  background:rgba(16,27,36,.92);
}
.period-btn{
  border-radius:999px;
}
.period-btn.active{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
}
.metric-card{
  position:relative;
  overflow:hidden;
}
.metric-card::after{
  content:"";
  position:absolute;
  inset:auto -20px -30px auto;
  width:90px;
  height:90px;
  border-radius:50%;
  background:rgba(105,184,229,.045);
}
.api-usage-card b,
.ai-dashboard-row b{
  color:#eff7fa;
}
.bar-track{
  background:#15232d;
}
.bar-track i{
  background:linear-gradient(180deg,#72bee8,#4a88aa);
}
.rank-track i{
  background:linear-gradient(90deg,#5f9fbe,#72bee8);
}

/* Tables */
.tablewrap{
  border-color:var(--ui-border-soft);
}
table thead th{
  background:#0d171f;
  color:#7e98aa;
}
table tbody tr{
  transition:background .12s ease;
}
table tbody tr:hover{
  background:rgba(105,184,229,.045);
}

/* Bitdefender */
.bd-section+.bd-section{
  border-top-color:var(--ui-border-soft);
}
.bd-title{
  color:#8eafc1;
}
.bd-history-highlight{
  background:linear-gradient(180deg,#0f1b24,#0c151d);
  border-color:#315064;
}

/* AI */
.ai-panel{
  background:linear-gradient(180deg,rgba(17,29,39,.97),rgba(12,21,29,.98));
}
.ai-panel[open]{
  border-color:#35586d;
}
.ai-summary{
  border-radius:12px;
}

/* Responsive cleanup */
@media(max-width:900px){
  .main{padding-left:0}
  .dashboard-hero{align-items:flex-start}
}

/* V3.7 — SOC Toolkit logo in sidebar */
.soc-logo-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0 0 12px;
}
.soc-logo{
  width:72px;
  height:72px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 7px 14px rgba(38,180,235,.22));
  transition:transform .22s ease, filter .22s ease;
}
.soc-logo:hover{
  transform:translateY(-2px) scale(1.035);
  filter:drop-shadow(0 10px 20px rgba(38,180,235,.32));
}
.brand{
  text-align:center;
}
@media(max-width:900px){
  .soc-logo-wrap{justify-content:flex-start;margin-bottom:8px}
  .soc-logo{width:52px;height:52px}
}

/* =========================================================
   V3.8 — Sidebar brand layout correction
   Fixes V3.7 logo competing horizontally with existing brand.
   ========================================================= */
.sidebar .brand{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  padding:16px 12px 18px !important;
  text-align:center !important;
}

.sidebar .brand .soc-logo-wrap{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  margin:0 0 4px !important;
  flex:none !important;
}

.sidebar .brand .soc-logo{
  width:58px !important;
  height:58px !important;
  object-fit:contain !important;
  display:block !important;
  flex:none !important;
}

/* Existing brand content occupies its own line below the emblem */
.sidebar .brand > :not(.soc-logo-wrap){
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Prevent internal brand icon/text from fighting for horizontal space */
.sidebar .brand .brand-icon{
  display:none !important;
}

.sidebar .brand .brand-copy,
.sidebar .brand .brand-text{
  width:100% !important;
}

.sidebar .brand h1,
.sidebar .brand h2,
.sidebar .brand .brand-name{
  margin:0 !important;
  text-align:center !important;
  line-height:1.1 !important;
}

.sidebar .brand p,
.sidebar .brand small,
.sidebar .brand .subtitle{
  margin:0 !important;
  text-align:center !important;
}


/* =========================================================
   V3.9 — Larger sidebar logo
   Visual adjustment only.
   ========================================================= */
.sidebar .brand{
  padding:18px 12px 20px !important;
}

.sidebar .brand .soc-logo-wrap{
  margin:0 0 7px !important;
}

.sidebar .brand .soc-logo{
  width:78px !important;
  height:78px !important;
}


/* =========================================================
   V3.10 — Native SVG Icon System
   No CDN / no external icon library
   ========================================================= */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}

.icon{
  width:1.05em;
  height:1.05em;
  display:inline-block;
  vertical-align:-.18em;
  margin-right:.38em;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}

.nav .icon{
  width:18px;
  height:18px;
  margin-right:9px;
  vertical-align:-.22em;
  opacity:.92;
}

.head h3 .icon,
.bitdefender-panel h3 .icon,
.ai-panel h3 .icon,
.ti-panel h3 .icon,
.dashboard-panel h3 .icon{
  color:var(--ui-accent,#69b8e5);
}

button .icon{
  width:17px;
  height:17px;
  margin-right:7px;
}

.brand-icon .icon,
.auth-brand .brand-icon .icon{
  width:100%;
  height:100%;
  margin:0;
}

.detail-section-title .icon,
.bd-title .icon{
  color:#79bee4;
}

/* Keep icon spacing clean in compact headings */
h3 .icon:last-child{margin-right:.34em}


/* =========================================================
   CAPTURED WAZUH EVENTS — additive UI
========================================================= */
.nav-count{
  margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(242,92,105,.14);border:1px solid rgba(242,92,105,.38);
  color:#ff9da7;font:10px "IBM Plex Mono",monospace;font-weight:700;
}
.captured-inbox-card{
  display:flex;align-items:center;gap:14px;margin:-2px 0 14px;padding:14px 16px;
  border:1px solid #2d465c;border-radius:12px;background:linear-gradient(90deg,#0f1a24,#101821);
  box-shadow:0 8px 26px rgba(0,0,0,.13);
}
.captured-inbox-icon{
  width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:10px;
  border:1px solid rgba(73,184,255,.28);background:rgba(73,184,255,.08);color:var(--cyan);
}
.captured-inbox-copy{min-width:0;flex:1}.captured-inbox-copy>span{display:block;font:8px "IBM Plex Mono",monospace;color:#6f91ae;letter-spacing:1.2px}.captured-inbox-copy>strong{display:block;margin-top:3px;font-size:13px}.captured-inbox-copy>p{margin:3px 0 0;color:#8797a9;font-size:10px}.captured-inbox-copy b{color:#e7edf5}
.captured-hero{align-items:stretch}.captured-hero-count{min-width:125px;padding:14px 18px;border:1px solid #2b3d50;border-radius:10px;background:#0c141d;text-align:center;display:flex;flex-direction:column;justify-content:center}.captured-hero-count span{font:9px "IBM Plex Mono",monospace;color:#7f8da0;letter-spacing:1.2px}.captured-hero-count strong{font-size:31px;line-height:1;margin:7px 0 4px;color:var(--cyan)}.captured-hero-count small{font-size:10px;color:#76879b}
.captured-summary{padding:0;overflow:hidden}.captured-summary>.head{padding:18px 20px}
.captured-row{display:flex;gap:18px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line);transition:.15s;background:#0f141c}.captured-row:hover{background:#121923}.captured-row:last-child{border-bottom:0}.captured-main{min-width:0;flex:1}.captured-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.captured-module,.captured-threat{display:inline-flex;align-items:center;padding:5px 9px;border-radius:7px;font:9px "IBM Plex Mono",monospace;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.module-waf{background:rgba(73,184,255,.12);border:1px solid rgba(73,184,255,.28);color:#79c9ff}.module-ips{background:rgba(239,184,75,.12);border:1px solid rgba(239,184,75,.28);color:#f2c76a}.module-mitre{background:rgba(173,124,255,.12);border:1px solid rgba(173,124,255,.28);color:#c6a4ff}.captured-risk-high{background:rgba(242,92,105,.12);border:1px solid rgba(242,92,105,.3);color:#ff9ba4}.captured-risk-medium{background:rgba(239,184,75,.12);border:1px solid rgba(239,184,75,.3);color:#f2c76a}.captured-risk-info{background:#111923;border:1px solid #2a394a;color:#a8b5c6}.captured-time{font:10px "IBM Plex Mono",monospace;color:#74859a;margin-left:auto}.captured-signature{font-size:15px;font-weight:700;color:#e8eef6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.captured-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;color:#8d9bad;font:10px "IBM Plex Mono",monospace}.captured-meta b{color:#b9c5d2;font-weight:600}.captured-sub{margin-top:7px;color:#6e8094;font:10px "IBM Plex Mono",monospace}.captured-actions{flex:0 0 auto;display:flex;gap:8px;align-items:center}.captured-analyze-btn,.captured-delete-btn{white-space:nowrap}.captured-delete-btn{border-color:rgba(242,92,105,.35);color:#ff9da7;background:rgba(242,92,105,.06)}.captured-delete-btn:hover{border-color:rgba(242,92,105,.65);background:rgba(242,92,105,.12)}.captured-empty{padding:55px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:#8d9bad}.captured-empty-icon{width:48px;height:48px;border-radius:12px;border:1px solid #293b4e;background:#101922;display:grid;place-items:center;color:#6ebeff;margin-bottom:4px}.captured-empty strong{font-size:14px;color:#dfe7ef}.captured-empty span{max-width:520px;font-size:12px;line-height:1.6}.captured-rule-error{padding:30px;text-align:center;display:flex;flex-direction:column;gap:7px;color:#9aaabd}.captured-rule-error strong{color:#ff9ba4;font-size:13px}.captured-rule-error small{color:#74859a;font-size:10px}.captured-context{color:#67c3ff}
@media(max-width:850px){.captured-row{align-items:flex-start;flex-direction:column}.captured-actions{width:100%}.captured-analyze-btn,.captured-delete-btn{width:100%}.captured-inbox-card{align-items:flex-start;flex-wrap:wrap}.captured-inbox-card .secondary{width:100%}}

/* V1.9.1 — Events Captured is a top-level view like History.
   Keep the queue anchored under the topbar instead of letting hidden
   Analyzer content push it down the page. */
/* O card global do plantonista ocupa a faixa logo abaixo do topbar.
   No Eventos Capturados, o painel é deslocado para não ficar por cima dele. */
body.role-noc #capturedEvents{
  top:188px!important;
}

#capturedEvents{
  position:absolute!important;
  top:92px!important;
  left:30px!important;
  right:30px!important;
  bottom:24px!important;
  margin:0!important;
  padding:14px 14px 18px!important;
  z-index:5!important;
  overflow:auto!important;
  border:1px solid #263747!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,rgba(10,18,26,.97),rgba(8,15,22,.97))!important;
  box-shadow:0 14px 40px rgba(0,0,0,.20)!important;
}
#capturedEvents .captured-hero{
  margin:0 0 12px!important;
}
#capturedEvents .captured-summary{
  margin-top:0!important;
}
#capturedEvents .history-return-row{
  margin:0!important;
}

#capturedEvents .captured-hero,
#capturedEvents .captured-summary{
  width:100%!important;
}
#capturedEvents .captured-summary{
  margin-bottom:12px!important;
}
#capturedEvents .history-return-row{
  padding:0!important;
  margin-top:0!important;
}
@media(max-width:700px){
  #capturedEvents{
    top:78px!important;
    left:16px!important;
    right:16px!important;
    bottom:16px!important;
    padding:10px!important;
  }
}

/* Dedicated NOC analysis */
.noc-analysis-card{display:flex;flex-direction:column;gap:18px}
.noc-analysis-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#0f141c}
.noc-analysis-head div{display:flex;flex-direction:column;gap:5px}
.noc-analysis-head strong{font-size:13px;color:#e8eef6}
.noc-analysis-head span{font:10px "IBM Plex Mono",monospace;color:#8091a5;word-break:break-all}
.noc-analysis-status{padding:6px 9px;border-radius:7px;border:1px solid rgba(239,184,75,.3);background:rgba(239,184,75,.08);color:#f2c76a!important;font:9px "IBM Plex Mono",monospace!important;font-weight:700!important;letter-spacing:.4px}
.noc-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.noc-field{display:flex;flex-direction:column;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#0f141c;min-width:0}
.noc-field strong{font:9px "IBM Plex Mono",monospace;color:#74859a;text-transform:uppercase;letter-spacing:.4px}
.noc-field span{font-size:13px;color:#dfe7ef;word-break:break-word}
.noc-analysis-block{padding:18px;border:1px solid var(--line);border-radius:12px;background:#0f141c}
.noc-block-title{font-size:13px;font-weight:700;color:#e8eef6;margin-bottom:8px}
.noc-placeholder{font-size:12px;color:#8d9bad;line-height:1.6}

.noc-analysis-card{display:flex;flex-direction:column;gap:18px}
.noc-analysis-grid,.noc-intel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.noc-analysis-grid>div,.noc-intel-grid>div{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid rgba(128,128,128,.22);border-radius:10px}
.noc-analysis-grid strong,.noc-intel-grid strong{font-size:.78rem;opacity:.7;text-transform:uppercase}
.noc-analysis-grid span,.noc-intel-grid span{font-size:1rem;word-break:break-word}
.noc-analysis-block{padding:18px;border:1px solid rgba(128,128,128,.22);border-radius:12px}
.noc-analysis-block h3{margin-top:0}
.noc-risk-result{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;border:1px solid rgba(128,128,128,.22);border-radius:12px}
.noc-risk-label{font-size:1.35rem;font-weight:700}
.noc-risk-category{opacity:.75;margin-top:4px}
.noc-action-badge{font-weight:700;padding:10px 14px;border-radius:999px;border:1px solid currentColor}
.noc-action-text{width:100%;min-height:190px;resize:vertical;padding:12px;border-radius:10px;border:1px solid rgba(128,128,128,.22);background:transparent;color:inherit;font:inherit}
.noc-analysis-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}

/* NOC — resultado de risco em destaque: leitura rápida para o plantão */
.noc-risk-focus{width:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;align-items:stretch;padding:22px;border:2px solid var(--line);border-radius:12px;background:#0d161f}
.noc-risk-main{display:flex;flex-direction:column;gap:6px;justify-content:center;min-width:0}
.noc-risk-kicker{font:10px "IBM Plex Mono",monospace;letter-spacing:1px;color:#7f93a7;text-transform:uppercase}
.noc-risk-focus .noc-risk-label{display:block;font:800 30px "IBM Plex Mono",monospace;line-height:1.1;margin:2px 0 0}
.noc-risk-focus .noc-risk-category{font-size:12px;color:#9eb0c1}
.noc-risk-main p{margin:4px 0 0;color:#b7c4d1;font-size:12px;line-height:1.55}
.noc-risk-focus.risk-high{border-color:rgba(242,92,105,.6);background:rgba(242,92,105,.07)}
.noc-risk-focus.risk-medium,.noc-risk-focus.risk-low{border-color:rgba(239,184,75,.6);background:rgba(239,184,75,.06)}
.noc-risk-focus.risk-none{border-color:rgba(73,209,125,.5);background:rgba(73,209,125,.05)}
.noc-risk-focus.risk-high .noc-risk-label{color:var(--red)}
.noc-risk-focus.risk-medium .noc-risk-label,.noc-risk-focus.risk-low .noc-risk-label{color:var(--amber)}
.noc-risk-focus.risk-none .noc-risk-label{color:var(--green)}
.noc-action-focus{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:8px;padding:20px 16px;border-radius:10px;border:2px solid currentColor;background:#0a1118}
.noc-action-focus span{font:10px "IBM Plex Mono",monospace;letter-spacing:1px;color:#8195a8}
.noc-action-focus strong{font:800 22px "IBM Plex Mono",monospace;line-height:1.2}
.noc-action-focus.action-escalate{color:var(--red);background:rgba(242,92,105,.08)}
.noc-action-focus.action-no{color:var(--green);background:rgba(73,209,125,.07)}
@media(max-width:800px){.noc-risk-focus{grid-template-columns:1fr}.noc-action-focus{min-height:110px}}



/* Acionamentos — fluxo NOC/SOC */
.noc-escalation-box{margin-top:16px;padding:18px;border:1px solid rgba(242,92,105,.38);border-radius:12px;background:rgba(242,92,105,.055)}
.noc-escalation-box h3{margin:4px 0 3px;font-size:15px}.noc-escalation-box p{margin:0;color:#9eb0c1;font-size:10px}
.noc-tech-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:13px}.noc-tech-select-row select{min-height:42px;padding:9px 12px;border:1px solid #33495c;border-radius:8px;background:#0b1017;color:#e5edf5;font:11px Inter,Segoe UI,Arial,sans-serif}.noc-tech-select-row select:focus{outline:1px solid #62b7ff}
.acionamentos-card{padding:18px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:12px;background:#0d161f;margin:12px 0}.acionamentos-card.risk-high{border-left-color:var(--red)}.acionamentos-card.risk-medium{border-left-color:var(--amber)}.acionamentos-card.risk-low{border-left-color:#efb84b}
.acionamento-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.acionamento-card-head h3{margin:7px 0 0;font-size:20px}.acionamento-status{min-width:150px;text-align:center;padding:12px 16px;border:1px solid #36516a;border-radius:10px;color:#dce7f1;background:rgba(54,81,106,.18);font:700 14px "IBM Plex Mono",monospace;letter-spacing:.8px;box-shadow:0 0 0 1px rgba(255,255,255,.02) inset}.acionamento-status.status-pending{border-color:#efb84b;color:#ffd76a;background:rgba(239,184,75,.12)}.acionamento-status.status-in_progress{border-color:#62b7ff;color:#9ed5ff;background:rgba(98,183,255,.12)}.acionamento-status.status-done{border-color:#58d68d;color:#8ef0b2;background:rgba(88,214,141,.12)}.acionamento-status.status-closed{border-color:#58d68d;color:#8ef0b2;background:rgba(88,214,141,.12)}.acionamento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}.acionamento-grid>div{padding:11px;border:1px solid #223241;border-radius:8px;background:#0a1016;min-width:0}.acionamento-grid span{display:block;font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.7px;margin-bottom:5px}.acionamento-grid b{display:block;font-size:11px;color:#dce7f1;word-break:break-word}.acionamento-card-foot{display:flex;justify-content:space-between;gap:12px;margin-top:13px;color:#75899b;font-size:9px}.acionamento-card-foot span:first-child{font-family:"IBM Plex Mono",monospace}
@media(max-width:800px){.noc-tech-select-row{grid-template-columns:1fr}.acionamento-grid{grid-template-columns:1fr 1fr}.acionamento-card-foot{display:block}.acionamento-card-foot span{display:block;margin-top:4px}}
@media(max-width:520px){.acionamento-grid{grid-template-columns:1fr}}

/* Detalhes/interação do Card de Acionamento */
.acionamento-card{cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.acionamento-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.22)}
.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.68);backdrop-filter:blur(4px)}.modal-overlay.hidden{display:none}.modal-card{width:min(860px,94vw);max-height:88vh;overflow:auto;background:#0d161f;border:1px solid #304455;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.5);padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.modal-head span{font:9px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:1px}.modal-head h2{margin:5px 0 0;font-size:22px}.acionamento-modal-status{display:inline-flex;align-items:center;justify-content:center;min-width:190px;padding:13px 18px;border-radius:10px;font:800 15px "IBM Plex Mono",monospace;letter-spacing:1px;margin-bottom:18px;border:2px solid}.acionamento-modal-status.status-pending{color:#ffd76a;border-color:#efb84b;background:rgba(239,184,75,.12)}.acionamento-modal-status.status-in_progress{color:#9ed5ff;border-color:#62b7ff;background:rgba(98,183,255,.12)}.acionamento-modal-status.status-done,.acionamento-modal-status.status-closed{color:#8ef0b2;border-color:#58d68d;background:rgba(88,214,141,.12)}.acionamento-modal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.acionamento-modal-grid>div,.acionamento-modal-section{padding:13px;border:1px solid #223241;border-radius:9px;background:#0a1016}.acionamento-modal-grid span,.acionamento-modal-section>span{display:block;font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.8px;margin-bottom:6px}.acionamento-modal-grid b{font-size:12px;color:#dce7f1;word-break:break-word}.acionamento-modal-section{margin-top:10px}.acionamento-modal-section p{margin:0;font-size:11px;color:#c2cfdb;line-height:1.5}.acionamento-modal-actions{display:flex;justify-content:flex-end;margin-top:16px}.acionamento-modal-actions .primary{min-width:210px;min-height:44px;font-weight:800}
@media(max-width:650px){.acionamento-modal-grid{grid-template-columns:1fr}.modal-overlay{padding:10px}.modal-card{padding:15px}}

.acionamento-history-card{padding:18px;border:1px solid #26394a;border-radius:12px;background:#0d161f;margin-bottom:12px}.acionamento-history-card.risk-high{border-color:#7b3b3b}.acionamento-history-card.risk-medium{border-color:#7b6335}.acionamento-history-card.risk-low{border-color:#5b6335}.acionamento-history-card.risk-none{border-color:#314452}.acionamento-history-action{margin-top:12px;padding:13px;border:1px solid #223241;border-radius:9px;background:#0a1016}.acionamento-history-action span{display:block;font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.8px;margin-bottom:6px}.acionamento-history-action p{margin:0;font-size:12px;color:#dce7f1;line-height:1.55;white-space:pre-wrap;word-break:break-word}

/* VPN anomaly correlation — additive only */
.module-vpn{background:rgba(98,183,255,.12);border:1px solid rgba(98,183,255,.28);color:#9ed5ff}
.vpn-anomalies-panel{margin-bottom:16px}
.vpn-anomaly-card{padding:18px 20px;border-bottom:1px solid var(--line);background:#0f141c}
.vpn-anomaly-card:last-child{border-bottom:0}
.vpn-anomaly-card.risk-high{border-left:4px solid var(--red)}
.vpn-anomaly-card.risk-medium{border-left:4px solid var(--amber)}
.vpn-anomaly-card.risk-low{border-left:4px solid #efb84b}
.vpn-anomaly-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.vpn-anomaly-head h3{margin:8px 0 0;font-size:17px}
.vpn-anomaly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}
.vpn-anomaly-grid>div{padding:10px;border:1px solid #223241;border-radius:8px;background:#0a1016}
.vpn-anomaly-grid span{display:block;font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.7px;margin-bottom:5px}
.vpn-anomaly-grid b{display:block;font-size:11px;color:#dce7f1;word-break:break-word}
.vpn-anomaly-reason{margin-top:11px;color:#aebdca;font-size:11px;line-height:1.5}
.vpn-anomaly-card .captured-actions{justify-content:flex-end;margin-top:13px}
@media(max-width:800px){.vpn-anomaly-grid{grid-template-columns:1fr 1fr}.vpn-anomaly-head{flex-direction:column}}
@media(max-width:520px){.vpn-anomaly-grid{grid-template-columns:1fr}}


/* =========================================================
   PLANTONISTA / ESCALA DE SOBREAVISO — módulo isolado
   ========================================================= */
.noc-plantonista-card{display:flex;align-items:center;gap:16px;margin:0 0 14px;padding:14px 19px;border:1px solid #315b46;border-radius:12px;background:linear-gradient(110deg,#102018 0%,#121d20 58%,#101820 100%);box-shadow:0 10px 28px rgba(0,0,0,.24),inset 0 0 0 1px rgba(85,214,138,.04);position:sticky;top:0;z-index:120}
.role-soc .noc-plantonista-card{display:none!important}
.role-noc .noc-plantonista-card{display:flex}
.noc-plantonista-icon{width:42px;height:42px;min-width:42px;border-radius:11px;display:grid;place-items:center;background:#10271a;border:1px solid #2e6846;color:#55d68a;font-size:20px;font-weight:800}
.noc-plantonista-main{min-width:0;flex:1}.noc-plantonista-main>span{display:block;color:#6fb88a;font:9px "IBM Plex Mono",monospace;letter-spacing:1.2px}.noc-plantonista-main>strong{display:block;margin-top:4px;color:#effaf3;font-size:19px;line-height:1.2}.noc-plantonista-main>small{display:block;margin-top:5px;color:#9eb5a7;font-size:10px}.noc-plantonista-date{color:#8eaa9a;font:9px "IBM Plex Mono",monospace;text-align:right;white-space:nowrap;text-transform:uppercase}
.noc-plantonista-card.plantao-warning{border-color:#604c28;background:linear-gradient(110deg,#211b10,#171a1d)}.noc-plantonista-card.plantao-warning .noc-plantonista-icon{color:#ffc14d;border-color:#69542a;background:#29200d}.noc-plantonista-card.plantao-warning .noc-plantonista-main>span{color:#c69c4c}
.plantao-import-body{padding:16px}.plantao-import-info{display:grid;grid-template-columns:2fr 1fr 1fr;gap:9px}.plantao-import-info>div{border:1px solid #2b4052;border-radius:8px;background:#0f1820;padding:11px}.plantao-import-info span{display:block;color:#6f91aa;font:8px "IBM Plex Mono",monospace;letter-spacing:.8px;text-transform:uppercase}.plantao-import-info b{display:block;margin-top:5px;color:#e7f0f6;font-size:10px;word-break:break-word}.plantao-import-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin-top:12px}.plantao-file-label{display:inline-flex;align-items:center;justify-content:center}.plantao-file-label:hover{filter:brightness(1.05);cursor:pointer}.plantao-import-status{margin-top:11px;padding:10px 12px;border:1px solid #293b4d;border-radius:8px;background:#0b1219;color:#8fa5b8;font:9px "IBM Plex Mono",monospace}.plantao-import-status.success{color:#70d89a;border-color:#2b5e43;background:#0d1b14}.plantao-import-status.error{color:#f28790;border-color:#5a2930;background:#1a0d10}.plantao-import-status.loading{color:#7fc9ff;border-color:#2b536d;background:#0b1721}.plantao-preview-list{padding:0 15px 15px}.plantao-preview-row{display:grid;grid-template-columns:120px 1.4fr 1.4fr 1fr;gap:10px;padding:10px 0;border-top:1px solid #1c2a37;align-items:center}.plantao-preview-row:first-child{border-top:0}.plantao-preview-row strong{font-size:10px;color:#e2ebf2}.plantao-preview-row b{font-size:10px;color:#e2ebf2}.plantao-preview-row span{font-size:9px;color:#91a4b5}
@media(max-width:800px){.noc-plantonista-card{align-items:flex-start}.noc-plantonista-date{display:none}.plantao-import-info{grid-template-columns:1fr}.plantao-import-actions{justify-content:stretch;flex-direction:column}.plantao-file-label,.plantao-import-actions button{width:100%}.plantao-preview-row{grid-template-columns:1fr 1fr}}

@media(max-width:700px){
  body.role-noc #capturedEvents{
    top:158px!important;
  }
}

/* =========================================================
   HYPERCARE — fila de exceções humanas do NOC
   ========================================================= */
.role-noc .hypercare-tab-panel{display:none!important}
.noc-hypercare-box{margin-top:16px;border:1px solid #36526a;background:rgba(20,32,44,.72)}
.noc-hypercare-help{margin:0 0 12px;color:#9eb1c0;font-size:11px;line-height:1.5}
.noc-hypercare-observation{width:100%;min-height:100px;box-sizing:border-box;resize:vertical;padding:12px;border-radius:10px;border:1px solid #31495d;background:#0a1016;color:#dce7f1;font:11px inherit;line-height:1.5}
.noc-hypercare-actions{display:flex;justify-content:flex-end;margin-top:12px}
.noc-hypercare-actions .secondary{min-height:42px;font-weight:800}
.hypercare-tab-panel{margin-top:16px;border:1px solid #30495e;background:rgba(18,29,39,.72)}
.hypercare-tab-note{padding:0 16px 16px;color:#8298aa;font-size:10px}
.hypercare-card{padding:18px 20px;border:1px solid #30485a;border-left:4px solid #62b7ff;border-radius:12px;background:#0d161f;margin-bottom:12px}
.hypercare-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hypercare-head h3{margin:8px 0 0;font-size:17px;color:#e5eef5}
.hypercare-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}
.hypercare-grid>div{padding:10px;border:1px solid #223241;border-radius:8px;background:#0a1016;min-width:0}
.hypercare-grid span,.hypercare-observation>span{display:block;font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.8px;margin-bottom:5px}
.hypercare-grid b{display:block;font-size:11px;color:#dce7f1;word-break:break-word}
.hypercare-observation{margin-top:11px;padding:13px;border:1px solid #263b4b;border-radius:9px;background:#0a1016}
.hypercare-observation p{margin:0;color:#c5d2dc;font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.hypercare-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
.hypercare-actions button{min-height:40px;font-weight:800}
@media(max-width:800px){.hypercare-grid{grid-template-columns:1fr 1fr}.hypercare-head{flex-direction:column}}
@media(max-width:520px){.hypercare-grid{grid-template-columns:1fr}.hypercare-actions{flex-direction:column}.hypercare-actions button{width:100%}}

/* Hypercare tabs - only visible to SOC inside Eventos Capturados */
.hypercare-tabs{display:flex;gap:8px;margin:0 0 16px;padding:6px;border:1px solid var(--border,#d9dee7);border-radius:12px;background:var(--panel,#fff)}
.hypercare-tab{border:0;background:transparent;border-radius:9px;padding:10px 16px;font-weight:700;cursor:pointer;color:var(--muted,#667085)}
.hypercare-tab.active{background:var(--surface,#eef2f7);color:var(--text,#111827)}
.role-noc .role-soc-only{display:none!important}
@media (max-width:700px){.hypercare-tabs{overflow:auto}.hypercare-tab{white-space:nowrap}}

/* Hypercare v4.1 — aba compacta + visão detalhada para SOC */
.hypercare-tabs{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:0 0 14px;padding:0;border:0;background:transparent;box-shadow:none}
.hypercare-tabs .hypercare-tab{border:1px solid transparent;background:transparent;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:700;line-height:1;color:#718196}
.hypercare-tabs .hypercare-tab:first-child{margin-right:0;padding-left:0;color:#7f8da0}
.hypercare-tabs .hypercare-tab:first-child.active{background:transparent;color:#9aaabd}
.hypercare-tabs .hypercare-tab:nth-child(2),.hypercare-tabs .hypercare-tab:nth-child(3){width:38px;height:30px;min-width:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:3px;border-color:#273849;background:#0d151e;color:#91a5b8;font-size:13px;box-sizing:border-box}
.hypercare-tabs .hypercare-tab:nth-child(2).active,.hypercare-tabs .hypercare-tab:nth-child(3).active{border-color:#35536b;background:#112131;color:#bfe2ff}
.hypercare-tabs .hypercare-tab:nth-child(2) .nav-count,.hypercare-tabs .hypercare-tab:nth-child(3) .nav-count{font-size:8px;min-width:14px;height:14px;display:inline-grid;place-items:center;padding:0 3px;border-radius:8px;background:#24394b;color:#a9c8df}
.hypercare-analysis{margin-top:12px;padding:13px;border:1px solid #263b4b;border-radius:9px;background:#0a1016}
.hypercare-analysis-title{font:8px "IBM Plex Mono",monospace;color:#71879b;letter-spacing:.9px;margin-bottom:9px}
.hypercare-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.hypercare-analysis-grid>div{padding:9px;border:1px solid #1d2c3a;border-radius:7px;background:#0d141c;min-width:0}
.hypercare-analysis-grid>div.wide{grid-column:span 2}
.hypercare-analysis-grid span{display:block;font:7px "IBM Plex Mono",monospace;color:#65798c;letter-spacing:.7px;margin-bottom:4px}
.hypercare-analysis-grid b{display:block;color:#cddae6;font-size:10px;line-height:1.4;word-break:break-word}
.hypercare-raw{margin-top:11px;border:1px solid #223241;border-radius:9px;background:#0a1016;overflow:hidden}
.hypercare-raw summary{cursor:pointer;padding:10px 12px;color:#8ca0b3;font:9px "IBM Plex Mono",monospace;letter-spacing:.4px}
.hypercare-raw pre{max-height:360px;border-top:1px solid #1b2936;padding:12px;background:#070b10;color:#bfcddd;font:9px/1.55 "IBM Plex Mono",Consolas,monospace;white-space:pre-wrap;word-break:break-word;overflow:auto}
@media(max-width:900px){.hypercare-analysis-grid{grid-template-columns:1fr 1fr}.hypercare-analysis-grid>div.wide{grid-column:span 2}}
@media(max-width:520px){.hypercare-analysis-grid{grid-template-columns:1fr}.hypercare-analysis-grid>div.wide{grid-column:auto}.hypercare-tabs .hypercare-tab:first-child{display:none}.hypercare-tabs{justify-content:flex-end}}

/* =========================================================
   CALENDÁRIO SOC — visualização da escala de sobreaviso
   ========================================================= */
.plantao-calendar-wrap{padding:16px 18px 18px}
.plantao-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.plantao-month-btn{width:40px;height:36px;min-width:40px;padding:0;font-size:24px;line-height:1}
.plantao-month-title{text-align:center;flex:1}
.plantao-month-title strong{display:block;color:#edf4f8;font-size:18px;line-height:1.2}
.plantao-month-title span{display:block;margin-top:4px;color:#6f91aa;font:9px "IBM Plex Mono",monospace;letter-spacing:.8px;text-transform:uppercase}
.plantao-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.plantao-calendar-weekday{padding:7px 5px;text-align:center;color:#60788d;font:8px "IBM Plex Mono",monospace;letter-spacing:1px}
.plantao-calendar-day{min-height:105px;padding:10px 9px;border:1px solid #1f3040;border-radius:10px;background:#0b1219;position:relative;overflow:hidden;transition:border-color .15s ease,transform .15s ease,background .15s ease}
.plantao-calendar-day.empty{border-color:transparent;background:transparent}
.plantao-calendar-day:not(.empty):hover{border-color:#35536a;transform:translateY(-1px)}
.plantao-calendar-day.has-plantao{border-color:#28583e;background:linear-gradient(145deg,#0d1c15,#0b141a)}
.plantao-calendar-day.today{box-shadow:inset 0 0 0 1px #55d68a,0 0 0 1px rgba(85,214,138,.08)}
.plantao-calendar-day.today .plantao-day-number{color:#55d68a}
.plantao-day-number{display:block;color:#8ca2b4;font:700 11px "IBM Plex Mono",monospace}
.plantao-day-name{display:block;margin-top:17px;color:#e4f0e8;font-size:12px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plantao-day-time{display:block;margin-top:5px;color:#79b391;font:8px "IBM Plex Mono",monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plantao-day-empty{display:block;margin-top:24px;color:#344654;text-align:center;font-size:16px}
.plantao-calendar-legend{display:flex;justify-content:flex-end;gap:18px;margin-top:13px;color:#71879b;font:8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.4px}
.plantao-calendar-legend span{display:inline-flex;align-items:center;gap:6px}
.plantao-dot{width:7px;height:7px;border-radius:50%;background:#55d68a;display:inline-block}
.plantao-dot-today{box-shadow:0 0 0 2px rgba(85,214,138,.25)}
.plantao-details-panel{margin-top:14px}
@media(max-width:800px){.plantao-calendar{gap:4px}.plantao-calendar-day{min-height:92px;padding:8px 6px}.plantao-day-name{font-size:10px;margin-top:14px}.plantao-day-time{font-size:7px}.plantao-calendar-legend{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:560px){.plantao-calendar-day{min-height:68px}.plantao-day-name,.plantao-day-time{display:none}.plantao-day-empty{margin-top:15px}.plantao-calendar-weekday{font-size:7px}.plantao-calendar-toolbar{gap:7px}}
