:root{--bg:#050a12;--panel:#0b1521;--panel2:#101d2b;--line:#203247;--text:#eef6ff;--muted:#91a4b9;--blue:#169cff;--green:#2ee37f;--red:#ef4444;--orange:#fb7b22;--yellow:#f5c84b}*{box-sizing:border-box}body{margin:0;background:#050a12;color:var(--text);font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{background:#071019;border-right:1px solid var(--line);padding:14px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;padding:6px 8px 24px}.brand img{width:34px;height:34px}.brand strong{font-size:22px}.brand span{display:block;color:var(--muted);font-size:11px}.nav{display:flex;flex-direction:column;gap:8px}.nav button{background:transparent;color:#dceaff;border:1px solid transparent;border-radius:9px;padding:12px;text-align:left;cursor:pointer;font-weight:650}.nav button.active,.nav button:hover{background:#0d52a3;border-color:#176fc6}.side-note{position:absolute;bottom:14px;left:12px;right:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;font-size:12px}.main{padding:22px}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin:-22px -22px 22px;padding:0 22px;background:#070c13}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}.health{display:flex;align-items:center;gap:10px;border-left:1px solid var(--line);padding-left:24px;color:#d9e9ff}.dot{width:10px;height:10px;border-radius:99px;background:var(--red);display:inline-block}.dot.ok{background:var(--green);box-shadow:0 0 18px rgba(46,227,127,.55)}.hidden{display:none!important}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi,.panel{background:linear-gradient(180deg,#0d1825,#08111b);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.23)}.kpi{min-height:112px;padding:18px 20px;display:flex;gap:18px;align-items:center}.kpi span{color:#dcecff;font-size:14px}.kpi strong{display:block;font-size:28px;margin-top:8px}.kpi small{display:block;color:var(--muted);margin-top:5px}.shield{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-weight:900;font-size:22px}.shield.ok{background:linear-gradient(135deg,#1fb35e,#116736)}.shield.blue{background:linear-gradient(135deg,#176cc6,#0b376d)}.shield.red{background:linear-gradient(135deg,#e33434,#832323)}.shield.orange{background:linear-gradient(135deg,#fb7b22,#a44008)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.hero-actions{margin:18px 0}.btn{background:#0b84e9;color:white;border:0;border-radius:9px;padding:10px 14px;font-weight:800;cursor:pointer}.btn.secondary{background:#142235;border:1px solid var(--line)}.btn.danger{background:#b72838}.btn.warn{background:#c96b09}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.panel{padding:16px;overflow:hidden}.panel.large{grid-column:auto}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.panel-head h2{margin:0;font-size:17px}.panel-head span,.path{color:var(--muted);font-size:12px}.legend{display:grid;gap:8px;margin-top:8px}.legend div{display:flex;justify-content:space-between;color:#dceaff}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block;margin-right:8px}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid rgba(32,50,71,.72);padding:9px 8px;font-size:13px}th{color:#c7d9ee;font-weight:700}.badge{padding:3px 8px;border-radius:999px;font-size:11px;font-weight:900;display:inline-block}.sev-critical{background:rgba(239,68,68,.18);color:#ff7777}.sev-high{background:rgba(251,123,34,.18);color:#ff9a5d}.sev-medium{background:rgba(245,200,75,.18);color:#ffd76d}.sev-low{background:rgba(22,156,255,.18);color:#79c2ff}.health-list{display:grid}.health-list div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:11px 0}.health-list span{color:#dbeaff}.health-list b{color:var(--green)}.split{display:grid;grid-template-columns:360px 1fr;gap:16px}.form{display:grid;grid-template-columns:165px 1fr;gap:10px;align-items:center}.form label{color:#b8c9dc;font-size:13px}input,select,textarea{width:100%;background:#06101b;color:var(--text);border:1px solid #263a52;border-radius:10px;padding:10px;font-family:inherit}textarea{min-height:110px;font-family:Consolas,monospace}.raw{min-height:420px}.list{display:flex;flex-direction:column;gap:8px;max-height:630px;overflow:auto}.item{background:#091522;border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}.item.active{background:#0b2949;border-color:var(--blue)}.item small{color:var(--muted)}.mini-note{color:var(--muted);font-size:12px;margin-top:12px}.log{background:#03070d;border:1px solid var(--line);border-radius:10px;min-height:220px;max-height:380px;overflow:auto;padding:12px;white-space:pre-wrap;font-family:Consolas,monospace;color:#bdd0e5}.toast{position:fixed;right:20px;bottom:20px;background:#0c2743;border:1px solid var(--blue);border-radius:12px;padding:12px 16px;display:none;z-index:20}@media(max-width:1200px){.kpi-grid,.dashboard-grid,.split{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.side-note{position:static;margin-top:18px}.form{grid-template-columns:1fr}}

canvas{display:block;width:100%;max-width:100%;min-height:0;}

/* v4.5.2 surgical dashboard chart polish: equal-height chart cards */
.dashboard-grid{align-items:start;grid-auto-rows:auto;}
#dashboard .dashboard-grid > .panel:nth-child(1),
#dashboard .dashboard-grid > .panel:nth-child(2){
  height:280px;
  min-height:280px;
  display:flex;
  flex-direction:column;
}
#timelineChart,#severityChart{height:150px!important;min-height:140px!important;max-height:150px!important;flex:0 0 150px;}
#dashboard .panel:has(#timelineChart),#dashboard .panel:has(#severityChart){padding-bottom:14px;}
#severityChart{margin:0 auto;max-width:420px;}
#severityLegend{
  margin:8px auto 0;
  width:100%;
  max-width:420px;
  gap:5px;
  font-size:13px;
  line-height:1.15;
}
#severityLegend div{padding:0 2px;}
#eventsBody td{padding-top:7px;padding-bottom:7px;}
@media(max-width:1200px){
  #dashboard .dashboard-grid > .panel:nth-child(1),
  #dashboard .dashboard-grid > .panel:nth-child(2){height:auto;min-height:0;}
  #timelineChart,#severityChart{height:140px!important;max-height:140px!important;flex:0 0 140px;}
}

/* v4.5.3 user + storage polish */
.top-actions{display:flex;align-items:center;gap:14px;}
.user-pill{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:#eef6ff;min-width:120px;}
.user-pill span{font-weight:800;}
.user-pill small{color:var(--muted);font-size:11px;}
.storage-status{margin-top:18px;}
.storage-status .health-list b{max-width:70%;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fd3ff;}

.small-btn{padding:8px 12px;font-size:12px}
.login-body{min-height:100vh;margin:0;display:grid;place-items:center;background:radial-gradient(circle at top left,rgba(33,150,243,.22),transparent 36%),#07111f;color:#eaf2ff;font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif}
.login-shell{width:min(460px,92vw)}
.login-card{background:rgba(12,24,42,.92);border:1px solid rgba(120,170,255,.22);box-shadow:0 24px 80px rgba(0,0,0,.45);border-radius:24px;padding:30px}
.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px}.login-brand img{width:48px;height:48px;object-fit:contain}.login-brand strong{display:block;letter-spacing:.16em}.login-brand span{color:#8ea4c2;font-size:13px}.login-card h1{margin:0 0 8px;font-size:30px}.login-card p{color:#a8b7d2;line-height:1.5}.login-card form{display:grid;gap:10px;margin-top:18px}.login-card label{font-size:12px;color:#8ea4c2;text-transform:uppercase;letter-spacing:.08em}.login-card input{background:#09182b;border:1px solid rgba(120,170,255,.22);border-radius:12px;color:#eaf2ff;padding:12px 14px}.login-card button{margin-top:10px;width:100%}.login-error{min-height:20px;color:#ff8f8f;margin-top:12px;font-weight:700}

/* v4.6.1 Civera Ingestion Policy + horizontal dashboard filters */
.dashboard-grid .wide{grid-column:1 / -1;}
.event-filter-panel{padding:14px 16px;}
.event-filter-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr .7fr auto auto;gap:10px;align-items:center;}
.event-filter-row input,.event-filter-row select{min-width:0;height:40px;}
.ingestion-policy-box{border:1px solid rgba(22,156,255,.28);background:linear-gradient(180deg,rgba(22,156,255,.06),rgba(8,17,27,.4));border-radius:12px;padding:14px;margin:18px 0;}
.policy-form{grid-template-columns:220px 1fr 220px 1fr;}
@media(max-width:1200px){.event-filter-row{grid-template-columns:1fr 1fr}.policy-form{grid-template-columns:1fr}.dashboard-grid .wide{grid-column:auto}}
.status-strip{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:12px 0 16px;padding:12px 14px;border:1px solid rgba(29,161,242,.22);border-radius:14px;background:linear-gradient(135deg,rgba(5,13,24,.96),rgba(7,25,46,.92));box-shadow:0 12px 32px rgba(0,0,0,.18)}
.status-strip span{color:#9db5cc;font-size:13px}
.status-strip b{font-size:13px;letter-spacing:.02em;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}
.status-enabled{color:#78f0bd;background:rgba(38,201,140,.10)}
.status-disabled{color:#ffb4b4;background:rgba(255,92,92,.10)}


/* v4.6.5 Civera blue-black adapter status center */
body{
  background:
    radial-gradient(circle at 18% 0%, rgba(22,156,255,.16), transparent 30%),
    radial-gradient(circle at 82% 12%, rgba(36,70,130,.16), transparent 28%),
    #040914;
}
.sidebar{background:linear-gradient(180deg,#050b15,#07111f 54%,#040812);border-right:1px solid rgba(31,76,126,.72)}
.topbar{background:linear-gradient(90deg,rgba(5,11,21,.96),rgba(7,18,34,.94));border-bottom:1px solid rgba(22,156,255,.16)}
.kpi,.panel{background:linear-gradient(180deg,rgba(13,27,43,.96),rgba(5,12,22,.96));border:1px solid rgba(65,117,170,.32);box-shadow:0 24px 70px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.03)}
.nav button.active,.nav button:hover{background:linear-gradient(135deg,#0b5fb9,#07335f);border-color:rgba(22,156,255,.55);box-shadow:0 10px 26px rgba(22,156,255,.18)}
.btn{background:linear-gradient(135deg,#1188f2,#075eb5);box-shadow:0 10px 22px rgba(7,94,181,.18)}
.btn.secondary{background:linear-gradient(135deg,#102033,#0a1728);border:1px solid rgba(68,126,184,.32)}
.status-grid{margin-top:16px}
.status-kpis{margin-bottom:16px}
.status-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.status-hero div{background:rgba(5,13,24,.78);border:1px solid rgba(68,126,184,.25);border-radius:14px;padding:13px}
.status-hero span{display:block;color:#91a4b9;font-size:12px;margin-bottom:8px}
.status-hero b{display:block;color:#eaf6ff;font-size:13px;word-break:break-word}
.adapter-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.adapter-status-card{border:1px solid rgba(68,126,184,.25);border-radius:16px;padding:14px;background:linear-gradient(180deg,rgba(8,19,34,.94),rgba(5,12,22,.94));min-height:118px;display:grid;gap:8px}
.adapter-status-card div{display:flex;flex-direction:column;gap:4px}
.adapter-status-card b{font-size:15px;color:#eef6ff}
.adapter-status-card small{color:#91a4b9}
.adapter-status-card span{justify-self:start;font-size:11px;font-weight:900;border-radius:999px;padding:5px 9px;border:1px solid rgba(255,255,255,.08)}
.adapter-status-card.enabled span{color:#78f0bd;background:rgba(38,201,140,.10)}
.adapter-status-card.disabled span{color:#ffb4b4;background:rgba(255,92,92,.10)}
.adapter-status-card p{margin:0;color:#b7c9dc;font-size:12px;word-break:break-word}
@media(max-width:1200px){.status-hero{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.status-hero{grid-template-columns:1fr}}


/* v4.6.7 Instructions & Status diagnostics */
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}
.guide-card{border:1px solid rgba(37,99,235,.26);background:linear-gradient(145deg,rgba(8,18,31,.96),rgba(7,14,24,.92));border-radius:18px;padding:16px;box-shadow:0 18px 50px rgba(0,0,0,.22)}
.guide-card h3{margin:0 0 8px;color:#eaf4ff;font-size:15px}.guide-card p{margin:0;color:#9fb4c8;line-height:1.55}.health-list.compact{margin-top:14px}.health-list.compact div{grid-template-columns:160px 1fr}.health-list.compact b{font-size:11px;word-break:break-all;color:#dcefff}
@media(max-width:980px){.guide-grid{grid-template-columns:1fr}}
/* v4.6.8 Fortinet UX policy notes */
.policy-help-form{grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px;align-items:stretch}
.policy-field{border:1px solid rgba(68,126,184,.22);background:linear-gradient(180deg,rgba(8,19,34,.76),rgba(5,12,22,.78));border-radius:14px;padding:12px;display:grid;gap:8px}
.policy-field label{font-weight:800;color:#eaf4ff;margin:0}
.policy-field select,.policy-field input{width:100%}
.policy-field small{color:#8fa6bc;line-height:1.45;font-size:12px}
@media(max-width:1000px){.policy-help-form{grid-template-columns:1fr}}

.generic-policy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:14px}
.generic-policy-card{background:linear-gradient(180deg,rgba(12,28,48,.92),rgba(6,14,28,.96));border:1px solid rgba(22,156,255,.22);border-radius:18px;padding:14px;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.generic-policy-card h4{margin:0 0 6px;color:#eef6ff}
.generic-policy-card p{min-height:46px;margin:0 0 10px;color:#91a4b9;font-size:12px}
.mini-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:center}
.mini-form label{font-size:11px;color:#91a4b9}
.mini-form select{width:100%;background:#071426;color:#e7f2ff;border:1px solid rgba(22,156,255,.25);border-radius:10px;padding:7px}
