        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Sora', sans-serif;
            background: #F0F2F5;
            color: #1C2833;
            line-height: 1.7;
            padding-bottom: 60px;
            -webkit-font-smoothing: antialiased;
        }

        /* Header */
        .header {
            background: linear-gradient(135deg, #0a0a0a 0%, #12103a 40%, #1a1650 70%, #211951 100%);
            text-align: center;
            padding: 1.8rem 3rem 2.6rem;
            position: relative;
            overflow: hidden;
        }

        .header::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(ellipse at 30% 50%, rgba(74, 144, 226, 0.06) 0%, transparent 60%);
            pointer-events: none;
        }

        .header h1 {
            font-family: 'Instrument Serif', serif;
            font-size: 2.8rem;
            font-weight: 400;
            color: #ffffff;
            margin-bottom: 0.15rem;
            letter-spacing: 0.01em;
            position: relative;
        }

        .header .subtitle {
            color: rgba(255, 255, 255, 0.55);
            font-size: 0.85rem;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 1rem;
            position: relative;
            letter-spacing: 0.02em;
            margin-bottom: 0.6rem;
        }

        .header .subtitle span {
            display: flex;
            align-items: center;
        }

        .header .subtitle span::before {
            content: "\2022";
            margin: 0 0.5rem;
            opacity: 0.4;
        }

        .header .subtitle span:first-child::before {
            display: none;
        }

        .header-stats {
            display: flex;
            flex-wrap: wrap;
            gap: 0.4rem;
            justify-content: center;
            margin-top: 0.75rem;
            position: relative;
        }

        .header-stat-pill { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; border-radius: 20px; font-size: 0.813rem; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; }
        .header-stat-pill.stat-neutral { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.85); }
        .header-stat-pill.stat-green   { background: rgba(40,180,99,0.25);   color: #6EDEA0; }
        .header-stat-pill.stat-amber   { background: rgba(243,156,18,0.25);  color: #F9C95A; }
        .header-stat-pill.stat-blue    { background: rgba(100,160,240,0.25); color: #90C2F8; }

        .branding {
            display: none;
        }

        .mobile-hero-logo { display: none; }

        /* Executive Summary Strip */
        .exec-summary {
            max-width: 1440px;
            margin: 0 auto;
            padding: 0 20px;
            transform: translateY(-1.5rem);
            margin-bottom: -0.5rem;
            position: relative;
            z-index: 10;
        }

        .exec-summary-inner {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1px;
            background: #DDE2E6;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06);
        }

        .exec-stat {
            background: #ffffff;
            padding: 1.25rem 1.5rem;
            text-align: center;
            transition: background 0.2s ease;
        }

        .exec-stat:hover {
            background: #FAFBFC;
        }

        .exec-stat-number {
            font-family: 'Instrument Serif', serif;
            font-size: 2.2rem;
            font-weight: 400;
            color: #1C2833;
            line-height: 1.1;
            margin-bottom: 0.2rem;
        }

        .exec-stat-number.accent {
            color: #2E5BA8;
        }

        .exec-stat-label {
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: #85929E;
        }

        /* Tabs */
        .tabs {
            display: flex;
            padding: 16px 20px;
            gap: 0;
            background: transparent;
            max-width: 1440px;
            margin: 0 auto;
        }

        .tabs-inner {
            display: flex;
            flex: 1;
            background: #E4E8EB;
            border-radius: 10px;
            padding: 4px;
            gap: 2px;
        }

        .tab {
            flex: 1;
            padding: 0.7rem 1.5rem;
            background: transparent;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            font-weight: 500;
            color: #85929E;
            transition: all 0.25s ease;
            text-align: center;
        }

        .tab:hover {
            color: #1C2833;
            background: rgba(255, 255, 255, 0.5);
        }

        .tab.active {
            color: #1C2833;
            background: #ffffff;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
            font-weight: 600;
        }

        /* Settings button in header */
        .settings-btn {
            position: absolute;
            top: 1.5rem;
            right: 2rem;
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.12);
            color: rgba(255, 255, 255, 0.5);
            width: 38px;
            height: 38px;
            border-radius: 10px;
            cursor: pointer;
            font-size: 1.1rem;
            transition: all 0.25s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            z-index: 1;
        }

        .settings-btn:hover {
            background: rgba(255, 255, 255, 0.15);
            color: #ffffff;
            border-color: rgba(255, 255, 255, 0.25);
        }

        /* Container */
        .container {
            max-width: 1440px;
            margin: 0 auto;
            padding: 1.5rem 20px 2rem;
        }

        .tab-content {
            display: none;
            animation: fadeIn 0.4s ease;
        }

        .tab-content.active {
            display: block;
        }

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

        /* Hypotheses Section */
        .hypotheses-grid {
            display: grid;
            gap: 2rem;
        }

        .hypothesis-card {
            background: #ffffff;
            border-radius: 12px;
            padding: 28px 32px;
            border: 1px solid #E4E8EB;
            border-left: 4px solid #1a2332;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02);
            transition: box-shadow 0.25s ease;
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
        }

        .hypothesis-card:hover {
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.04);
        }

        .hyp-chevron { display: inline-flex; align-items: center; font-size: 1.2rem; color: #A0AAB4; transition: transform 0.25s ease; transform: rotate(90deg); flex-shrink: 0; margin-left: 0.5rem; }
        .hypothesis-card.collapsed .hyp-chevron { transform: rotate(0deg); }
        .hypothesis-card.collapsed .kpi-grid { display: none; }

        .hypothesis-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            margin-bottom: 0.6rem;
        }

        .hypothesis-title {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            font-size: 1.25rem;
            font-weight: 600;
            color: #1C2833;
        }

        .hypothesis-icon {
            font-size: 1.4rem;
        }

        .hypothesis-summary-stats {
            display: flex;
            gap: 0.75rem;
            align-items: center;
        }

        .hypothesis-summary-chip {
            display: inline-flex;
            align-items: center;
            gap: 0.3rem;
            padding: 0.25rem 0.6rem;
            border-radius: 20px;
            font-size: 0.7rem;
            font-weight: 600;
            letter-spacing: 0.02em;
        }

        .hypothesis-summary-chip.confirmed { background: rgba(40, 180, 99, 0.1); color: #1E8449; }
        .hypothesis-summary-chip.uncertain { background: rgba(243, 156, 18, 0.1); color: #B7770A; }
        .hypothesis-summary-chip.reversed { background: rgba(231, 76, 60, 0.1); color: #C0392B; }

        .status-badge {
            padding: 0.35rem 0.75rem;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            letter-spacing: 0.02em;
        }

        .status-badge.confirmed {
            background: rgba(40, 180, 99, 0.12);
            color: #1E8449;
        }

        .status-badge.in-progress {
            background: rgba(243, 156, 18, 0.12);
            color: #B7770A;
        }

        .status-badge.reversed {
            background: rgba(231, 76, 60, 0.12);
            color: #C0392B;
        }

        .hypothesis-description {
            color: #8C99A6;
            font-size: 0.85rem;
            margin-bottom: 1.5rem;
            line-height: 1.7;
        }

        .kpi-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.75rem;
            margin-top: 1.25rem;
        }

        /* Verdict Cards */
        .verdict-card {
            background: #FAFBFC;
            border: 1px solid #E4E8EB;
            border-radius: 10px;
            padding: 1rem 1.15rem;
            display: flex;
            flex-direction: column;
            gap: 0.4rem;
            transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
            position: relative;
        }

        .verdict-card.clickable {
            cursor: pointer;
        }

        .verdict-card.clickable::after {
            content: "\2192";
            position: absolute;
            right: 0.85rem;
            top: 0.85rem;
            font-size: 0.85rem;
            color: #DDE2E6;
            transition: all 0.2s ease;
        }

        .verdict-card.clickable:hover {
            border-color: #C5CCD3;
            background: #ffffff;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
        }

        .verdict-card.clickable:hover::after {
            color: #4A90E2;
            transform: translateX(2px);
        }

        .verdict-status {
            margin-bottom: 0.1rem;
        }

        .verdict-question {
            font-weight: 600;
            color: #1C2833;
            font-size: 0.88rem;
            line-height: 1.4;
            padding-right: 1.5rem;
        }

        .verdict-result {
            display: flex;
            align-items: baseline;
            gap: 0.35rem;
            flex-wrap: wrap;
        }

        .verdict-delta {
            font-family: 'Instrument Serif', serif;
            font-size: 1.5rem;
            font-weight: 400;
            line-height: 1.1;
        }

        .verdict-delta.positive { color: #1E8449; }
        .verdict-delta.negative { color: #CB3A2D; }

        .verdict-context {
            font-size: 0.75rem;
            color: #85929E;
            font-weight: 500;
        }

        .verdict-variable {
            font-size: 0.65rem;
            color: #A0AAB4;
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            margin-top: auto;
        }

        .kpi-badge-row {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .verification-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.3rem;
            background: rgba(40, 180, 99, 0.12);
            color: #1E8449;
            padding: 0.2rem 0.6rem;
            border-radius: 4px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .validation-pct {
            font-size: 0.8rem;
            font-weight: 500;
            color: #28B463;
        }

        /* Categorical KPI number cards */
        .cat-kpi-row {
            display: flex;
            gap: 0.6rem;
            margin-top: auto;
            padding-top: 0.5rem;
        }

        .cat-kpi-card {
            flex: 1;
            background: #F4F6F8;
            border-radius: 6px;
            padding: 0.6rem 0.5rem;
            text-align: center;
            border: 1px solid #E8ECEF;
        }

        .cat-kpi-number {
            font-size: 1.5rem;
            font-weight: 700;
            color: #2E5BA8;
            line-height: 1.1;
        }

        .cat-kpi-label {
            font-size: 0.7rem;
            font-weight: 600;
            color: #1C2833;
            margin-top: 0.15rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .cat-kpi-sub {
            font-size: 0.65rem;
            color: #85929E;
            margin-top: 0.1rem;
        }

        /* Company Explorer / Details Section */
        .filter-bar {
            display: flex;
            gap: 1rem;
            align-items: center;
            margin-bottom: 1.5rem;
            flex-wrap: wrap;
        }

        .filter-bar input {
            flex: 1;
            min-width: 200px;
            padding: 0.75rem 1.1rem;
            border: 1px solid #E4E8EB;
            border-radius: 8px;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            transition: all 0.2s ease;
            color: #1C2833;
            background: #ffffff;
        }

        .filter-bar input::placeholder {
            color: #A0AAB4;
        }

        .filter-bar input:focus {
            outline: none;
            border-color: #4A90E2;
            box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.08);
        }

        .filter-bar select {
            padding: 0.75rem 2.5rem 0.75rem 1.1rem;
            border: 1px solid #E4E8EB;
            border-radius: 8px;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235D6D7E' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") no-repeat right 1rem center;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            cursor: pointer;
            transition: all 0.2s ease;
            color: #1C2833;
        }

        .filter-bar select:focus {
            outline: none;
            border-color: #4A90E2;
            box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.08);
        }

        .result-count {
            font-size: 0.85rem;
            color: #5D6D7E;
            margin-top: 0.75rem;
            margin-bottom: 0.5rem;
        }

        .empty-state {
            text-align: center;
            padding: 4rem 2rem;
            color: #A0AAB4;
        }

        .empty-state p {
            font-size: 1.1rem;
            margin-bottom: 0.5rem;
        }

        .empty-state-icon {
            font-size: 3rem;
            margin-bottom: 1rem;
            opacity: 0.4;
        }

        /* Table */
        .table-container {
            background: #ffffff;
            border-radius: 12px;
            overflow-x: hidden;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 16px rgba(0, 0, 0, 0.06);
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        thead {
            background: #F8F9FA;
        }

        th {
            padding: 0.85rem 1rem;
            text-align: left;
            font-weight: 600;
            color: #5D6D7E;
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            cursor: pointer;
            user-select: none;
            border-bottom: 2px solid #E4E8EB;
            transition: color 0.15s ease;
        }

        th:hover {
            color: #1C2833;
        }

        td {
            padding: 0.85rem 1rem;
            border-bottom: 1px solid #F0F2F4;
            font-size: 0.85rem;
        }

        tr {
            transition: background 0.15s ease;
        }

        tr:hover {
            background: #F8F9FB;
        }

        .sponsor-yes {
            color: #28B463;
            font-weight: 600;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .sponsor-no {
            color: #85929E;
        }

        /* Loading and Error States */
        .loading {
            text-align: center;
            padding: 4rem 2rem;
            color: #5D6D7E;
        }

        .error {
            background: rgba(231, 76, 60, 0.08);
            border: 2px solid #E74C3C;
            border-radius: 8px;
            padding: 1.5rem;
            color: #C0392B;
            margin: 2rem 0;
        }

        /* Badges */
        .badge {
            display: inline-block;
            padding: 0.2rem 0.55rem;
            border-radius: 5px;
            font-size: 0.75rem;
            font-weight: 600;
            letter-spacing: 0.01em;
        }

        .badge-green {
            background: rgba(40, 180, 99, 0.12);
            color: #1E8449;
        }

        .badge-yellow {
            background: rgba(243, 156, 18, 0.12);
            color: #B7770A;
        }

        .badge-gray {
            background: #F4F6F8;
            color: #5D6D7E;
        }

        .badge-blue {
            background: rgba(74, 144, 226, 0.12);
            color: #2E5BA8;
        }

        .explorer-status-badge { font-size: 0.688rem; font-weight: 600; padding: 0.25rem 0.55rem; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
        .explorer-status-current { background: rgba(40,180,99,0.1);    color: #1E8449; }
        .explorer-status-past    { background: rgba(100,160,240,0.1);  color: #2563EB; }
        .explorer-status-never   { background: rgba(0,0,0,0.05);       color: #85929E; }

        .badge-red {
            background: rgba(231, 76, 60, 0.12);
            color: #C0392B;
        }

        /* Buttons */
        .btn {
            padding: 0.65rem 1.4rem;
            border: none;
            border-radius: 8px;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            letter-spacing: 0.01em;
        }

        .btn-primary {
            background: linear-gradient(135deg, #2E5BA8 0%, #4A90E2 100%);
            color: white;
            box-shadow: 0 2px 8px rgba(46, 91, 168, 0.25);
        }

        .btn-primary:hover {
            box-shadow: 0 4px 16px rgba(46, 91, 168, 0.35);
            transform: translateY(-1px);
        }

        .btn-primary:disabled {
            background: #C5CCD3;
            box-shadow: none;
            cursor: not-allowed;
            transform: none;
        }

        .btn-secondary {
            background: #ffffff;
            border: 1px solid #DDE2E6;
            color: #5D6D7E;
        }

        .btn-secondary:hover {
            background: #F4F6F8;
            border-color: #C5CCD3;
        }

        /* Settings Modal */
        .modal-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }

        .modal-overlay.active {
            display: flex;
        }

        .modal {
            background: white;
            border-radius: 16px;
            padding: 32px;
            max-width: 700px;
            width: 90%;
            max-height: 85vh;
            overflow-y: auto;
            box-shadow: 0 24px 80px rgba(0, 0, 0, 0.25), 0 4px 16px rgba(0, 0, 0, 0.1);
        }

        .modal h2 {
            font-family: 'Sora', sans-serif;
            font-size: 1.4rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
            color: #1C2833;
        }

        .modal p {
            color: #5D6D7E;
            margin-bottom: 1.5rem;
            font-size: 0.9rem;
        }

        .file-input-wrapper {
            position: relative;
            margin-bottom: 1.5rem;
        }

        .file-input-label {
            display: block;
            padding: 1rem;
            border: 2px dashed #DDE2E6;
            border-radius: 8px;
            text-align: center;
            cursor: pointer;
            transition: all 0.2s ease;
            color: #5D6D7E;
        }

        .file-input-label:hover {
            border-color: #4A90E2;
            background: rgba(74, 144, 226, 0.05);
            color: #4A90E2;
        }

        .file-input-label.has-file {
            border-color: #28B463;
            background: rgba(40, 180, 99, 0.08);
            color: #1E8449;
        }

        .file-input {
            display: none;
        }

        .modal-actions {
            display: flex;
            gap: 1rem;
            justify-content: flex-end;
        }

        .success-message {
            background: rgba(40, 180, 99, 0.1);
            color: #1E8449;
            padding: 0.75rem 1rem;
            border-radius: 6px;
            margin-bottom: 1rem;
            display: none;
        }

        .success-message.active {
            display: block;
        }

        .error-message {
            background: rgba(231, 76, 60, 0.08);
            color: #C0392B;
            padding: 0.75rem 1rem;
            border-radius: 6px;
            margin-bottom: 1rem;
            display: none;
        }

        .error-message.active {
            display: block;
        }

        /* Detail Modal (Company + KPI) */
        .detail-modal-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1001;
            align-items: flex-start;
            justify-content: center;
            padding: 2rem;
            overflow-y: auto;
        }

        .detail-modal-overlay.active {
            display: flex;
        }

        .detail-modal {
            background: white;
            border-radius: 16px;
            padding: 32px;
            max-width: 750px;
            width: 100%;
            box-shadow: 0 24px 80px rgba(0, 0, 0, 0.25), 0 4px 16px rgba(0, 0, 0, 0.1);
            margin: auto 0;
        }

        .detail-modal-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 1.5rem;
        }

        .detail-modal-header h2 {
            font-family: 'Sora', sans-serif;
            font-size: 1.4rem;
            font-weight: 600;
            color: #1C2833;
            margin: 0;
        }

        .detail-modal-close {
            background: none;
            border: none;
            font-size: 1.5rem;
            cursor: pointer;
            color: #5D6D7E;
            padding: 0.25rem;
            line-height: 1;
        }

        .detail-modal-close:hover {
            color: #1C2833;
        }

        .detail-section {
            margin-bottom: 1.5rem;
        }

        .detail-section h3 {
            font-size: 1rem;
            font-weight: 600;
            color: #1C2833;
            margin-bottom: 0.75rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid #DDE2E6;
        }

        .detail-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.75rem;
        }

        .detail-item {
            display: flex;
            flex-direction: column;
            gap: 0.15rem;
        }

        .detail-item-label {
            font-size: 0.8rem;
            color: #5D6D7E;
            font-weight: 500;
        }

        .detail-item-value {
            font-size: 0.95rem;
            color: #1C2833;
            font-weight: 500;
        }

        .detail-source {
            font-size: 0.75rem;
            color: #4A90E2;
            word-break: break-all;
        }

        .detail-source a {
            color: #4A90E2;
            text-decoration: none;
        }

        .detail-source a:hover {
            text-decoration: underline;
        }

        .detail-notes {
            background: #F4F6F8;
            padding: 0.75rem 1rem;
            border-radius: 6px;
            font-size: 0.9rem;
            color: #5D6D7E;
            line-height: 1.5;
            margin-top: 0.5rem;
        }

        /* Progress bars */
        .progress-bar-container {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .progress-bar {
            flex: 1;
            height: 8px;
            background: #DDE2E6;
            border-radius: 4px;
            overflow: hidden;
        }

        .progress-bar-fill {
            height: 100%;
            border-radius: 4px;
            transition: width 0.5s ease;
        }

        .progress-bar-fill.high {
            background: #28B463;
        }

        .progress-bar-fill.medium {
            background: #F39C12;
        }

        .progress-bar-fill.low {
            background: #E74C3C;
        }

        .progress-pct {
            font-size: 0.8rem;
            font-weight: 600;
            color: #1C2833;
            min-width: 40px;
            text-align: right;
        }

        /* Score badges */
        .score-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.25rem 0.65rem;
            border-radius: 6px;
            font-size: 0.8rem;
            font-weight: 700;
            color: #fff;
            min-width: 40px;
            text-align: center;
        }

        .score-very-high { background: #1E8449; }
        .score-high { background: #28B463; }
        .score-moderate { background: #E5A100; }
        .score-below-average { background: #D97218; }
        .score-low { background: #CB3A2D; }

        /* Subtle sub-score: thin left border, no full background */
        .score-sub {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.25rem 0.5rem;
            border-radius: 4px;
            font-size: 0.8rem;
            font-weight: 600;
            min-width: 36px;
            text-align: center;
            background: transparent;
            color: #1C2833;
            border-left: 3px solid transparent;
        }
        .score-sub.score-very-high { color: #1E8449; border-left-color: #1E8449; }
        .score-sub.score-high { color: #28B463; border-left-color: #28B463; }
        .score-sub.score-moderate { color: #B7770A; border-left-color: #E5A100; }
        .score-sub.score-below-average { color: #D97218; border-left-color: #D97218; }
        .score-sub.score-low { color: #CB3A2D; border-left-color: #CB3A2D; }

        /* Score progress bar (thin) */
        .score-progress {
            height: 6px;
            background: #DDE2E6;
            border-radius: 3px;
            overflow: hidden;
            margin-top: 0.25rem;
        }

        .score-progress-fill {
            height: 100%;
            border-radius: 3px;
            transition: width 0.5s ease;
        }

        /* Factor cards (3-column) */
        .factor-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 0.75rem;
            margin-bottom: 1.5rem;
        }

        .factor-card {
            background: #FAFBFC;
            border-radius: 10px;
            padding: 1rem;
            text-align: center;
            border: 1px solid #E4E8EB;
            transition: border-color 0.2s ease;
        }

        .factor-card:hover {
            border-color: #C5CCD3;
        }

        .factor-card-label {
            font-size: 0.65rem;
            color: #85929E;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            margin-bottom: 0.3rem;
        }

        .factor-card-score {
            font-family: 'Instrument Serif', serif;
            font-size: 2rem;
            font-weight: 400;
            margin-bottom: 0.15rem;
            line-height: 1.1;
        }

        .factor-card-count {
            font-size: 0.65rem;
            color: #A0AAB4;
        }

        /* Collapsible sections */
        .collapsible-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            cursor: pointer;
            padding: 0.75rem 0;
            border-bottom: 1px solid #DDE2E6;
            user-select: none;
        }

        .collapsible-header h3 {
            margin: 0;
            border: none;
            padding: 0;
            font-size: 1rem;
            font-weight: 600;
            color: #1C2833;
        }

        .collapsible-arrow {
            font-size: 0.8rem;
            color: #85929E;
            transition: transform 0.2s ease;
        }

        .collapsible-arrow.open {
            transform: rotate(90deg);
        }

        .collapsible-body {
            display: none;
            padding-top: 0.5rem;
        }

        .collapsible-body.open {
            display: block;
        }

        /* Detail score table */
        .detail-score-table {
            width: 100%;
            font-size: 0.85rem;
            border-collapse: collapse;
        }

        .detail-score-table th {
            background: transparent;
            padding: 0.5rem 0.75rem;
            text-transform: none;
            letter-spacing: normal;
            font-size: 0.8rem;
            border-bottom: 1px solid #DDE2E6;
        }

        .detail-score-table td {
            padding: 0.5rem 0.75rem;
            border-bottom: 1px solid #F4F6F8;
        }

        .detail-score-table tr {
            cursor: pointer;
        }

        .detail-score-table tr:hover {
            background: #F9FAFB;
        }

        .support-row {
            display: none;
            background: #F9FAFB;
        }

        .support-row.open {
            display: table-row;
        }

        .support-row td {
            padding: 0.5rem 0.75rem;
            font-size: 0.8rem;
            color: #4A90E2;
            word-break: break-all;
        }

        /* Settings internal tabs */
        .settings-tabs {
            display: flex;
            gap: 0;
            margin-bottom: 1.5rem;
            border-bottom: 2px solid #E8ECEF;
        }

        .settings-tab {
            padding: 0.6rem 1.25rem;
            background: transparent;
            border: none;
            border-bottom: 2px solid transparent;
            margin-bottom: -2px;
            cursor: pointer;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            font-weight: 500;
            color: #85929E;
            transition: all 0.2s ease;
        }

        .settings-tab:hover {
            color: #1C2833;
        }

        .settings-tab.active {
            color: #2E5BA8;
            border-bottom-color: #2E5BA8;
        }

        .settings-tab-content {
            display: none;
        }

        .settings-tab-content.active {
            display: block;
        }

        /* Rankings filters */
        .rankings-filters {
            display: flex;
            gap: 0.75rem;
            align-items: center;
            margin-bottom: 1.5rem;
            flex-wrap: wrap;
        }

        .rankings-filters select,
        .rankings-filters input {
            padding: 0.7rem 1rem;
            border: 1px solid #DDE2E6;
            border-radius: 6px;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            color: #1C2833;
        }

        .rankings-filters select {
            background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235D6D7E' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
            padding-right: 2rem;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            cursor: pointer;
        }

        .rankings-filters input[type="number"] {
            width: 80px;
        }

        /* Hypothesis Exclusion Dropdown */
        .hypothesis-dropdown {
            position: relative;
        }

        .hypothesis-dropdown-btn {
            padding: 0.7rem 1rem;
            border: 1px solid #DDE2E6;
            border-radius: 6px;
            font-family: 'Sora', sans-serif;
            font-size: 0.85rem;
            color: #1C2833;
            background: white;
            cursor: pointer;
            transition: all 0.2s ease;
            white-space: nowrap;
        }

        .hypothesis-dropdown-btn:hover {
            border-color: #4A90E2;
        }

        .hypothesis-dropdown-panel {
            display: none;
            position: absolute;
            top: 100%;
            left: 0;
            margin-top: 4px;
            background: white;
            border: 1px solid #DDE2E6;
            border-radius: 8px;
            box-shadow: 0 4px 16px rgba(0,0,0,0.12);
            z-index: 100;
            width: 300px;
            max-height: 400px;
            overflow-y: auto;
            padding: 0.5rem 0;
        }

        .hypothesis-dropdown-panel.open {
            display: block;
        }

        .hypothesis-dropdown-actions {
            display: flex;
            gap: 0.75rem;
            padding: 0.4rem 0.75rem 0.5rem;
            border-bottom: 1px solid #E8ECEF;
            font-size: 0.8rem;
        }

        .hypothesis-dropdown-actions a {
            color: #4A90E2;
            cursor: pointer;
            text-decoration: none;
        }

        .hypothesis-dropdown-actions a:hover {
            text-decoration: underline;
        }

        .hypothesis-group-label {
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            color: #85929E;
            padding: 0.5rem 0.75rem 0.25rem;
        }

        .hypothesis-dropdown-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.3rem 0.75rem;
            cursor: pointer;
            font-size: 0.82rem;
            transition: background 0.15s;
        }

        .hypothesis-dropdown-item:hover {
            background: #F4F6F8;
        }

        .hypothesis-dropdown-item input[type="checkbox"] {
            margin: 0;
            accent-color: #2E5BA8;
        }

        .hypothesis-dropdown-item .h-code {
            font-weight: 600;
            color: #2E5BA8;
            min-width: 22px;
        }

        /* Score check/x badges for company detail */
        .score-check {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: rgba(40, 180, 99, 0.15);
            color: #1E8449;
            font-size: 0.85rem;
            font-weight: 700;
        }

        .score-x {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: rgba(231, 76, 60, 0.15);
            color: #C0392B;
            font-size: 0.85rem;
            font-weight: 700;
        }

        .rankings-group-header td {
            background: linear-gradient(135deg, #1C2833 0%, #243242 100%);
            font-weight: 600;
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: rgba(255, 255, 255, 0.9);
            padding: 0.65rem 1rem;
            border-bottom: none;
        }

        .rankings-group-header.current-sponsors td {
            background: linear-gradient(135deg, #85929E 0%, #95A5A6 100%);
            color: rgba(255, 255, 255, 0.7);
        }

        .rankings-group-header.past-sponsors td { background: linear-gradient(135deg, #1A5276 0%, #1F618D 100%); }

        .rankings-separator td {
            padding: 0;
            border-bottom: none;
            position: relative;
        }

        .rankings-separator-inner {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 1.25rem 1rem 0.75rem;
        }

        .rankings-separator-inner::before,
        .rankings-separator-inner::after {
            content: '';
            flex: 1;
            height: 2px;
            background: linear-gradient(90deg, transparent, #D5DBDB, transparent);
        }

        .rankings-separator-label {
            font-size: 0.65rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: #95A5A6;
            white-space: nowrap;
        }

        .current-sponsor-row td {
            opacity: 0.45;
        }

        .current-sponsor-row:hover td {
            opacity: 0.7;
        }

        .rankings-group-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 18px;
            height: 18px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.15);
            font-size: 0.55rem;
            margin-right: 0.5rem;
            vertical-align: middle;
        }

        /* Rank number styling */
        .rank-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 28px;
            height: 28px;
            border-radius: 50%;
            background: #F0F2F5;
            font-weight: 700;
            font-size: 0.75rem;
            color: #5D6D7E;
        }

        .rank-number.top-3 {
            background: linear-gradient(135deg, #1a2332, #2E5BA8);
            color: #ffffff;
        }

        .rank-number.top-10 {
            background: #E4E8EB;
            color: #1C2833;
        }

        .rank-number.unranked {
            background: transparent;
            border: 1.5px dashed #C5CCD3;
            color: #B0B8C0;
            font-size: 0.7rem;
        }

        .score-dash {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: rgba(133, 146, 158, 0.15);
            color: #85929E;
            font-size: 0.85rem;
            font-weight: 700;
        }

        /* Export button */
        .export-btn {
            padding: 0.6rem 1.2rem;
            background: #1C2833;
            color: white;
            border: none;
            border-radius: 8px;
            font-family: 'Sora', sans-serif;
            font-size: 0.8rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            margin-left: auto;
            letter-spacing: 0.02em;
        }

        .export-btn:hover {
            background: #2E5BA8;
            box-shadow: 0 2px 8px rgba(46, 91, 168, 0.25);
        }

        /* Overall Score Card */
        .overall-score-card {
            background: linear-gradient(135deg, #0f1721 0%, #1a2d48 50%, #2E5BA8 100%);
            color: white;
            border-radius: 12px;
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            display: flex;
            align-items: center;
            gap: 1.5rem;
            position: relative;
            overflow: hidden;
        }

        .overall-score-card::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 60%;
            height: 200%;
            background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
            pointer-events: none;
        }

        .overall-score-number {
            font-family: 'Instrument Serif', serif;
            font-size: 3.2rem;
            font-weight: 400;
            line-height: 1;
            position: relative;
        }

        .overall-score-info {
            flex: 1;
        }

        .overall-score-label {
            font-size: 0.8rem;
            opacity: 0.7;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 0.25rem;
        }

        .overall-score-interp {
            font-size: 1rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .overall-progress {
            height: 6px;
            background: rgba(255,255,255,0.2);
            border-radius: 3px;
            overflow: hidden;
        }

        .overall-progress-fill {
            height: 100%;
            background: rgba(255,255,255,0.8);
            border-radius: 3px;
        }

        /* Header badges */
        .company-badges {
            display: flex;
            gap: 0.5rem;
            margin-top: 0.25rem;
            flex-wrap: wrap;
        }

        /* Methodology section */
        .methodology-section {
            background: #ffffff;
            border-radius: 8px;
            padding: 32px;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            margin-bottom: 2rem;
        }

        .methodology-section h2 {
            font-size: 1.4rem;
            font-weight: 600;
            color: #1C2833;
            margin-bottom: 0.5rem;
        }

        .methodology-section p {
            color: #5D6D7E;
            margin-bottom: 1.5rem;
            line-height: 1.7;
        }

        .tier-section {
            margin-bottom: 2rem;
        }

        .tier-header {
            background: #F4F6F8;
            padding: 1rem 1.5rem;
            border-radius: 8px;
            margin-bottom: 1rem;
            border-left: 4px solid #4A90E2;
        }

        .tier-header h3 {
            color: #1C2833;
            font-size: 1.1rem;
            margin-bottom: 0.25rem;
        }

        .tier-header p {
            color: #5D6D7E;
            font-size: 0.9rem;
            margin: 0;
        }

        .variable-table {
            width: 100%;
            font-size: 0.9rem;
        }

        .variable-table th {
            background: transparent;
            padding: 0.75rem;
            text-transform: none;
            letter-spacing: normal;
            font-size: 0.85rem;
        }

        .variable-table td {
            padding: 0.75rem;
        }

        .source-link {
            color: #4A90E2;
            text-decoration: none;
            font-size: 0.85rem;
        }

        .source-link:hover {
            text-decoration: underline;
        }

        /* AG Footer */
        .sticky-footer {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: #0a0a0a;
            padding: 10px 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 1000;
            box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.15);
            backdrop-filter: blur(10px);
        }

        .sticky-footer img {
            height: 26px;
            width: auto;
            opacity: 0.9;
        }

        .sticky-footer .version {
            position: absolute;
            right: 20px;
            font-size: 0.65rem;
            color: rgba(255, 255, 255, 0.25);
            letter-spacing: 0.05em;
        }

        .mcc-group-header { font-size: 0.688rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #85929E; padding: 0.75rem 0 0.4rem; }
        .mobile-company-card { background: #ffffff; border-radius: 10px; border: 1px solid #E4E8EB; padding: 0.85rem 1rem; display: flex; align-items: center; gap: 0.75rem; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.07); margin-bottom: 0.5rem; }
        .mcc-info { flex: 1; min-width: 0; }
        .mcc-name { font-family: 'Instrument Serif', serif; font-size: 1.063rem; color: #1C2833; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .mcc-meta { font-size: 0.813rem; color: #85929E; margin-top: 0.1rem; }

        .sd-mobile { display: none; }
        #mobile-company-cards { display: none; }
        #mobile-explorer-cards { display: none; }
        .sd-tier-card { background: #fff; border-radius: 12px; border-top: 4px solid #1C2B4A; box-shadow: 0 1px 4px rgba(0,0,0,0.08); padding: 1rem 1.1rem 0.9rem; margin: 0 1rem 0.75rem; }
        .sd-tier-bar { display: flex; }
        .sd-tier-seg { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; }
        .sd-tier-count { font-size: 0.75rem; font-weight: 700; }
        .sd-tier-pill { width: 100%; height: 10px; }
        .sd-tier-seg-name { font-size: 0.688rem; color: #A0AAB4; text-align: center; }

        /* Sticky first column */
        .table-container {
            overflow-x: auto;
        }

        .table-container table td:first-child,
        .table-container table th:first-child {
            position: sticky;
            left: 0;
            background: inherit;
            z-index: 1;
        }

        .table-container table th:first-child {
            background: #F8F9FA;
        }

        .table-container table tr:hover td:first-child {
            background: #F8F9FB;
        }

        /* Difference badge */
        .difference-badge {
            margin-top: 0.4rem;
            padding: 0.2rem 0.5rem;
            background: rgba(40, 180, 99, 0.06);
            border-radius: 4px;
            text-align: left;
            font-weight: 500;
            font-size: 0.7rem;
            color: #1E8449;
            display: inline-flex;
            align-items: center;
            gap: 0.3rem;
        }

        .difference-badge.negative {
            background: rgba(231, 76, 60, 0.06);
            color: #C0392B;
        }

        /* Comparison grid */
        .comparison-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0;
            margin-top: auto;
            padding-top: 0.6rem;
        }

        .comparison-item {
            text-align: left;
            padding: 0.4rem 0.6rem;
        }

        .comparison-item:first-child {
            border-right: 1px solid #E8ECEF;
        }

        .comparison-label {
            font-size: 0.65rem;
            color: #85929E;
            margin-bottom: 0.15rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .comparison-value {
            font-family: 'Instrument Serif', serif;
            font-size: 1.35rem;
            font-weight: 400;
            color: #1C2833;
            margin-bottom: 0.1rem;
            line-height: 1.2;
        }

        .comparison-count {
            font-size: 0.7rem;
            color: #A0AAB4;
        }

        /* Mobile navigation (hidden on desktop) */
        .mobile-nav {
            display: none;
        }

        .mobile-back-bar {
            display: none;
        }

        /* Responsive breakpoints */
        @media (max-width: 768px) {
            .header h1 {
                font-size: 2rem;
            }

            .header .subtitle {
                flex-direction: column;
                gap: 0.25rem;
            }

            .header .subtitle span::before {
                display: none;
            }

            .exec-summary {
                display: none !important;
            }

            .header-stats {
                display: flex;
            }

            /* Hide sticky footer on mobile */
            .sticky-footer {
                display: none !important;
            }

            /* Hide settings button on mobile (avoids overlap with title) */
            .settings-btn {
                display: none;
            }

            /* Hide hypothesis description on mobile */
            .hypothesis-description {
                display: none;
            }

            /* Hypothesis header on mobile (clickable row) */
            .hypothesis-header {
                flex-direction: row;
                align-items: center;
                cursor: pointer;
                user-select: none;
            }

            .hyp-header-content {
                display: flex;
                flex-direction: column;
                gap: 0.4rem;
                flex: 1;
            }

            .hyp-chevron {
                display: inline-flex;
            }

            .hypothesis-title {
                font-size: 1.05rem;
            }

            .hypothesis-summary-stats {
                flex-wrap: wrap;
                gap: 0.4rem;
            }

            /* Smaller verdict cards */
            .verdict-card {
                padding: 0.7rem 0.85rem;
                gap: 0.25rem;
            }

            .verdict-question {
                font-size: 0.8rem;
            }

            .verdict-delta {
                font-size: 1.25rem;
            }

            .verdict-variable {
                display: none;
            }

            .verdict-card.clickable::after {
                top: 0.6rem;
                right: 0.6rem;
                font-size: 0.75rem;
            }

            /* Hide tabs on mobile — replaced by mobile nav */
            .tabs {
                display: none !important;
            }

            /* Prevent horizontal overflow on mobile */
            html, body {
                overflow-x: hidden;
                max-width: 100vw;
            }

            /* Mobile navigation shell */
            .mobile-nav {
                display: flex;
                flex-direction: column;
                min-height: calc(100vh - 160px);
                gap: 0.875rem;
                padding: 0.875rem 1.1rem;
            }

            /* Mobile back bar */
            .mobile-back-bar {
                display: none;
                position: sticky;
                top: 0;
                z-index: 100;
                background: linear-gradient(135deg, #12103a 0%, #1a1650 100%);
                padding: 0.75rem 1rem;
                margin: -1.5rem -12px 1rem -12px;
                align-items: center;
                gap: 0.75rem;
                box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
            }

            .mobile-back-bar button {
                background: none;
                border: none;
                font-family: 'Sora', sans-serif;
                font-size: 0.95rem;
                color: rgba(255, 255, 255, 0.65);
                font-weight: 500;
                cursor: pointer;
                padding: 0.25rem 0.5rem 0.25rem 0;
            }

            .mobile-back-bar span {
                font-family: 'Instrument Serif', serif;
                font-size: 1.063rem;
                font-weight: 400;
                color: #ffffff;
            }

            /* Mobile nav items */
            .mobile-nav-item {
                display: flex;
                align-items: center;
                padding: 1.6rem 1.1rem;
                background: #ffffff;
                border-radius: 14px;
                box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
                border: 1px solid rgba(0, 0, 0, 0.06);
                border-left-width: 3px;
                cursor: pointer;
                transition: box-shadow 0.15s ease, transform 0.1s ease;
                -webkit-tap-highlight-color: transparent;
            }

            .mobile-nav-item:nth-child(1) {
                border-left-color: #F59E0B;
            }

            .mobile-nav-item:nth-child(2) {
                border-left-color: #3B82F6;
            }

            .mobile-nav-item:active {
                transform: scale(0.985);
                box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
            }

            .mobile-nav-icon-wrap {
                width: 42px;
                height: 42px;
                border-radius: 10px;
                display: flex;
                align-items: center;
                justify-content: center;
                margin-right: 0.875rem;
                font-size: 1.4rem;
                flex-shrink: 0;
            }

            .mobile-nav-item:nth-child(1) .mobile-nav-icon-wrap {
                background: rgba(245, 158, 11, 0.12);
            }

            .mobile-nav-item:nth-child(2) .mobile-nav-icon-wrap {
                background: rgba(59, 130, 246, 0.12);
            }

            .mobile-nav-text {
                flex: 1;
                min-width: 0;
            }

            .mobile-nav-title {
                font-family: 'Instrument Serif', serif;
                font-size: 1.063rem;
                font-weight: 400;
                line-height: 1.3;
            }

            .mobile-nav-subtitle {
                font-size: 0.938rem;
                margin-top: 0.2rem;
            }

            .mobile-nav-chevron {
                font-size: 1.4rem;
                color: #C5CCD3;
                margin-left: 0.75rem;
                flex-shrink: 0;
            }

            .mobile-nav-footer {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 0.5rem;
                padding: 1.25rem 1rem;
                margin-top: auto;
                background: linear-gradient(135deg, #0a0a0a 0%, #12103a 40%, #1a1650 70%, #211951 100%);
            }

            .mobile-nav-footer img {
                height: 22px;
                width: auto;
                opacity: 0.9;
            }

            .mobile-nav-footer-version {
                font-size: 0.65rem;
                color: rgba(255, 255, 255, 0.25);
                letter-spacing: 0.05em;
            }

            /* Mobile detail view */
            #mobile-detail-view {
                background: #F3F4F6;
                padding: 1rem 1rem 2rem;
            }

            #mobile-detail-view .detail-section {
                background: #ffffff;
                border: 1px solid #E4E8EB;
                border-radius: 12px;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
                padding: 1rem 1.1rem;
                margin-bottom: 0.75rem;
            }

            #mobile-detail-view .factor-cards {
                background: #ffffff;
                border: 1px solid #E4E8EB;
                border-radius: 12px;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
                padding: 1rem;
            }

            #mobile-detail-view .detail-grid {
                grid-template-columns: 1fr;
            }

            .container {
                padding: 1.5rem 12px;
            }

            .hypothesis-card {
                padding: 20px;
            }

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

            .detail-grid {
                grid-template-columns: 1fr;
            }

            .factor-cards {
                grid-template-columns: 1fr;
            }

            .filter-bar {
                flex-direction: column;
            }

            #tab-details .filter-bar {
                flex-direction: column;
                align-items: stretch;
                gap: 0.5rem;
                padding: 0.75rem 1rem 0.25rem;
                margin-bottom: 0;
            }

            #search-input {
                width: 100%;
                box-sizing: border-box;
                border-radius: 999px;
                padding: 0.45rem 0.9rem;
                font-size: 0.938rem;
                border: 1.5px solid #D5DBDF;
                font-family: 'Sora', sans-serif;
                color: #1C2833;
                outline: none;
            }

            .filter-chips-row {
                display: flex;
                flex-direction: row;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: none;
                gap: 0.5rem;
                align-items: center;
                padding-bottom: 0.5rem;
            }

            .filter-chips-row::-webkit-scrollbar { display: none; }

            .filter-chips-row select {
                flex: none;
                font-size: 0.813rem;
                padding: 0.3rem 1.6rem 0.3rem 0.7rem;
                border-radius: 999px;
                border: 1.5px solid #D5DBDF;
                background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%235D6D7E' d='M1 0l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right 0.55rem center;
                color: #1C2833;
                -webkit-appearance: none;
                appearance: none;
                cursor: pointer;
                max-width: 100px;
                width: auto;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

            .filter-chips-row input[type="number"] {
                flex: none;
                font-size: 0.813rem;
                padding: 0.3rem 0.7rem;
                border-radius: 999px;
                border: 1.5px solid #D5DBDF;
                background: #fff;
                color: #1C2833;
                width: 100px;
                font-family: 'Sora', sans-serif;
            }

            #tab-details .export-btn { display: none; }
            #filter-min-value { display: none; }

            .result-count { display: none; }
            #tab-details .table-container { display: none; }
            #pagination-controls { display: none; }

            #search-input { font-size: 16px; }

            .filter-chips-row select,
            .filter-chips-row input[type="number"] {
                font-size: 0.813rem;
            }

            .rankings-filters {
                flex-direction: row;
                flex-wrap: nowrap;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: none;
                gap: 0.5rem;
                padding: 0.25rem 1rem 0.75rem;
                align-items: center;
            }

            .rankings-filters::-webkit-scrollbar {
                display: none;
            }

            /* Disable sticky first column & horizontal scroll on mobile */
            .table-container {
                overflow-x: visible;
            }

            .table-container table td:first-child,
            .table-container table th:first-child {
                position: static;
            }

            /* Score distribution chart stacking */
            #score-distribution > div[style*="grid-template-columns"] {
                grid-template-columns: 1fr !important;
            }

            /* Market overview chart stacking */
            #market-overview-content > div[style*="grid-template-columns"] {
                grid-template-columns: 1fr !important;
            }

            /* Modals full-screen on mobile */
            .detail-modal-overlay {
                padding: 0;
            }

            .detail-modal {
                width: 100%;
                max-width: 100%;
                max-height: 100vh;
                height: 100vh;
                border-radius: 0;
                margin: 0;
                overflow-y: auto;
            }

            /* ===================== Rankings table → card layout ===================== */
            #rankings-body,
            #rankings-body tr,
            #rankings-body td {
                display: block;
            }

            /* Hide rankings thead */
            #rankings-body { width: 100%; }
            table:has(#rankings-body) thead { display: none; }
            table:has(#rankings-body) { display: block; width: 100%; }

            /* Each data row becomes a card */
            #rankings-body tr:not(.rankings-group-header):not(.rankings-separator) {
                background: #ffffff;
                border: 1px solid #E4E8EB;
                border-radius: 10px;
                padding: 14px 16px;
                margin-bottom: 8px;
                position: relative;
            }

            #rankings-body tr:not(.rankings-group-header):not(.rankings-separator):active {
                background: #F8F9FB;
            }

            /* Rank + Company on same line */
            #rankings-body .cell-rank,
            #rankings-body .cell-company {
                display: inline;
                padding: 0;
                border: none;
            }

            #rankings-body .cell-rank {
                margin-right: 0.5rem;
            }

            #rankings-body .cell-company {
                font-size: 0.95rem;
            }

            /* Industry as subtitle */
            #rankings-body .cell-industry {
                display: block;
                padding: 2px 0 8px;
                border: none;
                font-size: 0.8rem;
            }

            /* Overall score bar full width */
            #rankings-body .cell-overall {
                display: block;
                padding: 4px 0 8px;
                border: none;
            }

            #rankings-body .cell-overall > div {
                max-width: 100% !important;
            }

            #rankings-body .cell-overall > div > div:last-child {
                max-width: none !important;
                min-width: 0 !important;
                flex: 1 !important;
            }

            /* Sub-scores inline with labels */
            #rankings-body .cell-sub {
                display: inline-block;
                padding: 2px 0;
                border: none;
                margin-right: 1rem;
                font-size: 0.8rem;
            }

            #rankings-body .cell-sub::before {
                content: attr(data-label) ": ";
                font-weight: 600;
                color: #85929E;
                font-size: 0.7rem;
                text-transform: uppercase;
                letter-spacing: 0.04em;
            }

            /* Hide View button on mobile (row is clickable) */
            #rankings-body .cell-actions {
                display: none;
            }

            /* Group headers as full-width banners */
            #rankings-body .rankings-group-header {
                display: block;
                padding: 0;
                margin-top: 12px;
                margin-bottom: 8px;
            }

            #rankings-body .rankings-group-header td {
                padding: 8px 4px;
            }

            /* Separator */
            #rankings-body .rankings-separator {
                display: block;
                padding: 0;
                margin: 16px 0;
            }

            #rankings-body .rankings-separator td {
                padding: 0;
            }

            /* ===================== Company Explorer table → card layout ===================== */
            #table-body,
            #table-body tr,
            #table-body td {
                display: block;
            }

            table:has(#table-body) thead { display: none; }
            table:has(#table-body) { display: block; width: 100%; }

            #table-body tr {
                background: #ffffff;
                border: 1px solid #E4E8EB;
                border-radius: 10px;
                padding: 14px 16px;
                margin-bottom: 8px;
                position: relative;
            }

            #table-body tr:active {
                background: #F8F9FB;
            }

            /* Company name prominent */
            #table-body .cell-company {
                padding: 0 0 4px;
                border: none;
                font-size: 0.95rem;
            }

            /* Industry + Country inline */
            #table-body .cell-industry,
            #table-body .cell-country {
                display: inline;
                padding: 0;
                border: none;
                font-size: 0.8rem;
                color: #5D6D7E;
            }

            #table-body .cell-country::before {
                content: " \00B7 ";
                color: #C5CCD3;
            }

            /* Revenue with label */
            #table-body .cell-revenue {
                display: block;
                padding: 6px 0 4px;
                border: none;
                font-size: 0.8rem;
                color: #5D6D7E;
            }

            #table-body .cell-revenue::before {
                content: "Revenue: ";
                font-weight: 600;
                color: #85929E;
                font-size: 0.7rem;
                text-transform: uppercase;
                letter-spacing: 0.04em;
            }

            /* Status + Score inline */
            #table-body .cell-status,
            #table-body .cell-score {
                display: inline-block;
                padding: 4px 0;
                border: none;
                font-size: 0.8rem;
            }

            #table-body .cell-score {
                margin-left: 0.75rem;
            }

            #mobile-company-cards { display: block; padding: 0 1rem 1rem; }
            #mobile-explorer-cards { display: block; }
            .sd-mobile { display: block; }
            .mobile-hero-logo { display: block; max-width: 140px; opacity: 0.7; margin: 1rem auto 0; }

            .header h1 { font-size: 2.125rem; }

            html, body { padding-bottom: 0; }
        }

        @media (max-width: 480px) {
            .header h1 {
                font-size: 1.6rem;
            }

            .header {
                padding: 1.5rem 1rem 1rem;
            }

            .hypothesis-card {
                padding: 16px;
            }

            .detail-modal {
                padding: 20px;
            }

            /* Verdict card font reductions */
            .verdict-question {
                font-size: 0.82rem;
            }

            .verdict-delta {
                font-size: 1.3rem;
            }

            /* Tighter card padding */
            #rankings-body tr:not(.rankings-group-header):not(.rankings-separator) {
                padding: 12px 14px;
            }

            #table-body tr {
                padding: 12px 14px;
            }
        }

        /* Mapping Modal */
        .mapping-modal {
            background: white;
            border-radius: 8px;
            padding: 32px;
            max-width: 850px;
            width: 95%;
            max-height: 85vh;
            display: flex;
            flex-direction: column;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
        }

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

        .mapping-modal-header h2 {
            font-family: 'Sora', sans-serif;
            font-size: 1.4rem;
            font-weight: 600;
            color: #1C2833;
            margin: 0;
        }

        .mapping-format-info {
            font-size: 0.85rem;
            color: #5D6D7E;
            margin-bottom: 1rem;
        }

        .mapping-modal-body {
            flex: 1;
            overflow-y: auto;
            margin-bottom: 1rem;
        }

        .mapping-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.85rem;
        }

        .mapping-table thead {
            position: sticky;
            top: 0;
            z-index: 1;
        }

        .mapping-table th {
            padding: 0.6rem 0.75rem;
            text-align: left;
            font-weight: 600;
            color: #1C2833;
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            background: #F4F6F8;
            border-bottom: 2px solid #DDE2E6;
        }

        .mapping-table td {
            padding: 0.5rem 0.75rem;
            border-bottom: 1px solid #F0F2F4;
            vertical-align: middle;
        }

        .mapping-table tr:nth-child(even) td {
            background: #FAFBFC;
        }

        .mapping-table select {
            width: 100%;
            padding: 0.4rem 1.8rem 0.4rem 0.6rem;
            border: 1px solid #DDE2E6;
            border-radius: 4px;
            font-family: 'Sora', sans-serif;
            font-size: 0.8rem;
            color: #1C2833;
            background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235D6D7E' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") no-repeat right 0.5rem center;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            cursor: pointer;
        }

        .mapping-table select:focus {
            outline: none;
            border-color: #4A90E2;
            box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.15);
        }

        .mapping-match {
            color: #28B463;
            font-weight: 600;
            font-size: 1rem;
        }

        .mapping-miss {
            color: #F39C12;
            font-weight: 600;
            font-size: 1rem;
        }

        .mapping-preview {
            font-size: 0.75rem;
            color: #85929E;
            max-width: 180px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mapping-field-label {
            font-weight: 500;
            color: #1C2833;
        }

        .mapping-field-code {
            font-size: 0.7rem;
            color: #85929E;
            margin-left: 0.25rem;
        }

        .mapping-modal-footer {
            display: flex;
            gap: 1rem;
            justify-content: flex-end;
            padding-top: 0.75rem;
            border-top: 1px solid #E8ECEF;
        }

        .mapping-stats {
            flex: 1;
            font-size: 0.8rem;
            color: #5D6D7E;
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .mapping-stats .matched {
            color: #28B463;
            font-weight: 600;
        }

        .mapping-stats .unmatched {
            color: #F39C12;
            font-weight: 600;
        }

        @media (max-width: 768px) {
            .mapping-modal {
                width: 100%;
                max-width: 100%;
                max-height: 100vh;
                height: 100vh;
                border-radius: 0;
                padding: 16px;
            }

            .mapping-modal-header h2 {
                font-size: 1.2rem;
            }

            .mapping-format-info {
                font-size: 0.8rem;
                margin-bottom: 0.75rem;
            }

            /* Hide table header on mobile */
            .mapping-table thead {
                display: none;
            }

            /* Turn each row into a stacked card */
            .mapping-table,
            .mapping-table tbody {
                display: block;
                width: 100%;
            }

            .mapping-table tr {
                display: block;
                background: #ffffff;
                border: 1px solid #E8ECEF;
                border-radius: 8px;
                padding: 12px;
                margin-bottom: 8px;
                position: relative;
            }

            .mapping-table tr:nth-child(even) td {
                background: transparent;
            }

            .mapping-table td {
                display: block;
                padding: 0;
                border: none;
            }

            /* Status icon: inline before the label */
            .mapping-table td.mapping-cell-status {
                position: absolute;
                top: 12px;
                right: 12px;
            }

            /* Field label: prominent at top */
            .mapping-table td.mapping-cell-label {
                font-size: 0.9rem;
                font-weight: 600;
                margin-bottom: 8px;
                padding-right: 2rem;
            }

            /* Dropdown: full width */
            .mapping-table td.mapping-cell-select {
                margin-bottom: 6px;
            }

            .mapping-table td.mapping-cell-select select {
                padding: 0.55rem 2rem 0.55rem 0.75rem;
                font-size: 0.85rem;
            }

            /* Preview: show as subtle line below dropdown */
            .mapping-table td.mapping-cell-preview {
                display: block;
            }

            .mapping-table td.mapping-cell-preview .mapping-preview {
                display: block;
                max-width: 100%;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                font-size: 0.75rem;
                color: #85929E;
                min-height: 0;
            }

            .mapping-table td.mapping-cell-preview .mapping-preview:empty {
                display: none;
            }

            /* Footer: stack buttons */
            .mapping-modal-footer {
                flex-wrap: wrap;
                gap: 0.5rem;
            }

            .mapping-stats {
                width: 100%;
                justify-content: center;
                margin-bottom: 0.25rem;
            }

            .mapping-modal-footer .btn {
                flex: 1;
                text-align: center;
            }
        }

        /* ============================================================ */
        /* === EXTRACTED INLINE STYLES (B01) === */
        /* ============================================================ */

        .hidden { display: none; }

        .subtitle-wrap { max-width: 660px; margin: 0 auto; }

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

        .schema-hint { margin-bottom: 1.5rem; }
        .schema-hint p { font-size: 0.85rem; color: #5D6D7E; margin-bottom: 0.5rem; }
        .schema-hint details { font-size: 0.8rem; color: #85929E; }
        .schema-hint summary { cursor: pointer; margin-bottom: 0.5rem; }
        .schema-pre { background: #F4F6F8; padding: 0.75rem; border-radius: 4px; overflow-x: auto; }

        .empty-state-padded { padding: 5rem 2rem; }
        .empty-state-heading {
            font-family: 'Instrument Serif', serif;
            font-size: 1.8rem;
            font-weight: 400;
            color: #1C2833;
            margin-bottom: 0.5rem;
        }
        .empty-state-desc {
            display: block;
            margin-bottom: 1.75rem;
            font-size: 0.9rem;
            max-width: 420px;
            margin-left: auto;
            margin-right: auto;
            line-height: 1.7;
        }
        .btn-upload { font-size: 0.9rem; padding: 0.85rem 2.5rem; }

        .filter-min-value { max-width: 130px; }

        .score-methodology { margin-top: 1.5rem; }
        .score-methodology summary {
            cursor: pointer;
            padding: 0.85rem 1.25rem;
            background: #ffffff;
            border: 1px solid #E4E8EB;
            border-radius: 10px;
            font-size: 0.8rem;
            font-weight: 600;
            color: #5D6D7E;
            list-style: none;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            user-select: none;
            transition: all 0.2s ease;
        }
        .score-methodology-arrow {
            font-size: 0.7rem;
            transition: transform 0.2s ease;
            display: inline-block;
        }
        .score-methodology-body {
            padding: 1.25rem 1.5rem;
            background: #ffffff;
            border: 1px solid #E4E8EB;
            border-top: none;
            border-radius: 0 0 10px 10px;
            margin-top: -1px;
        }
        .score-methodology-para {
            font-size: 0.8rem;
            color: #5D6D7E;
            line-height: 1.7;
            margin-bottom: 0.5rem;
        }
        .score-methodology-para.last { margin-bottom: 0; }
