/* ============================================================
   Bernal & Oliveros · Centro de Operaciones de Seguridad (SOC),
   Verificaciones manuales Didit y pantalla de carga.
   Usa las variables del tema activo (--gold-*, --ink-*, --danger…).
   Sin estilos en línea: compatible con la CSP estricta.
   ============================================================ */

:root {
  --sev-critical: #FF6B5E;
  --sev-high: #F59E42;
  --sev-medium: #E9C44C;
  --sev-low: #7FB6D9;
  --ok: #5FD29B;
  --soc-card: linear-gradient(160deg, rgba(20, 19, 24, .86), rgba(9, 9, 13, .92));
  --soc-line: rgba(255, 255, 255, .07);
}

/* ---------- Pantalla de carga con saludo ------------------------- */
#bootLoader {
  position: fixed; inset: 0; z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(900px 520px at 50% 38%, rgba(223, 183, 67, .14), transparent 62%),
    radial-gradient(1200px 700px at 85% 110%, rgba(223, 183, 67, .08), transparent 60%),
    #040406;
  transition: opacity .7s ease, visibility .7s ease, transform .7s ease;
}
#bootLoader.bl-hide { opacity: 0; visibility: hidden; transform: scale(1.02); pointer-events: none; }
html.boot-lock, html.boot-lock body { overflow: hidden; }

#bootLoader .bl-aurora {
  position: absolute; inset: -20%;
  background: conic-gradient(from 0deg at 50% 50%, transparent 0 55%, rgba(223, 183, 67, .10) 70%, transparent 85%);
  animation: bl-spin 14s linear infinite; filter: blur(40px);
}
#bootLoader .bl-center { position: relative; text-align: center; width: min(520px, 88vw); }

#bootLoader .bl-emblem { position: relative; width: 150px; height: 150px; margin: 0 auto 26px; }
#bootLoader .bl-emblem::before,
#bootLoader .bl-emblem::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
}
#bootLoader .bl-emblem::before {
  border: 1px solid rgba(223, 183, 67, .22);
  border-top-color: var(--gold-2, #DFB743); border-right-color: rgba(223, 183, 67, .55);
  animation: bl-spin 2.2s linear infinite;
}
#bootLoader .bl-emblem::after {
  inset: 12px; border: 1px dashed rgba(223, 183, 67, .25);
  animation: bl-spin 9s linear infinite reverse;
}
#bootLoader .bl-emblem img {
  position: absolute; inset: 26px; width: calc(100% - 52px); height: calc(100% - 52px);
  object-fit: contain; filter: drop-shadow(0 0 18px rgba(223, 183, 67, .35));
  animation: bl-breathe 3s ease-in-out infinite;
}
#bootLoader .bl-brand {
  font-family: var(--font-display, 'Cinzel', serif); letter-spacing: .34em; font-size: 12px;
  color: var(--gold-2, #DFB743); text-transform: uppercase; margin-bottom: 22px; opacity: .9;
}
#bootLoader .bl-stage { position: relative; min-height: 96px; }
#bootLoader .bl-status, #bootLoader .bl-greetbox { position: absolute; left: 0; right: 0; top: 0; transition: opacity .6s ease, transform .6s ease; }
#bootLoader .bl-status { font-family: var(--font-mono, monospace); font-size: 12.5px; letter-spacing: .12em; color: var(--ink-soft, #C5BEAC); padding-top: 26px; }
#bootLoader .bl-greetbox { opacity: 0; transform: translateY(14px); }
#bootLoader.greeting .bl-status { opacity: 0; transform: translateY(-10px); }
#bootLoader.greeting .bl-greetbox { opacity: 1; transform: none; }
#bootLoader .bl-hello { font-family: var(--font-serif, Georgia, serif); font-style: italic; font-size: 20px; color: var(--ink-soft, #C5BEAC); }
#bootLoader .bl-name {
  font-family: var(--font-display, 'Cinzel', serif); font-size: clamp(26px, 5.2vw, 38px); margin-top: 6px;
  background: linear-gradient(100deg, var(--gold-1, #FCEAB2), var(--gold-2, #DFB743) 45%, var(--gold-1, #FCEAB2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#bootLoader .bl-sub { margin-top: 10px; font-family: var(--font-mono, monospace); font-size: 11px; letter-spacing: .18em; color: var(--ink-faint, #756E5C); text-transform: uppercase; }
#bootLoader .bl-bar { margin: 24px auto 0; width: min(340px, 80%); height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .07); overflow: hidden; }
#bootLoader .bl-bar i {
  display: block; height: 100%; width: 0; border-radius: 3px;
  background: linear-gradient(90deg, var(--gold-3, #8C6A1A), var(--gold-2, #DFB743), var(--gold-1, #FCEAB2));
  box-shadow: 0 0 14px var(--gold-glow, rgba(223, 183, 67, .35));
  animation: bl-fill 5s cubic-bezier(.45, .05, .25, 1) forwards;
}
#bootLoader .bl-pct { margin-top: 10px; font-family: var(--font-mono, monospace); font-size: 10.5px; letter-spacing: .2em; color: var(--ink-faint, #756E5C); }
@keyframes bl-spin { to { transform: rotate(360deg); } }
@keyframes bl-breathe { 50% { transform: scale(1.05); } }
@keyframes bl-fill { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) {
  #bootLoader .bl-aurora, #bootLoader .bl-emblem::before, #bootLoader .bl-emblem::after, #bootLoader .bl-emblem img { animation: none; }
}

/* ---------- SOC: cabecera, pestañas ------------------------------ */
.soc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.soc-head-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.soc-stamp { font-family: var(--font-mono); font-size: 11px; color: var(--ink-faint); letter-spacing: .06em; }
.soc-live { display: inline-flex; align-items: center; gap: 7px; }
.soc-live::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 10px var(--ok); animation: soc-pulse 1.8s ease-in-out infinite; }
.soc-live.off::before { background: var(--ink-faint); box-shadow: none; animation: none; }
@keyframes soc-pulse { 50% { opacity: .35; transform: scale(.8); } }

.soc-threat {
  display: inline-flex; align-items: center; gap: 10px; padding: 9px 16px; border-radius: 999px;
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
  border: 1px solid var(--soc-line); background: rgba(255, 255, 255, .03); color: var(--ink-soft);
}
.soc-threat::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 12px currentColor; }
.soc-threat.verde { color: var(--ok); border-color: rgba(95, 210, 155, .35); background: rgba(95, 210, 155, .07); }
.soc-threat.amarillo { color: var(--sev-medium); border-color: rgba(233, 196, 76, .4); background: rgba(233, 196, 76, .08); }
.soc-threat.rojo { color: var(--sev-critical); border-color: rgba(255, 107, 94, .5); background: rgba(255, 107, 94, .1); animation: soc-alarm 1.6s ease-in-out infinite; }
@keyframes soc-alarm { 50% { box-shadow: 0 0 22px rgba(255, 107, 94, .35); } }

.soc-tabs { display: flex; gap: 6px; flex-wrap: wrap; padding: 5px; margin-bottom: 22px; border: 1px solid var(--soc-line); border-radius: 12px; background: rgba(255, 255, 255, .025); width: fit-content; max-width: 100%; }
.soc-tab {
  position: relative; background: transparent; border: 0; color: var(--ink-soft); cursor: pointer;
  font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: .02em;
  padding: 10px 18px; border-radius: 8px; transition: color .2s, background .2s;
}
.soc-tab:hover { color: var(--ink); background: rgba(255, 255, 255, .04); }
.soc-tab.active { color: #15120A; background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); box-shadow: 0 6px 18px var(--gold-glow); }
.soc-tab .soc-badge { margin-left: 8px; }
.soc-badge {
  display: inline-block; min-width: 19px; padding: 1px 6px; border-radius: 10px; text-align: center;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 700; background: var(--sev-critical); color: #1a0705;
}
.soc-badge.zero { display: none; }
.soc-pane { display: none; }
.soc-pane.active { display: block; animation: soc-in .35s ease; }
@keyframes soc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---------- KPIs ------------------------------------------------- */
.soc-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; margin-bottom: 20px; }
.soc-kpi {
  position: relative; text-align: left; cursor: pointer; padding: 18px 18px 16px; border-radius: 12px;
  background: var(--soc-card); border: 1px solid var(--soc-line); color: var(--ink);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; overflow: hidden;
}
.soc-kpi::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--kpi-accent, var(--ink-faint)); opacity: .9; }
.soc-kpi:hover { transform: translateY(-3px); border-color: var(--card-border); box-shadow: 0 14px 34px rgba(0, 0, 0, .5); }
.soc-kpi .k-label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint); }
.soc-kpi .k-value { font-family: var(--font-display); font-size: 34px; line-height: 1.1; margin: 8px 0 4px; color: var(--ink); }
.soc-kpi .k-sub { font-size: 12px; color: var(--ink-soft); min-height: 16px; }
.soc-kpi.t-ok { --kpi-accent: var(--ok); }
.soc-kpi.t-warn { --kpi-accent: var(--sev-medium); }
.soc-kpi.t-high { --kpi-accent: var(--sev-high); }
.soc-kpi.t-bad { --kpi-accent: var(--sev-critical); }
.soc-kpi.t-bad .k-value { color: var(--sev-critical); }
.soc-kpi.t-warn .k-value { color: var(--sev-medium); }

/* ---------- Tarjetas y rejilla ----------------------------------- */
.soc-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; margin-bottom: 18px; }
.soc-col-12 { grid-column: span 12; } .soc-col-8 { grid-column: span 8; } .soc-col-7 { grid-column: span 7; }
.soc-col-6 { grid-column: span 6; } .soc-col-5 { grid-column: span 5; } .soc-col-4 { grid-column: span 4; }
@media (max-width: 1100px) { .soc-col-8, .soc-col-7, .soc-col-6, .soc-col-5, .soc-col-4 { grid-column: span 12; } }

.soc-card { background: var(--soc-card); border: 1px solid var(--soc-line); border-radius: 14px; padding: 22px; position: relative; box-shadow: 0 14px 36px rgba(0, 0, 0, .35); }
.soc-card h3 { margin: 0 0 4px; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 21px; color: var(--gold-1); }
.soc-card .soc-hint { margin: 0 0 16px; font-size: 12.5px; color: var(--ink-faint); line-height: 1.5; }
.soc-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }

.soc-legend { display: flex; gap: 16px; font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-soft); letter-spacing: .06em; flex-wrap: wrap; }
.soc-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
.soc-chart { width: 100%; height: auto; display: block; }
.soc-chart .bar-c { fill: var(--gold-2); } .soc-chart .bar-s { fill: var(--sev-critical); }
.soc-chart .ln { fill: none; stroke: rgba(255, 255, 255, .35); stroke-width: 1.5; stroke-linejoin: round; }
.soc-chart .grid { stroke: rgba(255, 255, 255, .06); stroke-width: 1; }
.soc-chart text { fill: var(--ink-faint); font-family: var(--font-mono); font-size: 10px; }
.soc-chart .hit { fill: transparent; }
.soc-chart .hit:hover { fill: rgba(255, 255, 255, .05); }

.soc-feed { display: flex; flex-direction: column; max-height: 340px; overflow-y: auto; margin: 0 -6px; padding: 0 6px; }
.soc-feed-item { display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--soc-line); font-size: 13px; }
.soc-feed-item:last-child { border-bottom: 0; }
.soc-feed-item .f-main { flex: 1; min-width: 0; }
.soc-feed-item .f-title { color: var(--ink); font-weight: 600; }
.soc-feed-item .f-meta { font-family: var(--font-mono); font-size: 11px; color: var(--ink-faint); }
.soc-feed-item time { font-family: var(--font-mono); font-size: 11px; color: var(--ink-faint); white-space: nowrap; }
.soc-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--ink-faint); }
.soc-dot.d-bad { background: var(--sev-critical); box-shadow: 0 0 9px var(--sev-critical); }
.soc-dot.d-warn { background: var(--sev-medium); }
.soc-dot.d-ok { background: var(--ok); }
.soc-empty { padding: 22px 8px; text-align: center; color: var(--ink-faint); font-size: 13px; }

.soc-bars { display: flex; flex-direction: column; gap: 11px; }
.soc-bar-row { display: grid; grid-template-columns: 150px 1fr 44px; align-items: center; gap: 12px; font-size: 12.5px; color: var(--ink-soft); }
.soc-bar-track { height: 8px; border-radius: 6px; background: rgba(255, 255, 255, .06); overflow: hidden; }
.soc-bar-track i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--gold-3), var(--gold-2)); }
.soc-bar-row b { font-family: var(--font-mono); font-weight: 600; text-align: right; color: var(--ink); }

/* ---------- Alertas ---------------------------------------------- */
.soc-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.soc-chip {
  background: rgba(255, 255, 255, .04); border: 1px solid var(--soc-line); color: var(--ink-soft); cursor: pointer;
  padding: 7px 14px; border-radius: 999px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; transition: all .2s;
}
.soc-chip:hover { color: var(--ink); border-color: var(--card-border); }
.soc-chip.active { color: #15120A; background: var(--gold-2); border-color: var(--gold-2); font-weight: 700; }
.soc-spacer { flex: 1; }

.soc-alert { display: flex; gap: 16px; padding: 16px 18px; margin-bottom: 12px; border-radius: 12px; border: 1px solid var(--soc-line); border-left: 4px solid var(--sev-low); background: rgba(255, 255, 255, .025); }
.soc-alert.s-critical { border-left-color: var(--sev-critical); background: linear-gradient(90deg, rgba(255, 107, 94, .08), transparent 45%); }
.soc-alert.s-high { border-left-color: var(--sev-high); background: linear-gradient(90deg, rgba(245, 158, 66, .07), transparent 45%); }
.soc-alert.s-medium { border-left-color: var(--sev-medium); }
.soc-alert.done { opacity: .55; }
.soc-alert .a-body { flex: 1; min-width: 0; }
.soc-alert .a-title { font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.soc-alert .a-evid { font-size: 13px; color: var(--ink-soft); line-height: 1.5; }
.soc-alert .a-rec { margin-top: 6px; font-size: 13px; color: var(--gold-1); }
.soc-alert .a-meta { margin-top: 8px; font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-faint); display: flex; gap: 10px; flex-wrap: wrap; }
.soc-sev { display: inline-block; padding: 2px 8px; border-radius: 4px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: #140d05; background: var(--sev-low); margin-right: 8px; }
.soc-sev.s-critical { background: var(--sev-critical); } .soc-sev.s-high { background: var(--sev-high); } .soc-sev.s-medium { background: var(--sev-medium); }
.soc-scan { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; padding: 14px 18px; margin-bottom: 18px; border: 1px dashed var(--card-border); border-radius: 12px; font-size: 13px; color: var(--ink-soft); }
.soc-scan b { color: var(--ink); }

/* ---------- Formularios y botones SOC ---------------------------- */
.soc-form { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.soc-form .cyber-input, .soc-input {
  flex: 1; min-width: 160px; background: rgba(0, 0, 0, .35); border: 1px solid var(--soc-line); color: var(--ink);
  border-radius: 8px; padding: 11px 14px; font-family: var(--font-mono); font-size: 12.5px; outline: none; transition: border-color .2s, box-shadow .2s;
}
.soc-form .cyber-input:focus, .soc-input:focus { border-color: var(--gold-2); box-shadow: 0 0 0 3px var(--gold-glow); }
.btn-cyber {
  background: rgba(255, 255, 255, .04); border: 1px solid var(--soc-line); color: var(--gold-1);
  font-family: var(--font-body); font-weight: 600; font-size: 12.5px; letter-spacing: .03em; text-transform: none;
  padding: 10px 18px; border-radius: 8px; cursor: pointer; transition: all .2s ease;
}
.btn-cyber:hover { background: rgba(223, 183, 67, .1); border-color: var(--gold-2); box-shadow: 0 0 16px var(--gold-glow); }
.btn-cyber.primary { background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color: #15120A; border-color: transparent; }
.btn-cyber-danger { border-color: rgba(255, 107, 94, .4); color: var(--sev-critical); }
.btn-cyber-danger:hover { background: rgba(255, 107, 94, .12); border-color: var(--sev-critical); box-shadow: 0 0 16px rgba(255, 107, 94, .2); }
.btn-cyber:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }

/* filas de las herramientas reutilizadas (bloqueos, límites, checklist) */
.soc-card .cyber-row { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 11px 2px; border-bottom: 1px solid var(--soc-line); font-family: var(--font-mono); font-size: 12px; color: var(--ink-soft); }
.soc-card .cyber-row:last-child { border-bottom: 0; }
.soc-card .empty-note, .soc-card p.soc-note { color: var(--ink-faint); font-size: 12.5px; padding: 8px 2px; }
.soc-check { display: flex; align-items: center; gap: 12px; padding: 11px 2px; border-bottom: 1px solid var(--soc-line); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.soc-check input { accent-color: var(--gold-2); width: 16px; height: 16px; }

/* ---------- Tabla de accesos ------------------------------------- */
.soc-table-wrap { overflow-x: auto; }
.soc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.soc-table th { text-align: left; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); font-weight: 500; padding: 10px 12px; border-bottom: 1px solid var(--soc-line); white-space: nowrap; }
.soc-table td { padding: 13px 12px; border-bottom: 1px solid var(--soc-line); color: var(--ink-soft); vertical-align: middle; }
.soc-table tr:hover td { background: rgba(255, 255, 255, .02); }
.soc-table .who { color: var(--ink); font-weight: 600; }
.soc-table .who small { display: block; font-family: var(--font-mono); font-weight: 400; font-size: 10.5px; color: var(--ink-faint); }
.soc-row-actions { display: flex; gap: 8px; }
.soc-row-actions .btn-cyber { padding: 6px 11px; font-size: 11px; }

/* ---------- Verificaciones manuales Didit ------------------------ */
.kyc-summary { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.kyc-pill { padding: 12px 18px; border-radius: 12px; border: 1px solid var(--soc-line); background: var(--soc-card); min-width: 150px; }
.kyc-pill b { display: block; font-family: var(--font-display); font-size: 26px; color: var(--ink); }
.kyc-pill span { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.kyc-card { background: var(--soc-card); border: 1px solid var(--soc-line); border-radius: 14px; padding: 22px; margin-bottom: 16px; transition: border-color .25s; }
.kyc-card:hover { border-color: var(--card-border); }
.kyc-top { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.kyc-name { font-family: var(--font-serif); font-size: 22px; color: var(--gold-1); }
.kyc-email { font-family: var(--font-mono); font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
.kyc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 18px 0; padding: 14px 0; border-top: 1px solid var(--soc-line); border-bottom: 1px solid var(--soc-line); }
.kyc-facts div span { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 4px; }
.kyc-facts div b { font-weight: 600; color: var(--ink); font-size: 13.5px; }
.kyc-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kyc-doc { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--soc-line); border-radius: 10px; background: rgba(255, 255, 255, .025); }
.kyc-doc .d-ic { font-size: 22px; color: var(--gold-2); }
.kyc-doc .d-main { flex: 1; min-width: 0; font-size: 12.5px; color: var(--ink-soft); }
.kyc-doc .d-main b { display: block; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kyc-note { margin-bottom: 14px; padding: 12px 14px; border-left: 3px solid var(--gold-3); background: rgba(255, 255, 255, .03); border-radius: 0 8px 8px 0; font-size: 13px; color: var(--ink-soft); }
.kyc-decide { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.kyc-decide textarea { flex: 1; min-width: 240px; min-height: 44px; resize: vertical; background: rgba(0, 0, 0, .35); border: 1px solid var(--soc-line); border-radius: 8px; color: var(--ink); padding: 11px 14px; font-family: var(--font-body); font-size: 13px; outline: none; }
.kyc-decide textarea:focus { border-color: var(--gold-2); box-shadow: 0 0 0 3px var(--gold-glow); }
.nav-badge { margin-left: auto; min-width: 20px; padding: 1px 7px; border-radius: 10px; font-family: var(--font-mono); font-size: 10.5px; font-weight: 700; background: var(--sev-critical); color: #1a0705; text-align: center; }
.nav-badge.zero { display: none; }

@media (max-width: 720px) {
  .soc-bar-row { grid-template-columns: 110px 1fr 36px; }
  .soc-tab { padding: 9px 12px; font-size: 12px; }
  .soc-alert { flex-direction: column; }
}

/* Cadena inmutable: nota de bifurcación histórica */
.wfork { margin-top: 8px; padding: 8px 12px; border-left: 3px solid var(--sev-medium); background: rgba(233, 196, 76, .07); border-radius: 0 6px 6px 0; font-size: 12px; color: var(--ink-soft); }

.denied-toast{position:fixed;right:20px;bottom:24px;z-index:9999;max-width:360px;padding:12px 16px;border-radius:10px;background:#1b1418;color:#f3d9dc;border:1px solid #6b2a33;box-shadow:0 10px 30px rgba(0,0,0,.45);font-size:13px;line-height:1.4;animation:dtIn .25s ease-out;transition:opacity .4s,transform .4s}
.denied-toast.out{opacity:0;transform:translateY(8px)}
@keyframes dtIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.soc-bulk{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border:1px dashed rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.02)}
.soc-bulk-all{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}
.soc-bulk-count{font-size:12px;opacity:.7;flex:1}
.soc-alert{position:relative}
.a-sel{display:flex;align-items:flex-start;padding-top:4px;cursor:pointer}
.a-sel input,.soc-bulk input{width:16px;height:16px;accent-color:#5cc8ff;cursor:pointer}
.a-x{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:transparent;color:inherit;opacity:.65;font-size:13px;cursor:pointer;transition:all .15s}
.a-x:hover{opacity:1;background:rgba(248,113,113,.18);border-color:#f87171;color:#fca5a5}
#threatBanner .tb-x{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;opacity:.7;font-size:12px;line-height:1}
#threatBanner .tb-x:hover{opacity:1}
