* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
    color: #18202b;
    background: #ffffff;
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none;
}

/* Header */

.site-header {
    border-bottom: 1px solid #e5e7eb;
    background: #ffffff;
}

.header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 18px 32px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    font-size: 24px;
    font-weight: 700;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 28px;
}

.main-nav a {
    font-size: 15px;
}

/* Boutons */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 11px 18px;
    border: 1px solid transparent;
    font-family: inherit;
    font-size: 15px;
    line-height: 1.35;
    cursor: pointer;

    background: #18202b;
    color: #ffffff;

    border-radius: 6px;
    font-weight: 600;
}

.button-small {
    padding: 6px 10px;
    font-size: 13px;
    line-height: 1.3;
}

/* Hero */

.hero {
    min-height: 620px;

    display: flex;
    align-items: center;

    background: #f5f7f9;
}

.hero-content {
    width: 100%;
    max-width: 1200px;

    margin: 0 auto;
    padding: 80px 32px;
}

.hero-label {
    margin: 0 0 14px;

    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.hero h1 {
    margin: 0;

    font-size: 72px;
    line-height: 1;
}

.hero-signature {
    margin: 20px 0 0;

    font-size: 28px;
    font-weight: 600;
}

.hero-text {
    max-width: 680px;

    margin: 28px 0 0;

    font-size: 19px;
}

.hero-actions {
    margin-top: 32px;
}

/* Contenu */

.content-section {
    padding: 100px 32px;
}

.content-inner {
    max-width: 900px;
    margin: 0 auto;
}

.content-inner h2 {
    margin-top: 0;

    font-size: 38px;
}

.content-inner p {
    font-size: 18px;
}

.content-section-alt {
    background: #f5f7f9;
}

.steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;

    margin-top: 50px;
}

.step {
    padding: 30px;

    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.step-number {
    display: block;

    margin-bottom: 18px;

    font-size: 14px;
    font-weight: 700;
}

.step h3 {
    margin: 0 0 12px;

    font-size: 22px;
}

.step p {
    margin: 0;

    font-size: 16px;
}

/* Connexion */

.login-page {
    min-height: calc(100vh - 70px);

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 60px 32px;

    background: #f5f7f9;
}

.login-card {
    width: 100%;
    max-width: 460px;

    padding: 48px;

    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.login-label {
    margin: 0 0 10px;

    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.login-card h1 {
    margin: 0;

    font-size: 38px;
}

.login-intro {
    margin: 12px 0 30px;
}

.login-form {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group label {
    font-size: 14px;
    font-weight: 600;
}

.form-group input {
    width: 100%;

    padding: 12px 14px;

    border: 1px solid #cfd5dc;
    border-radius: 6px;

    font: inherit;
}

.login-button {
    border: 0;
    cursor: pointer;
}

.form-error {
    margin: 4px 0 0;
    color: #b42318;
    font-size: 14px;
}

/* Tableau de bord */

.dashboard-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 32px;
}

.dashboard-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 50px;
}

.dashboard-label {
    margin: 0 0 10px;

    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.dashboard-header h1 {
    margin: 0 0 10px;

    font-size: 42px;
}

.dashboard-content {
    display: grid;
    gap: 24px;
}

.dashboard-card {
    padding: 30px;

    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.dashboard-card h2 {
    margin-top: 0;
}

/* Formulaires métier */

.form-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 60px 32px;
}

.form-card {
    padding: 40px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.form-label {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.form-card h1 {
    margin: 0 0 30px;
    font-size: 38px;
}

.exercise-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form-group textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #cfd5dc;
    border-radius: 6px;
    font: inherit;
    resize: vertical;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 10px;
}

.button-secondary {
    background: #e5e7eb;
    color: #18202b;
}

.dashboard-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 30px;
}

.dashboard-card-header h2 {
    margin: 0;
}

.exercise-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.exercise-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;

    padding: 22px;

    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.exercise-item h3 {
    margin: 0 0 8px;
    font-size: 20px;
}

.exercise-item p {
    margin: 0;
}

.exercise-meta {
    flex-shrink: 0;
}

.exercise-status {
    display: inline-block;

    padding: 6px 10px;

    background: #e5e7eb;
    border-radius: 999px;

    font-size: 13px;
    font-weight: 700;
}

/* Préparation de l’exercice */
.preparation-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.preparation-list { list-style: none; padding: 0; margin: 0 0 24px; }
.preparation-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid #e5e7eb; }
.participant-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.form-group select { width: 100%; padding: 12px 14px; border: 1px solid #cfd5dc; border-radius: 6px; font: inherit; background: #fff; }

.dashboard-card summary { cursor: pointer; font-weight: 600; }
@media (max-width: 700px) { .participant-fields { grid-template-columns: 1fr; } }

/* Navigation authentifiée et cycle de vie */
.nav-logout { border: 0; font-family: inherit; font-size: 15px; line-height: inherit; cursor: pointer; }
.main-nav form { margin: 0; }
.lifecycle-actions { display: grid; gap: 24px; }

/* Listes de préparation et bibliothèque */
.preparation-list li > span { flex: 1 1 220px; overflow-wrap: anywhere; }

.row-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; padding-left: 24px; flex-shrink: 0; }
.row-actions form { margin: 0; }

.stimuli-table-wrap { overflow-x: auto; }
.stimuli-table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.stimuli-table th, .stimuli-table td { text-align: left; vertical-align: top; padding: 16px; border-bottom: 1px solid #e5e7eb; }
.stimuli-table th { background: #f5f7f9; }
.stimuli-table td:first-child { min-width: 180px; overflow-wrap: anywhere; }
.stimulus-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.planned-roles { border: 1px solid #cfd5dc; border-radius: 6px; padding: 20px; }
.planned-roles label { display: block; margin: 8px 0; }

/* Structure future des écrans opérationnels, sans largeur maximale globale */
.operational-layout { width: 100%; min-height: 100dvh; display: flex; flex-direction: column; }
.operational-workspace { display: flex; flex: 1; min-width: 0; width: 100%; }
.operational-main { flex: 1; min-width: 0; padding: 24px; }
.operational-sidebar, .operational-panel { flex: 0 0 260px; padding: 20px; }
.operational-sidebar[hidden], .operational-panel[hidden] { display: none; }
.operational-header, .operational-timeline { width: 100%; }
@media (max-width: 800px) { .operational-workspace { flex-direction: column; } .operational-sidebar, .operational-panel { flex-basis: auto; } }

/* Hiérarchie réutilisable des actions */
.button-danger-small { padding: 6px 10px; font-size: 13px; line-height: 1.3; background: #fff; color: #a12b25; border-color: #e6c7c4; }
.button:focus-visible { outline: 3px solid #5d7895; outline-offset: 3px; }
.button:hover { filter: brightness(.96); }

.row-content { display: flex; flex-direction: column; gap: 4px; }
.row-content small { color: #536171; }
.preparation-list li { padding: 18px 0; gap: 20px; }
.catalogue-copy { margin-bottom: 28px; }
.participant-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 700px) { .participant-fields { grid-template-columns: 1fr; } .row-actions { padding-left: 0; } }

/* Exercise preparation navigation; operational layout remains full width. */
.exercise-navigation { margin-bottom: 1.5rem; }
.exercise-navigation nav { display: flex; flex-wrap: wrap; gap: .5rem; border-bottom: 1px solid #dce1e8; padding-bottom: .75rem; }
.exercise-navigation nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .6rem .85rem; border-bottom: 3px solid transparent; border-radius: .35rem .35rem 0 0; color: #344355; text-decoration: none; white-space: nowrap; }
.exercise-navigation nav a:hover { background: #f0f4f8; color: #204a80; }
.exercise-navigation nav a[aria-current="page"] { background: #edf3fa; color: #204a80; border-bottom-color: #2056a0; font-weight: 700; }
.exercise-navigation a:focus-visible { outline: 2px solid #315c9b; outline-offset: 3px; }
.preparation-shell .exercise-metrics, .preparation-shell .invitation-metrics { display: grid; gap: 1rem; margin: 1.5rem 0; }
.preparation-shell .exercise-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.preparation-shell .invitation-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.preparation-shell .exercise-metrics > div, .preparation-shell .invitation-metrics > div { min-width: 0; padding: 1rem; border: 1px solid #e1e7ee; border-radius: 7px; background: #f8fafc; }
.preparation-shell .exercise-metrics dt, .preparation-shell .invitation-metrics dt { color: #46576d; font-size: .9rem; overflow-wrap: anywhere; }
.exercise-metrics dd { margin: .4rem 0; font-size: 1.5rem; font-weight: 700; }

.row-actions > .button { width: auto; flex: 0 0 auto; }
.invitation-list { width: 100%; border-collapse: collapse; }
.invitation-list th, .invitation-list td { padding: .8rem; border-bottom: 1px solid #dce1e8; text-align: left; }

.exercise-back-container { width: calc(100% - 32px); margin: 28px auto 12px; }
.exercise-back-container.dashboard-width, .dashboard-page.preparation-shell { max-width: 1200px; }
.exercise-back-container.form-width, .form-page.preparation-shell { max-width: 900px; }
.exercise-back-container + .preparation-shell { margin-top: 0; }
.exercise-back { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; font-weight: 600; padding: .4rem 0; color: #204a80; }
.exercise-back-label { text-decoration: underline; text-underline-offset: .15em; }
.exercise-back:hover { color: #163660; }
.exercise-back:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }

/* Preparation/admin only: no width constraint on operational interfaces or homepage. */
.preparation-shell { background: #fff; border: 1px solid #dce2ea; border-radius: 10px; margin: 28px auto; padding: 28px; width: calc(100% - 32px); box-sizing: border-box; }
.preparation-shell .dashboard-card { border-color: #e9edf2; box-shadow: none; }
/* Two sizes and four families, shared by links, buttons and disclosure summaries. */
.preparation-shell .button {
 display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
 min-height: 44px; padding: .65rem 1rem; border: 1px solid transparent; border-radius: 6px;
 font-family: inherit; font-size: .95rem; line-height: 1.35; font-weight: 600;
 background: #2056a0; color: #fff; text-decoration: none; cursor: pointer; text-align: center;
}
.preparation-shell .button-primary { background: #2056a0; color: #fff; }
.preparation-shell .button-secondary { background: #edf0f4; color: #243449; border-color: #ccd4df; }
.preparation-shell .button-warning { background: #9a4b00; color: #fff; }
.preparation-shell .button-danger, .preparation-shell .button-danger-small { background: #fff; color: #9c2424; border-color: #d7a9a9; }
.preparation-shell .button-small, .preparation-shell .button-danger-small { min-height: 32px; padding: .35rem .6rem; font-size: .82rem; line-height: 1.3; }
.preparation-shell .button:hover:not(:disabled):not([aria-disabled="true"]) { filter: brightness(.92); }
.preparation-shell .button:active:not(:disabled):not([aria-disabled="true"]) { filter: brightness(.85); }
.preparation-shell .button:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.preparation-shell .button:disabled, .preparation-shell .button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; filter: none; }
.preparation-shell .row-actions { gap: 10px; align-items: flex-start; max-width: 100%; min-width: 0; }
.preparation-shell .row-actions > details[open] { flex-basis: 100%; }
.preparation-shell .row-actions > details > form { margin-top: 12px; }
.preparation-shell .scenario-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.preparation-shell .text-link { color: #204a80; text-decoration: underline; }
.preparation-shell .text-link:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.preparation-shell input:disabled { background: #f1f3f5; color: #536171; cursor: not-allowed; }
.preparation-shell .form-actions { flex-wrap: wrap; }
.advanced-access { margin: 24px 0; padding: 16px 0; border-top: 1px solid #e1e6ed; }
.advanced-access summary { cursor: pointer; font-weight: 600; }
.advanced-selection { display: block; margin: .6rem 0; }
.delivery-reason { display: block; margin-top: .4rem; }
.page-context { color: #46576d; overflow-wrap: anywhere; }
@media (max-width: 700px) {
 .preparation-shell { width: calc(100% - 16px); padding: 16px; margin: 16px auto; }
 .preparation-shell h1 { font-size: 1.6rem; overflow-wrap: anywhere; }
 .preparation-shell .dashboard-card { padding: 16px; }
 .preparation-shell .form-actions { justify-content: flex-start; }
 .preparation-shell .invitation-list { min-width: 720px; }
}

@media (max-width: 700px) {
 body:has(.preparation-shell) .header-inner { flex-wrap: wrap; gap: 12px; padding: 16px; }
 body:has(.preparation-shell) .main-nav { flex-wrap: wrap; gap: 12px; }
 .preparation-shell .form-card { padding: 16px; border: 0; }
 .preparation-shell .dashboard-header { flex-wrap: wrap; gap: 16px; }
}

/* Invitation checks and access management: reusable, text-labelled states. */
.invitation-metrics { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 1rem 0; }
.invitation-metrics > div { flex: 1 1 150px; min-width: 0; }
.invitation-metrics dt { color: #46576d; font-size: .9rem; }
.invitation-metrics dd { margin: .25rem 0; font-size: 1.4rem; font-weight: 700; }
.invitation-preflight { padding: 1rem 0; }
.opening-report { margin: 1.5rem 0; }
.status-badge { display: inline-block; padding: .25rem .5rem; border: 1px solid #d7dfe8; border-radius: 5px; font-size: .85rem; line-height: 1.4; }
.status-badge-neutral { background: #f1f4f7; color: #344355; }
.status-badge-success { background: #eff7f2; color: #245e3c; border-color: #bdd9c8; }
.status-badge-warning { background: #fff5e9; color: #874300; border-color: #e8cfad; }
.status-badge-danger { background: #fff0ef; color: #982e29; border-color: #e5c2bf; }
.invitation-list td, .invitation-list th { vertical-align: top; }
.invitation-list .status-badge { min-width: 100px; }
.invitation-list td small { overflow-wrap: anywhere; }
.stimuli-table-wrap:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.access-action { margin: 1.5rem 0; padding: 1rem 0; border-top: 1px solid #e1e6ed; }
@media (max-width: 700px) {
 .invitation-metrics { gap: .75rem; }
 .invitation-metrics > div { flex-basis: 120px; }
 .preparation-shell .exercise-form label { overflow-wrap: anywhere; }
}

.preparation-shell .invitation-list { font-size: .9rem; }
.preparation-shell .invitation-list td, .preparation-shell .invitation-list th { padding: .65rem .5rem; }
.preparation-shell .invitation-list .button { white-space: nowrap; }
.opening-report { padding: 20px; }
.opening-report h2 { margin: 0 0 .75rem; }
.invitation-metrics dd { line-height: 1.2; }

@media (max-width: 700px) {
 .exercise-back-container { width: calc(100% - 16px); margin-top: 16px; }
 .exercise-back-container + .preparation-shell { margin-top: 0; }
 .preparation-shell .scenario-fields { grid-template-columns: 1fr; }
}

/* Preparation media and rich text share the existing form/button hierarchy. */
.media-list .media-thumbnail { display: block; align-self: flex-start; width: auto; height: auto; max-width: min(100%, 360px); max-height: 240px; object-fit: contain; margin-top: .75rem; }
.media-list video.media-thumbnail { width: 360px; }
.media-preview, .rich-content img, .rich-content video, .rich-editor img, .rich-editor video { max-width: 100%; height: auto; }
.media-preview-container { width: 100%; max-width: 960px; margin: 1.5rem auto; text-align: center; }
.media-preview-container .media-preview { display: block; width: auto; max-width: 100%; max-height: 70vh; height: auto; object-fit: contain; margin: 0 auto; }
.media-preview-container video.media-preview { width: 100%; }
.rich-content figure, .rich-editor figure { margin: 1rem 0; }
.rich-content { overflow-wrap: anywhere; }
.rich-content p { margin: 0.75rem 0; }
.rich-content blockquote, .ql-editor blockquote { border-left: 3px solid #cbd5e1; padding-left: 1rem; margin-left: 0; }
.rich-editor { min-width: 0; }
.rich-editor .editor-surface { min-height: 210px; height: auto; }
.rich-editor .ql-editor { min-height: 210px; height: auto; resize: vertical; overflow: auto; font: inherit; }
.rich-editor .ql-toolbar { border-radius: 6px 6px 0 0; }
.rich-editor .ql-toolbar button { min-height: 32px; min-width: 32px; padding: 5px; }
.rich-editor .ql-toolbar .ql-formats { margin-right: 8px; }
.rich-editor .ql-tooltip { white-space: normal; max-width: 100%; left: 0 !important; }
.editor-media-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.75rem; }
.editor-media-actions[hidden], .editor-surface[hidden] { display: none; }
.rich-editor dialog { border: 1px solid #cbd5e1; border-radius: 10px; padding: 1.25rem; width: min(600px, calc(100% - 2rem)); max-height: 85vh; overflow: auto; color: inherit; }
.rich-editor dialog::backdrop { background: rgb(15 23 42 / 45%); }
.rich-editor dialog [data-media-preview] { max-width: 100%; margin: 1rem 0; }
.rich-editor dialog img, .rich-editor dialog video { max-height: 30vh; }
.preparation-shell input[type="file"] { width: 100%; min-width: 0; }
.scenario-notice { border-left: 3px solid #3b7189; background: #f0f6f8; padding: 1rem; margin: 1rem 0; }
.scenario-notice strong { display: block; }

.media-list .row-content { min-width: 0; overflow-wrap: anywhere; }
.rich-editor [hidden] { display: none !important; }

.rich-editor .ql-container { font: inherit; }

/* Shared preparation panels, without constraining operational layouts. */
.preparation-shell > .dashboard-card { margin-block: 1.5rem; }
.preparation-shell h1 { margin-bottom: 1rem; overflow-wrap: anywhere; }
.preparation-shell p { line-height: 1.6; }
.opening-warning { border-left: 4px solid #a56622; background: #fffaf2; border-radius: 6px; padding: 1.25rem; color: #283544; }
.opening-warning > h3 { margin: 0 0 1rem; color: #844217; font-size: 1.15rem; }
.opening-warning > p { margin: .9rem 0; }
.preparation-notice { background: #f1f6fa; border: 1px solid #d9e4ee; border-radius: 7px; padding: 1rem 1.25rem; margin: 1.25rem 0; color: #344355; }
.preparation-notice h2, .preparation-notice h3 { margin: 0 0 .75rem; font-size: 1rem; }
.preparation-notice p { margin: .5rem 0; }
.preparation-shell .invitation-list thead th { background: #edf2f7; font-weight: 700; color: #344355; }
.preparation-shell .invitation-list td, .preparation-shell .invitation-list th { padding: 1rem .85rem; line-height: 1.5; }
.preparation-shell .invitation-list tbody tr:hover { background: #fafbfd; }
.preparation-shell .invitation-list-preflight { table-layout: fixed; }
.invitation-list-preflight th, .invitation-list-preflight td { overflow-wrap: anywhere; }
.invitation-list-preflight th:nth-child(1), .invitation-list-preflight th:nth-child(2) { width: 21%; }
.invitation-list-preflight th:nth-child(3), .invitation-list-preflight th:nth-child(4) { width: 29%; }
@media (max-width: 900px) {
 .preparation-shell .invitation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
 .preparation-shell .exercise-metrics { grid-template-columns: 1fr; }
 .opening-warning { padding: 1rem; }
}
@media (max-width: 380px) {
 .preparation-shell .invitation-metrics { grid-template-columns: 1fr; }
}

/* Animator-only HTML editing controls. */
.editor-modes { display: flex; gap: .5rem; margin: .5rem 0 0; }
.editor-modes [aria-pressed="true"] { background: #e8eef8; border-color: #334e78; color: #182b49; }
.rich-editor textarea.editor-code { min-height: 210px; resize: vertical; overflow-y: auto; font-family: ui-monospace, Consolas, monospace; line-height: 1.5; tab-size: 2; }
.editor-code-help { color: #475569; font-size: .875rem; }
.editor-remove-media { display: block; margin-top: .5rem; }
.editor-modes button:focus-visible, .editor-remove-media:focus-visible { outline: 2px solid #334e78; outline-offset: 3px; }

/* Stable animator previews, including before video metadata is available. */
.rich-editor .ql-editor figure { margin: 1rem 0 1.5rem; }
.rich-editor .ql-editor figure img,
.preparation-shell .rich-content figure img { display: block; width: auto; max-width: min(100%, 400px); max-height: 300px; object-fit: contain; }
.rich-editor .ql-editor figure video,
.preparation-shell .rich-content figure video { display: block; width: min(100%, 400px); height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #111827; }
.rich-editor .ql-editor .editor-remove-media { display: block; margin: .75rem 0 0; }

/* Two aligned rows of compact library actions; confirmation spans the group. */
.stimuli-table th:last-child, .stimuli-table td:last-child { min-width: 240px; width: 240px; }
.preparation-shell .stimuli-table .row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding-left: 0; margin-left: 0; align-items: start; }
.stimuli-table .row-actions > .button,
.stimuli-table .row-actions form > .button,
.stimuli-table .row-actions > details > summary { width: 100%; white-space: nowrap; }
.stimuli-table .row-actions > details[open] { grid-column: 1 / -1; }
.stimuli-table .row-actions > details[open] > summary { width: auto; }
.stimuli-table .row-actions > details[open] form > .button { white-space: normal; }

/* Operational workspace: deliberately uses the full available application width. */
.operational-header { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.5rem; border-bottom: 1px solid #dce3eb; background: #fff; }
.operational-header form { margin-left: auto; }
.operational-header > span { min-width: 0; overflow-wrap: anywhere; }
.operational-brand { font-size: 1.3rem; font-weight: 700; color: #18202b; }
.operational-sidebar { background: #f4f7fa; border-right: 1px solid #dce3eb; flex-basis: 220px; }
.operational-sidebar nav { display: grid; gap: .5rem; }
.operational-sidebar a { padding: .65rem; border-radius: 5px; }
.operational-sidebar a:hover { background: #e4ecf5; }
.operational-layout a:focus-visible, .operational-layout summary:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.operational-main h1 { margin-top: 0; overflow-wrap: anywhere; }
.operational-card { padding: 1.4rem; margin: 1.2rem 0; border: 1px solid #dce3eb; border-radius: 9px; min-width: 0; overflow-wrap: anywhere; background: #fff; }
.operational-card h2 { margin-top: 0; }
.operational-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.operational-actions form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.operational-actions form label { max-width: 32rem; }
.operational-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.operational-metrics > div { background: #f1f5f9; padding: 1rem; border-radius: 8px; }
.operational-metrics dd { margin: .5rem 0 0; font-size: 1.6rem; font-weight: 700; }
.cockpit-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.operational-list { list-style: none; margin: 0; padding: 0; }
.operational-list > article, .operational-list > li { border-bottom: 1px solid #e2e8f0; padding: 1rem 0; }
.operational-list h3 { margin: 0; }
.operational-list p { margin: .6rem 0; }
.operational-timeline-list { padding-left: 1.3rem; }
.operational-timeline-list li { padding: .6rem 0; }
.recipient-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: .75rem; margin-top: 1rem; }
.recipient-selection label { display: flex; gap: .6rem; padding: .75rem; border: 1px solid #dce3eb; border-radius: 6px; }
.recipient-selection small { display: block; margin-top: .35rem; }
.operational-card fieldset { min-width: 0; border: 1px solid #dce3eb; border-radius: 6px; padding: 1rem; }
.operational-card fieldset > label { display: block; margin: .75rem 0; }
.operational-layout .rich-content img { display: block; max-width: min(100%, 640px); max-height: 60vh; object-fit: contain; }
.operational-layout .rich-content video { display: block; width: min(100%, 640px); aspect-ratio: 16 / 9; object-fit: contain; }
@media (max-width: 1100px) { .cockpit-columns { grid-template-columns: 1fr; } .operational-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .operational-main { padding: 1rem; } .operational-card { padding: 1rem; } .operational-metrics { grid-template-columns: 1fr; } .operational-sidebar nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cockpit-columns .operational-list { max-height: min(65vh, 46rem); overflow-y: auto; padding-right: .5rem; }
.operational-timeline-list { max-height: 20rem; overflow-y: auto; }
.operational-list:focus-visible, .operational-timeline-list:focus-visible { outline: 2px solid #226ac5; outline-offset: 3px; }
.operational-sidebar nav { position: sticky; top: 1rem; }
.operational-layout .button-primary { background: #245b9e; }
.operational-layout .button-danger { background: #9e302a; }
.operational-layout .button-warning { background: #85500e; }

/* Lot 15.1: shared operational shell and incremental cockpit blocks. */
.operational-content { min-width: 0; }
.operational-content .form-card { max-width: none; }
.operational-writing { max-width: 960px; }
.operational-clock { margin: 1rem 0; }
.operational-clock h2 { font-size: .95rem; margin-bottom: .4rem; }
.operational-clock strong { font-size: 1.8rem; font-variant-numeric: tabular-nums; }
.operational-clock small { margin-left: 1rem; }
.operational-control .operational-actions { justify-content: flex-start; gap: 1rem; }
.operational-control form { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; flex: 0 1 auto; }
.operational-control label { font-size: .875rem; margin: 0; }
.operational-control .button { width: auto; min-width: 0; padding: .5rem .75rem; font-size: .875rem; white-space: nowrap; }
.cockpit-columns > [data-block] { min-width: 0; }
.dispatch-timeline { border-left: 2px solid #d9e2ee; margin-left: .4rem; padding-left: 1.1rem; }
.dispatch-timeline .dispatch-event { position: relative; border-left: 3px solid #668cb7; padding: .8rem; margin: .3rem 0 1rem; background: #fafbfd; }
.dispatch-event::before { content: ''; position: absolute; left: -1.65rem; top: 1rem; width: .6rem; height: .6rem; background: #668cb7; border: 2px solid white; border-radius: 50%; }
.dispatch-timeline .dispatch-event-resend { border-left-color: #9376a9; }
.dispatch-event-resend::before { background: #9376a9; }
.dispatch-recipients { max-height: 6rem; overflow-y: auto; font-size: .875rem; overflow-wrap: anywhere; }
.operational-sidebar a:hover, .operational-sidebar a[aria-current="page"] { background: #eaf0f7; }
@media (min-width: 1100px) { .operational-control label { white-space: nowrap; } }
@media (max-width: 650px) { .operational-control form { align-items: flex-start; } .operational-clock small { display: block; margin-left: 0; } }
.operational-control .operational-actions { flex-direction: column; align-items: flex-start; }
.operational-control .operational-actions form label { max-width: none; }
.dispatch-timeline .dispatch-event { margin-left: .7rem; }
.dispatch-event::before { left: -1.2rem; }

/* Lot 15.2 — operational instruments and continuous event rail. */
.cockpit-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.4rem; align-items: stretch; }
.cockpit-primary, .cockpit-feed { min-width: 0; }
.cockpit-instruments { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1rem; align-items: stretch; }
.cockpit-metrics-block { display: contents; }
.cockpit-instruments .operational-metrics { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.instrument-panel { border: 1px solid #dce3eb; border-radius: 9px; padding: 1rem; background: #f8fafc; margin: 0; min-width: 0; }
.instrument-panel h2 { margin: 0 0 .8rem; text-transform: uppercase; letter-spacing: .09em; font-size: .69rem; font-weight: 700; color: #46576c; }
.clock-accessible { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.split-flap { display: flex; align-items: center; gap: clamp(.12rem, .3vw, .25rem); max-width: 100%; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-variant-numeric: tabular-nums; }
.flap-cell { position: relative; display: grid; place-items: center; width: clamp(1.45rem, 2.4vw, 2.15rem); height: clamp(2.1rem, 3.7vw, 3.15rem); flex: 0 1 auto; min-width: 0; border-radius: 4px; background: linear-gradient(#263344 0 49%, #172332 50% 100%); box-shadow: inset 0 1px 0 #43536a, 0 2px 2px #17233222; color: #fff; perspective: 160px; }
.flap-cell::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid #050e1c99; pointer-events: none; }
.flap-face { display: block; font-size: clamp(1.25rem, 2.2vw, 1.85rem); font-weight: 600; transform-origin: center; line-height: 1; }
.flap-separator { color: #536274; font-size: 1.4rem; flex: 0 0 auto; }
.operational-clock [data-clock-partial] { margin: .7rem 0 0; font-size: .75rem; }
.operational-clock [data-clock-partial]:not([hidden]) { display: block; }
.scenario-clock strong { display: block; font: 600 clamp(1.1rem, 1.8vw, 1.55rem)/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; color: #243a55; overflow-wrap: anywhere; }
.scenario-clock p { font-size: .75rem; color: #526277; margin: .5rem 0 0; }
.cockpit-primary #available .operational-list { max-height: 40rem; overflow-y: auto; }
.cockpit-primary .operational-control label { white-space: normal; }
.cockpit-feed .operational-feed { height: 100%; box-sizing: border-box; margin: 0; padding: 1rem; background: #f8fafc; }
.operational-feed > h2 { font-size: 1.2rem; }
.feed-intro { font-size: .8rem; color: #526277; margin-bottom: 1.4rem; }
.operational-feed .dispatch-timeline { position: relative; padding: 0 0 0 1rem; margin: 0 0 1rem .25rem; border-left: 2px solid #cad6e5; }
.operational-feed .dispatch-event { --event-accent: #356ca9; background: white; border: 1px solid #dce3eb; border-left: 3px solid var(--event-accent); border-radius: 0 6px 6px 0; padding: .75rem; margin: 0 0 1.2rem; }
.operational-feed .dispatch-event-resend { --event-accent: #805a9e; }
.operational-feed .dispatch-event::before { background: var(--event-accent); left: -1.49rem; top: 1.2rem; width: .5rem; height: .5rem; border: 3px solid #f8fafc; }
.operational-feed .dispatch-event::after { content: ''; position: absolute; width: 1rem; height: 1px; left: -1.1rem; top: 1.62rem; background: var(--event-accent); }
.dispatch-event-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-bottom: .7rem; font-size: .7rem; }
.dispatch-event-meta time { color: #536274; font-variant-numeric: tabular-nums; }
.dispatch-event-meta .status-badge { color: var(--event-accent); border-color: #dce3eb; font-size: .7rem; }
.operational-feed .dispatch-event h3 { font-size: .95rem; line-height: 1.45; }
.operational-feed .dispatch-elapsed { font-size: .75rem; font-variant-numeric: tabular-nums; color: #526277; }
.operational-feed .dispatch-recipients { padding: 0; margin: .65rem 0; list-style: none; font-size: .75rem; line-height: 1.55; max-height: 7rem; }
.operational-feed .dispatch-recipients:focus-visible { outline: 2px solid #226ac5; outline-offset: 2px; }
.operational-feed .operational-actions { gap: .4rem; }
.operational-feed .button-small { font-size: .7rem; padding: .4rem .55rem; }
@media (min-width: 1280px) { .cockpit-body { grid-template-columns: minmax(0, 72fr) minmax(0, 28fr); } }
@media (max-width: 599px) { .cockpit-instruments { grid-template-columns: minmax(0, 1fr); } .cockpit-instruments .operational-metrics { gap: .5rem; } .cockpit-instruments .operational-metrics > div { padding: .65rem; font-size: .8rem; } .split-flap { gap: .25rem; } .flap-cell { width: 1.85rem; height: 2.6rem; } .flap-face { font-size: 1.6rem; } }
@media (prefers-reduced-motion: reduce) { .flap-face { animation: none !important; transition: none !important; } }
.operational-clock [data-clock-partial][hidden] { display: none; }

/* Lot 15.3 — dense cards and distinct preparation/session time labels. */
.cockpit-primary .stimulus-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: .8rem; padding: .2rem; align-items: start; }
.cockpit-primary .stimulus-card-grid > .available-stimulus-card { border: 1px solid #dce3eb; border-radius: 7px; padding: 1rem; min-width: 0; background: #fff; }
.available-stimulus-card h3 { font-size: 1rem; line-height: 1.4; }
.available-stimulus-card p, .stimulus-planned-time { font-size: .85rem; line-height: 1.5; }
.available-stimulus-card .operational-actions { margin-top: .8rem; gap: .5rem; }
.participant-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.participant-card { min-width: 0; padding: .85rem; border: 1px solid #dce3eb; border-radius: 7px; background: #fff; overflow-wrap: anywhere; }
.participant-card-name { display: flex; align-items: baseline; gap: .5rem; font-size: .9rem; }
.presence-led { display: inline-block; flex: 0 0 .5rem; width: .5rem; height: .5rem; border-radius: 50%; }
.presence-led-connected { background: #21834b; }
.presence-led-offline { background: #818b98; }
.participant-card p { margin: .35rem 0 0 1rem; font-size: .8rem; }
.participant-card-role { color: #46576c; }
.participant-card-email { color: #46576c; font-size: .8rem; overflow-wrap: anywhere; }
.participant-card small { display: block; margin: .5rem 0 0 1rem; font-size: .72rem; color: #526277; }
.participant-presence-help { font-size: .8rem; color: #526277; }
.cockpit-instruments .operational-metrics > div { padding: .6rem .85rem; }
.cockpit-instruments .operational-metrics dt { font-size: .85rem; }
.cockpit-instruments .operational-metrics dd { font-size: 1.45rem; margin: .25rem 0 0; }
.instrument-help { font-size: .75rem; color: #526277; margin: .6rem 0 0; }
.cockpit-primary .operational-control { width: fit-content; max-width: 100%; box-sizing: border-box; padding: .85rem 1rem; }
.cockpit-primary .operational-control h2 { font-size: .95rem; margin-bottom: .75rem; }
.cockpit-primary .operational-control .operational-actions { flex-direction: row; align-items: center; gap: .6rem 1rem; }
.cockpit-primary .operational-control form { gap: .6rem; min-width: 0; }
.cockpit-primary .operational-control label { font-size: .8rem; }
.cockpit-primary .operational-control .button { font-size: .8rem; padding: .45rem .65rem; white-space: nowrap; }
.operational-feed .dispatch-timeline { border-left-color: #a7b9cf; }
.operational-feed .dispatch-event { margin-bottom: 1.5rem; }
.dispatch-event-meta time { font-size: .78rem; color: #394c63; font-weight: 500; }
/* Optional future instrument slot: no empty panel is rendered and no visio behavior is provided. */
.cockpit-instruments .instrument-optional { grid-column: 1 / -1; min-width: 0; }
@media (min-width: 1600px) {
    .cockpit-instruments:has(> .instrument-optional) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cockpit-instruments > .instrument-optional { grid-column: auto; }
}
.cockpit-instruments .operational-metrics { order: 2; }

/* Lot 15.4 — inline KPI and a presentational 16:9 video reservation. */
.cockpit-instruments { align-items: start; }
.cockpit-instruments .operational-metrics { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .65rem; }
.cockpit-instruments .operational-metrics > div { display: flex; align-items: center; gap: .4rem; padding: .45rem .75rem; min-width: 0; }
.cockpit-instruments .operational-metrics dt { font-size: .8rem; font-weight: 400; white-space: nowrap; }
.cockpit-instruments .operational-metrics dd { font-size: .95rem; font-weight: 750; margin: 0; line-height: 1.4; }
.cockpit-instruments .video-placeholder { width: 100%; max-width: 22rem; aspect-ratio: 16 / 9; box-sizing: border-box; border: 1px solid #aebfca; border-radius: 9px; background: #d6e3e9; color: #284454; padding: 1rem; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: .65rem; }
.video-placeholder h2 { margin: 0; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.video-placeholder p { margin: 0; font-size: .8rem; line-height: 1.45; }
.available-stimulus-card .stimulus-planned-time:first-of-type { margin-top: .65rem; }
.available-stimulus-card .stimulus-planned-time + p { margin-top: .65rem; }
.participant-presence-help { font-size: .75rem; line-height: 1.5; color: #5b6879; }
@media (min-width: 1280px) { .cockpit-instruments .operational-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1600px) {
    .cockpit-instruments:has(.instrument-optional) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cockpit-instruments .instrument-optional { grid-column: auto; max-width: none; }
}
@media (max-width: 599px) { .cockpit-instruments .video-placeholder { max-width: none; } }

/* Lot 15.5 — compact heading, grouped instruments and explicit status tints. */
.cockpit-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.5rem; margin-bottom: 1rem; }
.cockpit-heading h1 { margin: 0; }
.cockpit-heading .cockpit-sync { margin: 0; min-width: 0; gap: .6rem; font-size: .8rem; color: #46576c; }
.cockpit-sync [data-refresh] { flex-shrink: 0; }
.cockpit-sync [data-sync-status] { overflow-wrap: anywhere; }
.operational-layout:has([data-cockpit][data-status="paused"]) .operational-header .status-badge { background: #fff5e9; color: #874300; border-color: #e8cfad; }
.dispatch-event-meta .status-badge { background: #edf4fc; color: #28588b; border-color: #c8daed; }
.dispatch-event-resend .dispatch-event-meta .status-badge { background: #f3edf8; color: #694386; border-color: #d9c9e6; }
@media (min-width: 1600px) {
    .cockpit-instruments { grid-template-rows: auto 1fr; }
    .cockpit-instruments .instrument-optional { grid-column: 3; grid-row: 1 / 3; }
    .cockpit-instruments .operational-metrics { grid-column: 1 / 3; grid-row: 2; }
}
@media (max-width: 999px) {
    .cockpit-heading .cockpit-sync { flex-basis: 100%; }
}

/* Lot 15.6 — compact desktop cockpit, based on CSS viewport width. */
@media (min-width: 1200px) and (max-width: 1599px) {
    .operational-layout:has([data-cockpit]) .operational-sidebar { flex-basis: 180px; padding-inline: 12px; }
    .operational-layout:has([data-cockpit]) .operational-main { padding-inline: 16px; }
    .cockpit-body { grid-template-columns: minmax(0, 76fr) minmax(0, 24fr); column-gap: 1rem; }
    .cockpit-instruments:has(.instrument-optional) { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto 1fr; column-gap: .65rem; }
    .cockpit-instruments .instrument-optional { grid-column: 3; grid-row: 1 / 3; max-width: none; }
    .cockpit-instruments .operational-metrics { grid-column: 1 / 3; grid-row: 2; display: flex; flex-wrap: wrap; gap: .5rem; }
    .cockpit-instruments .operational-metrics > div { flex: 1 0 auto; padding-inline: .5rem; }
    .cockpit-instruments .instrument-panel { padding-inline: .7rem; }
    .cockpit-instruments .flap-cell { width: 1.6rem; height: 2.6rem; }
    .cockpit-instruments .flap-face { font-size: 1.5rem; }
    .cockpit-instruments .split-flap { gap: .12rem; }
    .cockpit-primary > [data-block] > .operational-card { padding-inline: 1rem; }
    .cockpit-primary .stimulus-card-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
    .cockpit-primary .available-stimulus-card { padding-inline: .8rem; }
    .cockpit-feed .operational-feed { padding-inline: .7rem; }
    .cockpit-feed .dispatch-event { padding-inline: .6rem; }
}

/* Lot 15.7 — optional compact operational navigation, no animation. */
.operational-sidebar .sidebar-link { position: relative; display: flex; align-items: center; gap: .6rem; min-height: 44px; }
.sidebar-icon { flex: 0 0 20px; }
.sidebar-label { min-width: 0; overflow-wrap: anywhere; }
.sidebar-toggle { position: relative; display: flex; align-items: center; gap: .5rem; width: 100%; min-height: 44px; margin-bottom: .8rem; text-align: left; }
.sidebar-toggle[hidden] { display: none; }
.sidebar-toggle:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.operational-sidebar .sidebar-link[aria-current] { background: #eaf0f7; box-shadow: inset 3px 0 #356ca9; font-weight: 700; }
@media (min-width: 801px) {
    .operational-layout .operational-sidebar[data-collapsed="true"] { flex-basis: 64px; padding-inline: 8px; }
    .operational-sidebar[data-collapsed="true"] .sidebar-link, .operational-sidebar[data-collapsed="true"] .sidebar-toggle { justify-content: center; padding-inline: 0; }
    .operational-sidebar[data-collapsed="true"] .sidebar-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .operational-sidebar[data-collapsed="true"] :is(.sidebar-link, .sidebar-toggle):is(:hover, :focus-visible) .sidebar-label { clip-path: none; width: max-content; max-width: min(19rem, 70vw); height: auto; left: 100%; top: 0; margin: 0 0 0 .4rem; padding: .65rem .8rem; border: 1px solid #c4d0de; border-radius: 5px; background: #fff; color: #243a55; z-index: 20; white-space: normal; box-shadow: 0 2px 5px #18202b18; }
}
@media (max-width: 800px) { .sidebar-toggle { display: none; } }

/* Lot 15.8 — operational semantics: blue information, amber attention,
   red required action, green presence; violet exclusively for scenario time. */
.operational-layout { --op-blue: #205c9e; --op-orange: #8a4800; --op-red: #a12d29; --op-green: #18743d; }
.operational-sidebar { position: relative; z-index: 30; background: #1f2933; border-right-color: #344454; color: #edf2f7; }
.operational-sidebar a { color: #edf2f7; }
.operational-sidebar a:hover, .operational-sidebar .sidebar-link[aria-current] { background: #34495d; color: #fff; }
.operational-sidebar .sidebar-link[aria-current] { box-shadow: inset 3px 0 #69b5ff; }
.operational-sidebar .sidebar-toggle { background: #344454; color: #fff; }
.operational-sidebar :is(a, button):focus-visible { outline-color: #91caff; }
.stimulus-level, .stimulus-planned-time, .operational-feed .dispatch-elapsed { border: 1px solid; border-radius: 5px; padding: .25rem .45rem; font-weight: 700; line-height: 1.5; max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
.stimulus-level { display: inline-block; font-size: .78rem; }
.stimulus-level-information { color: var(--op-blue); background: #edf4fc; border-color: #abc9e9; }
.stimulus-level-important { color: var(--op-orange); background: #fff1de; border-color: #deb27a; }
.stimulus-level-action_required { color: var(--op-red); background: #fff0ee; border-color: #d9a09c; }
.available-stimulus-card .stimulus-planned-time { width: fit-content; font-size: .82rem; margin-top: .4rem; font-variant-numeric: tabular-nums; }
.planned-session-time { background: #e8f0f9; border-color: #a9c4e2; color: #204f80; }
.planned-scenario-time { background: #f2eef8; border-color: #c8b9dd; color: #60417e; }
.operational-clock { border-color: #dce3eb; }
.operational-clock h2 { color: #204f80; font-weight: 800; }
.operational-feed .dispatch-timeline { border-left-color: #819bb8; }
.operational-feed .dispatch-event { --event-accent: #205c9e; }
.operational-feed .dispatch-event-resend { --event-accent: #a45a0a; }
.operational-feed .dispatch-event::before { width: .6rem; height: .6rem; }
.dispatch-event-meta .status-badge { color: #205c9e; background: #edf4fc; border-color: #abc9e9; font-weight: 700; }
.dispatch-event-resend .dispatch-event-meta .status-badge { color: #8a4800; background: #fff1de; border-color: #deb27a; }
.operational-feed .dispatch-elapsed { width: fit-content; font-size: .82rem; color: #205c9e; background: #edf4fc; border-color: #abc9e9; }
.operational-feed .dispatch-event-resend .dispatch-elapsed { color: #8a4800; background: #fff1de; border-color: #deb27a; }
.presence-led { width: .6rem; height: .6rem; flex-basis: .6rem; }
.presence-led-connected { background: #18743d; box-shadow: 0 0 0 2px #d9efdf; }
.presence-led-offline { background: #667282; box-shadow: 0 0 0 2px #e5e9ee; }
.operational-control .button-warning { background: #965000; color: #fff; }
.operational-control .button-primary { background: #205c9e; color: #fff; }
.operational-control .button-danger { background: #a12d29; color: #fff; }
.cockpit-primary .available-stimulus-card .button:not(.button-secondary):not(.button-danger-small) { background: #205c9e; color: #fff; }

/* Lot 15.9 — presentation-only density refinements. */
.operational-sidebar { min-width: 0; }
.available-stimulus-card .stimulus-planned-time { font-size: .76rem; padding: .15rem .35rem; line-height: 1.4; }
.operational-feed .dispatch-event-meta { gap: .3rem; line-height: 1.35; }
.operational-feed .dispatch-event-meta time { font-size: .74rem; }
.operational-feed .dispatch-event-meta .status-badge { font-size: .68rem; padding: .15rem .35rem; line-height: 1.35; }
.operational-feed .dispatch-elapsed { font-size: .76rem; padding: .15rem .35rem; line-height: 1.4; }
.operational-feed .dispatch-recipients { font-size: .73rem; line-height: 1.45; }
.operational-sidebar .sidebar-toggle { min-height: 36px; padding: .3rem .2rem; font-size: .75rem; font-weight: 400; line-height: 1.35; gap: .25rem; }
.available-stimulus-card .operational-actions { gap: .45rem; align-items: center; }
.available-stimulus-card .operational-actions form { margin: 0; }
.available-stimulus-card .operational-actions .button { min-height: 32px; padding: .35rem .55rem; font-size: .8rem; line-height: 1.3; white-space: nowrap; }
.cockpit-primary .operational-timeline-list li { padding-block: .45rem; }
@media (min-width: 801px) {
    .operational-sidebar .sidebar-link { padding-inline: .35rem; gap: .4rem; font-size: .8rem; }
    .operational-sidebar[data-collapsed="false"] .sidebar-label { white-space: nowrap; overflow-wrap: normal; }
}

/* Lot 15.10 — compact cockpit actions with on-demand terminal confirmation. */
.cockpit-sync [data-refresh] { width: 32px; min-height: 32px; padding: .2rem; font-size: 1.1rem; line-height: 1; }
.cockpit-primary .operational-control { border: 0; background: none; padding: 0; margin: .8rem 0; width: fit-content; }
.exercise-close-confirmation { min-width: 0; max-width: 100%; }
.exercise-close-confirmation > summary { list-style: none; cursor: pointer; }
.exercise-close-confirmation > summary::-webkit-details-marker { display: none; }
.exercise-close-panel { margin-top: .65rem; padding: .85rem; border: 1px solid #d9a09c; border-radius: 6px; background: #fffaf9; }
.cockpit-primary .exercise-close-panel form { flex-direction: column; align-items: flex-start; }
.cockpit-primary .exercise-close-panel label { white-space: normal; }
.operational-control:has(.exercise-close-confirmation[open]) > .operational-actions { align-items: flex-start; }

/* Shared participant rendering and read-only animator visualization. */
.visibility-options { margin-block: 1rem; }
.visibility-options label { display: block; margin-block: .6rem; }
.stimulus-dialog { width: min(960px, calc(100% - 2rem)); max-width: calc(100% - 2rem); max-height: 88vh; margin: auto; padding: 1.2rem; border: 1px solid #b9c7d5; border-radius: 10px; overflow-y: auto; color: #18202b; }
.stimulus-dialog::backdrop { background: #172332a6; }
.stimulus-dialog-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; position: sticky; top: -1.2rem; background: white; padding-block: .6rem; z-index: 1; }
.stimulus-dialog-header h2 { margin: 0; font-size: 1rem; }
.stimulus-dialog-header button { flex-shrink: 0; }
.stimulus-render { min-width: 0; overflow-wrap: anywhere; }
.stimulus-render h1 { font-size: 1.5rem; }
.stimulus-render .rich-content figure { margin-inline: 0; }
.stimulus-render .rich-content img { display: block; width: auto; max-width: min(100%, 900px); max-height: 65vh; object-fit: contain; }
.stimulus-render .rich-content video { display: block; width: min(100%, 900px); height: auto; aspect-ratio: 16 / 9; max-height: 65vh; object-fit: contain; }
.visualization-context { border-top: 1px solid #dce3eb; margin-top: 1.5rem; padding-top: .6rem; color: #46576c; font-size: .8rem; overflow-wrap: anywhere; }
@media (max-width: 599px) { .stimulus-dialog { padding: .8rem; } .stimulus-dialog-header { top: -.8rem; } }

/* Local confirmations keep operational actions in their current context. */
.stimulus-delete-confirmation { flex-basis: auto; min-width: 0; }
.stimulus-delete-confirmation[open] { flex-basis: 100%; }
.stimulus-delete-panel { padding-top: .5rem; }
.stimulus-delete-panel p { margin: .4rem 0; }
[data-dispatch-confirmation] { margin-top: 1rem; }
[data-dispatch-confirmation] li { overflow-wrap: anywhere; }
[data-cockpit-action-status]:empty { display: none; }
[data-prepare-dispatch][hidden], [data-dispatch-confirmation][hidden] { display: none; }
.stimulus-delete-confirmation > summary { list-style: none; }
.stimulus-delete-confirmation > summary::-webkit-details-marker { display: none; }
.cockpit-primary .available-stimulus-card .button-danger-small { background: #fff; color: #a12b25; }

[data-selection-actions][hidden], [data-dispatch-error]:empty, [data-delete-error]:empty { display: none; }

/* Participant synchronization: retain native hidden behavior on styled buttons. */
[data-participant-refresh][hidden] {
    display: none;
}

.local-send-form {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid #d9e2ec;
    min-width: 0;
}
.local-send-form fieldset { min-width: 0; }
.local-send-form .recipient-selection { max-height: 15rem; overflow-y: auto; }
[data-local-send][hidden] { display: none; }

/* Participant workspace: reading, event rail and future video area. */
.participant-cockpit { min-width: 0; width: 100%; }
.participant-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.5rem; margin-bottom: 1.25rem; }
.participant-heading > div:first-child { flex: 1 1 18rem; }
.participant-heading h1 { margin-bottom: .4rem; font-size: 1.5rem; }
.participant-heading p { margin: .35rem 0; font-size: .85rem; color: #46576c; }
.participant-heading form { margin: 0; }
.participant-state-paused { background: #fff5e9; color: #874300; border-color: #e8cfad; }
.participant-state-open { background: #eaf4ee; color: #22603b; border-color: #b9d6c2; }
.participant-timebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.participant-timebar .operational-clock { border-top: 1px solid #dce3eb; }
.participant-workspace { display: grid; grid-template-columns: minmax(0, 1fr); border: 1px solid #dce3eb; border-radius: 9px; overflow: clip; background: #fff; }
.participant-workspace > * { min-width: 0; padding: 1.25rem; }
.participant-workspace h2 { font-size: 1.15rem; margin-top: 0; overflow-wrap: anywhere; }
.participant-reader { min-height: 24rem; }
.participant-message-heading { border-bottom: 1px solid #dce3eb; padding-bottom: .8rem; margin-bottom: 1.2rem; }
.participant-message-heading h2 { font-size: 1.4rem; }
.participant-message-meta { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; color: #526277; font-size: .8rem; }
.participant-reading-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .8rem; font-size: .85rem; }
.participant-reading-tools:has([data-participant-reading-status]:empty) { display: none; }
.participant-feed { background: #f8fafc; border-top: 1px solid #dce3eb; }
.participant-feed .feed-intro { margin-bottom: 1rem; }
.participant-timeline { list-style: none; padding: 0 0 0 1rem; margin: 0 0 1rem .2rem; border-left: 2px solid #aec3db; }
.participant-event { position: relative; margin: 0 0 1rem; }
.participant-event::before { content: ''; position: absolute; left: -1.35rem; top: 1rem; width: .5rem; height: .5rem; border-radius: 50%; background: #205c9e; border: 2px solid #f8fafc; }
.participant-event a, .participant-notice { display: block; padding: .75rem; border: 1px solid #dce3eb; border-left: 3px solid #638ab7; border-radius: 0 5px 5px 0; background: #fff; overflow-wrap: anywhere; }
.participant-event a { color: #25394f; text-decoration: none; }
.participant-event a:hover { background: #edf3fa; }
.participant-event a[aria-current="true"] { border-left-width: 5px; border-color: #205c9e; background: #eaf2fb; }
.participant-event a[aria-current="true"] strong { text-decoration: underline; text-underline-offset: .2em; }
.participant-event strong { display: block; font-size: .9rem; line-height: 1.4; }
.participant-event time, .participant-event-kind, .participant-notice span, .participant-notice p { display: block; font-size: .75rem; line-height: 1.45; color: #526277; margin-top: .4rem; }
.participant-event .stimulus-level { margin-top: .5rem; }
.participant-notice { border-left-color: #9a7430; background: #fffcf4; }
.participant-feed-empty { font-size: .85rem; color: #526277; }
.participant-visio { border-top: 1px solid #dce3eb; background: #f8fafc; }
.participant-video-placeholder { aspect-ratio: 16 / 9; border: 1px dashed #9badbc; border-radius: 7px; background: #e4ecf1; color: #364f62; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .6rem; padding: .5rem; }
.participant-video-placeholder strong { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.participant-video-placeholder span { font-size: .8rem; }
@media (min-width: 800px) {
    .participant-workspace { grid-template-columns: minmax(0, 65fr) minmax(0, 35fr); }
    .participant-feed { border-top: 0; border-left: 1px solid #dce3eb; }
    .participant-visio { grid-column: 1 / -1; }
    .participant-video-placeholder { max-width: 24rem; }
}
@media (min-width: 1200px) {
    .participant-workspace { grid-template-columns: minmax(0, 55fr) minmax(0, 28fr) minmax(0, 17fr); }
    .participant-visio { grid-column: auto; border-top: 0; border-left: 1px solid #dce3eb; }
    .participant-workspace > * { padding: 1rem; }
    .participant-feed [data-participant-received] { max-height: 70vh; overflow-y: auto; padding: .25rem; }
}
@media (max-width: 599px) {
    .participant-timebar { grid-template-columns: minmax(0, 1fr); }
    .participant-workspace > * { padding: 1rem; }
    .participant-reader { min-height: 15rem; }
}

/* Lot 15.16: two action rows and a transverse sending panel. */
.stimulus-card-actions { display: grid; gap: .5rem; }
.stimulus-card-actions .operational-actions { margin: 0; }
#available > [data-local-send] { padding: .8rem; margin-bottom: 1rem; border: 1px solid #b8c9da; border-radius: 7px; background: #f4f8fc; }
#available > [data-local-send] .local-send-form { border: 0; padding: 0; margin: 0; gap: .65rem; }
#available > [data-local-send] h3, #available > [data-local-send] p { margin: 0; }
#available > [data-local-send] [data-local-send-error]:empty { display: none; }
#available > [data-local-send] .recipient-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); gap: .4rem 1rem; max-height: 12rem; }
.participant-reset { margin-top: .7rem; font-size: .8rem; }
.participant-reset summary { cursor: pointer; text-decoration: underline; }
.participant-reset form { margin-top: .5rem; }
.participant-reset label { display: block; margin-bottom: .5rem; }
.participant-timebar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.participant-timebar .participant-visio { min-width: 0; padding: 1rem; border: 1px solid #dce3eb; border-radius: 7px; grid-column: auto; }
.participant-timebar .participant-visio h2 { margin: 0 0 .6rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.participant-timebar .participant-video-placeholder { aspect-ratio: auto; min-height: 4rem; max-width: none; }
@media (min-width: 800px) { .participant-workspace { grid-template-columns: minmax(0, 70fr) minmax(0, 30fr); } }
@media (max-width: 799px) { .participant-timebar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .participant-timebar .participant-visio { grid-column: 1 / -1; } }
@media (max-width: 599px) { .participant-timebar { grid-template-columns: minmax(0, 1fr); } }

/* Participant synchronization and compact, non-administrative roster. */
.participant-heading-status { display: flex; flex-direction: column; gap: .4rem; }
.participant-sync-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .8rem; color: #46576c; }
[data-participant-sync-message]::before { content: ''; display: inline-block; width: .5rem; height: .5rem; margin-right: .4rem; border-radius: 50%; background: #64748b; }
[data-sync-state="ok"]::before { background: #22804b; }
[data-sync-state="degraded"]::before { background: #a65d09; }
.participant-presence-help { font-size: .78rem; color: #46576c; margin: .6rem 0; }


/* Embedded video is isolated from polling fragments. Never constrain operational width. */
.video-conference { width: 100%; min-width: 0; }
.video-conference-frame { width: 100%; aspect-ratio: 16 / 9; min-height: 180px; overflow: hidden; border-radius: 6px; background: #1f2933; }
.video-conference-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-conference [data-video-status] { font-size: .8rem; margin: .5rem 0; }
.cockpit-instruments .video-placeholder:has([data-video-conference]) { aspect-ratio: auto; padding: .6rem; }

/* Lot 15.20: a working video surface beside compact instruments. */
.cockpit-instruments.cockpit-video-workspace { grid-template-columns: minmax(13.5rem, .65fr) minmax(0, 1.6fr); grid-template-rows: auto; align-items: start; }
.cockpit-information { min-width: 0; display: grid; gap: .65rem; }
.cockpit-video-workspace .instrument-optional { grid-column: 2; grid-row: 1; width: 100%; max-width: none; }
.cockpit-video-workspace .operational-metrics { display: grid; grid-template-columns: minmax(0, 1fr); grid-column: auto; grid-row: auto; gap: .4rem; }
.cockpit-video-workspace .operational-metrics > div { justify-content: space-between; padding: .4rem .65rem; }
.cockpit-video-workspace .instrument-panel { padding: .85rem .7rem; }
.cockpit-video-workspace .split-flap { gap: .12rem; }
.cockpit-video-workspace .flap-cell { width: 1.6rem; height: 2.6rem; }
.cockpit-video-workspace .flap-face { font-size: 1.5rem; }
.cockpit-video-workspace .video-placeholder:has([data-video-conference]) { align-items: stretch; background: #f8fafc; }
.cockpit-video-workspace .video-conference-frame { min-height: 340px; }
.video-conference [hidden] { display: none !important; }
/* Open video is the surface itself; keep status announcements accessible. */
.cockpit-instruments .video-placeholder:has([data-video-frame]:not([hidden])),
.participant-timebar .participant-visio:has([data-video-frame]:not([hidden])) { padding: 0; border: 0; background: transparent; gap: 0; }
.video-placeholder:has([data-video-frame]:not([hidden])) > h2,
.participant-visio:has([data-video-frame]:not([hidden])) > h2 { display: none; }
.video-conference:has([data-video-frame]:not([hidden])) [data-video-status] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.video-conference-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem 1rem; padding: .5rem 0; flex-shrink: 0; }
.video-conference-actions:not(:has(button:not([hidden]))) { display: none; }
.video-conference[data-expanded="true"] { position: fixed; inset: 1rem; z-index: 100; width: auto; height: auto; padding: 0; box-sizing: border-box; background: #fff; color: #18202b; border: 0; border-radius: 6px; box-shadow: 0 0 0 100vmax #18202bcc; display: flex; flex-direction: column; text-align: left; }
.video-conference[data-expanded="true"] .video-conference-frame { flex: 1 1 0; min-height: 0; aspect-ratio: auto; }
body.video-expanded { overflow: hidden; }
.video-focus-guard { position: absolute; width: 1px; height: 1px; padding: 0; clip-path: inset(50%); overflow: hidden; }
@media (max-width: 699px) {
    .cockpit-instruments.cockpit-video-workspace { grid-template-columns: minmax(0, 1fr); }
    .cockpit-video-workspace .instrument-optional { grid-column: 1; grid-row: 2; }
    .cockpit-video-workspace .video-conference-frame { min-height: 260px; }
    .video-conference[data-expanded="true"] { inset: .4rem; }
    .video-conference[data-expanded="true"] .video-conference-frame { min-height: 0; }
}

/* Lot 15.22: consistent operational surfaces, without nested card elevation. */
.operational-layout { --operational-elevation: 0 2px 8px #1f29330d; }
.cockpit-primary > [data-block] > .operational-card,
.cockpit-feed,
.participant-workspace { box-shadow: var(--operational-elevation); }

/* Keep lifecycle commands within the instrumentation column. */
.cockpit-information .operational-metrics { order: 0; }
.cockpit-instruments.cockpit-video-workspace { grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.6fr); }
.cockpit-information .operational-control { width: 100%; margin: 0; }
.cockpit-information .operational-control > .operational-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: .4rem; margin: 0; }
.cockpit-information .operational-control > .operational-actions > form,
.cockpit-information .exercise-close-confirmation { min-width: 0; margin: 0; }
.cockpit-information .operational-control > .operational-actions > form > .button,
.cockpit-information .exercise-close-confirmation > summary { display: flex; justify-content: center; align-items: center; width: 100%; box-sizing: border-box; padding: .5rem .25rem; font-size: .75rem; min-height: 34px; }
.cockpit-information .exercise-close-confirmation[open] { grid-column: 1 / -1; }
.cockpit-information .exercise-close-confirmation[open] > summary { width: calc((100% - .4rem) / 2); margin-left: auto; }
.cockpit-information .exercise-close-panel { width: 100%; box-sizing: border-box; }
.cockpit-information .exercise-close-panel .operational-actions { flex-wrap: wrap; }

/* Two compact temporal instruments beside a dominant video surface. */
.participant-timebar { grid-template-columns: minmax(17rem, 32fr) minmax(0, 68fr); align-items: start; }
.participant-instrumentation { min-width: 0; display: grid; gap: .75rem; }
.participant-instrumentation .instrument-panel { padding: .85rem 1rem; }
.participant-timebar .participant-visio { grid-column: auto; }
.participant-heading-status { padding: .65rem .8rem; border: 1px solid #dce3eb; border-radius: 7px; background: #f8fafc; gap: .45rem; max-width: 100%; box-sizing: border-box; }
.participant-heading-status .participant-sync-tools { gap: .45rem .75rem; }
.participant-heading-status [data-participant-sound] { font-size: .75rem; padding: .35rem .5rem; }

/* The waiting surface has the same dimensions as the normal embedded surface. */
.video-conference-lobby { aspect-ratio: 16 / 9; min-height: 180px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: .65rem; padding: 1rem; border: 1px solid #c8d5e0; border-radius: 6px; background: #edf2f6; color: #344b62; }
.video-conference-lobby-title { font-size: .85rem; }
.video-conference-lobby form { margin: 0; }
.video-conference-lobby [data-video-status] { margin: 0; }
.cockpit-instruments .video-placeholder:has([data-video-conference]),
.participant-timebar .participant-visio:has([data-video-conference]) { padding: 0; border: 0; background: transparent; gap: 0; }
.video-placeholder:has([data-video-conference]) > h2,
.participant-visio:has([data-video-conference]) > h2 { display: none; }
.video-conference:has([data-video-frame]:not([hidden])) .video-conference-lobby { display: contents; }
.video-conference:has([data-video-frame]:not([hidden])) .video-conference-lobby-title { display: none; }
.cockpit-video-workspace .video-conference-lobby { min-height: 340px; }
.participant-visio .video-conference-lobby,
.participant-visio .video-conference:not([data-expanded="true"]) .video-conference-frame { aspect-ratio: auto; height: clamp(260px, 28vw, 400px); min-height: 260px; }
.video-conference-actions,
.video-conference-actions:not(:has(button:not([hidden]))) { display: flex; min-height: 48px; box-sizing: border-box; }
.video-conference-lobby,
.video-conference:not([data-expanded="true"]) .video-conference-frame { box-shadow: var(--operational-elevation); }

@media (max-width: 999px) {
    .cockpit-instruments.cockpit-video-workspace { grid-template-columns: minmax(0, 1fr); }
    .cockpit-video-workspace .instrument-optional { grid-column: 1; grid-row: 2; }
}
@media (max-width: 799px) {
    .participant-timebar { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 699px) {
    .cockpit-video-workspace .video-conference-lobby { min-height: 260px; }
}

/* Lot 15.23: shared preparation console. Operational surfaces stay untouched. */
body:has(> .preparation-shell) { background: #f5f7fa; }
body:has(> .preparation-shell) .header-inner { padding-block: .8rem; }
.preparation-shell { padding: 1.25rem; margin-block: 1.25rem; border-radius: 8px; font-size: .9rem; line-height: 1.5; box-shadow: 0 2px 8px #1f29330d; }
.dashboard-page.preparation-shell, .exercise-back-container.dashboard-width { max-width: 1320px; }
.form-page.preparation-shell, .exercise-back-container.form-width { max-width: 1040px; }
.exercise-back-container:has(+ .preparation-shell) { margin-top: 1rem; margin-bottom: .4rem; }
.preparation-shell h1, .preparation-shell .form-card h1, .preparation-shell .dashboard-header h1 { font-size: 1.6rem; line-height: 1.25; margin: 0 0 .75rem; overflow-wrap: anywhere; }
.preparation-shell h2 { font-size: 1.1rem; margin: 0 0 .65rem; }
.preparation-shell h3 { font-size: .98rem; margin-block: .65rem; }
.preparation-shell p { margin-block: .55rem; }
.preparation-shell .dashboard-label, .preparation-shell .form-label { font-size: .72rem; margin-bottom: .3rem; }
.preparation-shell .dashboard-header { margin-bottom: 1rem; gap: 1rem; }
.preparation-shell .dashboard-card-header { margin-bottom: .8rem; gap: .75rem; flex-wrap: wrap; }
.preparation-shell .dashboard-content { gap: 1rem; }
.preparation-shell .dashboard-card { padding: 1rem; margin-block: .8rem; border-color: #dce3eb; box-shadow: none; }
.preparation-shell .form-card { padding: 0; border: 0; }
.preparation-shell .button { min-height: 36px; padding: .45rem .75rem; font-size: .85rem; }
.preparation-shell .button-small, .preparation-shell .button-danger-small { min-height: 32px; padding: .3rem .6rem; font-size: .8rem; }
.preparation-shell .console-actions, .preparation-shell .preparation-actions, .preparation-shell .row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.preparation-shell .console-actions > form, .preparation-shell .row-actions > form { margin: 0; }
.preparation-shell .console-actions > details[open] { flex-basis: 100%; }
.preparation-shell .console-actions > details[open] form { padding: .75rem; margin-top: .5rem; border: 1px solid #d7a9a9; border-radius: 6px; }
.preparation-shell .console-actions > details[open] button { align-self: flex-start; }
.preparation-shell .console-disclosure { padding: .75rem; }
.preparation-shell .console-disclosure > form { margin-top: .8rem; }
.preparation-shell .console-disclosure:not([open]) { border: 0; padding: 0; }
.preparation-shell details > summary { cursor: pointer; }
.preparation-shell details > summary:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
.preparation-shell .exercise-list { gap: .5rem; }
.preparation-shell .exercise-item { padding: .85rem 1rem; gap: 1rem; background: #fff; align-items: center; }
.preparation-shell .exercise-item > div:first-child { min-width: 0; flex: 1; }
.preparation-shell .exercise-item h3 { margin: 0 0 .2rem; font-size: 1rem; overflow-wrap: anywhere; }
.preparation-shell .exercise-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #46576d; font-size: .84rem; overflow-wrap: anywhere; }
.preparation-shell .exercise-meta { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; max-width: 40%; font-size: .82rem; }
.preparation-shell .exercise-status { padding: .2rem .55rem; font-size: .75rem; white-space: nowrap; }
.preparation-shell .exercise-status-open { background: #eaf4ee; color: #22603b; }
.preparation-shell .exercise-status-paused, .preparation-shell .exercise-status-waiting_room { background: #fff5e9; color: #874300; }
.preparation-shell .exercise-status-preparation { background: #edf3fa; color: #204a80; }
.preparation-shell .exercise-navigation { margin-bottom: 1rem; }
.preparation-shell .console-context { display: flex; flex-wrap: wrap; gap: .35rem .8rem; align-items: center; padding-bottom: .55rem; color: #46576d; font-size: .8rem; }
.preparation-shell .console-context strong { font-size: .95rem; color: #18202b; overflow-wrap: anywhere; }
.preparation-shell .exercise-navigation nav { gap: .3rem; padding-bottom: .3rem; }
.preparation-shell .exercise-navigation nav a { min-height: 36px; padding: .4rem .65rem; font-size: .85rem; }
.preparation-shell .exercise-form { gap: 1rem; }
.preparation-shell .form-group { gap: .35rem; min-width: 0; }
.preparation-shell .form-group input, .preparation-shell .form-group select, .preparation-shell .form-group textarea { padding: .55rem .65rem; font-size: .9rem; }
.preparation-shell .form-actions { gap: .5rem; margin-top: .25rem; }
.preparation-shell .participant-fields, .preparation-shell .scenario-fields { gap: .8rem; }
.preparation-shell .console-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.preparation-shell .console-fields > :first-child { grid-column: 1 / -1; }
.preparation-shell :is(.planned-roles, .visibility-options, .scenario-notice, .preparation-notice) { padding: .85rem; margin-block: .6rem; }
.preparation-shell .console-metadata { display: flex; flex-wrap: wrap; gap: .4rem 1rem; padding: .8rem; margin-block: .8rem; background: #f5f7fa; border: 1px solid #dce3eb; border-radius: 6px; color: #46576d; font-size: .85rem; }
.preparation-shell .console-metadata p { margin: 0; }
.preparation-shell .rich-content { font-size: 1rem; line-height: 1.65; }
.preparation-shell .preparation-list { margin: .5rem 0; }
.preparation-shell .preparation-list li { padding: .65rem 0; gap: .75rem; align-items: center; }
.preparation-shell .preparation-list .row-content { min-width: 0; overflow-wrap: anywhere; }
.preparation-shell .row-actions { padding-left: 0; }
.preparation-shell .exercise-metrics, .preparation-shell .invitation-metrics { gap: .65rem; margin-block: .9rem; }
.preparation-shell .exercise-metrics > div, .preparation-shell .invitation-metrics > div { padding: .65rem .8rem; }
.preparation-shell .exercise-metrics dd, .preparation-shell .invitation-metrics dd { margin: .2rem 0 0; font-size: 1.3rem; }
.preparation-shell .opening-warning { padding: 1rem; }
.preparation-shell .advanced-access { margin-block: 1rem; padding-block: .75rem; }
.preparation-shell .stimuli-table th, .preparation-shell .stimuli-table td, .preparation-shell .invitation-list th, .preparation-shell .invitation-list td { padding: .6rem; font-size: .84rem; }
.preparation-shell .media-list .media-thumbnail { max-width: 240px; max-height: 150px; }
@media (min-width: 1100px) {
    .preparation-shell .preparation-people { grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); align-items: start; }
    .preparation-shell .preparation-people .dashboard-card { margin-block: 0; }
    .preparation-shell .console-disclosure > .exercise-form { flex-direction: row; align-items: end; }
    .preparation-shell .console-disclosure > .exercise-form .form-group { flex: 1; }
}
@media (max-width: 700px) {
    .preparation-shell { width: calc(100% - 16px); padding: 1rem; }
    .preparation-shell .console-fields { grid-template-columns: minmax(0, 1fr); }
    .preparation-shell .exercise-item { flex-direction: column; align-items: stretch; }
    .preparation-shell .exercise-meta { max-width: none; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
    .preparation-shell .console-actions, .preparation-shell .row-actions { max-width: 100%; }
}

/* Lot 15.24: page landmarks and text navigation, outside operational layouts. */
.dashboard-page-heading { max-width: 1320px; width: calc(100% - 32px); margin: 1.25rem auto 0; padding-inline: 1.25rem; font-size: .9rem; line-height: 1.5; }
.dashboard-page-heading .dashboard-header { margin: 0; }
.dashboard-page-heading h1 { font-size: 1.6rem; line-height: 1.25; margin: 0 0 .75rem; }
.dashboard-page-heading .dashboard-label { font-size: .72rem; margin-bottom: .3rem; }
.dashboard-page-heading p { margin-block: .55rem; }
:is(.main-nav, .preparation-shell, .exercise-back-container) a:not(.button):hover,
:is(.main-nav, .preparation-shell, .exercise-back-container) a:not(.button):focus-visible { color: #2056a0; }
:is(.main-nav, .preparation-shell, .exercise-back-container) a:not(.button):focus-visible,
.site-header .brand:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }
@media (max-width: 700px) {
    .site-header .header-inner { flex-wrap: wrap; gap: 12px; padding: 16px; }
    .site-header .main-nav { flex-wrap: wrap; gap: 12px; }
    .dashboard-page-heading { width: calc(100% - 16px); padding-inline: 1rem; }
}

/* Rich stimulus preview: source editing stays in Code, presentation stays isolated. */
criselab-stimulus { display: block; min-width: 0; max-width: 100%; contain: layout paint style; overflow: auto; }
.editor-rich-preview { min-height: 210px; resize: vertical; overflow: auto; border: 1px solid #cbd5e1; padding: .75rem; border-radius: 4px; }
.editor-rich-preview[hidden] { display: none; }
.editor-rich-preview:focus-visible { outline: 3px solid #226ac5; outline-offset: 3px; }

/* Compact, informative counterpart of the detailed participant management block. */
.cockpit-primary > [data-block] > .presence-summary { padding: .8rem 1rem; }
.presence-summary h2 { margin: 0 0 .6rem; font-size: .95rem; }
.presence-summary-list { display: flex; flex-wrap: wrap; gap: .4rem .5rem; margin: 0; padding: 0; list-style: none; }
.presence-summary-item { position: relative; min-width: 0; max-width: 100%; box-sizing: border-box; padding: .3rem .55rem; border: 1px solid #d5dde5; border-radius: 5px; background: #edf1f5; color: #364456; font-size: .8rem; line-height: 1.4; overflow-wrap: anywhere; }
.presence-summary-item.is-connected { background: #e2f2e7; border-color: #b7d8c2; color: #155c34; }
.presence-summary-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.presence-summary-empty { font-size: .85rem; color: #526277; }

/* Permanent participant presence beneath the existing temporal instruments. */
.participant-instrumentation .participant-presence-summary { padding: .75rem .85rem; }
.participant-presence-summary h2 { text-transform: none; letter-spacing: normal; font-size: .85rem; }

/* Compact sound toggle: accessible state is carried by the native button. */
[data-participant-sound] { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 32px; }
[data-participant-sound][hidden] { display: none; }
[data-participant-sound][aria-pressed="false"] .sound-icon-on,
[data-participant-sound][aria-pressed="true"] .sound-icon-off { display: none; }

/* Historical recipient identities only; shared by participant feed and reader. */
.participant-dispatch-recipients { list-style: none; padding: 0; margin: .5rem 0; font-size: .78rem; line-height: 1.45; color: #46576c; overflow-wrap: anywhere; }
.participant-dispatch-recipients li { margin: .15rem 0; }
.participant-message-recipients { margin-top: .65rem; font-size: .8rem; color: #526277; }
.operational-dashboard-link { margin-left: auto; color: #25394f; font-size: .85rem; }
.operational-header:has(.operational-dashboard-link) form { margin-left: 0; }
.operational-dashboard-link:focus-visible { outline: 2px solid #226ac5; outline-offset: 3px; }
