/* General Wrapper */
.blt-alerts-wrapper {
    font-family: 'Inter', sans-serif;
    color: #333;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    max-width: 1200px;
    margin: 0 auto;
    overflow: visible !important;
}

/* Espaciado entre secciones */
.blt-section-spacing {
    margin-top: 40px;
}

/* Tabs Navigation */
.alertas-tabs {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    margin-bottom: 20px;
    position: relative;
    flex-wrap: wrap;
    z-index: 10;
}

.blt-tablink {
    background: linear-gradient(145deg, #e0e0e0, #f2f2f2);
    border: 1px solid #ddd;
    border-radius: 8px 8px 0 0;
    padding: 12px 20px;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    color: #555;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease-in-out;
    min-width: 120px;
    min-height: 48px;
    text-transform: capitalize;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.blt-tablink.active {
    background: #fff;
    color: #4CAF50;
    font-weight: bold;
    border-bottom: 3px solid #4CAF50;
    box-shadow: 0 4px 8px rgba(76, 175, 80, 0.2);
    transform: translateY(-2px);
}

.blt-tablink:hover {
    background: #f0f0f0;
    color: #4CAF50;
}

/* --- 2. ELIMINAR SCROLL INTERNO EN TABS --- */
.blt-tabcontent {
    display: none;
    border: 1px solid #ddd;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    /* CAMBIO: visible evita la segunda barra de scroll vertical */
    overflow: visible !important; 
}

.blt-tabcontent.active {
    display: block !important;
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Inputs Styles */
.alerta-form-group {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

.alerta-form-group label {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #555;
}

.alerta-form-group input[type="text"],
.alerta-form-group input[type="number"],
.alerta-form-group textarea,
.alerta-form-group select {
    width: 100%;
    max-width: 700px;
    padding: 12px 16px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    background: #fff;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: border 0.3s, box-shadow 0.3s;
}

.alerta-form-group input[type="text"]:focus,
.alerta-form-group input[type="number"]:focus,
.alerta-form-group textarea:focus,
.alerta-form-group select:focus {
    border-color: #4CAF50;
    box-shadow: 0 0 6px rgba(76, 175, 80, 0.4);
    outline: none;
}

/* Submit Button */
.alerta-submit {
    background: linear-gradient(145deg, #4CAF50, #45a049);
    color: #fff;
    border: none;
    padding: 12px 24px;
    cursor: pointer;
    font-size: 16px;
    border-radius: 8px;
    font-weight: bold;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease-in-out;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.alerta-submit:hover {
    background: #43a047;
    transform: translateY(-2px);
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
}

.alerta-submit:active {
    transform: scale(0.98);
}

.alerta-submit.small-button {
    padding: 5px 10px;
    font-size: 12px;
}

/* Table for Existing Alerts */
.alertas-table-wrapper {
    overflow-x: auto;
    margin-bottom: 20px;
}

.alertas-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 600px;
    margin-bottom: 20px;
    table-layout: auto;
}

.alertas-table th,
.alertas-table td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
    font-size: 14px;
    word-wrap: break-word;
}

.alertas-table th {
    background-color: #4CAF50;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
}

.alertas-table tr:nth-child(even) {
    background-color: #f9f9f9;
}

.alertas-table tr:hover {
    background-color: #e9e9e9;
}

.description-column {
    width: 15%;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.actions-column {
    text-align: center;
    white-space: nowrap;
}

/* Botones en Actions */
.button-style {
    padding: 8px 0;
    width: 70px;
    margin: 0 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #f8f8f8;
    color: #333;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    font-size: 12px;
    text-align: center;
    transition: background-color 0.3s ease;
}

.button-style:hover {
    background-color: #e0e0e0;
}

.alerta-edit-button.button-style {
    background-color: #4CAF50;
    color: white;
    border-color: #4CAF50;
}

.alerta-edit-button.button-style:hover {
    background-color: #45a049;
}

.alerta-delete-button.button-style {
    background-color: #f44336;
    color: white;
    border-color: #f44336;
}

.alerta-delete-button.button-style:hover {
    background-color: #da190b;
}

/* Results Table */
.alertas-table-results-wrapper {
    overflow-x: auto;
    margin-bottom: 20px;
    width: 100%;
    -webkit-overflow-scrolling: touch;
}

.alertas-table-results {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

.alertas-table-results th,
.alertas-table-results td {
    border: 0;
    padding: 12px 15px;
    text-align: left;
    font-size: 14px;
    word-wrap: break-word;
    overflow: hidden;
    white-space: nowrap;
}

.alertas-table-results th {
    background-color: #4CAF50;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
}

.alertas-table-results tr:nth-child(even) {
    background-color: #f9f9f9;
}

.alertas-table-results tr:hover {
    background-color: #e9e9e9;
}

.result-positive {
    color: #2ecc71;
    font-weight: bold;
}

.result-negative {
    color: #e74c3c;
    font-weight: bold;
}

/* Profit Calculator Form */
.profit-calculator-form {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-end;
    margin-top: 20px;
}

.calculation-output {
    margin-top: 20px;
    padding: 15px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.profit-result p {
    margin: 0;
    line-height: 1.6;
    font-size: 15px;
}

.profit-positive {
    color: #2ecc71;
    font-weight: bold;
}

.profit-negative {
    color: #e74c3c;
    font-weight: bold;
}

.result-loss {
    color: #e74c3c;
    font-weight: bold;
}

/* Pagination */
.blt-pagination {
    margin-top: 20px;
    text-align: center;
}

.blt-pagination a,
.blt-pagination span {
    padding: 5px 10px;
    margin: 0 5px;
    background: #f4f4f4;
    text-decoration: none;
    color: #333;
    border-radius: 5px;
    transition: background 0.3s;
}

.blt-pagination a:hover {
    background: #e0e0e0;
}

.blt-pagination .current {
    background: #4CAF50;
    color: white;
}

/* Telegram Info Section */
.blt-telegram-info {
    max-width: 600px;
    margin: 20px 0;
    padding: 20px;
}

.blt-telegram-info h3,
.blt-telegram-info h4 {
    color: #333;
    margin-bottom: 15px;
}

.blt-telegram-info p {
    margin: 10px 0;
    color: #555;
}

/* Telegram Form */
.blt-telegram-form {
    margin-top: 15px;
}

.blt-telegram-form .alerta-form-group {
    margin-bottom: 15px;
}

.blt-telegram-form label {
    display: block;
    font-weight: bold;
    margin-bottom: 5px;
    color: #333;
}

.blt-telegram-form input[type="text"] {
    width: 100%;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.blt-telegram-form input[type="text"]:focus {
    outline: none;
    border-color: #b28fff;
    box-shadow: 0 0 5px rgba(178, 143, 255, 0.3);
}

.blt-telegram-form input[readonly] {
    background: #e9ecef;
    cursor: not-allowed;
}

/* Telegram Toggle Button */
.blt-telegram-form .alerta-submit.blt-toggle-button {
    background: #4CAF50;
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    cursor: pointer !important;
    font-size: 14px;
    transition: background 0.3s;
    pointer-events: auto !important;
}

.blt-telegram-form .alerta-submit.blt-toggle-button:hover {
    background: #45a049;
}

.blt-telegram-form .alerta-submit.blt-toggle-button:disabled {
    background: #cccccc;
    cursor: not-allowed;
    opacity: 0.6;
}

/* Feedback Messages */
.blt-message {
    margin-top: 15px;
    padding: 10px;
    border-radius: 4px;
}

.blt-success {
    background: #dff0d8;
    color: #3c763d;
    border: 1px solid #d6e9c6;
}

.blt-error {
    background: #f2dede;
    color: #a94442;
    border: 1px solid #ebccd1;
}

/* Responsive Design */
@media (max-width: 768px) {
    .alertas-tabs {
        flex-wrap: wrap;
    }

    .blt-tablink {
        flex: 1 1 45%;
        padding: 10px 15px;
        min-height: 48px;
        font-size: 14px;
    }

    .alerta-form-group input[type="text"],
    .alerta-form-group input[type="number"],
    .alerta-form-group textarea,
    .alerta-form-group select {
        font-size: 14px;
        padding: 10px;
        max-width: 100%;
    }

    .alerta-submit {
        font-size: 14px;
        padding: 10px 18px;
    }

    .alertas-table-results-wrapper,
    .alertas-table-wrapper {
        overflow-x: auto;
    }

    .alertas-table th,
    .alertas-table td,
    .alertas-table-results th,
    .alertas-table-results td {
        font-size: 13px;
        padding: 10px;
        min-width: 80px;
    }

    .description-column {
        width: 20%;
        max-width: 120px;
    }

    .button-style {
        width: 60px;
        padding: 6px 0;
    }

    .profit-calculator-form {
        flex-direction: column;
        align-items: stretch;
    }

    .profit-calculator-form .alerta-form-group {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .blt-alerts-wrapper {
        padding: 15px;
    }

    .blt-tablink {
        flex: 1 1 100%;
        font-size: 13px;
        padding: 10px 12px;
        min-height: 48px;
    }

    .alerta-form-group input[type="text"],
    .alerta-form-group input[type="number"],
    .alerta-form-group textarea,
    .alerta-form-group select {
        font-size: 13px;
    }

    .alertas-table th,
    .alertas-table td,
    .alertas-table-results th,
    .alertas-table-results td {
        font-size: 12px;
        padding: 8px;
        min-width: 60px;
    }

    .description-column {
        width: 25%;
        max-width: 100px;
    }

    .button-style {
        width: 50px;
        font-size: 11px;
        padding: 5px 0;
    }

    .calculation-output {
        padding: 10px;
        font-size: 14px;
    }

    .blt-section-spacing {
        margin-top: 30px;
    }
}
/* =========================================
   BLT FUTURISTIC HUD DASHBOARD 3.4 (MOBILE OPTIMIZED)
   ========================================= */
:root {
    --neon-blue: #00f7ff;
    --neon-purple: #bc13fe;
    --neon-green: #0aff60;
    --neon-red: #ff2a2a;
    --hud-bg: rgba(10, 10, 16, 0.90); /* Fondo oscuro sólido */
    --hud-border: rgba(0, 247, 255, 0.3);
    --card-bg: rgba(255, 255, 255, 0.03);
}

.blt-hero-section {
    position: relative;
    width: 100%;
    /* Permitimos que el contenido crezca si es más alto que la pantalla */
    min-height: 80vh; 
    height: auto;
    padding: 40px 20px; 
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #0b0b0f; 
    /* Solo ocultamos el horizontal para evitar rebotes laterales */
    overflow-x: hidden; 
    box-sizing: border-box;
}

.blt-hero-overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at center, rgba(0,0,0,0.4) 0%, #000 100%);
    z-index: 1;
}

/* --- MAIN HUD CONTAINER --- */
.blt-dashboard-hud {
    position: relative;
    z-index: 10;
    width: 100%;
    /* Ancho FLUIDO: en pantallas grandes (iMac 27" ≈ 2560px) se mantiene en
       1200px "como antes"; en laptops (MacBook 16" ≈ 1512–1728px CSS) se
       angosta para no dominar la pantalla. El piso de 940px evita que quede
       demasiado estrecho en tablets/ventanas pequeñas. */
    max-width: clamp(920px, 62vw, 1200px);
    background: var(--hud-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--hud-border);
    box-shadow: 0 0 30px rgba(0, 247, 255, 0.1);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    /* Promote to own GPU layer so the blur + shadow don't thrash the
       compositor when sibling content repaints. */
    will-change: transform;
    transform: translateZ(0);
}

/* Header */
.blt-hud-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    padding-bottom: 20px;
    margin-bottom: 10px;
}

.blt-hud-title {
    font-size: 1.8rem; 
    color: #fff; 
    font-weight: 800; 
    letter-spacing: 1px; 
    line-height: 1.2;
    text-transform: uppercase;
}

.blt-neon-text { 
    color: var(--neon-blue); 
    text-shadow: 0 0 10px rgba(0, 247, 255, 0.6); 
}

.blt-live-indicator {
    display: flex; align-items: center; gap: 8px; 
    color: var(--neon-green); 
    font-size: 0.85rem; 
    font-weight: bold; 
    letter-spacing: 1px;
    margin-top: 5px;
}

.blt-pulse-dot {
    width: 8px; height: 8px; 
    background: var(--neon-green); 
    border-radius: 50%;
    box-shadow: 0 0 5px var(--neon-green);
    animation: pulseGreen 2s infinite;
}

@keyframes pulseGreen {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(10, 255, 96, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(10, 255, 96, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(10, 255, 96, 0); }
}

/* Button */
.blt-register-btn {
    background: rgba(0, 247, 255, 0.1);
    border: 1px solid var(--neon-blue);
    color: var(--neon-blue);
    padding: 12px 30px;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 4px;
    transition: all 0.3s ease;
    display: inline-flex; align-items: center; gap: 10px;
}
.blt-register-btn:hover {
    background: var(--neon-blue);
    color: #000;
    box-shadow: 0 0 15px var(--neon-blue);
}

/* --- GRID LAYOUT DESKTOP --- */
.blt-hud-grid {
    display: grid;
    grid-template-columns: 4fr 3fr 3fr;
    grid-template-rows: minmax(200px, auto) 180px 200px auto;
    gap: 20px;
    grid-template-areas:
        "signals win gain"
        "signals weekly dist"
        "lastopt lastopt lastopt"
        "news news news";
}

/* Areas */
.blt-area-signals  { grid-area: signals; }
.blt-area-win      { grid-area: win; }
.blt-area-gain     { grid-area: gain; }
.blt-area-weekly   { grid-area: weekly; }
.blt-area-dist     { grid-area: dist; }
.blt-area-lastopt  { grid-area: lastopt; }
.blt-area-news     { grid-area: news; }

/* Card Container Style */
.blt-hud-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 20px;
    border: 1px solid rgba(255,255,255,0.08);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

.blt-card-title {
    font-size: 0.8rem; 
    color: rgba(255,255,255,0.6); 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    margin-bottom: 15px; 
    font-weight: 600;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    padding-bottom: 8px;
    flex-shrink: 0; /* Evita que el título se aplaste en scroll */
}

/* --- 3. FIX DE SEÑALES (Móvil y Escritorio) --- */
.blt-signals-wrapper {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: auto;
    /* Evitamos que el feed tenga su propia barra de scroll si la página ya tiene una */
    max-height: none !important;
    overflow-y: visible !important;
    padding-right: 0; /* Removed: creaba un gutter visible a la derecha simulando scrollbar. */
}

/* html/body: NO bloqueamos nada que pueda interferir con la rueda del mouse,
   el scroll con flecha, o la barra espaciadora. `overflow-x: hidden` sobre
   html + body simultáneamente creaba un conflicto de scroll root en algunos
   browsers que bloqueaba la rueda del mouse. Ahora solo el body gestiona el
   overflow horizontal. El scroll vertical natural del documento queda libre. */
html, body {
    height: auto !important;
}
body {
    overflow-x: hidden;
}

/* ============================================================
 * DOBLE-SCROLL / PARALLAX KILL — MOBILE
 * Defense-in-depth: any inner container in the hub that ends up
 * with overflow-y or its own GPU layer turns into an independent
 * scroll context on iOS Safari. We force the hub root + every
 * known section back to "no inner scroll, no compositing layer".
 * ============================================================ */
@media (max-width: 768px) {
    .blt-alerts-wrapper,
    #blt-results-root,
    .blt-rv-pending-section,
    .blt-rv-pending-grid,
    .blt-rv-heatmap-section,
    .blt-rv-news-section,
    .blt-rv-results-section,
    .blt-rv-summary-bar {
        overflow-y: visible !important;
        max-height: none !important;
        height: auto !important;
        transform: none !important;
        will-change: auto !important;
        -webkit-overflow-scrolling: auto !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    /* Background images NEVER fixed on mobile — that's the canonical
       "parallax" effect and we don't want it anywhere in the hub/hero. */
    .blt-alerts-wrapper,
    .blt-hero-section,
    .blt-dashboard-hud,
    #blt-results-root {
        background-attachment: scroll !important;
    }
}

/* Webkit Scrollbar Styling (Chrome/Safari) */
.blt-signals-wrapper::-webkit-scrollbar { width: 4px; }
.blt-signals-wrapper::-webkit-scrollbar-track { background: transparent; }
.blt-signals-wrapper::-webkit-scrollbar-thumb { background-color: var(--neon-blue); border-radius: 4px; }

/* Fix de altura mínima para evitar saltos al cargar */
#blt-live-grid {
    min-height: 80px;
}

.blt-glass-card {
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%);
    border-left: 3px solid var(--neon-blue);
    padding: 12px 15px;
    border-radius: 4px;
    display: flex; 
    justify-content: space-between; 
    align-items: center;
    transition: transform 0.3s ease, background 0.3s;
    flex-shrink: 0; /* Evita que las tarjetas se aplasten */
}

.blt-glass-card:hover {
    background: rgba(255,255,255,0.08);
    transform: translateX(5px);
}

.blt-card-enter { animation: slideInLeft 0.5s ease forwards; opacity: 0; }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }
.blt-card-flash { animation: flashCard 0.5s ease; }
@keyframes flashCard { 0% { background: rgba(255,255,255,0.5); } 100% { background: linear-gradient(90deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%); } }

/* --- SECCIÓN 2: ESTADÍSTICAS --- */
.blt-hud-card.blt-area-win, 
.blt-hud-card.blt-area-gain,
.blt-hud-card.blt-area-weekly {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.blt-big-number { 
    font-size: 3rem; 
    font-weight: 900; 
    line-height: 1;
    margin: 10px 0;
}
.blt-neon-green { color: var(--neon-green); text-shadow: 0 0 15px rgba(10,255,96,0.4); }
.blt-neon-red { color: var(--neon-red); text-shadow: 0 0 15px rgba(255,42,42,0.4); }
.blt-neon-purple { color: var(--neon-purple); text-shadow: 0 0 15px rgba(188, 19, 254, 0.4); }

/* Win Rate Circle */
.blt-circular-stat { width: 100px; height: 100px; position: relative; }
.circular-chart { display: block; margin: 0 auto; max-width: 100%; max-height: 100%; }
.circle-bg { fill: none; stroke: rgba(255,255,255,0.1); stroke-width: 2.5; }
.circle { 
    fill: none; stroke-width: 2.5; stroke-linecap: round; 
    stroke: var(--neon-blue); filter: drop-shadow(0 0 5px var(--neon-blue));
    transition: stroke-dasharray 1.5s ease-out;
}
.percentage { 
    fill: #fff; font-family: 'Inter', sans-serif; font-weight: 800; font-size: 0.55em; 
    text-anchor: middle; transform: translateY(0.1em); 
}

/* --- Stats por CLASE de activo (Win Rate / Total Gain separados) ---
   Stocks, Crypto y Options se muestran en filas independientes para que el
   rendimiento de una clase (p. ej. crypto en rojo) nunca se mezcle con las
   demás. */
.blt-hud-card.blt-area-win,
.blt-hud-card.blt-area-gain {
    align-items: stretch;      /* anula el centrado: las filas ocupan todo el ancho */
    justify-content: flex-start;
    text-align: left;
}
.blt-class-stats {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    width: 100%;
    flex-grow: 1;
}
.blt-cls-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.blt-cls-ico   { width: 18px; flex-shrink: 0; text-align: center; font-size: 0.95rem; line-height: 1; }
.blt-cls-name  { width: 58px; flex-shrink: 0; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 700; color: rgba(255,255,255,0.7); }
.blt-cls-track { flex: 1 1 auto; min-width: 40px; height: 7px; background: rgba(255,255,255,0.07); border-radius: 6px; overflow: hidden; }
.blt-cls-fill  { display: block; height: 100%; width: 0; border-radius: 6px; transition: width 1.2s cubic-bezier(.4,0,.2,1); }
.blt-cls-val   { flex-shrink: 0; min-width: 44px; text-align: right; font-size: 0.95rem; font-weight: 800; color: #fff; }
.blt-cls-sub   { flex-basis: 100%; text-align: right; font-size: 0.6rem; color: rgba(255,255,255,0.4); margin-top: -4px; letter-spacing: 0.3px; }

/* Acentos por clase (alineados con las barras de Asset Mix) */
.blt-cls-blue   .blt-cls-fill { background: var(--neon-blue); box-shadow: 0 0 8px var(--neon-blue); }
.blt-cls-blue   .blt-cls-ico  { color: var(--neon-blue); }
.blt-cls-orange .blt-cls-fill { background: #f7931a; box-shadow: 0 0 8px #f7931a; }
.blt-cls-orange .blt-cls-ico  { color: #f7931a; }
.blt-cls-purple .blt-cls-fill { background: #bc13fe; box-shadow: 0 0 8px #bc13fe; }
.blt-cls-purple .blt-cls-ico  { color: #bc13fe; }

/* Filas de Total Gain (sin barra: ico + nombre + % a la derecha) */
.blt-cls-gain { margin-left: auto; font-size: 1.05rem; font-weight: 800; color: rgba(255,255,255,0.55); }
.blt-cls-gain.pos { color: var(--neon-green); text-shadow: 0 0 10px rgba(10,255,96,0.35); }
.blt-cls-gain.neg { color: var(--neon-red);   text-shadow: 0 0 10px rgba(255,42,42,0.35); }

/* Chip "overall / all" en el título de la tarjeta */
.blt-cls-overall { float: right; font-size: 0.62rem; font-weight: 600; color: rgba(255,255,255,0.4); letter-spacing: 0.5px; text-transform: none; }
.blt-cls-overall strong { color: #fff; font-weight: 800; }

/* --- SECCIÓN 3: BARRAS --- */
.blt-dist-bars-vertical { display: flex; justify-content: space-around; height: 100%; width: 100%; align-items: flex-end; padding-top: 10px; }
.blt-hero-section .dist-col { display: flex; flex-direction: column; align-items: center; gap: 8px; height: 100%; width: 35%; }
.dist-bar-bg {
    flex-grow: 1;
    width: 100%;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    min-height: 80px;
}
.living-bar { position: absolute; bottom: 0; width: 100%; transition: height 1s cubic-bezier(0.4, 0, 0.2, 1); }
.dist-fill-blue   { background: var(--neon-blue); box-shadow: 0 0 10px var(--neon-blue); }
.dist-fill-orange { background: #f7931a; box-shadow: 0 0 10px #f7931a; }
.dist-fill-purple { background: #bc13fe; box-shadow: 0 0 10px #bc13fe; }

/* ─── Last Options WIN card ─────────────────────────────── */
.blt-lastopt-inner {
    display: flex;
    align-items: center;
    gap: 24px;
    width: 100%;
    height: 100%;
}
.blt-lastopt-badge {
    flex-shrink: 0;
    width: 64px; height: 64px;
    border-radius: 14px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    font-size: 0.7rem; font-weight: 800; letter-spacing: 1px;
    text-transform: uppercase;
    gap: 2px;
}
.blt-lastopt-badge.call { background: rgba(10,255,96,0.15); border: 1.5px solid #0aff60; color: #0aff60; }
.blt-lastopt-badge.put  { background: rgba(255,42,42,0.15);  border: 1.5px solid #ff2a2a; color: #ff2a2a; }
.blt-lastopt-badge .badge-icon { font-size: 1.6rem; line-height:1; }
.blt-lastopt-info { flex: 1; min-width: 0; }
.blt-lastopt-ticker { font-size: 1.5rem; font-weight: 900; color: #fff; letter-spacing: -0.5px; line-height: 1; }
.blt-lastopt-sub    { font-size: 0.72rem; color: rgba(255,255,255,0.5); margin-top: 3px; }
.blt-lastopt-stats  { display: flex; gap: 20px; margin-top: 10px; flex-wrap: wrap; }
.blt-lastopt-stat   { display: flex; flex-direction: column; gap: 2px; }
.blt-lastopt-stat .s-lbl { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.4); }
.blt-lastopt-stat .s-val { font-size: 0.88rem; font-weight: 700; color: #fff; }
.blt-lastopt-pnl {
    flex-shrink: 0;
    text-align: right;
}
.blt-lastopt-pnl .pnl-pct  { font-size: 1.6rem; font-weight: 900; color: #0aff60; text-shadow: 0 0 10px rgba(10,255,96,0.4); }
.blt-lastopt-pnl .pnl-date { font-size: 0.68rem; color: rgba(255,255,255,0.35); margin-top: 4px; }
@media (max-width: 600px) {
    .blt-lastopt-inner { flex-wrap: wrap; gap: 14px; }
    .blt-lastopt-pnl   { width: 100%; text-align: left; }
}
.blt-hero-section .dist-col span { font-size: 0.7rem; color: #aaa; text-transform: uppercase; font-weight: 600; }
.blt-hero-section .dist-col strong { color: #fff; font-size: 1.1rem; font-weight: bold; }

/* Onda Animada */
.blt-chart-deco { position: absolute; bottom: 0; left: 0; height: 40px; width: 100%; overflow: hidden; opacity: 0.3; }
.wave { height: 100%; width: 200%; background: repeating-linear-gradient(90deg, transparent, transparent 10px, var(--neon-green) 10px, var(--neon-green) 12px); mask-image: linear-gradient(to bottom, transparent, black, transparent); animation: waveMove 3s linear infinite; }
@keyframes waveMove { 0% { transform: translateX(0); } 100% { transform: translateX(-50px); } }

/* --- SECCIÓN 4: NOTICIAS --- */
.blt-news-container { display: flex; flex-direction: column; gap: 10px; }

@media (min-width: 1100px) {
    .blt-news-container { flex-direction: row; justify-content: space-between; }
    .blt-news-item { flex: 1; border-right: 1px solid rgba(255,255,255,0.05); padding-right: 15px; }
    .blt-news-item:last-child { border-right: none; padding-right: 0; }
}

.blt-news-item {
    display: flex; gap: 15px; text-decoration: none; padding: 12px; border-radius: 6px;
    border: 1px solid transparent; transition: all 0.3s ease; background: rgba(255,255,255,0.01);
}
.blt-news-item:hover { background: rgba(0, 247, 255, 0.05); border-color: rgba(0, 247, 255, 0.3); transform: translateX(5px); }

.blt-hero-section .news-date {
    display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 50px;
    font-size: 0.75rem; font-weight: 800; color: var(--neon-purple);
    border-right: 2px solid rgba(255,255,255,0.1); padding-right: 10px; text-transform: uppercase; text-align: center;
}
.blt-hero-section .news-content { display: flex; flex-direction: column; justify-content: center; }
.blt-hero-section .news-headline { margin: 0 0 5px 0; font-size: 1rem; color: #fff; font-weight: 600; line-height: 1.2; transition: color 0.3s; }
.blt-hero-section .blt-news-item:hover .news-headline { color: var(--neon-blue); text-shadow: 0 0 8px rgba(0, 247, 255, 0.4); }
.blt-hero-section .news-excerpt { margin: 0; font-size: 0.8rem; color: #aaa; line-height: 1.4; }
.read-more { color: var(--neon-green); font-weight: bold; font-size: 0.7rem; margin-left: 5px; }
.blt-no-news { color: #666; font-style: italic; padding: 10px; }

/* Footer Ticker Global (Desktop) — scrolling marquee */
.blt-legal-ticker {
    position: absolute; bottom: 0; left: 0; width: 100%;
    background: rgba(0,0,0,0.85); color: rgba(255,255,255,0.3);
    font-size: 0.65rem; padding: 6px 0; z-index: 20;
    border-top: 1px solid rgba(0,247,255,0.08);
    overflow: hidden; white-space: nowrap; letter-spacing: 1px;
}
.blt-legal-ticker .ticker-content {
    display: inline-block;
    animation: tickerScroll 28s linear infinite;
    padding-left: 100%;
}
@keyframes tickerScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

/* =========================================
   HERO 4.0 — New elements
   ========================================= */

/* Ambient grid-lines overlay */
.blt-hero-grid-lines {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-image:
        linear-gradient(rgba(0,247,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,247,255,0.03) 1px, transparent 1px);
    background-size: 60px 60px;
    z-index: 2; pointer-events: none;
    animation: gridPulse 6s ease-in-out infinite;
}
@keyframes gridPulse {
    0%,100% { opacity: 0.5; }
    50%      { opacity: 1; }
}

/* Tagline */
.blt-hero-tagline {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.45);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-top: 4px;
    margin-bottom: 2px;
}

/* Greeting */
.blt-hero-greeting {
    color: #fff; font-weight: 600; font-size: 0.9rem;
    margin-right: 15px; text-transform: uppercase; letter-spacing: 1px;
}
.blt-hero-name { color: #0aff60; }

/* Weekly sub-label */
.blt-weekly-sub {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.35);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 6px;
}

/* ── Signals feed header ─────────────────────────────── */
.blt-signals-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    flex-shrink: 0;
}
.blt-signals-header .blt-card-title {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}
.blt-sig-icon { color: var(--neon-blue); margin-right: 5px; }

.blt-sig-counter-wrap {
    display: flex; align-items: center; gap: 6px;
    font-size: 0.7rem; color: rgba(255,255,255,0.4);
}
.blt-sig-dot-live {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--neon-green);
    box-shadow: 0 0 6px var(--neon-green);
    animation: pulseGreen 2s infinite;
}
.blt-sig-count-label { font-size: 0.7rem; }
.blt-sig-count-week  { color: var(--neon-blue); font-weight: 700; }

/* ── Skeleton loader ─────────────────────────────────── */
@keyframes shimmer {
    0%   { background-position: -400px 0; }
    100% { background-position:  400px 0; }
}
.blt-skeleton-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-radius: 6px;
    border-left: 3px solid rgba(255,255,255,0.06);
    background: rgba(255,255,255,0.03);
    gap: 12px;
}
.blt-sk-left  { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.blt-sk-line  {
    height: 10px; border-radius: 4px;
    background: linear-gradient(90deg, rgba(255,255,255,0.06) 25%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.06) 75%);
    background-size: 400px 100%;
    animation: shimmer 1.6s infinite linear;
}
.blt-sk-ticker { width: 70%; }
.blt-sk-type   { width: 45%; height: 8px; }
.blt-sk-pct    {
    width: 56px; height: 22px; border-radius: 4px;
    background: linear-gradient(90deg, rgba(255,255,255,0.06) 25%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.06) 75%);
    background-size: 400px 100%;
    animation: shimmer 1.6s infinite linear;
    flex-shrink: 0;
}

/* ── Feed signal row (replaces blt-glass-card content) ── */
.blt-glass-card {
    border-left-color: var(--neon-blue);
    padding: 7px 12px;
}
.blt-sig-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 8px;
}
.blt-sig-left  { display: flex; flex-direction: column; gap: 2px; }
.blt-sig-right { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }

.blt-sig-ticker {
    color: #fff; font-weight: 700; font-size: 0.9rem; letter-spacing: 0.5px;
    line-height: 1.15;
}
.blt-sig-type {
    font-size: 0.66rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.5px;
    line-height: 1.15;
}
.blt-sig-pct {
    font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1rem; white-space: nowrap;
}
.blt-sig-arrow { font-size: 0.85rem; }
.blt-sig-date  { font-size: 0.65rem; color: rgba(255,255,255,0.3); letter-spacing: 0.5px; }
.blt-ls-date   { font-size: 0.62rem; color: rgba(255,255,255,0.35); letter-spacing: 0.5px; margin-top: 2px; }

/* ── Unified tag system ────────────────────────────────────
   Single base class `.blt-tag` with color variants (crypto/opt/week)
   and size variant `.blt-tag-lg` for the hero "latest" card.
   Gives consistent height, padding, and radius across all badges. */
.blt-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 18px;
    padding: 0 7px;
    border-radius: 4px;
    border: 1px solid transparent;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    flex-shrink: 0;
}
.blt-tag-lg {
    height: 18px;
    padding: 0 8px;
    font-size: 9px;
    letter-spacing: 0.6px;
}
.blt-tag-week {
    background: rgba(0,247,255,0.15);
    border-color: rgba(0,247,255,0.45);
    color: #00f7ff;
}
.blt-tag-lg.blt-tag-week {
    text-shadow: 0 0 6px rgba(0,247,255,0.6);
}
.blt-tag-opt {
    background: rgba(188,19,254,0.2);
    border-color: #bc13fe;
    color: #bc13fe;
}
.blt-tag-crypto {
    background: rgba(255,165,0,0.2);
    border-color: #f7931a;
    color: #f7931a;
}

/* Dedicated badges row: groups all tags below the type line */
.blt-sig-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    margin-top: 3px;
}
.blt-ls-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 3px;
}

/* ── LATEST SIGNAL hero card ─────────────────────────── */
.blt-latest-signal-wrap {
    margin-bottom: 8px;
    display: none; /* shown by JS */
    flex-shrink: 0;
}
.blt-latest-signal-label {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 5px;
}
.blt-ls-badge-new {
    font-size: 0.68rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: rgba(255,42,42,0.2);
    border: 1px solid rgba(255,42,42,0.5);
    padding: 3px 10px;
    border-radius: 4px;
    box-shadow: 0 0 10px rgba(255,42,42,0.25);
    animation: latestBadgePulse 2.5s ease-in-out infinite;
}
@keyframes latestBadgePulse {
    0%,100% { box-shadow: 0 0 8px rgba(255,42,42,0.25); }
    50%      { box-shadow: 0 0 18px rgba(255,42,42,0.6); }
}

.blt-latest-signal-card {
    background: linear-gradient(135deg, rgba(0,247,255,0.06) 0%, rgba(0,0,0,0.2) 100%);
    border: 1px solid rgba(0,247,255,0.25);
    border-left: 4px solid var(--neon-blue);
    border-radius: 8px;
    padding: 9px 14px;
    box-shadow: 0 0 20px rgba(0,247,255,0.1), inset 0 0 30px rgba(0,0,0,0.3);
    animation: latestCardGlow 3s ease-in-out infinite;
    transition: transform 0.3s;
}
.blt-latest-signal-card:hover { transform: translateY(-2px); }
@keyframes latestCardGlow {
    0%,100% { box-shadow: 0 0 16px rgba(0,247,255,0.08), inset 0 0 30px rgba(0,0,0,0.3); }
    50%      { box-shadow: 0 0 28px rgba(0,247,255,0.22), inset 0 0 30px rgba(0,0,0,0.3); }
}

/* Layout compacto: ticker + tipo + badges a la izquierda, status y % a la
   derecha. Mantiene altura mínima para que la lista de señales muestre el
   mayor número posible de tarjetas sin depender del scroll. */
.blt-ls-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 4px;
    gap: 10px;
}
.blt-ls-meta {
    display: flex; flex-direction: column; gap: 2px;
    flex: 1 1 160px;            /* ≥160px keeps the ticker readable */
    min-width: 0;
}
.blt-ls-ticker {
    font-size: 1.1rem; font-weight: 900; color: #fff; letter-spacing: -0.5px;
    line-height: 1.05;
    min-width: 0;
}
.blt-ls-type {
    font-size: 0.66rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.15;
    min-width: 0;
}
.blt-ls-status {
    font-size: 0.64rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 1px; opacity: 0.85; flex-shrink: 0;
}
.blt-ls-pct {
    font-family: 'Inter', sans-serif; font-weight: 900;
    /* Tope bajo para que el card no domine la columna; valores de 4-5
       dígitos como "+1,730.07%" siguen cabiendo. */
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    white-space: nowrap; flex-shrink: 0;
    line-height: 1;
}

/* =========================================================
   FIX — la columna de señales no debe disparar la altura del grid.
   Al cargar la data, el "LATEST CLOSED SIGNAL" + el feed hacían crecer
   la fila del grid y, con ella, Win Rate / Total Gain / Weekly / Asset
   Mix (que comparten esa fila) → se veían sobredimensionados.

   Solución (escritorio/laptop ≥901px): se mantiene el layout en grid con
   STRETCH (todas las columnas alinean su altura, sin huecos), pero el FEED
   de señales hace scroll interno con scrollbar OCULTO y un fade inferior
   sutil, de modo que la columna izquierda queda acotada y no empuja el
   resto. Las tarjetas de stats reparten su contenido para llenar la altura
   sin verse vacías. En móvil/tablet el feed crece libre (layout en columna).
   ========================================================= */
@media (min-width: 901px) {
    /* La lista de señales crece de forma NATURAL, sin scroll interno.
       El scroll interno (overflow-y:auto + mask) hacía que el contenido se
       sintiera "flotante": al pasar el trackpad/mouse por encima, la rueda
       scrolleaba la lista en vez de la página. Con las tarjetas compactas,
       las 5+ señales caben sin necesidad de scroll. */
    .blt-area-signals .blt-signals-wrapper {
        overflow: visible !important;
        max-height: none !important;
    }

    /* Las stats reparten su contenido para llenar la altura de la columna
       (que iguala la de la lista) en vez de agruparse arriba con hueco. */
    .blt-area-win  .blt-class-stats,
    .blt-area-gain .blt-class-stats {
        justify-content: space-evenly;
    }
}

/* =========================================
   RESPONSIVE (MOBILE FIXES)
   ========================================= */

/* =========================================================
   LAPTOP TIER — MacBook Pro 14"/16" (≈ 901px–1800px CSS)
   Mantiene el mismo layout de escritorio (grid completo) pero
   compacta tipografías, paddings y alturas para que NO se vea
   sobredimensionado. Por encima de 1800px (iMac 27" ≈ 2560px)
   no aplica → se ve "como antes". Por debajo de 900px entra el
   layout de tablet/móvil.
   ========================================================= */
@media (min-width: 901px) and (max-width: 1800px) {
    .blt-dashboard-hud {
        padding: 22px;
        gap: 16px;
        border-radius: 14px;
    }

    .blt-hud-header {
        padding-bottom: 14px;
        margin-bottom: 6px;
    }
    .blt-hud-title    { font-size: 1.5rem; letter-spacing: 0.5px; }
    .blt-hero-tagline { font-size: 0.74rem; letter-spacing: 1px; }
    .blt-live-indicator { font-size: 0.76rem; }
    .blt-register-btn { padding: 10px 22px; font-size: 0.82rem; }

    /* Grid: mismas áreas, alturas de fila más bajas y menos gap */
    .blt-hud-grid {
        gap: 16px;
        grid-template-rows: minmax(170px, auto) 158px 180px auto;
    }

    .blt-hud-card { padding: 16px; border-radius: 10px; }
    .blt-card-title {
        font-size: 0.72rem;
        margin-bottom: 10px;
        padding-bottom: 6px;
    }

    /* Stats por clase (Win Rate / Total Gain) */
    .blt-class-stats { gap: 9px; }
    .blt-cls-name { width: 54px; font-size: 0.68rem; }
    .blt-cls-val  { min-width: 40px; font-size: 0.88rem; }
    .blt-cls-sub  { font-size: 0.56rem; }
    .blt-cls-gain { font-size: 0.95rem; }
    .blt-cls-track { height: 6px; }

    /* Números grandes (Signals This Week) */
    .blt-big-number { font-size: 2.4rem; }

    /* Asset Mix */
    .blt-dist-bars-vertical { padding-top: 6px; }
    .dist-bar-bg { min-height: 60px; }
    .blt-hero-section .dist-col strong { font-size: 1rem; }
    .blt-hero-section .dist-col span   { font-size: 0.64rem; }

    /* Last Options WIN */
    .blt-lastopt-inner { gap: 18px; }
    .blt-lastopt-badge { width: 56px; height: 56px; }
    .blt-lastopt-ticker { font-size: 1.3rem; }
    .blt-lastopt-stats { gap: 16px; }
    .blt-lastopt-pnl .pnl-pct { font-size: 1.4rem; }

    /* Feed de señales — aún más compacto en laptop */
    .blt-glass-card { padding: 6px 11px; }
    .blt-signals-wrapper { gap: 7px; }

    /* LATEST CLOSED SIGNAL (card BULL) — compacto */
    .blt-latest-signal-card { padding: 8px 13px; }
    .blt-ls-ticker { font-size: 1.05rem; }
    .blt-ls-type   { font-size: 0.64rem; }
    .blt-ls-pct    { font-size: clamp(1.05rem, 2vw, 1.35rem); }
    .blt-ls-meta   { flex: 1 1 140px; gap: 2px; }

    /* Blog / Intel */
    .blt-hero-section .news-headline { font-size: 0.92rem; }
    .blt-hero-section .news-excerpt  { font-size: 0.76rem; }
}

/* Laptop más pequeño / ventana reducida (≈ 901px–1366px):
   un segundo escalón aún más compacto. */
@media (min-width: 901px) and (max-width: 1366px) {
    .blt-hud-title  { font-size: 1.35rem; }
    .blt-big-number { font-size: 2.1rem; }
    .blt-hud-grid   { grid-template-rows: minmax(160px, auto) 150px 170px auto; }
    .blt-cls-val    { font-size: 0.84rem; }
    .blt-cls-gain   { font-size: 0.9rem; }
    .blt-lastopt-ticker { font-size: 1.2rem; }
}

/* Tablet & Mobile Layout */
@media (max-width: 900px) {
    .blt-hud-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-template-areas:
            "win gain"
            "signals signals"
            "weekly dist"
            "lastopt lastopt"
            "news news";
    }
    .blt-area-signals { height: 300px; }
    .blt-area-lastopt { min-height: 160px; }
}

/* Mobile Phones (Portrait) */
@media (max-width: 600px) {
    .blt-hero-section { 
        padding: 80px 10px 20px 10px; 
        min-height: 100vh; 
        height: auto;
        display: flex; 
        flex-direction: column; 
        justify-content: flex-start; /* Empujar contenido hacia arriba */
        overflow-x: hidden; /* Evita desajustes laterales en móviles */
        box-sizing: border-box; /* Asegura que el padding no sume al 100vh */
    }
    
    .blt-dashboard-hud {
        padding: 15px;
        margin-bottom: 0;
        width: 100%;
        box-sizing: border-box;
        overflow-x: hidden; /* Contiene el overflow horizontal en iOS Safari */
    }
    
    .blt-hud-header { 
        flex-direction: column; 
        text-align: center; 
        gap: 15px; 
    }
    
    .blt-hud-title { font-size: 1.5rem; }

    /* FLEXBOX EN VEZ DE GRID para control total del orden */
    .blt-hud-grid { 
        display: flex; 
        flex-direction: column; 
        gap: 15px;
    }
    
    /* REORDENAMIENTO ESTRATÉGICO */
    .blt-area-win     { order: 1; min-height: 150px; } 
    
    /* SIGNALS FEED: altura auto, sin scroll interno, sin overflow horizontal */
    .blt-area-signals {
        order: 2;
        height: auto;
        min-height: unset;
        max-height: none !important;
        overflow: hidden;  /* Contiene el contenido dentro de la tarjeta */
    }

    /* Wrapper interno: crece verticalmente sin scroll propio */
    .blt-signals-wrapper {
        max-height: none !important;
        overflow: visible !important;
        height: auto !important;
    }

    /* Latest signal card: wrap en mobile para evitar overflow horizontal */
    .blt-latest-signal-card {
        overflow: hidden;
    }
    .blt-ls-inner {
        flex-wrap: wrap;
        gap: 6px;
    }
    .blt-ls-meta {
        flex: 1 1 100%;
        min-width: 0;
    }
    .blt-ls-status {
        flex-shrink: 1;
        min-width: 0;
        font-size: 0.68rem;
    }
    .blt-ls-pct {
        font-size: 1.5rem;
        margin-left: auto;
    }

    /* Feed rows: asegura que izquierda y derecha no desborden */
    .blt-glass-card {
        overflow: hidden;
    }
    .blt-sig-row {
        gap: 6px;
        flex-wrap: nowrap;
    }
    .blt-sig-left {
        flex: 1;
        min-width: 0;
        overflow: hidden;
    }
    .blt-sig-ticker {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        display: block;
    }
    .blt-sig-type {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        display: block;
    }
    /* Badges can wrap freely on narrow viewports */
    .blt-sig-badges,
    .blt-ls-badges {
        max-width: 100%;
        gap: 4px;
    }
    .blt-sig-right {
        flex-shrink: 0;
    }
    
    .blt-area-lastopt { order: 3; min-height: 160px; }
    .blt-area-news    { order: 4; }
    .blt-area-gain    { order: 5; min-height: 140px; }
    .blt-area-weekly  { order: 6; min-height: 140px; }
    .blt-area-dist    { order: 7; min-height: 180px; }

    /* Ajuste de fuentes */
    .blt-big-number { font-size: 2.5rem; }
    
    /* Ajuste de noticias en móvil */
    .blt-news-container { flex-direction: column; }
    .blt-news-item { 
        border-right: none; 
        border-bottom: 1px solid rgba(255,255,255,0.05); 
        padding-right: 0;
        padding-bottom: 15px;
    }
    .blt-news-item:last-child { border-bottom: none; }

    /* --- FIX FOOTER MOVIL --- */
    .blt-legal-ticker {
        position: relative;
        bottom: auto;
        left: auto;
        margin-top: 30px;
        width: 100%;
        background: rgba(0,0,0,0.8);
    }
}

/* ============================================================
 * HERO MODERNIZATION LAYER — same neon palette, premium polish
 * Gradient borders, shimmer sweeps, refined glows, micro-interactions.
 * Only enhances existing rules — no color changes.
 * ============================================================ */

/* Subtle static grid pattern behind the whole HUD (no animation — cheaper). */
.blt-dashboard-hud::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(0,247,255,0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,247,255,0.045) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse at 20% 0%, #000 0%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at 20% 0%, #000 0%, transparent 70%);
    opacity: 0.7;
}

/* Soft outer glow on the whole HUD (replaces harsh box-shadow) */
.blt-dashboard-hud {
    box-shadow:
        0 0 60px rgba(0, 247, 255, 0.08),
        0 10px 40px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255,255,255,0.05);
}

/* Title — subtle gradient (no drop-shadow filter — use text-shadow) */
.blt-hud-title {
    background: linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.85) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.blt-neon-text {
    -webkit-text-fill-color: initial;
    background: none;
    text-shadow:
        0 0 12px rgba(0, 247, 255, 0.7),
        0 0 28px rgba(0, 247, 255, 0.25);
}

/* Pulse dot with expanding rings */
.blt-pulse-dot {
    position: relative;
}
.blt-pulse-dot::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid rgba(10,255,96,0.5);
    animation: bltRingExpand 2s infinite;
}
@keyframes bltRingExpand {
    0%   { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(2.4); opacity: 0; }
}

/* Register button — gradient fill + shine on hover */
.blt-register-btn {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(0,247,255,0.15), rgba(0,247,255,0.05));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.blt-register-btn::before {
    content: "";
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,247,255,0.4), transparent);
    transition: left 0.6s ease;
}
.blt-register-btn:hover::before { left: 100%; }
.blt-register-btn:hover {
    background: linear-gradient(135deg, var(--neon-blue), rgba(0,247,255,0.8));
    box-shadow:
        0 0 20px rgba(0,247,255,0.5),
        0 0 40px rgba(0,247,255,0.2),
        inset 0 1px 0 rgba(255,255,255,0.3);
    transform: translateY(-1px);
}

/* ── Card polish ── */
.blt-hud-card {
    background: linear-gradient(145deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.06) inset,
        0 8px 24px rgba(0,0,0,0.25),
        inset 0 0 24px rgba(0,0,0,0.2);
    transition: transform 0.25s cubic-bezier(0.22,1,0.36,1), border-color 0.25s, box-shadow 0.25s;
}
/* Animated gradient border accent on hover (only via pseudo to not affect layout) */
.blt-hud-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, transparent 0%, transparent 40%, rgba(0,247,255,0.4) 50%, transparent 60%, transparent 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}
.blt-hud-card:hover {
    transform: translateY(-3px);
    border-color: rgba(0,247,255,0.25);
}
.blt-hud-card:hover::before { opacity: 1; }

/* Card titles — uppercase, letter-spaced, with subtle underline glow on hover */
.blt-card-title {
    position: relative;
}
.blt-card-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: -1px;
    height: 1px;
    width: 0;
    background: linear-gradient(90deg, var(--neon-blue), transparent);
    transition: width 0.4s ease;
}
.blt-hud-card:hover .blt-card-title::after { width: 60px; }

/* Big stat numbers — glow via text-shadow (cheaper than filter: drop-shadow). */
.blt-big-number {
    letter-spacing: -0.02em;
}
.blt-neon-green {
    color: #0aff60;
    text-shadow:
        0 0 14px rgba(10,255,96,0.45),
        0 0 28px rgba(10,255,96,0.18);
}
.blt-neon-red {
    color: #ff2a2a;
    text-shadow:
        0 0 14px rgba(255,42,42,0.45),
        0 0 28px rgba(255,42,42,0.18);
}
.blt-neon-purple {
    color: #bc13fe;
    text-shadow:
        0 0 14px rgba(188,19,254,0.45),
        0 0 28px rgba(188,19,254,0.18);
}

/* Glass card (signal feed row) — shimmer sweep on hover + refined gradient */
.blt-glass-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.04),
        0 2px 8px rgba(0,0,0,0.15);
}
.blt-glass-card::after {
    content: "";
    position: absolute;
    top: 0; left: -60%;
    width: 40%; height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,0.06), transparent);
    transform: skewX(-20deg);
    transition: left 0.7s ease;
    pointer-events: none;
}
.blt-glass-card:hover::after { left: 120%; }
.blt-glass-card:hover {
    background: linear-gradient(90deg, rgba(0,247,255,0.08) 0%, rgba(255,255,255,0.02) 100%);
    border-left-width: 4px;
    transform: translateX(6px);
}

/* Live indicator — tighter typography */
.blt-live-indicator {
    text-transform: uppercase;
    padding: 4px 10px;
    background: rgba(10,255,96,0.06);
    border: 1px solid rgba(10,255,96,0.2);
    border-radius: 999px;
    width: fit-content;
    margin-top: 8px;
}

/* Legal ticker — subtle scroll animation (if not already there) */
.blt-legal-ticker {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.85) 100%);
    border-top: 1px solid rgba(0,247,255,0.15);
}

/* Stagger the hud grid cards' entry so they fade in with a wave */
.blt-hud-grid > .blt-hud-card {
    animation: bltCardEnter 0.6s cubic-bezier(0.22,1,0.36,1) both;
}
.blt-hud-grid > .blt-hud-card:nth-child(1) { animation-delay: 0.05s; }
.blt-hud-grid > .blt-hud-card:nth-child(2) { animation-delay: 0.12s; }
.blt-hud-grid > .blt-hud-card:nth-child(3) { animation-delay: 0.19s; }
.blt-hud-grid > .blt-hud-card:nth-child(4) { animation-delay: 0.26s; }
.blt-hud-grid > .blt-hud-card:nth-child(5) { animation-delay: 0.33s; }
.blt-hud-grid > .blt-hud-card:nth-child(6) { animation-delay: 0.40s; }
.blt-hud-grid > .blt-hud-card:nth-child(7) { animation-delay: 0.47s; }
@keyframes bltCardEnter {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .blt-dashboard-hud::before,
    .blt-register-btn::before,
    .blt-glass-card::after,
    .blt-pulse-dot::after,
    .blt-hud-grid > .blt-hud-card {
        animation: none !important;
    }
    .blt-hud-card:hover,
    .blt-glass-card:hover,
    .blt-register-btn:hover { transform: none !important; }
}

/* ============================================================
 * BLT PRO DASHBOARD v4.0 — Financial Dark Theme
 * Manage Alerts, Cards, Portfolio Bar, Modals, Toast
 * ============================================================ */

/* ── CSS Variables ────────────────────────────────────────── */
:root {
    --blt-bg:           #0d1117;
    --blt-surface:      #161b22;
    --blt-surface2:     #1e2530;
    --blt-border:       rgba(255,255,255,0.08);
    --blt-border-hover: rgba(255,255,255,0.15);
    --blt-text:         #e6edf3;
    --blt-text-2:       #8b949e;
    --blt-text-3:       #6e7681;
    --blt-accent:       #00d9ff;
    --blt-green:        #3fb950;
    --blt-red:          #f85149;
    --blt-yellow:       #d29922;
    --blt-purple:       #bc8cff;
    --blt-blue:         #58a6ff;
    --blt-radius:       10px;
    --blt-radius-sm:    6px;
    --blt-shadow:       0 4px 24px rgba(0,0,0,0.4);
    --blt-shadow-sm:    0 2px 8px rgba(0,0,0,0.3);
    --blt-transition:   all 0.2s ease;
}

/* ── Wrapper Override ─────────────────────────────────────── */
.blt-alerts-wrapper {
    background: var(--blt-bg);
    color: var(--blt-text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    border: 1px solid var(--blt-border);
    border-radius: 14px;
    box-shadow: var(--blt-shadow);
    box-sizing: border-box;
    width: 100%;
    /* Sin margin-top — wrapper pegado al menú de WordPress sin gap. */
    margin-top: 0;
    padding-top: 20px;
}

/* ── Tabs Override ────────────────────────────────────────── */
.alertas-tabs {
    background: var(--blt-surface);
    border-bottom: 1px solid var(--blt-border);
    padding: 0 16px;
    gap: 0;
    margin-bottom: 0;
    border-radius: 14px 14px 0 0;
    flex-wrap: wrap;
}

.blt-tablink {
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    color: var(--blt-text-2);
    font-size: 13px;
    font-weight: 500;
    padding: 14px 20px;
    letter-spacing: 0.02em;
    box-shadow: none;
    min-height: 48px;
    transition: var(--blt-transition);
}
.blt-tablink:hover { color: var(--blt-text); background: transparent; }
.blt-tablink.active {
    color: var(--blt-accent);
    border-bottom-color: var(--blt-accent);
    font-weight: 700;
    background: transparent;
    box-shadow: none;
    transform: none;
}

/* ── Tab Content Override ─────────────────────────────────── */
.blt-tabcontent {
    background: var(--blt-bg);
    border: none;
    border-radius: 0 0 14px 14px;
    padding: 24px;
    box-shadow: none;
}

/* ── Section Header ───────────────────────────────────────── */
.blt-section-header { margin-bottom: 20px; }
.blt-section-header h2 { color: var(--blt-text) !important; font-size: 1.3rem; margin: 0 0 4px; }
.blt-section-subtitle { color: var(--blt-text-2) !important; font-size: 13px; margin: 0; }

/* ── Contract Toggle (Create Form) ───────────────────────── */
.blt-contract-toggle {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    background: var(--blt-surface);
    border-radius: var(--blt-radius);
    padding: 6px;
    width: fit-content;
}
.blt-contract-btn {
    background: transparent;
    border: none;
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text-2);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 20px;
    transition: var(--blt-transition);
}
.blt-contract-btn.active {
    background: var(--blt-surface2);
    color: var(--blt-accent);
    box-shadow: 0 0 0 1px var(--blt-accent);
}
.blt-contract-btn:hover:not(.active) { color: var(--blt-text); }

/* ── Form Styles (Create) ─────────────────────────────────── */
.blt-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}
.alerta-form-group { margin-bottom: 0; display: flex; flex-direction: column; }
.alerta-form-group.full-width { grid-column: 1 / -1; }
.alerta-form-group label,
.blt-form-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--blt-text-2);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.alerta-form-group input:not([type="checkbox"]):not([type="radio"]),
.alerta-form-group textarea,
.alerta-form-group select {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text);
    font-size: 14px;
    padding: 9px 12px;
    transition: var(--blt-transition);
    width: 100%;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.alerta-form-group input:not([type="checkbox"]):not([type="radio"]):focus,
.alerta-form-group textarea:focus,
.alerta-form-group select:focus {
    outline: none;
    border-color: var(--blt-accent);
    box-shadow: 0 0 0 3px rgba(0,217,255,0.1);
}
.alerta-form-group input::placeholder,
.alerta-form-group textarea::placeholder { color: var(--blt-text-3); }
.blt-input-upper { text-transform: uppercase; }
.blt-required { color: var(--blt-red); }
.blt-field-hint { font-size: 11px; color: var(--blt-text-3); margin-top: 4px; }

/* Greeks group */
.blt-greeks-group { margin-bottom: 16px; }
.blt-greeks-title { color: var(--blt-text-2); font-size: 13px; font-weight: 600; margin: 0 0 12px; }
.blt-greeks-grid { grid-template-columns: repeat(3, 1fr); }

/* Recipients */
.blt-recipients-group {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 24px;
    padding: 14px 16px;
    background: var(--blt-surface);
    border-radius: var(--blt-radius-sm);
    border: 1px solid var(--blt-border);
    flex-wrap: wrap;
}
.blt-recipients-group .blt-form-label { margin: 0; white-space: nowrap; }
.blt-checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--blt-text);
    cursor: pointer;
}
.blt-checkbox-label input[type="checkbox"] {
    width: auto !important;
    -webkit-appearance: checkbox !important;
    appearance: auto !important;
    accent-color: var(--blt-accent);
    cursor: pointer;
}

/* ── Buttons ──────────────────────────────────────────────── */
.blt-btn {
    align-items: center;
    border: none;
    border-radius: var(--blt-radius-sm);
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 6px;
    padding: 9px 18px;
    transition: var(--blt-transition);
    text-decoration: none;
    white-space: nowrap;
}
.blt-btn-primary   { background: var(--blt-accent); color: #0d1117; }
.blt-btn-primary:hover { background: #00b8d9; color: #0d1117; }
.blt-btn-outline   { background: transparent; border: 1px solid var(--blt-border); color: var(--blt-text-2); }
.blt-btn-outline:hover { border-color: var(--blt-accent); color: var(--blt-accent); }
.blt-btn-ghost     { background: transparent; color: var(--blt-text-2); }
.blt-btn-ghost:hover { color: var(--blt-text); }
.blt-btn-danger    { background: var(--blt-red); color: #fff; }
.blt-btn-danger:hover { background: #c0392b; }
.blt-btn-sm        { font-size: 11px; padding: 5px 10px; }
.blt-btn-edit      { background: var(--blt-surface2); color: var(--blt-blue); border: 1px solid rgba(88,166,255,0.3); }
.blt-btn-edit:hover { background: rgba(88,166,255,0.15); border-color: var(--blt-blue); }
.blt-btn-delete    { background: var(--blt-surface2); color: var(--blt-red); border: 1px solid rgba(248,81,73,0.3); }
.blt-btn-delete:hover { background: rgba(248,81,73,0.15); border-color: var(--blt-red); }
.blt-btn-icon {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text-2);
    cursor: pointer;
    font-size: 18px;
    padding: 6px 10px;
    transition: var(--blt-transition);
    line-height: 1;
}
.blt-btn-icon:hover { color: var(--blt-accent); border-color: var(--blt-accent); }
.blt-form-actions {
    display: flex;
    gap: 10px;
    padding-top: 8px;
    flex-wrap: wrap;
}

/* ── Portfolio Bar ────────────────────────────────────────── */
.blt-portfolio-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
    padding: 16px;
    background: linear-gradient(135deg, var(--blt-surface) 0%, #131a24 100%);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    border-left: 3px solid var(--blt-accent);
}
.blt-portfolio-stat {
    display: flex;
    align-items: center;
    gap: 12px;
}
.blt-portfolio-icon { font-size: 22px; flex-shrink: 0; }
.blt-portfolio-label {
    display: block;
    font-size: 11px;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 3px;
}
.blt-portfolio-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--blt-text);
    font-family: 'Inter', monospace;
}

/* ── Filter Bar ───────────────────────────────────────────── */
.blt-filter-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.blt-filter-search {
    position: relative;
    flex: 1;
    min-width: 180px;
    max-width: 280px;
}
.blt-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    pointer-events: none;
}
.blt-search-input {
    background: var(--blt-surface) !important;
    border: 1px solid var(--blt-border) !important;
    border-radius: var(--blt-radius-sm) !important;
    color: var(--blt-text) !important;
    font-size: 13px !important;
    padding: 8px 12px 8px 34px !important;
    width: 100% !important;
    transition: var(--blt-transition);
    box-sizing: border-box !important;
}
.blt-search-input:focus { outline: none !important; border-color: var(--blt-accent) !important; }
.blt-filter-select {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text);
    font-size: 12px;
    font-weight: 600;
    padding: 8px 28px 8px 10px;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238b949e'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    cursor: pointer;
    min-width: 130px;
    transition: var(--blt-transition);
}
.blt-filter-select:focus { outline: none; border-color: var(--blt-accent); }

/* ── Live Indicator Bar ───────────────────────────────────── */
.blt-live-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 11px;
    color: var(--blt-text-3);
}
.blt-live-dot {
    width: 8px;
    height: 8px;
    background: var(--blt-green);
    border-radius: 50%;
    flex-shrink: 0;
    animation: blt-pulse 2s infinite;
}
@keyframes blt-pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(63,185,80,0.4); }
    50%       { opacity: 0.8; box-shadow: 0 0 0 5px rgba(63,185,80,0); }
}
.blt-live-label { color: var(--blt-green); font-weight: 600; }
.blt-live-time  { color: var(--blt-text-3); }
.blt-alerts-count {
    margin-left: auto;
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: 20px;
    color: var(--blt-text-2);
    font-size: 11px;
    font-weight: 600;
    padding: 2px 10px;
}

/* ── Alert Cards Grid ─────────────────────────────────────── */
.blt-alerts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
    min-height: 100px;
}
.blt-alert-card {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-left: 4px solid var(--blt-border);
    border-radius: var(--blt-radius);
    box-shadow: var(--blt-shadow-sm);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: var(--blt-transition);
    animation: blt-card-in 0.3s ease forwards;
}
@keyframes blt-card-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
.blt-alert-card:hover {
    border-color: var(--blt-border-hover);
    box-shadow: 0 6px 24px rgba(0,0,0,0.35);
    transform: translateY(-2px);
}
.blt-alert-card.blt-card-hidden { display: none; }

/* Status borders */
.blt-alert-card.status-active { border-left-color: var(--blt-yellow); }
.blt-alert-card.status-win    { border-left-color: var(--blt-green); }
.blt-alert-card.status-loss   { border-left-color: var(--blt-red); }

/* Card Header */
.blt-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--blt-border);
    gap: 8px;
}
.blt-card-symbol-group {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.blt-card-symbol {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--blt-text);
    letter-spacing: 0.03em;
}
.blt-card-header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

/* Badges */
.blt-badge {
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    padding: 2px 7px;
    text-transform: uppercase;
    white-space: nowrap;
}
.blt-badge-option  { background: rgba(188,140,255,0.15); color: var(--blt-purple); border: 1px solid rgba(188,140,255,0.3); }
.blt-badge-crypto  { background: rgba(255,165,0,0.15); color: #f7931a; border: 1px solid rgba(255,165,0,0.3); }
.blt-badge-neutral { background: var(--blt-surface2); color: var(--blt-text-3); border: 1px solid var(--blt-border); }
.blt-badge-type    { background: var(--blt-surface2); color: var(--blt-text-2); border: 1px solid var(--blt-border); }
.blt-badge-type.type-call { background: rgba(63,185,80,0.1); color: var(--blt-green); border-color: rgba(63,185,80,0.3); }
.blt-badge-type.type-put  { background: rgba(248,81,73,0.1); color: var(--blt-red); border-color: rgba(248,81,73,0.3); }

/* Status Badge */
.blt-status-badge {
    border-radius: 4px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 3px 8px;
    text-transform: uppercase;
}
.blt-status-badge.status-active { background: rgba(210,153,34,0.15); color: var(--blt-yellow); border: 1px solid rgba(210,153,34,0.3); }
.blt-status-badge.status-win    { background: rgba(63,185,80,0.15);  color: var(--blt-green);  border: 1px solid rgba(63,185,80,0.3); }
.blt-status-badge.status-loss   { background: rgba(248,81,73,0.15);  color: var(--blt-red);    border: 1px solid rgba(248,81,73,0.3); }

/* P&L Span */
.blt-pnl       { font-size: 12px; font-weight: 700; }
.pnl-positive  { color: var(--blt-green); }
.pnl-negative  { color: var(--blt-red); }

/* Card Body */
.blt-card-body { padding: 14px 16px; flex: 1; }

/* Info Grid */
.blt-option-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 10px;
    margin-bottom: 10px;
}
.blt-info-item { display: flex; flex-direction: column; gap: 2px; }
.blt-info-item--full { grid-column: 1 / -1; }
.blt-info-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}
.blt-info-value { font-size: 13px; font-weight: 600; color: var(--blt-text); font-family: 'Inter', monospace; }
.blt-sl { color: var(--blt-red) !important; }
.blt-tp { color: var(--blt-green) !important; }
.blt-total-cost { color: var(--blt-accent) !important; }

/* Greeks Row */
.blt-greeks-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    background: var(--blt-surface2);
    border-radius: var(--blt-radius-sm);
    margin-top: 10px;
    flex-wrap: wrap;
}
.blt-greeks-label { font-size: 10px; color: var(--blt-text-3); font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; flex-shrink: 0; }
.blt-greek { font-size: 12px; color: var(--blt-text-2); }
.blt-greek-sym { font-weight: 700; color: var(--blt-purple); margin-right: 3px; }

/* Card Description */
.blt-card-desc {
    font-size: 12px;
    color: var(--blt-text-3);
    line-height: 1.5;
    margin-top: 10px;
    border-top: 1px solid var(--blt-border);
    padding-top: 8px;
    word-break: break-word;
    cursor: help;
}

/* ── Live P&L Banner ──────────────────────────────────────────────── */
.blt-live-pnl-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px;
    background: rgba(0,0,0,0.18);
    border-bottom: 1px solid var(--blt-border);
    font-size: 12px;
    font-weight: 600;
    flex-wrap: wrap;
    min-height: 32px;
}
.blt-live-pnl-label {
    color: var(--blt-text-3);
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex-shrink: 0;
}
.blt-live-pnl-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--blt-text-3);
    min-width: 56px;
}
.blt-live-pnl-price {
    color: var(--blt-text-3);
    font-size: 12px;
    font-weight: 400;
}
.blt-live-pnl-tp-hint {
    margin-left: auto;
    color: var(--blt-text-3);
    font-size: 11px;
    font-weight: 500;
    opacity: 0.75;
}
.blt-live-pnl-bar.blt-pnl-positive {
    background: rgba(35, 197, 94, 0.10);
    border-bottom-color: rgba(35, 197, 94, 0.25);
}
.blt-live-pnl-bar.blt-pnl-positive .blt-live-pnl-value { color: var(--blt-green); }
.blt-live-pnl-bar.blt-pnl-positive .blt-live-pnl-tp-hint { color: var(--blt-green); opacity: 0.7; }

.blt-live-pnl-bar.blt-pnl-negative {
    background: rgba(248, 81, 73, 0.10);
    border-bottom-color: rgba(248, 81, 73, 0.25);
}
.blt-live-pnl-bar.blt-pnl-negative .blt-live-pnl-value { color: var(--blt-red); }

/* Edit modal P&L bar variant */
.blt-edit-pnl-bar {
    border-radius: 8px;
    border: 1px solid var(--blt-border);
    border-bottom: 1px solid var(--blt-border);
    margin-bottom: 16px;
    padding: 10px 16px;
}
.blt-edit-pnl-bar .blt-live-pnl-value { font-size: 16px; }

/* Light mode overrides */
.blt-light-mode .blt-live-pnl-bar               { background: rgba(0,0,0,0.04); }
.blt-light-mode .blt-live-pnl-bar.blt-pnl-positive { background: rgba(22,163,74,0.08); }
.blt-light-mode .blt-live-pnl-bar.blt-pnl-negative { background: rgba(220,38,38,0.08); }

/* Card Footer */
.blt-card-footer {
    border-top: 1px solid var(--blt-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    background: rgba(0,0,0,0.1);
}
.blt-card-date { font-size: 11px; color: var(--blt-text-3); }
.blt-card-actions { display: flex; gap: 6px; }

/* Empty State */
.blt-empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--blt-text-3);
}
.blt-empty-icon { font-size: 3rem; margin-bottom: 12px; }

/* ── Skeleton Loaders ─────────────────────────────────────── */
.blt-skeleton-inline {
    display: inline-block;
    width: 60px;
    height: 20px;
    background: linear-gradient(90deg, var(--blt-surface2) 25%, var(--blt-surface) 50%, var(--blt-surface2) 75%);
    background-size: 200% 100%;
    animation: blt-skeleton 1.5s infinite;
    border-radius: 4px;
    vertical-align: middle;
}
@keyframes blt-skeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Batch Email Section ──────────────────────────────────── */
.blt-batch-section {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--blt-border);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.blt-progress-wrap { display: flex; align-items: center; gap: 10px; flex: 1; }
.blt-progress-track {
    flex: 1;
    height: 8px;
    background: var(--blt-surface2);
    border-radius: 4px;
    overflow: hidden;
}
.blt-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--blt-accent), var(--blt-green));
    border-radius: 4px;
    transition: width 0.3s ease;
}
.blt-progress-text { font-size: 12px; color: var(--blt-text-2); font-weight: 600; white-space: nowrap; }

/* ── Modals ───────────────────────────────────────────────── */
.blt-modal-overlay {
    align-items: center;
    background: rgba(0,0,0,0.7);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    bottom: 0;
    display: flex !important;
    justify-content: center;
    left: 0;
    padding: 20px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 99999;
}
.blt-modal-overlay[style*="display:none"],
.blt-modal-overlay[style*="display: none"] { display: none !important; }
.blt-modal-box {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6);
    max-height: 90vh;
    max-width: 680px;
    overflow-y: auto;
    width: 100%;
    animation: blt-modal-in 0.2s ease;
}
.blt-modal-box--sm { max-width: 400px; }
@keyframes blt-modal-in {
    from { opacity: 0; transform: scale(0.95) translateY(-10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}
.blt-modal-header {
    align-items: center;
    border-bottom: 1px solid var(--blt-border);
    display: flex;
    justify-content: space-between;
    padding: 16px 20px;
    position: sticky;
    top: 0;
    background: var(--blt-surface);
    z-index: 1;
}
.blt-modal-header h3 { color: var(--blt-text); font-size: 1rem; margin: 0; }
.blt-modal-close {
    background: transparent;
    border: none;
    color: var(--blt-text-3);
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
    padding: 0 4px;
    transition: color 0.2s;
}
.blt-modal-close:hover { color: var(--blt-text); }
.blt-modal-body { padding: 20px; }
.blt-modal-footer {
    border-top: 1px solid var(--blt-border);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding: 14px 20px;
}

/* ── Toast Notifications ──────────────────────────────────── */
#blt-toast-container {
    bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: fixed;
    right: 24px;
    z-index: 999999;
    pointer-events: none;
}
.blt-toast {
    align-items: center;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-left: 4px solid var(--blt-accent);
    border-radius: var(--blt-radius);
    box-shadow: var(--blt-shadow);
    color: var(--blt-text);
    display: flex;
    font-size: 13px;
    font-weight: 500;
    gap: 10px;
    max-width: 360px;
    min-width: 260px;
    padding: 12px 16px;
    pointer-events: all;
    animation: blt-toast-in 0.3s ease forwards;
}
.blt-toast.blt-toast-success { border-left-color: var(--blt-green); }
.blt-toast.blt-toast-error   { border-left-color: var(--blt-red); }
.blt-toast.blt-toast-warning { border-left-color: var(--blt-yellow); }
.blt-toast-icon { font-size: 16px; flex-shrink: 0; }
.blt-toast-msg  { flex: 1; }
.blt-toast-close {
    background: none;
    border: none;
    color: var(--blt-text-3);
    cursor: pointer;
    font-size: 16px;
    padding: 0;
    pointer-events: all;
    flex-shrink: 0;
}
.blt-toast-close:hover { color: var(--blt-text); }
.blt-toast.blt-toast-out { animation: blt-toast-out 0.3s ease forwards; }
@keyframes blt-toast-in  { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
@keyframes blt-toast-out { from { opacity: 1; transform: translateX(0); }   to { opacity: 0; transform: translateX(20px); } }

/* ── Notifications Tab ────────────────────────────────────── */
.alerta-form { max-width: 100%; }

/* ── Results Panel ────────────────────────────────────────── */
.alertas-table-results {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    color: var(--blt-text);
}
.alertas-table-results th {
    background: var(--blt-surface2);
    color: var(--blt-text-3);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 10px 12px;
    text-align: left;
    text-transform: uppercase;
    border-bottom: 1px solid var(--blt-border);
}
.alertas-table-results td {
    border-bottom: 1px solid var(--blt-border);
    padding: 10px 12px;
    color: var(--blt-text-2);
}
.alertas-table-results tr:hover td { background: var(--blt-surface2); }
.result-positive { color: var(--blt-green) !important; font-weight: 700; }
.result-negative { color: var(--blt-red) !important;   font-weight: 700; }
.result-loss     { color: var(--blt-red) !important;   font-weight: 700; }
.alertas-table-results-wrapper { overflow-x: auto; border-radius: var(--blt-radius); border: 1px solid var(--blt-border); }

/* ── Stats Boxes (Results Panel) ──────────────────────────── */
.blt-section-spacing { margin-top: 32px; }
.blt-section-spacing h3 { color: var(--blt-text); font-size: 1.1rem; margin-bottom: 12px; }
.blt-section-spacing p { color: var(--blt-text-2); font-size: 13px; }

/* ── Legacy override: alerta-submit ──────────────────────── */
.alerta-submit,
input[type="submit"].alerta-submit {
    background: var(--blt-accent);
    border: none;
    border-radius: var(--blt-radius-sm);
    color: #0d1117;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    padding: 10px 20px;
    transition: var(--blt-transition);
}
.alerta-submit:hover { background: #00b8d9; }
.alerta-delete-button { background: var(--blt-surface2); border: 1px solid rgba(248,81,73,0.3); border-radius: var(--blt-radius-sm); color: var(--blt-red); cursor: pointer; font-size: 12px; font-weight: 600; padding: 5px 10px; transition: var(--blt-transition); }
.alerta-delete-button:hover { background: rgba(248,81,73,0.15); border-color: var(--blt-red); }

/* ── Pagination ───────────────────────────────────────────── */
.blt-pagination { margin-top: 20px; display: flex; gap: 6px; flex-wrap: wrap; }
.blt-pagination a, .page-numbers {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text-2);
    font-size: 13px;
    padding: 6px 12px;
    text-decoration: none;
    transition: var(--blt-transition);
}
.blt-pagination a:hover, .page-numbers:hover { border-color: var(--blt-accent); color: var(--blt-accent); }
.page-numbers.current { background: var(--blt-accent); border-color: var(--blt-accent); color: #0d1117; font-weight: 700; }

/* ── Profit Calculator ────────────────────────────────────── */
.profit-result { background: var(--blt-surface2); border: 1px solid var(--blt-border); border-radius: var(--blt-radius); padding: 16px; margin-top: 12px; font-size: 13px; }
.profit-positive { color: var(--blt-green); font-weight: 700; }
.profit-negative { color: var(--blt-red);   font-weight: 700; }

/* ── Telegram Info Block ──────────────────────────────────── */
.blt-error   { color: var(--blt-red) !important; font-size: 12px; }
.blt-success { color: var(--blt-green) !important; font-size: 12px; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 768px) {
    .blt-alerts-grid { grid-template-columns: 1fr; }
    .blt-portfolio-bar { grid-template-columns: repeat(2, 1fr); }
    .blt-filter-bar { gap: 8px; }
    .blt-filter-search { max-width: 100%; }
    .blt-filter-select { min-width: unset; flex: 1; }
    .blt-form-grid { grid-template-columns: 1fr 1fr; }
    .blt-modal-box { max-height: 100dvh; border-radius: 12px 12px 0 0; align-self: flex-end; margin: 0; }
    .blt-modal-overlay { align-items: flex-end; padding: 0; }
    #blt-toast-container { right: 12px; bottom: 12px; left: 12px; }
    .blt-toast { max-width: 100%; }
    .blt-contract-toggle { width: 100%; }
    .blt-contract-btn { flex: 1; text-align: center; }
    .blt-tablink { font-size: 12px; padding: 12px 14px; }
    .blt-greeks-grid { grid-template-columns: 1fr; }
    .blt-recipients-group { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
    .blt-portfolio-bar { grid-template-columns: 1fr; }
    .blt-form-grid { grid-template-columns: 1fr; }
    .blt-tabcontent { padding: 16px; }
    .blt-batch-section { flex-direction: column; align-items: flex-start; }
}


/* ============================================================
 * OPTIONS / STOCK FIELD VISIBILITY
 * .blt-option-field  = shown only in Options mode
 * .blt-stock-field   = shown only in Stock/Crypto mode
 * Toggle is driven by .blt-options-mode on the form wrapper
 * ============================================================ */
.blt-option-field  { display: none; }
.blt-stock-field   { display: block; }
.blt-options-mode .blt-option-field { display: block; }
.blt-options-mode .blt-stock-field  { display: none; }

/* ── select option defaults (dark — browsers ignore CSS vars on option) */
.blt-alerts-wrapper select option {
    background: var(--blt-surface);
    color: var(--blt-text);
}

/* ── Progress bar text ───────────────────────────────────────── */
.blt-alerts-wrapper .blt-progress-text { color: var(--blt-text-2); }

/* =============================================================
 * LIGHT MODE — Override dark CSS variables
 * Applied via .blt-light-mode on .blt-alerts-wrapper
 * All components already use var(--blt-*) so switching these
 * variables is sufficient to theme the entire dashboard.
 * ============================================================= */
.blt-light-mode {
    --blt-bg:           #ffffff;
    --blt-surface:      #f8faff;
    --blt-surface2:     #f1f5f9;
    --blt-border:       #e2e8f0;
    --blt-border-hover: #cbd5e1;
    --blt-text:         #1a1a2e;
    --blt-text-2:       #475569;
    --blt-text-3:       #94a3b8;
    --blt-accent:       #4f46e5;
    --blt-green:        #16a34a;
    --blt-red:          #dc2626;
    --blt-yellow:       #d97706;
    --blt-purple:       #7c3aed;
    --blt-blue:         #2563eb;
    --blt-shadow:       0 4px 24px rgba(0,0,0,0.08);
    --blt-shadow-sm:    0 2px 8px rgba(0,0,0,0.06);
}

/* Light mode: select option bg (browsers ignore CSS vars on option elements) */
.blt-light-mode select option {
    background: #ffffff;
    color: #1a1a2e;
}

/* Light mode: modal shadow adjustment */
.blt-light-mode .blt-modal-box {
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}

/* Light mode: focus ring color update */
.blt-light-mode .alerta-form-group input:focus,
.blt-light-mode .alerta-form-group textarea:focus,
.blt-light-mode .alerta-form-group select:focus {
    box-shadow: 0 0 0 3px rgba(79,70,229,0.12);
}

/* Light mode: contract toggle active btn */
.blt-light-mode .blt-contract-btn.active {
    background: #ede9fe;
    color: #4f46e5;
    box-shadow: 0 0 0 1px #4f46e5;
}

/* Light mode: status badge colors */
.blt-light-mode .blt-status-badge.status-active { background: #fef3c7; color: #92400e; }
.blt-light-mode .blt-status-badge.status-win    { background: #dcfce7; color: #166534; }
.blt-light-mode .blt-status-badge.status-loss   { background: #fee2e2; color: #991b1b; }

/* Light mode: card type badges */
.blt-light-mode .blt-badge-type            { background: #e2e8f0; color: #475569; }
.blt-light-mode .blt-badge-type.type-call  { background: #dcfce7; color: #15803d; }
.blt-light-mode .blt-badge-type.type-put   { background: #fee2e2; color: #b91c1c; }

/* Light mode: edit/delete card buttons */
.blt-light-mode .blt-btn-edit   { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.blt-light-mode .blt-btn-delete { background: #fff1f2; color: #be123c; border-color: #fecdd3; }
.blt-light-mode .blt-btn-edit:hover   { background: #dbeafe; }
.blt-light-mode .blt-btn-delete:hover { background: #ffe4e6; }

/* Light mode: results table */
.blt-light-mode .alertas-table-results th {
    background: #1a1a2e;
    color: #ffffff;
}
.blt-light-mode .alertas-table-results tr:hover td {
    background: #eff6ff;
}
.blt-light-mode .blt-result-win  { color: #059669; font-weight: 700; }
.blt-light-mode .blt-result-loss { color: #dc2626; font-weight: 700; }

/* Results table row colors per theme */
.alertas-table-results tr:nth-child(even) td {
    background: var(--blt-surface);
}
.alertas-table-results tr:nth-child(odd) td {
    background: var(--blt-bg);
}

/* Dark mode: even rows explicitly #000 */
.blt-alerts-wrapper:not(.blt-light-mode) .alertas-table-results tr:nth-child(even) td {
    background: #000000;
}

/* ── Dashboard Topbar (site name + theme toggle) ──────────── */
.blt-dash-topbar {
    align-items: center;
    background: var(--blt-surface);
    border-bottom: 1px solid var(--blt-border);
    border-radius: 14px 14px 0 0;
    display: flex;
    justify-content: space-between;
    padding: 10px 20px;
}
.blt-dash-brand {
    align-items: center;
    display: flex;
    gap: 10px;
}
.blt-dash-logo {
    height: 32px;
    max-width: 100px;
    object-fit: contain;
    border-radius: 6px;
}
.blt-dash-sitename {
    color: var(--blt-text);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.blt-dash-badge {
    background: rgba(99,102,241,0.15);
    border: 1px solid rgba(99,102,241,0.3);
    border-radius: 50px;
    color: var(--blt-purple);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 2px 10px;
    text-transform: uppercase;
}

/* ── Theme Toggle Button ──────────────────────────────────── */
.blt-theme-toggle {
    align-items: center;
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: 50px;
    cursor: pointer;
    display: flex;
    gap: 6px;
    padding: 6px 14px;
    transition: var(--blt-transition);
    color: var(--blt-text-2);
    font-size: 12px;
    font-weight: 600;
}
.blt-theme-toggle:hover {
    border-color: var(--blt-accent);
    color: var(--blt-accent);
}
.blt-theme-icon { font-size: 16px; line-height: 1; }

/* ── Results Badges (Options / Equity) ───────────────────── */
.blt-results-badge {
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: inline-block;
}
.blt-badge-options {
    background: rgba(124,58,237,0.15);
    border: 1px solid rgba(124,58,237,0.3);
    color: var(--blt-purple);
}
.blt-badge-equity {
    background: rgba(0,217,255,0.1);
    border: 1px solid rgba(0,217,255,0.25);
    color: var(--blt-accent);
}

/* ── Button Loading Spinner ───────────────────────────────── */
@keyframes blt-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
.blt-btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.75;
}
.blt-btn-loading::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: blt-spin 0.7s linear infinite;
    margin-left: 8px;
    vertical-align: middle;
}

/* ── Light mode table — ensure topbar inherits ────────────── */
.blt-light-mode .blt-dash-topbar {
    border-radius: 14px 14px 0 0;
}
.blt-light-mode .alertas-tabs {
    border-radius: 0;
}

/* ============================================================
 * RESULTS MINI CARDS — replaces the results table rows
 * ============================================================ */
.blt-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
    padding: 4px 0 16px;
    align-content: start;
    justify-content: start;
}

.blt-result-card {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    overflow: hidden;
    transition: var(--blt-transition);
    box-shadow: var(--blt-shadow-sm);
    display: flex;
    flex-direction: column;
}
.blt-result-card:hover {
    border-color: var(--blt-border-hover);
    transform: translateY(-2px);
    box-shadow: var(--blt-shadow);
}

/* Status strip on left edge */
.blt-result-card.rc-win  { border-left: 4px solid var(--blt-green); }
.blt-result-card.rc-loss { border-left: 4px solid var(--blt-red); }

/* Header */
/* Header is locked to a SINGLE row (nowrap) so the card height never changes
   when extra badges (CRYPTO / TP / Options) appear. The direction badge is
   abbreviated server-side (LONG→L) when crowded to guarantee everything fits. */
.blt-rc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px 10px;
    border-bottom: 1px solid var(--blt-border);
}
.blt-rc-symbol {
    font-size: 15px;
    font-weight: 800;
    color: var(--blt-text);
    letter-spacing: 0.02em;
    flex: 0 0 auto;
    line-height: 1.5;
    white-space: nowrap;
}
/* Badges stay on one line, pushed to the right. Compact sizing (below) keeps
   even the 3-badge crypto case — e.g. "L · CRYPTO · LOSS" — fully inside a
   narrow card so nothing clips. min-width:0 + overflow is a last-resort guard. */
.blt-rc-badges {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: flex-end;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}
.blt-rc-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
    flex: 0 0 auto;
}
.blt-rc-badge-win  { background: rgba(63,185,80,.15);  color: var(--blt-green);  border: 1px solid rgba(63,185,80,.3); }
.blt-rc-badge-loss { background: rgba(248,81,73,.15);  color: var(--blt-red);    border: 1px solid rgba(248,81,73,.3); }
.blt-rc-badge-call { background: rgba(63,185,80,.12);  color: var(--blt-green);  border: 1px solid rgba(63,185,80,.25); }
.blt-rc-badge-put  { background: rgba(248,81,73,.12);  color: var(--blt-red);    border: 1px solid rgba(248,81,73,.25); }
.blt-rc-badge-opt  { background: rgba(188,140,255,.12); color: var(--blt-purple); border: 1px solid rgba(188,140,255,.25); }
.blt-rc-badge-stock{ background: rgba(88,166,255,.12); color: var(--blt-blue);   border: 1px solid rgba(88,166,255,.25); }
.blt-rc-badge-crypto { background: rgba(255,165,0,.12); color: #f7931a; border: 1px solid rgba(255,165,0,.3); }

/* Body rows */
.blt-rc-body {
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}
.blt-rc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
}
.blt-rc-lbl {
    color: var(--blt-text-2);
    font-weight: 500;
    white-space: nowrap;
}
.blt-rc-val {
    color: var(--blt-text);
    font-weight: 600;
    text-align: right;
}
.blt-rc-val.rc-positive { color: var(--blt-green); }
.blt-rc-val.rc-negative { color: var(--blt-red); }

/* P&L highlight row */
.blt-rc-pnl-row {
    background: var(--blt-surface2);
    border-radius: var(--blt-radius-sm);
    padding: 6px 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 4px;
}
.blt-rc-pnl-lbl { font-size: 11px; font-weight: 700; color: var(--blt-text-2); text-transform: uppercase; letter-spacing: .05em; }
.blt-rc-pnl-val { font-size: 15px; font-weight: 800; }
.blt-rc-pnl-val.rc-positive { color: var(--blt-green); }
.blt-rc-pnl-val.rc-negative { color: var(--blt-red); }

/* Divider inside card.
   margin-top:auto pins the divider + P&L row to the BOTTOM of the body so the
   P&L bars (and footers) line up across every card in a row, regardless of how
   many rows of detail/notes each card has above. */
.blt-rc-divider {
    height: 1px;
    background: var(--blt-border);
    margin: auto 0 4px;
}

/* Footer (dates + delete) */
.blt-rc-footer {
    padding: 10px 14px;
    border-top: 1px solid var(--blt-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    row-gap: 10px;
    flex-wrap: wrap;
    font-size: 11px;
    color: var(--blt-text-3);
    background: rgba(0,0,0,.12);
}
.blt-rc-footer-dates {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.4;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}
.blt-rc-footer-dates span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}
/* Action buttons wrapper: never shrink, always stay to the right */
.blt-rc-footer > div:has(> .blt-rc-delete-btn) {
    flex-shrink: 0;
    margin-left: auto;
}
.blt-rc-delete-btn {
    flex-shrink: 0;
    background: transparent;
    border: 1px solid rgba(248,81,73,.35);
    color: var(--blt-red);
    border-radius: 6px;
    width: 30px;
    height: 30px;
    min-width: 30px;
    max-width: 30px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: var(--blt-transition);
    padding: 0;
    overflow: hidden;
    white-space: nowrap;
    -webkit-appearance: none;
            appearance: none;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}
.blt-rc-delete-btn:hover {
    background: var(--blt-red);
    border-color: var(--blt-red);
    color: #fff;
    transform: scale(1.08);
}
.blt-rc-delete-btn:focus { outline: none; }
.blt-rc-delete-btn:focus-visible {
    outline: 2px solid rgba(248,81,73,.6);
    outline-offset: 2px;
}
.blt-rc-delete-btn:active {
    transform: scale(.94);
    box-shadow: none;
}
.blt-rc-delete-btn:disabled {
    opacity: .6;
    cursor: wait;
    transform: none;
}
/* Resend button uses cyan/blue accent instead of red */
.blt-rc-resend-btn {
    border-color: rgba(99,102,241,.45);
    color: #818cf8;
}
.blt-rc-resend-btn:hover {
    background: #6366f1;
    border-color: #6366f1;
    color: #fff;
}
.blt-rc-resend-btn:focus-visible {
    outline-color: rgba(99,102,241,.6);
}

/* Light-mode overrides for result cards */
.blt-light-mode .blt-result-card { background: #fff; }
.blt-light-mode .blt-rc-pnl-row  { background: #f1f5f9; }
.blt-light-mode .blt-rc-symbol   { color: #1a1a2e; }
.blt-light-mode .blt-rc-val      { color: #1a1a2e; }
.blt-light-mode .blt-rc-lbl      { color: #64748b; }
.blt-light-mode .blt-rc-footer   { color: #94a3b8; }

/* Note row in card */
.blt-rc-desc-row { align-items: flex-start; }
.blt-rc-desc {
    font-size: 11px;
    color: var(--blt-text-2);
    text-align: right;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ============================================================
 * RESULTS VIEW — Page header, toolbar, filter pills, search,
 * summary bar, pending table, stats panel, loading overlay
 * ============================================================ */

/* ── Dashboard Header ────────────────────────────────────── */
.blt-rv-dash-header {
    position: relative;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    overflow: hidden;
    margin-bottom: 20px;
}
/* gradient accent bar */
.blt-rv-dash-header::before {
    content: '';
    display: block;
    height: 3px;
    background: linear-gradient(90deg, #00d9ff 0%, #3fb950 35%, #bc8cff 65%, #58a6ff 100%);
}
.blt-rv-dash-header__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 16px;
    flex-wrap: wrap;
}

/* Greeting line */
.blt-rv-dash-greeting {
    font-size: 13px;
    font-weight: 600;
    color: var(--blt-text-2);
    margin: 0 0 6px;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 5px;
}
.blt-rv-dash-greeting__wave {
    display: inline-block;
    animation: blt-wave 2.4s ease-in-out infinite;
    transform-origin: 70% 80%;
}
@keyframes blt-wave {
    0%,60%,100% { transform: rotate(0deg); }
    10%,30%     { transform: rotate(18deg); }
    20%         { transform: rotate(-8deg); }
    40%         { transform: rotate(14deg); }
    50%         { transform: rotate(-4deg); }
}

/* Brand */
.blt-rv-dash-brand__top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.blt-rv-dash-brand__icon {
    font-size: 18px;
    color: var(--blt-accent);
    line-height: 1;
}
.blt-rv-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--blt-text);
    margin: 0;
    line-height: 1.2;
}
.blt-rv-subtitle {
    font-size: 12px;
    color: var(--blt-text-3);
    font-weight: 400;
}

.blt-rv-dash-brand__text {
    display: flex;
    flex-direction: column;
}
.blt-rv-dash-avatar-btn {
    background: none;
    border: none;
    padding: 3px;
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 50%;
    display: block;
    background: linear-gradient(135deg, #6366f1, #818cf8);
    transition: transform 0.18s ease, opacity 0.18s ease;
}
.blt-rv-dash-avatar-btn:hover {
    transform: scale(1.08);
    opacity: 0.9;
}
.blt-rv-dash-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--blt-surface, #1a1730);
    display: block;
}

/* Overall Market state block */
.blt-rv-dash-market {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    flex-shrink: 0;
}
.blt-rv-dash-market__label {
    font-size: 10px;
    font-weight: 700;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.blt-rv-dash-market__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 16px;
    border-radius: 50px;
    border: 1px solid transparent;
    font-weight: 800;
    font-size: 14px;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.blt-rv-dash-market__state--bullish {
    background: rgba(63,185,80,.13);
    border-color: rgba(63,185,80,.35);
    color: var(--blt-green);
}
.blt-rv-dash-market__state--bearish {
    background: rgba(248,81,73,.13);
    border-color: rgba(248,81,73,.35);
    color: var(--blt-red);
}
.blt-rv-dash-market__state--neutral {
    background: rgba(110,118,129,.13);
    border-color: rgba(110,118,129,.3);
    color: var(--blt-text-3);
}
/* animated live dot */
.blt-rv-dash-market__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    animation: blt-dot-pulse 2s ease-in-out infinite;
}
.blt-rv-dash-market__state--bullish .blt-rv-dash-market__dot { background: var(--blt-green); }
.blt-rv-dash-market__state--bearish .blt-rv-dash-market__dot { background: var(--blt-red); }
.blt-rv-dash-market__state--neutral .blt-rv-dash-market__dot { background: var(--blt-text-3); animation: none; }
@keyframes blt-dot-pulse {
    0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 0 currentColor; }
    50%       { opacity: .55; transform: scale(.75); }
}
.blt-rv-dash-market__time {
    font-size: 10px;
    color: var(--blt-text-3);
}

/* Stats strip */
.blt-rv-dash-stats {
    display: flex;
    align-items: stretch;
    border-top: 1px solid var(--blt-border);
}
.blt-rv-dash-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 14px 8px;
    text-align: center;
    position: relative;
}
.blt-rv-dash-stat--divider::before {
    content: '';
    position: absolute;
    left: 0; top: 22%; bottom: 22%;
    width: 1px;
    background: var(--blt-border);
}
.blt-rv-dash-stat__val {
    font-size: 22px;
    font-weight: 800;
    color: var(--blt-text);
    line-height: 1;
}
.blt-rv-dash-stat__lbl {
    font-size: 9px;
    font-weight: 700;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
.blt-rv-dash-stat--accent .blt-rv-dash-stat__val { color: var(--blt-accent); }

/* Light-mode */
.blt-light-mode .blt-rv-dash-header          { background: #fff; }
.blt-light-mode .blt-rv-dash-market__state--bullish { background: rgba(63,185,80,.08); }
.blt-light-mode .blt-rv-dash-market__state--bearish { background: rgba(248,81,73,.08); }
.blt-light-mode .blt-rv-dash-market__state--neutral { background: rgba(110,118,129,.08); }

/* ── Mobile ──────────────────────────────────────────────── */
/* ── Profile Modal — Mobile bottom-sheet ─────────────────── */
@media (max-width: 640px) {
    #blt-profile-modal {
        align-items: flex-end !important;
        padding: 0 !important;
    }
    #blt-profile-modal > div {
        max-width: 100% !important;
        width: 100% !important;
        border-radius: 22px 22px 0 0 !important;
        max-height: 90vh !important;
    }
    #blt-profile-modal > div::before {
        content: '';
        display: block;
        width: 40px;
        height: 4px;
        background: rgba(255,255,255,0.18);
        border-radius: 2px;
        margin: 10px auto 0;
        flex-shrink: 0;
    }
}

@media (max-width: 600px) {
    /* breathing room from the top of the page */
    #blt-results-root { margin-top: 14px; }

    /* ── Header: compact single-row inner ─────────────────── */
    .blt-rv-dash-header__inner {
        padding: 12px 14px 10px;
        flex-direction: row;          /* keep side-by-side */
        align-items: center;
        gap: 10px;
        flex-wrap: nowrap;
    }
    .blt-rv-dash-brand {
        flex: 1;
        min-width: 0;                 /* allow text truncation */
    }

    .blt-rv-dash-avatar { width: 28px; height: 28px; }
    .blt-rv-dash-greeting {
        font-size: 11px;
        margin-bottom: 3px;
    }
    .blt-rv-dash-brand__icon { font-size: 14px; }
    .blt-rv-title { font-size: 16px; }
    .blt-rv-subtitle { font-size: 10px; display: block; margin-top: 3px; }
    .blt-rv-dash-header__inner { padding-bottom: 14px; }

    /* market state: compact pill */
    .blt-rv-dash-market {
        align-items: flex-end;
        gap: 4px;
        flex-shrink: 0;
    }
    .blt-rv-dash-market__label { display: none; }
    .blt-rv-dash-market__state {
        font-size: 11px;
        padding: 5px 10px;
        gap: 5px;
    }
    .blt-rv-dash-market__dot { width: 6px; height: 6px; }
    .blt-rv-dash-market__time { display: none; }

    /* ── Stats strip: horizontal scroll, no wrap ──────────── */
    .blt-rv-dash-stats {
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;        /* Firefox */
    }
    .blt-rv-dash-stats::-webkit-scrollbar { display: none; } /* Chrome/Safari */
    .blt-rv-dash-stat {
        flex: 0 0 auto;               /* don't shrink or grow */
        min-width: 64px;
        padding: 10px 8px;
    }
    .blt-rv-dash-stat--divider::before {
        top: 20%; bottom: 20%;
    }
    .blt-rv-dash-stat__val { font-size: 17px; }
    .blt-rv-dash-stat__lbl { font-size: 8px; }
}

/* ── Toolbar (pills + search) ────────────────────────────── */
.blt-rv-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
}
.blt-rv-filter-pills {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}
.blt-rv-pill {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    color: var(--blt-text-2);
    border-radius: 8px;
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--blt-transition);
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    line-height: 1;
}
.blt-rv-pill:hover {
    border-color: var(--blt-accent);
    color: var(--blt-text);
    background: rgba(88,166,255,.07);
}
.blt-rv-pill-active {
    background: var(--blt-accent);
    border-color: var(--blt-accent);
    color: #fff;
    box-shadow: 0 2px 8px rgba(88,166,255,.35);
}
.blt-rv-pill-active:hover { opacity: .92; color: #fff; }
.blt-rv-pill-date {
    font-size: 10px;
    opacity: .75;
    font-weight: 400;
}
.blt-rv-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.blt-rv-search-icon {
    position: absolute;
    left: 10px;
    font-size: 13px;
    color: var(--blt-text-3);
    pointer-events: none;
}
.blt-rv-search-input {
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    color: var(--blt-text);
    font-size: 13px;
    padding: 7px 12px 7px 30px;
    width: 200px;
    transition: var(--blt-transition);
    outline: none;
}
.blt-rv-search-input:focus {
    border-color: var(--blt-accent, #58a6ff);
    box-shadow: 0 0 0 2px rgba(88,166,255,.15);
}
.blt-rv-search-input::placeholder { color: var(--blt-text-3); }

/* ── Custom date range row ───────────────────────────────── */
.blt-rv-custom-range {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    padding: 12px 16px;
    margin-bottom: 12px;
}
.blt-rv-date-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.blt-rv-date-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--blt-text-2);
    text-transform: uppercase;
    letter-spacing: .05em;
}
.blt-rv-date-input {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text);
    font-size: 13px;
    padding: 6px 10px;
    outline: none;
    cursor: pointer;
}
.blt-rv-date-input:focus { border-color: var(--blt-accent,#58a6ff); }
.blt-rv-apply-btn {
    background: var(--blt-accent, #58a6ff);
    border: none;
    border-radius: var(--blt-radius);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 20px;
    cursor: pointer;
    transition: var(--blt-transition);
}
.blt-rv-apply-btn:hover { opacity: .85; }

/* ── Summary bar ─────────────────────────────────────────── */
.blt-rv-summary-bar {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    padding: 9px 16px;
    font-size: 12px;
    color: var(--blt-text-2);
    font-weight: 500;
    margin-bottom: 16px;
}
.blt-rv-sum-item { display: flex; align-items: center; gap: 6px; }
.blt-rv-sum-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.blt-rv-sum-dot-green { background: var(--blt-green); }
.blt-rv-sum-dot-red   { background: var(--blt-red); }
.blt-rv-sum-pnl strong { font-size: 13px; font-weight: 800; }

/* ── Cards container + loading overlay ──────────────────── */
.blt-results-container-wrap {
    position: relative;
    min-height: 120px;
}
.blt-rv-loading-overlay {
    position: absolute;
    inset: 0;
    background: rgba(13,17,23,.55);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 13px;
    color: var(--blt-text-2);
    border-radius: var(--blt-radius);
    z-index: 10;
}
.blt-rv-spinner {
    width: 28px; height: 28px;
    border: 3px solid var(--blt-border);
    border-top-color: var(--blt-accent,#58a6ff);
    border-radius: 50%;
    animation: blt-spin .7s linear infinite;
}

/* ── Empty state ─────────────────────────────────────────── */
.blt-results-empty {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 48px 20px;
    color: var(--blt-text-3);
    font-size: 14px;
    text-align: center;
}
.blt-results-empty-icon { font-size: 36px; }

/* ── Pagination ──────────────────────────────────────────── */
.blt-results-pagination {
    display: flex;
    gap: 14px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 16px 0 8px;
}
.blt-rp-summary {
    font-size: 12px;
    color: var(--blt-text-3);
    font-weight: 500;
    letter-spacing: 0.3px;
}
.blt-rp-dot { margin: 0 6px; opacity: 0.5; }
.blt-rp-buttons { display: flex; gap: 6px; flex-wrap: wrap; }
.blt-rp-btn {
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    color: var(--blt-text-2);
    border-radius: var(--blt-radius-sm);
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--blt-transition);
    min-width: 34px;
}
.blt-rp-btn:hover { border-color: var(--blt-border-hover); color: var(--blt-text); }
.blt-rp-btn-active {
    background: var(--blt-accent,#58a6ff);
    border-color: var(--blt-accent,#58a6ff);
    color: #fff;
    cursor: default;
}

/* ── Pending table ───────────────────────────────────────── */
.blt-rv-section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.blt-rv-section-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--blt-text);
    margin: 0;
}
.blt-rv-section-badge {
    background: rgba(88,166,255,.12);
    border: 1px solid rgba(88,166,255,.25);
    color: var(--blt-blue);
    border-radius: 50px;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.blt-rv-pending-table-wrap {
    overflow-x: auto;
    border-radius: var(--blt-radius);
    border: 1px solid var(--blt-border);
}
.blt-rv-pending-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.blt-rv-pending-table th {
    background: var(--blt-surface2);
    color: var(--blt-text-3);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 9px 12px;
    text-align: left;
    border-bottom: 1px solid var(--blt-border);
    white-space: nowrap;
}
.blt-rv-pending-table td {
    padding: 8px 12px;
    color: var(--blt-text);
    border-bottom: 1px solid var(--blt-border);
    vertical-align: middle;
}
.blt-rv-pending-table tbody tr:last-child td { border-bottom: none; }
.blt-rv-pending-table tbody tr:hover td { background: var(--blt-surface2); }
.blt-rv-type-badge {
    background: rgba(88,166,255,.1);
    border: 1px solid rgba(88,166,255,.2);
    color: var(--blt-blue);
    border-radius: 4px;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.blt-rv-empty-note { color: var(--blt-text-3); font-size: 13px; padding: 12px 0 0; }

/* ── Stats panel ─────────────────────────────────────────── */
.blt-rv-stats-panel {
    border-top: 1px solid var(--blt-border);
    padding-top: 20px;
}
.blt-rv-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 10px;
}
.blt-rv-stats-card {
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}
.blt-rv-stats-card-wide { grid-column: span 2; }
.blt-rv-stats-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.blt-rv-stats-value {
    font-size: 26px;
    font-weight: 800;
    color: var(--blt-text);
    line-height: 1.2;
}

/* ── Utility colour helpers ──────────────────────────────── */
.blt-text-green { color: var(--blt-green) !important; }
.blt-text-red   { color: var(--blt-red)   !important; }

/* ── Light-mode overrides ────────────────────────────────── */
.blt-light-mode .blt-rv-loading-overlay { background: rgba(255,255,255,.7); }
.blt-light-mode .blt-rv-search-input    { background: #fff !important; color: #1a1a2e !important; border-color: #cbd5e1 !important; }
.blt-light-mode .blt-rv-date-input      { background: #fff; color: #1a1a2e; border-color: #cbd5e1; }
.blt-light-mode .blt-rv-toolbar         { background: #f1f5f9; border-color: #e2e8f0; }
.blt-light-mode .blt-rv-pill            { background: #ffffff; color: #475569; border-color: #cbd5e1; }
.blt-light-mode .blt-rv-pill:hover      { background: #eff6ff; border-color: #3b82f6; color: #1d4ed8; }
.blt-light-mode .blt-rv-pill-active     { background: #2563eb; border-color: #2563eb; color: #fff; box-shadow: 0 2px 8px rgba(37,99,235,.3); }
.blt-light-mode .blt-rv-stats-card      { background: #fff; }
.blt-light-mode .blt-rv-pending-table th { background: #f8fafc; }
.blt-light-mode .blt-rv-pending-table tbody tr:hover td { background: #f1f5f9; }
.blt-light-mode .blt-rv-stat-pill       { background: #f1f5f9; border-color: #e2e8f0; }
.blt-light-mode .blt-rv-stat-label      { color: #64748b; }
.blt-light-mode .blt-rv-stat-value      { color: #1a1a2e; }
.blt-light-mode .blt-rv-summary-bar     { background: #f8fafc; }
/* Delete button in light mode */
.blt-light-mode .blt-rc-delete-btn      { border-color: rgba(220,38,38,.4); color: #dc2626; }
.blt-light-mode .blt-rc-delete-btn:hover { background: #dc2626; border-color: #dc2626; color: #fff; }
.blt-light-mode .blt-rc-footer          { background: #f8faff; color: #94a3b8; }

/* =================================================================
   PENDING CARDS — Open Positions Grid
   ================================================================= */

/* Section divider between pending and results */
.blt-rv-section-divider {
    height: 1px;
    background: var(--blt-border);
    margin: 24px 0;
}

/* Section title group (dot + title + badge) */
.blt-rv-section-title-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.blt-rv-section-badge--active {
    background: rgba(255,152,0,0.15);
    color: #ff9800;
    border: 1px solid rgba(255,152,0,0.35);
}

/* Pending grid: auto-fill, shrinks columns when many cards */
.blt-rv-pending-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

/* Compact mode: slightly narrower but still readable */
.blt-rv-pending-grid.blt-compact {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 8px;
}

/* ── Individual Pending Card ──────────────────────────────── */
.blt-pending-card {
    background: var(--blt-surface);
    border: 1px solid rgba(255,152,0,0.28);
    border-left: 3px solid #ff9800;
    border-radius: var(--blt-radius);
    padding: 12px 14px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: var(--blt-transition);
    box-shadow: 0 0 0 1px rgba(255,152,0,0.1), 0 2px 10px rgba(255,152,0,0.08);
    animation: blt-card-in 0.3s ease forwards;
}

/* Animated shimmer stripe at the top */
.blt-pending-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #ff9800, #ffeb3b, #ff9800, transparent);
    background-size: 200% 100%;
    animation: blt-pending-shimmer 2.5s linear infinite;
}

@keyframes blt-pending-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.blt-pending-card:hover {
    border-color: rgba(255,152,0,0.6);
    box-shadow: 0 0 0 1px rgba(255,152,0,0.35), 0 4px 18px rgba(255,152,0,0.18);
    transform: translateY(-2px);
}

/* Card Header */
.blt-pc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 6px;
}

.blt-pc-symbol-group {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.blt-pc-symbol {
    font-size: 15px;
    font-weight: 800;
    color: var(--blt-text);
    letter-spacing: 0.03em;
}

/* Pulsing live dot */
.blt-pc-live-dot {
    width: 8px;
    height: 8px;
    background: #ff9800;
    border-radius: 50%;
    flex-shrink: 0;
    animation: blt-live-pulse 1.8s ease-in-out infinite;
}

@keyframes blt-live-pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(255,152,0,0.5); }
    50%       { opacity: 0.75; box-shadow: 0 0 0 5px rgba(255,152,0,0); }
}

/* Card Body rows */
.blt-pc-body {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 10px;
}

.blt-pc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
}

.blt-pc-lbl {
    color: var(--blt-text-3);
    font-weight: 500;
}

.blt-pc-val {
    font-weight: 700;
    color: var(--blt-text);
    font-family: 'Inter', monospace;
}

.blt-pc-val-green { color: var(--blt-green) !important; }
.blt-pc-val-red   { color: var(--blt-red)   !important; }

/* Entry row: highlighted as primary data point */
.blt-pc-row--primary { margin-bottom: 2px; }
.blt-pc-row--primary .blt-pc-lbl {
    color: var(--blt-text-2);
    font-weight: 600;
}
.blt-pc-row--primary .blt-pc-val {
    font-size: 14px;
    font-weight: 800;
    color: var(--blt-text);
}

/* Muted rows: secondary metadata (strike, expiry, etc.) */
.blt-pc-row--muted .blt-pc-lbl {
    color: var(--blt-text-3);
    font-weight: 400;
    font-size: 11px;
}
.blt-pc-row--muted .blt-pc-val {
    font-weight: 500;
    font-size: 11px;
    color: var(--blt-text-3);
}

/* Card Footer */
.blt-pc-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 8px;
    border-top: 1px solid var(--blt-border);
}

.blt-pc-date {
    font-size: 10px;
    color: var(--blt-text-3);
}

.blt-pc-hint {
    font-size: 10px;
    color: #ff9800;
    opacity: 0.8;
    font-weight: 600;
}

/* Compact mode overrides */
.blt-compact .blt-pending-card { padding: 9px 10px; }
.blt-compact .blt-pc-symbol    { font-size: 13px; }
.blt-compact .blt-pc-row       { font-size: 11px; gap: 3px; }
.blt-compact .blt-pc-body      { gap: 4px; margin-bottom: 8px; }

/* Light-mode overrides */
.blt-light-mode .blt-pending-card {
    background: #fff;
    border-color: rgba(255,152,0,0.4);
    box-shadow: 0 2px 12px rgba(255,152,0,0.12);
}
.blt-light-mode .blt-pc-symbol { color: #1a1a2e; }
.blt-light-mode .blt-pc-val    { color: #1a1a2e; }

/* Compact mode for results grid — only activates at 16+ cards */
#blt-results-grid.blt-compact {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}
#blt-results-grid.blt-compact .blt-result-card { cursor: pointer; }
#blt-results-grid.blt-compact .blt-rc-body     { padding: 10px 12px; }
#blt-results-grid.blt-compact .blt-rc-row      { font-size: 12px; }
#blt-results-grid.blt-compact .blt-rc-symbol   { font-size: 15px; }

/* Result cards are always clickable */
.blt-result-card { cursor: pointer; }

/* =================================================================
   DETAIL MODAL
   ================================================================= */

.blt-detail-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.72);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.blt-detail-modal-box {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: 14px;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 24px 60px rgba(0,0,0,0.55);
    animation: blt-dm-slide-in 0.22s cubic-bezier(.22,1,.36,1) forwards;
}

@keyframes blt-dm-slide-in {
    from { transform: translateY(22px) scale(0.97); opacity: 0; }
    to   { transform: translateY(0)    scale(1);    opacity: 1; }
}

.blt-detail-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--blt-border);
    position: sticky;
    top: 0;
    background: var(--blt-surface);
    z-index: 2;
    border-radius: 14px 14px 0 0;
}

.blt-detail-modal-title-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.blt-dm-symbol {
    font-size: 20px;
    font-weight: 800;
    color: var(--blt-text);
    letter-spacing: 0.04em;
}

.blt-dm-badges {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.blt-detail-modal-close {
    background: none;
    border: none;
    color: var(--blt-text-2);
    font-size: 26px;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    transition: color 0.18s;
    flex-shrink: 0;
}

.blt-detail-modal-close:hover { color: var(--blt-red); }

.blt-detail-modal-body { padding: 18px 20px 22px; }

/* Modal data grid */
.blt-dm-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
    margin-bottom: 14px;
}

.blt-dm-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.blt-dm-item--full      { grid-column: 1 / -1; }

/* Secondary items: visually de-emphasized */
.blt-dm-item--secondary .blt-dm-lbl {
    font-size: 9px;
    letter-spacing: 0.05em;
    color: var(--blt-text-3);
    opacity: 0.75;
}
.blt-dm-item--secondary .blt-dm-val {
    font-size: 12px;
    font-weight: 500;
    color: var(--blt-text-2);
}

.blt-dm-lbl {
    font-size: 10px;
    font-weight: 600;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.blt-dm-val {
    font-size: 14px;
    font-weight: 700;
    color: var(--blt-text);
    font-family: 'Inter', monospace;
}

.blt-dm-val-green  { color: var(--blt-green)  !important; }
.blt-dm-val-red    { color: var(--blt-red)    !important; }
.blt-dm-val-orange { color: #ff9800           !important; }
.blt-dm-val-accent { color: var(--blt-accent) !important; }

/* Status badge in modal */
.blt-dm-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.blt-dm-status-active { background: rgba(255,152,0,0.15); color: #ff9800; border: 1px solid rgba(255,152,0,0.3); }
.blt-dm-status-win    { background: rgba(63,185,80,0.15);  color: var(--blt-green); border: 1px solid rgba(63,185,80,0.3); }
.blt-dm-status-loss   { background: rgba(248,81,73,0.15);  color: var(--blt-red);   border: 1px solid rgba(248,81,73,0.3); }

/* P&L highlight block */
.blt-dm-pnl-block {
    background: var(--blt-surface2);
    border-radius: var(--blt-radius-sm);
    padding: 12px 14px;
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.blt-dm-pnl-lbl { font-size: 11px; font-weight: 700; color: var(--blt-text-3); text-transform: uppercase; letter-spacing: .05em; }
.blt-dm-pnl-val { font-size: 20px; font-weight: 800; }

/* Greeks row */
.blt-dm-greeks-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 14px;
    background: var(--blt-surface2);
    border-radius: var(--blt-radius-sm);
    margin-top: 12px;
    flex-wrap: wrap;
}

.blt-dm-greek     { font-size: 12px; color: var(--blt-text-2); }
.blt-dm-greek-sym { font-weight: 700; color: var(--blt-purple); margin-right: 3px; }

/* Description block */
.blt-dm-desc-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--blt-border);
}

.blt-dm-desc-text {
    font-size: 13px;
    color: var(--blt-text-2);
    line-height: 1.6;
    margin: 4px 0 0;
    white-space: pre-wrap;
    word-break: break-word;
}

/* Admin-only system annotations block — subtle amber accent so it's visually
   distinct from the public notes. Only rendered when is_admin=1 server-side. */
.blt-dm-admin-block {
    margin-top: 10px;
    padding: 10px 12px;
    background: rgba(245, 158, 11, 0.06);
    border: 1px dashed rgba(245, 158, 11, 0.35);
    border-radius: 8px;
}
.blt-dm-admin-block .blt-dm-lbl {
    color: rgb(245, 158, 11);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.5px;
}
.blt-dm-admin-text {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    color: rgba(255,255,255,0.78);
    line-height: 1.55;
    margin: 6px 0 0;
    white-space: pre-wrap;
    word-break: break-word;
    padding: 0;
    background: transparent;
    border: 0;
}
.blt-light-mode .blt-dm-admin-text { color: #475569; }

/* Educational disclaimer — small, subtle, at the bottom of every modal */
.blt-dm-edu-disclaimer {
    margin-top: 14px;
    padding: 8px 10px;
    font-size: 10.5px;
    font-style: italic;
    color: var(--blt-text-3, #94a3b8);
    text-align: center;
    border-top: 1px dashed var(--blt-border);
    letter-spacing: 0.2px;
    opacity: 0.75;
}
.blt-light-mode .blt-dm-edu-disclaimer { color: #94a3b8; }

/* Light-mode overrides */
.blt-light-mode .blt-detail-modal-box    { background: #fff; }
.blt-light-mode .blt-detail-modal-header { background: #fff; }
.blt-light-mode .blt-dm-symbol           { color: #1a1a2e; }
.blt-light-mode .blt-dm-val              { color: #1a1a2e; }
.blt-light-mode .blt-dm-pnl-block        { background: #f1f5f9; }
.blt-light-mode .blt-dm-greeks-row       { background: #f1f5f9; }
.blt-light-mode .blt-dm-lbl              { color: #64748b; }
.blt-light-mode .blt-dm-item--secondary .blt-dm-val { color: #64748b; }
.blt-light-mode .blt-pc-row--muted .blt-pc-val      { color: #94a3b8; }

/* Responsive: modal full-width on small screens */
@media (max-width: 520px) {
    .blt-detail-modal-overlay {
        padding: 0;
        align-items: flex-end;
        justify-content: flex-end;
    }
    .blt-detail-modal-box {
        max-height: 90dvh;
        max-height: 90vh;
        border-radius: 14px 14px 0 0;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    .blt-rv-pending-grid { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 8px; }
    .blt-dm-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
}

/* ============================================================
 * FMP API — Symbol Autocomplete Dropdown
 * ============================================================ */
.blt-symbol-wrap {
    position: relative;
}

.blt-fmp-dropdown {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border-hover);
    border-radius: var(--blt-radius-sm);
    box-shadow: var(--blt-shadow);
    z-index: 9999;
    max-height: 240px;
    overflow-y: auto;
}

.blt-fmp-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    cursor: pointer;
    border-bottom: 1px solid var(--blt-border);
    transition: background 0.15s;
    font-size: 13px;
}
.blt-fmp-item:last-child { border-bottom: none; }
.blt-fmp-item:hover { background: var(--blt-surface2); }

.blt-fmp-item strong {
    color: var(--blt-accent);
    font-size: 13px;
    min-width: 60px;
}

.blt-fmp-name {
    color: var(--blt-text);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.blt-fmp-exch {
    color: var(--blt-text-3);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ============================================================
 * FMP API — Options Contract Browser Panel
 * ============================================================ */
.blt-fmp-contract-panel {
    background: var(--blt-surface);
    border: 1px solid var(--blt-border-hover);
    border-radius: var(--blt-radius);
    margin-bottom: 16px;
    overflow: hidden;
}

.blt-fmp-cp-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--blt-surface2);
    border-bottom: 1px solid var(--blt-border);
    flex-wrap: wrap;
}

.blt-fmp-cp-title {
    color: var(--blt-text);
    font-weight: 700;
    font-size: 13px;
    flex: 1;
    min-width: 140px;
}

.blt-fmp-cp-filters {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.blt-fmp-expiry-select {
    background: var(--blt-surface);
    color: var(--blt-text);
    border: 1px solid var(--blt-border-hover);
    border-radius: var(--blt-radius-sm);
    padding: 6px 10px;
    font-size: 12px;
    cursor: pointer;
}

/* ── Type filter tabs ──────────────────────────────────────── */
.blt-fmp-type-tabs {
    display: flex;
    gap: 2px;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border-hover);
    border-radius: var(--blt-radius-sm);
    padding: 2px;
}

.blt-fmp-tab {
    background: transparent;
    border: none;
    border-radius: calc(var(--blt-radius-sm) - 2px);
    color: var(--blt-text-2);
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    transition: var(--blt-transition);
    letter-spacing: 0.03em;
}
.blt-fmp-tab:hover { color: var(--blt-text); background: var(--blt-surface2); }
.blt-fmp-tab.active { background: var(--blt-accent); color: #000 !important; }
.blt-fmp-tab[data-type="CALL"].active { background: var(--blt-green); }
.blt-fmp-tab[data-type="PUT"].active  { background: var(--blt-red); }

/* ── Loading spinner ───────────────────────────────────────── */
.blt-fmp-loading {
    padding: 24px;
    text-align: center;
    color: var(--blt-text-2);
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.blt-fmp-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid var(--blt-border-hover);
    border-top-color: var(--blt-accent);
    border-radius: 50%;
    animation: bltSpin 0.7s linear infinite;
}
@keyframes bltSpin { to { transform: rotate(360deg); } }

.blt-fmp-empty {
    padding: 20px 16px;
    color: var(--blt-text-3);
    font-size: 13px;
    text-align: center;
}

/* ── Contract table ────────────────────────────────────────── */
.blt-fmp-chain-wrap {
    overflow-x: auto;
    max-height: 320px;
    overflow-y: auto;
}

.blt-fmp-chain-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.blt-fmp-chain-table thead th {
    background: transparent;
    color: var(--blt-text-2);
    text-align: left;
    padding: 6px 12px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.06em;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.blt-fmp-chain-table td {
    padding: 7px 12px;
    border: none;
    color: var(--blt-text);
    white-space: nowrap;
    font-size: 12px;
}

.blt-fmp-chain-table tbody tr { border-radius: 6px; }
.blt-fmp-chain-table tbody tr:nth-child(even) td { background: rgba(255,255,255,0.03); }
.blt-fmp-chain-table tbody tr:hover td { background: rgba(255,255,255,0.07); }

/* Subtle left accent instead of a hard border */
.blt-fmp-chain-table tr.blt-fmp-call td:first-child { box-shadow: inset 3px 0 0 var(--blt-green); }
.blt-fmp-chain-table tr.blt-fmp-put  td:first-child { box-shadow: inset 3px 0 0 var(--blt-red); }

.blt-fmp-tp-col { color: var(--blt-green) !important; font-weight: 600; }
.blt-fmp-exp-date { color: var(--blt-text-2); font-size: 11px; }

/* ── Type badge ────────────────────────────────────────────── */
.blt-fmp-badge-type {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.04em;
}
.blt-fmp-call .blt-fmp-badge-type { background: rgba(63,185,80,0.18); color: var(--blt-green); }
.blt-fmp-put  .blt-fmp-badge-type { background: rgba(248,81,73,0.18);  color: var(--blt-red); }

/* ── Use button ────────────────────────────────────────────── */
.blt-fmp-select-contract {
    background: var(--blt-accent);
    color: #000 !important;
    border: none;
    border-radius: var(--blt-radius-sm);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 12px;
    transition: opacity 0.15s;
    white-space: nowrap;
}
.blt-fmp-select-contract:hover { opacity: 0.8; }

/* ── Selected row flash ────────────────────────────────────── */
@keyframes bltRowFlash {
    0%   { background: rgba(0,217,255,0.18); }
    100% { background: transparent; }
}
.blt-fmp-row-selected td { animation: bltRowFlash 1.2s ease forwards; }

/* ── Light mode overrides ──────────────────────────────────── */
.blt-light-mode .blt-fmp-dropdown  { background:#fff; border-color:#e2e8f0; }
.blt-light-mode .blt-fmp-item:hover { background:#f1f5f9; }
.blt-light-mode .blt-fmp-contract-panel { background:#f8faff; border-color:#e2e8f0; }
.blt-light-mode .blt-fmp-cp-header { background:#f1f5f9; }
.blt-light-mode .blt-fmp-expiry-select { background:#fff; color:#1a1a2e; border-color:#cbd5e1; }
.blt-light-mode .blt-fmp-type-tabs { background:#fff; border-color:#cbd5e1; }
.blt-light-mode .blt-fmp-tab { color:#475569; }
.blt-light-mode .blt-fmp-tab:hover { background:#f1f5f9; }
.blt-light-mode .blt-fmp-chain-table thead th { background:transparent; border-bottom-color:rgba(0,0,0,0.08); }
.blt-light-mode .blt-fmp-chain-table td { color:#1a1a2e; border:none; }
.blt-light-mode .blt-fmp-chain-table tbody tr:nth-child(even) td { background:rgba(0,0,0,0.03); }
.blt-light-mode .blt-fmp-chain-table tbody tr:hover td { background:rgba(0,0,0,0.06); }

/* ============================================================
 * MOBILE RESPONSIVE — Comprehensive fixes for all screen sizes
 * ============================================================ */

/* ── Prevent horizontal overflow globally ─────────────────── */
.blt-alerts-wrapper *,
.blt-alerts-wrapper *::before,
.blt-alerts-wrapper *::after {
    box-sizing: border-box;
}

/* ── Tablet (≤768px) ──────────────────────────────────────── */
@media (max-width: 768px) {
    /* Topbar: allow wrapping when content is wide */
    .blt-dash-topbar {
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px 14px;
    }
    .blt-dash-brand {
        flex: 1;
        min-width: 0;
    }

    /* Filter bar: allow items to expand */
    .blt-filter-search {
        max-width: 100%;
    }

    /* Results view: toolbar search full-width */
    .blt-rv-search-wrap {
        flex: 1;
        min-width: 140px;
    }
    .blt-rv-search-input {
        width: 100%;
    }

    /* Summary bar: reduce gap */
    .blt-rv-summary-bar {
        gap: 12px;
    }

    /* Stats grid single column */
    .blt-rv-header-right {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ── Mobile (≤480px) ──────────────────────────────────────── */
@media (max-width: 480px) {
    /* Wrapper padding reduce */
    .blt-alerts-wrapper {
        padding: 10px;
    }

    /* Topbar: stack brand and toggle */
    .blt-dash-topbar {
        padding: 10px 12px;
    }
    .blt-dash-sitename {
        font-size: 13px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 140px;
    }
    .blt-dash-badge {
        display: none;
    }

    /* Tabs bar */
    .alertas-tabs {
        padding: 0 8px;
    }

    /* Tab content padding */
    .blt-tabcontent {
        padding: 14px;
    }

    /* Filter bar: stack vertically */
    .blt-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .blt-filter-search {
        min-width: unset;
        max-width: 100%;
    }
    .blt-filter-select {
        min-width: unset;
        width: 100%;
    }

    /* Alerts/results grids: always single column */
    .blt-alerts-grid {
        grid-template-columns: 1fr;
    }

    /* ── Result cards → mini list rows on mobile ──────────── */
    .blt-results-grid {
        grid-template-columns: 1fr;
        gap: 3px;
        padding-bottom: 8px;
    }
    /* transform full card into a compact tap row */
    .blt-result-card {
        flex-direction: row;
        align-items: stretch;
        border-radius: 8px;
        cursor: pointer;
    }
    .blt-result-card:hover {
        transform: none; /* disable hover lift on touch */
    }
    /* left side: symbol + badges */
    .blt-rc-header {
        flex: 1;
        flex-direction: row;
        align-items: center;
        gap: 7px;
        border-bottom: none;
        border-right: 1px solid var(--blt-border);
        padding: 10px 12px;
        flex-wrap: wrap;
        row-gap: 4px;
    }
    .blt-rc-symbol { font-size: 14px; }
    .blt-rc-badges { gap: 4px; }
    .blt-rc-badge  { font-size: 9px; padding: 2px 6px; }
    /* hide all body rows except P&L */
    .blt-rc-body { padding: 0; gap: 0; justify-content: center; flex: 0 0 auto; }
    .blt-rc-body > *:not(.blt-rc-pnl-row) { display: none; }
    .blt-rc-divider { display: none; }
    .blt-rc-pnl-row {
        padding: 10px 14px;
        background: transparent;
        border-radius: 0;
        flex-direction: column;
        align-items: flex-end;
        gap: 2px;
        min-width: 88px;
        width: 88px;
        flex-shrink: 0;
        justify-content: center;
    }
    .blt-rc-pnl-lbl { font-size: 9px; }
    .blt-rc-pnl-val { font-size: 13px; white-space: nowrap; }
    /* footer: hide dates, show only delete */
    .blt-rc-footer {
        display: flex;
        align-items: center;
        justify-content: center;
        border-top: none;
        border-left: 1px solid var(--blt-border);
        padding: 0 10px;
        flex: 0 0 auto;
    }
    .blt-rc-footer-dates { display: none; }
    /* tap indicator arrow — only for rows without action buttons (non-admin view).
       Admins see resend/delete buttons in the footer; the extra arrow would
       collide with them and deform the flex layout, especially on the first
       card where flex distribution is most sensitive. */
    .blt-rc-footer::after {
        content: '›';
        font-size: 18px;
        color: var(--blt-text-3);
        line-height: 1;
    }
    .blt-rc-footer:has(button)::after { content: none; }

    /* Form actions: stack buttons */
    .blt-form-actions {
        flex-direction: column;
    }
    .blt-form-actions .blt-btn {
        width: 100%;
        justify-content: center;
    }

    /* Modal footer: stack buttons */
    .blt-modal-footer {
        flex-wrap: wrap;
        gap: 8px;
    }
    .blt-modal-footer .blt-btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    /* Results view toolbar: stack vertically */
    .blt-rv-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .blt-rv-filter-pills {
        order: 2;
    }
    .blt-rv-search-wrap {
        order: 1;
        min-width: unset;
        width: 100%;
    }
    .blt-rv-search-input {
        width: 100%;
    }

    /* Results header stats: row of pills */
    .blt-rv-stat-pill {
        flex: 1;
        min-width: unset;
        padding: 5px 8px;
    }
    .blt-rv-stat-value {
        font-size: 15px;
    }

    /* Section header topbar */
    .blt-rv-section-header {
        flex-wrap: wrap;
        gap: 8px;
    }

    /* Batch section already handled but ensure input width */
    .blt-batch-section input[type="text"],
    .blt-batch-section input[type="number"],
    .blt-batch-section select {
        width: 100%;
    }

    /* FMP contract panel header: stack on mobile */
    .blt-fmp-cp-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .blt-fmp-cp-filters {
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .blt-fmp-expiry-select {
        width: 100%;
    }
    .blt-fmp-type-tabs {
        width: 100%;
    }
    .blt-fmp-tab {
        flex: 1;
        text-align: center;
    }

    /* Hero HUD: reduce font and padding */
    .blt-hud-title {
        font-size: 1.3rem;
    }
    .blt-dashboard-hud {
        padding: 12px;
    }
    .blt-big-number {
        font-size: 2.2rem;
    }
}

/* ============================================================
 * MARKET INTELLIGENCE HERO — CSS Isolation
 * Scoped rules to prevent box-model and naming conflicts
 * with the active theme or other plugins.
 * Layout intentionally unchanged from the original design.
 * ============================================================ */

/* Force consistent box model inside the hero — prevents theme
   box-sizing overrides from breaking card/grid dimensions */
.blt-hero-section *,
.blt-hero-section *::before,
.blt-hero-section *::after {
    box-sizing: border-box;
}

/* Explicit flex definitions for the two generic-named header divs
   (.header-left / .header-right have no blt- prefix so no base CSS) */
.blt-hero-section .blt-hud-header .header-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}
.blt-hero-section .blt-hud-header .header-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* Prevent the inner grid from punching out the side of the HUD
   (.blt-dashboard-hud keeps its own max-width: 1200px) */
.blt-hud-grid {
    max-width: 100%;
}
.blt-hero-section .blt-hud-card {
    min-width: 0;
}
/* Contain horizontal overflow at the HUD level on all screen sizes —
   critical on iOS Safari where overflow-x:hidden on body is ignored */
.blt-dashboard-hud {
    overflow-x: hidden;
}

/* Fix: at tablet the signals area had a fixed 300 px height
   which caused the feed to overflow its card boundary.
   Scoped to TABLET only (601-900px) so it doesn't re-apply at mobile
   and override the 600px rule that sets min-height: unset. */
@media (min-width: 601px) and (max-width: 900px) {
    .blt-area-signals {
        height: auto !important;
        min-height: 300px;
    }
}

/* ── Signals feed: compact layout on phones (≤480px) ────────
   Targets iPhone SE (375px) through iPhone Pro Max (430px).
   All rules scoped under .blt-hero-section for isolation.   */
@media (max-width: 480px) {
    /* Latest signal hero card: stack ticker block + P&L vertically
       so the big percentage doesn't crush the symbol text */
    .blt-hero-section .blt-ls-inner {
        flex-wrap: wrap;
        gap: 6px;
    }
    .blt-hero-section .blt-ls-meta {
        flex: 1 1 100%;   /* take full row → P&L drops below */
        min-width: 0;
    }
    .blt-hero-section .blt-ls-ticker {
        font-size: 1.15rem;
    }
    .blt-hero-section .blt-ls-type {
        font-size: 0.7rem;
    }
    .blt-hero-section .blt-ls-pct {
        font-size: 1.6rem;  /* was 2rem */
        width: 100%;        /* own row, left-aligned */
        margin-top: 2px;
    }
    .blt-hero-section .blt-latest-signal-card {
        padding: 12px 14px;
    }

    /* Individual feed rows: reduce padding and tighten text */
    .blt-hero-section .blt-glass-card {
        padding: 8px 10px;
    }
    .blt-hero-section .blt-sig-row {
        gap: 6px;
    }
    .blt-hero-section .blt-sig-ticker {
        font-size: 0.88rem;
        gap: 4px;
        flex-wrap: wrap;
    }
    .blt-hero-section .blt-sig-type {
        font-size: 0.68rem;
    }
    .blt-hero-section .blt-sig-pct {
        font-size: 0.95rem;
    }
    .blt-hero-section .blt-sig-date {
        font-size: 0.6rem;
    }

    /* Tags inside hero: shrink slightly to stay compact on tight layouts */
    .blt-hero-section .blt-tag {
        height: 16px;
        font-size: 8px;
        padding: 0 6px;
        letter-spacing: 0.5px;
    }
    .blt-hero-section .blt-tag-lg {
        height: 19px;
        font-size: 9px;
        padding: 0 7px;
    }

    /* Signals header: tighten */
    .blt-hero-section .blt-signals-header {
        margin-bottom: 8px;
    }
}

/* ── Pending cards grid: force 1 column on very small phones ── */
@media (max-width: 380px) {
    .blt-rv-pending-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Very small phones (≤375px) ───────────────────────────── */
@media (max-width: 375px) {
    .blt-alerts-wrapper {
        padding: 8px;
        border-radius: 10px;
    }
    .alertas-tabs {
        padding: 0 4px;
    }
    .blt-tablink {
        font-size: 11px;
        padding: 10px 8px;
    }
    .blt-tabcontent {
        padding: 10px;
    }
    .blt-dash-sitename {
        max-width: 110px;
    }
    .blt-portfolio-bar {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 12px;
    }
    .blt-portfolio-value {
        font-size: 1rem;
    }
    .blt-big-number {
        font-size: 1.8rem;
    }
    .blt-hud-title {
        font-size: 1.1rem;
    }
    /* Stack stats pills vertically if too many */
    .blt-rv-header-right {
        flex-wrap: wrap;
    }
    .blt-rv-stat-pill {
        min-width: 60px;
    }
}

/* ── Notifications toolbar ────────────────────────────────── */
.blt-notif-toolbar {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.blt-notif-btn {
    padding: 6px 12px;
    border-radius: var(--blt-radius-sm);
    border: 1px solid var(--blt-border);
    background: var(--blt-surface2);
    color: var(--blt-text);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    transition: var(--blt-transition);
    line-height: 1;
    white-space: nowrap;
}
.blt-notif-btn:hover {
    border-color: var(--blt-border-hover);
    color: var(--blt-text);
    background: var(--blt-surface);
}
.blt-notif-btn--link  { color: var(--blt-blue); }
.blt-notif-btn--u     { text-decoration: underline; }
.blt-notif-btn--preview {
    border-color: rgba(0,217,255,.3);
    color: var(--blt-accent);
    background: transparent;
    margin-left: auto;
}
.blt-notif-btn--preview:hover {
    background: rgba(0,217,255,.08);
    border-color: var(--blt-accent);
}

/* Notification textarea */
.blt-notif-textarea {
    width: 100%;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    line-height: 1.6;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    color: var(--blt-text);
    padding: 9px 12px;
    resize: vertical;
    box-sizing: border-box;
    transition: var(--blt-transition);
}
.blt-notif-textarea:focus {
    outline: none;
    border-color: var(--blt-accent);
    box-shadow: 0 0 0 3px rgba(0,217,255,.1);
}

/* Notification preview panel */
.blt-notif-preview-wrap {
    margin-bottom: 16px;
}
.blt-notif-preview-body {
    background: var(--blt-surface2);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius-sm);
    padding: 16px;
    color: var(--blt-text);
    font-size: 14px;
    line-height: 1.7;
    margin-top: 6px;
    max-height: 300px;
    overflow-y: auto;
    word-break: break-word;
}
/* Light-mode overrides */
.blt-light-mode .blt-notif-preview-body {
    background: #f8faff;
    color: #1a1a2e;
    border-color: #e2e8f0;
}
.blt-light-mode .blt-notif-textarea {
    background: #fff;
    color: #1a1a2e;
}

/* Notification toolbar mobile: stack on very small screens */
@media (max-width: 480px) {
    .blt-notif-btn--preview {
        margin-left: 0;
    }
}

/* ── Touch-friendly scrollable tables ─────────────────────── */
@media (max-width: 768px) {
    .alertas-table-wrapper,
    .alertas-table-results-wrapper,
    .blt-rv-pending-table-wrap,
    .blt-fmp-chain-wrap {
        -webkit-overflow-scrolling: touch;
        overflow-x: auto;
    }
}

/* ── Hero section: overflow & sizing fixes for mobile (≤600px) ──
   Prevents cards from punching out of the viewport at ~320-544px.
   All rules scoped under .blt-hero-section for isolation.        */
@media (max-width: 600px) {
    /* Grid: explicitly fill container and clip any overflow */
    .blt-hero-section .blt-hud-grid {
        width: 100%;
        overflow: hidden;
    }

    /* Cards: explicitly fill available width; reduce padding so
       content has more room on narrow screens               */
    .blt-hero-section .blt-hud-card {
        width: 100%;
        padding: 14px;
    }

    /* Header: allow button to shrink on very narrow viewports */
    .blt-hero-section .blt-register-btn {
        padding: 10px 18px;
        font-size: 0.8rem;
        white-space: nowrap;
        max-width: 100%;
    }

    /* Latest signal card: tighten padding */
    .blt-hero-section .blt-latest-signal-card {
        padding: 12px 14px;
    }

    /* Ensure media inside cards never exceed card width */
    .blt-hero-section .blt-hud-card img,
    .blt-hero-section .blt-hud-card svg {
        max-width: 100%;
    }

    /* News items: prevent long headlines from expanding the row */
    .blt-hero-section .news-headline {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    /* Distribution bars: contain inside card */
    .blt-hero-section .blt-dist-bars-vertical {
        overflow: hidden;
    }
}

/* ── Gap range (481-544px): tighten further so content fits ── */
@media (max-width: 544px) {
    .blt-hero-section .blt-hud-card {
        padding: 12px;
    }

    /* Reduce big number font so it never overflows the card width */
    .blt-hero-section .blt-big-number {
        font-size: 2.2rem;
    }

    /* Latest signal pct: scale down slightly */
    .blt-hero-section .blt-ls-pct {
        font-size: 1.6rem;
    }

    /* Feed row pct: scale down */
    .blt-hero-section .blt-sig-pct {
        font-size: 1rem;
    }

    /* Header right: wrap greeting + button if needed */
    .blt-hero-section .blt-hud-header .header-right {
        flex-wrap: wrap;
        justify-content: center;
    }
}


/* ============================================================
 * EDIT ALERT MODAL — Dark Theme Isolation
 * Override theme (SmartMag dark mode) rules that set dark color
 * on h3 and inputs, making modal text invisible in dark mode.
 * ============================================================ */
.blt-modal-box .blt-modal-header h3 {
    color: var(--blt-text) !important;
}
.blt-modal-box .alerta-form-group label,
.blt-modal-box .blt-form-label {
    color: var(--blt-text-2) !important;
}
.blt-modal-box .alerta-form-group input,
.blt-modal-box .alerta-form-group textarea,
.blt-modal-box .alerta-form-group select {
    background: var(--blt-surface2) !important;
    color: var(--blt-text) !important;
    border-color: var(--blt-border) !important;
}
.blt-modal-box .alerta-form-group input:focus,
.blt-modal-box .alerta-form-group textarea:focus,
.blt-modal-box .alerta-form-group select:focus {
    border-color: var(--blt-accent) !important;
    box-shadow: 0 0 0 3px rgba(0,217,255,0.1) !important;
}
/* Light mode override — restore light palette inside the modal */
.blt-light-mode .blt-modal-box .alerta-form-group input,
.blt-light-mode .blt-modal-box .alerta-form-group textarea,
.blt-light-mode .blt-modal-box .alerta-form-group select {
    background: #ffffff !important;
    color: #1e293b !important;
    border-color: #cbd5e1 !important;
}
.blt-light-mode .blt-modal-box .alerta-form-group label,
.blt-light-mode .blt-modal-box .blt-form-label {
    color: #475569 !important;
}
.blt-light-mode .blt-modal-box .blt-modal-header h3 {
    color: #1e293b !important;
}

/* ============================================================
 * LIGHT THEME — Portfolio Bar & General Text Fixes
 * Fixes hardcoded dark colors that don't adapt to light mode.
 * ============================================================ */

/* Portfolio bar: replace dark gradient with light-friendly version */
.blt-light-mode .blt-portfolio-bar {
    background: linear-gradient(135deg, #f0f4ff 0%, #e8eeff 100%);
    border-left-color: var(--blt-accent);
}
.blt-light-mode .blt-portfolio-label {
    color: #64748b;
}
.blt-light-mode .blt-portfolio-value {
    color: #1a1a2e;
}
.blt-light-mode .blt-portfolio-stat {
    color: #1a1a2e;
}

/* Alert cards in light mode */
.blt-light-mode .blt-alert-card {
    background: #ffffff;
    border-color: #e2e8f0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.blt-light-mode .blt-alert-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.10);
}
.blt-light-mode .blt-card-header {
    border-bottom-color: #e2e8f0;
}
.blt-light-mode .blt-card-symbol  { color: #1a1a2e; }
.blt-light-mode .blt-card-type    { color: #475569; }
.blt-light-mode .blt-card-footer  { border-top-color: #e2e8f0; background: #f8faff; }
.blt-light-mode .blt-info-label   { color: #64748b; }
.blt-light-mode .blt-info-value   { color: #1a1a2e; }

/* Section headers & tabs */
.blt-light-mode .blt-section-header h2   { color: #1a1a2e !important; }
.blt-light-mode .blt-section-subtitle    { color: #475569 !important; }
.blt-light-mode .blt-tablink             { color: #475569; border-bottom-color: transparent; }
.blt-light-mode .blt-tablink.active      { color: var(--blt-accent); border-bottom-color: var(--blt-accent); }
.blt-light-mode .blt-tablink:hover       { color: #1a1a2e; }

/* Filter bar */
.blt-light-mode .blt-search-input        { background: #ffffff !important; color: #1a1a2e !important; border-color: #e2e8f0 !important; }
.blt-light-mode .blt-filter-select       { background: #ffffff; color: #1a1a2e; border-color: #e2e8f0; }

/* Toggle label */
.blt-light-mode .blt-toggle-label        { color: #475569; }

/* Greeting / no-alerts empty state */
.blt-light-mode .blt-no-alerts           { color: #475569; }
.blt-light-mode .blt-empty-icon          { color: #94a3b8; }

/* ============================================================
   Take Profit (TP) Badge Bar
   ============================================================ */
.blt-tp-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.07);
}
.blt-tp-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--blt-text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 2px;
    white-space: nowrap;
}
.blt-tp-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 20px;
    white-space: nowrap;
    line-height: 1.4;
    transition: background 0.2s, color 0.2s;
}
.blt-tp-pending {
    background: rgba(255,255,255,0.07);
    color: #94a3b8;
    border: 1px solid rgba(255,255,255,0.10);
}
.blt-tp-reached {
    background: rgba(34, 197, 94, 0.15);
    color: #22c55e;
    border: 1px solid rgba(34, 197, 94, 0.30);
}

/* Light mode overrides */
.blt-light-mode .blt-tp-bar {
    border-top-color: #e2e8f0;
}
.blt-light-mode .blt-tp-label {
    color: #64748b;
}
.blt-light-mode .blt-tp-pending {
    background: #f1f5f9;
    color: #64748b;
    border-color: #e2e8f0;
}
.blt-light-mode .blt-tp-reached {
    background: rgba(34, 197, 94, 0.10);
    color: #16a34a;
    border-color: rgba(34, 197, 94, 0.25);
}

/* ============================================================
 * PENDING MINI CARDS — TP chip + P&L bar
 * ============================================================ */

/* Right side of card header (live dot + TP chip) */
.blt-pc-header-right {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

/* TP chip shown when a TP level has been reached */
.blt-pc-tp-chip {
    background: linear-gradient(135deg, rgba(16,185,129,0.18), rgba(5,150,105,0.24));
    border: 1px solid rgba(16,185,129,0.45);
    color: #10b981;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    flex-shrink: 0;
}

/* P&L bar between card header and body */
.blt-pc-pnl-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 6px;
    background: rgba(255,152,0,0.06);
    border: 1px solid rgba(255,152,0,0.14);
    margin-bottom: 6px;
}
.blt-pc-pnl-lbl {
    font-size: 10px;
    font-weight: 600;
    color: var(--blt-text-3);
    text-transform: uppercase;
    letter-spacing: .05em;
    flex-shrink: 0;
}
.blt-pc-pnl-val {
    font-size: 12px;
    font-weight: 700;
    color: var(--blt-text-2);
    transition: color 0.3s;
}
.blt-pc-pnl-val.blt-pnl-pos { color: var(--blt-green); }
.blt-pc-pnl-val.blt-pnl-neg { color: var(--blt-red); }

/* TP badge on result cards */
.blt-rc-badge-tp {
    background: linear-gradient(135deg, rgba(16,185,129,0.18), rgba(5,150,105,0.24));
    border: 1px solid rgba(16,185,129,0.4);
    color: #10b981;
}

/* Near-TP1 badge on result cards */
.blt-rc-badge-near-tp1 {
    background: linear-gradient(135deg, rgba(251,191,36,0.18), rgba(245,158,11,0.24));
    border: 1px solid rgba(245,158,11,0.45);
    color: #f59e0b;
}

/* Near-TP1 chip on pending cards */
.blt-pc-tp-chip-near {
    background: linear-gradient(135deg, rgba(251,191,36,0.18), rgba(245,158,11,0.24));
    border: 1px solid rgba(245,158,11,0.45);
    color: #f59e0b;
}

/* Near-TP1 badge in alert card TP bar */
.blt-tp-near-tp1 {
    background: linear-gradient(135deg, rgba(251,191,36,0.15), rgba(245,158,11,0.20));
    color: #f59e0b;
    border: 1px solid rgba(245,158,11,0.35);
}
.blt-light-mode .blt-tp-near-tp1 {
    background: rgba(245,158,11,0.08);
    color: #d97706;
    border-color: rgba(245,158,11,0.25);
}

/* Near-TP1 info row in result card body. Single line + ellipsis so a long
   "169.91 no alcanzado — avance: 83.2%" stays one line and never grows the card. */
.blt-rc-near-tp1-row { border-top: 1px solid rgba(245,158,11,0.15); }
.blt-rc-near-tp1-info {
    color: #f59e0b;
    font-size: 11px;
    text-align: right;
    max-width: 165px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.blt-light-mode .blt-rc-near-tp1-info { color: #d97706; }

/* ============================================================
 * DETAIL MODAL — Take Profit section
 * ============================================================ */
.blt-dm-tp-section {
    margin-top: 12px;
    padding: 12px 14px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--blt-border);
    border-radius: 10px;
}
.blt-dm-tp-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.blt-dm-tp-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 8px 12px;
    border-radius: 10px;
    min-width: 64px;
    flex: 1;
    text-align: center;
    border: 1px solid;
    transition: opacity 0.2s;
}
.blt-dm-tp-badge.blt-dm-tp-reached {
    background: rgba(16,185,129,0.14);
    border-color: rgba(16,185,129,0.42);
}
.blt-dm-tp-badge.blt-dm-tp-pending {
    background: rgba(255,255,255,0.03);
    border-color: var(--blt-border);
    opacity: 0.5;
}
.blt-dm-tp-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.blt-dm-tp-reached .blt-dm-tp-label { color: #10b981; }
.blt-dm-tp-pending .blt-dm-tp-label { color: var(--blt-text-3); }
.blt-dm-tp-price {
    font-size: 12px;
    font-weight: 700;
}
.blt-dm-tp-reached .blt-dm-tp-price { color: #10b981; }
.blt-dm-tp-pending .blt-dm-tp-price { color: var(--blt-text-2); }
.blt-dm-tp-check {
    font-size: 10px;
    color: #10b981;
    font-weight: 700;
}

/* Near-TP1 alert banner inside TP section of detail modal */
.blt-dm-near-tp1-alert {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    background: rgba(245,158,11,0.10);
    border: 1px solid rgba(245,158,11,0.30);
}
.blt-dm-near-tp1-closed {
    background: rgba(245,158,11,0.06);
    border-color: rgba(245,158,11,0.20);
}
.blt-dm-near-tp1-icon { font-size: 14px; flex-shrink: 0; margin-top: 1px; }
.blt-dm-near-tp1-text { font-size: 11px; color: #f59e0b; line-height: 1.5; }
.blt-light-mode .blt-dm-near-tp1-text { color: #d97706; }

/* ============================================================
 * DETAIL MODAL — Live P&L block (active positions)
 * ============================================================ */
.blt-dm-live-pnl-block {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 10px;
    border: 1px solid rgba(255,152,0,0.35);
    background: rgba(255,152,0,0.07);
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.blt-dm-live-pnl-block .blt-dm-pnl-lbl {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #ff9800;
    flex-shrink: 0;
}
.blt-dm-live-pnl-block .blt-dm-pnl-val {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.01em;
}
.blt-dm-live-pnl-loading {
    font-size: 13px;
    color: var(--blt-text-3);
    font-style: italic;
}
.blt-dm-live-pnl-na {
    font-size: 13px;
    color: var(--blt-text-3);
    font-style: italic;
    opacity: 0.85;
}
.blt-dm-val-muted { color: var(--blt-text-3); }
.blt-dm-live-pnl-price {
    font-size: 12px;
    color: var(--blt-text-3);
}
.blt-dm-live-pnl-tp {
    margin-left: auto;
    font-size: 11px;
    color: var(--blt-text-3);
    opacity: 0.8;
}

/* Light-mode overrides */
.blt-light-mode .blt-pc-tp-chip    { background: rgba(16,185,129,0.1); border-color: rgba(16,185,129,0.35); }
.blt-light-mode .blt-pc-pnl-bar    { background: rgba(255,152,0,0.06); border-color: rgba(255,152,0,0.2); }
.blt-light-mode .blt-dm-tp-section { background: #f8fafc; border-color: #e2e8f0; }
.blt-light-mode .blt-dm-tp-badge.blt-dm-tp-pending { background: #f1f5f9; border-color: #e2e8f0; }

/* ── Hub Footer ──────────────────────────────────────────────── */
.blt-rv-hub-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
    padding: 14px 20px;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    /* subtle top accent line */
    position: relative;
    overflow: hidden;
}
.blt-rv-hub-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, #00d9ff 0%, #3fb950 50%, #bc8cff 100%);
    opacity: .5;
}
.blt-rv-hub-footer__links {
    display: flex;
    align-items: center;
    gap: 6px;
}
.blt-rv-hub-footer__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--blt-text-2);
    text-decoration: none;
    padding: 5px 12px;
    border-radius: var(--blt-radius-sm);
    border: 1px solid var(--blt-border);
    background: var(--blt-surface2);
    transition: var(--blt-transition);
}
.blt-rv-hub-footer__link:hover {
    color: var(--blt-text);
    border-color: var(--blt-border-hover);
    background: var(--blt-surface);
    text-decoration: none;
}
.blt-rv-hub-footer__link--logout {
    color: var(--blt-text-3);
}
.blt-rv-hub-footer__link--logout:hover {
    color: var(--blt-red);
    border-color: rgba(248,81,73,.3);
}
.blt-rv-hub-footer__link-icon {
    font-size: 13px;
    line-height: 1;
}
.blt-rv-hub-footer__sep {
    width: 1px;
    height: 16px;
    background: var(--blt-border);
    flex-shrink: 0;
    margin: 0 2px;
}
.blt-rv-hub-footer__brand {
    font-size: 11px;
    color: var(--blt-text-3);
    letter-spacing: .03em;
}

/* footer top row: links + brand */
.blt-rv-hub-footer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

/* Disclaimer row */
.blt-rv-hub-footer__disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--blt-border);
}
.blt-rv-hub-footer__disclaimer-icon {
    font-size: 13px;
    flex-shrink: 0;
    margin-top: 1px;
    filter: grayscale(30%);
}
.blt-rv-hub-footer__disclaimer-text {
    font-size: 10.5px;
    line-height: 1.55;
    color: var(--blt-text-3);
    margin: 0;
}
.blt-rv-hub-footer__disclaimer-text strong {
    color: var(--blt-text-2);
    font-weight: 700;
}

/* Light-mode */
.blt-light-mode .blt-rv-hub-footer { background: #f8fafc; }
.blt-light-mode .blt-rv-hub-footer__link { background: #fff; border-color: #e2e8f0; color: #475569; }
.blt-light-mode .blt-rv-hub-footer__link:hover { background: #f1f5f9; }
.blt-light-mode .blt-rv-hub-footer__disclaimer-text { color: #94a3b8; }
.blt-light-mode .blt-rv-hub-footer__disclaimer-text strong { color: #64748b; }

@media (max-width: 480px) {
    .blt-rv-hub-footer { padding: 14px 16px; }
    .blt-rv-hub-footer__top { flex-direction: column; align-items: flex-start; gap: 8px; }
    .blt-rv-hub-footer__brand { align-self: flex-end; }
}

/* ── Latest News / Market Intel ──────────────────────────────── */
.blt-rv-news-all-link {
    font-size: 11px;
    font-weight: 600;
    color: var(--blt-text-3);
    text-decoration: none;
    margin-left: auto;
    transition: var(--blt-transition);
}
.blt-rv-news-all-link:hover { color: var(--blt-accent); text-decoration: none; }

.blt-rv-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.blt-rv-news-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    background: var(--blt-surface);
    border: 1px solid var(--blt-border);
    border-radius: var(--blt-radius);
    text-decoration: none;
    transition: var(--blt-transition);
    overflow: hidden;
}
.blt-rv-news-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--blt-purple), var(--blt-accent));
    opacity: 0;
    transition: var(--blt-transition);
}
.blt-rv-news-card:hover {
    border-color: var(--blt-border-hover);
    transform: translateY(-2px);
    box-shadow: var(--blt-shadow);
    text-decoration: none;
}
.blt-rv-news-card:hover::before { opacity: 1; }

.blt-rv-news-latest-badge {
    position: absolute;
    top: 0; right: 0;
    background: var(--blt-purple);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 0 var(--blt-radius) 0 var(--blt-radius-sm);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.blt-rv-news-date {
    font-size: 10px;
    font-weight: 800;
    color: var(--blt-purple);
    text-transform: uppercase;
    letter-spacing: .07em;
    line-height: 1;
}

.blt-rv-news-body { flex: 1; display: flex; flex-direction: column; gap: 5px; }

.blt-rv-news-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--blt-text);
    margin: 0;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.blt-rv-news-card:hover .blt-rv-news-title { color: var(--blt-accent); }

.blt-rv-news-excerpt {
    font-size: 11px;
    color: var(--blt-text-3);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blt-rv-news-read {
    font-size: 11px;
    font-weight: 700;
    color: var(--blt-text-3);
    transition: var(--blt-transition);
    align-self: flex-start;
}
.blt-rv-news-card:hover .blt-rv-news-read { color: var(--blt-accent); }

/* Light-mode */
.blt-light-mode .blt-rv-news-card { background: #fff; }
.blt-light-mode .blt-rv-news-title { color: #1a1a2e; }
.blt-light-mode .blt-rv-news-card:hover .blt-rv-news-title { color: #2563eb; }

/* Mobile: stack to 1 column */
@media (max-width: 600px) {
    .blt-rv-news-grid { grid-template-columns: 1fr; gap: 8px; }
    .blt-rv-news-card {
        flex-direction: row;
        align-items: center;
        gap: 12px;
        padding: 14px 14px;
        min-height: 64px;
        border-left: 3px solid rgba(188,140,255,.45);
    }
    .blt-rv-news-card:hover { transform: none; }

    /* date block: accent pill */
    .blt-rv-news-date {
        min-width: 40px;
        text-align: center;
        background: rgba(188,140,255,.12);
        border: 1px solid rgba(188,140,255,.25);
        border-radius: var(--blt-radius-sm);
        padding: 5px 6px;
        line-height: 1.3;
        font-size: 10px;
        flex-shrink: 0;
    }

    .blt-rv-news-body { min-width: 0; flex: 1; }
    .blt-rv-news-title {
        font-size: 12px;
        -webkit-line-clamp: 2;
        color: var(--blt-text);
    }

    /* show excerpt as single line on mobile */
    .blt-rv-news-excerpt {
        display: block;
        font-size: 10px;
        -webkit-line-clamp: 1;
        color: var(--blt-text-3);
        margin-top: 2px;
    }

    .blt-rv-news-read {
        display: flex;
        flex-shrink: 0;
        font-size: 14px;
        color: var(--blt-purple);
        font-weight: 700;
        align-self: center;
    }

    /* Latest badge repositioned for row layout */
    .blt-rv-news-latest-badge {
        border-radius: var(--blt-radius-sm) var(--blt-radius) 0 var(--blt-radius-sm);
        font-size: 8px;
        padding: 2px 6px;
    }
}

/* ── Trading Results sub-header (below heatmap) ──────────────── */
.blt-rv-subheader {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 12px;
}
.blt-rv-subheader-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--blt-text);
    margin: 0;
}

/* ═══════════════════════════════════════════════════════════════
   MARKET HEATMAP — embedded inside blt_results_view
   ═══════════════════════════════════════════════════════════════ */
/* "Updated HH:MM" timestamp aligned right */
.blt-rv-hm-update {
    font-size: 11px;
    color: var(--blt-text-3);
    margin-left: auto;
    white-space: nowrap;
}

/* Overall-state badge variants */
.blt-rv-hm-badge--bullish {
    background: rgba(63,185,80,.14);
    border: 1px solid rgba(63,185,80,.3);
    color: var(--blt-green);
    border-radius: 50px;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.blt-rv-hm-badge--bearish {
    background: rgba(248,81,73,.14);
    border: 1px solid rgba(248,81,73,.3);
    color: var(--blt-red);
    border-radius: 50px;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.blt-rv-hm-badge--neutral {
    background: rgba(110,118,129,.14);
    border: 1px solid rgba(110,118,129,.3);
    color: var(--blt-text-3);
    border-radius: 50px;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Sector grid */
.blt-rv-hm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 6px;
}

/* Base cell */
.blt-rv-hm-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 10px 8px;
    border-radius: var(--blt-radius-sm);
    border: 1px solid var(--blt-border);
    text-align: center;
    transition: var(--blt-transition);
    cursor: default;
    min-height: 54px;
}

/* State colour fills */
.blt-rv-hm-cell--bullish {
    background: rgba(63,185,80,.10);
    border-color: rgba(63,185,80,.25);
}
.blt-rv-hm-cell--bearish {
    background: rgba(248,81,73,.10);
    border-color: rgba(248,81,73,.25);
}
.blt-rv-hm-cell--neutral {
    background: var(--blt-surface2);
}

/* Hover glow */
.blt-rv-hm-cell--bullish:hover { background: rgba(63,185,80,.18);  border-color: rgba(63,185,80,.45); }
.blt-rv-hm-cell--bearish:hover { background: rgba(248,81,73,.18);  border-color: rgba(248,81,73,.45); }
.blt-rv-hm-cell--neutral:hover { border-color: var(--blt-border-hover); }

/* "Overall Market" — spans full row, horizontal layout */
.blt-rv-hm-cell--overall {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    padding: 11px 16px;
    min-height: auto;
    border-width: 1px;
}
.blt-rv-hm-cell--overall .blt-rv-hm-name {
    font-size: 12px;
    font-weight: 700;
    color: var(--blt-text);
    white-space: normal;
}
.blt-rv-hm-cell--overall .blt-rv-hm-state {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}

/* Text inside cells */
.blt-rv-hm-name {
    font-size: 10px;
    font-weight: 600;
    color: var(--blt-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    line-height: 1.2;
}
.blt-rv-hm-state {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    line-height: 1;
}
.blt-rv-hm-cell--bullish .blt-rv-hm-state { color: var(--blt-green); }
.blt-rv-hm-cell--bearish .blt-rv-hm-state { color: var(--blt-red); }
.blt-rv-hm-cell--neutral .blt-rv-hm-state { color: var(--blt-text-3); }

/* Light-mode adjustments */
.blt-light-mode .blt-rv-hm-cell--neutral  { background: #f8fafc; border-color: #e2e8f0; }
.blt-light-mode .blt-rv-hm-cell--neutral:hover { border-color: #cbd5e1; }
.blt-light-mode .blt-rv-hm-name           { color: #475569; }
.blt-light-mode .blt-rv-hm-cell--overall .blt-rv-hm-name { color: #1a1a2e; }

/* ── Mobile: 3 fixed columns, no overflow ─────────────────── */
@media (max-width: 520px) {
    .blt-rv-hm-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 5px;
    }
    .blt-rv-hm-cell {
        padding: 8px 4px;
        min-height: 48px;
    }
    .blt-rv-hm-name { font-size: 9px; }
    .blt-rv-hm-state { font-size: 8px; }
    .blt-rv-hm-update { display: none; } /* save header space on tiny screens */
}
.blt-light-mode .blt-dm-live-pnl-block { background: rgba(255,152,0,0.06); border-color: rgba(255,152,0,0.3); }

/* ── Results Grid Cards ──────────────────────────────────────── */
.blt-rv-loading {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; padding: 40px 0; color: rgba(255,255,255,0.45);
    font-size: 14px; flex-direction: column;
}
.blt-rv-spinner {
    width: 28px; height: 28px; border-radius: 50%;
    border: 3px solid rgba(99,102,241,0.25);
    border-top-color: #818cf8;
    animation: bltSpin 0.7s linear infinite;
}

.blt-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin-top: 4px;
}

.blt-rv-rc {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex; flex-direction: column; gap: 6px;
    transition: border-color 0.2s;
}
.blt-rv-rc:hover { border-color: rgba(99,102,241,0.35); }

.blt-rv-rc-head {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.blt-rv-rc-sym {
    font-size: 15px; font-weight: 700; color: #e2e8f0;
    margin-right: auto;
}
.blt-rv-rc-status {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em;
}
.blt-rv-rc-pnl {
    font-size: 22px; font-weight: 800; letter-spacing: -0.01em;
    margin: 2px 0 4px;
}
.blt-rv-rc-row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 12px; color: rgba(255,255,255,0.55);
}
.blt-rv-rc-lbl { color: rgba(255,255,255,0.35); }
.blt-rv-rc-date {
    margin-top: 6px; padding-top: 6px;
    border-top: 1px solid rgba(255,255,255,0.06);
    font-size: 11px; color: rgba(255,255,255,0.3);
}

/* Light mode overrides */
.blt-light-mode .blt-rv-rc { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08); }
.blt-light-mode .blt-rv-rc-sym { color: #1e293b; }
.blt-light-mode .blt-rv-rc-row { color: #475569; }
.blt-light-mode .blt-rv-rc-lbl { color: #94a3b8; }
.blt-light-mode .blt-rv-rc-date { color: #94a3b8; border-color: rgba(0,0,0,0.06); }

@media (max-width: 480px) {
    .blt-results-grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   Botones de acción por fila (tabla de Resultados del panel admin).
   Edit / Re-send / Delete comparten tamaño y estilo para que queden
   perfectamente alineados (antes mezclaban .blt-btn-sm con
   .alerta-delete-button y se veían de distinto tamaño).
   ============================================================ */
.blt-row-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}
.blt-row-actions form { margin: 0; display: inline-flex; }

.blt-act-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    margin: 0;
    line-height: 1;
    font-size: 15px;
    border-radius: 8px;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    color: #e8e8ea;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}
.blt-act-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.28);
}
.blt-act-btn:active { transform: scale(0.94); }
.blt-act-btn:disabled { opacity: 0.5; cursor: default; }

/* Variante peligro (borrar) */
.blt-act-btn.blt-act-danger {
    border-color: rgba(255, 77, 77, 0.45);
    background: rgba(255, 77, 77, 0.12);
}
.blt-act-btn.blt-act-danger:hover {
    background: rgba(255, 77, 77, 0.22);
    border-color: rgba(255, 77, 77, 0.7);
}

/* El emoji (convertido por WP a <img class="emoji">) a tamaño uniforme */
.blt-act-btn img.emoji,
.blt-act-btn .emoji {
    width: 1em;
    height: 1em;
    margin: 0;
    vertical-align: middle;
}

/* Modo claro del panel admin */
.blt-light-mode .blt-act-btn {
    border-color: rgba(0, 0, 0, 0.15);
    background: rgba(0, 0, 0, 0.04);
    color: #1f2937;
}
.blt-light-mode .blt-act-btn:hover {
    background: rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.3);
}
.blt-light-mode .blt-act-btn.blt-act-danger {
    border-color: rgba(220, 38, 38, 0.4);
    background: rgba(220, 38, 38, 0.08);
}
