
        :root {
            --primary: #123e63;
            --primary-dark: #0b2e4a;
            --accent: #215d90;
            --accent-strong: #17496f;
            --bg: #eef3f8;
            --card: #ffffff;
            --border: #d5e0ea;
            --text: #17324a;
            --muted: #5f7287;
            --shadow: 0 12px 30px rgba(15, 31, 51, 0.08);
            --font-base: 15px;
            --font-sm: 14px;
            --font-xs: 13px;
            --font-lg: 18px;
            --font-xl: 24px;
            --font-2xl: 32px;
        }

        *,
        *::before,
        *::after {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
            background: var(--bg);
            color: var(--text);
            font-size: var(--font-base);
            line-height: 1.55;
            overflow-x: hidden;
        }

        header {
            background: linear-gradient(90deg, var(--primary), var(--primary-dark));
            color: white;
            padding: 12px 18px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 14px;
            flex-wrap: wrap;
        }

        .brand-row {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            flex-wrap: nowrap;
            min-width: 0;
            color: #ffffff;
            text-decoration: none;
        }

        .trialvault-logo-mark {
            display: inline-flex;
            width: 46px;
            height: 46px;
            align-items: center;
            justify-content: center;
            flex: 0 0 auto;
            border-radius: 8px;
            background: #ffffff;
            color: var(--primary-dark);
        }

        .trialvault-logo-mark svg {
            width: 36px;
            height: 36px;
        }

        .trialvault-brand-text {
            display: grid;
            gap: 1px;
            line-height: 1.05;
        }

        .trialvault-brand-text strong {
            color: #ffffff;
            font-size: 20px;
            font-weight: 800;
        }

        .trialvault-brand-text span {
            color: #c8d9e8;
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0;
            text-transform: uppercase;
        }

        header > div:first-child {
            min-width: 0;
        }

        header .tagline {
            font-size: var(--font-xs);
            color: #d6e4f0;
            margin-top: 2px;
            line-height: 1.3;
        }

        header nav {
            display: flex;
            align-items: center;
            gap: 12px;
            flex: 1 1 760px;
            flex-wrap: wrap;
            justify-content: flex-end;
            padding-top: 2px;
        }

        .header-study-switcher {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: #ffffff;
            font-weight: 700;
            font-size: 15px;
            min-width: 0;
        }

        .header-study-switcher label {
            color: #ffffff;
            font-weight: 700;
            font-size: 15px;
        }

        .header-study-switcher select {
            min-width: 190px;
            max-width: 280px;
            border: 1px solid rgba(255,255,255,0.28);
            border-radius: 10px;
            padding: 8px 42px 8px 14px;
            background: rgba(255,255,255,0.14);
            color: #ffffff;
            font-size: 15px;
            font-weight: 700;
            appearance: none;
            -webkit-appearance: none;
            -moz-appearance: none;
            background-image:
                linear-gradient(45deg, transparent 50%, #ffffff 50%),
                linear-gradient(135deg, #ffffff 50%, transparent 50%);
            background-position:
                calc(100% - 18px) calc(50% - 3px),
                calc(100% - 12px) calc(50% - 3px);
            background-size: 6px 6px, 6px 6px;
            background-repeat: no-repeat;
        }

        .header-study-switcher select option {
            color: #111827;
            background: #ffffff;
        }

        .header-language-switcher {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: #ffffff;
            font-weight: 700;
            font-size: 15px;
            min-width: 0;
        }

        .header-language-switcher label {
            color: #ffffff;
            font-weight: 700;
            font-size: 15px;
        }

        .header-language-switcher select {
            min-width: 150px;
            max-width: 190px;
            border: 1px solid rgba(255,255,255,0.28);
            border-radius: 10px;
            padding: 8px 34px 8px 12px;
            background: rgba(255,255,255,0.14);
            color: #ffffff;
            font-size: 15px;
            font-weight: 700;
            appearance: none;
            -webkit-appearance: none;
            -moz-appearance: none;
            background-image:
                linear-gradient(45deg, transparent 50%, #ffffff 50%),
                linear-gradient(135deg, #ffffff 50%, transparent 50%);
            background-position:
                calc(100% - 16px) calc(50% - 3px),
                calc(100% - 10px) calc(50% - 3px);
            background-size: 6px 6px, 6px 6px;
            background-repeat: no-repeat;
        }

        .header-language-switcher select option {
            color: #111827;
            background: #ffffff;
        }

        header nav a {
            color: white;
            text-decoration: none;
            font-weight: 700;
            font-size: 16px;
            line-height: 1.2;
            white-space: nowrap;
        }

        header nav a:hover {
            text-decoration: underline;
        }

        .environment-dropdown {
            position: relative;
        }

        .environment-dropdown summary {
            list-style: none;
            cursor: pointer;
            color: white;
            font-weight: 700;
            font-size: 16px;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            line-height: 1.2;
            white-space: nowrap;
        }

        .environment-dropdown summary::-webkit-details-marker {
            display: none;
        }

        .environment-dropdown summary::after {
            content: "";
            width: 0;
            height: 0;
            border-left: 4px solid transparent;
            border-right: 4px solid transparent;
            border-top: 5px solid #d6e4f0;
            margin-left: 8px;
        }

        .environment-dropdown[open] summary {
            text-decoration: underline;
        }

        .environment-dropdown-menu {
            position: absolute;
            top: calc(100% + 10px);
            right: 0;
            min-width: 320px;
            padding: 10px;
            border-radius: 8px;
            border: 1px solid var(--border);
            background: #ffffff;
            box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
            z-index: 5000;
        }

        .environment-dropdown-item {
            display: block;
            padding: 10px 12px;
            border-radius: 8px;
            color: #1f2937;
            background: #ffffff;
            margin-bottom: 6px;
        }

        .environment-dropdown-item:last-child {
            margin-bottom: 0;
        }

        .environment-dropdown-item.active {
            background: #eff6ff;
            border: 1px solid #bfdbfe;
        }

        .environment-dropdown-label {
            display: block;
            font-size: var(--font-sm);
            font-weight: 700;
            color: #0f172a;
            margin-bottom: 4px;
        }

        .environment-dropdown-url {
            display: block;
            font-size: var(--font-sm);
            line-height: 1.4;
            color: #475569;
            word-break: break-word;
        }

        .role-indicator {
            font-size: 14px;
            color: #d6e4f0;
            margin-left: 10px;
            white-space: nowrap;
        }

        .container {
            width: calc(100% - 24px);
            max-width: 1440px;
            margin: 16px auto 24px;
            padding: 0;
            min-width: 0;
            box-sizing: border-box;
        }

        .card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 20px;
            box-shadow: var(--shadow);
            margin-bottom: 20px;
            min-width: 0;
            width: 100%;
            box-sizing: border-box;
        }

        h1 {
            font-size: var(--font-2xl);
            margin: 0 0 10px;
            line-height: 1.15;
            letter-spacing: 0;
            color: #103350;
        }
        h2 {
            font-size: 24px;
            margin: 0 0 14px;
            line-height: 1.2;
            letter-spacing: 0;
            color: #103350;
        }
        h3 {
            font-size: var(--font-lg);
            margin: 0 0 10px;
            line-height: 1.25;
            color: #103350;
        }

        .subtitle {
            color: var(--muted);
            font-size: 16px;
            line-height: 1.6;
            margin: 0;
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        th, td {
            padding: 10px 12px;
            border-bottom: 1px solid var(--border);
            font-size: 14px;
            line-height: 1.5;
            text-align: left;
        }

        th {
            font-size: 13px;
            background: #eef4f9;
            font-weight: 700;
            color: #33516c;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        tr:hover {
            background: #f9fbfd;
        }

        button {
            background: var(--accent);
            color: white;
            border: none;
            border-radius: 8px;
            min-height: 40px;
            padding: 8px 12px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
        }

        input,
        select,
        textarea {
            font: inherit;
            border: 1px solid #c8d4df;
            border-radius: 8px;
            background: #ffffff;
            color: var(--text);
            padding: 8px 10px;
            min-height: 40px;
            width: 100%;
            box-sizing: border-box;
        }

        button:disabled {
            background: #cfd8dc;
            cursor: not-allowed;
        }

        a {
            color: var(--accent);
            font-weight: 500;
        }

        .tv-summary-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
            gap: 14px;
            margin-top: 18px;
        }

        .tv-summary-card {
            border-radius: 8px;
            padding: 16px;
            color: white;
            position: relative;
            overflow: hidden;
            min-height: 92px;
            background: linear-gradient(160deg, #143f66 0%, #245f94 100%);
            box-shadow: 0 14px 28px rgba(20, 63, 102, 0.18);
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .tv-summary-card-link {
            cursor: pointer;
            transition: transform 0.18s ease, box-shadow 0.18s ease;
            color: white;
            text-decoration: none;
        }

        .tv-summary-card-link:hover {
            transform: translateY(-2px);
            box-shadow: 0 20px 34px rgba(20, 63, 102, 0.22);
        }

        .tv-summary-card::after {
            content: "";
            position: absolute;
            right: -20px;
            top: -20px;
            width: 68px;
            height: 68px;
            background: rgba(255,255,255,0.15);
            border-radius: 8px;
        }

        .tv-summary-value {
            font-size: 30px;
            font-weight: 800;
            line-height: 1;
        }

        .tv-summary-label {
            font-size: 14px;
            line-height: 1.45;
            color: rgba(255, 255, 255, 0.92);
            margin-top: 12px;
        }

        .tv-summary-text {
            font-size: 17px;
            font-weight: 700;
            line-height: 1.35;
        }

        .tv-two-column {
            display: grid;
            grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
            gap: 22px;
        }

        .tv-page-heading {
            margin-bottom: 16px;
        }

        .tv-page-heading .subtitle {
            max-width: 920px;
        }

        .report-table-wrap {
            width: 100%;
            max-width: 100%;
            overflow-x: auto;
            overflow-y: hidden;
            border: 1px solid var(--border);
            border-radius: 8px;
            background: #ffffff;
            -webkit-overflow-scrolling: touch;
        }

        .report-table-wrap table {
            min-width: 1200px;
            margin: 0;
        }

        .report-table-wrap th,
        .report-table-wrap td {
            vertical-align: top;
            white-space: normal;
            overflow-wrap: anywhere;
            word-break: break-word;
        }

        @media (max-width: 768px) {
            .container {
                width: calc(100vw - 16px);
                margin: 8px auto 18px;
            }
        }

        @media (max-width: 1080px) {
            .tv-two-column {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 1320px) {
            .brand-row {
                flex-wrap: wrap;
            }
        }

        /*
           TRIALVAULT ENTERPRISE SHELL POLISH - 2026-06-28
           Shared EDC shell typography, header, navigation, and controls.
        */
        body {
            font-size: 14px;
            line-height: 1.5;
            color: #102234;
            background: #eef3f7;
            -webkit-font-smoothing: antialiased;
            text-rendering: optimizeLegibility;
        }

        header {
            min-height: 78px;
            padding: 10px 16px;
            gap: 14px 18px;
            background: linear-gradient(105deg, #082137 0%, #113d56 58%, #0f5a68 100%);
            border-bottom: 1px solid rgba(255, 255, 255, 0.14);
            box-shadow: 0 14px 30px rgba(9, 32, 52, 0.18);
        }

        .trialvault-logo-mark {
            width: 42px;
            height: 42px;
            border-radius: 8px;
            box-shadow: inset 0 0 0 1px rgba(15, 55, 82, 0.12);
        }

        .trialvault-logo-mark svg {
            width: 32px;
            height: 32px;
        }

        .trialvault-brand-text strong {
            font-size: 22px;
            line-height: 1;
            letter-spacing: 0;
        }

        .trialvault-brand-text span,
        header .tagline {
            font-size: 11px;
            letter-spacing: 0;
        }

        header nav {
            gap: 8px;
            row-gap: 8px;
            padding-top: 0;
        }

        .header-study-switcher,
        .header-language-switcher {
            gap: 6px;
            font-size: 12px;
            text-transform: uppercase;
            letter-spacing: 0;
        }

        .header-study-switcher label,
        .header-language-switcher label {
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0;
        }

        .header-study-switcher select,
        .header-language-switcher select {
            min-height: 38px;
            border-radius: 7px;
            border-color: rgba(255, 255, 255, 0.22);
            background-color: rgba(255, 255, 255, 0.16);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
            font-size: 13px;
            font-weight: 800;
        }

        .header-study-switcher select {
            min-width: 174px;
            max-width: 230px;
            padding: 8px 34px 8px 12px;
        }

        .header-language-switcher select {
            min-width: 128px;
            max-width: 150px;
            padding: 8px 30px 8px 12px;
        }

        header nav a,
        .environment-dropdown summary {
            min-height: 38px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 8px 13px;
            border: 1px solid rgba(255, 255, 255, 0.17);
            border-radius: 7px;
            background: rgba(255, 255, 255, 0.08);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
            font-size: 13px;
            font-weight: 800;
            text-decoration: none;
        }

        header nav a:hover,
        .environment-dropdown summary:hover {
            background: rgba(255, 255, 255, 0.15);
            text-decoration: none;
        }

        .environment-dropdown-menu {
            border-radius: 8px;
            border: 1px solid #cbd8e4;
            box-shadow: 0 18px 42px rgba(7, 32, 52, 0.24);
        }

        .environment-dropdown-item {
            border-radius: 6px;
        }

        .role-indicator {
            margin-left: 4px;
            font-size: 12px;
            color: #dbe9f2;
        }

        .container {
            width: calc(100% - 18px);
            margin: 12px auto 22px;
        }

        .card {
            border-radius: 7px;
            border-color: #cfdbe6;
            padding: 16px;
            box-shadow: 0 8px 22px rgba(15, 31, 51, 0.055);
            margin-bottom: 14px;
        }

        h1 {
            font-size: 25px;
            font-weight: 800;
            color: #11283c;
        }

        h2 {
            font-size: 20px;
            font-weight: 800;
            color: #11283c;
        }

        h3 {
            font-size: 16px;
            font-weight: 800;
            color: #11283c;
        }

        .subtitle {
            font-size: 13px;
            color: #566b7f;
        }

        th,
        td {
            padding: 8px 10px;
            font-size: 13px;
        }

        th {
            font-size: 11px;
            letter-spacing: 0.03em;
        }

        button,
        input,
        select,
        textarea {
            border-radius: 6px;
            font-size: 13px;
        }

        button {
            min-height: 36px;
            padding: 7px 12px;
            font-weight: 800;
            background: #0d5a72;
            box-shadow: 0 7px 16px rgba(13, 90, 114, 0.16);
        }

        button:hover:not(:disabled) {
            background: #0a4b61;
        }

        input,
        select,
        textarea {
            min-height: 36px;
            border-color: #b9c9d8;
            background: #ffffff;
            box-shadow: inset 0 1px 1px rgba(15, 31, 51, 0.035);
        }

        input:focus,
        select:focus,
        textarea:focus {
            outline: none;
            border-color: #2c7a9a;
            box-shadow: 0 0 0 3px rgba(44, 122, 154, 0.14);
        }

    

    :root {
        --primary: #16324f;
        --primary-dark: #0d2438;
        --accent: #1d6f85;
        --accent-strong: #155a6e;
        --accent-soft: #dceff4;
        --success: #155a6e;
        --warning: #173a52;
        --danger: #10263c;
        --info: #173a52;
        --bg: #f5f7fb;
        --bg-strong: #eef3f8;
        --card: #ffffff;
        --border: #d9e3ee;
        --border-strong: #b8c8d8;
        --text: #122034;
        --muted: #5b6f86;
        --shadow: 0 10px 28px rgba(18, 32, 52, 0.08);
        --shadow-hover: 0 16px 36px rgba(18, 32, 52, 0.12);
        --focus-ring: 0 0 0 3px rgba(29, 111, 133, 0.18);
        --radius: 8px;
        --font-base: 15px;
        --font-sm: 14px;
        --font-xs: 12px;
        --font-lg: 18px;
        --font-xl: 22px;
        --font-2xl: 30px;
    }

    html {
        background: var(--bg);
        color-scheme: light;
    }

    body {
        background:
            linear-gradient(180deg, #f8fafc 0, #f5f7fb 260px, #eef3f8 100%) !important;
        color: var(--text) !important;
        font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif !important;
        font-size: var(--font-base) !important;
        line-height: 1.55 !important;
        letter-spacing: 0 !important;
    }

    header {
        position: sticky;
        top: 0;
        z-index: 3000;
        min-height: 72px;
        padding: 12px 22px !important;
        background: linear-gradient(90deg, #10263c 0%, #173a52 48%, #1b5b62 100%) !important;
        border-bottom: 1px solid rgba(255,255,255,0.12);
        box-shadow: 0 12px 30px rgba(10, 24, 38, 0.22);
    }

    .trialvault-logo-mark {
        width: 42px !important;
        height: 42px !important;
        border-radius: var(--radius) !important;
        box-shadow: inset 0 0 0 1px rgba(22, 50, 79, 0.08);
    }

    .trialvault-logo-mark svg {
        width: 33px !important;
        height: 33px !important;
    }

    .trialvault-brand-text strong {
        font-size: 21px !important;
        letter-spacing: 0 !important;
    }

    .trialvault-brand-text span,
    header .tagline,
    .role-indicator {
        letter-spacing: 0 !important;
    }

    header nav {
        gap: 8px !important;
    }

    header nav > a,
    .environment-dropdown summary {
        min-height: 34px;
        display: inline-flex !important;
        align-items: center;
        padding: 7px 10px;
        border-radius: var(--radius);
        background: rgba(255,255,255,0.08);
        border: 1px solid rgba(255,255,255,0.12);
        color: #f8fbff !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        text-decoration: none !important;
        transition: background-color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
    }

    header nav > a:hover,
    .environment-dropdown summary:hover {
        background: rgba(255,255,255,0.16);
        border-color: rgba(255,255,255,0.24);
        transform: translateY(-1px);
    }

    .header-study-switcher,
    .header-language-switcher {
        gap: 6px !important;
        font-size: 13px !important;
    }

    .header-study-switcher label,
    .header-language-switcher label {
        font-size: 12px !important;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #ffffff !important;
        text-shadow: 0 1px 1px rgba(0,0,0,0.22);
    }

    .header-study-switcher select,
    .header-language-switcher select {
        min-height: 34px !important;
        border-radius: var(--radius) !important;
        border-color: rgba(255,255,255,0.34) !important;
        background-color: rgba(255,255,255,0.18) !important;
        color: #ffffff !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
        font-size: 13px !important;
        font-weight: 800 !important;
        text-shadow: 0 1px 1px rgba(0,0,0,0.18);
    }

    .header-study-switcher select option,
    .header-language-switcher select option {
        color: #111827 !important;
        background: #ffffff !important;
        text-shadow: none !important;
    }

    .environment-dropdown-menu {
        min-width: 420px !important;
        max-width: min(520px, calc(100vw - 32px)) !important;
        padding: 10px !important;
        border-radius: var(--radius) !important;
        border: 1px solid var(--border) !important;
        box-shadow: 0 18px 44px rgba(18, 32, 52, 0.18) !important;
    }

    .environment-dropdown-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
        min-height: auto !important;
        padding: 12px 14px !important;
        border-radius: var(--radius) !important;
        color: #1f2937 !important;
        background: transparent !important;
        border: 1px solid transparent !important;
        text-decoration: none !important;
        white-space: normal !important;
    }

    .environment-dropdown-item:hover {
        background: #f4f8fb !important;
        border-color: #d9e3ee !important;
        transform: none !important;
    }

    .environment-dropdown-label,
    .environment-dropdown-url {
        display: block !important;
        width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .environment-dropdown-label {
        color: #0f172a !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
    }

    .environment-dropdown-url {
        color: #475569 !important;
        font-size: 13px !important;
        font-weight: 650 !important;
        line-height: 1.35 !important;
    }

    .container {
        width: min(calc(100% - 32px), 1560px) !important;
        max-width: 1560px !important;
        margin: 22px auto 34px !important;
    }

    .card,
    .panel,
    .architect-pack-card,
    .report-playbook-card,
    .compare-section-card,
    .auth-card {
        border-radius: var(--radius) !important;
        border: 1px solid var(--border) !important;
        background: var(--card) !important;
        box-shadow: var(--shadow) !important;
    }

    .card {
        padding: 22px !important;
        margin-bottom: 18px !important;
    }

    h1,
    h2,
    h3 {
        color: #122b43 !important;
        letter-spacing: 0 !important;
    }

    h1 {
        font-size: var(--font-2xl) !important;
        font-weight: 800 !important;
        line-height: 1.18 !important;
        margin-bottom: 8px !important;
    }

    h2 {
        font-size: var(--font-xl) !important;
        font-weight: 780 !important;
        line-height: 1.22 !important;
    }

    h3 {
        font-size: var(--font-lg) !important;
        font-weight: 760 !important;
    }

    .subtitle,
    .hint,
    .readonly,
    .table-subtle,
    .dataset-description {
        color: var(--muted) !important;
        font-size: 14px !important;
        line-height: 1.55 !important;
        letter-spacing: 0 !important;
    }

    a {
        color: #1b6680;
        text-decoration-thickness: 1px;
        text-underline-offset: 3px;
    }

    button,
    .btn,
    .dataset-button,
    .dataset-download-button,
    .report-download-button,
    .architect-link-button,
    .architect-build-button,
    .architect-secondary-button,
    .safety-button-link,
    .programmer-admin-link,
    .secondary-action-button {
        min-height: 38px !important;
        border-radius: var(--radius) !important;
        border: 1px solid transparent !important;
        background: linear-gradient(180deg, #1d6f85 0%, #155a6e 100%) !important;
        color: #ffffff !important;
        box-shadow: 0 8px 18px rgba(21, 90, 110, 0.16) !important;
        font-size: 14px !important;
        font-weight: 760 !important;
        letter-spacing: 0 !important;
        text-decoration: none !important;
        transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
    }

    button:hover,
    .btn:hover,
    .dataset-button:hover,
    .dataset-download-button:hover,
    .report-download-button:hover,
    .architect-link-button:hover,
    .architect-build-button:hover,
    .architect-secondary-button:hover,
    .safety-button-link:hover,
    .programmer-admin-link:hover,
    .secondary-action-button:hover {
        transform: translateY(-1px);
        box-shadow: 0 12px 24px rgba(21, 90, 110, 0.20) !important;
    }

    .report-download-button-secondary,
    .dataset-download-secondary,
    .btn.light,
    .secondary-action-button,
    .architect-secondary-button {
        background: #ffffff !important;
        color: #17324a !important;
        border-color: var(--border-strong) !important;
        box-shadow: 0 6px 14px rgba(18, 32, 52, 0.06) !important;
    }

    .report-download-button-tertiary,
    .architect-link-button-accent {
        background: linear-gradient(180deg, #355d8a 0%, #274868 100%) !important;
    }

    button:disabled,
    .architect-build-button:disabled,
    .architect-secondary-button:disabled {
        transform: none !important;
        background: #cbd5df !important;
        color: #6b7d90 !important;
        box-shadow: none !important;
        cursor: not-allowed !important;
    }

    input,
    select,
    textarea,
    .architect-inline-select,
    .dataset-format-select {
        min-height: 40px !important;
        border-radius: var(--radius) !important;
        border: 1px solid var(--border-strong) !important;
        background-color: #ffffff !important;
        color: var(--text) !important;
        font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif !important;
        font-size: 14px !important;
        line-height: 1.4 !important;
        letter-spacing: 0 !important;
        box-shadow: inset 0 1px 2px rgba(18, 32, 52, 0.04);
    }

    input:focus,
    select:focus,
    textarea:focus,
    .architect-inline-select:focus,
    .dataset-format-select:focus {
        outline: none !important;
        border-color: var(--accent) !important;
        box-shadow: var(--focus-ring) !important;
    }

    label,
    .compare-section-label,
    .report-filter-grid label,
    .saved-setup-form label,
    .mapping-three-column-row label,
    .safety-upload-form label,
    .safety-filter-grid label {
        color: #23384f !important;
        font-size: 13px !important;
        font-weight: 740 !important;
        letter-spacing: 0 !important;
    }

    .report-note-box,
    .empty-state-note,
    .reset-help {
        border-radius: var(--radius) !important;
        border: 1px solid #cfe0ef !important;
        background: #f8fbfe !important;
        color: #28435c !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
    }

    .success-note {
        border-color: #b8dec8 !important;
        background: #f0faf4 !important;
        color: #145634 !important;
    }

    .warning-note {
        border-color: #f1d28a !important;
        background: #fff9eb !important;
        color: #74440f !important;
    }

    table {
        border-collapse: separate !important;
        border-spacing: 0 !important;
        background: #ffffff;
    }

    th,
    td,
    .report-table-wrap th,
    .report-table-wrap td,
    .architect-pack-table th,
    .architect-pack-table td,
    .programmer-admin-table th,
    .programmer-admin-table td {
        border-bottom: 1px solid #e3ebf3 !important;
        padding: 11px 12px !important;
        color: #20354b !important;
        font-size: 13px !important;
        line-height: 1.45 !important;
        letter-spacing: 0 !important;
    }

    th,
    .report-table-wrap th,
    .architect-pack-table th,
    .programmer-admin-table th {
        background: #f4f7fa !important;
        color: #465d75 !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
    }

    tr:hover,
    .report-table-wrap tr:hover {
        background: #f8fbfe !important;
    }

    .report-table-wrap {
        border-radius: var(--radius) !important;
        border-color: var(--border) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
    }

    .tv-summary-grid,
    .report-summary-grid {
        gap: 12px !important;
    }

    .tv-summary-card,
    .report-summary-card,
    .validation-pack-summary-card {
        border-radius: var(--radius) !important;
        padding: 18px !important;
        box-shadow: var(--shadow) !important;
        border: 1px solid rgba(255,255,255,0.28);
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.blue,
    .tv-summary-card.blue,
    .validation-pack-summary-card.blue {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.teal,
    .validation-pack-summary-card.teal {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.green,
    .validation-pack-summary-card.green {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.orange,
    .report-summary-card.amber,
    .validation-pack-summary-card.amber {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.red {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .report-summary-card.purple {
        background: var(--tv-summary-bg, linear-gradient(145deg, #10263c 0%, #173a52 100%)) !important;
    }

    .tv-summary-value,
    .report-summary-value {
        font-size: 28px !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
    }

    .tv-summary-label,
    .report-summary-label {
        font-size: 13px !important;
        line-height: 1.4 !important;
        letter-spacing: 0 !important;
    }

    .required-chip,
    .safety-pill,
    .dataset-domain-badge,
    .dataset-record-badge,
    .pill {
        border-radius: var(--radius) !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        letter-spacing: 0 !important;
    }

    .compare-section-title,
    .dataset-title,
    .section-label,
    .architect-pack-title {
        color: #122b43 !important;
        letter-spacing: 0 !important;
    }

    @media (max-width: 768px) {
        header {
            position: static;
            padding: 12px 14px !important;
        }

        header nav {
            justify-content: flex-start !important;
        }

        .container {
            width: min(calc(100% - 18px), 1560px) !important;
            margin: 12px auto 24px !important;
        }

        .card {
            padding: 16px !important;
        }
    }


    /* TrialVault executive polish foundation */
    :root {
        --tv-navy-950: #0b1828;
        --tv-navy-900: #10263c;
        --tv-navy-800: #173a52;
        --tv-teal-700: #155a6e;
        --tv-teal-600: #1d6f85;
        --font-base: 16px;
        --font-sm: 15px;
        --font-xs: 13px;
        --font-lg: 20px;
        --font-xl: 26px;
        --font-2xl: 34px;
        --tv-summary-bg: linear-gradient(145deg, #10263c 0%, #173a52 100%);
        --tv-summary-border: rgba(255, 255, 255, 0.18);
        --tv-status-surface: #eef4f8;
        --tv-status-border: #c9d8e6;
        --tv-status-text: #173a52;
        --tv-ink-strong: #101f32;
        --tv-ink: #20354b;
        --tv-muted-2: #61758b;
        --tv-line: #dbe5ee;
        --tv-line-strong: #c3d2e2;
        --tv-canvas: #f6f8fb;
        --tv-panel: #ffffff;
        --tv-radius: 8px;
        --tv-control-height: 42px;
        --tv-shadow-soft: 0 10px 26px rgba(16, 31, 50, 0.07);
        --tv-shadow-lift: 0 16px 38px rgba(16, 31, 50, 0.11);
    }

    .skip-link {
        position: fixed;
        top: 10px;
        left: 10px;
        z-index: 6000;
        transform: translateY(-140%);
        padding: 9px 12px;
        border-radius: var(--tv-radius);
        background: #ffffff;
        color: var(--tv-navy-900);
        border: 1px solid var(--tv-line-strong);
        box-shadow: var(--tv-shadow-lift);
        font-weight: 800;
        text-decoration: none;
    }

    .skip-link:focus {
        transform: translateY(0);
        outline: 3px solid rgba(29, 111, 133, 0.22);
    }

    #main-content:focus {
        outline: none;
    }

    body {
        background:
            linear-gradient(180deg, #f8fafc 0%, #f6f8fb 34%, #eef3f7 100%) !important;
        font-size: var(--font-base) !important;
        line-height: 1.62 !important;
        text-rendering: optimizeLegibility;
        -webkit-font-smoothing: antialiased;
    }

    header {
        background:
            linear-gradient(90deg, var(--tv-navy-950) 0%, var(--tv-navy-800) 54%, var(--tv-teal-700) 100%) !important;
        box-shadow: 0 14px 34px rgba(8, 22, 36, 0.24) !important;
        backdrop-filter: saturate(1.1) blur(8px);
    }

    .trialvault-logo-mark {
        background: linear-gradient(180deg, #ffffff 0%, #f0f5f9 100%) !important;
        color: var(--tv-navy-900) !important;
        border: 1px solid rgba(255, 255, 255, 0.72);
    }

    header nav > a,
    .environment-dropdown summary {
        min-height: 36px !important;
        border-color: rgba(255, 255, 255, 0.14) !important;
        background: rgba(255, 255, 255, 0.07) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    header nav > a:hover,
    .environment-dropdown summary:hover,
    .environment-dropdown[open] summary {
        background: rgba(255, 255, 255, 0.15) !important;
        border-color: rgba(255, 255, 255, 0.28) !important;
        text-decoration: none !important;
    }

    .environment-dropdown-menu {
        overflow: hidden;
    }

    .environment-dropdown-item {
        transition: background-color 0.16s ease, border-color 0.16s ease;
    }

    .container {
        width: min(calc(100% - 28px), 1600px) !important;
    }

    .card,
    .panel,
    .architect-pack-card,
    .report-playbook-card,
    .compare-section-card,
    .auth-card,
    .selected-report-card,
    .cas-suite-header,
    .cas-suite-context,
    .cas-suite-step,
    .cas-suite-card,
    .dashboard-document-link,
    .dashboard-document-empty {
        border-radius: var(--tv-radius) !important;
        border-color: var(--tv-line) !important;
        box-shadow: var(--tv-shadow-soft) !important;
    }

    .card {
        position: relative;
        overflow: clip;
        padding: 24px !important;
    }

    .card:hover,
    .cas-suite-step:hover,
    .cas-suite-card:hover,
    .dashboard-document-link:hover {
        box-shadow: var(--tv-shadow-lift) !important;
    }

    .tv-page-heading,
    .card > h1:first-child,
    .card > h2:first-child {
        padding-bottom: 12px;
        border-bottom: 1px solid #edf2f7;
        margin-bottom: 18px !important;
    }

    h1,
    h2,
    h3 {
        color: var(--tv-ink-strong) !important;
        text-wrap: balance;
    }

    h1 {
        font-size: var(--font-2xl) !important;
        font-weight: 840 !important;
        line-height: 1.14 !important;
    }

    h2 {
        font-size: var(--font-xl) !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    h3 {
        font-size: var(--font-lg) !important;
        font-weight: 780 !important;
        line-height: 1.25 !important;
    }

    .subtitle {
        max-width: 980px;
        font-size: var(--font-sm) !important;
        line-height: 1.65 !important;
    }

    button,
    .btn,
    .dataset-button,
    .dataset-download-button,
    .report-download-button,
    .report-action-button,
    .report-export-button,
    .architect-link-button,
    .architect-build-button,
    .architect-secondary-button,
    .safety-button-link,
    .programmer-admin-link,
    .secondary-action-button {
        min-height: var(--tv-control-height) !important;
        padding: 9px 15px !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        font-size: 15px !important;
        line-height: 1.2 !important;
        white-space: nowrap;
    }

    .page-level-actions,
    .selected-report-actions,
    .report-filter-actions {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    .page-level-actions form,
    .selected-report-actions form,
    .report-filter-actions form {
        margin: 0 !important;
    }

    button:focus-visible,
    a:focus-visible,
    summary:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid rgba(29, 111, 133, 0.22) !important;
        outline-offset: 2px !important;
    }

    input,
    select,
    textarea {
        min-height: var(--tv-control-height) !important;
        font-size: 15px !important;
    }

    textarea {
        resize: vertical;
    }

    .report-filter-grid,
    .report-selector-grid,
    .field-grid {
        align-items: end;
    }

    .report-table-wrap {
        background: #ffffff !important;
        scrollbar-width: thin;
        scrollbar-color: #b9c9d8 #eef3f7;
    }

    .report-table-wrap table {
        min-width: 980px;
    }

    .report-table-wrap th {
        position: sticky;
        top: 0;
        z-index: 1;
        background: #f6f8fb !important;
    }

    .report-table-wrap td:first-child,
    .report-table-wrap th:first-child {
        border-left: 0;
    }

    .tv-summary-card,
    .report-summary-card,
    .validation-pack-summary-card {
        min-height: 106px;
        background: var(--tv-summary-bg) !important;
    }

    .tv-summary-card:nth-child(2n),
    .report-summary-card:nth-child(2n) {
        background: var(--tv-summary-bg) !important;
    }

    .tv-summary-card:nth-child(3n),
    .report-summary-card:nth-child(3n) {
        background: var(--tv-summary-bg) !important;
    }

    .tv-summary-card:nth-child(4n),
    .report-summary-card:nth-child(4n) {
        background: var(--tv-summary-bg) !important;
    }

    .tv-summary-card-link {
        cursor: pointer;
    }

    .tv-summary-card-link:focus-visible {
        outline: 3px solid rgba(29, 111, 133, 0.24);
        outline-offset: 3px;
    }

    .dashboard-action-list {
        font-size: 16px !important;
        line-height: 1.7 !important;
        color: var(--tv-ink) !important;
    }

    .dashboard-document-title {
        font-size: 18px !important;
        color: var(--tv-navy-800) !important;
    }

    .dashboard-document-copy,
    .dashboard-document-empty {
        font-size: 15px !important;
        color: var(--tv-muted-2) !important;
    }

    .cas-suite-step,
    .cas-suite-card,
    .dashboard-document-link {
        transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
    }

    .cas-suite-step:hover,
    .cas-suite-card:hover,
    .dashboard-document-link:hover {
        transform: translateY(-1px);
    }

    .required-chip,
    .safety-pill,
    .dataset-domain-badge,
    .dataset-record-badge,
    .pill,
    .support-line span {
        border-radius: var(--tv-radius) !important;
    }

    .empty-state-note,
    .report-note-box,
    .reports-access-message,
    .reset-help,
    .success-note,
    .warning-note {
        border-radius: var(--tv-radius) !important;
    }

    /* TrialVault uniform enterprise palette */
    [class*="summary-card"] {
        background: var(--tv-summary-bg) !important;
        border-color: var(--tv-summary-border) !important;
        color: #ffffff !important;
    }

    [class*="summary-card"]::after {
        display: none !important;
    }

    [class*="summary-card"].blue,
    [class*="summary-card"].teal,
    [class*="summary-card"].green,
    [class*="summary-card"].amber,
    [class*="summary-card"].orange,
    [class*="summary-card"].red,
    [class*="summary-card"].purple,
    [class*="summary-card"].slate,
    [class*="summary-card"].edc-blue,
    [class*="summary-card"][class*="tone-"],
    [class*="summary-card"]:nth-child(2n),
    [class*="summary-card"]:nth-child(3n),
    [class*="summary-card"]:nth-child(4n) {
        background: var(--tv-summary-bg) !important;
    }

    [class*="summary-card"] *,
    [class*="summary-card"] .tv-summary-value,
    [class*="summary-card"] .tv-summary-label,
    [class*="summary-card"] .report-summary-value,
    [class*="summary-card"] .report-summary-label {
        color: #ffffff !important;
        letter-spacing: 0 !important;
    }

    .tv-summary-value,
    .report-summary-value {
        font-size: 31px !important;
        font-weight: 850 !important;
        line-height: 1.08 !important;
    }

    .tv-summary-label,
    .report-summary-label {
        font-size: 15px !important;
        line-height: 1.45 !important;
        font-weight: 720 !important;
    }

    a[class*="button"],
    button[class*="button"],
    .danger-button {
        background: linear-gradient(180deg, var(--tv-teal-600) 0%, var(--tv-teal-700) 100%) !important;
        border-color: rgba(21, 90, 110, 0.18) !important;
        color: #ffffff !important;
        box-shadow: 0 8px 18px rgba(21, 90, 110, 0.16) !important;
        text-decoration: none !important;
    }

    a[class*="button"][class*="secondary"],
    button[class*="button"][class*="secondary"],
    a[class*="button"][class*="ghost"],
    button[class*="button"][class*="ghost"],
    .secondary-button {
        background: #ffffff !important;
        border-color: var(--tv-line-strong) !important;
        color: var(--tv-status-text) !important;
        box-shadow: 0 6px 14px rgba(18, 32, 52, 0.06) !important;
    }

    a[class*="button"][class*="accent"],
    button[class*="button"][class*="accent"],
    a[class*="button"][class*="reset"],
    button[class*="button"][class*="reset"],
    .danger-button {
        background: linear-gradient(180deg, var(--tv-navy-800) 0%, var(--tv-navy-900) 100%) !important;
        border-color: rgba(16, 38, 60, 0.2) !important;
        color: #ffffff !important;
    }

    .badge,
    .status-pill,
    .report-status-badge,
    .report-table-badge,
    .coding-status-badge,
    .dm-metrics-badge,
    .promotion-badge,
    .delivery-badge,
    .readiness-badge,
    .audit-pill,
    .safety-pill,
    .required-chip,
    .dataset-domain-badge,
    .dataset-record-badge,
    .dataset-loaded-badge,
    .source-document-chip,
    .tv-inline-query-chip,
    .tv-form-workflow-badge,
    .programmer-admin-role-chip,
    .training-admin-role-chip,
    .integration-chip,
    .policy-chip,
    .extval-meta-chip,
    .delivery-summary-chip,
    .local-lab-change-pill,
    .local-lab-status,
    .extval-status-pill,
    .recovery-status-pill,
    .perfval-status-pill,
    .architect-status-value {
        background: var(--tv-status-surface) !important;
        border-color: var(--tv-status-border) !important;
        color: var(--tv-status-text) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.68) !important;
        letter-spacing: 0 !important;
    }

    .status-pill.soft,
    .status-pill.hard,
    .status-pill.review,
    .status-pill.trigger,
    .dm-metrics-badge.dm-tone-blue,
    .dm-metrics-badge.dm-tone-teal,
    .dm-metrics-badge.dm-tone-orange,
    .dm-metrics-badge.dm-tone-red,
    .dm-metrics-badge.dm-tone-purple,
    span[class*="badge"][class*="blue"],
    span[class*="badge"][class*="teal"],
    span[class*="badge"][class*="green"],
    span[class*="badge"][class*="amber"],
    span[class*="badge"][class*="orange"],
    span[class*="badge"][class*="red"],
    span[class*="badge"][class*="purple"],
    span[class*="pill"][class*="soft"],
    span[class*="pill"][class*="hard"],
    span[class*="pill"][class*="review"],
    span[class*="pill"][class*="trigger"],
    span[class*="pill"][class*="pending"],
    span[class*="pill"][class*="closed"],
    span[class*="pill"][class*="answered"] {
        background: var(--tv-status-surface) !important;
        border-color: var(--tv-status-border) !important;
        color: var(--tv-status-text) !important;
    }

    .alert,
    .alert.error,
    .alert.success,
    .success-note,
    .warning-note,
    .empty-state-note,
    .report-note-box,
    .reports-access-message,
    .reset-help {
        background: #f7fafc !important;
        border-color: var(--tv-line-strong) !important;
        color: var(--tv-status-text) !important;
    }

    p,
    li,
    .empty-state-note,
    .report-note-box,
    .reports-access-message,
    .reset-help {
        font-size: 15px !important;
        line-height: 1.68 !important;
    }

    th,
    td,
    .report-table-wrap th,
    .report-table-wrap td,
    .architect-pack-table th,
    .architect-pack-table td,
    .programmer-admin-table th,
    .programmer-admin-table td {
        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    th,
    .report-table-wrap th,
    .architect-pack-table th,
    .programmer-admin-table th {
        font-size: 13px !important;
        font-weight: 840 !important;
    }

    .dm-graph-blue,
    .dm-graph-teal,
    .dm-graph-orange,
    .dm-graph-red,
    .dm-graph-purple {
        background: var(--tv-teal-700) !important;
    }

    @supports (content-visibility: auto) {
        .card,
        .report-table-wrap {
            content-visibility: auto;
            contain-intrinsic-size: auto 260px;
        }

        header,
        .card:first-child,
        .card:has(form),
        .card:has(input),
        .card:has(textarea),
        .card:has(select) {
            content-visibility: visible;
            contain-intrinsic-size: auto;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
            transition-duration: 0.001ms !important;
            animation-duration: 0.001ms !important;
            scroll-behavior: auto !important;
        }
    }

    @media (max-width: 900px) {
        header {
            position: static !important;
        }

        header nav > a,
        .environment-dropdown summary {
            flex: 1 1 auto;
        }

        .environment-dropdown {
            width: 100%;
        }

        .environment-dropdown-menu {
            position: static !important;
            margin-top: 8px;
            min-width: 0 !important;
            width: 100%;
        }

        .tv-page-heading,
        .card > h1:first-child,
        .card > h2:first-child {
            padding-bottom: 8px;
        }
    }

    @media (max-width: 620px) {
        .container {
            width: min(calc(100% - 16px), 1600px) !important;
        }

        button,
        .btn,
        .dataset-button,
        .dataset-download-button,
        .report-download-button,
        .report-action-button,
        .report-export-button,
        .architect-link-button,
        .architect-build-button,
        .architect-secondary-button,
        .safety-button-link,
        .programmer-admin-link,
        .secondary-action-button {
            width: 100%;
            white-space: normal;
        }

        .page-level-actions,
        .selected-report-actions,
        .report-filter-actions {
            display: grid !important;
            grid-template-columns: 1fr !important;
        }
    }

    /*
       TRIALVAULT LOCKED FONT BASELINE - 2026-06-12
       Typography-only lock. Keep this block at the end of base.html styles so
       later page updates do not shrink the approved enterprise font baseline.
       No workflow, route, permission, form action, or data behavior is changed here.
    */
    :root {
        --font-base: 17px;
        --font-sm: 16px;
        --font-xs: 14px;
        --font-lg: 22px;
        --font-xl: 28px;
        --font-2xl: 36px;
        --tv-control-height: 44px;
    }

    body {
        font-size: var(--font-base) !important;
        line-height: 1.66 !important;
    }

    .trialvault-brand-text strong {
        font-size: 23px !important;
        line-height: 1.05 !important;
    }

    .trialvault-brand-text span {
        font-size: 14px !important;
    }

    header .tagline {
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    header nav {
        gap: 10px !important;
    }

    header nav > a,
    .environment-dropdown summary {
        min-height: 40px !important;
        padding: 9px 13px !important;
        font-size: 17px !important;
        line-height: 1.2 !important;
    }

    .header-study-switcher,
    .header-language-switcher {
        font-size: 16px !important;
        gap: 8px !important;
    }

    .header-study-switcher label,
    .header-language-switcher label {
        font-size: 15px !important;
    }

    .header-study-switcher select,
    .header-language-switcher select {
        min-height: 40px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
    }

    .role-indicator {
        font-size: 16px !important;
    }

    .environment-dropdown-menu {
        min-width: 460px !important;
        padding: 12px !important;
    }

    .environment-dropdown-item {
        padding: 14px 16px !important;
        gap: 6px !important;
    }

    .environment-dropdown-label {
        font-size: 18px !important;
        line-height: 1.25 !important;
        font-weight: 850 !important;
    }

    .environment-dropdown-url {
        font-size: 16px !important;
        line-height: 1.45 !important;
        font-weight: 650 !important;
    }

    h1 {
        font-size: var(--font-2xl) !important;
        line-height: 1.14 !important;
    }

    h2 {
        font-size: var(--font-xl) !important;
        line-height: 1.2 !important;
    }

    h3 {
        font-size: var(--font-lg) !important;
        line-height: 1.25 !important;
    }

    .subtitle,
    p,
    li,
    label,
    .empty-state-note,
    .report-note-box,
    .reports-access-message,
    .reset-help {
        font-size: 16px !important;
        line-height: 1.68 !important;
    }

    button,
    .btn,
    .dataset-button,
    .dataset-download-button,
    .report-download-button,
    .report-action-button,
    .report-export-button,
    .architect-link-button,
    .architect-build-button,
    .architect-secondary-button,
    .safety-button-link,
    .programmer-admin-link,
    .secondary-action-button {
        min-height: var(--tv-control-height) !important;
        padding: 10px 16px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
    }

    input,
    select,
    textarea {
        min-height: var(--tv-control-height) !important;
        font-size: 16px !important;
        line-height: 1.35 !important;
    }

    th,
    td,
    .report-table-wrap th,
    .report-table-wrap td,
    .architect-pack-table th,
    .architect-pack-table td,
    .programmer-admin-table th,
    .programmer-admin-table td {
        font-size: 15px !important;
        line-height: 1.58 !important;
    }

    th,
    .report-table-wrap th,
    .architect-pack-table th,
    .programmer-admin-table th {
        font-size: 14px !important;
    }

    .tv-summary-value,
    .report-summary-value {
        font-size: 34px !important;
    }

    .tv-summary-label,
    .report-summary-label,
    .dashboard-document-copy,
    .dashboard-document-empty {
        font-size: 16px !important;
    }

    .dashboard-action-list,
    .dashboard-document-title {
        font-size: 18px !important;
    }

    /*
       TRIALVAULT ENTERPRISE DROPDOWN + NAVIGATION POLISH - 2026-06-24
       CSS-only refinement. No form names, option values, routes, RBAC,
       validation rules, edit checks, or application logic are changed.
    */
    :root {
        --tv-select-height: 46px;
        --tv-select-radius: 8px;
        --tv-select-border: #b8c8d8;
        --tv-select-border-hover: #7e9bb6;
        --tv-select-focus: #1d6f85;
        --tv-select-text: #122034;
        --tv-select-bg-top: #ffffff;
        --tv-select-bg-bottom: #f7fafc;
        --tv-select-shadow: inset 0 1px 0 rgba(255,255,255,0.85), 0 1px 2px rgba(18,32,52,0.06);
    }

    select,
    .architect-inline-select,
    .dataset-format-select,
    .report-filter-grid select,
    .programmer-admin-form-grid select,
    .training-form-grid select,
    .training-admin-form-grid select,
    .safety-filter-grid select,
    .mapping-three-column-row select,
    .saved-setup-form select,
    .subject-workspace-main select,
    .field-input-stack select {
        min-height: var(--tv-select-height) !important;
        max-width: 100% !important;
        border: 1px solid var(--tv-select-border) !important;
        border-radius: var(--tv-select-radius) !important;
        padding: 10px 42px 10px 14px !important;
        color: var(--tv-select-text) !important;
        background-color: #ffffff !important;
        background-image:
            linear-gradient(180deg, var(--tv-select-bg-top), var(--tv-select-bg-bottom)),
            linear-gradient(45deg, transparent 50%, #34516b 50%),
            linear-gradient(135deg, #34516b 50%, transparent 50%),
            linear-gradient(180deg, #d9e3ec, #d9e3ec) !important;
        background-position:
            0 0,
            calc(100% - 20px) calc(50% - 3px),
            calc(100% - 14px) calc(50% - 3px),
            calc(100% - 34px) 50% !important;
        background-size:
            100% 100%,
            6px 6px,
            6px 6px,
            1px 22px !important;
        background-repeat: no-repeat !important;
        box-shadow: var(--tv-select-shadow) !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        -moz-appearance: none !important;
        font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif !important;
        font-size: 15px !important;
        font-weight: 650 !important;
        line-height: 1.25 !important;
        letter-spacing: 0 !important;
        transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease !important;
    }

    select:hover,
    .architect-inline-select:hover,
    .dataset-format-select:hover,
    .report-filter-grid select:hover,
    .programmer-admin-form-grid select:hover,
    .training-form-grid select:hover,
    .training-admin-form-grid select:hover,
    .safety-filter-grid select:hover,
    .mapping-three-column-row select:hover,
    .saved-setup-form select:hover,
    .subject-workspace-main select:hover,
    .field-input-stack select:hover {
        border-color: var(--tv-select-border-hover) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.9), 0 2px 7px rgba(18,32,52,0.10) !important;
    }

    select:focus,
    .architect-inline-select:focus,
    .dataset-format-select:focus,
    .report-filter-grid select:focus,
    .programmer-admin-form-grid select:focus,
    .training-form-grid select:focus,
    .training-admin-form-grid select:focus,
    .safety-filter-grid select:focus,
    .mapping-three-column-row select:focus,
    .saved-setup-form select:focus,
    .subject-workspace-main select:focus,
    .field-input-stack select:focus {
        outline: none !important;
        border-color: var(--tv-select-focus) !important;
        box-shadow: 0 0 0 3px rgba(29,111,133,0.18), inset 0 1px 0 rgba(255,255,255,0.9) !important;
    }

    select:disabled {
        color: #6b7d90 !important;
        border-color: #cbd5df !important;
        background-image:
            linear-gradient(180deg, #f1f5f8, #e8eef4),
            linear-gradient(45deg, transparent 50%, #7c8fa1 50%),
            linear-gradient(135deg, #7c8fa1 50%, transparent 50%),
            linear-gradient(180deg, #cbd5df, #cbd5df) !important;
        cursor: not-allowed !important;
        box-shadow: none !important;
    }

    select option {
        color: #122034 !important;
        background: #ffffff !important;
        font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        letter-spacing: 0 !important;
    }

    .header-study-switcher select,
    .header-language-switcher select {
        min-height: 42px !important;
        border-color: rgba(255,255,255,0.28) !important;
        color: #ffffff !important;
        background-color: rgba(255,255,255,0.12) !important;
        background-image:
            linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.10)),
            linear-gradient(45deg, transparent 50%, #ffffff 50%),
            linear-gradient(135deg, #ffffff 50%, transparent 50%),
            linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0.22)) !important;
        background-position:
            0 0,
            calc(100% - 20px) calc(50% - 3px),
            calc(100% - 14px) calc(50% - 3px),
            calc(100% - 34px) 50% !important;
        background-size:
            100% 100%,
            6px 6px,
            6px 6px,
            1px 22px !important;
        background-repeat: no-repeat !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 1px 8px rgba(0,0,0,0.12) !important;
        font-size: 15px !important;
        font-weight: 750 !important;
    }

    .header-study-switcher select:hover,
    .header-language-switcher select:hover,
    .header-study-switcher select:focus,
    .header-language-switcher select:focus {
        border-color: rgba(255,255,255,0.48) !important;
        box-shadow: 0 0 0 3px rgba(255,255,255,0.14), inset 0 1px 0 rgba(255,255,255,0.18) !important;
    }

    .header-study-switcher select option,
    .header-language-switcher select option {
        color: #122034 !important;
        background: #ffffff !important;
        font-size: 15px !important;
        font-weight: 600 !important;
    }

    .environment-dropdown summary {
        border-radius: 8px !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.10) !important;
    }

    .environment-dropdown-menu {
        border-radius: 8px !important;
        border: 1px solid rgba(196,211,226,0.95) !important;
        background: rgba(255,255,255,0.98) !important;
        box-shadow: 0 18px 44px rgba(10,24,38,0.22) !important;
    }

    .environment-dropdown-item {
        border-radius: 8px !important;
        transition: background-color 0.14s ease, border-color 0.14s ease !important;
    }

    .environment-dropdown-item:hover {
        background: #f4f8fb !important;
        border-color: #b8c8d8 !important;
    }

    .environment-dropdown-label {
        letter-spacing: 0 !important;
    }

    .environment-dropdown-url {
        letter-spacing: 0 !important;
    }

    /*
       TRIALVAULT FULL EDC SURFACE POLISH - 2026-06-24
       CSS-only enterprise shell normalization. This intentionally does not
       change route definitions, form actions, field names, option values,
       edit-check logic, validation rules, RBAC, SDTM logic, or save behavior.
    */
    :root {
        --tv-page-gutter: 18px;
        --tv-page-max: 1880px;
        --tv-radius-uniform: 8px;
        --tv-font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif;
        --tv-text-strong: #122034;
        --tv-text-body: #24384f;
        --tv-text-muted: #52677d;
        --tv-surface: #ffffff;
        --tv-surface-soft: #f7fafc;
        --tv-line: #d9e3ec;
        --tv-line-strong: #b8c8d8;
        --tv-action: #145c70;
        --tv-action-dark: #0f4c5f;
        --tv-action-secondary: #ffffff;
        --tv-action-secondary-text: #17324a;
    }

    body {
        font-family: var(--tv-font-family) !important;
        font-size: 15px !important;
        line-height: 1.55 !important;
        color: var(--tv-text-body) !important;
        background: #f4f7fb !important;
    }

    .container {
        width: min(calc(100vw - var(--tv-page-gutter) * 2), var(--tv-page-max)) !important;
        max-width: none !important;
        margin: 12px auto 28px !important;
        padding: 0 !important;
    }

    @media (min-width: 1280px) {
        .container {
            width: calc(100vw - 28px) !important;
        }
    }

    .card,
    .auth-card,
    .architect-page .card,
    .programmer-admin-shell,
    .report-panel,
    .report-card,
    .dataset-panel,
    .analytics-card,
    .subject-workspace-main .card {
        border-radius: var(--tv-radius-uniform) !important;
        border: 1px solid var(--tv-line) !important;
        box-shadow: 0 8px 24px rgba(18,32,52,0.07) !important;
        background: var(--tv-surface) !important;
    }

    .card,
    .architect-page .card,
    .programmer-admin-shell,
    .report-panel,
    .report-card,
    .dataset-panel {
        padding: 20px !important;
    }

    h1,
    .card > h1:first-child {
        color: var(--tv-text-strong) !important;
        font-size: 28px !important;
        font-weight: 780 !important;
        line-height: 1.18 !important;
        margin: 0 0 10px !important;
        letter-spacing: 0 !important;
    }

    h2,
    .card > h2:first-child,
    .architect-programming-copy h2,
    .architect-left-panel h2,
    .architect-right-panel h2 {
        color: var(--tv-text-strong) !important;
        font-size: 20px !important;
        font-weight: 760 !important;
        line-height: 1.25 !important;
        margin: 0 0 10px !important;
        letter-spacing: 0 !important;
    }

    h3,
    .architect-upload-block h3,
    .architect-source-pack-column h3,
    .programmer-admin-shell h3 {
        color: var(--tv-text-strong) !important;
        font-size: 16px !important;
        font-weight: 750 !important;
        line-height: 1.3 !important;
        margin: 0 0 8px !important;
        letter-spacing: 0 !important;
    }

    p,
    li,
    label,
    .subtitle,
    .architect-page .subtitle,
    .architect-panel-note,
    .architect-upload-help,
    .architect-amendment-note,
    .report-note-box,
    .empty-state-note,
    .reports-access-message,
    .dashboard-document-copy,
    .dashboard-document-empty {
        color: var(--tv-text-muted) !important;
        font-size: 14px !important;
        line-height: 1.55 !important;
        letter-spacing: 0 !important;
    }

    label,
    .architect-tool-picker,
    .report-filter-grid label,
    .programmer-admin-form-grid label,
    .training-form-grid label,
    .training-admin-form-grid label,
    .saved-setup-form label {
        color: #24384f !important;
        font-size: 13px !important;
        font-weight: 720 !important;
    }

    button,
    input[type="submit"],
    input[type="button"],
    .btn,
    .primary-button,
    .secondary-button,
    .ghost-link,
    .dataset-button,
    .dataset-download-button,
    .dataset-download-secondary,
    .report-download-button,
    .report-action-button,
    .report-export-button,
    .architect-link-button,
    .architect-build-button,
    .architect-secondary-button,
    .architect-programming-link,
    .architect-pack-download,
    .safety-button-link,
    .programmer-admin-link,
    .secondary-action-button,
    .source-upload-form button,
    .tv-query-response-button,
    .tv-query-close-button,
    .tv-query-reopen-button,
    .gear-menu button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        max-width: 100% !important;
        min-height: 38px !important;
        padding: 9px 14px !important;
        border-radius: var(--tv-radius-uniform) !important;
        border: 1px solid rgba(15,76,95,0.95) !important;
        background: linear-gradient(180deg, var(--tv-action) 0%, var(--tv-action-dark) 100%) !important;
        color: #ffffff !important;
        box-shadow: 0 5px 12px rgba(15,76,95,0.16) !important;
        font-family: var(--tv-font-family) !important;
        font-size: 14px !important;
        font-weight: 720 !important;
        line-height: 1.2 !important;
        text-decoration: none !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
        cursor: pointer !important;
        transition: border-color 0.14s ease, box-shadow 0.14s ease, background-color 0.14s ease !important;
    }

    button:hover,
    input[type="submit"]:hover,
    input[type="button"]:hover,
    .btn:hover,
    .primary-button:hover,
    .secondary-button:hover,
    .ghost-link:hover,
    .dataset-button:hover,
    .dataset-download-button:hover,
    .report-download-button:hover,
    .report-action-button:hover,
    .report-export-button:hover,
    .architect-link-button:hover,
    .architect-build-button:hover,
    .architect-secondary-button:hover,
    .architect-programming-link:hover,
    .architect-pack-download:hover,
    .safety-button-link:hover,
    .programmer-admin-link:hover,
    .secondary-action-button:hover {
        transform: none !important;
        box-shadow: 0 7px 16px rgba(15,76,95,0.20) !important;
    }

    .secondary-button,
    .ghost-link,
    .dataset-download-secondary,
    .report-download-button-secondary,
    .architect-secondary-button,
    .architect-pack-download,
    .programmer-admin-link.secondary,
    .secondary-action-button,
    button.secondary,
    .btn.light {
        background: var(--tv-action-secondary) !important;
        color: var(--tv-action-secondary-text) !important;
        border-color: var(--tv-line-strong) !important;
        box-shadow: 0 3px 9px rgba(18,32,52,0.07) !important;
    }

    button:disabled,
    .architect-build-button:disabled,
    .architect-secondary-button:disabled,
    .primary-button:disabled,
    .secondary-button:disabled {
        background: #d8e0e8 !important;
        color: #74869a !important;
        border-color: #c7d2dd !important;
        box-shadow: none !important;
        cursor: not-allowed !important;
    }

    input,
    select,
    textarea {
        min-height: 40px !important;
        border-radius: var(--tv-radius-uniform) !important;
        font-family: var(--tv-font-family) !important;
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    th,
    td,
    .report-table-wrap th,
    .report-table-wrap td,
    .architect-pack-table th,
    .architect-pack-table td,
    .programmer-admin-table th,
    .programmer-admin-table td {
        padding: 9px 10px !important;
        font-size: 13px !important;
        line-height: 1.45 !important;
        letter-spacing: 0 !important;
    }

    th,
    .report-table-wrap th,
    .architect-pack-table th,
    .programmer-admin-table th {
        background: #f3f7fa !important;
        color: #40566d !important;
        font-size: 12px !important;
        font-weight: 760 !important;
    }

    .architect-programming-panel,
    .architect-deliverable-panel {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(240px, 300px) !important;
        align-items: center !important;
        gap: 16px !important;
        margin: 16px 0 !important;
        padding: 16px !important;
        border-radius: var(--tv-radius-uniform) !important;
        background: var(--tv-surface-soft) !important;
    }

    .architect-programming-actions {
        justify-content: end !important;
        gap: 10px !important;
    }

    .architect-tool-picker {
        min-width: 0 !important;
        width: 100% !important;
    }

    .architect-programming-link {
        min-width: 0 !important;
        width: auto !important;
    }

    .architect-intake-layout {
        grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr) !important;
        gap: 18px !important;
        margin-top: 18px !important;
    }

    .architect-upload-block,
    .architect-pack-card,
    .architect-history-banner > div,
    .architect-pack-empty {
        border-radius: var(--tv-radius-uniform) !important;
        padding: 14px !important;
    }

    .architect-upload-form {
        gap: 10px !important;
    }

    .architect-upload-form input[type="file"] {
        font-size: 14px !important;
    }

    .architect-post-build-actions,
    .page-level-actions,
    .selected-report-actions,
    .report-filter-actions,
    .programmer-admin-action-row {
        gap: 10px !important;
    }

    @media (max-width: 980px) {
        .architect-programming-panel,
        .architect-deliverable-panel,
        .architect-intake-layout {
            grid-template-columns: 1fr !important;
        }
    }

    /*
       TRIALVAULT HEADER + READABILITY POLISH - 2026-06-24
       Final visual-only overlay for larger enterprise typography and a shorter
       protocol-only study selector display. No route, value, RBAC, or workflow
       behavior is changed by this CSS block.
    */
    :root {
        --tv-font-base-readable: 16px;
        --tv-font-small-readable: 15px;
        --tv-font-control-readable: 16px;
        --tv-font-nav-readable: 16px;
        --tv-font-h1-readable: 32px;
        --tv-font-h2-readable: 24px;
        --tv-font-h3-readable: 19px;
    }

    body {
        font-size: var(--tv-font-base-readable) !important;
        line-height: 1.6 !important;
    }

    header {
        min-height: 88px !important;
        padding: 16px 20px !important;
    }

    header nav {
        gap: 12px !important;
        row-gap: 10px !important;
    }

    .trialvault-logo-mark {
        width: 48px !important;
        height: 48px !important;
    }

    .trialvault-logo-mark svg {
        width: 36px !important;
        height: 36px !important;
    }

    .trialvault-brand-text strong {
        font-size: 26px !important;
        line-height: 1.05 !important;
    }

    .trialvault-brand-text span {
        font-size: 15px !important;
        line-height: 1.2 !important;
    }

    header .tagline {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .header-study-switcher,
    .header-language-switcher {
        gap: 8px !important;
    }

    .header-study-switcher label,
    .header-language-switcher label {
        font-size: 15px !important;
        line-height: 1.2 !important;
    }

    .header-study-switcher select,
    .header-language-switcher select {
        min-height: 46px !important;
        padding: 10px 44px 10px 14px !important;
        font-size: 16px !important;
        font-weight: 760 !important;
        line-height: 1.25 !important;
    }

    .header-study-switcher select {
        min-width: 210px !important;
        max-width: 300px !important;
    }

    .header-language-switcher select {
        min-width: 138px !important;
        max-width: 190px !important;
    }

    header nav > a,
    .environment-dropdown summary {
        min-height: 46px !important;
        padding: 11px 15px !important;
        font-size: var(--tv-font-nav-readable) !important;
        font-weight: 760 !important;
        line-height: 1.2 !important;
    }

    .role-indicator {
        font-size: 15px !important;
        line-height: 1.35 !important;
    }

    h1,
    .card > h1:first-child {
        font-size: var(--tv-font-h1-readable) !important;
        line-height: 1.16 !important;
    }

    h2,
    .card > h2:first-child,
    .architect-programming-copy h2,
    .architect-left-panel h2,
    .architect-right-panel h2 {
        font-size: var(--tv-font-h2-readable) !important;
        line-height: 1.22 !important;
    }

    h3,
    .architect-upload-block h3,
    .architect-source-pack-column h3,
    .programmer-admin-shell h3 {
        font-size: var(--tv-font-h3-readable) !important;
        line-height: 1.28 !important;
    }

    p,
    li,
    label,
    .subtitle,
    .architect-page .subtitle,
    .architect-panel-note,
    .architect-upload-help,
    .architect-amendment-note,
    .report-note-box,
    .empty-state-note,
    .reports-access-message,
    .dashboard-document-copy,
    .dashboard-document-empty {
        font-size: var(--tv-font-base-readable) !important;
        line-height: 1.6 !important;
    }

    label,
    .architect-tool-picker,
    .report-filter-grid label,
    .programmer-admin-form-grid label,
    .training-form-grid label,
    .training-admin-form-grid label,
    .saved-setup-form label {
        font-size: var(--tv-font-small-readable) !important;
    }

    button,
    input[type="submit"],
    input[type="button"],
    .btn,
    .primary-button,
    .secondary-button,
    .ghost-link,
    .dataset-button,
    .dataset-download-button,
    .dataset-download-secondary,
    .report-download-button,
    .report-action-button,
    .report-export-button,
    .architect-link-button,
    .architect-build-button,
    .architect-secondary-button,
    .architect-programming-link,
    .architect-pack-download,
    .safety-button-link,
    .programmer-admin-link,
    .secondary-action-button,
    .source-upload-form button,
    .tv-query-response-button,
    .tv-query-close-button,
    .tv-query-reopen-button,
    .gear-menu button {
        min-height: 42px !important;
        padding: 10px 16px !important;
        font-size: var(--tv-font-control-readable) !important;
        line-height: 1.22 !important;
    }

    input,
    select,
    textarea {
        min-height: 44px !important;
        font-size: var(--tv-font-control-readable) !important;
        line-height: 1.4 !important;
    }

    th,
    td,
    .report-table-wrap th,
    .report-table-wrap td,
    .architect-pack-table th,
    .architect-pack-table td,
    .programmer-admin-table th,
    .programmer-admin-table td {
        font-size: 15px !important;
        line-height: 1.48 !important;
    }

    th,
    .report-table-wrap th,
    .architect-pack-table th,
    .programmer-admin-table th {
        font-size: 14px !important;
    }

    @media (max-width: 980px) {
        header {
            min-height: 0 !important;
        }

        .header-study-switcher select,
        .header-language-switcher select {
            max-width: min(100%, 360px) !important;
        }
    }

    /*
       TRIALVAULT ULTRA ENTERPRISE SHELL FINAL OVERRIDE - 2026-06-28
       This block intentionally comes after the legacy readability overlay so
       EDC headers render compact, smooth, and enterprise-grade at 100% zoom.
    */
    :root {
        --tv-shell-control-h: 34px;
        --tv-shell-font: 13px;
        --tv-shell-font-sm: 12px;
    }

    body {
        font-size: 14px !important;
        line-height: 1.48 !important;
        color: #122538 !important;
        background: #edf2f7 !important;
    }

    header {
        min-height: 72px !important;
        padding: 8px 14px !important;
        gap: 10px 14px !important;
        align-items: center !important;
        background: linear-gradient(100deg, #081d31 0%, #10364f 58%, #11586a 100%) !important;
        box-shadow: 0 12px 26px rgba(8, 29, 49, 0.22) !important;
    }

    header > div:first-child {
        flex: 0 1 330px !important;
        max-width: 360px !important;
    }

    .brand-row {
        gap: 8px !important;
        flex-wrap: nowrap !important;
    }

    .trialvault-logo-mark {
        width: 38px !important;
        height: 38px !important;
        border-radius: 8px !important;
    }

    .trialvault-logo-mark svg {
        width: 28px !important;
        height: 28px !important;
    }

    .trialvault-brand-text strong {
        font-size: 21px !important;
        line-height: 0.98 !important;
        font-weight: 850 !important;
    }

    .trialvault-brand-text span {
        font-size: 11px !important;
        line-height: 1.05 !important;
        font-weight: 850 !important;
    }

    header .tagline {
        margin-top: 3px !important;
        font-size: 11px !important;
        line-height: 1.2 !important;
        color: #d8e5ee !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    header nav {
        flex: 1 1 auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 7px !important;
        row-gap: 7px !important;
        padding: 0 !important;
    }

    .header-study-switcher,
    .header-language-switcher {
        gap: 5px !important;
        font-size: var(--tv-shell-font-sm) !important;
        line-height: 1 !important;
    }

    .header-study-switcher label,
    .header-language-switcher label {
        font-size: var(--tv-shell-font-sm) !important;
        line-height: 1 !important;
        font-weight: 900 !important;
        color: #f5f9fb !important;
    }

    .header-study-switcher select,
    .header-language-switcher select {
        min-height: var(--tv-shell-control-h) !important;
        height: var(--tv-shell-control-h) !important;
        border-radius: 7px !important;
        padding: 6px 30px 6px 11px !important;
        font-size: var(--tv-shell-font) !important;
        line-height: 1.1 !important;
        font-weight: 850 !important;
        background-color: rgba(255, 255, 255, 0.15) !important;
        border-color: rgba(255, 255, 255, 0.22) !important;
    }

    .header-study-switcher select {
        min-width: 178px !important;
        max-width: 214px !important;
    }

    .header-language-switcher select {
        min-width: 122px !important;
        max-width: 136px !important;
    }

    header nav > a,
    .environment-dropdown summary {
        min-height: var(--tv-shell-control-h) !important;
        height: var(--tv-shell-control-h) !important;
        padding: 7px 11px !important;
        border-radius: 7px !important;
        font-size: var(--tv-shell-font) !important;
        line-height: 1 !important;
        font-weight: 850 !important;
        background: rgba(255, 255, 255, 0.09) !important;
        border-color: rgba(255, 255, 255, 0.18) !important;
    }

    header nav > a:hover,
    .environment-dropdown summary:hover {
        background: rgba(255, 255, 255, 0.16) !important;
    }

    .environment-dropdown summary::after {
        margin-left: 5px !important;
        border-left-width: 4px !important;
        border-right-width: 4px !important;
        border-top-width: 5px !important;
    }

    .role-indicator {
        margin-left: 4px !important;
        font-size: 12px !important;
        line-height: 1.1 !important;
        color: #d9e7ef !important;
        white-space: nowrap !important;
    }

    .role-indicator strong {
        font-weight: 850 !important;
    }

    .container {
        width: calc(100% - 12px) !important;
        margin: 10px auto 20px !important;
    }

    h1,
    .card > h1:first-child {
        font-size: 24px !important;
        line-height: 1.14 !important;
        font-weight: 850 !important;
    }

    h2,
    .card > h2:first-child {
        font-size: 20px !important;
        line-height: 1.2 !important;
    }

    h3,
    .card > h3:first-child {
        font-size: 16px !important;
        line-height: 1.22 !important;
    }

    p,
    li,
    label,
    .subtitle {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }

    input,
    select,
    textarea {
        min-height: 36px !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    button,
    input[type="submit"],
    input[type="button"],
    .btn,
    .primary-button,
    .secondary-button,
    .report-download-button,
    .architect-link-button,
    .architect-build-button,
    .programmer-admin-link,
    .source-upload-form button,
    .tv-query-response-button,
    .tv-query-close-button,
    .tv-query-reopen-button,
    .gear-menu button {
        min-height: 34px !important;
        padding: 7px 12px !important;
        font-size: 13px !important;
        line-height: 1.15 !important;
    }

    @media (max-width: 1240px) {
        header > div:first-child {
            flex-basis: 270px !important;
            max-width: 300px !important;
        }

        header .tagline {
            max-width: 270px !important;
        }

        .header-study-switcher select {
            min-width: 150px !important;
            max-width: 178px !important;
        }

        .header-language-switcher select {
            min-width: 108px !important;
            max-width: 118px !important;
        }

        header nav > a,
        .environment-dropdown summary {
            padding-left: 9px !important;
            padding-right: 9px !important;
        }
    }

    /*
       TRIALVAULT HEADER TOP ALIGNMENT FINAL OVERRIDE - 2026-06-28
       Pulls the enterprise toolbar upward and prevents the nav from dropping
       below the brand on desktop-width EDC pages.
    */
    header {
        min-height: 60px !important;
        padding: 4px 12px 6px !important;
        align-items: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 8px 12px !important;
    }

    header > div:first-child {
        flex: 0 0 316px !important;
        max-width: 316px !important;
        padding-top: 2px !important;
    }

    .trialvault-logo-mark {
        width: 34px !important;
        height: 34px !important;
    }

    .trialvault-logo-mark svg {
        width: 25px !important;
        height: 25px !important;
    }

    .trialvault-brand-text strong {
        font-size: 20px !important;
    }

    .trialvault-brand-text span,
    header .tagline {
        font-size: 10px !important;
    }

    header .tagline {
        margin-top: 1px !important;
        max-width: 306px !important;
    }

    header nav {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        align-self: flex-start !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
        row-gap: 6px !important;
    }

    .header-study-switcher select,
    .header-language-switcher select,
    header nav > a,
    .environment-dropdown summary {
        min-height: 32px !important;
        height: 32px !important;
    }

    header nav > a,
    .environment-dropdown summary {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    @media (max-width: 980px) {
        header {
            flex-wrap: wrap !important;
        }

        header > div:first-child {
            flex: 1 1 100% !important;
            max-width: none !important;
        }
    }

    /*
       TRIALVAULT ENTERPRISE TYPOGRAPHY LOCK - 2026-06-29
       Keeps all EDC roles and pages on one controlled type scale.
    */
    :root {
        --tv-enterprise-font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif;
        --tv-type-body: 14px;
        --tv-type-control: 13px;
        --tv-type-label: 12px;
        --tv-type-title: 24px;
        --tv-type-section: 18px;
        --tv-type-subsection: 16px;
        --tv-type-small: 12px;
    }

    html,
    body,
    main,
    header,
    input,
    select,
    textarea,
    button {
        font-family: var(--tv-enterprise-font-family) !important;
        letter-spacing: 0 !important;
        text-rendering: optimizeLegibility;
        -webkit-font-smoothing: antialiased;
    }

    body,
    main,
    .container {
        font-size: var(--tv-type-body) !important;
        line-height: 1.48 !important;
    }

    main :where(p, li, td, th, label, span, div, a, strong, em, small, summary) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-body) !important;
        line-height: 1.48 !important;
        letter-spacing: 0 !important;
    }

    main :where(h1, .page-title, .section-title, .dashboard-title, .subject-workspace-title, .training-hero h1, .training-admin-header h1) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-title) !important;
        line-height: 1.22 !important;
        font-weight: 760 !important;
        letter-spacing: 0 !important;
        color: #102033 !important;
    }

    main :where(h2, .card-title, .panel-title, .training-admin-action-title, .training-module-title, .training-usp-title, .subject-form-title, .report-section-title) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-section) !important;
        line-height: 1.28 !important;
        font-weight: 740 !important;
        letter-spacing: 0 !important;
        color: #102033 !important;
    }

    main :where(h3, h4, .training-demo-step-label, .training-detail-label, .training-admin-lead, .training-lead, .training-lead-sm, .subtitle) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-subsection) !important;
        line-height: 1.42 !important;
        font-weight: 680 !important;
        letter-spacing: 0 !important;
    }

    main :where(input, select, textarea, option, optgroup) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-control) !important;
        line-height: 1.25 !important;
        font-weight: 600 !important;
        letter-spacing: 0 !important;
    }

    main :where(button, input[type="submit"], input[type="button"], a[class*="button"], .training-link-button, .training-secondary-link, .training-admin-link, .dataset-button, .dataset-download-button, .report-download-button, .architect-link-button, .architect-build-button, .architect-secondary-button, .programmer-admin-link, .secondary-action-button, .gear-menu button) {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: var(--tv-type-control) !important;
        line-height: 1.18 !important;
        font-weight: 720 !important;
        letter-spacing: 0 !important;
    }

    main :where(label, th, .field-title strong, .training-detail-label, .training-status-chip, .training-admin-role-chip, .badge, .tv-query-card-status, .tv-query-response-category) {
        font-size: var(--tv-type-label) !important;
        line-height: 1.22 !important;
        font-weight: 720 !important;
        letter-spacing: 0 !important;
    }

    main :where(table, table td, table th, .report-table-wrap td, .report-table-wrap th, .programmer-admin-table td, .programmer-admin-table th) {
        font-size: var(--tv-type-control) !important;
        line-height: 1.38 !important;
    }

    .header-study-switcher,
    .header-language-switcher,
    .header-study-switcher label,
    .header-language-switcher label,
    .header-study-switcher select,
    .header-language-switcher select,
    .header-study-switcher select option,
    .header-language-switcher select option,
    header nav > a,
    .environment-dropdown summary,
    .role-indicator {
        font-family: var(--tv-enterprise-font-family) !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        letter-spacing: 0 !important;
    }

    .environment-dropdown-label {
        font-size: 13px !important;
        line-height: 1.25 !important;
        font-weight: 760 !important;
    }

    .environment-dropdown-url {
        font-size: 12px !important;
        line-height: 1.35 !important;
        font-weight: 500 !important;
    }

    .training-admin-action-card,
    .training-usp-card,
    .training-module-card,
    .training-admin-training-card {
        min-height: 0 !important;
    }

    .training-admin-action-title,
    .training-usp-title,
    .training-module-title {
        margin-bottom: 8px !important;
    }

    .architect-return-bar {
        position: relative;
        z-index: 2900;
        display: flex;
        align-items: center;
        gap: 8px;
        min-height: 44px;
        padding: 6px 20px;
        border-bottom: 1px solid #c8d7e3;
        background: rgba(247, 250, 252, 0.97);
        box-shadow: 0 5px 14px rgba(18, 50, 75, 0.08);
        backdrop-filter: blur(10px);
    }

    .architect-return-bar button,
    .architect-return-bar a {
        min-height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 6px 11px;
        border: 1px solid #b9cbd8;
        border-radius: 7px;
        background: #ffffff;
        box-shadow: none;
        color: #173a52;
        font: inherit;
        font-size: 13px;
        font-weight: 800;
        text-decoration: none;
        cursor: pointer;
    }

    .architect-return-bar button:hover,
    .architect-return-bar a:hover {
        border-color: #1d6f85;
        background: #edf7f9;
        color: #0d5a72;
    }

    .architect-return-bar span {
        margin-left: auto;
        color: #586f84;
        font-size: 12px;
        font-weight: 800;
    }

    @media (max-width: 700px) {
        .architect-return-bar {
            position: static;
            flex-wrap: wrap;
            padding: 7px 10px;
        }

        .architect-return-bar span {
            width: 100%;
            margin-left: 0;
        }
    }

    /* TrialVault controlled application shell - unified enterprise finish. */
    html { scroll-behavior: smooth; }

    header {
        display: grid !important;
        grid-template-columns: minmax(210px, 270px) minmax(0, 1fr) !important;
        align-items: start !important;
        gap: 12px 22px !important;
        padding: 11px 18px !important;
        background: linear-gradient(112deg, #081f34 0%, #0d354d 55%, #0c5b67 100%) !important;
    }

    header nav {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        align-content: flex-start !important;
        gap: 6px !important;
        row-gap: 7px !important;
    }

    header nav > a,
    .environment-dropdown summary,
    .header-study-switcher select,
    .header-language-switcher select {
        height: 34px !important;
        min-height: 34px !important;
        border-radius: 8px !important;
        transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
    }

    header nav > a {
        padding: 7px 11px !important;
    }

    header nav > a.active {
        color: #0d354d !important;
        background: #f8fbfd !important;
        border-color: #ffffff !important;
        box-shadow: 0 5px 16px rgba(0, 0, 0, .16) !important;
    }

    .environment-dropdown[open] > summary {
        background: rgba(255,255,255,.18) !important;
        border-color: rgba(255,255,255,.32) !important;
        text-decoration: none !important;
    }

    .environment-dropdown-menu {
        max-height: min(70vh, 620px);
        overflow-y: auto;
        padding: 8px !important;
        border-radius: 10px !important;
    }

    .environment-dropdown-item {
        border: 1px solid transparent;
        transition: background-color .14s ease, border-color .14s ease, transform .14s ease;
    }

    .environment-dropdown-item:hover {
        background: #f1f7fa;
        border-color: #d5e3eb;
        transform: translateX(2px);
    }

    .container {
        max-width: 1600px !important;
        width: calc(100% - 28px) !important;
        margin: 16px auto 28px !important;
    }

    .card {
        border-radius: 12px !important;
        border-color: #d8e2eb !important;
        box-shadow: 0 8px 24px rgba(17, 40, 60, .065) !important;
        transition: box-shadow .18s ease, border-color .18s ease !important;
    }

    .card:hover {
        border-color: #cad8e4 !important;
        box-shadow: 0 12px 30px rgba(17, 40, 60, .085) !important;
    }

    .tv-page-heading-row {
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:20px;
        margin-bottom:8px;
    }

    main .tv-eyebrow {
        margin-bottom:5px;
        color:#0f6b78 !important;
        font-size:11px !important;
        line-height:1.2 !important;
        font-weight:800 !important;
        text-transform:uppercase;
        letter-spacing:.08em !important;
    }

    main .tv-study-context {
        display:inline-flex;
        align-items:center;
        gap:8px;
        min-height:36px;
        padding:8px 12px;
        border:1px solid #cfe0e8;
        border-radius:999px;
        background:#f1f7fa;
        color:#466174 !important;
        white-space:nowrap;
    }

    main .tv-summary-value {
        font-size:28px !important;
        line-height:1 !important;
        font-weight:800 !important;
    }

    main .tv-summary-label {
        color:rgba(255,255,255,.92) !important;
        font-size:12px !important;
        line-height:1.35 !important;
        font-weight:750 !important;
    }

    .tv-summary-card {
        min-height:98px !important;
        border:1px solid rgba(255,255,255,.12);
        border-radius:10px !important;
        background:linear-gradient(145deg,#102f49 0%,#15546b 100%) !important;
        box-shadow:0 10px 22px rgba(16,47,73,.14) !important;
    }

    .tv-status-banner {
        margin:14px 0 0;
        padding:11px 13px;
        border-radius:8px;
        border:1px solid #b9dfd2;
        background:#edf9f4;
        color:#155f4c;
        font-weight:700;
    }

    button,
    main a[class*="button"] {
        transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
    }

    button:hover:not(:disabled),
    main a[class*="button"]:hover {
        transform: translateY(-1px);
    }

    :focus-visible {
        outline: 3px solid rgba(61, 153, 183, .38) !important;
        outline-offset: 2px !important;
    }

    .report-table-wrap th {
        position: sticky;
        top: 0;
        z-index: 2;
        background:#edf4f8 !important;
    }

    @media (max-width: 1180px) {
        header { grid-template-columns: 1fr !important; }
        header nav { justify-content: flex-start !important; }
    }

    @media (max-width: 720px) {
        .tv-page-heading-row { flex-direction:column; }
        .tv-study-context { white-space:normal; }
        .container { width:calc(100% - 16px) !important; }
    }

    /* Two-tier role-aware application shell. Presentation only: routes and permissions are unchanged. */
    :root {
        --tv-shell-font: "Segoe UI Variable", "Segoe UI", Inter, "Helvetica Neue", Arial, sans-serif;
        --tv-shell-navy: #0a2940;
        --tv-shell-teal: #0b6170;
        --tv-shell-ink: #183047;
        --tv-shell-line: #cfdae4;
        --tv-shell-surface: #f8fbfd;
    }

    body {
        font-family: var(--tv-shell-font) !important;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
        font-variant-numeric: tabular-nums;
    }

    .trialvault-shell-header {
        display: grid !important;
        grid-template-columns: minmax(220px, 285px) minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 16px 24px !important;
        min-height: 78px;
        padding: 12px 22px !important;
        background: linear-gradient(118deg, #071e33 0%, var(--tv-shell-navy) 52%, #0a5361 100%) !important;
        box-shadow: 0 7px 22px rgba(7, 30, 51, .16);
    }

    .trialvault-shell-header .tagline {
        max-width: 265px;
        color: rgba(236, 247, 251, .82);
        font-size: 10px;
        font-weight: 560;
        letter-spacing: .015em;
    }

    .trialvault-shell-header .global-context-nav {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: flex-end !important;
        justify-content: flex-end !important;
        gap: 9px !important;
        min-width: 0;
    }

    .global-context-nav .header-study-switcher,
    .global-context-nav .header-language-switcher {
        display: grid !important;
        grid-template-columns: auto minmax(104px, 1fr) !important;
        align-items: center !important;
        gap: 7px !important;
        min-width: 0;
        margin: 0 !important;
    }

    .global-context-nav .header-study-switcher:not(.header-role-switcher) {
        grid-template-columns: auto minmax(150px, 190px) !important;
    }

    .global-context-nav .header-role-switcher {
        grid-template-columns: auto minmax(142px, 180px) !important;
    }

    .global-context-nav .header-study-switcher label,
    .global-context-nav .header-language-switcher label,
    .header-role-display span {
        margin: 0 !important;
        color: rgba(238, 248, 251, .82) !important;
        font-size: 10px !important;
        line-height: 1 !important;
        font-weight: 760 !important;
        letter-spacing: .07em !important;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .global-context-nav .header-study-switcher select,
    .global-context-nav .header-language-switcher select,
    .header-role-display,
    .global-context-nav > a {
        height: 38px !important;
        min-height: 38px !important;
        border: 1px solid rgba(232, 246, 250, .26) !important;
        border-radius: 9px !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important;
    }

    .global-context-nav .header-study-switcher select,
    .global-context-nav .header-language-switcher select {
        min-width: 0 !important;
        padding: 7px 34px 7px 11px !important;
        color: #ffffff !important;
        background-color: rgba(255,255,255,.12) !important;
        font-weight: 700 !important;
    }

    .global-context-nav > a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 7px 13px !important;
        color: #f4fbfd !important;
        background: rgba(255,255,255,.08) !important;
        font-weight: 720 !important;
        white-space: nowrap;
    }

    .global-context-nav > a:hover,
    .global-context-nav > a.active {
        border-color: rgba(255,255,255,.72) !important;
        color: #0b3447 !important;
        background: #ffffff !important;
        box-shadow: 0 6px 16px rgba(2, 20, 34, .18) !important;
    }

    .header-role-display {
        display: grid;
        grid-template-columns: auto auto;
        align-items: center;
        gap: 8px;
        padding: 7px 12px;
        color: #ffffff;
        background: rgba(255,255,255,.12);
        white-space: nowrap;
    }

    .header-role-display strong {
        font-size: 13px;
        line-height: 1;
        font-weight: 760;
    }

    .role-navigation-bar {
        position: relative;
        z-index: 2800;
        display: flex;
        align-items: center;
        gap: 7px;
        min-height: 52px;
        padding: 8px 22px;
        border-bottom: 1px solid var(--tv-shell-line);
        background: rgba(248, 251, 253, .98);
        box-shadow: 0 5px 16px rgba(18, 50, 75, .075);
        backdrop-filter: blur(12px);
    }

    .role-navigation-bar > a,
    .role-navigation-bar > .environment-dropdown > summary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 34px !important;
        min-height: 34px !important;
        margin: 0;
        padding: 7px 12px !important;
        border: 1px solid transparent !important;
        border-radius: 8px !important;
        color: #29465c !important;
        background: transparent !important;
        font-family: var(--tv-shell-font) !important;
        font-size: 13px !important;
        line-height: 1 !important;
        font-weight: 690 !important;
        text-decoration: none;
        white-space: nowrap;
        cursor: pointer;
    }

    .role-navigation-bar > a:hover,
    .role-navigation-bar > a.active,
    .role-navigation-bar > .environment-dropdown[open] > summary {
        border-color: #bdd4df !important;
        color: #075d70 !important;
        background: #eaf4f7 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    .role-navigation-bar .role-environment-dropdown {
        margin-left: auto;
    }

    .role-navigation-bar .environment-dropdown-menu {
        top: calc(100% + 7px);
        right: 0;
        min-width: 330px;
    }

    .role-navigation-bar .role-environment-dropdown .environment-dropdown-menu {
        min-width: 300px;
    }

    @media (max-width: 1180px) {
        .trialvault-shell-header {
            grid-template-columns: 1fr !important;
        }

        .trialvault-shell-header .global-context-nav {
            justify-content: flex-start !important;
            overflow-x: auto;
            padding-bottom: 2px;
        }

        .role-navigation-bar {
            overflow-x: auto;
        }

        .role-navigation-bar .role-environment-dropdown {
            margin-left: 0;
        }
    }

    @media (max-width: 720px) {
        .trialvault-shell-header {
            padding: 10px 12px !important;
        }

        .trialvault-shell-header .global-context-nav {
            align-items: center !important;
        }

        .global-context-nav .header-study-switcher,
        .global-context-nav .header-language-switcher,
        .global-context-nav .header-role-switcher {
            grid-template-columns: 1fr !important;
            gap: 3px !important;
        }

        .role-navigation-bar {
            padding: 7px 12px;
        }
    }
