
:root{
  --bg:#080a0e; --bg-2:#0d1117; --panel:#0f141c; --panel-2:#131a25;
  --border:#1e2733; --border-2:#2a3644; --text:#e4e8ee; --muted:#7a8697;
  --gold:#b8912e; --gold-2:#d4af37; --navy:#1e3a8a; --navy-2:#3b5ea8;
  --red:#b91c1c; --amber:#b45309; --green:#16a34a; --cyan:#4a7f9e;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--text);
  font-family:ui-monospace,"JetBrains Mono","Fira Code",Menlo,Consolas,monospace;
  font-size:13px;line-height:1.55;overflow:hidden;
  background-image:
    linear-gradient(rgba(30,58,138,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,58,138,.035) 1px, transparent 1px);
  background-size:32px 32px}
#app{display:grid;grid-template-columns:270px 1fr;height:100vh}
#app.locked{filter:blur(6px) grayscale(.7);pointer-events:none;user-select:none}

.overlay{position:fixed;inset:0;background:rgba(5,7,10,.96);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;z-index:100;overflow:auto;padding:20px}
.overlay.hidden{display:none}
.login-box{width:min(460px,94vw);padding:32px 28px;border:1px solid var(--border-2);
  border-radius:8px;background:linear-gradient(180deg,#0f1520,#0a0e15);
  box-shadow:0 0 60px rgba(184,145,46,.08), inset 0 1px 0 rgba(255,255,255,.03);
  text-align:center;position:relative}
.login-box::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);border-radius:8px 8px 0 0}
.login-box.danger{border-color:#7f1d1d}
.login-box.danger::before{background:linear-gradient(90deg, transparent, var(--red), transparent)}
.login-badge{display:inline-block;padding:3px 12px;margin-bottom:14px;border:1px solid var(--gold);
  border-radius:3px;color:var(--gold);font-size:9px;letter-spacing:2.5px;text-transform:uppercase}
.login-badge.danger{border-color:var(--red);color:#f87171}
.login-logo{color:var(--gold);font-size:34px;margin-bottom:8px;
  text-shadow:0 0 24px rgba(184,145,46,.4)}
.login-logo.red{color:var(--red);text-shadow:0 0 24px rgba(185,28,28,.4)}
.login-title{color:#fff;letter-spacing:3.5px;font-weight:600;font-size:14px}
.login-sub{color:var(--muted);letter-spacing:2px;font-size:10px;margin-top:6px;margin-bottom:22px;
  text-transform:uppercase}
.field-label{display:block;text-align:left;color:var(--muted);font-size:10px;
  letter-spacing:1.8px;margin:12px 0 5px 2px;text-transform:uppercase}
.pin-input,.text-input{width:100%;padding:13px;background:#050810;
  border:1px solid var(--border-2);border-radius:5px;color:var(--gold-2);
  outline:none;transition:.2s;font-family:inherit;font-size:14px}
.pin-input{text-align:center;letter-spacing:8px;font-size:16px}
.text-input{text-align:left;letter-spacing:1px;font-size:13px;color:var(--text)}
.pin-input:focus,.text-input:focus{border-color:var(--gold);
  box-shadow:0 0 0 2px rgba(184,145,46,.15)}
.login-btn{width:100%;margin-top:18px;padding:13px;font-size:13px;letter-spacing:3px;
  text-transform:uppercase;font-weight:600}
.login-btn:disabled{opacity:.4;cursor:not-allowed}
.modal-actions{display:flex;gap:10px;margin-top:16px}
.modal-actions .btn{flex:1}
.login-msg{min-height:18px;margin-top:14px;color:#f87171;font-size:12px;letter-spacing:1px}
.login-hint{margin-top:12px;color:var(--muted);font-size:10px;letter-spacing:1px}

.tos-box{width:min(780px,96vw);max-height:92vh;overflow:auto;
  padding:26px 28px;border:1px solid var(--border-2);border-radius:8px;
  background:linear-gradient(180deg,#0f1520,#0a0e15);text-align:left;
  border-top:3px solid var(--amber)}
.tos-header{text-align:center;margin-bottom:18px}
.tos-scroll{background:#050810;border:1px solid var(--border-2);border-radius:5px;
  padding:16px 18px;max-height:300px;overflow:auto;white-space:pre-wrap;
  font-size:11px;line-height:1.6;color:#a8b0be}
.tos-form{margin-top:18px}
.tos-check{display:flex;align-items:flex-start;gap:10px;margin:14px 0;
  padding:12px;background:rgba(180,83,9,.08);border:1px solid #78350f;border-radius:5px}
.tos-check input{width:auto;margin-top:3px;accent-color:var(--amber)}
.tos-check label{color:#fbbf24;font-size:11px;line-height:1.55;cursor:pointer}

.sidebar{background:linear-gradient(180deg,#0b0f16,#070a0f);
  border-right:1px solid var(--border-2);display:flex;flex-direction:column;
  padding:20px 14px;gap:14px;position:relative}
.sidebar::after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;
  background:linear-gradient(180deg, transparent, rgba(184,145,46,.3), transparent)}
.brand{display:flex;align-items:center;gap:12px;padding-bottom:16px;
  border-bottom:1px solid var(--border-2)}
.brand-mark{color:var(--gold);font-size:24px;text-shadow:0 0 16px rgba(184,145,46,.5)}
.brand-title{color:#fff;font-weight:600;letter-spacing:3px;font-size:13px}
.brand-sub{color:var(--muted);font-size:9px;letter-spacing:2px;text-transform:uppercase}

.op-card{background:#050810;border:1px solid var(--border-2);border-radius:5px;
  padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.op-line{display:flex;justify-content:space-between;align-items:center;gap:8px}
.op-k{color:var(--muted);font-size:9px;letter-spacing:1.8px;text-transform:uppercase}
.op-v{color:var(--text);font-size:11px;letter-spacing:1px;
  max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-v.gold{color:var(--gold-2)}

 .nav{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:3px;margin-top:6px;
   overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;
   scrollbar-width:thin;scrollbar-color:#8b6c24 #101722}
 .nav::-webkit-scrollbar{width:8px}
 .nav::-webkit-scrollbar-track{background:#101722;border-radius:8px}
 .nav::-webkit-scrollbar-thumb{background:#8b6c24;border:2px solid #101722;border-radius:8px}
 .nav::-webkit-scrollbar-thumb:hover{background:#c9a227}
.nav-item{background:none;border:1px solid transparent;color:var(--muted);
  text-align:left;padding:10px 12px;border-radius:4px;cursor:pointer;font:inherit;
  display:flex;gap:11px;align-items:center;transition:.15s;position:relative;
  font-size:12px;letter-spacing:.5px}
.nav-item .n{color:var(--navy-2);font-size:10px;font-weight:600;letter-spacing:1.5px;
  min-width:18px}
.nav-item:hover{color:var(--text);border-color:var(--border-2);background:#0c1219}
.nav-item.active{color:var(--gold-2);border-color:var(--gold);
  background:linear-gradient(90deg,rgba(184,145,46,.1),transparent);
  box-shadow:inset 3px 0 0 var(--gold)}
.nav-item.active .n{color:var(--gold)}
.nav-item.locked::after{content:"🔒";margin-left:auto;font-size:10px;opacity:.55}
.nav-item.locked{opacity:.72;cursor:not-allowed}
.nav-item.unlocked::after{content:"✓";margin-left:auto;font-size:11px;color:var(--green)}
.module-locked{opacity:.55;filter:grayscale(.4);pointer-events:none}
.nav-item.unlocked::after{content:"✓";margin-left:auto;font-size:11px;color:var(--green)}

.status-bar{margin-top:auto;padding:12px 0;border-top:1px solid var(--border-2);
  display:flex;flex-direction:column;gap:7px;font-size:10px;color:var(--muted);
  letter-spacing:1.2px;text-transform:uppercase}
.status-row{display:flex;align-items:center;gap:9px}
.dot{width:6px;height:6px;border-radius:50%;background:#333;display:inline-block}
.dot.ok{background:var(--green);box-shadow:0 0 8px rgba(22,163,74,.6)}
.dot.idle{background:var(--muted)}
.dot.busy{background:var(--amber);box-shadow:0 0 8px rgba(180,83,9,.6);animation:pulse 1s infinite}
.dot.err{background:var(--red);box-shadow:0 0 8px rgba(185,28,28,.6)}
@keyframes pulse{50%{opacity:.35}}

.uptime{border-top:1px solid var(--border-2);padding-top:12px}
.uptime .label{color:var(--muted);font-size:9px;letter-spacing:2px;text-transform:uppercase}
.uptime .value{color:var(--gold-2);font-size:20px;letter-spacing:3px;margin-top:4px}

.main{display:flex;flex-direction:column;overflow:hidden}
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:16px 26px;border-bottom:1px solid var(--border-2);
  background:linear-gradient(180deg,#0b0f16,#080b10)}
.crumb{color:var(--muted);letter-spacing:2px;font-size:11px;text-transform:uppercase}
.crumb span{color:var(--gold-2);font-weight:600}
.topbar-right{display:flex;gap:22px;align-items:center;font-size:11px;color:var(--muted)}
.badge-secure{color:var(--green);letter-spacing:1.8px;font-size:10px;
  padding:4px 10px;border:1px solid #14532d;border-radius:3px;
  background:rgba(22,163,74,.08);text-transform:uppercase}
.task-status{display:flex;gap:8px;align-items:center;color:var(--text);
  letter-spacing:1.8px;font-size:10px;text-transform:uppercase}

.view{display:none;overflow-y:auto;padding:22px 26px 60px 26px;gap:18px;flex-direction:column}
.view.active{display:flex}

.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--border-2);border-radius:6px;overflow:hidden;flex-shrink:0;
  box-shadow:0 1px 0 rgba(255,255,255,.02), 0 6px 20px rgba(0,0,0,.25)}
.panel-header{display:flex;justify-content:space-between;align-items:center;
  padding:12px 16px;border-bottom:1px solid var(--border-2);
  font-size:11px;letter-spacing:2px;color:var(--text);background:#0a0e15;
  border-left:3px solid var(--gold);font-weight:600;text-transform:uppercase}
.panel-tag{color:var(--muted);font-size:9px;letter-spacing:1.5px;
  padding:2px 8px;border:1px solid var(--border-2);border-radius:3px;font-weight:400}
.panel-tag.danger{color:#f87171;border-color:#7f1d1d;background:rgba(185,28,28,.06)}
.panel-header .stream-status{color:var(--green);font-size:10px;letter-spacing:1.5px}
.panel-header .stream-status.off{color:var(--red)}

.grid-kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.kpi{background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--border-2);border-radius:6px;padding:14px 16px;
  border-left:3px solid var(--navy);position:relative}
.kpi-label{color:var(--muted);font-size:9px;letter-spacing:1.8px;text-transform:uppercase}
.kpi-value{color:var(--gold-2);font-size:24px;font-weight:600;margin-top:8px;letter-spacing:1.5px}
.kpi.ok{border-left-color:var(--green)}
.kpi.ok .kpi-value{color:#22c55e;font-size:18px}
.kpi.gold{border-left-color:var(--gold)}
.kpi.navy{border-left-color:var(--navy-2)}
.kpi.navy .kpi-value{color:#93c5fd}

.event-stream{height:calc(100vh - 340px);overflow:auto;padding:14px 16px;
  font-size:12px;background:#050810;color:var(--text)}
.evt{display:grid;grid-template-columns:90px 140px 1fr;gap:12px;
  padding:5px 0;border-bottom:1px dashed #131a24}
.evt .ts{color:var(--muted);font-size:11px}
.evt .type{color:var(--cyan);letter-spacing:.5px}
.evt.success .type{color:#22c55e}
.evt.error .type{color:#f87171}
.evt.warn .type{color:#fbbf24}
.evt .msg{color:var(--text);word-break:break-word}

.form-grid{display:grid;grid-template-columns:220px 1fr;gap:12px 16px;padding:18px}
.form-grid label{color:var(--muted);align-self:center;font-size:11px;
  letter-spacing:1.2px;text-transform:uppercase}
input,textarea,select{background:#050810;border:1px solid var(--border-2);color:var(--text);
  padding:10px 12px;border-radius:5px;font:inherit;outline:none;transition:.15s;width:100%;
  font-size:13px}
input:focus,textarea:focus,select:focus{border-color:var(--gold);
  box-shadow:0 0 0 2px rgba(184,145,46,.12)}
.form-actions{grid-column:1/-1;display:flex;gap:10px;margin-top:8px}

.btn{background:#0c1219;border:1px solid var(--border-2);color:var(--text);
  padding:10px 18px;border-radius:5px;cursor:pointer;font:inherit;letter-spacing:1.5px;
  transition:.15s;font-size:12px;text-transform:uppercase}
.btn:hover{border-color:var(--gold);color:var(--gold-2)}
.btn.primary{background:linear-gradient(180deg,rgba(184,145,46,.18),rgba(184,145,46,.06));
  border-color:var(--gold);color:var(--gold-2);font-weight:600}
.btn.primary:hover{background:linear-gradient(180deg,rgba(184,145,46,.28),rgba(184,145,46,.12));
  box-shadow:0 0 16px rgba(184,145,46,.25)}
.btn.small{padding:5px 12px;font-size:10px}
.btn.full{width:100%}

.result-meta{padding:14px 18px;border-bottom:1px solid var(--border-2);
  color:var(--muted);font-size:12px;letter-spacing:.5px}
.result-meta b{color:var(--text)}
.table-wrap{overflow:auto;max-height:60vh}
table.contact{width:100%;border-collapse:collapse;font-size:12px}
table.contact th, table.contact td{padding:10px 14px;text-align:left;
  border-bottom:1px solid var(--border)}
table.contact th{color:var(--muted);font-size:9px;letter-spacing:1.8px;
  text-transform:uppercase;background:#0a0e15;position:sticky;top:0;z-index:2;
  border-bottom:2px solid var(--border-2)}
table.contact tr:hover td{background:rgba(184,145,46,.04)}
table.contact td.reg{color:#22c55e;font-weight:600;letter-spacing:.5px}
table.contact td.noreg{color:#f87171;font-weight:600}
table.contact td.sinver{color:#fbbf24;font-weight:600}
table.contact td.conf-alta{color:#22c55e}
table.contact td.conf-media{color:#93c5fd}
table.contact td.conf-baja{color:#fbbf24}
table.contact td.motivo{color:var(--muted);font-size:11px;max-width:280px;word-break:break-word}

#breach-fuentes{max-height:75vh;overflow-y:auto;background:#080b10}
.breach-source{padding:16px 18px;border-bottom:1px solid var(--border)}
.breach-source:last-child{border-bottom:none}
.breach-source .hdr{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px dashed #1e2733;
  gap:10px;flex-wrap:wrap}
.breach-source .name{color:var(--gold-2);font-weight:600;letter-spacing:1.5px;
  font-size:12px;text-transform:uppercase}
.breach-source .status{font-size:10px;padding:3px 10px;border-radius:3px;white-space:nowrap;
  letter-spacing:1px;text-transform:uppercase}
.breach-source .status.ok{background:rgba(22,163,74,.1);color:#22c55e;border:1px solid #14532d}
.breach-source .status.ko{background:rgba(185,28,28,.1);color:#f87171;border:1px solid #7f1d1d}
.breach-source .status.warn{background:rgba(180,83,9,.1);color:#fbbf24;border:1px solid #78350f}

.breach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:12px;margin-top:8px}
.breach-card{background:#050810;border:1px solid var(--border-2);
  border-left:3px solid var(--gold);border-radius:5px;padding:14px 16px;
  font-size:12px;color:var(--text);position:relative}
.breach-card::before{content:"";position:absolute;top:8px;right:8px;
  width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.4}
.breach-card.critico{border-left-color:var(--red)}
.breach-card.critico::before{background:var(--red);opacity:.9;
  box-shadow:0 0 8px rgba(185,28,28,.6)}
.breach-card .title{color:var(--gold-2);font-weight:600;font-size:12px;
  margin-bottom:8px;word-break:break-word;letter-spacing:.5px}
.breach-card .row{display:grid;grid-template-columns:100px 1fr;gap:8px;
  font-size:11px;padding:3px 0}
.breach-card .row .k{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-size:10px}
.breach-card .row .v{color:var(--text);word-break:break-word}
.breach-card .tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.breach-card .tag{background:rgba(74,127,158,.12);color:#93c5fd;
  border:1px solid #1e3a8a;border-radius:3px;padding:2px 7px;font-size:10px;
  letter-spacing:.8px;text-transform:uppercase}
.breach-card .tag.danger{background:rgba(185,28,28,.12);color:#f87171;border-color:#7f1d1d}
.breach-card .tag.warn{background:rgba(180,83,9,.12);color:#fbbf24;border-color:#78350f}
.breach-card .desc{color:var(--muted);font-size:11px;margin-top:10px;
  padding-top:8px;border-top:1px dashed #1e2733;line-height:1.6}

#criticidad-content{padding:16px 18px}
.crit-block{margin-bottom:14px}
.crit-block:last-child{margin-bottom:0}
.crit-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;
  margin-bottom:8px;font-weight:600;display:flex;align-items:center;gap:8px}
.crit-label.critico{color:#f87171}
.crit-label.medio{color:#fbbf24}
.crit-label.bajo{color:#93c5fd}
.crit-tags{display:flex;flex-wrap:wrap;gap:6px}
.crit-tag{padding:4px 10px;border-radius:3px;font-size:11px;letter-spacing:.8px;
  border:1px solid}
.crit-tag.critico{background:rgba(185,28,28,.1);color:#f87171;border-color:#7f1d1d}
.crit-tag.medio{background:rgba(180,83,9,.1);color:#fbbf24;border-color:#78350f}
.crit-tag.bajo{background:rgba(30,58,138,.15);color:#93c5fd;border-color:#1e3a8a}

.acciones-sugeridas{margin-top:14px;padding:12px 14px;background:#050810;
  border:1px solid var(--border-2);border-left:3px solid var(--amber);border-radius:4px}
.acciones-sugeridas h4{color:#fbbf24;font-size:10px;letter-spacing:2px;
  margin-bottom:8px;text-transform:uppercase;font-weight:600}
.acciones-sugeridas ul{list-style:none;padding-left:0}
.acciones-sugeridas li{color:var(--text);font-size:12px;padding:3px 0;
  padding-left:16px;position:relative}
.acciones-sugeridas li::before{content:"▸";position:absolute;left:0;color:var(--amber)}

.breach-link{display:block;color:#93c5fd;text-decoration:none;
  font-size:11px;padding:6px 10px;border-radius:4px;word-break:break-all;
  background:#050810;border:1px solid var(--border-2);margin:4px 0;transition:.15s}
.breach-link:hover{border-color:var(--gold);color:var(--gold-2)}

.watermark{padding:12px 16px;background:linear-gradient(90deg,rgba(185,28,28,.08),rgba(185,28,28,.03));
  border-top:1px solid #7f1d1d;color:#fbbf24;font-size:10px;letter-spacing:1.5px;
  text-align:center;text-transform:uppercase;font-weight:600}

pre.json{margin:0;padding:16px;background:#050810;color:var(--text);overflow:auto;
  max-height:calc(100vh - 260px);font-size:12px;white-space:pre-wrap;word-break:break-word}

/* ═══ Loader ═══════════════════════════════════════════════════════════ */
.breach-loader{position:fixed;inset:0;z-index:200;background:rgba(4,6,10,.98);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.breach-loader.hidden{display:none}
.loader-bg-grid{position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(30,58,138,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,58,138,.06) 1px, transparent 1px);
  background-size:48px 48px;animation:gridShift 20s linear infinite}
@keyframes gridShift{0%{transform:translate(0,0)}100%{transform:translate(48px,48px)}}
.loader-content{position:relative;z-index:2;width:min(680px,94vw);
  display:flex;flex-direction:column;align-items:center;gap:18px;padding:32px 28px}
.fox-svg-wrap{position:relative;width:180px;height:180px;
  display:flex;align-items:center;justify-content:center;
  animation:foxPulse 2.8s ease-in-out infinite}
.fox-svg-wrap img,.fox-svg-wrap svg{width:100%;height:100%;display:block;
  border-radius:12px;object-fit:cover}
@keyframes foxPulse{
  0%,100%{filter:drop-shadow(0 0 20px rgba(184,145,46,.35))}
  50%{filter:drop-shadow(0 0 40px rgba(225,29,72,.55))}}
.loader-title{color:#fff;letter-spacing:5px;font-weight:600;font-size:16px;
  text-transform:uppercase;font-family:ui-monospace,monospace}
.loader-sub{color:var(--muted);letter-spacing:2px;font-size:11px;
  text-transform:uppercase;text-align:center;min-height:16px}
.loader-bar-wrap{width:100%;display:flex;flex-direction:column;gap:8px}
.loader-bar{width:100%;height:10px;background:#050810;
  border:1px solid var(--border-2);border-radius:5px;overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.6)}
.loader-bar-fill{height:100%;background:linear-gradient(90deg,#7a5f1e,#b8912e,#d4af37);
  border-radius:5px;transition:width .4s ease-out;
  box-shadow:0 0 12px rgba(212,175,55,.5)}
.loader-meta{display:flex;justify-content:space-between;font-size:11px;
  color:var(--muted);letter-spacing:1.5px;text-transform:uppercase}
.loader-pct{color:var(--gold-2);font-weight:600}
.loader-eta{color:#93c5fd}
.loader-log{width:100%;max-height:170px;overflow-y:auto;background:#050810;
  border:1px solid var(--border-2);border-radius:5px;padding:10px 12px;
  font-size:11px;color:var(--muted);letter-spacing:.5px;line-height:1.7}
.loader-log .ll{display:grid;grid-template-columns:60px 1fr;gap:10px}
.loader-log .ll .t{color:#93c5fd}
.loader-log .ll.ok{color:#22c55e}
.loader-note{margin-top:6px;color:var(--red);font-size:10px;
  letter-spacing:2px;text-transform:uppercase;text-align:center}

/* ═══ Dorks ════════════════════════════════════════════════════════════ */
.dorks-lista{padding:14px 16px;display:flex;flex-direction:column;gap:8px;
  max-height:55vh;overflow-y:auto}
.dork-item{background:#050810;border:1px solid var(--border-2);
  border-left:3px solid var(--navy-2);border-radius:5px;padding:10px 12px;
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;transition:.15s}
.dork-item:hover{border-left-color:var(--gold);background:#0a0e15}
.dork-item .dork-desc{color:var(--muted);font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;margin-bottom:5px}
.dork-item .dork-code{color:#93c5fd;font-size:12px;word-break:break-all;
  font-family:ui-monospace,monospace;background:#020408;padding:6px 8px;
  border-radius:3px;border:1px solid var(--border)}
.dork-item .dork-actions{display:flex;gap:6px}
#dorks-resultados{padding:12px 14px;max-height:60vh;overflow-y:auto}
.motor-block{margin-bottom:16px;padding:12px 14px;background:#050810;
  border:1px solid var(--border-2);border-radius:5px;
  border-left:3px solid var(--gold-2)}
.motor-block .mhdr{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed #1e2733}
.motor-block .mname{color:var(--gold-2);font-weight:600;letter-spacing:1.5px;
  font-size:11px;text-transform:uppercase}
.motor-block .mstatus{font-size:10px;letter-spacing:1px;text-transform:uppercase}
.motor-block .mstatus.ok{color:#22c55e}
.motor-block .mstatus.ko{color:#f87171}
.resultado-item{padding:8px 10px;background:#080b10;border:1px solid var(--border);
  border-radius:4px;margin:5px 0;font-size:11px}
.resultado-item .rtitle{color:#93c5fd;font-weight:500;margin-bottom:3px}
.resultado-item .rurl{color:var(--gold-2);font-size:10px;word-break:break-all;
  text-decoration:none;display:block}
.resultado-item .rurl:hover{color:#fbbf24}
.resultado-item .rsnippet{color:var(--muted);font-size:10px;margin-top:4px;
  line-height:1.5;max-height:50px;overflow:hidden}

/* ═══ Correlation ══════════════════════════════════════════════════════ */
.corr-canvas{height:520px;position:relative;background:#050810;
  background-image:
    radial-gradient(circle at 50% 50%, rgba(30,58,138,.08) 0%, transparent 60%),
    linear-gradient(rgba(30,58,138,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,58,138,.03) 1px, transparent 1px);
  background-size:auto,32px 32px,32px 32px;
  overflow:hidden;cursor:grab}
.corr-canvas svg{width:100%;height:100%;display:block}
#corr-tablas{padding:14px 16px;max-height:60vh;overflow-y:auto}
.corr-seccion{margin-bottom:16px}
.corr-seccion h4{color:var(--gold-2);font-size:10px;letter-spacing:2px;
  text-transform:uppercase;margin-bottom:8px;font-weight:600;
  padding-bottom:5px;border-bottom:1px solid var(--border-2)}
.corr-chips{display:flex;flex-wrap:wrap;gap:6px}
.corr-chip{background:#050810;border:1px solid var(--border-2);border-radius:4px;
  padding:5px 10px;font-size:11px;color:#93c5fd;letter-spacing:.5px}
.corr-chip.email{border-color:#1e3a8a;color:#93c5fd}
.corr-chip.ip{border-color:#78350f;color:#fbbf24}
.corr-chip.breach{border-color:#7f1d1d;color:#f87171}
.corr-chip.plataforma{border-color:#14532d;color:#22c55e}
.corr-chip.campo{border-color:#4c1d95;color:#c4b5fd}

/* ═══ Domain Intel ════════════════════════════════════════════════════ */
#dom-whois, #dom-dns, #dom-shodan, #dom-urlscan{padding:16px 18px;
  max-height:60vh;overflow-y:auto}
.dom-kv{display:grid;grid-template-columns:220px 1fr;gap:8px 16px;
  font-size:12px;padding:5px 0;border-bottom:1px solid var(--border)}
.dom-kv .k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}
.dom-kv .v{color:var(--text);word-break:break-word}
#dom-subs{padding:16px 18px;max-height:50vh;overflow-y:auto;
  display:flex;flex-wrap:wrap;gap:6px}
.dom-sub{background:#050810;border:1px solid var(--border-2);border-radius:4px;
  padding:5px 10px;font-size:11px;color:#93c5fd;font-family:ui-monospace,monospace}
.dom-sub:hover{border-color:var(--gold);color:var(--gold-2)}

/* ═══ Alerts ══════════════════════════════════════════════════════════ */
.alerts-lista{padding:14px 16px;display:flex;flex-direction:column;gap:10px;
  max-height:65vh;overflow-y:auto}
.alerta-item{background:#050810;border:1px solid var(--border-2);
  border-left:3px solid var(--gold);border-radius:5px;padding:12px 14px;
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.alerta-item.revocada{border-left-color:var(--red);opacity:.6}
.alerta-item .al-hdr{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:6px;gap:10px;flex-wrap:wrap}
.alerta-item .al-id{color:var(--gold-2);font-weight:600;font-size:11px;letter-spacing:1.5px}
.alerta-item .al-tipo{color:#93c5fd;font-size:10px;letter-spacing:1px;text-transform:uppercase}
.alerta-item .al-target{color:var(--text);font-size:13px;font-family:ui-monospace,monospace;
  background:#020408;padding:3px 8px;border-radius:3px;display:inline-block;margin:4px 0}
.alerta-item .al-meta{color:var(--muted);font-size:10px;letter-spacing:.5px;margin-top:4px}
.alerta-item .al-actions{display:flex;gap:6px;flex-direction:column}
.alerta-item .historial{margin-top:8px;padding-top:6px;border-top:1px dashed #1e2733;
  font-size:10px;color:var(--muted)}
.alerta-item .historial .hitem{padding:2px 0}

/* ═══ Image Intel ════════════════════════════════════════════════════ */
#img-exif{font-size:12px}
#img-exif .exif-row{display:grid;grid-template-columns:220px 1fr;gap:8px 16px;
  padding:5px 0;border-bottom:1px solid var(--border)}
#img-exif .exif-row .k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}
#img-exif .exif-row .v{color:var(--text);word-break:break-word;font-family:ui-monospace,monospace;font-size:11px}
#img-alertas .alert-item{padding:10px 12px;background:#050810;border-left:3px solid var(--amber);
  border-radius:4px;margin-bottom:8px;font-size:12px}
#img-alertas .alert-item.ALTA{border-left-color:var(--red)}
#img-alertas .alert-item.ALTA .nivel{color:#f87171}
#img-alertas .alert-item.MEDIA{border-left-color:var(--amber)}
#img-alertas .alert-item.MEDIA .nivel{color:#fbbf24}
#img-alertas .alert-item.INFO{border-left-color:var(--navy-2)}
#img-alertas .alert-item.INFO .nivel{color:#93c5fd}
#img-alertas .alert-item .nivel{font-size:10px;letter-spacing:2px;font-weight:600;
  text-transform:uppercase;margin-bottom:4px}
#img-hashes .hash-row{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;
  padding:6px 0;border-bottom:1px solid var(--border)}
#img-hashes .hash-row .k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}
#img-hashes .hash-row .v{color:#93c5fd;font-family:ui-monospace,monospace;font-size:11px;word-break:break-all}
.img-reverse-card{display:flex;justify-content:space-between;align-items:center;
  padding:10px 12px;background:#050810;border:1px solid var(--border-2);border-radius:5px;
  margin-bottom:6px;gap:12px}
.img-reverse-card .info{flex:1}
.img-reverse-card .motor{color:var(--gold-2);font-weight:600;font-size:12px;letter-spacing:1px}
.img-reverse-card .desc{color:var(--muted);font-size:11px;margin-top:3px}
.img-reverse-card .nota{color:#93c5fd;font-size:10px;margin-top:3px;font-style:italic}
.img-reverse-card a.btn{text-decoration:none}

/* ═══ Fix modal mapa ══════════════════════════════════════════════════ */
/* Fix modal mapa: siempre cabe en pantalla */
#geo-modal{
  padding:12px !important;
}
#geo-modal .login-box{
  max-height:calc(100vh - 40px) !important;
  overflow-y:auto !important;
  display:flex !important;
  flex-direction:column !important;
  padding:16px !important;
}
#geo-modal #geo-mapa{
  height:auto !important;
  min-height:220px !important;
  max-height:52vh !important;
  flex:1 1 auto !important;
  width:100% !important;
  display:block !important;
}
#geo-modal #geo-mapa-lista{
  max-height:110px !important;
  overflow-y:auto !important;
  flex-shrink:0 !important;
}
/* ═══ Logo fox_loader.png en cabeceras ═══════════════════════════════ */
.login-logo{
  display:flex; align-items:center; justify-content:center;
  width:64px; height:64px; margin:0 auto 12px;
  background-image:url('/static/fox_loader.png');
  background-size:cover; background-position:center;
  border-radius:12px;
  border:1px solid var(--gold);
  box-shadow:0 0 24px rgba(184,145,46,.35);
  color:transparent !important; font-size:0 !important;
  text-shadow:none !important;
}
.login-logo.red{
  border-color:var(--red);
  box-shadow:0 0 24px rgba(185,28,28,.5);
}
.brand-mark{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  background-image:url('/static/fox_loader.png');
  background-size:cover; background-position:center;
  border-radius:8px;
  border:1px solid var(--gold);
  color:transparent !important; font-size:0 !important;
  text-shadow:none !important;
  flex-shrink:0;
}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#050810}
::-webkit-scrollbar-thumb{background:#1e2733;border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:#2a3644}
/* ═══ LOGO FOX_LOADER — fuerza cascada con !important ═══════════════════ */
.login-logo, .login-logo.red{
  display:block !important;
  width:72px !important;
  height:72px !important;
  margin:0 auto 14px auto !important;
  background-image:url('/static/fox_loader.png') !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  border-radius:12px !important;
  border:1px solid var(--gold) !important;
  box-shadow:0 0 24px rgba(184,145,46,.35) !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  text-indent:-9999px !important;
  overflow:hidden !important;
  padding:0 !important;
}
.login-logo.red{
  border-color:var(--red) !important;
  box-shadow:0 0 24px rgba(185,28,28,.5) !important;
}
.brand-mark{
  display:block !important;
  width:42px !important;
  height:42px !important;
  background-image:url('/static/fox_loader.png') !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  border-radius:8px !important;
  border:1px solid var(--gold) !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  text-indent:-9999px !important;
  overflow:hidden !important;
  padding:0 !important;
  flex-shrink:0 !important;
}
/* ═══ Timeline ═════════════════════════════════════════════════════════ */
.timeline-lista{padding:20px 26px 60px 26px;max-height:80vh;overflow-y:auto}
.tl-anio{margin-bottom:22px}
.tl-anio-hdr{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.tl-anio-hdr .num{font-size:22px;font-weight:700;color:var(--gold-2);letter-spacing:2px}
.tl-anio-hdr .linea{flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.tl-anio-hdr .cuenta{color:var(--muted);font-size:11px;letter-spacing:1.5px}
.tl-evento{position:relative;padding:10px 14px 10px 32px;border-left:2px solid var(--border-2);
  margin-left:8px}
.tl-evento::before{content:"";position:absolute;left:-7px;top:16px;width:12px;height:12px;
  border-radius:50%;background:var(--gold);border:2px solid #080a0e}
.tl-evento.breach::before{background:#f87171}
.tl-evento.prensa::before{background:#93c5fd}
.tl-evento.github::before{background:#22c55e}
.tl-evento.github_activity::before{background:#86efac}
.tl-evento.wayback::before{background:#c4b5fd}
.tl-evento.domain::before{background:#fbbf24}
.tl-evento:last-child{border-left-color:transparent}
.tl-evento .tl-fecha{color:var(--muted);font-size:11px;letter-spacing:1.5px;
  font-family:ui-monospace,monospace}
.tl-evento .tl-titulo{color:var(--text);font-size:13px;margin:3px 0 4px 0;
  font-weight:500;word-break:break-word}
.tl-evento .tl-desc{color:var(--muted);font-size:11px;margin-bottom:4px;
  word-break:break-word}
.tl-evento .tl-fuente{display:inline-block;padding:1px 7px;border-radius:3px;
  font-size:9px;letter-spacing:1.5px;text-transform:uppercase;margin-top:2px;
  background:rgba(184,145,46,.08);color:var(--gold-2);border:1px solid #3a2f0e}
.tl-evento .tl-url{display:inline-block;margin-left:8px;color:#93c5fd;font-size:11px;
  text-decoration:none;word-break:break-all}
.tl-evento .tl-url:hover{color:var(--gold-2)}
.tl-cat-chips{display:flex;flex-wrap:wrap;gap:8px}
.tl-cat-chip{background:#050810;border:1px solid var(--border-2);border-radius:4px;
  padding:8px 14px;display:flex;gap:10px;align-items:center}
.tl-cat-chip .k{color:var(--muted);font-size:10px;letter-spacing:1.5px;text-transform:uppercase}
.tl-cat-chip .v{color:var(--gold-2);font-size:16px;font-weight:600}
.tl-extra{color:var(--muted);font-size:11px;margin-top:3px;font-style:italic}

/* ═══ Documentos ═══════════════════════════════════════════════════════ */
#doc-meta{font-size:12px}
#doc-meta .doc-row{display:grid;grid-template-columns:220px 1fr;gap:8px 16px;
  padding:5px 0;border-bottom:1px solid var(--border)}
#doc-meta .doc-row .k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}
#doc-meta .doc-row .v{color:var(--text);word-break:break-word;font-family:ui-monospace,monospace;font-size:11px}
#doc-alertas .alert-item{padding:10px 12px;background:#050810;border-left:3px solid var(--amber);
  border-radius:4px;margin-bottom:8px;font-size:12px}
#doc-alertas .alert-item.ALTA{border-left-color:var(--red)}
#doc-alertas .alert-item.ALTA .nivel{color:#f87171}
#doc-alertas .alert-item.MEDIA{border-left-color:var(--amber)}
#doc-alertas .alert-item.MEDIA .nivel{color:#fbbf24}
#doc-alertas .alert-item.INFO{border-left-color:var(--navy-2)}
#doc-alertas .alert-item.INFO .nivel{color:#93c5fd}
#doc-alertas .alert-item .nivel{font-size:10px;letter-spacing:2px;font-weight:600;
  text-transform:uppercase;margin-bottom:4px}
#doc-extra .extra-row{padding:6px 0;border-bottom:1px dashed #1e2733;font-size:12px;color:var(--text)}
#doc-extra .extra-row .k{color:var(--muted);margin-right:10px}
#doc-hashes .hash-row{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;
  padding:6px 0;border-bottom:1px solid var(--border)}
#doc-hashes .hash-row .k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}
#doc-hashes .hash-row .v{color:#93c5fd;font-family:ui-monospace,monospace;font-size:11px;word-break:break-all}
/* ═══ Username Hunter ══════════════════════════════════════════════════ */
#uh-variantes .variante-chip{
  display:inline-block;padding:5px 12px;margin:3px;
  background:#050810;border:1px solid var(--border-2);border-radius:4px;
  font-family:ui-monospace,monospace;font-size:11px;color:#93c5fd;
}
#uh-variantes .variante-chip.probada{
  border-color:var(--gold);color:var(--gold-2);
  background:rgba(184,145,46,.08);
}
#uh-consolidado .plat-bloque{
  margin-bottom:16px;padding:12px 14px;background:#050810;
  border:1px solid var(--border-2);border-left:3px solid var(--gold);
  border-radius:5px;
}
#uh-consolidado .plat-bloque .plat-hdr{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:8px;gap:10px;flex-wrap:wrap;
}
#uh-consolidado .plat-bloque .plat-nombre{
  color:var(--gold-2);font-weight:600;letter-spacing:1.5px;
  font-size:12px;text-transform:uppercase;
}
#uh-consolidado .plat-bloque .plat-count{
  color:#22c55e;font-size:11px;font-weight:600;
}
#uh-consolidado .match{
  display:inline-block;padding:4px 10px;margin:3px 6px 3px 0;
  background:rgba(34,197,94,.08);border:1px solid #14532d;
  border-radius:4px;font-family:ui-monospace,monospace;
  font-size:11px;color:#22c55e;
}
#uh-consolidado .match.media{
  background:rgba(251,191,36,.08);border-color:#78350f;color:#fbbf24;
}
#uh-detalle details{
  background:#050810;border:1px solid var(--border-2);
  border-left:3px solid var(--navy-2);border-radius:5px;
  padding:10px 14px;margin-bottom:8px;
}
#uh-detalle details[open]{
  border-left-color:var(--gold);
}
#uh-detalle summary{
  cursor:pointer;color:var(--gold-2);font-weight:600;
  font-size:12px;letter-spacing:1px;user-select:none;
}
#uh-detalle summary .resumen-inline{
  color:var(--muted);font-weight:400;font-size:11px;
  margin-left:12px;
}
#uh-detalle .tabla-chica{
  width:100%;border-collapse:collapse;font-size:11px;
  margin-top:10px;
}
#uh-detalle .tabla-chica th,#uh-detalle .tabla-chica td{
  padding:6px 10px;text-align:left;
  border-bottom:1px solid var(--border);
}
#uh-detalle .tabla-chica th{
  color:var(--muted);font-size:9px;letter-spacing:1.5px;
  text-transform:uppercase;background:#0a0e15;
}
#uh-detalle .tabla-chica td.reg{color:#22c55e;font-weight:600}
#uh-detalle .tabla-chica td.noreg{color:#f87171}
#uh-detalle .tabla-chica td.sinver{color:#fbbf24}
#uh-detalle .tabla-chica td.conf-alta{color:#22c55e}
#uh-detalle .tabla-chica td.conf-media{color:#93c5fd}
#uh-detalle .tabla-chica td.conf-baja{color:#fbbf24}
/* ═══ NER · BOT · CUSTODY (v3.5) ═══ */
.ner-chip {
  display: inline-block;
  background: rgba(184,145,46,0.12);
  border: 1px solid rgba(184,145,46,0.35);
  color: #d9c07a;
  padding: 3px 10px;
  border-radius: 14px;
  font-size: 11px;
  margin: 2px 4px 2px 0;
}
.ner-chip b { color: #b8912e; margin-right: 4px; }
.conf-alta   { color: #4ade80 !important; }
.conf-media  { color: #facc15 !important; }
.conf-baja   { color: #f87171 !important; }
.mono        { font-family: ui-monospace, monospace; }
/* ═══ Sprint 5: formularios y tablas OSINT ═══ */
#xc-input,#sg-input { font-family:ui-monospace,monospace; font-size:11px; line-height:1.55; min-height:220px; }
#xc-results,#dw-results,#sg-results { overflow:hidden; }
#xc-table td:first-child { font-family:ui-monospace,monospace; font-size:10px; }
#dw-status,#xc-status,#sg-status { overflow-wrap:anywhere; }

/* ═══ GHOSTFOX — CAPA INSTITUCIONAL ÉPICA / RESPONSIVE / SCROLL ═══ */
.slogan{
  margin-top:18px;padding-top:14px;border-top:1px solid rgba(184,145,46,.18);
  color:var(--muted);font-size:10px;letter-spacing:1.2px;line-height:1.65;
  text-align:center;font-style:normal;text-transform:none;
}
.slogan strong{color:var(--gold-2);font-weight:600;letter-spacing:1.4px;display:block;margin-bottom:4px}
.login-bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55}
.login-overlay-inner{position:relative;z-index:2;width:100%;display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px}
#login-overlay{background:radial-gradient(ellipse at 50% 20%,rgba(30,58,138,.22),transparent 55%),rgba(4,6,10,.97)}
.login-box{overflow:hidden}
.login-box .login-logo{
  width:72px;height:72px;margin:0 auto 12px;border-radius:50%;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  background-image:url('/static/fox_loader.png');
  box-shadow:0 0 0 2px rgba(184,145,46,.35),0 0 40px rgba(184,145,46,.25);
  animation:foxPulse 3.6s ease-in-out infinite;
  font-size:0;color:transparent;text-shadow:none;
}
.login-logo.red{
  box-shadow:0 0 0 2px rgba(185,28,28,.4),0 0 36px rgba(185,28,28,.25);
  animation:none;
}
@keyframes foxPulse{
  0%,100%{box-shadow:0 0 0 2px rgba(184,145,46,.3),0 0 28px rgba(184,145,46,.18)}
  50%{box-shadow:0 0 0 3px rgba(212,175,55,.55),0 0 48px rgba(212,175,55,.32)}
}
.login-title{font-size:18px;letter-spacing:6px;margin-top:4px}
.login-sub{margin-bottom:8px}
.pin-meter{display:flex;gap:4px;justify-content:center;margin:10px 0 4px}
.pin-meter span{width:10px;height:4px;border-radius:2px;background:#1a2230;transition:.15s}
.pin-meter span.on{background:var(--gold)}
.pin-meter span.ok{background:var(--green)}
.pin-hint-live{font-size:10px;color:var(--muted);letter-spacing:1px;min-height:14px;margin-top:4px}

#gf-loader{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 30%,rgba(30,58,138,.2),transparent 50%),rgba(4,6,10,.97);
  backdrop-filter:blur(6px);transition:opacity .35s ease}
#gf-loader.hidden{display:none;opacity:0;pointer-events:none}
.gf-loader-card{width:min(420px,92vw);text-align:center;padding:36px 28px;
  border:1px solid var(--border-2);border-radius:10px;
  background:linear-gradient(180deg,#0f1520,#090d14);
  box-shadow:0 0 80px rgba(184,145,46,.1),inset 0 1px 0 rgba(255,255,255,.03);
  position:relative}
.gf-loader-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);border-radius:10px 10px 0 0}
.gf-loader-logo{width:88px;height:88px;margin:0 auto 18px;border-radius:50%;
  background:url('/static/fox_loader.png') center/cover no-repeat;
  box-shadow:0 0 0 2px rgba(184,145,46,.4),0 0 50px rgba(184,145,46,.28);
  animation:foxPulse 2.8s ease-in-out infinite}
.gf-loader-title{color:#fff;letter-spacing:5px;font-weight:600;font-size:15px;margin-bottom:6px}
.gf-loader-sub{color:var(--muted);letter-spacing:2px;font-size:10px;text-transform:uppercase;margin-bottom:22px}
.gf-loader-bar{width:100%;height:3px;background:#0a0e15;border-radius:2px;overflow:hidden;margin-bottom:16px}
.gf-loader-bar-fill{height:100%;width:30%;background:linear-gradient(90deg,#7a5f1e,var(--gold-2),#7a5f1e);
  background-size:200% 100%;animation:barSlide 1.6s linear infinite;border-radius:2px}
@keyframes barSlide{0%{transform:translateX(-120%)}100%{transform:translateX(400%)}}
.gf-loader-slogan{color:var(--muted);font-size:10px;letter-spacing:1px;line-height:1.6;margin-top:8px}
.gf-loader-slogan strong{color:var(--gold-2);display:block;margin-bottom:4px;letter-spacing:1.3px}

.main,.view,.panel,.event-stream,.tos-scroll,.loader-log,.nav,
#xc-results,#dw-results,#sg-results,.result-box,.table-wrap{
  scrollbar-width:thin;scrollbar-color:#2a3644 #050810}
.main{overflow:auto}
.view{overflow:auto;max-height:calc(100vh - 64px);padding-bottom:28px}
.panel{overflow:auto}
.event-stream{overflow-y:auto;max-height:min(420px,50vh)}
.nav{overflow-y:auto;flex:1;min-height:0;padding-right:2px}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#050810;border-left:1px solid #121820}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#243040,#1a2230);border-radius:6px;border:2px solid #050810}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#2f3f52,#243040)}
::-webkit-scrollbar-corner{background:#050810}

.btn-menu{display:none;background:transparent;border:1px solid var(--border-2);color:var(--gold-2);
  padding:8px 12px;border-radius:5px;letter-spacing:2px;font-size:11px;cursor:pointer;font-family:inherit}
.btn-menu:hover{border-color:var(--gold);background:rgba(184,145,46,.08)}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40}
.sidebar-backdrop.show{display:block}

@media (max-width:1100px){
  #app{grid-template-columns:220px 1fr}
  .sidebar{padding:14px 10px}
}
@media (max-width:860px){
  #app{grid-template-columns:1fr;height:100dvh}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:50;
    transform:translateX(-105%);transition:transform .28s ease;
    box-shadow:8px 0 40px rgba(0,0,0,.5)
  }
  .sidebar.open{transform:translateX(0)}
  .btn-menu{display:inline-flex;align-items:center;gap:6px}
  .main{min-height:100dvh}
  .view{max-height:none;padding:14px 12px 32px}
  .grid-kpi{grid-template-columns:1fr 1fr}
  .topbar{padding:10px 12px;gap:8px;flex-wrap:wrap}
  .login-box,.tos-box,.gf-loader-card{width:min(100%,96vw)}
  .pin-input{letter-spacing:4px;font-size:14px}
  .nav-item{padding:10px 8px}
  .status-bar{font-size:10px}
}
@media (max-width:520px){
  .grid-kpi{grid-template-columns:1fr}
  .login-title{letter-spacing:4px;font-size:15px}
  .topbar-right .badge-secure{display:none}
  .login-box{padding:24px 18px}
  .field-label{font-size:9px}
}

@supports (padding: max(0px)) {
  .sidebar{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .login-overlay-inner{padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
}

@media (pointer:coarse){
  .nav-item,.btn,.login-btn{min-height:44px}
  .pin-input,.text-input{min-height:48px;font-size:16px}
}

/* GhostFox Command Center — professional dashboard refresh */
.gf-command-center{display:flex;flex-direction:column;gap:20px;min-width:0}
.gf-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:center;padding:30px 32px;border:1px solid #2a3545;border-radius:9px;background:radial-gradient(ellipse at 82% 45%,rgba(184,145,46,.12),transparent 40%),linear-gradient(115deg,#101722 0%,#0c1119 58%,#101722 100%);box-shadow:0 16px 36px rgba(0,0,0,.22)}
.gf-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--gold-2),rgba(184,145,46,.08))}
.gf-hero-copy{position:relative;z-index:1}.gf-eyebrow,.gf-section-kicker{font-size:10px;letter-spacing:2px;color:#b9c3d1;font-weight:600}.gf-live-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#54c58a;box-shadow:0 0 0 4px rgba(84,197,138,.1)}
.gf-hero h1{font:600 clamp(24px,3vw,36px)/1.18 "Segoe UI",Arial,sans-serif;letter-spacing:-.8px;margin:15px 0 10px;color:#f1f5f9}.gf-hero h1 span{color:var(--gold-2)}
.gf-hero p{max-width:760px;font:400 13px/1.75 "Segoe UI",Arial,sans-serif;color:#9eacbd}.gf-hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.gf-action-primary,.gf-action-secondary{display:inline-flex;align-items:center;gap:10px;padding:11px 14px;border-radius:5px;text-decoration:none;font:600 11px/1.3 "Segoe UI",Arial,sans-serif;letter-spacing:.3px;cursor:pointer;transition:all .16s}.gf-action-primary{color:#f5df9c;background:linear-gradient(135deg,#57451c,#292416);border:1px solid #94752b}.gf-action-primary b{margin-left:6px;font-size:15px}.gf-action-primary:hover{background:linear-gradient(135deg,#6b5522,#34301a);border-color:#d4af37}.gf-action-secondary{color:#c1cbd7;background:#101722;border:1px solid #2b3747}.gf-action-secondary:hover{color:#fff;border-color:#63748b;background:#172131}
.gf-hero-mark{position:relative;width:220px;height:190px;justify-self:center;display:grid;place-items:center}.gf-mark-core{width:82px;height:82px;display:grid;place-items:center;border:1px solid rgba(212,175,55,.75);border-radius:22px;transform:rotate(45deg);color:#e6c86f;font:700 24px/1 "Segoe UI",Arial,sans-serif;letter-spacing:2px;background:rgba(9,13,19,.82);box-shadow:0 0 42px rgba(184,145,46,.12)}.gf-mark-core::first-letter{transform:rotate(-45deg)}.gf-orbit{position:absolute;border:1px solid rgba(184,145,46,.28);border-radius:50%;transform:rotate(-25deg)}.gf-orbit-one{width:170px;height:120px}.gf-orbit-two{width:205px;height:150px;transform:rotate(38deg);border-color:rgba(104,130,162,.22)}.gf-mark-caption{position:absolute;bottom:0;font-size:8px;letter-spacing:2px;color:#68788d}
.gf-section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:4px 0 0}.gf-section-heading h2{font:600 20px/1.3 "Segoe UI",Arial,sans-serif;color:#e7edf5;margin-top:5px}.gf-section-heading p{font:12px/1.6 "Segoe UI",Arial,sans-serif;color:var(--muted);margin-top:4px}.gf-section-count{font-size:9px;letter-spacing:1.3px;color:#8e9caf;border:1px solid #293444;padding:7px 10px;border-radius:4px;white-space:nowrap}
.gf-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gf-tool-card{display:flex;align-items:center;gap:12px;min-width:0;min-height:83px;padding:14px;background:linear-gradient(145deg,#111823,#0d121a);border:1px solid #222e3d;border-radius:6px;color:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;font-family:"Segoe UI",Arial,sans-serif}.gf-tool-card:hover{border-color:#7f6a32;background:linear-gradient(145deg,#171e29,#101721);transform:translateY(-1px)}.gf-tool-card .gf-tool-icon{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border:1px solid #334154;border-radius:6px;color:#d4b65c;background:#0a1018;font:600 17px/1 "Segoe UI",Arial,sans-serif}.gf-tool-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.gf-tool-copy b{font-size:12px;font-weight:600;color:#e2e8f0;line-height:1.35}.gf-tool-copy small{font-size:10.5px;color:#8290a3;line-height:1.5}.gf-tool-arrow{align-self:flex-start;color:#66778b;font-size:15px}.gf-tool-card-featured{border-color:#67562b;background:radial-gradient(ellipse at 100% 0,rgba(184,145,46,.12),transparent 65%),#121821}.gf-tool-card-featured .gf-tool-icon{border-color:#75602d;color:#f0d77f}.gf-footnote{padding:12px 14px;border-left:2px solid #665528;background:#0b1017;color:#7f8da0;font:11px/1.7 "Segoe UI",Arial,sans-serif}.gf-footnote span{font-size:9px;letter-spacing:1.6px;color:#c1a44a;margin-right:9px;font-weight:700}
.gf-tool-card.nav-item{border-left:1px solid #222e3d;box-shadow:none}.gf-tool-card.nav-item.active{border-color:var(--gold);background:#171b20;box-shadow:inset 3px 0 0 var(--gold)}
#view-dashboard{gap:18px}#view-dashboard>.grid-kpi{gap:10px}#view-dashboard>.grid-kpi .kpi{border-radius:7px;background:linear-gradient(145deg,#111823,#0d121a);padding:16px;border-color:#263243}#view-dashboard>.grid-kpi .kpi-value{font-family:"Segoe UI",Arial,sans-serif;font-size:24px;letter-spacing:.2px}
@media(max-width:1200px){.gf-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gf-hero{grid-template-columns:minmax(0,1fr) 180px;padding:24px}.gf-hero-mark{transform:scale(.85)}}
@media(max-width:860px){.gf-hero{grid-template-columns:1fr;padding:23px 20px}.gf-hero-mark{display:none}.gf-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gf-section-heading{align-items:start;flex-direction:column}.gf-section-count{display:none}}
@media(max-width:560px){.gf-tool-grid{grid-template-columns:1fr}.gf-hero h1{font-size:26px}.gf-hero-actions{flex-direction:column;align-items:stretch}.gf-action-primary,.gf-action-secondary{justify-content:center}.gf-tool-card{min-height:74px}.gf-command-center{gap:15px}}

/* Module health diagnostics */
.gf-module-health{border:1px solid #293546;border-radius:8px;background:#0b1119;padding:18px;display:flex;flex-direction:column;gap:13px;min-width:0}
.gf-health-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.gf-health-head h2{font-size:17px;font-weight:650;margin:5px 0;color:#e7edf5}
.gf-health-head p{font-size:11.5px;color:#8d9bb0;line-height:1.6;max-width:700px}
.gf-health-actions{display:flex;gap:7px;flex-wrap:wrap}
.gf-health-summary{padding:10px 12px;border:1px solid #263446;background:#0e1722;border-radius:5px;color:#bac6d5;font-size:11px;line-height:1.7}
.gf-health-filter{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:11px;color:#9aa8ba}
.gf-health-filter input{min-width:210px;max-width:100%;padding:8px 10px;background:#070c12;border:1px solid #2a3749;border-radius:4px;color:#e7edf5}
.gf-health-table-wrap{width:100%;overflow:auto;border:1px solid #202b3a;border-radius:5px}
.gf-health-table{width:100%;min-width:820px;border-collapse:collapse;font-size:10.5px}
.gf-health-table th,.gf-health-table td{padding:10px 11px;border-bottom:1px solid #202b3a;text-align:left;vertical-align:top;max-width:270px}
.gf-health-table th{color:#96a4b6;background:#0e141e;font-size:9px;letter-spacing:1px;text-transform:uppercase;position:sticky;top:0}
.gf-health-table td{color:#c2ccda;line-height:1.5}
.gf-health-table td strong{display:block;color:#e2e8f0;font-size:11px}
.gf-health-table td small{display:block;color:#728399;font-size:9.5px;margin-top:4px;overflow-wrap:anywhere}
.gf-health-table tr:last-child td{border-bottom:0}
.gf-health-table tr[hidden]{display:none}
.gf-health-status{display:inline-block;padding:3px 6px;border:1px solid;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.5px;white-space:nowrap}
.gf-health-status.good{color:#73d6a0;border-color:#285d43;background:#10251b}
.gf-health-status.warn{color:#f2c873;border-color:#6b5527;background:#241e11}
.gf-health-status.bad{color:#ffa1a1;border-color:#743939;background:#2a1518}
.gf-health-disclaimer{font-size:10px;color:#77869a;line-height:1.65}
@media(max-width:650px){.gf-module-health{padding:13px}.gf-health-head{align-items:stretch}.gf-health-actions{width:100%}.gf-health-actions .btn{flex:1}.gf-health-filter{align-items:stretch;flex-direction:column}.gf-health-filter input{width:100%;min-width:0}}

/* Catálogo comercial común, estado de cuenta y soporte accesible. */
.gf-login-actions,.gf-account-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0;align-items:center}
.gf-login-actions .btn,.gf-account-actions .btn{flex:1;min-width:170px;min-height:42px}
.gf-login-catalog,.gf-account-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0;max-height:min(48vh,540px);overflow:auto;padding:2px}
.gf-plan-card{border:1px solid var(--border-2);border-radius:10px;padding:13px 14px;background:linear-gradient(150deg,rgba(18,27,39,.94),rgba(8,12,18,.96));min-width:0;display:flex;flex-direction:column;gap:7px}
.gf-plan-card h3{font-size:13px;letter-spacing:1.2px;color:var(--gold-2);margin:0;text-transform:uppercase}
.gf-plan-price{font-size:21px;font-weight:700;letter-spacing:.2px;color:var(--text);overflow-wrap:anywhere}
.gf-plan-meta{font-size:11px;color:var(--muted);line-height:1.55}
.gf-plan-card button{margin-top:auto;min-height:38px}
.gf-plan-state{border-top:1px solid var(--border-2);padding-top:7px;font-size:10px;color:var(--muted)}
.gf-account-state,.gf-account-access{padding:12px 14px;margin:10px 0;border:1px solid var(--border-2);border-radius:8px;background:rgba(10,16,24,.8);font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.gf-account-access{border-color:#775e2b;color:#f2d58c}
.gf-top-menu-popup{position:absolute;z-index:1000;right:22px;top:62px;width:min(300px,calc(100vw - 24px));padding:8px;border:1px solid var(--border-2);border-radius:12px;background:rgba(10,15,22,.98);box-shadow:0 20px 60px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:4px}
.gf-top-menu-popup.hidden{display:none}
.gf-top-menu-popup button,.gf-top-menu-popup a{display:block;text-align:left;text-decoration:none;color:var(--text);background:transparent;border:1px solid transparent;border-radius:7px;padding:10px 12px;font:inherit;font-size:12px;cursor:pointer}
.gf-top-menu-popup button:hover,.gf-top-menu-popup a:hover{background:#172130;border-color:var(--border-2);color:var(--gold-2)}
.gf-support-overlay{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.76);display:flex;align-items:center;justify-content:center;padding:12px}
.gf-support-overlay.hidden{display:none}
.gf-support-dialog{width:min(650px,100%);max-height:min(90dvh,860px);display:flex;flex-direction:column;background:#0d141e;border:1px solid #38495c;border-radius:14px;box-shadow:0 24px 100px rgba(0,0,0,.65);overflow:hidden}
.gf-support-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border-2);background:#111c29}
.gf-support-head h2{font-size:14px;letter-spacing:1px;margin:0;color:var(--gold-2)}
.gf-support-body{padding:14px 16px;display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:0}
.gf-support-body label{display:block;color:var(--muted);font-size:11px;margin:0 0 5px}
.gf-support-body input,.gf-support-body textarea{width:100%;box-sizing:border-box;background:#080d13;border:1px solid #2b3b4d;border-radius:7px;padding:10px;color:var(--text);font:inherit}
.gf-support-body textarea{min-height:88px;max-height:220px;resize:vertical}
.gf-support-history{min-height:100px;max-height:34vh;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #243143;border-radius:8px;background:#080d13}
.gf-support-message{padding:9px 10px;border-radius:8px;background:#152230;border:1px solid #293b4e;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.gf-support-message.admin{border-color:#6c5728;background:#211d13}
.gf-support-message .meta{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.gf-support-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.gf-support-status{font-size:12px;color:var(--muted);min-height:18px}
.btn-menu{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
@media(max-width:860px){.gf-top-menu-popup{top:56px;right:10px}.gf-login-catalog{grid-template-columns:1fr}.gf-account-plans{grid-template-columns:1fr}.gf-support-dialog{max-height:94dvh}.gf-support-history{max-height:28vh}.gf-login-actions .btn,.gf-account-actions .btn{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.gf-support-dialog,.gf-plan-card{transition:none!important}}

