/**
 * Viking Theme - Norse warrior theme with custom backgrounds and textures
 * 2026-02-06: Extracted from app.html into dedicated CSS file
 */

/* Main background image - applies to all views/tabs */
body.app-theme-viking {
    position: relative !important;
}
body.app-theme-viking::before {
    content: '' !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/viking-background.webp') !important;
    background-size: cover !important;
    background-position: center !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* Animated torch flicker overlay - desktop only */
@media (min-width: 769px) {
    body.app-theme-viking::after {
        content: '' !important;
        position: fixed !important;
        /* Size element to match cover behavior for 3:2 image, then center */
        top: 50% !important;
        left: 50% !important;
        width: 100vw !important;
        height: 100vh !important;
        min-width: calc(100vh * 1.5) !important;
        min-height: calc(100vw / 1.5) !important;
        transform: translate(-50%, -50%) !important;
        z-index: -1 !important;
        pointer-events: none !important;
        /* Positions match torch locations in source image (2160x1440, 3:2) */
        background:
            /* Left wall torch */
            radial-gradient(ellipse 5.5% 9.5% at 10% 33%, rgba(255, 140, 20, 0.55) 0%, transparent 70%),
            /* Right wall torch */
            radial-gradient(ellipse 5.5% 9.5% at 87% 34%, rgba(255, 140, 20, 0.55) 0%, transparent 70%) !important;
        animation: torchFlicker 10s linear infinite !important;
    }

    @keyframes torchFlicker {
        0%   { opacity: 0.8; }
        2%   { opacity: 0.5; }
        4%   { opacity: 0.9; }
        5%   { opacity: 0.6; }
        8%   { opacity: 0.85; }
        9%   { opacity: 0.55; }
        12%  { opacity: 0.95; }
        14%  { opacity: 0.65; }
        16%  { opacity: 0.9; }
        18%  { opacity: 0.5; }
        20%  { opacity: 0.85; }
        21%  { opacity: 0.6; }
        24%  { opacity: 1; }
        26%  { opacity: 0.55; }
        28%  { opacity: 0.8; }
        30%  { opacity: 0.7; }
        31%  { opacity: 0.9; }
        34%  { opacity: 0.5; }
        36%  { opacity: 0.85; }
        38%  { opacity: 0.65; }
        40%  { opacity: 0.95; }
        41%  { opacity: 0.55; }
        44%  { opacity: 0.8; }
        46%  { opacity: 0.7; }
        48%  { opacity: 0.9; }
        49%  { opacity: 0.5; }
        52%  { opacity: 0.85; }
        54%  { opacity: 0.6; }
        56%  { opacity: 1; }
        57%  { opacity: 0.65; }
        60%  { opacity: 0.8; }
        62%  { opacity: 0.5; }
        64%  { opacity: 0.9; }
        65%  { opacity: 0.7; }
        68%  { opacity: 0.55; }
        70%  { opacity: 0.95; }
        72%  { opacity: 0.6; }
        74%  { opacity: 0.85; }
        75%  { opacity: 0.5; }
        78%  { opacity: 0.9; }
        80%  { opacity: 0.65; }
        82%  { opacity: 0.8; }
        83%  { opacity: 0.55; }
        86%  { opacity: 1; }
        88%  { opacity: 0.6; }
        90%  { opacity: 0.85; }
        91%  { opacity: 0.5; }
        94%  { opacity: 0.9; }
        96%  { opacity: 0.7; }
        98%  { opacity: 0.55; }
        100% { opacity: 0.8; }
    }
}

/* Exclude welcome modal from Viking theme completely */
body.app-theme-viking #welcome-modal .welcome-modal-container {
    background: rgba(17, 24, 39, 0.88) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    backdrop-filter: blur(20px) !important;
}
/* Reset Viking on containers without inline styles */
body.app-theme-viking #welcome-modal .text-center:not([style]),
body.app-theme-viking #welcome-modal .grid:not([style]),
body.app-theme-viking #welcome-modal .welcome-feature-card:not([style]),
body.app-theme-viking #welcome-modal .flex:not([style]) {
    border: none !important;
    background: transparent !important;
}
/* Feature card icon containers - use revert to respect inline styles */
body.app-theme-viking #welcome-modal .welcome-feature-card > div.rounded-xl {
    border: revert !important;
    background: revert !important;
    border-radius: 0.75rem !important;
}
body.app-theme-viking #welcome-modal .text-white {
    color: white !important;
}
body.app-theme-viking #welcome-modal .text-gray-400 {
    color: rgb(156 163 175) !important;
}
body.app-theme-viking #welcome-modal .text-gray-500 {
    color: rgb(107 114 128) !important;
}
body.app-theme-viking #welcome-modal .text-gray-600 {
    color: rgb(75 85 99) !important;
}
body.app-theme-viking #welcome-modal .text-blue-400 {
    color: rgb(96 165 250) !important;
}
body.app-theme-viking #welcome-modal .text-green-400 {
    color: rgb(74 222 128) !important;
}
body.app-theme-viking #welcome-modal .text-orange-400 {
    color: rgb(251 146 60) !important;
}
body.app-theme-viking #welcome-modal .text-purple-400 {
    color: rgb(192 132 252) !important;
}
body.app-theme-viking #welcome-modal .welcome-cta-primary {
    background: linear-gradient(135deg, rgb(16 185 129) 0%, rgb(5 150 105) 100%) !important;
    color: white !important;
}

/* Widget styling */
.widget-theme-viking .landing-widget {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.92) 0%, rgba(25, 15, 8, 0.95) 100%) !important;
    border: 1px solid #b8860b !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(184, 134, 11, 0.2) !important;
}

/* Runic letters background for scanner panels and views */
body.app-theme-viking [id^="panel-"] > div,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(1) > div,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(2) > div,
body.app-theme-viking #alerts-view .bg-gray-800,
body.app-theme-viking #alerts-view .dark\:bg-gray-800,
body.app-theme-viking #alerts-view .bg-white,
body.app-theme-viking #settings-content > div:nth-child(1),
body.app-theme-viking #settings-content > div:nth-child(2),
body.app-theme-viking #stock-card-content {
    position: relative !important;
    overflow: hidden !important;
}
body.app-theme-viking [id^="panel-"] > div::before,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(1) > div::before,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(2) > div::before,
body.app-theme-viking #alerts-view .bg-gray-800::before,
body.app-theme-viking #alerts-view .dark\:bg-gray-800::before,
body.app-theme-viking #alerts-view .bg-white::before,
body.app-theme-viking #settings-content > div:nth-child(1)::before,
body.app-theme-viking #settings-content > div:nth-child(2)::before,
body.app-theme-viking #stock-card-content::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/runicletters.png') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking [id^="panel-"] > div > *,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(1) > div > *,
body.app-theme-viking #news-events-content > div:nth-child(2) > div:nth-child(2) > div > *,
body.app-theme-viking #alerts-view .bg-gray-800 > *,
body.app-theme-viking #alerts-view .dark\:bg-gray-800 > *,
body.app-theme-viking #alerts-view .bg-white > *,
body.app-theme-viking #settings-content > div:nth-child(1) > *,
body.app-theme-viking #settings-content > div:nth-child(2) > *,
body.app-theme-viking #stock-card-content > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Stock Card ticker input container - Viking bronze styling */
body.app-theme-viking #stock-card-content .flex.items-center.bg-gray-700 {
    background: rgba(139, 90, 43, 0.35) !important;
    border: 1px solid rgba(184, 134, 11, 0.5) !important;
}
body.app-theme-viking #sc-ticker-input {
    color: #ffd700 !important;
}
body.app-theme-viking #sc-ticker-input::placeholder {
    color: rgba(212, 165, 116, 0.6) !important;
}

/* QuickChart ticker search input */
body.app-theme-viking #stock-chart-input {
    color: #ffd700 !important;
}
body.app-theme-viking #stock-chart-input::placeholder {
    color: rgba(212, 165, 116, 0.6) !important;
}
body.app-theme-viking *:has(> #stock-chart-input) {
    background: rgba(45, 27, 15, 0.9) !important;
    border: 1px solid rgba(184, 134, 11, 0.5) !important;
}
body.app-theme-viking *:has(> #stock-chart-input) svg {
    stroke: #d4a574 !important;
}

/* Widget header with iron texture */
.widget-theme-viking .landing-widget .widget-header {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    border-bottom-color: rgba(184, 134, 11, 0.4) !important;
    position: relative !important;
    overflow: hidden !important;
}
.widget-theme-viking .landing-widget .widget-header::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.15 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.widget-theme-viking .landing-widget .widget-header > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Widget title styling */
.widget-theme-viking .landing-widget .widget-title {
    color: #ffd700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}

/* Market pulse ticker buttons with iron texture */
.widget-theme-viking .landing-widget .grid > div[onclick*="QuickChart"] {
    position: relative !important;
    overflow: hidden !important;
}
.widget-theme-viking .landing-widget .grid > div[onclick*="QuickChart"]::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.widget-theme-viking .landing-widget .grid > div[onclick*="QuickChart"] > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Pre-flight check status banner with iron texture */
.widget-theme-viking .landing-widget .cursor-help.rounded-t {
    position: relative !important;
    overflow: hidden !important;
}
.widget-theme-viking .landing-widget .cursor-help.rounded-t::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.widget-theme-viking .landing-widget .cursor-help.rounded-t > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Regime banner with iron texture */
body.app-theme-viking #regime-banner {
    position: relative !important;
    overflow: hidden !important;
}
body.app-theme-viking #regime-banner::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking #regime-banner > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Main navigation container with iron texture */
body.app-theme-viking .navigation-container {
    position: relative !important;
    overflow: hidden !important;
    background: #2a1f1a !important;
    border: 1px solid rgba(139, 90, 43, 0.4) !important;
}
body.app-theme-viking .navigation-container::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking .navigation-container > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Footer with iron texture */
body.app-theme-viking footer {
    overflow: hidden !important;
    background: #2a1f1a !important;
    border-top: 1px solid rgba(139, 90, 43, 0.4) !important;
    /* Keep fixed positioning from base styles */
}
body.app-theme-viking footer::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking footer > * {
    position: relative !important;
    z-index: 1 !important;
}
body.app-theme-viking footer,
body.app-theme-viking footer a,
body.app-theme-viking footer span {
    color: #d4a574 !important;
}

/* Header with background image */
body.app-theme-viking header {
    /* Keep sticky positioning from base styles */
    overflow: hidden !important;
    background: #1a0f0a !important;
}
body.app-theme-viking header::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/headerimage.webp') !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center bottom !important;
    opacity: 0.4 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking header > * {
    position: relative !important;
    z-index: 1 !important;
}
body.app-theme-viking header a,
body.app-theme-viking header button,
body.app-theme-viking header span {
    color: #ffd700 !important;
}

/* Navigation buttons with iron texture */
body.app-theme-viking header .view-toggle-btn {
    color: #d4a574 !important;
    position: relative !important;
    overflow: hidden !important;
}
body.app-theme-viking header .view-toggle-btn::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking header .view-toggle-btn > * {
    position: relative !important;
    z-index: 1 !important;
}
body.app-theme-viking header .view-toggle-btn.active {
    color: #ffd700 !important;
    background: rgba(184, 134, 11, 0.3) !important;
}

/* ============================================
   OTHER VIEWS/TABS - Scanners, Alerts, News, etc.
   ============================================ */

/* Main content containers for all views */
body.app-theme-viking #liveflow-view,
body.app-theme-viking #alerts-view,
body.app-theme-viking #news-events-view,
body.app-theme-viking #settings-view,
body.app-theme-viking #handbook-view,
body.app-theme-viking #shieldmaiden-view,
body.app-theme-viking #income-view,
body.app-theme-viking #querybuilder-view {
    background: transparent !important;
}

/* Cards and panels in all views */
body.app-theme-viking .bg-gray-800,
body.app-theme-viking .bg-gray-900,
body.app-theme-viking .dark\:bg-gray-800,
body.app-theme-viking .dark\:bg-gray-900 {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.92) 0%, rgba(25, 15, 8, 0.95) 100%) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}

/* Tables */
body.app-theme-viking table {
    background: rgba(25, 15, 8, 0.9) !important;
}
body.app-theme-viking thead,
body.app-theme-viking th {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    color: #ffd700 !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}
body.app-theme-viking tbody tr {
    border-color: rgba(139, 90, 43, 0.3) !important;
}
body.app-theme-viking tbody tr:hover {
    background: rgba(184, 134, 11, 0.15) !important;
}
body.app-theme-viking td {
    border-color: rgba(139, 90, 43, 0.2) !important;
}

/* Tab headers/navigation within views */
body.app-theme-viking .tab-container,
body.app-theme-viking [role="tablist"] {
    background: rgba(42, 31, 26, 0.9) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}
body.app-theme-viking .tab-button,
body.app-theme-viking [role="tab"] {
    color: #d4a574 !important;
}
body.app-theme-viking .tab-button.active,
body.app-theme-viking .tab-button:hover,
body.app-theme-viking [role="tab"][aria-selected="true"],
body.app-theme-viking [role="tab"]:hover {
    color: #ffd700 !important;
    background: rgba(184, 134, 11, 0.3) !important;
}

/* Scanner tabs and sub-navigation */
body.app-theme-viking .scanner-tabs,
body.app-theme-viking .scanner-tab {
    background: rgba(42, 31, 26, 0.9) !important;
}
body.app-theme-viking .scanner-tab.active {
    background: rgba(184, 134, 11, 0.3) !important;
    color: #ffd700 !important;
    border-color: #b8860b !important;
}

/* Buttons */
body.app-theme-viking button:not(.view-toggle-btn):not([class*="text-"]) {
    background: rgba(45, 27, 15, 0.9) !important;
    border-color: rgba(184, 134, 11, 0.5) !important;
    color: #d4a574 !important;
}
body.app-theme-viking button:not(.view-toggle-btn):hover {
    background: rgba(184, 134, 11, 0.3) !important;
    color: #ffd700 !important;
}

/* Input fields and selects */
body.app-theme-viking input:not([type="checkbox"]):not([type="radio"]),
body.app-theme-viking select,
body.app-theme-viking textarea {
    background: rgba(25, 15, 8, 0.9) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
    color: #d4a574 !important;
}
body.app-theme-viking input:focus,
body.app-theme-viking select:focus,
body.app-theme-viking textarea:focus {
    border-color: #ffd700 !important;
    box-shadow: 0 0 0 2px rgba(255, 215, 0, 0.2) !important;
}

/* Dropdowns */
body.app-theme-viking [class*="dropdown"],
body.app-theme-viking .dropdown-menu,
body.app-theme-viking [class*="menu"] {
    background: rgba(42, 31, 26, 0.98) !important;
    border-color: rgba(184, 134, 11, 0.5) !important;
}

/* Alerts view specific */
body.app-theme-viking .alert-item,
body.app-theme-viking .alert-card {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.92) 0%, rgba(25, 15, 8, 0.95) 100%) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}

/* News view specific */
body.app-theme-viking .news-item,
body.app-theme-viking .news-card {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.92) 0%, rgba(25, 15, 8, 0.95) 100%) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}

/* Mobile actions gear button */
body.app-theme-viking #landing-mobile-actions button {
    background: rgba(45, 27, 15, 0.9) !important;
    border: 1px solid rgba(184, 134, 11, 0.5) !important;
    color: #d4a574 !important;
}
body.app-theme-viking #landing-mobile-actions button:hover {
    background: rgba(184, 134, 11, 0.3) !important;
    color: #ffd700 !important;
}
/* Mobile actions dropdown menu */
body.app-theme-viking #landing-mobile-actions-menu {
    background: rgba(42, 31, 26, 0.98) !important;
    border-color: rgba(184, 134, 11, 0.5) !important;
}
body.app-theme-viking #landing-mobile-actions-menu button {
    color: #d4a574 !important;
}
body.app-theme-viking #landing-mobile-actions-menu button:hover {
    background: rgba(184, 134, 11, 0.3) !important;
    color: #ffd700 !important;
}

/* Scrollbars */
body.app-theme-viking ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
body.app-theme-viking ::-webkit-scrollbar-track {
    background: rgba(25, 15, 8, 0.5);
}
body.app-theme-viking ::-webkit-scrollbar-thumb {
    background: rgba(184, 134, 11, 0.5);
    border-radius: 4px;
}
body.app-theme-viking ::-webkit-scrollbar-thumb:hover {
    background: rgba(184, 134, 11, 0.7);
}

/* Text color adjustments for readability */
body.app-theme-viking .text-gray-400,
body.app-theme-viking .text-gray-500 {
    color: #a08060 !important;
}
body.app-theme-viking .text-gray-300,
body.app-theme-viking .text-gray-200,
body.app-theme-viking .text-white {
    color: #e8d4b8 !important;
}

/* Borders */
body.app-theme-viking .border-gray-700,
body.app-theme-viking .border-gray-600,
body.app-theme-viking .border-gray-800 {
    border-color: rgba(139, 90, 43, 0.4) !important;
}

/* Modals and overlays */
body.app-theme-viking .modal-content,
body.app-theme-viking [class*="modal"] > div {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.98) 0%, rgba(25, 15, 8, 0.99) 100%) !important;
    border: 1px solid #b8860b !important;
}
body.app-theme-viking #mimir-guide-popup > .qc-modal-content {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.98) 0%, rgba(25, 15, 8, 0.99) 100%) !important;
    border: 1px solid #b8860b !important;
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.7) !important;
}
body.app-theme-viking #mimir-guide-popup .qc-modal-body div,
body.app-theme-viking #mimir-guide-popup .qc-modal-body table,
body.app-theme-viking #mimir-guide-popup .qc-modal-body td,
body.app-theme-viking #mimir-guide-popup .qc-modal-body tr {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Tooltips */
body.app-theme-viking [class*="tooltip"],
body.app-theme-viking .tippy-box {
    background: rgba(42, 31, 26, 0.98) !important;
    border: 1px solid rgba(184, 134, 11, 0.5) !important;
    color: #e8d4b8 !important;
}
/* Sector heatmap tiles - iron texture overlay */
.widget-theme-viking .landing-widget .widget-content > .grid > div {
    border: 1px solid rgba(184, 134, 11, 0.4) !important;
    box-shadow: inset 0 1px 0 rgba(255, 215, 0, 0.1) !important;
    position: relative !important;
    overflow: hidden !important;
}
.widget-theme-viking .landing-widget .widget-content > .grid > div::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/panel-texture-iron.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.2 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.widget-theme-viking .landing-widget .widget-content > .grid > div > * {
    position: relative !important;
    z-index: 1 !important;
}

/* ============================================
   EARNINGS SIDEBAR - Viking Theme
   ============================================ */

/* Sidebar container - wooden panel with bronze border + iron texture */
body.app-theme-viking #earnings-sidebar {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.92) 0%, rgba(25, 15, 8, 0.95) 100%) !important;
    border: 1px solid #b8860b !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(184, 134, 11, 0.2) !important;
    position: relative !important;
    overflow: hidden !important;
}
/* Iron texture overlay */
body.app-theme-viking #earnings-sidebar::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/runicletters.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking #earnings-sidebar > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Sidebar heading - gold text */
body.app-theme-viking #earnings-sidebar-col h2 {
    color: #ffd700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}

/* Full Calendar button - Viking bronze */
body.app-theme-viking #earnings-sidebar-calendar-btn {
    background: rgba(45, 27, 15, 0.9) !important;
    border-color: rgba(184, 134, 11, 0.5) !important;
    color: #d4a574 !important;
}
body.app-theme-viking #earnings-sidebar-calendar-btn:hover {
    background: rgba(184, 134, 11, 0.3) !important;
    color: #ffd700 !important;
}

/* Day header rows - iron texture with bronze border */
body.app-theme-viking #earnings-sidebar > div > div:first-child {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}
/* Day name text */
body.app-theme-viking #earnings-sidebar > div > div:first-child span.text-gray-300 {
    color: #ffd700 !important;
}
body.app-theme-viking #earnings-sidebar > div > div:first-child span.text-gray-400 {
    color: #d4a574 !important;
}
body.app-theme-viking #earnings-sidebar > div > div:first-child span.text-gray-500 {
    color: #a08060 !important;
}

/* Column header labels (Ticker, MCap, Est, Actual) */
body.app-theme-viking #earnings-sidebar .text-gray-500.font-medium {
    color: #b8860b !important;
}

/* Section dividers */
body.app-theme-viking #earnings-sidebar .border-gray-700,
body.app-theme-viking #earnings-sidebar .border-t {
    border-color: rgba(139, 90, 43, 0.4) !important;
}
body.app-theme-viking #earnings-sidebar .border-gray-700\/50 {
    border-color: rgba(139, 90, 43, 0.3) !important;
}

/* Ticker rows - hover with bronze */
body.app-theme-viking #earnings-sidebar .hover\:bg-gray-700\/50:hover {
    background: rgba(184, 134, 11, 0.15) !important;
}

/* Ticker symbol text */
body.app-theme-viking #earnings-sidebar .text-white {
    color: #e8d4b8 !important;
}
body.app-theme-viking #earnings-sidebar .group-hover\:text-blue-400:hover {
    color: #ffd700 !important;
}

/* MCap and secondary text */
body.app-theme-viking #earnings-sidebar .text-gray-400 {
    color: #a08060 !important;
}
body.app-theme-viking #earnings-sidebar .text-gray-500 {
    color: #8a7050 !important;
}

/* "+N more" link */
body.app-theme-viking #earnings-sidebar .text-blue-400 {
    color: #d4a574 !important;
}
body.app-theme-viking #earnings-sidebar .hover\:text-blue-300:hover {
    color: #ffd700 !important;
}

/* ============================================
   EARNINGS CALENDAR MODAL - Viking Theme
   ============================================ */

/* Full calendar modal - wooden panel + runic letters */
body.app-theme-viking #news-calendar-modal {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.98) 0%, rgba(25, 15, 8, 0.99) 100%) !important;
    border: 2px solid #b8860b !important;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.6), 0 0 40px rgba(184, 134, 11, 0.1) !important;
    position: fixed !important;
    overflow: hidden !important;
}
/* Runic letters overlay on the whole modal */
body.app-theme-viking #news-calendar-modal::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/runicletters.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking #news-calendar-modal > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Modal header bar */
body.app-theme-viking #news-calendar-modal > div:first-child {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    border-bottom: 1px solid rgba(184, 134, 11, 0.4) !important;
}
body.app-theme-viking #news-calendar-modal > div:first-child span {
    color: #ffd700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}
body.app-theme-viking #news-calendar-modal > div:first-child svg {
    color: #d4a574 !important;
}
body.app-theme-viking #news-calendar-modal > div:first-child button {
    color: #d4a574 !important;
}

/* Calendar sub-tabs (Earnings, IPOs, Splits, Economic) */
body.app-theme-viking #news-calendar-modal > div:nth-child(2) {
    border-bottom: 1px solid rgba(184, 134, 11, 0.4) !important;
    background: transparent !important;
}
body.app-theme-viking #news-calendar-modal .calendar-type-tab {
    background: rgba(45, 27, 15, 0.9) !important;
    border-color: rgba(184, 134, 11, 0.5) !important;
    color: #d4a574 !important;
}
body.app-theme-viking #news-calendar-modal .calendar-type-tab.active {
    background: rgba(184, 134, 11, 0.4) !important;
    color: #ffd700 !important;
    box-shadow: 0 0 0 2px #b8860b, 0 0 8px rgba(184, 134, 11, 0.3) !important;
}

/* Scrollable content area */
body.app-theme-viking #news-calendar-modal > div:nth-child(3) {
    background: transparent !important;
}

/* Calendar month title */
body.app-theme-viking #earnings-calendar-mini .text-lg.font-bold {
    color: #ffd700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}
/* Earnings count subtitle */
body.app-theme-viking #earnings-calendar-mini .text-xs.text-gray-400 {
    color: #a08060 !important;
}

/* Calendar table cells */
body.app-theme-viking #earnings-calendar-mini td {
    border-color: rgba(139, 90, 43, 0.4) !important;
    background: rgba(25, 15, 8, 0.4) !important;
}
body.app-theme-viking #earnings-calendar-mini td:hover {
    background: rgba(184, 134, 11, 0.15) !important;
}
/* Today's cell highlight */
body.app-theme-viking #earnings-calendar-mini td.bg-blue-900\/30 {
    background: rgba(184, 134, 11, 0.2) !important;
    border-color: #b8860b !important;
}
body.app-theme-viking #earnings-calendar-mini .text-blue-400.font-bold {
    color: #ffd700 !important;
}

/* Day of week headers */
body.app-theme-viking #earnings-calendar-mini thead th {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    color: #b8860b !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}

/* Navigation arrows */
body.app-theme-viking #earnings-calendar-mini .hover\:bg-gray-700 {
    color: #d4a574 !important;
}
body.app-theme-viking #earnings-calendar-mini .hover\:bg-gray-700:hover {
    background: rgba(184, 134, 11, 0.2) !important;
    color: #ffd700 !important;
}

/* View toggle buttons */
body.app-theme-viking #earnings-calendar-mini .border-gray-600 {
    border-color: rgba(184, 134, 11, 0.5) !important;
}
body.app-theme-viking #earnings-calendar-mini .bg-blue-500 {
    background: rgba(184, 134, 11, 0.5) !important;
    color: #ffd700 !important;
}

/* "+N more" links in calendar cells */
body.app-theme-viking #earnings-calendar-mini .text-blue-400.cursor-pointer {
    color: #d4a574 !important;
}

/* Backdrop */
body.app-theme-viking #news-calendar-backdrop {
    background: rgba(10, 5, 2, 0.7) !important;
}

/* ============================================
   EARNINGS DAY MODAL - Viking Theme
   ============================================ */

/* Modal inner container - wooden panel + runic letters */
body.app-theme-viking #day-earnings-modal > div {
    background: linear-gradient(145deg, rgba(45, 27, 15, 0.98) 0%, rgba(25, 15, 8, 0.99) 100%) !important;
    border: 2px solid #b8860b !important;
    box-shadow: 0 0 40px rgba(184, 134, 11, 0.15), 0 4px 20px rgba(0, 0, 0, 0.6) !important;
    position: relative !important;
    overflow: hidden !important;
}
/* Runic letters texture overlay */
body.app-theme-viking #day-earnings-modal > div::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: url('/src/images/runicletters.webp') !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    opacity: 0.3 !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-theme-viking #day-earnings-modal > div > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Modal header */
body.app-theme-viking #day-earnings-modal .border-b {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
}
body.app-theme-viking #day-earnings-modal h3 {
    color: #ffd700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}

/* Modal body */
body.app-theme-viking #day-earnings-modal .overflow-y-auto {
    background: transparent !important;
}

/* Modal table header */
body.app-theme-viking #day-earnings-modal thead {
    background: linear-gradient(180deg, rgba(184, 134, 11, 0.25) 0%, rgba(139, 69, 19, 0.15) 100%) !important;
}
body.app-theme-viking #day-earnings-modal th {
    color: #b8860b !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
    background: transparent !important;
}

/* Modal table rows */
body.app-theme-viking #day-earnings-modal tbody tr {
    border-color: rgba(139, 90, 43, 0.3) !important;
}
body.app-theme-viking #day-earnings-modal tbody tr:hover {
    background: rgba(184, 134, 11, 0.15) !important;
}

/* Modal footer */
body.app-theme-viking #day-earnings-modal .border-t {
    border-color: rgba(184, 134, 11, 0.4) !important;
    background: transparent !important;
    color: #a08060 !important;
}

/* Close button */
body.app-theme-viking #day-earnings-modal button {
    color: #d4a574 !important;
    background: transparent !important;
    border: none !important;
}
body.app-theme-viking #day-earnings-modal button:hover {
    color: #ffd700 !important;
    background: rgba(184, 134, 11, 0.2) !important;
}

/* Exit Draw buttons must stay red regardless of theme */
body.app-theme-viking #exit-drawing-btn,
body.app-theme-viking .pane-exit-draw-btn {
    color: #f44336 !important;
    border-color: #f44336 !important;
    background: transparent !important;
}

/* Dock sidebar dividers use default blue highlight (lightning removed 2026-03-09) */

/* Pane reorder arrows — match collapse button style, override Viking button styles */
body.app-theme-viking .pane-reorder-arrows button {
    background: #2a2e39 !important;
    border: 1px solid #363a45 !important;
    color: #d1d4dc !important;
}
body.app-theme-viking .pane-reorder-arrows button:hover {
    background: #4a90d9 !important;
    border-color: #4a90d9 !important;
    color: #fff !important;
}