#blazor-error-ui {
    background: #fff8e8;
    border: 1px solid #e8b96d;
    border-radius: 6px;
    bottom: 1rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
    color: #31210c;
    display: none;
    left: 1rem;
    max-width: min(32rem, calc(100vw - 2rem));
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    position: fixed;
    width: auto;
    z-index: 10000;
}

#blazor-error-ui .reload {
    color: #7a3300;
    font-weight: 600;
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss {
    color: #5f4a24;
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.65rem;
}

.ev-recovery-surface {
    background: #ffffff;
    border: 1px solid #d8dfde;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(21, 39, 46, 0.10);
    padding: clamp(1.25rem, 3vw, 2rem);
}

.ev-recovery-context {
    display: grid;
    gap: 0.35rem 1rem;
    grid-template-columns: max-content minmax(0, 1fr);
    margin: 1.25rem 0 0;
}

.ev-recovery-context dt {
    color: #50615f;
    font-weight: 700;
}

.ev-recovery-context dd {
    margin: 0;
    min-width: 0;
}

.ev-recovery-context code {
    overflow-wrap: anywhere;
}

.material-symbols-outlined {
    direction: ltr;
    display: inline-block;
    font-family: "Material Symbols", "Material Icons", sans-serif;
    font-feature-settings: "liga";
    font-size: 1.25rem;
    font-style: normal;
    font-weight: normal;
    letter-spacing: normal;
    line-height: 1;
    text-rendering: optimizeLegibility;
    text-transform: none;
    white-space: nowrap;
    word-wrap: normal;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
}

input,
textarea,
.rz-inputtext,
.rz-textarea {
    caret-color: currentColor;
}

input::selection,
textarea::selection,
.rz-inputtext::selection,
.rz-textarea::selection {
    color: #ffffff;
    background: #7a3300;
}

/* Article Info Type-of field grouping */
.article-info-type-of-group {
    margin-bottom: 1.25rem !important;
}

.article-info-type-of-group .article-info-type-of-row {
    row-gap: 0.375rem;
}

.article-info-type-of-group .article-info-type-of-label {
    display: flex;
    align-items: flex-start;
    padding-top: 0.25rem;
}

.article-info-type-of-group .article-info-type-of-label .rz-label {
    margin-bottom: 0;
    font-weight: 600;
    color: var(--rz-text-title-color);
}

.article-info-type-of-group .article-info-type-of-options {
    min-width: 0;
}

.article-info-type-of-group .rz-checkbox-list-vertical {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.article-info-type-of-group .rz-checkbox-list-vertical > div {
    margin-top: 0;
    margin-bottom: 0;
}

.article-info-type-of-group .rz-checkbox-list-vertical .rz-chkbox-label {
    margin-bottom: 0;
    line-height: 1.35;
}

@media (max-width: 767.98px) {
    .article-info-type-of-group {
        margin-bottom: 1.5rem !important;
    }

    .article-info-type-of-group .article-info-type-of-label {
        padding-top: 0;
    }

    .article-info-type-of-group .article-info-type-of-options {
        margin-top: 0.25rem;
    }
}

/* Custom responsive page container padding */
.page-container {
    padding: 0.25rem !important; /* 4px - mobile/small screens */
}

@media (min-width: 576px) { /* sm and up */
    .page-container {
        padding: 0.375rem !important; /* 6px - tablets */
    }
}

@media (min-width: 768px) { /* md and up */
    .page-container {
        padding: 0.5rem !important; /* 8px - laptops/desktops */
    }
}

@media (min-width: 1200px) { /* xl and up */
    .page-container {
        padding: 0.5rem !important; /* Keep 8px for large screens */
    }
}

/* AI Extraction Debug Dialog - PDF + Study Viewer Splitter Panes */
.pdf-pane {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.study-viewer-pane {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Ensure splitter bar is visible and draggable */
.rz-splitter-bar {
    background-color: #e0e0e0 !important;
    border: 1px solid #ccc !important;
    cursor: col-resize !important;
}

.rz-splitter-bar:hover {
    background-color: #d0d0d0 !important;
}

/* Ensure splitter pane contents can shrink in flex layouts (enables inner scrolling) */
.rz-splitter-pane > .rz-splitter-pane-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.public-release-layout {
    min-height: 100vh;
    background: #f7f8fa;
    color: #1f2937;
}

.public-release-header {
    background: #fff !important;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: var(--shadow-sm);
    padding: 0 1.5rem;
}

.public-release-brand {
    align-items: center;
    color: #1f2937;
    display: inline-flex;
    font-weight: 700;
    gap: 0.8rem;
    min-height: 4rem;
}

.public-release-brand:hover {
    color: #ff8930;
    text-decoration: none;
}

.public-release-brand img {
    height: 2rem;
    width: auto;
}

.public-release-body {
    padding: 0;
}

.public-release-page {
    margin: 0 auto;
    max-width: 1120px;
    padding: 3rem 1.5rem 4rem;
}

.public-release-hero {
    margin-bottom: 2rem;
    max-width: 760px;
}

.public-release-hero h1,
.public-release-detail-header h1 {
    color: #111827;
    font-size: 2.25rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.16;
}

.public-release-hero p,
.public-release-detail-header p {
    color: #4b5563;
    font-size: 1rem;
}

.public-release-kicker,
.public-release-card-status {
    color: #0f766e;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.public-release-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.nepp-level4-placement-slot {
    align-items: center;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-left: 4px solid #0f766e;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0 0 1.5rem;
    min-height: 6rem;
    padding: 1rem 1.1rem;
}

.public-release-detail .nepp-level4-placement-slot {
    margin: 1rem 0 0;
}

.nepp-level4-placement-copy {
    min-width: 0;
}

.nepp-level4-placement-kicker {
    color: #0f766e;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
}

.nepp-level4-placement-slot h2 {
    color: #111827;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 0.25rem;
}

.nepp-level4-placement-slot p {
    color: #475569;
    margin: 0;
}

.nepp-level4-placement-status {
    align-items: center;
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    border-radius: 999px;
    color: #0f766e;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 700;
    justify-content: center;
    min-height: 2rem;
    padding: 0.35rem 0.75rem;
    white-space: nowrap;
}

.public-release-card,
.public-release-detail,
.public-release-state {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.public-release-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: space-between;
    min-height: 15rem;
    padding: 1.25rem;
}

.public-release-card h2 {
    color: #111827;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.4rem;
}

.public-release-card-meta,
.public-release-card-notes {
    color: #4b5563;
    margin-bottom: 0;
}

.public-release-link,
.public-release-artifact-links a {
    align-items: center;
    background: #ff8930;
    border-radius: 6px;
    color: #fff;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0.65rem 1rem;
}

.public-release-link:hover,
.public-release-artifact-links a:hover {
    background: #d96811;
    color: #fff;
    text-decoration: none;
}

.public-release-state {
    color: #374151;
    padding: 1.25rem;
}

.public-release-state-error {
    border-color: #fecaca;
    color: #991b1b;
}

.public-release-back-link {
    color: #4b5563;
    display: inline-block;
    font-weight: 700;
    margin-bottom: 1.25rem;
}

.public-release-detail {
    padding: 1.5rem;
}

.public-release-facts {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    margin: 1.5rem 0;
}

.public-release-facts div {
    border-top: 1px solid #e5e7eb;
    padding-top: 0.75rem;
}

.public-release-facts dt {
    color: #6b7280;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
}

.public-release-facts dd {
    color: #111827;
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.public-release-section {
    border-top: 1px solid #e5e7eb;
    padding-top: 1.25rem;
}

.public-release-section h2 {
    color: #111827;
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.public-release-artifact-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.public-release-topic-list {
    display: grid;
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.public-release-topic-row {
    align-items: center;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 4.25rem;
    padding: 0.85rem 1rem;
}

.public-release-topic-row h3 {
    color: #111827;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 0.25rem;
}

.public-release-topic-row p,
.public-release-topic-state {
    color: #4b5563;
    margin: 0;
}

.public-release-topic-evidence-gap {
    align-items: center;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 999px;
    color: #9a3412;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    justify-content: center;
    min-height: 2rem;
    padding: 0.35rem 0.75rem;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .public-release-page {
        padding: 2rem 1rem 3rem;
    }

    .public-release-hero h1,
    .public-release-detail-header h1 {
        font-size: 1.8rem;
    }

    .nepp-level4-placement-slot {
        grid-template-columns: 1fr;
        min-height: 7.5rem;
    }

    .nepp-level4-placement-status {
        justify-self: start;
        white-space: normal;
    }

    .public-release-topic-row {
        align-items: start;
        grid-template-columns: 1fr;
    }
}

/* ref #7445 (A-to-Z C6, part 1): the EVI assistant. One set of durations and easings serves the bar, the panel and
   the chat (the reviewed mock 39-mock.css); the components' scoped styles read these tokens. The reduce-motion
   setting turns every movement off. */
:root {
    --ev-evi-t-fast: 140ms;
    --ev-evi-t: 240ms;
    --ev-evi-t-slow: 380ms;
    --ev-evi-t-glow: 1600ms;
    --ev-evi-ease: cubic-bezier(.2, .8, .2, 1);
    /* ref #7481: the orb's capsule unfolds on a spring (640 ms after 90 ms, the text 230 ms later) and is drawn back in
       300 ms; the spring is CSS linear() where the browser has it (about 5 % past its length and back). */
    --ev-evi-t-spring: 640ms;
    --ev-evi-t-lead: 90ms;
    --ev-evi-t-fold: 300ms;
    --ev-evi-t-text: 200ms;
    --ev-evi-t-textlead: 230ms;
    --ev-evi-spring: cubic-bezier(.3, 1.3, .5, 1);
    --ev-evi-panel-width: 400px;
    --ev-evi-shadow: 0 10px 30px rgba(38, 37, 38, .16), 0 2px 6px rgba(38, 37, 38, .08);
}

@supports (transition-timing-function: linear(0, 1)) {
    :root {
        --ev-evi-spring: linear(0, .05, .168, .311, .467, .608, .736, .837, .916, .975, 1.014, 1.038, 1.05, 1.053, 1.05, 1.044, 1.037, 1.029, 1.021, 1.014, 1.009, 1.005, 1.001, .999, .998, .997, .997, .997, .998, .998, 1);
    }
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --ev-evi-t-fast: 0ms;
        --ev-evi-t: 0ms;
        --ev-evi-t-slow: 0ms;
        --ev-evi-t-glow: 0ms;
        --ev-evi-t-spring: 0ms;
        --ev-evi-t-lead: 0ms;
        --ev-evi-t-fold: 0ms;
        --ev-evi-t-text: 0ms;
        --ev-evi-t-textlead: 0ms;
    }
}

/* ref #7481: every page keeps the orb's room (62 px: the orb's 44 px, 16 px above the window's edge, and a hair) at its end,
   so a footer's Back, Save and Save & next sit above the orb, never under it (reviewed on page 39, #127: the built bar
   lay over Save on Eligibility criteria at 1440 x 900). It replaced #7445's 5rem for the 540 px bar.
   Two places, because a page's shell may overflow its own box: Radzen's body keeps the room for ordinary pages, and
   EvPageLayout's inner column (min-height: 0, so its content runs past its box and past the body's padding) ends in
   a spacer that sits after the content, where the body's scroll extent ends. */
:root {
    --ev-evi-room: 62px;
}

.rz-layout:has(> .ev-evi-bar) > .rz-body {
    padding-bottom: var(--ev-evi-room);
}

.rz-layout:has(> .ev-evi-bar) .ev-page-layout > div::after {
    content: "";
    display: block;
    flex: none;
    height: var(--ev-evi-room);
}

/* Split, not overlay: an open panel takes the page's right edge and the page narrows; the Radzen sidebar stays.
   Below 900 px the panel lies over the page instead. While the grip is dragged the page follows without gliding. */
.rz-layout > .rz-body {
    transition: margin-inline-end var(--ev-evi-t-slow, 0ms) var(--ev-evi-ease, ease);
}

html.ev-evi-dragging .rz-layout > .rz-body {
    transition: none;
}

@media (min-width: 900px) {
    .rz-layout:has(> .ev-evi-panel.is-open) > .rz-body {
        margin-inline-end: var(--ev-evi-panel-width);
    }
}

/* ref #7457 (A-to-Z C6, part 2): after Apply the changed words glow in the field and fade: a mirror of the box, laid
   over it by eviglance.eviAssistant.glowField (39-mock.css). Under reduce motion the words stay marked for a moment
   and go without fading. */
.ev-evi-mirror {
    position: fixed;
    z-index: 3;
    overflow: hidden;
    pointer-events: none;
    color: transparent;
    white-space: pre-wrap;
    overflow-wrap: break-word;
    border-color: transparent !important;
    background: transparent !important;
}

.ev-evi-mirror mark {
    color: transparent;
    background: rgba(16, 185, 129, .32);
    border-radius: 3px;
    box-shadow: 0 0 0 2px rgba(16, 185, 129, .18);
    transition: opacity var(--ev-evi-t-glow) ease-out;
}

.ev-evi-mirror.is-fading mark {
    opacity: 0;
}

/* ref #7487: the screening title is an orange gradient clipped to its text with a transparent fill; a flagged
   term inside it needs its own fill, or the yellow mark shows as an empty box. */
.ev-study-screening-header h1 mark {
    color: #000;
    -webkit-text-fill-color: #000;
}

/* A refused submit: the empty Source location turns red. */
.rz-textbox.ev-refused {
    border-color: var(--rz-danger, #ef4444);
}


/* ref #7926: the Review team in Studio's own look (the warm primary tokens, dark text on orange for contrast). Screen 85: one band
   for every card and states in words, so no card reads as on or off; "Invitation pending" is the one chip. */
.ev-team-card { border: 1px solid var(--rz-base-300, #dcdde1); border-radius: 10px; overflow: hidden; background: var(--rz-base-background-color, #fff); box-shadow: 0 1px 2px rgba(38, 37, 38, .06); }
.ev-team-band { margin: 0; padding: .55rem .9rem; background: var(--rz-primary-lighter); border-left: 4px solid var(--rz-primary); color: #262526; font-weight: 700; letter-spacing: .01em; }
.ev-team-seat { padding: .6rem .9rem; border-bottom: 1px solid var(--rz-base-200, #e9eaed); }
.ev-team-seat:last-child { border-bottom: 0; }
.ev-team-seat-disabled { background: var(--rz-base-100, #f4f5f9); }
.ev-team-chip { display: inline-block; padding: .1rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; background: var(--rz-base-200, #e9eaed); color: #262526; }
.ev-team-chip-pending { background: var(--rz-primary-lighter); border: 1px solid var(--rz-primary); }
.ev-team-state { font-size: .8rem; color: var(--rz-text-secondary-color, #4f4f50); white-space: nowrap; }
.ev-team-note { padding: .6rem .9rem; border-radius: 10px; background: var(--rz-primary-lighter); color: #262526; }
.ev-team-note p { margin: 0; }
.ev-team-note p + p { margin-top: .35rem; }
.ev-team-duty { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: .15rem .9rem; padding: .5rem .9rem; border-bottom: 1px solid var(--rz-base-200, #e9eaed); font-size: .875rem; }
.ev-team-duty:last-child { border-bottom: 0; }
@media (max-width: 760px) { .ev-team-duty { grid-template-columns: 1fr; } }
.ev-team-primary.rz-button { background-color: var(--rz-primary); color: #262526; border-color: var(--rz-primary); font-weight: 600; }
.ev-team-card > p { margin: 0; padding: .5rem .9rem; }
/* ref #7964: the held-Save reason is a text button that leads to the first unseen AI value. */
.ev-save-held-link { background: none; border: 0; padding: 0; font: inherit; color: var(--rz-primary-dark, #8a5a00); text-decoration: underline; cursor: pointer; }
.ev-save-held-link:focus-visible { outline: 2px solid var(--rz-primary); outline-offset: 2px; }
