/* --- CSS CUSTOM PROPERTIES (HSL-BASED PREMIUM COLOR PALETTE) --- */
:root {
    /* Color Tokens with WCAG AA compliance in mind */
    --bg-abyssal: hsl(222, 47%, 7%);
    --bg-ocean-depth: hsl(222, 45%, 11%);
    --bg-card: hsla(222, 40%, 15%, 0.7);
    --bg-card-hover: hsla(222, 40%, 18%, 0.85);
    
    /* Glowing Accent Colors */
    --accent-cyan: hsl(185, 100%, 48%);
    --accent-cyan-glow: hsla(185, 100%, 48%, 0.15);
    --accent-blue: hsl(210, 100%, 55%);
    --accent-blue-glow: hsla(210, 100%, 55%, 0.2);
    
    /* Severity status colors paired with high-contrast text and icons */
    --color-success: hsl(145, 65%, 43%);
    --color-success-bg: hsla(145, 65%, 43%, 0.15);
    --color-warning: hsl(38, 95%, 50%);
    --color-warning-bg: hsla(38, 95%, 50%, 0.15);
    --color-danger: hsl(355, 75%, 50%);
    --color-danger-bg: hsla(355, 75%, 50%, 0.15);
    --color-info: hsl(200, 90%, 50%);
    --color-info-bg: hsla(200, 90%, 50%, 0.15);

    /* Text Colors */
    --text-primary: hsl(210, 20%, 95%);
    --text-secondary: hsl(210, 14%, 78%);
    --text-muted: hsl(210, 10%, 60%);
    --text-danger: hsl(355, 100%, 75%);
    --text-warning: hsl(38, 100%, 70%);
    --text-success: hsl(145, 100%, 70%);
    --text-info: hsl(200, 100%, 70%);

    /* Layout & Styling Tokens */
    --border-color: hsla(210, 20%, 25%, 0.4);
    --border-glow: hsla(185, 100%, 48%, 0.1);
    --border-radius: 12px;
    --border-radius-sm: 6px;
    --transition-smooth: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    --font-heading: 'Outfit', sans-serif;
    --font-body: 'Inter', sans-serif;
}

/* --- ACCESSIBILITY HELPER FOR KEYBOARD USERS & SCREEN READERS --- */
.skip-link {
    position: absolute;
    top: -100px;
    left: 20px;
    background: var(--accent-cyan);
    color: var(--bg-abyssal);
    padding: 12px 20px;
    font-weight: 700;
    border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm);
    z-index: 9999;
    transition: top 0.2s ease;
    text-decoration: none;
    font-family: var(--font-heading);
}

.skip-link:focus {
    top: 0;
    outline: 3px solid var(--text-primary);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

*:focus-visible {
    outline: 2px solid var(--accent-cyan);
    outline-offset: 4px;
}

/* --- BASE & UTILITY STYLES --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--bg-abyssal);
    background-image: 
        radial-gradient(at 0% 0%, hsla(222, 45%, 12%, 0.5) 0px, transparent 50%),
        radial-gradient(at 100% 100%, hsla(185, 100%, 15%, 0.1) 0px, transparent 50%),
        radial-gradient(at 50% 50%, var(--bg-ocean-depth) 0px, transparent 100%);
    background-attachment: fixed;
    color: var(--text-primary);
    font-family: var(--font-body);
    line-height: 1.6;
    padding: 0;
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

/* Typography */
h1, h2, h3, h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

p {
    color: var(--text-secondary);
    margin-bottom: 1rem;
}

/* --- HEADER AND NAVIGATION --- */
.dashboard-header {
    background-color: hsla(222, 45%, 9%, 0.8);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border-color);
    padding: 1.5rem 2rem;
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-container {
    max-width: 1600px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
}

.brand-section {
    flex: 1;
    min-width: 300px;
}

.brand-section h1 {
    font-size: 1.8rem;
    margin: 0.25rem 0;
    background: linear-gradient(135deg, var(--text-primary) 30%, var(--accent-cyan) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.header-subtitle {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-bottom: 0;
}

/* --- CUSTOM INTERACTIVE TOGGLE CARD --- */
.toggle-control-panel {
    display: flex;
    align-items: center;
}

.toggle-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 0.75rem 1.25rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    transition: var(--transition-smooth);
}

.toggle-card:hover {
    border-color: var(--accent-cyan);
    box-shadow: 0 4px 24px var(--accent-cyan-glow);
}

.toggle-card-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.toggle-label-text {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--accent-cyan);
}

.toggle-card-control {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.toggle-state-text {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
    transition: var(--transition-smooth);
}

.toggle-state-text.active {
    color: var(--text-primary);
}

/* Custom iOS/Cockpit Toggle Switch */
.switch-container {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}

.switch-input {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: hsl(222, 20%, 30%);
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 34px;
    border: 1px solid var(--border-color);
}

.switch-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: var(--text-primary);
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

.switch-input:checked + .switch-slider {
    background-color: var(--accent-cyan);
    box-shadow: 0 0 10px var(--accent-cyan-glow);
}

.switch-input:focus-visible + .switch-slider {
    outline: 2px solid var(--text-primary);
    outline-offset: 4px;
}

.switch-input:checked + .switch-slider:before {
    transform: translateX(24px);
    background-color: var(--bg-abyssal);
}

/* --- MAIN 4-QUADRANT LAYOUT GRID --- */
.dashboard-grid-container {
    max-width: 1600px;
    margin: 2rem auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

/* Dashboard Card Panels */
.dashboard-card {
    background: var(--bg-card);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 1.75rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
}

.dashboard-card:hover {
    border-color: hsla(210, 20%, 35%, 0.6);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
}

.card-title-group {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.card-title-group h2 {
    font-size: 1.35rem;
    color: var(--text-primary);
}

.card-icon {
    font-size: 1.5rem;
}

.card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.section-desc {
    font-size: 0.9rem;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
}

/* --- BADGES --- */
.badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 50px;
    font-family: var(--font-heading);
}

.badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
}

.badge-danger {
    background-color: var(--color-danger-bg);
    color: var(--text-danger);
    border: 1px solid var(--color-danger);
}
.badge-danger .badge-dot { background-color: var(--color-danger); }

.badge-warning {
    background-color: var(--color-warning-bg);
    color: var(--text-warning);
    border: 1px solid var(--color-warning);
}
.badge-warning .badge-dot { background-color: var(--color-warning); }

.badge-success {
    background-color: var(--color-success-bg);
    color: var(--text-success);
    border: 1px solid var(--color-success);
}
.badge-success .badge-dot { background-color: var(--color-success); }

.badge-info {
    background-color: var(--color-info-bg);
    color: var(--text-info);
    border: 1px solid var(--color-info);
}
.badge-info .badge-dot { background-color: var(--text-info); }

.badge-secondary {
    background-color: hsla(210, 20%, 30%, 0.3);
    color: var(--text-secondary);
    border: 1px solid hsla(210, 20%, 50%, 0.4);
}

/* Animations */
.pulse {
    animation: pulse-ring 2s infinite;
}
@keyframes pulse-ring {
    0% { transform: scale(0.9); opacity: 0.6; }
    50% { transform: scale(1.2); opacity: 1; }
    100% { transform: scale(0.9); opacity: 0.6; }
}

/* --- INTERACTIVE CITATION SYSTEM --- */
.citation-trigger {
    background: none;
    border: none;
    color: var(--accent-cyan);
    font-weight: bold;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 2px 6px;
    border-radius: 4px;
    transition: var(--transition-smooth);
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}

.citation-trigger:hover, .citation-trigger:focus-visible {
    background-color: var(--accent-cyan-glow);
    color: var(--text-primary);
    outline: none;
}

.inline-citation {
    color: var(--text-info);
    opacity: 0.75;
    margin-left: 2px;
}
.inline-citation:hover {
    opacity: 1;
}

/* Citation Tooltip styling */
.custom-tooltip {
    position: absolute;
    z-index: 1000;
    max-width: 280px;
    padding: 10px 14px;
    background-color: hsl(222, 45%, 15%);
    border: 1px solid var(--accent-cyan);
    border-radius: var(--border-radius-sm);
    color: var(--text-primary);
    font-size: 0.8rem;
    line-height: 1.4;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5), 0 0 10px var(--accent-cyan-glow);
    pointer-events: none;
    transition: opacity 0.15s ease-out, transform 0.15s ease-out;
    opacity: 0;
    transform: translateY(5px);
}

.custom-tooltip.visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- QUADRANT 1: OPERATIONAL GRAPHICS & KPIs --- */
.operator-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.kpi-card {
    background: hsla(222, 35%, 12%, 0.6);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: var(--transition-smooth);
}

.kpi-card:hover {
    border-color: var(--border-glow);
    background: hsla(222, 35%, 14%, 0.8);
}

.kpi-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

.operator-name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1rem;
    color: var(--text-primary);
}

.fleet-desc {
    font-size: 0.7rem;
    color: var(--text-muted);
}

.kpi-metric-row {
    margin-top: 0.5rem;
}

.metric-label {
    display: block;
    font-size: 0.7rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.metric-val {
    font-size: 1.6rem;
    font-family: var(--font-heading);
    font-weight: 800;
    color: var(--accent-cyan);
    line-height: 1.1;
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
}

.metric-val-unit {
    font-size: 0.9rem;
    font-weight: 600;
}

.kpi-card-footer {
    border-top: 1px solid var(--border-color);
    padding-top: 0.5rem;
    margin-top: 0.5rem;
    font-size: 0.7rem;
    color: var(--text-muted);
}

/* Loophole Highlighted Cards */
.loophole-badge-indicator {
    padding: 2px 6px;
    font-size: 0.65rem;
    font-weight: 700;
    background: var(--color-warning-bg);
    color: var(--text-warning);
    border: 1px solid var(--color-warning);
    border-radius: 4px;
    margin-top: 2px;
    display: inline-block;
}

/* Charts Containers */
.charts-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.chart-box {
    background: hsla(222, 35%, 10%, 0.5);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1rem;
}

.chart-title {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary);
    margin-bottom: 0.75rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.svg-chart-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Wightlink Alert Banner styling */
.alert-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background-color: var(--color-warning-bg);
    border: 1px solid var(--color-warning);
    color: var(--text-warning);
    padding: 0.9rem 1.2rem;
    border-radius: var(--border-radius-sm);
    font-size: 0.85rem;
    line-height: 1.4;
    transition: opacity 0.3s ease, max-height 0.3s ease, margin 0.3s ease;
    max-height: 200px;
    opacity: 1;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1rem;
}

.alert-banner.hidden-alert {
    max-height: 0;
    padding: 0 1.2rem;
    margin: 0;
    border-width: 0;
    opacity: 0;
    overflow: hidden;
}

.alert-icon {
    font-size: 1.2rem;
    line-height: 1;
}

.alert-text strong {
    color: var(--text-primary);
}

/* --- QUADRANT 2: COMPLIANCE MATRIX --- */
.compliance-tables-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.compliance-operator-card {
    background: hsla(222, 35%, 12%, 0.6);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1.25rem;
    transition: var(--transition-smooth);
}

.compliance-operator-card:hover {
    border-color: var(--border-glow);
}

.compliance-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
}

.compliance-operator-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--text-primary);
}

.compliance-checklist {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.compliance-item {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.compliance-status-icon {
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-top: 2px;
}

.compliance-item.checked {
    color: var(--text-primary);
}

.compliance-item.unchecked {
    color: var(--text-muted);
    text-decoration: line-through;
    opacity: 0.75;
}

/* --- QUADRANT 3: FINANCIAL RADAR ALERTS --- */
.financial-radar-alerts {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.radar-card {
    background: hsla(222, 35%, 11%, 0.6);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1.25rem;
    border-left: 4px solid var(--border-color);
    transition: var(--transition-smooth);
}

.radar-card:hover {
    transform: translateX(4px);
}

.risk-severe {
    border-left-color: var(--color-danger);
    background: linear-gradient(90deg, hsla(355, 75%, 50%, 0.05) 0%, hsla(222, 35%, 11%, 0.6) 100%);
}

.risk-moderate {
    border-left-color: var(--color-warning);
    background: linear-gradient(90deg, hsla(38, 95%, 50%, 0.05) 0%, hsla(222, 35%, 11%, 0.6) 100%);
}

.risk-info {
    border-left-color: var(--color-info);
    background: linear-gradient(90deg, hsla(200, 90%, 50%, 0.05) 0%, hsla(222, 35%, 11%, 0.6) 100%);
}

.radar-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.radar-status-badge {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.05em;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.radar-status-badge.badge-danger {
    background-color: var(--color-danger-bg);
    color: var(--text-danger);
    border: 1px solid var(--color-danger);
}

.radar-status-badge.badge-warning {
    background-color: var(--color-warning-bg);
    color: var(--text-warning);
    border: 1px solid var(--color-warning);
}

.radar-status-badge.badge-info {
    background-color: var(--color-info-bg);
    color: var(--text-info);
    border: 1px solid var(--color-info);
}

.radar-card-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.financial-stats-row {
    display: flex;
    gap: 2rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
}

.fin-stat {
    display: flex;
    flex-direction: column;
}

.fin-stat-label {
    font-size: 0.65rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fin-stat-value {
    font-size: 1.15rem;
    font-family: var(--font-heading);
    font-weight: 800;
}

.radar-details {
    font-size: 0.8rem;
    color: var(--text-secondary);
    margin-bottom: 0;
}

.fleet-warnings-list {
    list-style: none;
    font-size: 0.8rem;
}

.fleet-warnings-list li {
    margin-bottom: 0.75rem;
    border-bottom: 1px solid hsla(210, 20%, 25%, 0.2);
    padding-bottom: 0.75rem;
}

.fleet-warnings-list li:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}

/* --- QUADRANT 4: GOVERNANCE & CARBON LEVY WIDGETS --- */
.simulator-card {
    background: hsla(38, 95%, 50%, 0.03);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.simulator-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.simulator-title {
    font-size: 0.95rem;
    font-weight: 700;
}

.simulator-desc {
    font-size: 0.75rem;
    margin-bottom: 1rem;
}

.simulator-slider-container {
    margin-bottom: 1rem;
}

.slider-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    margin-bottom: 0.4rem;
}

.slider-label strong {
    color: var(--text-warning);
    font-size: 0.95rem;
}

.slider-range-limits {
    font-size: 0.7rem;
    color: var(--text-muted);
}

/* Premium Range Input Styling */
.interactive-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 5px;
    background: hsl(222, 20%, 30%);
    outline: none;
    transition: background 0.15s ease-in-out;
}

.interactive-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-warning);
    cursor: pointer;
    box-shadow: 0 0 10px var(--color-warning-bg);
    transition: transform 0.1s ease;
}

.interactive-slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}

.interactive-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-warning);
    cursor: pointer;
    border: none;
    box-shadow: 0 0 10px var(--color-warning-bg);
    transition: transform 0.1s ease;
}

.interactive-slider::-moz-range-thumb:hover {
    transform: scale(1.2);
}

.simulator-output-box {
    background: hsla(222, 40%, 8%, 0.8);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.projected-cost-stat {
    display: flex;
    flex-direction: column;
    min-width: 130px;
    border-right: 1px solid var(--border-color);
    padding-right: 1rem;
}

.cost-stat-label {
    font-size: 0.65rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cost-stat-val {
    font-size: 1.5rem;
    font-family: var(--font-heading);
    font-weight: 800;
}

.projected-cost-details {
    font-size: 0.75rem;
    line-height: 1.4;
}

/* Timeline Layout */
.governance-timeline {
    position: relative;
    padding-left: 2rem;
}

.governance-timeline:before {
    content: "";
    position: absolute;
    top: 5px; bottom: 5px; left: 9px;
    width: 2px;
    background-color: var(--border-color);
}

.timeline-item {
    position: relative;
    margin-bottom: 1.5rem;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-marker {
    position: absolute;
    left: -2rem;
    top: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
}

.timeline-info {
    display: flex;
    flex-direction: column;
}

.timeline-date {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--accent-cyan);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.timeline-title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0.15rem 0 0.4rem;
}

.timeline-text {
    font-size: 0.8rem;
    color: var(--text-secondary);
    margin-bottom: 0;
}

/* --- DASHBOARD FOOTER CITATION MATRIX --- */
.dashboard-footer {
    background-color: hsla(222, 45%, 5%, 0.95);
    border-top: 1px solid var(--border-color);
    padding: 2.5rem 2rem;
    margin-top: 4rem;
}

.footer-container {
    max-width: 1600px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.footer-summary p {
    font-family: var(--font-heading);
    font-size: 1rem;
    color: var(--text-primary);
    margin-bottom: 1rem;
}

.citation-source-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.6rem 2rem;
}

.citation-source-list li {
    font-size: 0.75rem;
    color: var(--text-muted);
    line-height: 1.4;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.ref-num {
    color: var(--accent-cyan);
    font-weight: 700;
    min-width: 30px;
}

.footer-meta {
    border-top: 1px solid var(--border-color);
    padding-top: 1.5rem;
    text-align: center;
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* --- CHARTS SVG STYLING --- */
.chart-svg {
    width: 100%;
    height: auto;
    max-height: 160px;
}

.chart-grid {
    stroke: hsla(210, 20%, 25%, 0.4);
    stroke-width: 1px;
}

.chart-axis-text {
    fill: var(--text-muted);
    font-size: 8px;
    font-family: var(--font-body);
}

.chart-bar-bg {
    fill: hsla(222, 30%, 15%, 0.8);
    stroke: var(--border-color);
    stroke-width: 1px;
    rx: 2px;
}

.chart-bar-fill-cyan {
    fill: var(--accent-cyan);
    rx: 2px;
    transition: var(--transition-smooth);
}

.chart-bar-fill-blue {
    fill: var(--accent-blue);
    rx: 2px;
    transition: var(--transition-smooth);
}

.chart-bar-fill-warning {
    fill: var(--color-warning);
    rx: 2px;
    transition: var(--transition-smooth);
}

.chart-bar-fill-danger {
    fill: var(--color-danger);
    rx: 2px;
    transition: var(--transition-smooth);
}

.chart-label-text {
    fill: var(--text-primary);
    font-size: 8px;
    font-weight: 600;
    font-family: var(--font-heading);
}

.chart-line {
    stroke: var(--color-warning);
    stroke-width: 1.5px;
    stroke-dasharray: 2 2;
}

/* --- RESPONSIVE STACKING LAYOUT (MOBILE/TABLET) --- */
@media (max-width: 1100px) {
    .dashboard-grid-container {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .operator-kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .header-container {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .toggle-control-panel {
        width: 100%;
    }
    
    .toggle-card {
        width: 100%;
    }

    .operator-kpi-grid {
        grid-template-columns: 1fr;
    }

    .charts-container {
        grid-template-columns: 1fr;
    }

    .compliance-checklist {
        grid-template-columns: 1fr;
    }

    .citation-source-list {
        grid-template-columns: 1fr;
    }
    
    .simulator-output-box {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .projected-cost-stat {
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding-right: 0;
        padding-bottom: 0.5rem;
        width: 100%;
    }
}
