/* Scanner Dashboard Custom Styles */

:root {
    --scanner-green: #00c853;
    --scanner-red: #ff5252;
    --scanner-gold: #ffd700;
    --scanner-blue: #2196f3;
}

/* Body */
body {
    background-color: #121212;
    min-height: 100vh;
}

/* Top Picks Cards */
.top-pick-card {
    transition: transform 0.2s, box-shadow 0.2s;
    cursor: pointer;
}

.top-pick-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

.top-pick-card .rank-badge {
    position: absolute;
    top: -10px;
    left: -10px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.9rem;
}

.top-pick-card .rank-badge.rank-1 { background: linear-gradient(135deg, #ffd700, #ffb300); color: #000; }
.top-pick-card .rank-badge.rank-2 { background: linear-gradient(135deg, #c0c0c0, #9e9e9e); color: #000; }
.top-pick-card .rank-badge.rank-3 { background: linear-gradient(135deg, #cd7f32, #8b4513); color: #fff; }
.top-pick-card .rank-badge.rank-4,
.top-pick-card .rank-badge.rank-5 { background: #424242; color: #fff; }

.top-pick-card .ticker-name {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.top-pick-card .score-badge {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.top-pick-card .price {
    font-size: 1.1rem;
    font-weight: 600;
}

.top-pick-card .pattern-badge {
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
}

.top-pick-card .change-pct {
    font-size: 0.85rem;
    font-weight: 500;
}

.change-positive { color: var(--scanner-green); }
.change-negative { color: var(--scanner-red); }
.change-neutral { color: #9e9e9e; }

/* Stock List Accordion */
.accordion-item {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #333;
}

.accordion-button {
    background-color: #1e1e1e;
    color: #fff;
    padding: 1rem;
    box-shadow: none;
}

.accordion-button:not(.collapsed) {
    background-color: #2a2a2a;
    color: #fff;
}

.accordion-button:focus {
    box-shadow: none;
    border-color: #444;
}

.accordion-button::after {
    filter: invert(1);
}

.accordion-body {
    background-color: #252525;
    padding: 1rem;
}

.stock-row-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.stock-ticker {
    font-weight: 700;
    font-size: 1rem;
    min-width: 60px;
}

.stock-metrics {
    display: flex;
    gap: 1rem;
    font-size: 0.85rem;
    color: #aaa;
}

.stock-score {
    font-weight: 600;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
}

.score-high { background-color: rgba(0, 200, 83, 0.2); color: var(--scanner-green); }
.score-medium { background-color: rgba(255, 215, 0, 0.2); color: var(--scanner-gold); }
.score-low { background-color: rgba(158, 158, 158, 0.2); color: #9e9e9e; }

/* RS Rating Badge */
.rs-badge {
    font-weight: 600;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    font-size: 0.75rem;
    background-color: rgba(100, 100, 100, 0.2);
}

/* Stock Detail View */
.stock-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.detail-section {
    background-color: #1a1a1a;
    border-radius: 8px;
    padding: 1rem;
}

.detail-section h6 {
    color: #888;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #333;
    padding-bottom: 0.5rem;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
    font-size: 0.85rem;
}

.detail-row .label {
    color: #888;
}

.detail-row .value {
    font-weight: 500;
}

.signal-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.signal-list li {
    padding: 0.25rem 0;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.signal-list li::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--scanner-green);
}

/* AI Summary */
.ai-summary {
    font-size: 0.9rem;
    line-height: 1.7;
    max-height: 500px;
    overflow-y: auto;
}

.ai-summary h1, .ai-summary h2, .ai-summary h3,
.ai-summary h4, .ai-summary h5, .ai-summary h6 {
    color: #fff;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.ai-summary strong {
    color: var(--scanner-gold);
}

.ai-summary ul, .ai-summary ol {
    padding-left: 1.5rem;
}

.ai-summary li {
    margin-bottom: 0.25rem;
}

/* Loading Overlay */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.8);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

/* Connection Status */
#connectionStatus.connected {
    background-color: var(--scanner-green) !important;
}

#connectionStatus.disconnected {
    background-color: var(--scanner-red) !important;
}

/* Scrollbar Styling */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #1e1e1e;
}

::-webkit-scrollbar-thumb {
    background: #444;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Responsive Adjustments */

/* Large tablets and below */
@media (max-width: 992px) {
    /* Navigation - wrap on tablets */
    .navbar .nav-pills {
        flex-wrap: wrap;
        gap: 0.25rem;
    }

    .navbar .nav-pills .nav-link {
        padding: 0.3rem 0.6rem;
        font-size: 0.8rem;
    }

    /* Button groups - allow wrapping */
    .navbar .btn-group {
        flex-wrap: wrap;
    }
}

/* Tablets and phones */
@media (max-width: 768px) {
    /* Hide non-essential metrics in lists */
    .stock-metrics {
        display: none;
    }

    /* Stack detail grids */
    .stock-detail-grid {
        grid-template-columns: 1fr;
    }

    /* Smaller card titles */
    .top-pick-card .ticker-name {
        font-size: 1rem;
    }

    /* Navigation - stack vertically */
    .navbar > .container-fluid {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .navbar .d-flex.align-items-center {
        flex-wrap: wrap;
        width: 100%;
    }

    .navbar .nav-pills {
        width: 100%;
        justify-content: flex-start;
        gap: 0.25rem;
    }

    .navbar .nav-pills .nav-link {
        padding: 0.25rem 0.5rem;
        font-size: 0.75rem;
    }

    /* Right side controls - full width */
    .navbar > .container-fluid > .d-flex:last-child {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    /* Button groups - smaller on mobile */
    .btn-group-sm .btn {
        padding: 0.2rem 0.4rem;
        font-size: 0.7rem;
    }

    /* Tables - horizontal scroll */
    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Chart section - full width controls */
    .chart-section {
        padding: 0.75rem;
    }

    .chart-section .d-flex {
        flex-wrap: wrap;
        gap: 0.5rem !important;
    }

    .chart-section .btn-group {
        flex-wrap: wrap;
    }

    /* Accordion body - less padding */
    .accordion-body {
        padding: 0.75rem;
    }

    /* Cards - reduce padding */
    .card-body {
        padding: 0.75rem;
    }

    /* LiveWire levels - stack */
    .livewire-level {
        padding: 0.5rem;
    }

    /* Container padding */
    .container-fluid {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* Small phones */
@media (max-width: 576px) {
    /* Even smaller nav text */
    .navbar-brand {
        font-size: 1rem !important;
    }

    .navbar .nav-pills .nav-link {
        padding: 0.2rem 0.4rem;
        font-size: 0.7rem;
    }

    .navbar .nav-pills .nav-link i {
        display: none; /* Hide icons on very small screens */
    }

    /* Full-width buttons */
    .btn-group {
        width: 100%;
    }

    .btn-group .btn {
        flex: 1;
    }

    /* Smaller headings */
    h5, .h5 {
        font-size: 1rem;
    }

    h6, .h6 {
        font-size: 0.85rem;
    }

    /* Badge sizes */
    .badge {
        font-size: 0.65rem;
        padding: 0.2rem 0.35rem;
    }

    /* Detail rows - stack labels */
    .detail-row {
        flex-direction: column;
        gap: 0.15rem;
    }

    .detail-row .label,
    .detail-row .value {
        width: 100%;
    }

    /* Planet badges - smaller */
    .planet-badge {
        padding: 0.15rem 0.35rem;
        font-size: 0.7rem;
    }

    /* Top picks - 2 columns instead of 5 */
    #topPicksContainer {
        --bs-gutter-x: 0.5rem;
    }

    .top-pick-card .card-body {
        padding: 0.5rem;
    }

    /* Hide less important elements */
    .text-muted.small {
        font-size: 0.7rem;
    }

    /* Score badges - compact */
    .livewire-level .badge {
        font-size: 0.6rem;
        padding: 0.15rem 0.3rem;
    }

    /* Chart controls - more compact */
    .chart-period-btn,
    .chart-ma-btn,
    .chart-agg-btn,
    .chart-databox-btn {
        font-size: 0.6rem !important;
        padding: 0.15rem 0.3rem !important;
    }
}

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

.fade-in {
    animation: fadeIn 0.3s ease-out forwards;
}

/* Filter Active State */
.dropdown-item.active {
    background-color: var(--bs-primary);
}

/* Navigation Pills */
.nav-pills .nav-link {
    color: #888;
    padding: 0.4rem 1rem;
    border-radius: 20px;
    font-size: 0.9rem;
    transition: all 0.2s;
}

.nav-pills .nav-link:hover {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
}

.nav-pills .nav-link.active {
    background-color: var(--bs-primary);
    color: #fff;
}

/* Chart Section */
.chart-section {
    background-color: #1a1d21;
    border-radius: 8px;
    padding: 1rem;
}

.chart-section h6 {
    color: #888;
    font-size: 0.85rem;
    margin: 0;
}

.chart-container {
    position: relative;
}

.chart-period-btn {
    font-size: 0.7rem;
    padding: 0.2rem 0.5rem;
}

.chart-period-btn.active,
.chart-databox-btn.active,
.chart-agg-btn.active {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
}

/* MA toggle buttons - colored when active */
.chart-ma-btn[data-ma="ema21"].active {
    background-color: #f59e0b !important;
    border-color: #f59e0b !important;
    color: #000 !important;
}

.chart-ma-btn[data-ma="sma50"].active {
    background-color: #8b5cf6 !important;
    border-color: #8b5cf6 !important;
    color: #fff !important;
}

.chart-ma-btn[data-ma="sma150"].active {
    background-color: #06b6d4 !important;
    border-color: #06b6d4 !important;
    color: #000 !important;
}
