/* Pastel and glass presentation inspired by the supplied Scriptix reference.
   Screen only: DISC category colors and printed reports retain their meaning. */
@media screen {
    body.disc-admin, body.disc-participant, body.disc-module, body:has(.login-topbar) {
        --primary-color: #0077cc;
        --primary-hover: #0066b3;
        --primary-light: rgba(0,135,235,.1);
        --text-main: #111827;
        --text-muted: #4b5563;
        --border-color: #dce6ee;
        color: #111827;
        background: radial-gradient(ellipse at 85% 0%,rgba(255,224,174,.72),transparent 45%),
                    radial-gradient(ellipse at 10% 70%,rgba(177,227,255,.6),transparent 58%), #f1f6ff;
        min-height: 100vh;
    }
    body.disc-admin .admin-full-container { max-width: 1600px !important; margin: 0 auto; padding: 28px 32px 40px !important; }
    body.disc-admin #disc-dashboard-welcome,
    body.disc-participant .main-header,
    body.disc-module .module-hero,
    body:has(.login-topbar) .login-topbar {
        border: 1px solid rgba(255,255,255,.9);
        border-radius: 26px;
        background: radial-gradient(ellipse at 75% 0%,#ffe0ae 0%,transparent 58%),
                    linear-gradient(135deg,#e9f9ff 5%,#f6f5ef 50%,#b1e3ff 100%);
        box-shadow: 0 18px 48px rgba(39,67,92,.09), inset 0 1px 0 #fff;
    }
    body.disc-admin #disc-dashboard-welcome { padding: 34px 36px; gap: 26px; margin-bottom: 26px; min-height: 230px; }
    body.disc-admin #disc-dashboard-welcome::before { display: none; }
    body.disc-admin #disc-dashboard-welcome::after,
    body.disc-participant .main-header::after,
    body.disc-module .module-hero::after,
    body:has(.login-topbar) .login-topbar::after {
        border: 0; width: 190px; height: 390px; top: -160px; right: 14%;
        background: rgba(255,255,255,.48); filter: blur(24px); transform: rotate(32deg);
        pointer-events: none;
    }
    body.disc-admin #disc-dashboard-welcome .disc-welcome-copy h1,
    body.disc-participant .main-header h1,
    body.disc-module .module-intro h1,
    body:has(.login-topbar) .login-hero-copy h2 {
        color: #111827; font-weight: 400; font-size: clamp(28px,3.2vw,46px);
        line-height: 1.16; letter-spacing: -1.4px; max-width: 750px;
    }
    body.disc-admin #disc-dashboard-welcome .disc-welcome-copy p:last-child,
    body.disc-participant .main-header .subtitle,
    body.disc-module .module-intro > p:last-child,
    body:has(.login-topbar) .login-hero-copy > span { color: #4b5563; line-height: 1.7; }
    body.disc-admin .admin-eyebrow,
    body.disc-participant .participant-eyebrow,
    body.disc-module .module-eyebrow,
    body:has(.login-topbar) .login-eyebrow { color: #006bb7; }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-nav {
        padding: 5px; border: 1px solid rgba(255,255,255,.95); border-radius: 999px;
        background: rgba(255,255,255,.55); box-shadow: 0 4px 18px rgba(52,81,105,.04);
        backdrop-filter: blur(16px);
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-tab { border-radius: 999px; color: #374151; padding: 10px 20px; }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-tab.active { background: #fff; color: #006bb7; box-shadow: 0 2px 10px rgba(50,77,100,.06); }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-tab:hover {
        color: #005a9c; background: #e5f5ff;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-participant-link,
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls #btn-admin-logout,
    body.disc-module .module-back,
    body:has(.login-topbar) .participant-link { border: 1px solid rgba(255,255,255,.95); border-radius: 14px; background: rgba(255,255,255,.8); color: #111827; }
    body.disc-admin .disc-dashboard-panel,
    body.disc-admin #dashboard-summary-view .admin-activity-card,
    body.disc-admin .disc-shortcut,
    body.disc-module .module-overview > div,
    body:has(.login-topbar) .login-card {
        border: 1px solid rgba(255,255,255,.95); border-radius: 22px;
        background: rgba(255,255,255,.72); backdrop-filter: blur(18px);
        box-shadow: 0 10px 32px rgba(43,72,98,.055),inset 0 1px 0 #fff;
    }
    body.disc-admin .disc-dashboard-panel { padding: 24px; }
    body.disc-admin .disc-dashboard-grid { gap: 22px; margin-bottom: 26px; }
    body.disc-admin .disc-panel-heading h3,
    body.disc-admin .disc-shortcuts-heading h2 { color: #111827; font-weight: 700; text-transform: none; }
    body.disc-admin .disc-panel-icon { background: #e5f5ff; color: #0077cc; border-radius: 12px; }
    body.disc-admin .disc-stats-panel .metric-card { border: 1px solid #e7edf2; border-radius: 16px; background: rgba(255,255,255,.88); }
    body.disc-admin .disc-stats-panel .metric-card-completed,
    body.disc-admin .disc-stats-panel .metric-card-pending { border-top: 1px solid #e7edf2; }
    body.disc-admin .disc-stats-panel .metric-card-total { background: linear-gradient(120deg,#0087eb,#0074cc); border-color: #0087eb; box-shadow: inset 0 1px 0 rgba(255,255,255,.45),0 6px 18px rgba(0,135,235,.14); }
    body.disc-admin .disc-stats-panel .metric-card-total:hover { background: linear-gradient(120deg,#0077cf,#0066b3); }
    body.disc-admin .disc-stats-panel .metric-label { text-transform: none; color: #4b5563; }
    body.disc-admin .disc-stats-panel .metric-val { color: #111827; }
    body.disc-admin .disc-stats-panel .metric-card-total .metric-label,
    body.disc-admin .disc-stats-panel .metric-card-total .metric-val,
    body.disc-admin .disc-stats-panel .metric-card-total .metric-caption { color: #fff; }
    body.disc-admin .disc-shortcut { padding: 22px; min-height: 175px; color: #111827; }
    body.disc-admin .disc-shortcut strong { text-transform: none; font-size: 17px; }
    body.disc-admin .disc-shortcut em { color: #006bb7; text-transform: none; font-size: 12px; }
    body.disc-admin .disc-shortcut-gold { background: rgba(255,237,205,.74); }
    body.disc-admin .disc-shortcut-teal { background: rgba(224,247,250,.75); }
    body.disc-admin .disc-shortcut-purple { background: rgba(238,236,255,.75); }
    body.disc-admin .disc-shortcut-symbol { border-radius: 12px; }
    body.disc-admin .btn-primary,
    body.disc-admin .disc-search-actions .btn-primary,
    body.disc-participant .btn-primary,
    body.disc-participant #btn-final-submit,
    body:has(.login-topbar) .login-submit {
        color: #fff; border: 1px solid #0077cc; border-radius: 14px;
        background: linear-gradient(180deg,#0087eb,#0077cc);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.45),0 4px 12px rgba(0,135,235,.12);
    }
    body.disc-admin .btn-primary:hover,
    body.disc-participant .btn-primary:hover,
    body.disc-participant #btn-final-submit:hover,
    body:has(.login-topbar) .login-submit:hover { background: #0066b3; border-color: #0066b3; }
    body.disc-admin .btn-secondary,
    body.disc-admin .disc-search-actions .btn-secondary,
    body.disc-participant .btn-secondary { border-radius: 14px; background: rgba(255,255,255,.9); border-color: #dce6ee; color: #374151; }
    body.disc-admin .disc-search-field input,
    body.disc-admin .disc-search-field select { border: 1px solid #dce6ee; border-radius: 12px; background: #fff; color: #111827; }
    body.disc-admin .disc-search-actions .btn { text-transform: none; }
    body.disc-admin #participants-view .table-card,
    body.disc-admin #dashboard-participants-view .table-card,
    body.disc-admin #token-management-panel { border: 1px solid #dce6ee; border-radius: 20px; box-shadow: 0 8px 28px rgba(43,72,98,.05); }
    body.disc-admin #participants-view .admin-table th,
    body.disc-admin #participants-view .admin-table thead th:last-child,
    body.disc-admin #dashboard-participants-view .dashboard-participant-table th { background: #edf7fd; color: #111827; }
    body.disc-admin #participants-view .table-card {
        border: 1px solid rgba(255,255,255,.95); border-radius: 24px;
        background: rgba(255,255,255,.88); box-shadow: 0 12px 36px rgba(43,72,98,.06);
    }
    body.disc-admin #participants-view .admin-table-heading {
        padding: 28px; border-bottom: 1px solid #fff;
        background: radial-gradient(ellipse at 90% 0%,#ffe0ae,transparent 65%),linear-gradient(120deg,#e9f9ff,#edf7fd);
    }
    body.disc-admin #participants-view .admin-table-heading > div { padding: 0; min-height: 0; }
    body.disc-admin #participants-view .admin-table-heading > div::before { display: none; }
    body.disc-admin #participants-view .admin-table-heading h2 { color: #111827; font-size: clamp(24px,2.3vw,32px); font-weight: 400; letter-spacing: -.7px; }
    body.disc-admin #participants-view .admin-table-heading p { color: #4b5563; line-height: 1.65; }
    body.disc-admin #participants-view .admin-table-heading .admin-eyebrow { color: #006bb7; }
    body.disc-admin #participants-view .admin-delete-selected { border-radius: 14px; }
    body.disc-admin #participants-view .admin-filter-controls { padding: 24px 28px; gap: 20px; border-top: 0; background: #fff; }
    body.disc-admin #participants-view .admin-filter-field label { color: #374151; font-size: 13px; }
    body.disc-admin #participants-view .admin-filter-field :is(.admin-date-filter,.admin-select-filter,#admin-search-input) {
        min-height: 48px; border: 1px solid #dce6ee !important; border-radius: 12px !important;
        background-color: #fff; color: #111827;
    }
    body.disc-admin #participants-view .admin-filter-field :is(.admin-date-filter,.admin-select-filter,#admin-search-input):focus {
        border-color: #0087eb !important; box-shadow: 0 0 0 3px rgba(0,135,235,.12) !important;
    }
    body.disc-admin #participants-view .admin-filter-reset .btn { min-height: 48px; border-radius: 12px; border-color: #dce6ee; background: #f7fbfe; color: #374151; }
    body.disc-admin #participants-view .admin-filter-reset .btn:hover { background: #e5f5ff; color: #005a9c; }
    body.disc-admin #participants-view .admin-filter-context { padding: 0 28px 22px; background: #fff; }
    body.disc-admin #participants-view .admin-filter-summary { color: #4b5563; font-size: 13px; }
    body.disc-admin #participants-view .admin-table-toolbar,
    body.disc-admin #participants-view .admin-table-footer { padding: 18px 28px; border-color: #e2eaf0; background: #f7fbfe; }
    body.disc-admin #participants-view #admin-page-size { border-color: #dce6ee; border-radius: 10px; color: #111827; }
    body.disc-admin #participants-view .table-container { border-color: #e2eaf0; }
    body.disc-admin #participants-view .admin-table thead th,
    body.disc-admin #participants-view .admin-table thead th:last-child { background: #edf7fd; color: #111827; border-bottom-color: #dce6ee !important; text-transform: none; }
    body.disc-admin #participants-view .admin-table tbody tr { background: #fff; }
    body.disc-admin #participants-view .admin-table tbody tr:nth-child(even),
    body.disc-admin #participants-view .admin-table tbody tr:nth-child(even) > td:last-child:not([colspan]) { background: #fafcfe; }
    body.disc-admin #participants-view .admin-table tbody tr:hover,
    body.disc-admin #participants-view .admin-table tbody tr:hover > td:last-child:not([colspan]) { background: #f0f8ff; }
    body.disc-admin #participants-view .admin-table td { border-bottom-color: #e7edf2; }
    body.disc-admin #participants-view .admin-table .row-actions .btn { border-radius: 12px; min-height: 44px; }
    body.disc-admin #participants-view .admin-pagination .btn { border-radius: 12px; min-height: 44px; }
    body.disc-admin #token-management-panel {
        padding: 26px; border: 1px solid rgba(255,255,255,.95); border-radius: 24px;
        background: rgba(255,255,255,.8); backdrop-filter: blur(18px);
        box-shadow: 0 12px 36px rgba(43,72,98,.06);
    }
    body.disc-admin #token-management-panel .admin-token-heading {
        padding: 24px; gap: 20px; border: 1px solid #fff; border-radius: 18px;
        background: radial-gradient(ellipse at 90% 0%,#ffe0ae,transparent 65%),linear-gradient(120deg,#e9f9ff,#edf7fd);
    }
    body.disc-admin #token-management-panel .admin-token-heading h2 { color: #111827; font-size: clamp(24px,2.3vw,32px); font-weight: 400; letter-spacing: -.7px; }
    body.disc-admin #token-management-panel .admin-token-heading h2 svg { color: #0077cc; }
    body.disc-admin #token-management-panel .admin-token-heading p { color: #4b5563; }
    body.disc-admin #token-management-panel .admin-token-heading p.admin-eyebrow { color: #006bb7; }
    body.disc-admin #token-management-panel #btn-close-token-panel { background: rgba(255,255,255,.9); border-color: #fff; }
    body.disc-admin #token-management-panel #token-form {
        padding: 24px; gap: 20px; border: 1px solid #e2eaf0; border-radius: 18px;
        background: #fff; box-shadow: 0 4px 18px rgba(43,72,98,.025);
    }
    body.disc-admin #token-management-panel .token-form-intro h3 { color: #111827; font-size: 18px; }
    body.disc-admin #token-management-panel .token-form-intro p { color: #4b5563; }
    body.disc-admin #token-management-panel #token-form label { color: #374151; font-size: 13px; }
    body.disc-admin #token-management-panel #token-form input { height: 48px; border-color: #dce6ee; border-radius: 12px; background: #fff; color: #111827; }
    body.disc-admin #token-management-panel #token-form input:read-only { background: #f3f6f9; color: #4b5563; }
    body.disc-admin #token-management-panel #token-form input:focus { border-color: #0087eb; box-shadow: 0 0 0 3px rgba(0,135,235,.12); }
    body.disc-admin #token-management-panel #token-form button[type="submit"] { min-height: 48px; border-radius: 14px; background: linear-gradient(180deg,#0087eb,#0077cc); border-color: #0077cc; }
    body.disc-admin #token-management-panel #token-form button[type="submit"]:hover { background: #0066b3; border-color: #0066b3; }
    body.disc-admin #token-management-panel .token-table-toolbar,
    body.disc-admin #token-management-panel .token-table-footer { padding: 16px; border-color: #e2eaf0; border-radius: 14px; background: #f7fbfe; }
    body.disc-admin #token-management-panel > .table-container { border-color: #e2eaf0; border-radius: 16px; overflow-x: auto; }
    body.disc-admin #token-management-panel .token-table thead th { background: #edf7fd; color: #111827; border-bottom-color: #dce6ee !important; text-transform: none; }
    body.disc-admin #token-management-panel .token-table td { background: #fff; border-bottom-color: #e7edf2; }
    body.disc-admin #token-management-panel .token-table tbody tr:nth-child(even) td { background: #fafcfe; }
    body.disc-admin #token-management-panel .token-table tbody tr:hover td { background: #f0f8ff; }
    body.disc-admin #token-management-panel .token-table td:nth-child(2) { color: #006bb7; }
    body.disc-admin #token-management-panel .token-description { color: #4b5563; }
    body.disc-admin #token-management-panel .token-actions .btn { height: 44px; min-height: 44px; border-radius: 12px; }
    body.disc-admin #token-management-panel #admin-token-page-size { border-color: #dce6ee; border-radius: 10px; color: #111827; }
    body.disc-admin #admin-management-view .admin-tools-card {
        border: 1px solid #fff; border-radius: 22px !important;
        background: linear-gradient(120deg,#e8f8ff,#fff1d6 75%,#e0f3ff) !important;
    }
    body.disc-participant .participant-topbar { padding-top: 24px; }
    body.disc-participant .participant-heading { padding-top: 20px; padding-bottom: 36px; }
    body.disc-participant :is(#form-section,#token-section,#instructions-section,.test-header,.participant-question-navigation,.success-card) {
        border: 1px solid #dce6ee; border-radius: 22px; background: #fff;
        box-shadow: 0 10px 30px rgba(43,72,98,.05);
    }
    body.disc-participant .participant-test-info { border-color: #fff; background: rgba(255,255,255,.65); color: #374151; border-radius: 999px; }
    body.disc-participant .sticky-progress-container { border-radius: 16px; border-color: #dce6ee; background: #fff; }
    body.disc-module .module-shell { padding-top: 28px; }
    body.disc-module .module-hero { padding: 28px 32px 36px; }
    body.disc-module .module-intro { margin-top: 38px; }
    body.disc-module .module-list-panel,
    body.disc-module .module-detail { border-color: #dce6ee; border-radius: 20px; box-shadow: 0 8px 28px rgba(43,72,98,.05); }
    body:has(.login-topbar) .login-topbar { margin-top: 28px; padding: 28px 32px 36px; }
    body:has(.login-topbar) .login-card { background: rgba(255,255,255,.92); }
    body:has(.login-topbar) h1 { color: #111827; font-weight: 400; letter-spacing: -.8px; }
    body:has(.login-topbar) input { background: #fff; border-color: #dce6ee; border-radius: 12px; color: #111827; }
    body.disc-admin #report-view .report-wrapper { border: 1px solid #dce6ee; border-radius: 22px; box-shadow: 0 12px 36px rgba(43,72,98,.05); }
    body.disc-admin .disc-report-screen-masthead { background: linear-gradient(120deg,#e8f8ff,#fff1d6); border: 1px solid #fff; border-radius: 18px; }
    body.disc-admin .disc-report-screen-masthead h2 { color: #111827; }
}
@media screen and (max-width: 780px) {
    body.disc-admin #participants-view .admin-table-heading { padding: 22px; }
    body.disc-admin #participants-view .admin-filter-controls { padding: 22px; gap: 16px; }
    body.disc-admin #participants-view .admin-filter-context { padding: 0 22px 20px; }
    body.disc-admin #participants-view .admin-table-toolbar,
    body.disc-admin #participants-view .admin-table-footer { padding: 16px 22px; }
    body.disc-admin #token-management-panel { padding: 18px; }
    body.disc-admin #token-management-panel .admin-token-heading,
    body.disc-admin #token-management-panel #token-form { padding: 20px; }
    body.disc-admin .admin-full-container { padding: 16px 14px 28px !important; }
    body.disc-admin #disc-dashboard-welcome { padding: 26px 22px; gap: 20px; min-height: 0; border-radius: 22px; }
    body.disc-admin .disc-dashboard-panel { padding: 20px; }
    body.disc-admin .disc-shortcut { padding: 18px; min-height: 160px; }
    body.disc-admin #disc-dashboard-welcome .disc-welcome-copy h1,
    body.disc-participant .main-header h1,
    body.disc-module .module-intro h1,
    body:has(.login-topbar) .login-hero-copy h2 { letter-spacing: -.8px; }
    body.disc-module .module-shell { padding: 16px 14px 28px; }
    body.disc-module .module-hero { padding: 22px; }
    body:has(.login-topbar) .login-topbar { margin: 16px 14px 0; padding: 22px; }
}
@media screen and (max-width: 700px) {
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls {
        display: grid; grid-template-columns: minmax(0,1fr); gap: 12px;
        width: 100%; justify-self: stretch;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-nav {
        display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
        grid-column: 1; grid-row: 1; justify-self: stretch;
        width: 100%; box-sizing: border-box;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-account-actions {
        display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
        grid-column: 1; grid-row: 2; justify-self: stretch;
        width: 100%; gap: 10px; align-items: stretch;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-account-name {
        grid-column: 1 / -1; justify-content: flex-start;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-participant-link,
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls #btn-admin-logout {
        width: 100%; min-width: 0; min-height: 44px; margin: 0;
        justify-content: center; padding: 10px 8px; font-size: 13px; border-radius: 14px;
        white-space: normal; text-align: center; line-height: 1.4;
    }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-participant-link svg { flex-shrink: 0; }
}
@media screen and (max-width: 520px) {
    body.disc-admin #participants-view .table-card { border-radius: 20px; }
    body.disc-admin #participants-view .admin-table-heading { padding: 20px 17px; }
    body.disc-admin #participants-view .admin-filter-controls { padding: 20px 17px; }
    body.disc-admin #participants-view .admin-filter-context { padding: 0 17px 18px; }
    body.disc-admin #participants-view .admin-table-toolbar,
    body.disc-admin #participants-view .admin-table-footer { padding: 16px 17px; }
    body.disc-admin #token-management-panel { padding: 14px; border-radius: 20px; }
    body.disc-admin #token-management-panel .admin-token-heading,
    body.disc-admin #token-management-panel #token-form { padding: 17px; }
    body.disc-admin #token-management-panel .token-table-footer .admin-pagination { width: 100%; }
    body.disc-admin #disc-dashboard-welcome .disc-portal-controls .admin-view-tab { padding: 9px 13px; }
    body.disc-admin .disc-dashboard-panel { padding: 17px; }
    body.disc-participant .participant-heading { padding-bottom: 26px; }
}
