/* ── Design tokens (espejo del :root de Triage Range) ─── */
    :root {
      --bg-deep:   #0B0F14;
      --panel:     #121820;
      --panel-2:   #0F151C;
      --hairline:  #212A33;
      --text:      #E6EDF2;
      --muted:     #7C8B99;
      --muted-2:   #57646F;
      --wazuh:     #29C2AE;
      --wazuh-dim: #1A3F3B;
      --good:      #5FD498;
      --bad:       #E5645A;
      --amber:     #E8B25C;
      --blue:      #5B8DEF;
      --radius:    4px;
      --mono: 'JetBrains Mono', 'Fira Mono', monospace;
      --sans: 'Inter', 'Segoe UI', system-ui, sans-serif;

      /* criticidad */
      --crit:  #E5645A;
      --high:  #E8B25C;
      --med:   #5B8DEF;
      --low:   #5FD498;
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html, body { height: 100%; background: var(--bg-deep); color: var(--text); font-family: var(--sans); font-size: 13px; }

    /* ── Nav ── */
    .sr-nav {
      display: flex; align-items: center; gap: 12px;
      height: 48px; padding: 0 20px;
      border-bottom: 1px solid var(--hairline);
      background: var(--panel-2);
    }
    .sr-nav-back {
      display: flex; align-items: center; gap: 6px;
      color: var(--muted); font-size: 11px; text-decoration: none;
      transition: color .15s;
    }
    .sr-nav-back:hover { color: var(--wazuh); }
    .sr-nav-back svg { width: 14px; height: 14px; }
    .sr-nav-title { font-size: 12px; font-weight: 600; color: var(--text); }
    .sr-nav-badge {
      margin-left: auto;
      padding: 3px 8px; border-radius: 20px;
      background: rgba(41,194,174,.12); border: 1px solid var(--wazuh-dim);
      color: var(--wazuh); font-size: 9px; font-family: var(--mono); letter-spacing: .08em;
    }

    /* ── Shell ── */
    .sr-shell { display: flex; flex-direction: column; height: calc(100vh - 48px); overflow: hidden; }

    /* ── Step header ── */
      display: flex; gap: 0;
      border-bottom: 1px solid var(--hairline);
      background: var(--panel);
    }
      flex: 1; display: flex; align-items: center; gap: 8px;
      padding: 10px 16px; font-size: 11px; color: var(--muted-2);
      border-right: 1px solid var(--hairline);
      transition: color .2s;
    }
      width: 20px; height: 20px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 10px; font-weight: 700; font-family: var(--mono);
      border: 1px solid var(--hairline); color: var(--muted-2);
      flex-shrink: 0;
    }

    /* ── Contenido principal ── */
    .sr-main { flex: 1; overflow-y: auto; padding: 28px 24px; }

    /* ── Vistas (pantallas) ── */
    .sr-view { display: none; }
    .sr-view.active { display: block; }

    /* ══ VISTA 1: CARGA ══════════════════════════════════════ */
    .upload-zone {
      max-width: 560px; margin: 40px auto;
      border: 2px dashed var(--hairline); border-radius: 10px;
      padding: 52px 40px; text-align: center;
      transition: border-color .2s, background .2s; cursor: pointer;
    }
    .upload-zone:hover, .upload-zone.drag-over {
      border-color: var(--wazuh); background: rgba(41,194,174,.04);
    }
    .upload-icon { font-size: 36px; margin-bottom: 14px; }
    .upload-title { font-size: 17px; font-weight: 600; margin-bottom: 6px; }
    .upload-sub { color: var(--muted); font-size: 12px; margin-bottom: 24px; line-height: 1.6; }
    .upload-btn {
      display: inline-block; padding: 10px 22px;
      background: var(--wazuh); color: #0B0F14; border-radius: 6px;
      font-size: 12px; font-weight: 700; cursor: pointer; border: none;
      transition: opacity .15s;
    }
    .upload-btn:hover { opacity: .85; }
    #fileInput { display: none; }
    .upload-info { margin-top: 14px; font-size: 11px; color: var(--muted-2); }

    /* ── File loaded card ── */
    .file-loaded {
      max-width: 560px; margin: 24px auto 0;
      padding: 14px 16px; border-radius: 8px;
      border: 1px solid var(--good); background: rgba(95,212,152,.06);
      display: flex; align-items: center; gap: 12px;
    }
    .file-loaded-icon { color: var(--good); font-size: 18px; }
    .file-loaded-name { font-weight: 600; font-size: 12px; }
    .file-loaded-meta { color: var(--muted); font-size: 11px; }
    .file-loaded-btn {
      margin-left: auto; padding: 7px 16px;
      background: var(--wazuh); color: #0B0F14; border-radius: 5px;
      font-size: 11px; font-weight: 700; border: none; cursor: pointer;
    }

    /* ══ VISTA 2: ANÁLISIS IA ═══════════════════════════════ */
    .analysis-wrap { max-width: 800px; margin: 0 auto; }
    /* findings table preview */
    .findings-preview { margin-top: 18px; }
    .findings-preview h3 { font-size: 12px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 10px; }
    .finding-row {
      display: flex; align-items: flex-start; gap: 10px;
      padding: 10px 12px; border-radius: 6px; border: 1px solid var(--hairline);
      background: var(--panel); margin-bottom: 6px;
    }
    .finding-badge {
      padding: 2px 7px; border-radius: 3px; font-size: 9px; font-weight: 700;
      font-family: var(--mono); white-space: nowrap; margin-top: 2px;
    }
    .finding-badge.crit  { background: rgba(229,100,90,.15); color: var(--crit); border: 1px solid rgba(229,100,90,.3); }
    .finding-badge.high  { background: rgba(232,178,92,.12); color: var(--high); border: 1px solid rgba(232,178,92,.3); }
    .finding-badge.med   { background: rgba(91,141,239,.12); color: var(--med);  border: 1px solid rgba(91,141,239,.3); }
    .finding-badge.low   { background: rgba(95,212,152,.1);  color: var(--low);  border: 1px solid rgba(95,212,152,.3); }
    .finding-title { font-size: 12px; font-weight: 600; margin-bottom: 2px; }
    .finding-desc  { font-size: 11px; color: var(--muted); line-height: 1.5; }
    .finding-evids { font-size: 10px; color: var(--muted-2); font-family: var(--mono); margin-top: 3px; }
    .alerts-wrap {max-width:1160px;margin:0 auto}.alerts-panel {border:1px solid #24303a;border-radius:9px;background:#0e151b;overflow:hidden}.alerts-toolbar {display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:18px 20px;border-bottom:1px solid #222e37;background:linear-gradient(120deg,#111a21,#0e151b)}.alerts-toolbar h2 {font-size:17px;margin:6px 0 4px}.alerts-toolbar p {font-size:10px;color:#788792}.alerts-toolbar-controls {display:flex;gap:8px;flex-wrap:wrap}.alerts-toolbar-controls select {height:32px;padding:0 9px;background:#0b1218;color:#aebbc4;border:1px solid #2b3944;border-radius:5px;font-size:10px}.alerts-summary {display:flex;gap:0;border-bottom:1px solid #202a33;background:#0c1319}.alert-summary-item {padding:11px 18px;border-right:1px solid #202a33;display:flex;align-items:center;gap:7px;color:#82909a;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.alert-summary-item strong {font:600 12px var(--mono);color:#e0e7eb}.alerts-list {display:grid}.alert-card {border-bottom:1px solid #1e2932}.alert-card:last-child {border-bottom:0}.alert-card-head {width:100%;display:grid;grid-template-columns:18px 72px 98px minmax(220px,1fr) 82px 104px 45px;align-items:center;gap:10px;padding:13px 16px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer}.alert-card-head:hover,.alert-card.open .alert-card-head {background:#131d25}.alert-chevron {color:#73828e;font-size:11px;transition:transform .18s}.alert-card.open .alert-chevron {transform:rotate(90deg)}.alert-id {font:10px var(--mono);color:#71818e}.alert-main {min-width:0}.alert-title {display:block;color:#dce5eb;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-meta {display:block;color:#72818c;font-size:9px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-state {font:9px var(--mono);text-transform:uppercase;letter-spacing:.04em}.alert-state.correlated {color:#55c9b8}.alert-state.standalone {color:#8997a1}.alert-time {font:9px var(--mono);color:#768590}.alert-event-count {font:9px var(--mono);color:#9ba8b1;text-align:right}.alert-detail {display:none;padding:1px 20px 16px 118px;background:#10171d}.alert-card.open .alert-detail {display:block}.alert-correlation {font-size:10px;color:#91a0aa;padding:10px 12px;margin-bottom:10px;border-left:2px solid #35a994;background:#14211f;line-height:1.5}.alert-findings {display:grid;gap:7px;position:relative}.alert-findings:before {content:'';position:absolute;left:5px;top:7px;bottom:8px;width:1px;background:#30423f}.alert-finding {position:relative;margin-left:17px;padding:10px 12px;border:1px solid #25313a;border-radius:6px;background:#0d141a}.alert-finding:before {content:'';position:absolute;left:-16px;top:15px;width:7px;height:7px;border-radius:50%;background:#38ad9b;box-shadow:0 0 0 3px #142320}.alert-finding-top {display:flex;align-items:center;gap:8px;margin-bottom:5px}.alert-finding-title {font-size:10px;color:#d4dee4;font-weight:600}.alert-finding p {font-size:9px;line-height:1.5;color:#84929c}.alert-evidence {margin-top:7px;color:#657580;font:9px var(--mono)}.alert-empty {padding:26px;text-align:center;color:#778691;font-size:11px}.alert-severity {font:9px var(--mono);font-weight:700;letter-spacing:.03em}.alert-severity.crit{color:var(--crit)}.alert-severity.high{color:var(--high)}.alert-severity.med{color:var(--med)}.alert-severity.low{color:var(--low)}

    /* ══ VISTA 3: DASHBOARD ═════════════════════════════════ */
    .dash-grid {
      display: grid; gap: 14px;
      grid-template-columns: repeat(4, 1fr);
      margin-bottom: 18px;
    }
    .dash-kpi {
      padding: 16px; border-radius: 8px; border: 1px solid var(--hairline);
      background: var(--panel);
    }
    .dash-kpi-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 6px; }
    .dash-kpi-value { font-size: 30px; font-weight: 700; line-height: 1; font-family: var(--mono); }
    .dash-kpi-value.crit { color: var(--crit); }
    .dash-kpi-value.high { color: var(--high); }
    .dash-kpi-value.med  { color: var(--med);  }
    .dash-kpi-value.low  { color: var(--low);  }
    .dash-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
    .dash-chart-box {
      padding: 16px; border-radius: 8px; border: 1px solid var(--hairline);
      background: var(--panel);
    }
    .dash-chart-title { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 14px; }
    canvas { display: block; width: 100% !important; }

    .dash-timeline {
      padding: 16px; border-radius: 8px; border: 1px solid var(--hairline);
      background: var(--panel); margin-bottom: 18px;
    }
    .dash-timeline-title { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 14px; }
    .dash-controls {display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;border:1px solid var(--hairline);border-radius:8px;background:var(--panel);}
    .dash-controls label {font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;}
    .dash-controls select,.dash-controls input {height:32px;padding:0 10px;border:1px solid #2b3944;border-radius:5px;background:#0d141a;color:var(--text);font:11px var(--sans);}
    .dash-controls input {min-width:180px;}.dash-control-count {margin-left:auto;color:#7b8a96;font:10px var(--mono);}
    .finding-list {margin-top:14px;border:1px solid var(--hairline);border-radius:8px;background:var(--panel);overflow:hidden;}
    .finding-list-head {display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid var(--hairline);font-size:11px;font-weight:600;}
    .finding-list-body {max-height:330px;overflow:auto;}.finding-table {width:100%;border-collapse:collapse;text-align:left;}.finding-table th {position:sticky;top:0;background:#131c24;padding:9px 12px;color:#748491;font:9px var(--mono);text-transform:uppercase;letter-spacing:.08em;}.finding-table td {padding:10px 12px;border-top:1px solid #1d2831;color:#aab6bf;font-size:10px;}.finding-table tr {cursor:pointer}.finding-table tbody tr:hover {background:#141e26}.finding-table .f-title {color:#e1e8ed;font-weight:600;}.finding-table .f-detail {display:block;color:#71808c;font-size:9px;margin-top:3px;max-width:440px;line-height:1.4;}.sev-pill {font:9px var(--mono);padding:3px 6px;border-radius:3px;white-space:nowrap;}

    /* ══ VISTA 4: INFORME ═══════════════════════════════════ */
    .report-wrap { max-width: 860px; margin: 0 auto; }
    .report-tabs {
      display: flex; gap: 0; border-bottom: 1px solid var(--hairline); margin-bottom: 20px;
    }
    .report-tab {
      padding: 9px 18px; font-size: 12px; font-weight: 600; cursor: pointer;
      border-bottom: 2px solid transparent; color: var(--muted); background: none; border-top: none; border-left: none; border-right: none;
      transition: color .15s, border-color .15s;
    }
    .report-tab.active { color: var(--wazuh); border-bottom-color: var(--wazuh); }

    /* informe renderizado */
    #reportContent {
      background: var(--panel); border: 1px solid var(--hairline); border-radius: 8px;
      padding: 32px 36px; line-height: 1.75; color: var(--text);
    }
    #reportContent h1 { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
    #reportContent h2 { font-size: 15px; font-weight: 600; color: var(--wazuh); margin: 28px 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--hairline); }
    #reportContent h3 { font-size: 13px; font-weight: 600; margin: 16px 0 6px; }
    #reportContent p  { font-size: 12.5px; color: var(--muted); margin-bottom: 10px; }
    #reportContent ul { padding-left: 18px; margin-bottom: 10px; }
    #reportContent li { font-size: 12.5px; color: var(--muted); margin-bottom: 4px; }
    #reportContent strong { color: var(--text); }
    #reportContent .report-meta { font-size: 11px; color: var(--muted-2); margin-bottom: 24px; font-family: var(--mono); }
    #reportContent .inline-badge {
      display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 10px;
      font-weight: 700; font-family: var(--mono); vertical-align: middle;
    }
    #reportContent table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 12px; }
    #reportContent th { background: var(--panel-2); color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--hairline); }
    #reportContent td { padding: 7px 10px; border-bottom: 1px solid var(--hairline); color: var(--muted); }
    #reportContent td:first-child { color: var(--text); font-family: var(--mono); font-size: 11px; }

    .export-bar {
      display: flex; gap: 10px; align-items: center;
      padding: 14px 0; border-top: 1px solid var(--hairline); margin-top: 20px;
    }
    .btn-export {
      display: flex; align-items: center; gap: 7px;
      padding: 9px 18px; border-radius: 6px; font-size: 12px; font-weight: 700;
      border: none; cursor: pointer; transition: opacity .15s;
    }
    .btn-export:hover { opacity: .85; }
    .btn-export.primary { background: var(--wazuh); color: #0B0F14; }
    .btn-export.secondary { background: var(--panel); color: var(--text); border: 1px solid var(--hairline); }

    /* ── Botones de acción globales ── */
    .sr-actions {
      display: flex; gap: 10px; justify-content: flex-end;
      padding: 12px 24px; border-top: 1px solid var(--hairline);
      background: var(--panel-2);
    }
    .btn-primary {
      padding: 9px 20px; border-radius: 6px;
      background: var(--wazuh); color: #0B0F14; font-size: 12px; font-weight: 700;
      border: none; cursor: pointer; transition: opacity .15s;
    }
    .btn-primary:hover { opacity: .85; }
    .btn-primary:disabled { opacity: .4; cursor: default; }
    .btn-secondary {
      padding: 9px 16px; border-radius: 6px;
      background: none; color: var(--muted); font-size: 12px; font-weight: 600;
      border: 1px solid var(--hairline); cursor: pointer; transition: color .15s, border-color .15s;
    }
    .btn-secondary:hover { color: var(--text); border-color: var(--muted); }

    /* ── AI thinking spinner ── */
    .ai-thinking {
      display: flex; align-items: center; gap: 10px;
      padding: 14px 16px; border-radius: 8px; border: 1px solid rgba(41,194,174,.25);
      background: rgba(41,194,174,.04); margin-bottom: 14px;
      font-size: 12px; color: var(--wazuh);
    }
    .ai-thinking .spinner {
      width: 16px; height: 16px; border: 2px solid rgba(41,194,174,.2);
      border-top-color: var(--wazuh); border-radius: 50%;
      animation: spin .7s linear infinite; flex-shrink: 0;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    .ai-thinking.hidden { display: none; }

    /* ── Toast ── */
    #toast {
      position: fixed; bottom: 20px; right: 20px;
      padding: 10px 16px; border-radius: 7px; font-size: 12px;
      background: var(--panel); border: 1px solid var(--hairline);
      color: var(--text); box-shadow: 0 4px 20px rgba(0,0,0,.5);
      transform: translateY(10px); opacity: 0; transition: all .25s;
      pointer-events: none; z-index: 100;
    }
    #toast.show { transform: translateY(0); opacity: 1; }
    #toast.success { border-color: var(--good); color: var(--good); }
    #toast.error   { border-color: var(--bad);  color: var(--bad);  }

    .hidden { display:none !important; }
    body { background: #090d12; }
    .sr-nav { height:54px; border-color:#202a34; }
    .sr-nav-title { font-size:13px; letter-spacing:.02em; }
    .sr-nav-badge { background:#15222b; border-color:#253a42; }
    .app-layout { display:flex; min-height:calc(100vh - 54px); }
    .sidebar { width:254px; flex:none; display:flex; flex-direction:column; background:#0c1218; border-right:1px solid #202a34; padding:24px 14px 16px; }
    .brand { display:flex; align-items:center; gap:11px; padding:2px 9px 27px; color:var(--text); text-decoration:none; }
    .brand-mark { width:34px;height:34px;display:block;object-fit:contain;border:1px solid #23796f;background:#102421;border-radius:9px; }
    .brand strong { display:block;font-size:13px;letter-spacing:.01em; }.brand small {display:block;color:var(--muted-2);font-size:10px;margin-top:3px;}
    .sidebar-label,.eyebrow { color:#61717e;font:600 9px var(--mono);letter-spacing:.14em; }
    .sidebar-label { padding:0 10px 10px; }
    .side-nav { display:grid; gap:5px; }
    .side-link { width:100%;display:flex;align-items:center;gap:11px;padding:11px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:#9ba9b5;text-align:left;cursor:pointer;transition:.18s; }
    .side-link:hover { background:#111a22;color:var(--text); }.side-link.active {background:#10201f;border-color:#1c3a37;color:#e6edf2;box-shadow:inset 2px 0 var(--wazuh);}
    .side-link .nav-icon { width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#151e27;color:#91a0ac;font-size:16px;flex:none; }.side-link.active .nav-icon {background:#17332f;color:var(--wazuh);}
    .side-link b {display:block;font-size:11px;font-weight:600;}.side-link small {display:block;margin-top:3px;font-size:9px;color:#667580;}.side-link em {margin-left:auto;padding:2px 6px;border-radius:10px;background:#17222c;color:#7f8d98;font:10px var(--mono);font-style:normal;}
    .nav-soon { margin-left:auto;color:#9c834c;font:8px var(--mono);letter-spacing:.04em; }
    .sidebar-bottom {margin-top:auto;padding:13px 8px 2px;border-top:1px solid #1b252e;color:#82918d;font-size:10px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}.sidebar-bottom small {padding-left:15px;color:#63717a;font-size:9px;}
    .status-dot {width:7px;height:7px;border-radius:50%;background:#45c890;box-shadow:0 0 9px #45c89066;display:inline-block;flex:none;}
    .app-layout {height:calc(100vh - 54px);min-height:0;overflow:hidden;}.sr-shell {height:100%;min-height:0;min-width:0;flex:1;display:flex;flex-direction:column;overflow:hidden;background:#0a0f14;}.workspace-head {min-height:105px;flex:none;padding:23px 30px 18px;border-bottom:1px solid #1d2730;display:flex;justify-content:space-between;align-items:center;background:#0d1319;}.workspace-head h1 {font-size:22px;margin:7px 0 4px;letter-spacing:-.03em;}.workspace-head p {font-size:11px;color:#7d8b97;}.head-status {font:10px var(--mono);color:#92a19e;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #24332f;background:#101b19;border-radius:20px;}
    .sr-main {flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:25px 30px;}.alerts-panel {overflow:visible}.alert-detail {max-height:none;overflow:visible}.upload-zone {margin:26px auto;padding:55px 40px;border-color:#293641;background:linear-gradient(145deg,#101820,#0c1218);}.upload-zone:hover,.upload-zone.drag-over {border-color:#279f91;background:#10201f;}.upload-icon {margin:0 auto 17px;width:56px;height:56px;display:grid;place-items:center;border:1px solid #24433f;border-radius:15px;background:#122521;color:#45cabb;font-size:25px;}.upload-title {font-size:19px;}.upload-sub {font-size:12px;color:#81909c;}.upload-info {color:#61717d;}
    .dash-kpi,.dash-chart-box,.dash-timeline,.finding-row,#reportContent {background:#10171e;border-color:#222e38;}.dash-kpi {transition:border-color .15s,transform .15s;}.dash-kpi:hover {border-color:#344650;transform:translateY(-2px);}.dash-kpi-label {letter-spacing:.1em;}.dash-kpi-value {font-size:28px;}.dash-chart-box {min-width:0;}.dash-chart-title,.dash-timeline-title {font-size:10px;letter-spacing:.1em;}.dash-charts {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
    .report-wrap {max-width:1000px;}.report-tabs {border-color:#24303a;}.report-tab {padding:11px 18px;}.report-tab.active {color:#42c7b2;}
    .ai-workspace {max-width:1080px;margin:6px auto;}.ai-hero {position:relative;display:flex;align-items:center;gap:20px;padding:30px;border:1px solid #263742;border-radius:11px;background:radial-gradient(ellipse at 10% 20%,#15312e 0,transparent 48%),linear-gradient(130deg,#111a22,#10151d);overflow:hidden;}.ai-orbit {width:54px;height:54px;border:1px solid #2a6860;border-radius:16px;display:grid;place-items:center;color:#4bd4bf;font-size:26px;background:#102521;}.ai-hero h2 {font-size:21px;margin:7px 0;}.ai-hero p {font-size:12px;color:#8a99a4;max-width:580px;line-height:1.6;}.ai-state {margin-left:auto;align-self:flex-start;padding:6px 9px;border:1px solid #51452d;border-radius:4px;color:#d1ae69;font:9px var(--mono);letter-spacing:.07em;white-space:nowrap;}.ai-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0;}.ai-card {padding:19px;border:1px solid #222f39;border-radius:8px;background:#10171e;}.ai-card-icon {font-size:20px;color:#4ec8b5;}.ai-card h3 {font-size:12px;margin:12px 0 7px;}.ai-card p {color:#7e8d98;font-size:11px;line-height:1.65;}.ai-notice {display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border:1px solid #413927;border-radius:7px;background:#191710;color:#d7bd7e;font-size:11px;line-height:1.6;}.ai-notice strong {white-space:nowrap;}.sr-view {max-width:1400px;margin:auto;}
    @media(max-width:900px) { .sidebar {width:205px;} .sr-main{padding:20px;} .workspace-head{padding:20px;} }
    @media(max-width:620px) { .sidebar{width:62px;padding:18px 7px}.brand{padding:0 6px 22px}.brand-mark{width:38px;height:38px}.side-link{padding:11px 6px}.sidebar-bottom{padding:12px 0;}.workspace-head{align-items:flex-start;gap:12px}.head-status{font-size:0}.head-status .status-dot{width:8px;height:8px}.sr-main{padding:16px 12px}.ai-grid{grid-template-columns:1fr}.ai-hero{padding:20px;gap:12px}.ai-state{position:absolute;top:12px;right:12px;font-size:7px}.ai-hero p{max-width:95%}.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-charts{grid-template-columns:1fr} }
    @media(max-width:700px){.alerts-toolbar{align-items:flex-start;flex-direction:column}.alerts-summary{overflow:auto}.alert-card-head{grid-template-columns:14px 48px 80px minmax(75px,1fr) 42px 25px;gap:6px;padding:12px 8px}.alert-state{display:none}.alert-time{font-size:8px;line-height:1.3;white-space:normal}.alert-detail{padding:0 12px 14px 55px}.alert-event-count{font-size:8px}.alert-title{font-size:10px}.alert-meta{font-size:8px}}
    /* ── Responsive ── */
    @media (max-width: 760px) {
      .dash-grid { grid-template-columns: repeat(2, 1fr); }
      .dash-charts { grid-template-columns: 1fr; }
      .sidebar { width: 76px; padding: 20px 10px; }
      .brand > span:last-child,.sidebar-label,.side-link > span:nth-child(2),.side-link em,.nav-soon,.sidebar-bottom small { display:none; }
      .side-link { justify-content:center; padding:12px 8px; }
      .side-link .nav-icon { margin:0; }
      .sidebar-bottom { font-size:0; justify-content:center; }
      #reportContent { padding: 20px 16px; }
    }

    /* ── Scrollbar ── */
    ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: transparent; }
    ::-webkit-scrollbar-thumb { background: var(--hairline); border-radius: 3px; }


/* Dashboard analítico */
.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-kpi{min-width:0}.dash-kpi-label{min-height:24px;line-height:1.35}.dash-kpi-value{font-size:25px}.dash-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}.dash-insight-card{display:flex;min-width:0;flex-direction:column;gap:7px;padding:14px 15px;border:1px solid #24313b;border-radius:8px;background:linear-gradient(145deg,#111a21,#0e151b)}.dash-insight-card.priority{border-left:2px solid var(--high)}.dash-insight-label{color:#82919c;font:9px var(--mono);letter-spacing:.09em;text-transform:uppercase}.dash-insight-card strong{color:#dce5eb;font-size:11px;line-height:1.45}.dash-insight-card span{color:#8b99a3;font-size:10px;line-height:1.5}.dash-insight-card small{color:#697984;font:9px/1.5 var(--mono);overflow-wrap:anywhere}.dash-chart-title span,.dash-timeline-title span{color:#62717c;font:9px var(--sans);letter-spacing:0;text-transform:none}.dash-chart-box canvas{height:200px!important}.dash-timeline canvas{height:140px!important}.dash-chart-box canvas:focus-visible{outline:1px solid var(--wazuh)}
@media(max-width:1000px){.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-insights{grid-template-columns:1fr 1fr}.dash-insight-card:last-child{grid-column:1/-1}}
@media(max-width:620px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-insights{grid-template-columns:1fr}.dash-insight-card:last-child{grid-column:auto}.dash-kpi-value{font-size:22px}.dash-chart-title span,.dash-timeline-title span{display:block;margin-top:4px}}
.dash-controls .dash-reset{height:32px;padding:0 10px;border:1px solid #2b3944;border-radius:5px;background:#151e26;color:#9aa8b2;font:10px var(--sans);cursor:pointer;transition:.15s}.dash-controls .dash-reset:hover{border-color:#3d988c;color:#64d0bf}

/* Informes técnico y ejecutivo, incluidas gráficas que también se conservan en PDF */
#reportContent .report-callout{padding:11px 13px;border:1px solid #33443f;border-left:3px solid #35b5a2;border-radius:5px;background:#111d1c;color:#c1d0d0;font-size:11px}#reportContent .report-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 22px}#reportContent .report-chart{min-width:0;padding:13px;border:1px solid #26343d;border-radius:7px;background:#0d141a}#reportContent .report-chart h3{margin:0 0 12px;color:#9babb5;font-size:10px;text-transform:uppercase;letter-spacing:.08em}#reportContent .report-bar-row{display:grid;grid-template-columns:minmax(70px,105px) minmax(45px,1fr) 28px;align-items:center;gap:8px;margin:8px 0;color:#a5b1ba;font-size:9px}#reportContent .report-bar-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#reportContent .report-bar-row>b{text-align:right;color:#dce5eb;font:10px var(--mono)}#reportContent .report-bar-track{height:8px;overflow:hidden;border-radius:8px;background:#202a32}#reportContent .report-bar-track i{display:block;height:100%;min-width:0;border-radius:8px;opacity:.9}#reportContent .report-finding{padding:10px 0;border-bottom:1px solid #202b33}#reportContent .report-finding h3{line-height:1.55}#reportContent .report-finding p{margin:5px 0}#reportContent .report-finding ul{margin:6px 0 0}#reportContent .report-incident{margin:10px 0;padding:11px 13px;border:1px solid #27343d;border-radius:6px;background:#0e151b;break-inside:avoid}#reportContent .report-incident h3{margin:0 0 6px;font-size:11px}#reportContent .report-incident p{margin:5px 0;font-size:10px}#reportContent .report-incident small{color:#75838d;font:9px/1.5 var(--mono)}#reportContent .report-table-wrap{width:100%;overflow-x:auto;margin:8px 0 15px}#reportContent .report-table-wrap table{min-width:700px;font-size:9px}#reportContent .report-table-wrap th{font-size:8px}#reportContent .report-table-wrap td{padding:6px 7px;line-height:1.45;overflow-wrap:anywhere}#reportContent ol{padding-left:20px;margin-bottom:10px}#reportContent ol li{padding-left:2px}@media(max-width:700px){#reportContent .report-charts{grid-template-columns:1fr}#reportContent .report-bar-row{grid-template-columns:88px minmax(35px,1fr) 24px}}

.ai-actions{display:flex;align-items:center;gap:14px;margin:16px 0;color:#8b9aa5;font-size:11px}.ai-actions button:disabled{opacity:.5;cursor:not-allowed}.ai-result{margin-top:18px;padding:20px;border:1px solid #263742;border-radius:8px;background:#0d141a}.ai-result-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #26343d}.ai-result-head h3{margin:5px 0 0;font-size:16px}.ai-copy{padding:7px 10px;border:1px solid #33444d;border-radius:5px;background:#141e25;color:#aab8c0;font:10px var(--sans);cursor:pointer}.ai-copy:hover{border-color:#3d988c;color:#75d7c8}.ai-result-content{padding-top:14px;color:#bdc9cf;font-size:12px;line-height:1.7}.ai-result-content p{margin:6px 0 10px}.ai-result-content ul,.ai-result-content ol{padding-left:22px;margin:8px 0 12px}.ai-result-content li{padding:2px 0}.ai-result-content strong{color:#e1e9ed}.ai-result-content code{padding:1px 4px;border:1px solid #293741;border-radius:3px;background:#151f26;color:#7edacb;font:10px var(--mono);overflow-wrap:anywhere}.ai-summary-card{margin:0 0 14px;padding:15px 17px;border:1px solid #28594f;border-left:3px solid #43b9a6;border-radius:7px;background:linear-gradient(120deg,#11221f,#10171c)}.ai-summary-card h4{margin:0 0 6px;color:#a8e8dc;font-size:12px}.ai-summary-card p:last-child{margin-bottom:0}.ai-report-section{margin:9px 0;border:1px solid #26343d;border-radius:7px;background:#10171d;overflow:hidden}.ai-report-section[open]{background:#10181e}.ai-report-section summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none}.ai-report-section summary::-webkit-details-marker{display:none}.ai-section-marker{flex:none;color:#6f8992;font:8px var(--mono);letter-spacing:.09em}.ai-report-section summary strong{flex:1;min-width:0;color:#d6e0e5;font-size:11px;line-height:1.5}.ai-chevron{color:#7c939c;font-size:16px;transition:transform .15s}.ai-report-section[open] .ai-chevron{transform:rotate(180deg)}.ai-section-body{padding:2px 16px 14px;border-top:1px solid #202d35}.ai-report-section.incident{border-left:2px solid #c88e4c}.ai-report-section.incident summary{background:#171a1b}.ai-report-section.incident .ai-section-marker{color:#e1b675}.ai-plain-text{white-space:pre-wrap;overflow-wrap:anywhere}.ai-state{max-width:190px;text-align:center}.ai-notice{line-height:1.7}@media(max-width:620px){.ai-actions{align-items:flex-start;flex-direction:column}.ai-notice{flex-direction:column}.ai-result{padding:14px}.ai-result-head{align-items:flex-start}.ai-report-section summary{align-items:flex-start;padding:11px}.ai-section-marker{padding-top:3px}}
.ai-waiting{display:flex;align-items:center;gap:18px;margin:18px 0;padding:20px 22px;border:1px solid #22665e;border-radius:10px;background:radial-gradient(ellipse at 8% 50%,#12302c 0,transparent 55%),linear-gradient(125deg,#101c21,#0d141a);box-shadow:0 12px 35px #0003;animation:ai-wait-enter .25s ease-out}.ai-waiting.hidden{display:none}.ai-wait-orbit{width:48px;height:48px;flex:none;display:grid;place-items:center;border:1px solid #338f82;border-radius:50%;color:#73e5d0;background:#122a27;box-shadow:0 0 22px #31c9b566;animation:ai-pulse 1.8s ease-in-out infinite}.ai-wait-orbit span{font-size:22px;animation:ai-turn 4s linear infinite}.ai-wait-copy{min-width:0;flex:1}.ai-wait-copy strong{color:#d9f8f1;font-size:13px}.ai-wait-copy p{margin:5px 0 12px;color:#9bb6b4;font-size:11px;line-height:1.5}.ai-wait-copy small{display:block;margin-top:8px;color:#72918e;font:10px var(--mono)}.ai-wait-track{height:3px;overflow:hidden;border-radius:5px;background:#1c3635}.ai-wait-track i{display:block;width:35%;height:100%;border-radius:5px;background:linear-gradient(90deg,#23ad9c,#8af1d6);box-shadow:0 0 12px #4be0c9;animation:ai-progress 1.5s ease-in-out infinite alternate}@keyframes ai-pulse{50%{box-shadow:0 0 30px #31c9b599;transform:scale(1.04)}}@keyframes ai-turn{to{transform:rotate(360deg)}}@keyframes ai-progress{from{transform:translateX(-15%)}to{transform:translateX(205%)}}@keyframes ai-wait-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ai-wait-orbit,.ai-wait-orbit span,.ai-wait-track i,.ai-waiting{animation:none}}
