/* BolsaHoy Lab: una capa de producto sobre los datos y la comunidad que ya existen. */
.lab-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 84% 4%, rgba(31,128,255,.16), transparent 28rem),
    radial-gradient(circle at 4% 18%, rgba(0,196,140,.08), transparent 24rem),
    var(--bh-bg);
  color: var(--bh-ink);
}

.lab-page .app-header { z-index: 50; }
.lab-page .nav a.lab-nav-active { color: var(--bh-ink); }
.lab-shell { width: min(1220px, calc(100% - 44px)); margin: 0 auto; }
.lab-hero { padding: clamp(54px, 8vw, 104px) 0 48px; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:48px; align-items:center; }
.lab-eyebrow,.lab-kicker { display:inline-flex; align-items:center; gap:8px; color:var(--bh-blue); font:800 11px/1 var(--bh-font-mono); letter-spacing:.12em; text-transform:uppercase; }
.lab-eyebrow::before { content:""; width:22px; height:2px; border-radius:99px; background:var(--bh-blue); }
.lab-hero h1 { margin:18px 0 20px; max-width:720px; font-size:clamp(42px,6.4vw,86px); line-height:.96; letter-spacing:-.065em; font-weight:850; }
.lab-hero h1 em { color:var(--bh-green); font-style:normal; }
.lab-hero-copy > p { max-width:620px; margin:0; color:var(--bh-ink-muted); font-size:clamp(16px,1.7vw,20px); line-height:1.55; }
.lab-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.lab-btn { border:1px solid var(--bh-line); border-radius:999px; padding:12px 18px; color:var(--bh-ink); background:var(--bh-bg-elevated); font:800 13px/1 var(--bh-font-sans); text-decoration:none; cursor:pointer; transition:transform var(--bh-transition), border-color var(--bh-transition), background var(--bh-transition); }
.lab-btn:hover { transform:translateY(-2px); border-color:rgba(31,128,255,.55); }
.lab-btn--primary { background:var(--bh-blue); color:#fff; border-color:var(--bh-blue); box-shadow:0 12px 28px rgba(31,128,255,.22); }
.lab-btn--quiet { background:transparent; }
.lab-trust { display:flex; flex-wrap:wrap; gap:12px 18px; margin-top:22px; color:var(--bh-ink-muted); font:700 11px/1.3 var(--bh-font-mono); }
.lab-trust span { display:inline-flex; align-items:center; gap:6px; }
.lab-trust span::before { content:"✓"; color:var(--bh-green); font-weight:900; }

.lab-orbit { position:relative; min-height:360px; display:grid; place-items:center; border:1px solid var(--bh-line); border-radius:32px; overflow:hidden; background:linear-gradient(145deg, rgba(13,27,53,.84), rgba(5,7,13,.44)); box-shadow:var(--bh-shadow-glow); }
[data-theme="light"] .lab-orbit { background:linear-gradient(145deg, #fff, #edf4ff); }
.lab-orbit::before,.lab-orbit::after { content:""; position:absolute; border:1px solid rgba(31,128,255,.24); border-radius:50%; width:260px; height:260px; }
.lab-orbit::after { width:430px; height:430px; border-color:rgba(0,196,140,.12); }
.lab-orbit-glow { position:absolute; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, rgba(31,128,255,.36), transparent 68%); filter:blur(4px); }
.lab-orbit-core { position:relative; z-index:1; display:grid; place-items:center; width:142px; height:142px; border:1px solid rgba(255,255,255,.28); border-radius:50%; background:linear-gradient(145deg, #1f80ff, #0d54c8); box-shadow:0 0 0 14px rgba(31,128,255,.09), 0 22px 50px rgba(31,128,255,.32); text-align:center; color:#fff; }
.lab-orbit-core strong { display:block; font-size:28px; letter-spacing:-.07em; }
.lab-orbit-core small { display:block; margin-top:5px; color:rgba(255,255,255,.72); font:800 9px/1 var(--bh-font-mono); letter-spacing:.12em; text-transform:uppercase; }
.lab-orbit-chip { position:absolute; z-index:2; display:flex; flex-direction:column; gap:4px; min-width:102px; padding:10px 12px; border:1px solid var(--bh-line); border-radius:14px; background:color-mix(in srgb, var(--bh-panel) 88%, transparent); backdrop-filter:blur(12px); box-shadow:0 12px 24px rgba(0,0,0,.16); }
.lab-orbit-chip:nth-of-type(1) { top:14%; left:8%; }
.lab-orbit-chip:nth-of-type(2) { top:16%; right:8%; }
.lab-orbit-chip:nth-of-type(3) { bottom:13%; left:12%; }
.lab-orbit-chip:nth-of-type(4) { bottom:12%; right:9%; }
.lab-orbit-chip b { font-size:12px; }
.lab-orbit-chip span { color:var(--bh-ink-muted); font:700 10px/1 var(--bh-font-mono); }
.lab-orbit-chip.is-up span { color:var(--bh-green); }
.lab-orbit-chip.is-down span { color:var(--bh-red); }

.lab-section { padding:54px 0 0; scroll-margin-top:90px; }
.lab-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:20px; }
.lab-section-head h2 { margin:8px 0 0; font-size:clamp(26px,3.4vw,42px); line-height:1; letter-spacing:-.05em; }
.lab-section-head p { max-width:540px; margin:9px 0 0; color:var(--bh-ink-muted); font-size:14px; line-height:1.5; }
.lab-section-actions { display:flex; gap:8px; flex-wrap:wrap; }
.lab-mini-btn { border:1px solid var(--bh-line); border-radius:999px; background:var(--bh-bg-elevated); color:var(--bh-ink); padding:9px 13px; font:800 11px/1 var(--bh-font-sans); cursor:pointer; }
.lab-mini-btn:hover,.lab-mini-btn.is-active { border-color:var(--bh-blue); color:var(--bh-blue); }
.lab-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:16px; }
.lab-card { border:1px solid var(--bh-line); border-radius:18px; background:color-mix(in srgb, var(--bh-panel) 92%, transparent); box-shadow:0 16px 34px rgba(0,0,0,.08); }
.lab-card--padded { padding:20px; }
.lab-card-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.lab-card-title h3 { margin:0; font-size:15px; letter-spacing:-.02em; }
.lab-card-title small { color:var(--bh-ink-muted); font:700 10px/1.2 var(--bh-font-mono); }
.lab-card-title .live { color:var(--bh-green); }
.lab-card-title .live::before { content:""; display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px color-mix(in srgb, currentColor 14%, transparent); vertical-align:1px; }
.lab-dossier-list { display:grid; gap:10px; }
.lab-dossier { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--bh-line-soft); border-radius:14px; background:var(--bh-bg-elevated); transition:transform var(--bh-transition), border-color var(--bh-transition); }
.lab-dossier:hover { transform:translateY(-2px); border-color:rgba(31,128,255,.45); }
.lab-dossier-score { display:grid; place-items:center; width:64px; height:64px; border-radius:16px; background:linear-gradient(145deg, rgba(31,128,255,.2), rgba(0,196,140,.1)); border:1px solid rgba(31,128,255,.22); }
.lab-dossier-score strong { font-size:24px; letter-spacing:-.08em; }
.lab-dossier-score small { color:var(--bh-ink-muted); font:700 9px/1 var(--bh-font-mono); text-transform:uppercase; }
.lab-dossier-copy h4 { margin:0 0 6px; font-size:15px; line-height:1.2; }
.lab-dossier-copy p { margin:0; color:var(--bh-ink-muted); font-size:12px; line-height:1.45; }
.lab-dossier-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.lab-pill { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:999px; background:var(--bh-panel-2); color:var(--bh-ink-muted); font:700 10px/1 var(--bh-font-mono); }
.lab-pill--up { color:var(--bh-green); }
.lab-pill--down { color:var(--bh-red); }
.lab-dossier-arrow { color:var(--bh-blue); font-size:22px; text-decoration:none; }
.lab-empty { padding:28px 18px; border:1px dashed var(--bh-line); border-radius:14px; color:var(--bh-ink-muted); font-size:13px; line-height:1.55; }
.lab-signal-stack { display:grid; gap:10px; }
.lab-signal { padding:14px; border-radius:14px; background:var(--bh-bg-elevated); border:1px solid var(--bh-line-soft); }
.lab-signal strong { display:block; margin-bottom:5px; font-size:13px; }
.lab-signal p { margin:0; color:var(--bh-ink-muted); font-size:12px; line-height:1.5; }
.lab-signal b { color:var(--bh-ink); }
.lab-method { margin-top:12px; padding-top:12px; border-top:1px solid var(--bh-line-soft); color:var(--bh-ink-muted); font-size:11px; line-height:1.55; }
.lab-method strong { color:var(--bh-ink); }

.lab-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
.lab-metric { padding:16px; border:1px solid var(--bh-line); border-radius:15px; background:var(--bh-panel); }
.lab-metric span { display:block; color:var(--bh-ink-muted); font:700 10px/1 var(--bh-font-mono); text-transform:uppercase; }
.lab-metric strong { display:block; margin-top:10px; font-size:23px; letter-spacing:-.06em; }
.lab-metric em { display:block; margin-top:5px; color:var(--bh-ink-muted); font:700 10px/1.2 var(--bh-font-mono); font-style:normal; }
.lab-metric.is-up strong { color:var(--bh-green); }
.lab-metric.is-down strong { color:var(--bh-red); }
.lab-portfolio-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:16px; }
.lab-position-list { display:grid; gap:8px; }
.lab-position { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--bh-line-soft); }
.lab-position:last-child { border-bottom:0; }
.lab-position-name strong { display:block; font-size:13px; }
.lab-position-name small { display:block; margin-top:4px; color:var(--bh-ink-muted); font:700 10px/1 var(--bh-font-mono); }
.lab-position-price { text-align:right; font:800 12px/1.3 var(--bh-font-mono); }
.lab-position-price small { display:block; color:var(--bh-ink-muted); font-size:10px; font-weight:700; }
.lab-position-pnl { min-width:76px; text-align:right; font:800 12px/1.2 var(--bh-font-mono); }
.lab-position-pnl.is-up { color:var(--bh-green); }
.lab-position-pnl.is-down { color:var(--bh-red); }
.lab-trade-box { display:grid; gap:12px; }
.lab-trade-box h3 { margin:0; font-size:15px; }
.lab-form-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lab-field { display:grid; gap:6px; }
.lab-field label { color:var(--bh-ink-muted); font:800 10px/1 var(--bh-font-mono); text-transform:uppercase; }
.lab-field input,.lab-field select,.lab-field textarea { width:100%; box-sizing:border-box; border:1px solid var(--bh-line); border-radius:10px; background:var(--bh-bg-elevated); color:var(--bh-ink); padding:11px 12px; font:700 12px/1.2 var(--bh-font-sans); outline:none; }
.lab-field textarea { min-height:68px; resize:vertical; }
.lab-field input:focus,.lab-field select:focus,.lab-field textarea:focus { border-color:var(--bh-blue); box-shadow:0 0 0 3px rgba(31,128,255,.14); }
.lab-form-note { color:var(--bh-ink-muted); font-size:11px; line-height:1.45; }
.lab-form-message { min-height:16px; color:var(--bh-ink-muted); font-size:11px; }
.lab-form-message.is-error { color:var(--bh-red); }
.lab-form-message.is-ok { color:var(--bh-green); }
.lab-scenario { margin-top:16px; padding-top:16px; border-top:1px solid var(--bh-line-soft); }
.lab-scenario-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
.lab-scenario-top strong { font-size:13px; }
.lab-scenario-top output { color:var(--bh-blue); font:900 14px/1 var(--bh-font-mono); }
.lab-scenario input[type="range"] { width:100%; accent-color:var(--bh-blue); }
.lab-scenario-result { margin-top:10px; color:var(--bh-ink-muted); font-size:12px; line-height:1.45; }

.lab-prediction-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:16px; }
.lab-prediction-form { display:grid; gap:12px; }
.lab-direction { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.lab-direction button { border:1px solid var(--bh-line); border-radius:10px; background:var(--bh-bg-elevated); color:var(--bh-ink-muted); padding:11px 7px; font:800 11px/1 var(--bh-font-sans); cursor:pointer; }
.lab-direction button.is-active { color:var(--bh-ink); border-color:var(--bh-blue); background:rgba(31,128,255,.12); }
.lab-direction button[data-direction="up"].is-active { border-color:var(--bh-green); background:rgba(0,196,140,.1); }
.lab-direction button[data-direction="down"].is-active { border-color:var(--bh-red); background:rgba(240,68,56,.1); }
.lab-predictions-list { display:grid; gap:9px; }
.lab-prediction { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px 14px; border:1px solid var(--bh-line-soft); border-radius:14px; background:var(--bh-bg-elevated); }
.lab-prediction-badge { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--bh-panel-2); color:var(--bh-blue); font-size:17px; }
.lab-prediction-badge.is-up { color:var(--bh-green); }
.lab-prediction-badge.is-down { color:var(--bh-red); }
.lab-prediction-copy strong { display:block; font-size:13px; }
.lab-prediction-copy p { margin:5px 0 0; color:var(--bh-ink-muted); font-size:11px; line-height:1.4; }
.lab-prediction-status { text-align:right; font:800 10px/1.4 var(--bh-font-mono); color:var(--bh-ink-muted); }
.lab-prediction-status.is-hit { color:var(--bh-green); }
.lab-prediction-status.is-miss { color:var(--bh-red); }
.lab-scoreboard { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:13px; }
.lab-score { padding:8px 10px; border-radius:10px; background:var(--bh-panel-2); color:var(--bh-ink-muted); font:700 10px/1.2 var(--bh-font-mono); }
.lab-score strong { color:var(--bh-ink); font-size:14px; }

.lab-rooms { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.lab-room { position:relative; min-height:188px; display:flex; flex-direction:column; justify-content:space-between; padding:18px; overflow:hidden; border:1px solid var(--bh-line); border-radius:17px; background:linear-gradient(145deg, var(--bh-panel), var(--bh-bg-elevated)); }
.lab-room::after { content:""; position:absolute; width:150px; height:150px; right:-55px; top:-55px; border-radius:50%; background:radial-gradient(circle, rgba(31,128,255,.25), transparent 68%); pointer-events:none; }
.lab-room-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.lab-room-tag { color:var(--bh-blue); font:800 10px/1 var(--bh-font-mono); text-transform:uppercase; letter-spacing:.08em; }
.lab-room-status { color:var(--bh-green); font:800 10px/1 var(--bh-font-mono); }
.lab-room h3 { position:relative; z-index:1; margin:18px 0 7px; font-size:18px; letter-spacing:-.04em; }
.lab-room p { position:relative; z-index:1; margin:0; max-width:250px; color:var(--bh-ink-muted); font-size:12px; line-height:1.45; }
.lab-room-bottom { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }
.lab-room-time { color:var(--bh-ink-muted); font:800 10px/1 var(--bh-font-mono); }
.lab-room a { color:var(--bh-blue); font:800 11px/1 var(--bh-font-sans); text-decoration:none; }
.lab-room a:hover { text-decoration:underline; }
.lab-footnote { padding:50px 0 70px; color:var(--bh-ink-muted); text-align:center; font-size:11px; line-height:1.5; }
.lab-footnote a { color:var(--bh-blue); }
.lab-toast { position:fixed; z-index:100; left:50%; bottom:24px; transform:translate(-50%,20px); opacity:0; pointer-events:none; max-width:min(420px,calc(100% - 32px)); padding:12px 15px; border:1px solid rgba(0,196,140,.35); border-radius:12px; background:var(--bh-panel); color:var(--bh-ink); box-shadow:var(--bh-shadow); font-size:12px; transition:opacity var(--bh-transition), transform var(--bh-transition); }
.lab-toast.is-visible { opacity:1; transform:translate(-50%,0); }

@media (max-width: 900px) {
  .lab-hero { grid-template-columns:1fr; gap:30px; }
  .lab-orbit { min-height:300px; }
  .lab-grid,.lab-portfolio-grid,.lab-prediction-grid { grid-template-columns:1fr; }
  .lab-rooms { grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px) {
  .lab-shell { width:min(100% - 28px, 1220px); }
  .lab-hero { padding-top:38px; }
  .lab-hero h1 { font-size:clamp(40px,13vw,64px); }
  .lab-orbit { min-height:270px; border-radius:22px; }
  .lab-orbit::after { width:330px; height:330px; }
  .lab-orbit-chip { min-width:84px; padding:8px 9px; }
  .lab-orbit-chip:nth-of-type(1) { left:4%; }
  .lab-orbit-chip:nth-of-type(2) { right:4%; }
  .lab-orbit-chip:nth-of-type(3) { left:5%; }
  .lab-orbit-chip:nth-of-type(4) { right:4%; }
  .lab-section { padding-top:40px; }
  .lab-section-head { align-items:start; flex-direction:column; gap:12px; }
  .lab-section-actions { width:100%; }
  .lab-dossier { grid-template-columns:52px minmax(0,1fr); gap:10px; }
  .lab-dossier-score { width:52px; height:52px; border-radius:13px; }
  .lab-dossier-score strong { font-size:19px; }
  .lab-dossier-arrow { display:none; }
  .lab-metrics { grid-template-columns:1fr 1fr; }
  .lab-metric { padding:13px; }
  .lab-metric strong { font-size:19px; }
  .lab-position { grid-template-columns:minmax(0,1fr) auto; }
  .lab-position-pnl { grid-column:2; grid-row:1; }
  .lab-position-price { grid-column:1; grid-row:2; text-align:left; }
  .lab-rooms { grid-template-columns:1fr; }
  .lab-card--padded { padding:15px; }
}

@media (prefers-reduced-motion: reduce) {
  .lab-btn,.lab-dossier { transition:none; }
}
