:root {
  --ink: #13243a;
  --ink-soft: #41516a;
  --muted: #718097;
  --line: #dfe5ec;
  --line-strong: #ccd5df;
  --paper: #ffffff;
  --canvas: #f3f6f8;
  --navy: #112841;
  --navy-deep: #0b1d30;
  --cyan: #14b8c4;
  --cyan-dark: #087d8a;
  --lime: #a9d040;
  --coral: #ef6b61;
  --amber: #e7a93f;
  --success: #278a63;
  --shadow: 0 18px 45px rgba(17, 40, 65, .09);
  --shadow-soft: 0 6px 18px rgba(17, 40, 65, .07);
  --radius: 16px;
  font-family: Inter, Aptos, "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; background: var(--canvas); color: var(--ink); }
img, video, canvas { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, p, label, dt, dd { overflow-wrap: anywhere; }
h1 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.05; letter-spacing: -.045em; margin-bottom: .6rem; }
h2 { letter-spacing: -.025em; }
p { line-height: 1.65; }
code { padding: .18rem .42rem; border-radius: 5px; background: #eef2f5; font-size: .83rem; }
.muted { color: var(--muted); }
.optional { color: var(--muted); font-size: .75rem; font-weight: 500; }
.eyebrow, .overline { display: block; color: var(--cyan-dark); font-size: .7rem; font-weight: 800; letter-spacing: .14em; margin-bottom: .65rem; }

.topbar { height: 74px; padding: 0 max(24px, calc((100vw - 1440px) / 2)); display: flex; align-items: center; justify-content: space-between; background: var(--paper); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 30; }
.brand { display: inline-flex; align-items: center; gap: .7rem; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; background: var(--navy); color: white; border-radius: 11px 3px 11px 3px; font-size: 1.2rem; font-weight: 800; box-shadow: inset -6px -6px 0 rgba(20, 184, 196, .25); }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.brand strong { font-size: 1.08rem; letter-spacing: -.02em; }
.brand small { margin-top: .28rem; color: var(--muted); font-size: .6rem; text-transform: uppercase; letter-spacing: .12em; }
.user-menu { display: flex; align-items: center; gap: .85rem; font-size: .85rem; }
.language-switch { display: inline-flex; align-items: center; gap: 2px; padding: 2px; margin: 0; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); }
.language-switch button, .language-switch a { display: grid; place-items: center; min-width: 30px; min-height: 25px; padding: 0 7px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font: 800 .67rem/1 var(--font); letter-spacing: .06em; text-decoration: none; cursor: pointer; }
.language-switch .active { background: var(--navy); color: white; }
.install-language-switch { width: max-content; position: fixed; top: 18px; right: 22px; z-index: 5; }
.role-chip { background: #e6f6f7; color: #087683; border-radius: 999px; padding: .35rem .6rem; font-size: .62rem; font-weight: 800; letter-spacing: .09em; }
.user-name { font-weight: 650; }
.link-button { border: 0; border-left: 1px solid var(--line); padding: .25rem 0 .25rem .85rem; color: var(--muted); background: none; cursor: pointer; }
.link-button:hover { color: var(--ink); }
.page-shell { width: min(1440px, 100%); min-height: calc(100vh - 124px); padding: 36px clamp(20px, 3vw, 48px) 60px; margin: auto; }
.has-global-nav .page-shell { min-height: calc(100vh - 172px); }
.footer { min-height: 50px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0 max(24px, calc((100vw - 1344px) / 2)); color: var(--muted); background: var(--paper); border-top: 1px solid var(--line); font-size: .7rem; letter-spacing: .04em; }

.global-nav { height: 48px; position: sticky; top: 74px; z-index: 29; color: #d7e0e8; background: var(--navy); border-bottom: 1px solid #26425e; box-shadow: 0 5px 15px rgba(10,29,48,.1); }
.global-nav-inner { width: min(1440px, 100%); height: 100%; padding: 0 clamp(20px, 3vw, 48px); margin: auto; display: flex; align-items: stretch; gap: 1rem; }
.global-nav-scope { min-width: max-content; padding-right: 1rem; display: flex; align-items: center; color: #8fa4b7; border-right: 1px solid rgba(255,255,255,.11); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.global-nav-links { min-width: 0; flex: 1; display: flex; align-items: stretch; gap: 2px; overflow: visible; }
.global-nav-links::-webkit-scrollbar { display: none; }
.global-nav-link { min-width: max-content; padding: 0 .85rem; display: inline-flex; align-items: center; gap: .45rem; position: relative; color: #bdcad5; font-size: .7rem; font-weight: 700; transition: color .15s ease, background .15s ease; }
.global-nav-link > span { color: #8fa8ba; font-size: .85rem; }
.global-nav-link:hover { color: white; background: rgba(255,255,255,.06); }
.global-nav-link.active { color: white; background: rgba(255,255,255,.09); }
.global-nav-link.active > span { color: var(--lime); }
.global-nav-link.active::after { content: ""; height: 3px; position: absolute; left: .65rem; right: .65rem; bottom: 0; background: var(--cyan); border-radius: 3px 3px 0 0; }
.global-nav-link:focus-visible { outline: 2px solid var(--lime); outline-offset: -3px; }
.global-nav-menu { min-width: 0; position: relative; }
.global-nav-menu > summary { list-style: none; }
.global-nav-menu > summary::-webkit-details-marker { display: none; }
.global-nav-menu-trigger { height: 100%; min-width: max-content; padding: 0 .85rem; display: flex; align-items: center; gap: .45rem; position: relative; color: #bdcad5; font-size: .7rem; font-weight: 700; cursor: pointer; user-select: none; transition: color .15s ease, background .15s ease; }
.global-nav-menu-trigger > span:first-child { color: #8fa8ba; font-size: .85rem; }
.global-nav-menu-trigger:hover, .global-nav-menu[open] > .global-nav-menu-trigger { color: white; background: rgba(255,255,255,.07); }
.global-nav-menu.is-active > .global-nav-menu-trigger { color: white; background: rgba(255,255,255,.09); }
.global-nav-menu.is-active > .global-nav-menu-trigger > span:first-child { color: var(--lime); }
.global-nav-menu.is-active > .global-nav-menu-trigger::after { content: ""; height: 3px; position: absolute; left: .65rem; right: .65rem; bottom: 0; background: var(--cyan); border-radius: 3px 3px 0 0; }
.global-nav-menu-trigger:focus-visible { outline: 2px solid var(--lime); outline-offset: -3px; }
.global-nav-menu-chevron { margin-left: .15rem; color: #8fa8ba; font-size: .72rem; transition: transform .16s ease; }
.global-nav-menu[open] .global-nav-menu-chevron { transform: rotate(180deg); }
.global-nav-submenu { width: 290px; max-height: min(70vh, 620px); padding: 10px; display: grid; gap: 4px; position: absolute; top: calc(100% + 8px); left: 0; overflow-y: auto; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 20px 45px rgba(5,25,45,.22); z-index: 50; }
.global-nav-menu:last-child .global-nav-submenu { right: 0; left: auto; }
.global-nav-submenu-wide { width: min(570px, calc(100vw - 32px)); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.global-nav-submenu-link { min-width: 0; min-height: 45px; padding: .65rem .75rem; display: grid; grid-template-columns: 28px minmax(0,1fr); gap: .55rem; align-items: center; color: var(--ink-soft); border-radius: 8px; font-size: .72rem; font-weight: 700; }
.global-nav-submenu-link > span:first-child { width: 28px; height: 28px; display: grid; place-items: center; color: var(--cyan-dark); background: #edf7f7; border-radius: 7px; }
.global-nav-submenu-link:hover { color: var(--ink); background: #f2f6f8; }
.global-nav-submenu-link.active { color: white; background: var(--navy); }
.global-nav-submenu-link.active > span:first-child { color: var(--navy); background: var(--lime); }
.global-nav-submenu-link:focus-visible { outline: 2px solid var(--cyan-dark); outline-offset: -2px; }

.button { min-height: 42px; max-width: 100%; padding: .7rem 1.15rem; display: inline-flex; align-items: center; justify-content: center; gap: .65rem; border-radius: 9px; border: 1px solid transparent; font-weight: 700; font-size: .83rem; text-align: center; white-space: normal; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--navy); box-shadow: 0 6px 16px rgba(17, 40, 65, .16); }
.button-primary:hover { background: #183755; box-shadow: 0 8px 20px rgba(17, 40, 65, .2); }
.button-secondary { background: white; color: var(--ink); border-color: var(--line-strong); }
.button-secondary:hover { border-color: var(--cyan); }
.button-ghost { color: var(--ink-soft); background: transparent; }
.button-large { min-height: 50px; padding-inline: 1.4rem; }
.button:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.button-danger-soft { color: #a8423c; background: #fff2f1; border-color: #efcbc8; }
.button-danger-soft:hover { background: #ffe9e7; border-color: var(--coral); }
.button-danger { color: white; background: #a93434; border-color: #a93434; box-shadow: 0 7px 18px rgba(169,52,52,.2); }
.button-danger:hover { background: #8e2525; border-color: #8e2525; }
.button-light { color: #7c2020; background: white; border-color: rgba(255,255,255,.8); }
.icon-button { width: 40px; height: 40px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: white; cursor: pointer; font-size: 1.15rem; }
.icon-button:hover { border-color: var(--cyan); }
.icon-button.danger:hover { border-color: var(--coral); color: var(--coral); }
.action-group { min-width: 0; display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }

label { display: flex; flex-direction: column; gap: .42rem; color: var(--ink-soft); font-size: .78rem; font-weight: 700; }
input, select, textarea { width: 100%; min-width: 0; max-width: 100%; border: 1px solid var(--line-strong); border-radius: 8px; background: white; color: var(--ink); outline: none; padding: .72rem .78rem; transition: border .15s ease, box-shadow .15s ease; }
input, select { min-height: 44px; }
textarea { resize: vertical; line-height: 1.55; }
input:focus, select:focus, textarea:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(20, 184, 196, .12); }
fieldset { margin: 0; padding: 1.15rem; border: 1px solid var(--line); border-radius: 10px; }
legend { padding: 0 .45rem; color: var(--navy); font-size: .73rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
hr { width: 100%; height: 1px; margin: .35rem 0; border: 0; background: var(--line); }
.form-stack { display: flex; flex-direction: column; gap: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.check-label { flex-direction: row; align-items: center; gap: .65rem; }
.check-label input { width: 17px; min-height: auto; height: 17px; accent-color: var(--navy); }
.inline-form { display: flex; align-items: flex-end; gap: .7rem; }
.inline-form select { min-width: 210px; }
.flash { max-width: 1100px; margin: 0 auto 18px; padding: .85rem 1rem; border-radius: 9px; font-size: .84rem; font-weight: 650; }
.flash-success { color: #176847; background: #e8f6f0; border: 1px solid #bfe5d4; }
.flash-error { color: #a43b35; background: #fff0ef; border: 1px solid #f4cbc8; }
.flash-warning { color: #805514; background: #fff8e7; border: 1px solid #efdfb2; }

/* Installation */
.install-page { background: var(--navy-deep); }
.install-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(300px, .8fr) minmax(520px, 1.2fr); }
.install-intro { padding: clamp(50px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; color: white; position: relative; overflow: hidden; }
.install-intro::before, .install-intro::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(20, 184, 196, .25); }
.install-intro::before { width: 450px; height: 450px; right: -260px; top: -120px; }
.install-intro::after { width: 300px; height: 300px; left: -190px; bottom: -120px; }
.install-intro .eyebrow { color: var(--lime); }
.install-intro h1 { max-width: 550px; font-size: clamp(2.7rem, 5vw, 5rem); }
.install-intro h1 em { color: var(--cyan); font-style: normal; }
.install-intro p { max-width: 570px; color: #c1cedb; font-size: 1.05rem; }
.feature-list { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .8rem; color: #dce6ed; }
.feature-list li::before { content: "✓"; color: var(--lime); font-weight: 900; margin-right: .7rem; }
.install-card { padding: clamp(28px, 5vw, 80px); background: var(--canvas); overflow-y: auto; }
.install-card > h2 { font-size: 2rem; }
.install-card form { max-width: 740px; }
.success-panel { max-width: 620px; margin: 15vh auto; padding: 3rem; text-align: center; background: white; border-radius: var(--radius); box-shadow: var(--shadow); }
.success-icon { width: 70px; height: 70px; display: grid; place-items: center; margin: 0 auto 1.2rem; color: white; background: var(--success); border-radius: 50%; font-size: 2rem; }

/* Login */
.login-page .page-shell { padding: 0; max-width: none; }
.login-layout { min-height: calc(100vh - 124px); display: grid; grid-template-columns: 1.1fr .9fr; }
.login-story { padding: clamp(50px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; color: white; background: var(--navy-deep); position: relative; overflow: hidden; }
.login-story::after { content: ""; width: 520px; height: 520px; position: absolute; right: -280px; bottom: -300px; border: 80px solid rgba(20, 184, 196, .09); border-radius: 50%; }
.login-story .eyebrow { color: var(--lime); }
.login-story h1 { max-width: 700px; font-size: clamp(3rem, 5vw, 5.5rem); }
.login-story h1 em { color: var(--cyan); font-style: normal; }
.login-story > p { max-width: 630px; color: #bac9d6; font-size: 1.05rem; }
.signal-card { width: fit-content; margin-top: 3rem; padding: .9rem 1.2rem; display: flex; gap: .85rem; align-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 10px; background: rgba(255,255,255,.05); }
.signal-card div { display: flex; flex-direction: column; }
.signal-card small { color: #9eb0c1; margin-top: .2rem; }
.signal-pulse { width: 10px; height: 10px; background: var(--lime); border-radius: 50%; box-shadow: 0 0 0 6px rgba(169,208,64,.12); }
.login-card { width: min(500px, calc(100% - 40px)); align-self: center; justify-self: center; padding: clamp(28px, 4vw, 48px); background: white; border-radius: var(--radius); box-shadow: var(--shadow); }
.card-heading { margin-bottom: .4rem; }
.card-heading h2 { margin-bottom: .4rem; font-size: 1.7rem; }
.card-heading p { color: var(--muted); font-size: .85rem; }
.form-help { margin: 1.1rem 0 0; text-align: center; color: var(--muted); font-size: .73rem; }

/* Shared dashboard */
.hero-panel { min-height: 220px; padding: clamp(30px, 4vw, 54px); display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: white; background: var(--navy); border-radius: var(--radius); position: relative; overflow: hidden; }
.hero-panel::after { content: ""; position: absolute; width: 320px; height: 320px; right: -160px; top: -120px; border: 50px solid rgba(20,184,196,.1); border-radius: 50%; }
.hero-panel .eyebrow { color: var(--lime); }
.hero-panel p { color: #c6d3de; margin-bottom: 0; }
.session-status { min-width: 280px; padding: 1rem 1.15rem; display: flex; gap: .85rem; align-items: flex-start; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 10px; position: relative; z-index: 1; }
.session-status > div { display: flex; flex-direction: column; }
.session-status small { color: #9fb0c0; font-size: .6rem; letter-spacing: .12em; }
.session-status strong { margin: .25rem 0; }
.session-status span:last-child { color: #bed0dc; font-size: .73rem; }
.status-dot { width: 9px; height: 9px; flex: 0 0 auto; margin-top: .3rem; border-radius: 50%; background: #98a5b3; box-shadow: 0 0 0 4px rgba(152,165,179,.15); }
.status-running { background: #5dc294 !important; color: #176847 !important; }
.status-paused { background: #f1b956 !important; color: #7d5311 !important; }
.status-scheduled { background: #7dc3e5 !important; color: #25637f !important; }
.status-draft { background: #aeb8c5 !important; color: #4c596a !important; }
.status-completed { background: #8b9aaa !important; color: #394657 !important; }
.status-archived { background: #c5ccd4 !important; color: #5c6672 !important; }
.dashboard-sections { margin-top: 28px; display: grid; gap: 34px; }
.dashboard-module-section { min-width: 0; }
.dashboard-module-section + .dashboard-module-section { padding-top: 30px; border-top: 1px solid var(--line); }
.dashboard-module-heading { min-width: 0; display: flex; align-items: flex-start; gap: 14px; }
.dashboard-module-heading > span { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; color: var(--cyan-dark); background: #e5f5f6; border-radius: 10px; font-size: .68rem; font-weight: 850; letter-spacing: .08em; }
.dashboard-module-heading > div { min-width: 0; }
.dashboard-module-heading h2 { margin: 0 0 .25rem; font-size: 1.35rem; }
.dashboard-module-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: .8rem; }
.dashboard-module-section-primary { padding: 24px; background: linear-gradient(135deg, #eef8f8, #f7fafb 72%); border: 1px solid #cde4e5; border-radius: 15px; }
.dashboard-module-section-primary + .dashboard-module-section { padding-top: 30px; }
.dashboard-module-section-admin { padding: 24px; background: #e9eef2; border: 1px solid #d4dce3; border-radius: 15px; }
.dashboard-module-section-admin .dashboard-module-heading > span { color: white; background: var(--navy); }
.dashboard-module-section-admin .module-card { min-height: 200px; }
.module-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dashboard-module-section .module-grid { margin-top: 16px; }
.dashboard-module-section-compact .module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.module-card { min-width: 0; min-height: 220px; padding: 26px; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-radius: 13px; position: relative; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border .18s ease; }
.module-card:hover { transform: translateY(-3px); border-color: #b9dfe2; box-shadow: var(--shadow); }
.module-icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 1.8rem; color: white; background: var(--navy); border-radius: 12px; font-size: 1.3rem; font-weight: 700; }
.module-mail .module-icon { background: var(--cyan-dark); }
.module-sound .module-icon { background: #6d4da1; }
.module-survey .module-icon { background: #176f76; }
.module-phishing .module-icon { background: #b44949; }
.module-card small { color: var(--cyan-dark); font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.module-card h2 { margin: .35rem 0; }
.module-card p { color: var(--muted); font-size: .82rem; margin: 0; }
.module-hr .module-icon { background: #4e6075; }
.module-access .module-icon { background: #9b5c25; }
.module-siem .module-icon { background: #283a64; }
.module-regulatory .module-icon { color: #12243a; background: #f2c900; }
.module-scada .module-icon { background: #176b61; }
.module-healthcare .module-icon { background: #b6434c; }
.module-itsm .module-icon { background: #315d7e; }
.module-continuity .module-icon { background: #297b6a; }
.module-evaluation .module-icon { background: #67518d; }
.module-safety .module-icon { background: #a93434; }
.soundboard-shell.safety-stop-active .sound-play { opacity: .55; cursor: not-allowed; }
.module-arrow { position: absolute; right: 25px; top: 28px; font-size: 1.25rem; }
.module-muted { opacity: .58; cursor: default; }
.module-muted:hover { transform: none; box-shadow: none; border-color: var(--line); }
.dashboard-actions { margin-top: 22px; text-align: right; }
.empty-state { padding: 60px 30px; text-align: center; color: var(--muted); background: white; border: 1px dashed var(--line-strong); border-radius: var(--radius); }
.empty-state h2 { color: var(--ink); }
.empty-icon { display: block; margin-bottom: 1rem; color: var(--cyan-dark); font-size: 2.5rem; }
.empty-state.compact { padding: 25px; }
.empty-state.compact p { margin: 0; }

.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 28px; }
.section-heading > *, .context-header > *, .subsection-heading > *, .admin-section > *, .form-grid > * { min-width: 0; }
.section-heading h1 { margin-bottom: .45rem; }
.section-heading p { color: var(--muted); margin-bottom: 0; }
.session-list { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 20px; }
.session-card { padding: 24px; display: flex; flex-direction: column; align-items: stretch; background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-soft); }
.session-card.is-selected { border: 2px solid var(--cyan); padding: 23px; }
.session-card-top { display: flex; justify-content: space-between; margin-bottom: 1.3rem; }
.status-badge { display: inline-flex; width: fit-content; max-width: 100%; padding: .3rem .55rem; border-radius: 999px; background: #e8edf2; color: var(--ink-soft); font-size: .58rem; font-weight: 800; overflow-wrap: anywhere; text-align: center; text-transform: uppercase; letter-spacing: .08em; }
.session-code { font: 700 .72rem ui-monospace, SFMono-Regular, monospace; color: var(--muted); }
.session-card h2 { margin-bottom: .4rem; font-size: 1.2rem; }
.session-card p { min-height: 52px; color: var(--muted); font-size: .8rem; }
.session-meta { padding: .85rem 0; margin-bottom: 1rem; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }

/* Admin */
.admin-layout { display: grid; grid-template-columns: 285px minmax(0, 1fr); gap: 24px; align-items: start; }
.admin-sidebar { padding: 14px; display: flex; flex-direction: column; gap: 5px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.nav-label { padding: .6rem .7rem; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.admin-session-link { padding: .8rem .7rem; display: grid; grid-template-columns: 10px 1fr auto; gap: .7rem; align-items: start; border-radius: 8px; }
.admin-session-link:hover { background: #f3f7f8; }
.admin-session-link.active { background: #e9f6f7; color: #0a6974; }
.admin-session-link > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.admin-session-link strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .79rem; }
.admin-session-link small { margin-top: .22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: .65rem; }
.admin-session-link b { min-width: 24px; padding: .2rem .4rem; text-align: center; background: white; border-radius: 999px; font-size: .65rem; }
.admin-content { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.context-header { padding: 26px; display: flex; justify-content: space-between; gap: 2rem; background: var(--navy); color: white; border-radius: 13px; }
.context-header h2 { margin: .65rem 0 .3rem; font-size: 1.65rem; }
.context-header p { margin: 0; color: #becbd7; }
.access-code-block { min-width: 155px; padding-left: 1.5rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.18); }
.access-code-block small { color: var(--lime); font-size: .58rem; font-weight: 800; letter-spacing: .12em; }
.access-code-block strong { margin-top: .4rem; font: 800 1.05rem ui-monospace, SFMono-Regular, monospace; }
.stats-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 11px; }
.stats-row > div { padding: 18px 22px; display: flex; flex-direction: column; background: white; }
.stats-row strong { font-size: 1.5rem; }
.stats-row span { margin-top: .2rem; color: var(--muted); font-size: .68rem; }
.stats-four { grid-template-columns: repeat(4, 1fr); margin-bottom: 22px; }
.admin-section { padding: 24px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 3px 10px rgba(17,40,65,.025); }
.subsection-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.subsection-heading h2, .subsection-heading h3 { margin-bottom: .25rem; }
.subsection-heading p { margin: 0; color: var(--muted); font-size: .77rem; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .76rem; }
th { padding: .7rem .65rem; text-align: left; color: var(--muted); background: #f6f8fa; font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
td { padding: .85rem .65rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
td small { display: block; margin-top: .2rem; color: var(--muted); }
.table-empty { padding: 2rem; text-align: center; color: var(--muted); }
.compact-list { display: flex; flex-wrap: wrap; gap: 1rem; }
.compact-list > div { min-width: 220px; display: flex; align-items: center; gap: .7rem; }
.compact-list span:last-child { display: flex; flex-direction: column; }
.compact-list small { color: var(--muted); }
.avatar { width: 40px; height: 40px; flex: 0 0 auto; display: inline-grid; place-items: center; border-radius: 50%; background: #dceff1; color: #0a737e; font-style: normal; font-weight: 800; }
.avatar-large { width: 48px; height: 48px; }
.avatar-small { width: 30px; height: 30px; font-size: .72rem; }
.avatar-tiny { width: 28px; height: 28px; font-size: .65rem; }
.modal { width: min(650px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; overflow: auto; overscroll-behavior: contain; border: 0; border-radius: 14px; box-shadow: 0 30px 90px rgba(5,23,39,.3); }
.modal-wide { width: min(820px, calc(100vw - 32px)); }
.modal::backdrop { background: rgba(7, 25, 40, .66); backdrop-filter: blur(3px); }
.modal form { min-width: 0; padding: 28px; }
.modal-heading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .4rem; }
.modal-heading > * { min-width: 0; }
.modal-heading h2 { margin: 0; }
.modal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem; padding-top: .5rem; }
.link-button.danger { color: #b94b45; }

/* Administrators */
.module-admin-accounts .module-icon { color: white; background: #3e5871; }
.admin-account-stats { margin-bottom: 22px; }
.admin-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.admin-account-card { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-soft); }
.admin-account-card.is-inactive { opacity: .72; background: #f8fafb; }
.admin-account-card > header { padding: 21px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: .85rem; border-bottom: 1px solid var(--line); }
.admin-account-avatar { width: 48px; height: 48px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 12px 4px 12px 4px; font-size: 1.15rem; font-weight: 800; }
.admin-account-name { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.admin-account-name h2 { margin: 0; overflow: hidden; text-overflow: ellipsis; font-size: 1.03rem; white-space: nowrap; }
.admin-account-card > header p { margin: .25rem 0 0; color: var(--muted); font-size: .7rem; }
.admin-account-card dl { margin: 0; padding: 18px 21px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-account-card dt { margin-bottom: .3rem; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-account-card dd { margin: 0; overflow-wrap: anywhere; color: var(--ink-soft); font-size: .72rem; }
.admin-account-card > footer { padding: 15px 21px; display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; background: #f7f9fb; border-top: 1px solid var(--line); }
.admin-account-card > footer form { margin: 0 0 0 auto; }
.admin-account-safety { margin-top: 22px; border-left: 4px solid var(--lime); }
.admin-account-safety > div { display: flex; align-items: flex-start; gap: 1rem; }
.admin-account-safety > div > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; color: #176847; background: #e8f6f0; border-radius: 50%; font-weight: 800; }
.admin-account-safety h2 { margin: 0 0 .2rem; font-size: 1rem; }
.admin-account-safety p { margin: 0; color: var(--muted); font-size: .75rem; }

/* Surveys administration */
.survey-admin-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; }
.survey-admin-content { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.survey-sidebar { max-height: calc(100vh - 190px); position: sticky; top: 142px; overflow-y: auto; }
.survey-nav-link { padding: .82rem .7rem; display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; gap: .7rem; align-items: center; border-radius: 8px; }
.survey-nav-link:hover { background: #f3f7f8; }
.survey-nav-link.active { color: #075e67; background: #e7f5f6; }
.survey-nav-link > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.survey-nav-link strong, .survey-nav-link small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.survey-nav-link strong { font-size: .77rem; }
.survey-nav-link small { margin-top: .25rem; color: var(--muted); font-size: .61rem; }
.survey-nav-link b { color: var(--cyan-dark); }
.survey-nav-status { width: 8px; height: 8px; border-radius: 50%; background: #aeb8c5; }
.survey-status-published { background: var(--success); box-shadow: 0 0 0 4px rgba(39,138,99,.1); }
.survey-status-archived { background: #aeb8c5; }
.survey-status-draft { background: var(--amber); }
.sidebar-empty { padding: 1.1rem .7rem; display: flex; flex-direction: column; color: var(--muted); }
.sidebar-empty strong { color: var(--ink); font-size: .75rem; }
.sidebar-empty small { margin-top: .3rem; font-size: .63rem; line-height: 1.5; }
.survey-context-header { background: linear-gradient(118deg, var(--navy), #11565e); }
.survey-context-metrics { min-width: 220px; padding-left: 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; align-items: center; border-left: 1px solid rgba(255,255,255,.16); }
.survey-context-metrics span { display: flex; flex-direction: column; align-items: center; }
.survey-context-metrics strong { color: #c1e9e5; font-size: 2rem; }
.survey-context-metrics small { color: #9fc4c5; font-size: .53rem; letter-spacing: .1em; }
.survey-badge-published { color: #176847; background: #d9f3e8; }
.survey-badge-draft { color: #805514; background: #fff0c9; }
.survey-badge-archived { color: #536171; background: #e7ebef; }
.survey-lock-notice { padding: 16px 18px; display: flex; gap: .9rem; align-items: flex-start; color: #725115; background: #fff9e8; border: 1px solid #efdeb0; border-radius: 10px; }
.survey-lock-notice > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; color: white; background: var(--amber); border-radius: 8px; font-weight: 900; }
.survey-lock-notice strong { display: block; margin-bottom: .15rem; }
.survey-lock-notice p { margin: 0; color: #886728; font-size: .72rem; }
.survey-settings-form { max-width: 900px; }
.form-actions { display: flex; justify-content: flex-end; gap: .7rem; }
.danger-zone { padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--line); }
.danger-zone .link-button { border-left: 0; padding-left: 0; }
.form-hint { padding: .8rem; margin: 0; color: var(--muted); background: #f4f7f8; border-radius: 8px; font-size: .7rem; }
.survey-question-list { display: flex; flex-direction: column; gap: 12px; }
.survey-admin-question { overflow: hidden; background: #fbfcfd; border: 1px solid var(--line); border-radius: 11px; }
.survey-question-summary { padding: 18px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 1rem; align-items: start; }
.survey-question-number { width: 36px; height: 36px; display: grid; place-items: center; color: #08717c; background: #e3f3f4; border-radius: 9px; font-size: .77rem; font-weight: 900; }
.survey-question-summary h3 { margin: .55rem 0 .25rem; font-size: 1rem; line-height: 1.45; }
.survey-question-summary p { margin: 0; color: var(--muted); font-size: .68rem; }
.survey-order { color: var(--muted); font: 600 .58rem ui-monospace, SFMono-Regular, monospace; }
.survey-type-chip, .required-chip { display: inline-flex; width: fit-content; padding: .25rem .45rem; margin-right: .35rem; border-radius: 999px; color: #3e586a; background: #edf1f4; font-size: .53rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.survey-type-open_text { color: #386d78; background: #e5f3f5; }
.survey-type-single_choice, .survey-type-multiple_choice { color: #654b84; background: #f0eaf7; }
.survey-type-yes_no { color: #25674e; background: #e4f3eb; }
.required-chip { color: #8a5615; background: #fff0ce; }
.condition-summary { display: block; width: fit-content; padding: .3rem .5rem; margin-top: .55rem; color: #765a23; background: #fff6de; border-radius: 6px; font-size: .58rem; }
.survey-option-preview { padding: 0 18px 16px 72px; display: flex; flex-wrap: wrap; gap: 6px; }
.survey-option-preview span { padding: .35rem .55rem; color: var(--ink-soft); background: white; border: 1px solid var(--line); border-radius: 7px; font-size: .62rem; }
.survey-question-editor { border-top: 1px solid var(--line); background: white; }
.survey-question-editor > summary { padding: .8rem 18px; color: var(--cyan-dark); cursor: pointer; font-size: .68rem; font-weight: 800; }
.survey-question-editor[open] > summary { border-bottom: 1px solid var(--line); }
.survey-question-editor .survey-question-form { padding: 20px; }
.survey-question-editor .danger-zone { padding: 0 20px 18px; margin: 0; border: 0; }
.survey-condition-fieldset { display: flex; flex-direction: column; gap: .9rem; background: #f8fafb; }
.survey-session-list { display: flex; flex-direction: column; gap: 8px; }
.survey-session-card { min-height: 76px; padding: 12px 14px; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, auto) auto; gap: 1rem; align-items: center; background: #f8fafb; border: 1px solid var(--line); border-radius: 9px; }
.survey-session-main { min-width: 0; display: flex; align-items: flex-start; gap: .8rem; }
.survey-session-main > div { min-width: 0; display: flex; flex-direction: column; }
.survey-session-main strong, .survey-session-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.survey-session-main strong { font-size: .76rem; }
.survey-session-main small { margin-top: .22rem; color: var(--muted); font-size: .61rem; }
.survey-session-state { display: flex; flex-direction: column; gap: .35rem; color: var(--muted); font-size: .62rem; }
.survey-session-actions { display: flex; align-items: center; gap: .6rem; }
.survey-run-open { color: #176847; background: #dff4ea; }
.survey-run-prepared { color: #75501a; background: #fff0cf; }
.survey-run-closed { color: #566373; background: #e8edf1; }
.survey-setup-card .module-setup-icon { background: #176f76; }

/* Surveys trainer */
.survey-launch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.survey-launch-card { min-width: 0; padding: 24px; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-top: 4px solid #aeb8c5; border-radius: 13px; box-shadow: var(--shadow-soft); }
.survey-launch-open { border-top-color: var(--success); }
.survey-launch-prepared { border-top-color: var(--amber); }
.survey-launch-closed { border-top-color: #8491a0; }
.survey-launch-card > header { display: flex; justify-content: space-between; align-items: flex-start; }
.survey-launch-card > header > div { display: flex; align-items: center; gap: .55rem; }
.survey-question-count { color: var(--muted); font-size: .62rem; }
.survey-card-icon { width: 38px; height: 38px; display: grid; place-items: center; color: #08717c; background: #e3f3f4; border-radius: 9px; font-size: 1.1rem; }
.survey-launch-card h2 { margin: 1.15rem 0 .35rem; font-size: 1.25rem; }
.survey-launch-card > p { min-height: 48px; margin-bottom: 1.2rem; color: var(--muted); font-size: .75rem; }
.survey-progress > div { height: 8px; overflow: hidden; background: #e8edf0; border-radius: 999px; }
.survey-progress > div > span { display: block; height: 100%; background: linear-gradient(90deg, var(--cyan-dark), var(--cyan)); border-radius: inherit; }
.survey-progress p { margin: .45rem 0 0; color: var(--muted); font-size: .62rem; }
.survey-progress strong { color: var(--ink); }
.survey-launch-meta { padding: .8rem 0; margin: 1rem 0; display: grid; grid-template-columns: 1fr 1fr; border-block: 1px solid var(--line); }
.survey-launch-meta div { display: flex; flex-direction: column; }
.survey-launch-meta dt { color: var(--muted); font-size: .55rem; text-transform: uppercase; letter-spacing: .08em; }
.survey-launch-meta dd { margin: .25rem 0 0; font-size: .67rem; font-weight: 700; }
.survey-launch-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .55rem; }
.survey-launch-actions form { display: flex; }
.survey-launch-hint { padding: .7rem; margin-top: 1rem; display: flex; gap: .6rem; color: #685123; background: #fff8e6; border-radius: 8px; }
.survey-launch-hint > span, .survey-response-intro > span { width: 22px; height: 22px; flex: 0 0 auto; display: grid; place-items: center; color: white; background: var(--amber); border-radius: 50%; font: 800 .7rem serif; }
.survey-launch-hint p { margin: 0; font-size: .62rem; }

/* Surveys trainee */
.trainee-survey-grid { max-width: 1050px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.trainee-survey-card { min-height: 230px; padding: 24px; display: grid; grid-template-columns: 52px 1fr; gap: 1rem; background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-soft); }
.trainee-survey-card.is-open { border-color: #a8d7d9; box-shadow: 0 8px 25px rgba(8,125,138,.09); }
.trainee-survey-icon { width: 48px; height: 48px; display: grid; place-items: center; color: white; background: var(--cyan-dark); border-radius: 12px; font-size: 1.2rem; }
.is-submitted .trainee-survey-icon { background: var(--success); border-radius: 50%; }
.is-closed .trainee-survey-icon { background: #8a96a4; }
.trainee-survey-content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.trainee-survey-status { width: 100%; display: flex; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .6rem; }
.trainee-survey-card h2 { margin: 1rem 0 .3rem; font-size: 1.2rem; }
.trainee-survey-card p { color: var(--muted); font-size: .74rem; }
.trainee-survey-card small { margin-top: auto; color: var(--muted); font-size: .62rem; }
.trainee-survey-card .button { margin-top: auto; }

/* Survey response */
.survey-response-shell { max-width: 980px; margin: auto; }
.survey-response-header { padding: clamp(28px, 5vw, 48px); display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; color: white; background: linear-gradient(120deg, var(--navy), #11565e); border-radius: 16px 16px 0 0; }
.survey-response-header .eyebrow { color: var(--lime); }
.survey-response-header h1 { max-width: 710px; }
.survey-response-header p { max-width: 680px; margin: 0; color: #c6dadd; }
.survey-response-meta { min-width: 105px; padding-left: 1.2rem; display: flex; flex-direction: column; align-items: center; border-left: 1px solid rgba(255,255,255,.17); }
.survey-response-meta strong { color: #c6eeeb; font-size: 2.2rem; }
.survey-response-meta span { color: #a6c6c8; font-size: .54rem; letter-spacing: .1em; }
.survey-response-form { padding: clamp(20px, 4vw, 42px); background: white; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; box-shadow: var(--shadow); }
.survey-response-intro { padding: .8rem 1rem; margin-bottom: 1.5rem; display: flex; gap: .7rem; align-items: flex-start; color: #49606c; background: #edf6f6; border-radius: 8px; }
.survey-response-intro > span { background: var(--cyan-dark); }
.survey-response-intro p { margin: 0; font-size: .68rem; }
.survey-response-form .survey-question { padding: 1.35rem 0 1.7rem; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.survey-question > legend { width: 100%; padding: 0; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: .8rem; align-items: center; color: var(--ink); text-transform: none; letter-spacing: normal; font-size: .92rem; line-height: 1.5; }
.survey-question > legend > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; color: #08717c; background: #e4f3f4; border-radius: 9px; font-size: .68rem; }
.survey-question > legend b { color: var(--coral); }
.survey-question-help { margin: .35rem 0 .9rem 48px; color: var(--muted); font-size: .68rem; }
.survey-question > textarea { margin-left: 48px; width: calc(100% - 48px); background: #fbfcfd; }
.survey-choice-grid { margin: .8rem 0 0 48px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.survey-choice-grid label { min-height: 50px; padding: .75rem; flex-direction: row; align-items: center; gap: .7rem; background: #fbfcfd; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.survey-choice-grid label:hover { border-color: #9ecfd3; }
.survey-choice-grid label:has(input:checked) { color: #075e67; background: #e9f6f7; border-color: var(--cyan); }
.survey-choice-grid input { width: 18px; height: 18px; min-height: auto; flex: 0 0 auto; accent-color: var(--cyan-dark); }
.survey-choice-grid span { font-size: .72rem; }
.survey-yes-no { max-width: 430px; }
.survey-submit-bar { padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.survey-submit-bar > div { display: flex; flex-direction: column; }
.survey-submit-bar span { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.survey-thank-you { padding: 70px 30px; text-align: center; background: white; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; box-shadow: var(--shadow); }
.survey-thank-you > span { width: 70px; height: 70px; margin: 0 auto 1.2rem; display: grid; place-items: center; color: white; background: var(--success); border-radius: 50%; font-size: 2rem; }
.survey-thank-you p { color: var(--muted); }
.survey-closed-message > span { background: #8593a1; }

/* Survey results */
.survey-results-document { max-width: 1120px; margin: auto; padding: clamp(28px, 5vw, 65px); background: white; box-shadow: var(--shadow); }
.survey-results-cover { min-height: 230px; display: flex; justify-content: space-between; gap: 2rem; border-bottom: 6px solid var(--navy); }
.survey-results-cover h1 { max-width: 750px; margin-top: 1rem; font-size: clamp(2.2rem, 4vw, 3.5rem); }
.survey-results-cover p { color: var(--cyan-dark); font-size: 1rem; }
.survey-result-context { margin: 24px 0 38px; display: grid; grid-template-columns: 1.2fr 1.3fr 1.3fr .7fr; gap: 1px; background: var(--line); }
.survey-result-context > div { padding: 1rem; display: flex; flex-direction: column; background: #f5f7f9; }
.survey-result-context small { color: var(--muted); font-size: .52rem; letter-spacing: .09em; }
.survey-result-context strong { margin-top: .35rem; font-size: .69rem; }
.survey-result-overview { padding: 24px; display: grid; grid-template-columns: 160px 1fr; gap: 2rem; align-items: center; background: #f1f7f7; border-radius: 12px; }
.survey-donut { width: 140px; height: 140px; display: grid; place-items: center; background: conic-gradient(var(--cyan-dark) calc(var(--survey-progress) * 1%), #dbe5e6 0); border-radius: 50%; }
.survey-donut::before { content: ""; width: 104px; height: 104px; grid-area: 1 / 1; background: #f1f7f7; border-radius: 50%; }
.survey-donut > span { grid-area: 1 / 1; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.survey-donut strong { font-size: 1.55rem; }
.survey-donut small { color: var(--muted); font-size: .58rem; }
.survey-result-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #d8e4e5; }
.survey-result-kpis > div { padding: 1.3rem; display: flex; flex-direction: column; background: white; }
.survey-result-kpis strong { color: var(--cyan-dark); font-size: 1.6rem; }
.survey-result-kpis span { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.survey-result-section { margin-top: 3rem; }
.survey-result-heading { padding-bottom: .8rem; display: grid; grid-template-columns: 42px 1fr; gap: .8rem; border-bottom: 2px solid var(--navy); }
.survey-result-heading > span { width: 38px; height: 38px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 8px; font-size: .65rem; font-weight: 800; }
.survey-result-heading h2 { margin: 0 0 .2rem; }
.survey-result-heading p { margin: 0; color: var(--muted); font-size: .67rem; }
.survey-result-question { padding: 1.5rem 0; border-bottom: 1px solid var(--line); break-inside: avoid; }
.survey-result-question > header { display: grid; grid-template-columns: 42px 1fr; gap: .8rem; }
.survey-result-question > header > span { color: var(--cyan-dark); font-size: .7rem; font-weight: 900; }
.survey-result-question h3 { margin: 0 0 .25rem; font-size: 1rem; line-height: 1.45; }
.survey-result-question header p { margin: 0; color: var(--muted); font-size: .6rem; }
.survey-bars { max-width: 780px; margin: 1rem 0 0 42px; display: flex; flex-direction: column; gap: .75rem; }
.survey-bar-row > div:first-child { display: flex; justify-content: space-between; gap: 1rem; font-size: .67rem; }
.survey-bar-row > div:first-child span { color: var(--muted); }
.survey-bar-track { height: 9px; margin-top: .35rem; overflow: hidden; background: #e9edef; border-radius: 999px; }
.survey-bar-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--cyan-dark), var(--cyan)); border-radius: inherit; }
.survey-keywords { margin: 1rem 0 0 42px; }
.survey-keywords > small { color: var(--muted); font-size: .54rem; letter-spacing: .09em; }
.survey-keywords > div { margin-top: .45rem; display: flex; flex-wrap: wrap; gap: 6px; }
.survey-keywords span { padding: .35rem .55rem; color: #075e67; background: #e6f4f4; border-radius: 999px; font-size: .62rem; }
.survey-keywords b { margin-left: .25rem; }
.survey-open-results { margin: 1rem 0 0 42px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.survey-open-results blockquote { min-width: 0; padding: 1rem; margin: 0; background: #f7f9fa; border-left: 3px solid var(--cyan); }
.survey-open-results p { margin-bottom: .6rem; color: var(--ink-soft); font-size: .69rem; line-height: 1.6; overflow-wrap: anywhere; }
.survey-open-results footer { color: var(--muted); font-size: .58rem; font-weight: 700; }
.survey-participant-table-wrap { overflow-x: auto; }
.survey-participant-table { margin-top: 1rem; }
.survey-assignment-submitted { color: #176847; background: #dff4ea; }
.survey-assignment-in_progress { color: #75501a; background: #fff0cf; }
.survey-assignment-pending { color: #586575; background: #e8edf1; }

/* Soundboard administration */
.module-setup-card { max-width: 850px; margin: 55px auto; padding: clamp(30px, 5vw, 55px); display: grid; grid-template-columns: 90px 1fr; gap: 2rem; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.module-setup-icon { width: 82px; height: 82px; display: grid; place-items: center; color: white; background: #6d4da1; border-radius: 24px 8px 24px 8px; font-size: 2rem; box-shadow: inset -13px -13px 0 rgba(255,255,255,.08); }
.module-setup-card h2 { font-size: 1.8rem; margin-bottom: .5rem; }
.module-setup-card p { color: var(--muted); }
.module-setup-card ul { margin: 1.2rem 0 1.7rem; padding-left: 1.2rem; color: var(--ink-soft); line-height: 1.8; }
.sound-admin-layout { display: grid; grid-template-columns: 285px minmax(0, 1fr); gap: 24px; align-items: start; }
.sound-admin-content { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.sound-context-header { background: linear-gradient(120deg, var(--navy), #372c5c); }
.sound-context-count { min-width: 150px; padding-left: 1.5rem; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; border-left: 1px solid rgba(255,255,255,.16); }
.sound-context-count strong { font-size: 2.4rem; color: #d8c9f3; }
.sound-context-count small { color: #b9abc9; font-size: .56rem; letter-spacing: .12em; }
.admin-sound-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-sound-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfd; }
.admin-sound-card.is-disabled { opacity: .66; background: #f2f3f5; }
.admin-sound-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.admin-sound-card h3 { margin: 1rem 0 .35rem; font-size: 1.05rem; }
.admin-sound-card > p { min-height: 38px; color: var(--muted); font-size: .7rem; }
.admin-sound-card audio { width: 100%; height: 34px; margin: .35rem 0 1rem; }
.sound-file-size { color: var(--muted); font-size: .62rem; }
.sound-category { width: fit-content; min-height: 27px; padding: .3rem .55rem; display: inline-flex; align-items: center; gap: .38rem; border-radius: 999px; background: #eceff3; color: var(--ink-soft); font-size: .58rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.sound-category i { font-style: normal; font-size: .72rem; }
.category-ambience { color: #347062; background: #e3f3ee; }
.category-hacker { color: #963e53; background: #fbe7ec; }
.category-police { color: #315c98; background: #e6eef9; }
.category-journalist { color: #956817; background: #fbf1d9; }
.category-ccb { color: #674598; background: #eee7f8; }
.category-authority { color: #7a4d32; background: #f5e9e1; }
.category-technical { color: #3f6473; background: #e5f0f3; }
.sound-settings-form { padding-top: 1rem; display: flex; flex-direction: column; gap: .8rem; border-top: 1px solid var(--line); }
.sound-checks { display: flex; flex-wrap: wrap; gap: 1rem; }
.sound-detach-form { margin-top: .7rem; text-align: right; }
.sound-detach-form .link-button { border-left: 0; font-size: .68rem; }
.sound-empty { grid-column: 1 / -1; }
.sound-library-list { display: flex; flex-direction: column; }
.sound-library-list > div { min-height: 62px; padding: .7rem 0; display: grid; grid-template-columns: 115px 1fr auto; gap: .8rem; align-items: center; border-bottom: 1px solid var(--line); }
.sound-library-list > div > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.sound-library-list strong, .sound-library-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sound-library-list strong { font-size: .76rem; }
.sound-library-list small { margin-top: .2rem; color: var(--muted); font-size: .62rem; }

/* Trainer soundboard */
.soundboard-page { background: #edf0f4; }
.soundboard-page .page-shell { width: min(1600px, 100%); padding-top: 28px; }
.soundboard-shell { --sound-purple: #7053a2; }
.soundboard-header { padding: 4px 2px 26px; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; }
.soundboard-header h1 { margin-bottom: .35rem; }
.soundboard-header p { margin-bottom: 0; color: var(--muted); }
.soundboard-live { min-width: 150px; padding: .8rem 1rem; display: flex; align-items: center; gap: .8rem; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-soft); }
.soundboard-live > div { display: flex; flex-direction: column; }
.soundboard-live small { color: var(--muted); font-size: .52rem; letter-spacing: .11em; }
.soundboard-live strong { font-size: 1.4rem; }
.sound-live-pulse { width: 10px; height: 10px; background: #a9b3bf; border-radius: 50%; box-shadow: 0 0 0 5px rgba(169,179,191,.13); }
.has-active-sounds .sound-live-pulse { background: #62c995; box-shadow: 0 0 0 5px rgba(98,201,149,.14); animation: livePulse 1.4s infinite; }
@keyframes livePulse { 50% { transform: scale(.8); opacity: .65; } }
.sound-master-console { min-height: 86px; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; color: white; background: var(--navy-deep); border-radius: 13px; box-shadow: 0 12px 28px rgba(10,29,48,.18); }
.master-status { display: flex; align-items: center; gap: .8rem; }
.master-status > div { display: flex; flex-direction: column; }
.master-status small { color: #8fa1b2; font-size: .55rem; letter-spacing: .13em; }
.master-status strong { margin-top: .22rem; font-size: .85rem; }
.master-symbol { width: 47px; height: 47px; display: grid; place-items: center; color: #d8c9f3; background: rgba(112,83,162,.28); border: 1px solid rgba(216,201,243,.16); border-radius: 10px; font-size: 1.25rem; }
.master-controls { display: flex; align-items: center; gap: 1.3rem; }
.master-volume { min-width: 290px; display: grid; grid-template-columns: auto 1fr 44px; gap: .7rem; align-items: center; color: #b8c5cf; font-size: .65rem; }
.master-volume input, .sound-volume input, .sound-scrubber { min-height: auto; padding: 0; border: 0; box-shadow: none; accent-color: #9b7fc8; }
.master-volume output { text-align: right; color: white; font: 700 .65rem ui-monospace, monospace; }
.stop-all-button { min-height: 48px; padding: .7rem 1.1rem; display: inline-flex; align-items: center; gap: .6rem; color: white; background: #b64745; border: 1px solid #d36964; border-radius: 9px; font-weight: 800; font-size: .72rem; cursor: pointer; }
.stop-all-button:hover { background: #c8514d; }
.soundboard-tools { margin: 20px 0 14px; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.sound-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.sound-filter { min-height: 36px; padding: .5rem .8rem; color: var(--ink-soft); background: white; border: 1px solid var(--line); border-radius: 999px; font-size: .66rem; font-weight: 700; cursor: pointer; }
.sound-filter b { min-width: 18px; padding: .12rem .3rem; margin-left: .3rem; display: inline-block; color: var(--muted); background: #eef1f4; border-radius: 999px; font-size: .55rem; }
.sound-filter.active { color: white; background: var(--navy); border-color: var(--navy); }
.sound-filter.active b { color: var(--navy); background: white; }
.sound-pad-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.sound-pad { min-width: 0; padding: 21px; background: white; border: 1px solid var(--line); border-top: 4px solid #8492a2; border-radius: 12px; box-shadow: var(--shadow-soft); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.sound-pad[hidden] { display: none; }
.sound-pad.is-playing { transform: translateY(-2px); border-color: #9477c2; box-shadow: 0 16px 35px rgba(74,53,108,.16); }
.sound-pad.has-error { border-color: var(--coral); }
.category-border-ambience { border-top-color: #4c9a84; }
.category-border-hacker { border-top-color: #be516b; }
.category-border-police { border-top-color: #4d7fbd; }
.category-border-journalist { border-top-color: #c39437; }
.category-border-ccb { border-top-color: #8060b4; }
.category-border-authority { border-top-color: #9b6849; }
.category-border-technical { border-top-color: #588293; }
.sound-pad-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.sound-state { color: var(--muted); font: 800 .52rem ui-monospace, monospace; letter-spacing: .08em; }
.is-playing .sound-state { color: #278a63; }
.sound-pad h2 { margin: 1rem 0 .4rem; font-size: 1.15rem; }
.sound-pad > p { min-height: 42px; margin-bottom: .9rem; color: var(--muted); font-size: .7rem; }
.sound-wave { height: 52px; padding: 6px 8px; display: flex; align-items: center; justify-content: center; gap: 4px; overflow: hidden; background: #f5f7f9; border-radius: 7px; }
.sound-wave i { width: 3px; height: 18%; background: #a9b4c0; border-radius: 3px; }
.sound-wave i:nth-child(3n) { height: 65%; }.sound-wave i:nth-child(4n) { height: 92%; }.sound-wave i:nth-child(5n) { height: 40%; }.sound-wave i:nth-child(7n) { height: 75%; }
.is-playing .sound-wave i { background: #8163b2; animation: soundBar .75s ease-in-out infinite alternate; }
.is-playing .sound-wave i:nth-child(2n) { animation-delay: -.3s; }.is-playing .sound-wave i:nth-child(3n) { animation-delay: -.55s; }
@keyframes soundBar { from { transform: scaleY(.35); opacity: .55; } to { transform: scaleY(1); opacity: 1; } }
.sound-progress { margin: .8rem 0 1rem; }
.sound-progress input { width: 100%; }
.sound-progress > span { margin-top: .25rem; display: flex; justify-content: space-between; color: var(--muted); font: 600 .55rem ui-monospace, monospace; }
.sound-controls { display: grid; grid-template-columns: 1fr 40px 40px minmax(105px,.8fr); gap: 7px; align-items: center; }
.sound-play { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; color: white; background: var(--navy); border: 0; border-radius: 8px; cursor: pointer; }
.sound-play strong { font-size: .68rem; }
.is-playing .sound-play { background: #4c8c72; }
.sound-stop, .sound-loop { width: 40px; height: 40px; display: grid; place-items: center; color: var(--ink-soft); background: #f4f6f8; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.sound-stop:hover { color: #b64745; border-color: #dca7a4; }
.sound-loop.active { color: #674598; background: #eee7f8; border-color: #cdbce5; }
.sound-volume { display: grid; grid-template-columns: 15px 1fr; gap: .35rem; align-items: center; }
.sound-volume > span { color: var(--muted); }
.sound-volume output { grid-column: 2; text-align: right; color: var(--muted); font: 600 .5rem ui-monospace, monospace; }
.soundboard-empty { grid-column: 1 / -1; }
.soundboard-hint { margin-top: 15px; padding: .8rem 1rem; display: flex; align-items: center; gap: .8rem; color: var(--muted); background: #e7ebf0; border-radius: 8px; }
.soundboard-hint > span { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; color: white; background: #7b8998; border-radius: 50%; font-weight: 800; font-size: .7rem; }
.soundboard-hint p { margin: 0; font-size: .68rem; }

/* Webmail */
.webmail-page { background: #edf1f4; }
.webmail-page .page-shell { width: 100%; max-width: none; padding: 18px; }
.mail-app { min-height: calc(100vh - 160px); display: grid; grid-template-columns: 255px minmax(0, 1fr); overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-soft); }
.mail-sidebar { padding: 20px 14px; display: flex; flex-direction: column; background: #f7f9fa; border-right: 1px solid var(--line); }
.mail-account { padding: 0 8px 18px; display: flex; gap: .7rem; align-items: center; border-bottom: 1px solid var(--line); }
.mail-account > div { min-width: 0; display: flex; flex-direction: column; }
.mail-account strong, .mail-account small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-account strong { font-size: .78rem; }
.mail-account small { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.compose-button { margin: 18px 4px; padding: .8rem 1rem; display: flex; align-items: center; gap: .7rem; color: white; background: var(--navy); border-radius: 9px; font-size: .8rem; font-weight: 700; box-shadow: var(--shadow-soft); }
.compose-button span { font-size: 1.1rem; }
.mail-nav { display: flex; flex-direction: column; gap: 3px; }
.mail-nav a { min-height: 42px; padding: .68rem .7rem; display: grid; grid-template-columns: 25px 1fr auto; align-items: center; border-radius: 7px; color: var(--ink-soft); font-size: .76rem; font-weight: 600; }
.mail-nav a:hover { background: #edf3f4; }
.mail-nav a.active { color: #087580; background: #e1f2f3; }
.mail-nav b { min-width: 22px; padding: .15rem .35rem; text-align: center; color: white; background: var(--coral); border-radius: 999px; font-size: .6rem; }
.nav-icon { color: var(--muted); font-size: 1rem; }
.mail-storage { margin: auto 8px 0; padding-top: 20px; border-top: 1px solid var(--line); }
.mail-storage > div:first-child { display: flex; justify-content: space-between; color: var(--muted); font-size: .58rem; }
.storage-bar { height: 5px; margin-top: .6rem; overflow: hidden; background: #dfe6eb; border-radius: 4px; }
.storage-bar i { display: block; height: 100%; background: var(--cyan); }
.mail-main { min-width: 0; display: flex; flex-direction: column; }
.mail-toolbar { min-height: 105px; padding: 22px 26px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.mail-toolbar h1 { margin: 0; font-size: 1.65rem; }
.mail-toolbar .overline { margin-bottom: .35rem; }
.mail-search { width: min(390px, 42%); }
.mail-search label { position: relative; }
.mail-search label span { position: absolute; left: .85rem; top: .62rem; color: var(--muted); font-size: 1rem; }
.mail-search input { padding-left: 2.35rem; background: #f4f7f9; }
.mail-list { flex: 1; }
.mail-row { min-height: 72px; padding: 10px 24px; display: grid; grid-template-columns: minmax(170px, .8fr) minmax(300px, 2fr) 90px 10px; gap: 1rem; align-items: center; border-bottom: 1px solid #e9edf1; background: #fbfcfd; }
.mail-row:hover { background: #f3f9fa; }
.mail-row.unread { background: white; }
.mail-row.unread .mail-sender, .mail-row.unread .mail-summary strong { font-weight: 800; color: var(--ink); }
.mail-sender { min-width: 0; display: flex; align-items: center; gap: .65rem; color: var(--ink-soft); font-size: .78rem; font-weight: 600; }
.mail-sender span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-summary { min-width: 0; display: flex; flex-direction: column; gap: .27rem; }
.mail-summary strong, .mail-summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-summary strong { font-size: .8rem; }
.mail-summary span { color: var(--muted); font-size: .7rem; }
.mail-row time { text-align: right; color: var(--muted); font-size: .66rem; }
.unread-dot { width: 7px; height: 7px; background: var(--cyan); border-radius: 50%; }
.mail-empty { padding: 80px 30px; text-align: center; color: var(--muted); }
.mail-empty > span { font-size: 2.5rem; color: #afbcc8; }
.mail-empty h2 { color: var(--ink); margin: 1rem 0 .3rem; }
.message-view, .compose-shell { max-width: 1120px; margin: auto; }
.message-actions, .compose-heading { padding: 12px 0 18px; display: flex; justify-content: space-between; align-items: center; }
.message-card, .compose-shell { background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-soft); }
.message-card { padding: clamp(24px, 4vw, 52px); }
.message-subject { padding-bottom: 1.3rem; border-bottom: 1px solid var(--line); }
.message-subject h1 { font-size: 2rem; }
.message-meta { padding: 1.25rem 0; display: grid; grid-template-columns: 42px 1fr auto; gap: .8rem; align-items: start; }
.message-meta > div { display: flex; flex-direction: column; }
.message-meta span, .message-meta small, .message-meta time { color: var(--muted); font-size: .7rem; }
.message-meta small { margin-top: .35rem; }
.message-body { min-height: 230px; padding: 1.7rem 0; color: #263a50; font: 400 .93rem/1.75 Aptos, "Segoe UI", sans-serif; }
.attachment-list { padding-top: 1rem; border-top: 1px solid var(--line); }
.attachment-list h3 { font-size: .8rem; }
.attachment-chip { display: inline-flex; gap: .5rem; padding: .7rem .8rem; background: #f2f6f7; border: 1px solid var(--line); border-radius: 8px; font-size: .72rem; }
.attachment-chip small { color: var(--muted); }
.compose-shell { padding: 0 30px 28px; }
.compose-heading { border-bottom: 1px solid var(--line); }
.compose-heading > div { display: flex; align-items: center; gap: 1rem; }
.compose-heading h1 { margin: 0; font-size: 1.5rem; }
.from-chip { padding: .45rem .7rem; color: var(--muted); background: #f1f5f7; border-radius: 999px; font-size: .65rem; }
.compose-form { display: flex; flex-direction: column; }
.compose-field { min-height: 60px; display: grid; grid-template-columns: 90px 1fr; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.compose-field > label { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.compose-field > input { border: 0; box-shadow: none; }
.recipient-picker { padding: .6rem 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.recipient-option { min-width: 180px; padding: .45rem .55rem; flex-direction: row; align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: 8px; background: white; cursor: pointer; }
.recipient-option:has(input:checked) { border-color: var(--cyan); background: #edfafb; }
.recipient-option input { width: 15px; height: 15px; min-height: auto; accent-color: var(--cyan-dark); }
.recipient-option > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.recipient-option strong, .recipient-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recipient-option strong { font-size: .68rem; }
.recipient-option small { color: var(--muted); font-size: .58rem; }
.message-editor { min-height: 330px; padding: 1.5rem 0; border: 0; border-radius: 0; box-shadow: none !important; resize: vertical; }
.attachment-field { padding: 1rem 0; border-top: 1px solid var(--line); }
.attachment-field input { margin-top: .25rem; background: #f7f9fa; }
.compose-actions { padding-top: 1.1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

/* Trainer */
.trainer-mail-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr); gap: 22px; align-items: start; }
.injection-card, .injection-history { padding: 26px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-soft); }
.session-clock { min-width: 185px; padding-left: 1.5rem; display: flex; flex-direction: column; border-left: 1px solid var(--line); }
.session-clock small, .live-clock small { color: var(--muted); font-size: .56rem; letter-spacing: .11em; }
.session-clock strong { margin: .3rem 0 .15rem; color: var(--cyan-dark); font: 800 1.25rem/1 var(--font-mono, monospace); }
.session-clock span { color: var(--muted); font-size: .62rem; }
.recipient-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: .8rem; }
.recipient-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem .75rem; }
.recipient-actions .link-button { padding: 0; border: 0; font-size: .62rem; }
.recipient-grid { max-height: 230px; padding: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; overflow-y: auto; background: #f6f8fa; border: 1px solid var(--line); border-radius: 9px; }
.trigger-panel { padding: 16px; display: grid; gap: 12px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafb; }
.trigger-panel legend { padding: 0 .4rem; color: var(--navy); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.trigger-settings { padding: 13px; background: white; border: 1px solid var(--line); border-radius: 8px; }
.trigger-settings[hidden] { display: none; }
.offset-presets { margin-top: .65rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.offset-presets button { padding: .4rem .6rem; color: var(--cyan-dark); background: #eaf6f7; border: 1px solid #c4e3e6; border-radius: 6px; font-size: .62rem; font-weight: 800; cursor: pointer; }
.offset-presets button:hover { background: #dceff1; }
.field-help { margin: .65rem 0 0; color: var(--muted); font-size: .64rem; }
.injection-submit { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.injection-submit p { max-width: 58%; margin: 0; color: var(--muted); font-size: .66rem; }
.timeline-list { max-height: 680px; overflow-y: auto; }
.timeline-item { display: grid; grid-template-columns: 12px 1fr; gap: .8rem; padding: .95rem 0; border-bottom: 1px solid var(--line); }
.timeline-dot { width: 9px; height: 9px; margin-top: .35rem; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(39,138,99,.1); }
.timeline-dot.scheduled { background: var(--amber); box-shadow: 0 0 0 4px rgba(231,169,63,.12); }
.timeline-dot.cancelled { background: #9ca8b5; box-shadow: 0 0 0 4px rgba(120,135,150,.12); }
.timeline-item-top { display: flex; justify-content: space-between; gap: .7rem; }
.timeline-item strong { font-size: .75rem; }
.timeline-item p { margin: .25rem 0; color: var(--muted); font-size: .67rem; }
.timeline-item time { color: #94a0ae; font-size: .6rem; }
.timeline-actions { margin-top: .65rem; display: flex; flex-wrap: wrap; gap: .45rem; }
.timeline-actions form { margin: 0; }
.button-small { min-height: 31px; padding: .38rem .65rem; font-size: .62rem; }
.phishing-active-chip { width: max-content; margin-top: .65rem; padding: .35rem .55rem; display: inline-flex; color: #943b3b; background: #fff0ef; border: 1px solid #f0cbc8; border-radius: 999px; font-size: .62rem; font-weight: 800; }
.phishing-classification-panel { padding: 17px; display: grid; gap: 12px; border: 1px solid #e9c2bf; border-radius: 9px; background: #fff8f7; }
.phishing-classification-panel legend { padding: 0 .45rem; color: #943b3b; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.phishing-classification-panel > p { margin: 0; color: #8b5b57; font-size: .63rem; }
.phishing-report-button { color: #8d3434; background: #fff0ef; border: 1px solid #e8b9b5; }
.phishing-report-button:hover { color: white; background: #a94040; border-color: #a94040; }
.phishing-reported-badge { min-height: 38px; padding: .58rem .8rem; display: inline-flex; align-items: center; color: #256b4e; background: #eaf7f0; border: 1px solid #c2e4d2; border-radius: 8px; font-size: .68rem; font-weight: 800; }
.control-strip { min-height: 76px; padding: 12px 16px; margin-bottom: 16px; display: flex; justify-content: space-between; align-items: center; background: var(--navy); color: white; border-radius: 11px; }
.live-state { display: flex; align-items: center; gap: .8rem; }
.live-state > div { display: flex; flex-direction: column; }
.live-state small { color: #9fafbd; font-size: .56rem; letter-spacing: .12em; }
.live-state strong { margin-top: .2rem; font-size: .8rem; }
.live-clock { margin-left: auto; margin-right: 1.2rem; display: flex; flex-direction: column; text-align: right; }
.live-engine { min-width: 190px; margin-left: auto; display: flex; flex-direction: column; text-align: right; }
.live-engine small { color: #9fafbd; font-size: .56rem; letter-spacing: .11em; }
.live-engine strong { margin-top: .2rem; color: #bdebd7; font-size: .68rem; }
.live-engine + .live-clock { margin-left: 1.2rem; }
.live-clock small { color: #9fafbd; }
.live-clock strong { margin-top: .2rem; color: white; font: 800 .9rem/1 var(--font-mono, monospace); }
.session-controls { display: flex; gap: 5px; }
.control-button { min-height: 38px; padding: .55rem .8rem; color: #b9c6d0; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 7px; font-size: .69rem; cursor: pointer; }
.control-button:hover, .control-button.active { color: white; background: rgba(255,255,255,.15); }
.trainer-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; margin-bottom: 18px; }
.participant-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.participant-card { min-width: 0; padding: .75rem; display: flex; align-items: center; gap: .7rem; background: #f7f9fa; border-radius: 8px; }
.participant-card > div { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.participant-card strong, .participant-card span, .participant-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.participant-card strong { font-size: .74rem; }
.participant-card span { color: var(--ink-soft); font-size: .65rem; }
.participant-card small { margin-top: .15rem; color: var(--muted); font-size: .57rem; }
.marker-list { display: flex; flex-direction: column; }
.marker { display: grid; grid-template-columns: 70px 14px 1fr; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.marker time { color: var(--muted); font-size: .65rem; }
.marker-symbol { width: 10px; height: 10px; border: 2px solid white; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 2px var(--cyan); }
.marker-critical_error .marker-symbol { background: var(--coral); box-shadow: 0 0 0 2px var(--coral); }
.marker-good_practice .marker-symbol { background: var(--success); box-shadow: 0 0 0 2px var(--success); }
.marker-decision .marker-symbol { background: var(--amber); box-shadow: 0 0 0 2px var(--amber); }
.marker > div { display: flex; flex-direction: column; }
.marker strong { margin-bottom: .3rem; }
.marker p { margin-bottom: .35rem; color: var(--ink-soft); font-size: .77rem; }
.marker small { color: var(--muted); font-size: .62rem; }

/* Report */
.report-toolbar { max-width: 1050px; margin: 0 auto 18px; display: flex; justify-content: space-between; }
.report-toolbar { align-items: center; gap: 10px; }
.report-editor { max-width: 1050px; margin: 0 auto 18px; }
.report-editor > summary { cursor: pointer; color: var(--navy); font-weight: 800; }
.report-document { max-width: 1050px; margin: auto; padding: clamp(30px, 6vw, 75px); background: white; box-shadow: var(--shadow); }
.report-cover { min-height: 260px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 6px solid var(--navy); }
.report-cover h1 { margin-top: 1rem; font-size: 3rem; }
.report-cover p { color: var(--cyan-dark); font-size: 1.15rem; }
.report-classification { padding: .8rem; text-align: center; color: var(--muted); border: 1px solid var(--line-strong); font-size: .55rem; letter-spacing: .08em; }
.report-classification strong { display: block; margin-top: .25rem; color: var(--navy); font-size: .72rem; }
.report-identity { display: grid; grid-template-columns: 1.5fr 1.2fr .7fr .7fr; gap: 1px; margin: 26px 0 45px; background: var(--line); }
.report-identity > div { padding: 1rem; display: flex; flex-direction: column; background: #f5f7f9; }
.report-identity small { color: var(--muted); font-size: .54rem; letter-spacing: .1em; }
.report-identity strong { margin-top: .3rem; font-size: .72rem; }
.report-section { margin: 2.5rem 0; }
.report-section > h2 { padding-bottom: .6rem; border-bottom: 2px solid var(--navy); font-size: 1.25rem; }
.report-section > p { color: var(--ink-soft); }
.report-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.report-stats > div { padding: 1.1rem; display: flex; flex-direction: column; background: #f2f6f7; }
.report-stats strong { font-size: 1.5rem; color: var(--cyan-dark); }
.report-stats span { color: var(--muted); font-size: .62rem; }
.report-event { display: grid; grid-template-columns: 150px 1fr; gap: 1.4rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.report-event time { color: var(--muted); font-size: .68rem; }
.report-event h3 { margin: .55rem 0 .35rem; font-size: .95rem; }
.report-event p { color: var(--ink-soft); font-size: .77rem; }
.report-event small { color: var(--muted); }
.report-footer { padding-top: 1rem; margin-top: 4rem; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: .6rem; }
.report-phishing-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.report-phishing-sources article { padding: 1rem; background: #f6f8fa; border-radius: 8px; }
.report-phishing-sources h4 { margin: .55rem 0 .3rem; }
.report-phishing-sources p, .report-phishing-sources li { color: var(--ink-soft); font-size: .7rem; }
.report-survey { margin: 1rem 0; padding: 1.1rem; border: 1px solid var(--line); border-radius: 9px; }
.report-survey > h3 { margin-top: 0; }
.report-question { padding: .9rem 0; border-top: 1px solid var(--line); }
.report-question h4 { margin: 0 0 .65rem; }
.survey-distribution { display: flex; flex-wrap: wrap; gap: 7px; }
.survey-distribution span { padding: .45rem .65rem; color: var(--ink-soft); background: #f2f6f7; border-radius: 7px; font-size: .68rem; }
.report-question blockquote { margin: .7rem 0; padding: .7rem 1rem; background: #f7f9fa; border-left: 3px solid var(--cyan-dark); }
.report-question blockquote p { margin: 0 0 .3rem; color: var(--ink-soft); font-size: .74rem; }
.report-question blockquote cite { color: var(--muted); font-size: .62rem; font-style: normal; }
.report-action-line { margin: .55rem 0 0; padding: .55rem; background: #f7f9fa; border-radius: 6px; }
.report-conclusion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.report-conclusion-grid article { min-width: 0; padding: 1rem; background: #f5f8f9; border-radius: 8px; }
.report-conclusion-grid h3 { margin-top: 0; color: var(--cyan-dark); }
.report-conclusion-grid p { margin-bottom: 0; overflow-wrap: anywhere; color: var(--ink-soft); }

/* Session readiness, closing and portable archives */
.context-header-actions { min-width: 0; display: flex; align-items: center; gap: 1rem; }
.context-header-actions .access-code-block { flex: 0 0 auto; }
.governance-context-header { margin-bottom: 22px; background: linear-gradient(118deg, var(--navy), #145962); }
.readiness-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.readiness-item { min-width: 0; padding: .85rem; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: .7rem; background: #f7f9fa; border: 1px solid transparent; border-radius: 8px; }
.readiness-item > div { min-width: 0; display: flex; flex-direction: column; }
.readiness-item strong, .readiness-item small { overflow-wrap: anywhere; }
.readiness-item strong { font-size: .73rem; }
.readiness-item small { margin-top: .18rem; color: var(--muted); font-size: .61rem; }
.readiness-icon { width: 32px; height: 32px; display: grid; place-items: center; color: var(--cyan-dark); background: #e5f5f1; border-radius: 50%; font-weight: 900; }
.readiness-blocking { border-color: #ecc8c4; background: #fff7f6; }
.readiness-blocking .readiness-icon { color: #a94040; background: #f8dfdc; }
.readiness-warning .readiness-icon { color: #8d681f; background: #fbefcf; }
.lifecycle-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lifecycle-card { min-width: 0; padding: 1rem; display: flex; flex-direction: column; align-items: flex-start; background: #f7f9fa; border: 1px solid var(--line); border-radius: 9px; }
.lifecycle-card h3 { margin: .55rem 0 .35rem; }
.lifecycle-card p { flex: 1; color: var(--ink-soft); font-size: .73rem; }
.lifecycle-card .check-label { margin-bottom: .8rem; }

/* Audit trail */
.audit-filter-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr .7fr .7fr; gap: 10px; align-items: end; }
.audit-filter-actions { display: flex; gap: 7px; grid-column: 1 / -1; }
.audit-event-list { display: flex; flex-direction: column; }
.audit-event { min-width: 0; padding: 1rem 0; display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 1.2rem; border-bottom: 1px solid var(--line); }
.audit-event time { color: var(--muted); font-size: .66rem; }
.audit-event h3 { margin: .45rem 0 .25rem; overflow-wrap: anywhere; font: 800 .82rem ui-monospace, monospace; }
.audit-event p { margin: 0 0 .25rem; color: var(--ink-soft); font-size: .72rem; }
.audit-event small { color: var(--muted); }
.audit-event details { margin-top: .7rem; }
.audit-event details summary { cursor: pointer; color: var(--cyan-dark); font-size: .65rem; font-weight: 800; }
.audit-event pre { max-width: 100%; padding: .8rem; overflow: auto; color: #d9e8ef; background: var(--navy); border-radius: 7px; font-size: .62rem; white-space: pre-wrap; overflow-wrap: anywhere; }

/* Module permissions */
.permission-form .subsection-heading { align-items: flex-end; }
.permission-table th:not(:first-child), .permission-table td:not(:first-child) { text-align: center; }
.permission-toggle { min-width: 92px; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; cursor: pointer; }
.permission-toggle input { width: 17px; min-height: auto; height: 17px; accent-color: var(--cyan-dark); }
.permission-toggle span { width: 25px; height: 25px; display: inline-grid; place-items: center; color: var(--cyan-dark); background: #eaf6f7; border-radius: 6px; font-weight: 800; }
.permission-toggle em { display: none; font-style: normal; }
.future-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.future-module-grid > div { min-width: 0; padding: .85rem; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .2rem .65rem; align-items: center; background: #f6f8fa; border-radius: 8px; }
.future-module-grid > div > span { width: 32px; height: 32px; grid-row: 1 / 4; display: grid; place-items: center; color: #7e8b99; background: white; border-radius: 7px; }
.future-module-grid strong { font-size: .7rem; }
.future-module-grid small { overflow: hidden; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.future-module-grid b { color: #9b7a2f; font-size: .55rem; text-transform: uppercase; letter-spacing: .07em; }
.permission-reset { margin-top: 1rem; }
.permission-reset .link-button { padding-left: 0; border-left: 0; }
.module-access-empty { grid-column: 1 / -1; }

/* Phishing administration and scoring */
.phishing-setup-card .module-setup-icon { background: #a94040; }
.phishing-mode-switch { padding: 1rem; flex-direction: row; align-items: center; gap: .8rem; background: #fff7f6; border: 1px solid #ebc7c4; border-radius: 9px; cursor: pointer; }
.phishing-mode-switch input { width: 20px; height: 20px; min-height: auto; accent-color: #a94040; }
.phishing-mode-switch span { display: flex; flex-direction: column; }
.phishing-mode-switch small { margin-top: .2rem; color: var(--muted); }
.score-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.phishing-source-list { display: flex; flex-direction: column; gap: 9px; }
.phishing-source-card { background: #f8fafb; border: 1px solid var(--line); border-radius: 9px; }
.phishing-source-card > summary { padding: .85rem; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto auto; gap: .75rem; align-items: center; cursor: pointer; list-style: none; }
.phishing-source-card > summary::-webkit-details-marker { display: none; }
.phishing-source-card > summary > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.phishing-source-card > summary strong, .phishing-source-card > summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.phishing-source-card > summary strong { font-size: .72rem; }
.phishing-source-card > summary small { color: var(--muted); font-size: .59rem; }
.phishing-source-card > summary > b { color: var(--muted); font-size: .59rem; }
.phishing-source-state { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); }
.phishing-source-state.is-classified { background: var(--success); }
.phishing-source-card > form { padding: 1rem; border-top: 1px solid var(--line); background: white; border-radius: 0 0 9px 9px; }
.phishing-team-score { margin-bottom: 18px; padding: 20px; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 18px; align-items: center; color: white; background: var(--navy); border-radius: 12px; }
.phishing-team-score > div:first-child { display: flex; flex-direction: column; }
.phishing-team-score > div:first-child strong { margin: .25rem 0; font-size: 2.4rem; }
.phishing-team-score > div:first-child small { color: #b8c3ce; }
.phishing-team-score .stats-row { margin: 0; }
.phishing-team-score .stats-row > div { background: rgba(255,255,255,.08); }
.phishing-team-score .stats-row span { color: #bcc8d2; }
.phishing-result-list { display: flex; flex-direction: column; gap: 8px; }
.phishing-result-list > details { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.phishing-result-list summary { padding: .75rem; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto auto; gap: .7rem; align-items: center; background: #f7f9fa; cursor: pointer; list-style: none; }
.phishing-result-list summary::-webkit-details-marker { display: none; }
.phishing-result-list summary span:nth-of-type(2) { color: var(--muted); font-size: .64rem; }
.phishing-result-list summary b { color: var(--cyan-dark); }

/* Sector content studio */
.module-content .module-icon, .content-setup-card .module-setup-icon { background: #5d3f86; }
.content-studio-layout { align-items: start; }
.content-studio-heading .action-group { flex-wrap: wrap; }
.content-sector-mark { width: 34px; height: 34px; display: grid; place-items: center; color: #5d3f86; background: #f0eafb; border-radius: 8px; font-size: .62rem; font-weight: 900; letter-spacing: .04em; }
.content-studio-layout .admin-session-link { grid-template-columns: 34px minmax(0, 1fr) auto; }
.content-context-header { background: linear-gradient(118deg, var(--navy), #563d7c); }
.content-context-metrics { padding-left: 1.6rem; display: grid; grid-template-columns: repeat(3, minmax(70px, 1fr)); gap: 1rem; border-left: 1px solid rgba(255,255,255,.18); }
.content-context-metrics div { display: flex; flex-direction: column; justify-content: center; text-align: center; }
.content-context-metrics strong { color: white; font-size: 1.45rem; }
.content-context-metrics span { color: #c8bfd7; font-size: .59rem; }
.content-generator-panel { border-top: 4px solid #6d4b98; }
.content-generator-form { display: grid; grid-template-columns: 1.35fr .8fr .7fr 1fr auto; gap: .8rem; align-items: end; }
.content-generator-form label { min-width: 0; }
.content-generator-form small { display: block; margin-top: .3rem; color: var(--muted); font-size: .58rem; }
.content-import-panel { padding-block: .8rem; }
.content-import-panel details > summary { display: flex; gap: .65rem; align-items: baseline; cursor: pointer; }
.content-import-panel details > summary span { color: var(--muted); font-size: .66rem; }
.content-import-panel .inline-form { margin-top: 1rem; }
.content-filter-nav { margin: 18px 0 10px; display: flex; gap: 5px; overflow-x: auto; }
.content-filter-nav a { min-width: max-content; padding: .55rem .75rem; color: var(--muted); background: white; border: 1px solid var(--line); border-radius: 7px; font-size: .67rem; font-weight: 700; }
.content-filter-nav a.active { color: white; background: #5d3f86; border-color: #5d3f86; }
.content-filter-nav b { margin-left: .3rem; }
.content-item-list { display: flex; flex-direction: column; gap: 8px; }
.content-item-card { background: white; border: 1px solid var(--line); border-left: 4px solid #83909c; border-radius: 9px; box-shadow: var(--shadow-soft); overflow: hidden; }
.content-item-card.content-type-email { border-left-color: var(--cyan-dark); }
.content-item-card.content-type-document { border-left-color: #5d3f86; }
.content-item-card > summary { padding: .85rem 1rem; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; gap: .8rem; align-items: center; cursor: pointer; list-style: none; }
.content-item-card > summary::-webkit-details-marker { display: none; }
.content-item-card > summary > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.content-item-card > summary small, .content-item-card > summary strong { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.content-item-card > summary small { color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .05em; }
.content-item-card > summary strong { margin-top: .18rem; font-size: .73rem; }
.content-item-card > summary em { margin-top: .3rem; padding: .15rem .35rem; color: #317050; background: #e8f5ee; border-radius: 4px; font-size: .54rem; font-style: normal; font-weight: 800; text-transform: uppercase; }
.content-item-card > summary em.is-phishing { color: #963c3c; background: #fbe9e7; }
.content-item-card > summary > b { color: var(--muted); font-size: .59rem; }
.content-type-icon { width: 36px; height: 36px; display: grid; place-items: center; color: #5d3f86; background: #f1ecf7; border-radius: 8px; font-weight: 900; }
.content-item-editor { padding: 1.1rem; border-top: 1px solid var(--line); background: #fbfcfd; }
.content-editor-actions { display: flex; justify-content: flex-end; }
.content-delete-form { padding: 0 1.1rem 1rem; background: #fbfcfd; }
.content-delete-form .link-button { padding-left: 0; border-left: 0; }
.content-source-picker { border: 1px solid #d9cfea; border-radius: 9px; background: #faf8fd; }
.content-source-picker > summary { padding: .75rem .85rem; display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; }
.content-source-picker > summary strong { color: #5d3f86; font-size: .72rem; }
.content-source-picker > summary span { color: var(--muted); font-size: .62rem; }
.content-source-picker > div { max-height: 230px; padding: .55rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; overflow-y: auto; border-top: 1px solid #e4dced; }
.content-source-picker a { min-width: 0; padding: .6rem; display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: .55rem; align-items: center; background: white; border: 1px solid var(--line); border-radius: 7px; }
.content-source-picker a.active { border-color: #6d4b98; box-shadow: 0 0 0 1px #6d4b98; }
.content-source-picker a > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.content-source-picker a strong, .content-source-picker a small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.content-source-picker a strong { font-size: .65rem; }
.content-source-picker a small { color: var(--muted); font-size: .55rem; }

/* Corporate website simulator administration */
.website-setup-card .module-setup-icon, .module-website .module-icon { background: #176b67; }
.website-admin-layout { align-items: start; }
.website-admin-layout .admin-session-link { grid-template-columns: 34px minmax(0, 1fr) auto; }
.website-list-icon { width: 34px; height: 34px; display: grid; place-items: center; color: #176b67; background: #e5f4f1; border-radius: 8px; font-weight: 900; }
.website-state { min-width: 28px; padding: .2rem .3rem; text-align: center; border-radius: 4px; font-size: .5rem; }
.website-state-published { color: #26704e; background: #dcf2e5; }
.website-state-draft { color: #89671d; background: #f7edcf; }
.website-state-missing { color: var(--muted); background: #edf0f2; }
.website-context-header { background: linear-gradient(118deg, var(--navy), #165f5b); }
.website-context-state { padding-left: 1.6rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.18); text-align: right; }
.website-context-state strong { color: white; font-size: 1rem; }
.website-context-state small { margin-top: .35rem; color: #b9d4d2; font-size: .55rem; }
.website-generate-panel { border-top: 4px solid #176b67; }
.website-generate-form { display: grid; grid-template-columns: .7fr 1.4fr auto; gap: .8rem; align-items: end; }
.website-admin-preview { min-height: 290px; padding: 45px; margin-bottom: 18px; display: flex; flex-direction: column; justify-content: center; color: white; background-size: cover; background-position: center; border-radius: 13px; overflow: hidden; }
.website-admin-preview > span { color: #7de1da; font-size: .62rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.website-admin-preview > strong { max-width: 620px; margin: 1rem 0 .7rem; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; line-height: 1.05; }
.website-admin-preview > p { max-width: 560px; color: #d6e1e6; font-size: .78rem; line-height: 1.6; }
.website-editor { gap: 16px; }
.website-editor-grid, .website-news-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.website-editor fieldset { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 8px; }
.website-stat-editor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.website-stat-editor > div { padding: .8rem; background: #f5f8f8; border-radius: 8px; }
.website-save-bar { padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: sticky; bottom: 12px; z-index: 5; color: white; background: var(--navy); border-radius: 10px; box-shadow: 0 12px 30px rgba(11,29,48,.23); }
.website-save-bar span { color: #b9c7d1; font-size: .62rem; }
.website-danger-zone { padding: 1rem; margin-top: 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; background: #fff8f6; border: 1px solid #efdad3; border-radius: 9px; }
.website-danger-zone strong { font-size: .75rem; }
.website-danger-zone p { margin-top: .2rem; color: var(--muted); font-size: .61rem; }

/* Scenario card catalogue and Trainer PDF composer */
.module-scenario-cards .module-icon, .scenario-card-setup .module-setup-icon { background: #8c522e; }
.module-certificate .module-icon, .certificate-setup .module-setup-icon { background: #9a6b1c; }
.certificate-admin-layout { align-items: start; }
.certificate-context { background: linear-gradient(115deg,#12243a,#5f4a20); }
.certificate-template-form { margin-bottom: 18px; border-top: 4px solid #9a6b1c; }
.certificate-language-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.certificate-language-grid fieldset { min-width: 0; margin: 0; }
.certificate-placeholder-help { padding: .8rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; background: #f6f3ea; border: 1px solid #e7dcc2; border-radius: 8px; }
.certificate-placeholder-help strong { margin-right: .35rem; color: #654d1b; font-size: .68rem; }
.certificate-placeholder-help code { color: #5b4a27; background: white; border: 1px solid #e5dac2; }
.certificate-participant-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.certificate-participant-card { min-width: 0; padding: 1rem; background: #fafbfc; border: 1px solid var(--line); border-top: 4px solid #b9c2c9; border-radius: 9px; }
.certificate-participant-card.ready { border-top-color: #2f8a62; }
.certificate-participant-card.incomplete { border-top-color: #ba6b39; }
.certificate-participant-card > header { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; }
.certificate-participant-card > header > div { min-width: 0; display: flex; align-items: center; gap: .7rem; }
.certificate-participant-card > header > div > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.certificate-participant-card > header strong, .certificate-participant-card > header small { overflow-wrap: anywhere; }
.certificate-participant-card > header small { margin-top: .2rem; color: var(--muted); font-size: .57rem; }
.compact-certificate-profile { margin-top: .9rem; }
.certificate-card-actions { display: flex; justify-content: flex-end; }
.certificate-download-form { padding-top: .65rem; margin-top: .65rem; border-top: 1px solid var(--line); }
.certificate-download-form .link-button { padding-left: 0; border-left: 0; color: #186d78; font-weight: 800; }
.scenario-card-filter, .scenario-context-filter { margin-bottom: 18px; border-top: 4px solid #8c522e; }
.scenario-filter-form { display: grid; grid-template-columns: minmax(180px,.8fr) minmax(140px,.45fr) minmax(260px,1.2fr); gap: 1rem; align-items: end; }
.scenario-filter-note { min-height: 61px; padding: .75rem 1rem; display: flex; flex-direction: column; justify-content: center; background: #f5f1ed; border-radius: 8px; }
.scenario-filter-note strong { color: #704023; font-size: .74rem; }
.scenario-filter-note span { margin-top: .25rem; color: var(--muted); font-size: .6rem; line-height: 1.45; }
.scenario-card-admin-layout { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 18px; align-items: start; }
.scenario-decks { display: flex; flex-direction: column; gap: 11px; }
.scenario-deck { background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-soft); overflow: hidden; }
.scenario-deck > header { padding: .8rem; display: grid; grid-template-columns: 38px 1fr; gap: .7rem; align-items: center; color: white; background: #1d7f89; }
.scenario-deck-d > header { background: #b34b3e; }
.scenario-deck-a > header { background: #2f7d5a; }
.scenario-deck-e > header { background: #7b4d8f; }
.scenario-deck > header > span { width: 38px; height: 38px; display: grid; place-items: center; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.2); border-radius: 8px; font-size: 1rem; font-weight: 900; }
.scenario-deck > header div { display: flex; flex-direction: column; }
.scenario-deck > header strong { font-size: .7rem; }
.scenario-deck > header small { margin-top: .14rem; color: rgba(255,255,255,.7); font-size: .55rem; }
.scenario-deck > div { max-height: 314px; overflow-y: auto; }
.scenario-card-tab { min-height: 50px; padding: .55rem .7rem; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; gap: .55rem; align-items: center; color: inherit; border-bottom: 1px solid #edf0f2; }
.scenario-card-tab:last-child { border-bottom: 0; }
.scenario-card-tab:hover { background: #f7f9fa; }
.scenario-card-tab.active { background: #eef7f8; box-shadow: inset 4px 0 #1d7f89; }
.scenario-card-tab b { font-size: .68rem; }
.scenario-card-tab span { overflow: hidden; color: #263f52; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.scenario-card-tab em { padding: .15rem .3rem; color: #2f7254; background: #e7f3eb; border-radius: 4px; font-size: .46rem; font-style: normal; font-weight: 900; }
.scenario-card-tab.missing em { color: #8b6a26; background: #f8eed3; }
.scenario-card-tab.missing span { color: #8996a2; font-style: italic; }
.scenario-card-editor { min-width: 0; }
.scenario-card-context { min-height: 114px; padding: 1.25rem; margin-bottom: 16px; display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 1.1rem; align-items: center; color: white; background: linear-gradient(120deg,#12243a,#1d7f89); border-radius: 12px; }
.scenario-card-context-d { background: linear-gradient(120deg,#12243a,#a94438); }
.scenario-card-context-a { background: linear-gradient(120deg,#12243a,#2f7656); }
.scenario-card-context-e { background: linear-gradient(120deg,#12243a,#704584); }
.scenario-card-code { width: 72px; height: 72px; display: grid; place-items: center; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.18); border-radius: 11px; font-size: 1.45rem; font-weight: 900; }
.scenario-card-context > div:nth-child(2) { min-width: 0; }
.scenario-card-context > div:nth-child(2) span { color: #89d8df; font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.scenario-card-context h2 { margin: .28rem 0; overflow: hidden; color: white; font-size: 1.3rem; text-overflow: ellipsis; white-space: nowrap; }
.scenario-card-context p { color: #c7d4dd; font-size: .64rem; }
.scenario-card-state { padding: .36rem .5rem; color: #dcc899; background: rgba(128,90,22,.35); border: 1px solid rgba(255,220,149,.22); border-radius: 5px; font-size: .55rem; font-weight: 900; }
.scenario-card-state.ready { color: #b7f0ce; background: rgba(37,117,79,.35); border-color: rgba(174,238,201,.22); }
.scenario-card-form { gap: 16px; }
.scenario-common-switch, .scenario-active-switch { width: 100%; min-width: 0; padding: 1rem; display: grid; grid-template-columns: 22px minmax(0,1fr); gap: .75rem; align-items: start; border-radius: 9px; cursor: pointer; }
.scenario-common-switch { margin-bottom: .8rem; background: #f8f3ee; border: 1px solid #ead8ca; }
.scenario-active-switch { background: #eff8f8; border: 1px solid #c9e4e6; }
.scenario-common-switch input, .scenario-active-switch input { width: 20px; height: 20px; min-height: auto; accent-color: #8c522e; }
.scenario-active-switch input { accent-color: var(--cyan-dark); }
.scenario-common-switch span, .scenario-active-switch span { min-width: 0; display: flex; flex-direction: column; }
.scenario-common-switch strong, .scenario-active-switch strong { font-size: .72rem; line-height: 1.4; }
.scenario-common-switch strong { color: #704023; }
.scenario-active-switch strong { color: #086d78; }
.scenario-common-switch small, .scenario-active-switch small { margin-top: .25rem; color: var(--muted); font-size: .59rem; line-height: 1.5; }
.scenario-card-save-bar { padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: sticky; bottom: 12px; z-index: 5; color: white; background: #12243a; border-radius: 10px; box-shadow: 0 12px 30px rgba(11,29,48,.23); }
.scenario-card-save-bar span { color: #b9c7d1; font-size: .62rem; }
.scenario-card-delete { padding: .9rem 0 0; }
.scenario-card-delete .link-button { padding-left: 0; border-left: 0; }

.scenario-session-banner { padding: 1rem 1.15rem; margin-bottom: 16px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: white; background: #12243a; border-radius: 11px; }
.scenario-session-banner > div { display: flex; align-items: center; gap: .85rem; }
.scenario-session-icon { width: 42px; height: 42px; display: grid; place-items: center; color: #5ee0e9; background: rgba(255,255,255,.09); border-radius: 8px; font-weight: 900; }
.scenario-session-banner > div > div { display: flex; flex-direction: column; }
.scenario-session-banner small { color: #70d4dc; font-size: .54rem; font-weight: 900; letter-spacing: .08em; }
.scenario-session-banner strong { margin: .18rem 0; font-size: .76rem; }
.scenario-session-banner span:not(.scenario-session-icon) { color: #b7c5d0; font-size: .59rem; }
.scenario-session-banner > a { color: #7bdce4; font-size: .63rem; font-weight: 800; }
.scenario-builder-form { display: flex; flex-direction: column; gap: 18px; }
.scenario-duration-panel { display: flex; justify-content: space-between; align-items: center; gap: 2rem; border-top: 4px solid #12243a; }
.scenario-duration-panel h2 { margin: .25rem 0; }
.scenario-duration-panel p { max-width: 650px; color: var(--muted); font-size: .65rem; }
.scenario-duration-options { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.scenario-duration-options label { cursor: pointer; }
.scenario-duration-options input { position: absolute; opacity: 0; pointer-events: none; }
.scenario-duration-options span { min-width: 105px; padding: .7rem 1rem; display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; background: #f4f6f8; border: 2px solid transparent; border-radius: 8px; }
.scenario-duration-options input:checked + span { color: white; background: #8c522e; border-color: #8c522e; box-shadow: 0 0 0 3px #8c522e24; }
.scenario-duration-options strong { font-size: 1.05rem; }
.scenario-duration-options small { color: inherit; opacity: .75; font-size: .56rem; }
.scenario-composer { padding: 1.2rem; background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow-soft); }
.scenario-composer-toolbar { margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.scenario-composer-toolbar h2 { margin-top: .22rem; }
.scenario-composer-toolbar p { max-width: 650px; margin-top: .28rem; color: var(--muted); font-size: .61rem; }
.scenario-composer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.scenario-pick-card { --deck-color:#1d7f89; min-width: 0; background: #fbfcfd; border: 1px solid var(--line); border-top: 4px solid var(--deck-color); border-radius: 9px; overflow: hidden; transition: opacity .2s, transform .2s, box-shadow .2s; }
.scenario-pick-d { --deck-color:#b34b3e; }
.scenario-pick-a { --deck-color:#2f7d5a; }
.scenario-pick-e { --deck-color:#7b4d8f; }
.scenario-pick-card.has-selection { box-shadow: 0 7px 22px color-mix(in srgb,var(--deck-color) 16%,transparent); }
.scenario-pick-card.is-excluded { opacity: .47; }
.scenario-pick-card > header { padding: .9rem; display: grid; grid-template-columns: 22px 42px minmax(0,1fr) auto; gap: .7rem; align-items: center; background: white; border-bottom: 1px solid var(--line); }
.scenario-include input { position: absolute; opacity: 0; }
.scenario-include span { width: 20px; height: 20px; display: grid; place-items: center; border: 2px solid #aab5bd; border-radius: 5px; cursor: pointer; }
.scenario-include input:checked + span { background: var(--deck-color); border-color: var(--deck-color); }
.scenario-include input:checked + span::after { content: '✓'; color: white; font-size: .7rem; font-weight: 900; }
.scenario-pick-code { width: 42px; height: 42px; display: grid; place-items: center; color: white; background: var(--deck-color); border-radius: 8px; font-weight: 900; }
.scenario-pick-card header small { color: var(--deck-color); font-size: .5rem; font-weight: 900; letter-spacing: .06em; }
.scenario-pick-card header h3 { margin-top: .18rem; font-size: .76rem; }
.scenario-pick-card header > b { color: var(--muted); font-size: .58rem; }
.scenario-pick-body { padding: 1rem; }
.scenario-code-input { margin-top: .35rem; display: grid; grid-template-columns: 1fr 45px; }
.scenario-code-input input { border-radius: 7px 0 0 7px; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 1rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.scenario-code-input button { color: white; background: var(--deck-color); border: 0; border-radius: 0 7px 7px 0; cursor: pointer; font-size: 1.05rem; }
.scenario-code-input button:disabled { cursor: not-allowed; opacity: .45; }
.scenario-card-preview { min-height: 49px; padding: .7rem; margin-top: .65rem; display: flex; flex-direction: column; justify-content: center; background: white; border: 1px dashed #cbd4da; border-radius: 7px; }
.scenario-card-preview strong { overflow: hidden; color: #263f52; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.scenario-card-preview span, .scenario-card-preview:not(:has(strong)) { color: var(--muted); font-size: .57rem; }
.scenario-card-preview strong + span { margin-top: .2rem; color: var(--deck-color); font-size: .5rem; font-weight: 900; text-transform: uppercase; }
.scenario-generate-bar { padding: 1rem 1.2rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: white; background: linear-gradient(110deg,#12243a,#244d68); border-radius: 11px; }
.scenario-generate-bar > div { display: flex; flex-direction: column; }
.scenario-reference-preview { color: #67d7e0; font: 900 .8rem ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing: .06em; }
.scenario-generate-bar p { margin-top: .28rem; color: #bac8d2; font-size: .59rem; }
.scenario-history { padding: 1.2rem; margin-top: 20px; background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow-soft); }
.scenario-history .subsection-heading > b { color: #8c522e; font-size: .63rem; }
.scenario-history-list { display: flex; flex-direction: column; gap: 8px; }
.scenario-history-list > article { padding: .8rem; display: grid; grid-template-columns: 112px minmax(0,1fr) auto; gap: 1rem; align-items: center; background: #f7f9fa; border: 1px solid var(--line); border-radius: 8px; }
.scenario-history-ref { display: flex; flex-direction: column; }
.scenario-history-ref span { color: #8c522e; font-size: .5rem; font-weight: 900; }
.scenario-history-ref strong { margin-top: .15rem; font: 800 .63rem ui-monospace,SFMono-Regular,Menlo,monospace; }
.scenario-history-list article > div:nth-child(2) { min-width: 0; }
.scenario-history-list small { color: var(--muted); font-size: .55rem; }
.scenario-history-list h3 { margin: .2rem 0; overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.scenario-history-list p { color: #4d6173; font-size: .58rem; }

/* SharePoint simulation */
.module-sharepoint .module-icon, .sharepoint-setup .module-setup-icon { background: #0f6cbd; }
.sharepoint-page { background: #f3f2f1; }
.sharepoint-page .page-shell { width: 100%; max-width: 1500px; padding: 20px; }
.sp-app { min-height: 720px; background: white; border: 1px solid #dedddc; box-shadow: 0 8px 28px rgba(36,46,56,.08); overflow: hidden; }
.sp-site-header { min-height: 72px; padding: 0 22px; display: grid; grid-template-columns: minmax(220px,.7fr) minmax(280px,1fr) auto; gap: 1.2rem; align-items: center; color: white; background: linear-gradient(100deg,#074a87,#0f6cbd 64%,#2584ce); }
.sp-product-mark, .sp-product-mark > div, .sp-site-context { display: flex; align-items: center; }
.sp-product-mark { gap: .75rem; }
.sp-product-mark > span { width: 39px; height: 39px; display: grid; place-items: center; color: #0f6cbd; background: white; border-radius: 3px 13px 3px 3px; font-size: 1.1rem; font-weight: 900; }
.sp-product-mark > div, .sp-site-context { align-items: flex-start; flex-direction: column; }
.sp-product-mark small { color: #b9dcfa; font-size: .5rem; font-weight: 900; letter-spacing: .14em; }
.sp-product-mark strong { margin-top: .14rem; font-size: .72rem; }
.sp-site-context { padding-left: 1.3rem; border-left: 1px solid rgba(255,255,255,.27); }
.sp-site-context span { color: #cce7fb; font-size: .56rem; }
.sp-site-context strong { margin-top: .15rem; font-size: .76rem; }
.sp-site-header .button { color: #074a87; background: white; border-color: white; }
.sp-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); }
.sp-sidebar { min-height: 648px; padding: 24px 12px; background: #faf9f8; border-right: 1px solid #edebe9; }
.sp-sidebar > a { min-height: 42px; padding: .65rem .75rem; display: grid; grid-template-columns: 22px minmax(0,1fr) auto; gap: .5rem; align-items: center; color: #323130; border-left: 3px solid transparent; font-size: .67rem; font-weight: 650; }
.sp-sidebar > a:hover { background: #f0efee; }
.sp-sidebar > a.active { color: #0f6cbd; background: #e8f3fc; border-left-color: #0f6cbd; }
.sp-sidebar > a > span { color: #605e5c; font-size: .85rem; }
.sp-sidebar > a > b { min-width: 21px; padding: .13rem .3rem; color: white; background: #c23934; border-radius: 20px; text-align: center; font-size: .5rem; }
.sp-sidebar-divider { height: 1px; margin: 18px 10px; background: #e1dfdd; }
.sp-sidebar > small { padding: 0 .85rem; color: #8a8886; font-size: .49rem; font-weight: 900; letter-spacing: .1em; }
.sp-sidebar > p { padding: 0 .85rem; color: #484644; font-size: .6rem; line-height: 1.6; }
.sp-sidebar > p span { color: #0f6cbd; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-weight: 800; }
.sp-content { min-width: 0; padding: 25px 28px 45px; }
.sp-commandbar { min-height: 60px; display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; }
.sp-commandbar h1 { margin: 0; color: #323130; font-size: 1.45rem; }
.sp-commandbar p { margin: .25rem 0 0; color: #605e5c; font-size: .62rem; }
.sp-search { width: min(360px,42vw); display: grid; grid-template-columns: 1fr 42px; }
.sp-search input { min-height: 38px; padding-inline: .8rem; background: #faf9f8; border: 1px solid #8a8886; border-right: 0; border-radius: 2px 0 0 2px; }
.sp-search button { color: #0f6cbd; background: #faf9f8; border: 1px solid #8a8886; border-left: 0; cursor: pointer; font-size: 1rem; }
.sp-kpis { margin: 18px 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.sp-kpis > div { padding: .8rem 1rem; display: flex; align-items: baseline; gap: .65rem; background: #f7f9fb; border-left: 3px solid #8aabc6; }
.sp-kpis > div.highlight { background: #fff4ce; border-left-color: #c19c00; }
.sp-kpis strong { color: #0f6cbd; font-size: 1.05rem; }
.sp-kpis span { color: #605e5c; font-size: .58rem; }
.sp-list { border: 1px solid #edebe9; }
.sp-list-head, .sp-list-row { display: grid; grid-template-columns: minmax(260px,2.4fr) minmax(130px,1fr) 135px 85px 25px; gap: 1rem; align-items: center; }
.sp-list-head { min-height: 40px; padding: 0 16px; color: #605e5c; background: #faf9f8; border-bottom: 1px solid #edebe9; font-size: .55rem; font-weight: 700; }
.sp-list-row { min-height: 62px; padding: 7px 16px; color: #323130; border-bottom: 1px solid #edebe9; font-size: .62rem; transition: background .12s; }
.sp-list-row:last-of-type { border-bottom: 0; }
.sp-list-row:hover { background: #f3f9fd; box-shadow: inset 3px 0 #0f6cbd; }
.sp-list-row.unread { background: #f5faff; }
.sp-list-row.unread > span:not(.sp-name), .sp-list-row.unread time { font-weight: 700; }
.sp-name { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: .75rem; align-items: center; }
.sp-name > span { min-width: 0; display: flex; flex-direction: column; }
.sp-name strong { overflow: hidden; color: #0f6cbd; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.sp-name small { margin-top: .2rem; overflow: hidden; color: #8a8886; font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }
.sp-name small b { color: #c23934; }
.sp-type { width: 36px; height: 36px; display: grid; place-items: center; color: white; background: #185abd; border-radius: 3px; font-size: .85rem; font-style: normal; font-weight: 900; box-shadow: inset -7px 0 rgba(255,255,255,.1); }
.sp-type-folder { background: #d29200; }
.sp-type-news { background: #038387; }
.sp-list-row time { color: #605e5c; }
.sp-list-row > b { color: #605e5c; font-size: 1rem; }
.sp-empty { padding: 64px 24px; text-align: center; }
.sp-empty > span { color: #8aabc6; font-size: 2.6rem; }
.sp-empty h2 { margin: .8rem 0 .3rem; }
.sp-empty p { margin: 0 0 1rem; color: #605e5c; font-size: .65rem; }

.sp-create-shell { max-width: 1150px; margin: 0 auto; background: white; border: 1px solid #dedddc; box-shadow: 0 10px 35px rgba(36,46,56,.09); }
.sp-create-heading { min-height: 84px; padding: 0 26px; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; color: white; background: linear-gradient(100deg,#074a87,#0f6cbd); }
.sp-create-heading > div { display: flex; align-items: center; gap: 1rem; }
.sp-create-heading .icon-button { color: white; border-color: rgba(255,255,255,.4); }
.sp-create-heading .overline { color: #cce7fb; }
.sp-create-heading h1 { margin: .25rem 0 0; color: white; font-size: 1.4rem; }
.sp-owner-chip { padding: .5rem .75rem; color: #e8f5ff; background: rgba(255,255,255,.12); border-radius: 3px; font-size: .58rem; }
.sp-create-form { padding: 28px; }
.sp-type-picker { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.sp-type-picker label { cursor: pointer; }
.sp-type-picker input { position: absolute; opacity: 0; pointer-events: none; }
.sp-type-picker label > span { min-height: 84px; padding: .8rem; display: grid; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: auto auto; gap: .18rem .7rem; align-items: center; background: #faf9f8; border: 2px solid transparent; }
.sp-type-picker input:checked + span { background: #eef6fc; border-color: #0f6cbd; }
.sp-type-picker i { width: 42px; height: 42px; grid-row: 1 / 3; display: grid; place-items: center; color: white; background: #0f6cbd; border-radius: 3px; font-style: normal; font-weight: 900; }
.sp-type-picker strong { align-self: end; color: #323130; font-size: .72rem; }
.sp-type-picker small { align-self: start; color: #8a8886; font-size: .53rem; }
.sp-type-picker.compact label > span { min-height: 58px; grid-template-columns: 34px 1fr; grid-template-rows: 1fr; }
.sp-type-picker.compact i { width: 32px; height: 32px; grid-row: auto; }
.sp-form-grid { margin-top: 25px; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(330px,.8fr); gap: 28px; }
.sp-sharing-panel { padding: 22px; background: #faf9f8; border-left: 3px solid #0f6cbd; }
.sp-sharing-panel h2 { margin: .3rem 0; }
.sp-sharing-panel > p { color: #605e5c; font-size: .6rem; }
.sp-sharing-panel .recipient-actions { margin: 1rem 0 .5rem; justify-content: flex-start; }
.sp-sharing-panel .recipient-grid { max-height: 300px; grid-template-columns: 1fr; background: white; }
.sp-sharing-panel > label { margin-top: 1rem; }
.sp-create-actions { padding-top: 24px; display: flex; justify-content: flex-end; gap: .7rem; border-top: 1px solid #edebe9; }

.sp-item-shell { max-width: 1300px; margin: 0 auto; }
.sp-item-commandbar { min-height: 88px; padding: 15px 22px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 1rem; align-items: center; background: white; border: 1px solid #dedddc; }
.sp-item-title { min-width: 0; display: flex; align-items: center; gap: 1rem; }
.sp-item-title h1 { margin: .22rem 0 0; overflow: hidden; color: #323130; font-size: 1.2rem; text-overflow: ellipsis; white-space: nowrap; }
.sp-item-grid { margin-top: 16px; display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 16px; align-items: start; }
.sp-item-main, .sp-details-panel { min-width: 0; background: white; border: 1px solid #dedddc; }
.sp-file-preview { min-height: 270px; padding: 40px; display: flex; align-items: center; justify-content: center; gap: 2rem; background: linear-gradient(145deg,#f8fbfd,#eef4f8); text-align: left; }
.sp-preview-icon { width: 100px; height: 120px; display: grid; place-items: center; color: white; background: #185abd; border-radius: 4px 25px 4px 4px; box-shadow: 0 15px 30px rgba(25,90,189,.22); font-size: 2rem; font-weight: 900; }
.sp-file-preview h2 { margin: .4rem 0; font-size: 1.35rem; }
.sp-file-preview p { max-width: 560px; color: #605e5c; font-size: .68rem; }
.sp-file-meta { display: flex; flex-wrap: wrap; gap: .5rem; }
.sp-file-meta span { padding: .3rem .45rem; color: #605e5c; background: white; border: 1px solid #dedddc; font-size: .53rem; }
.sp-news-article { min-height: 320px; padding: clamp(30px,5vw,65px); }
.sp-news-article h2 { margin: .6rem 0 1rem; font-size: 1.7rem; }
.sp-news-article .lead { color: #0f6cbd; font-size: .82rem; font-weight: 650; }
.sp-news-article > div { color: #323130; font-size: .73rem; line-height: 1.8; }
.sp-edit-panel { border-top: 1px solid #edebe9; }
.sp-edit-panel > summary { padding: 18px 24px; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: .7rem; align-items: center; cursor: pointer; list-style: none; }
.sp-edit-panel > summary:hover { background: #f7fbfe; }
.sp-edit-panel > summary > span { width: 32px; height: 32px; display: grid; place-items: center; color: #0f6cbd; background: #e8f3fc; }
.sp-edit-panel > summary > div { display: flex; flex-direction: column; }
.sp-edit-panel > summary strong { font-size: .68rem; }
.sp-edit-panel > summary small { margin-top: .2rem; color: #8a8886; font-size: .55rem; }
.sp-edit-panel > form { padding: 0 24px 24px 70px; }
.sp-history-section { padding: 25px; border-top: 1px solid #edebe9; }
.sp-activity-list { display: flex; flex-direction: column; }
.sp-activity-list > div { padding: .65rem 0; display: grid; grid-template-columns: 30px 1fr; gap: .7rem; border-bottom: 1px solid #f0efee; }
.sp-activity-list p { margin: 0; color: #605e5c; font-size: .62rem; }
.sp-activity-list p strong { color: #323130; }
.sp-activity-list time { display: block; margin-top: .2rem; color: #8a8886; font-size: .51rem; }
.sp-details-panel { padding: 24px; }
.sp-details-panel h2 { margin: .35rem 0 1rem; }
.sp-details-panel dl { margin: 0; }
.sp-details-panel dl > div { padding: .7rem 0; display: grid; grid-template-columns: 92px 1fr; gap: .7rem; border-bottom: 1px solid #edebe9; }
.sp-details-panel dt { color: #8a8886; font-size: .55rem; }
.sp-details-panel dd { margin: 0; color: #323130; font-size: .6rem; font-weight: 650; }
.sp-access-chip { padding: .22rem .4rem; color: #0f6cbd; background: #e8f3fc; font-size: .5rem; }
.sp-shared-with, .sp-version-list { margin-top: 1.4rem; }
.sp-shared-with h3, .sp-version-list h3 { margin-bottom: .65rem; font-size: .68rem; }
.sp-shared-with > div { padding: .45rem 0; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: .6rem; align-items: center; }
.sp-shared-with > div > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.sp-shared-with strong { overflow: hidden; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.sp-shared-with small { margin-top: .13rem; color: #8a8886; font-size: .49rem; }
.sp-sharing-edit { margin-top: 1rem; border-top: 1px solid #edebe9; }
.sp-sharing-edit > summary { padding: .8rem 0; color: #0f6cbd; cursor: pointer; font-size: .62rem; font-weight: 750; }
.sp-sharing-edit .recipient-grid { max-height: 230px; grid-template-columns: 1fr; }
.sp-sharing-edit .recipient-actions { justify-content: flex-start; }
.sp-delete-form { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid #edebe9; }
.sp-version-list > div { padding: .55rem 0; display: grid; grid-template-columns: 32px minmax(0,1fr); gap: .7rem; border-bottom: 1px solid #edebe9; }
.sp-version-list > div > strong { color: #0f6cbd; font-size: .6rem; }
.sp-version-list > div > span { display: flex; flex-direction: column; font-size: .58rem; }
.sp-version-list small { margin-top: .18rem; color: #8a8886; font-size: .48rem; }

.sp-trainer-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(340px,.65fr); gap: 20px; align-items: start; }
.sp-injection-card { border-top: 5px solid #0f6cbd; }
.sp-publication-history { border-top: 5px solid #038387; }
.sp-injection-card .recipient-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sp-publication-history .timeline-list { max-height: 980px; }

@media (max-width: 1000px) {
  .install-shell, .login-layout { grid-template-columns: 1fr; }
  .install-intro, .login-story { min-height: 420px; padding: 55px 36px; }
  .login-card { margin: 40px auto; }
  .module-grid, .session-list { grid-template-columns: repeat(2, 1fr); }
  .admin-layout, .sound-admin-layout, .survey-admin-layout, .sp-trainer-layout, .admin-account-grid { grid-template-columns: 1fr; }
  .certificate-participant-grid { grid-template-columns: 1fr; }
  .content-generator-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .website-generate-form { grid-template-columns: 1fr 1fr; }
  .website-generate-form button { grid-column: 1 / -1; }
  .scenario-card-admin-layout { grid-template-columns: 1fr; }
  .scenario-decks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .scenario-filter-form { grid-template-columns: 1fr 1fr; }
  .scenario-filter-note { grid-column: 1 / -1; }
  .admin-sidebar { max-height: 230px; overflow-y: auto; }
  .survey-sidebar { position: static; top: auto; }
  .trainer-mail-layout, .trainer-grid { grid-template-columns: 1fr; }
  .sound-pad-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .survey-launch-grid { grid-template-columns: 1fr; }
  .mail-app { grid-template-columns: 210px minmax(0, 1fr); }
  .mail-row { grid-template-columns: minmax(130px,.7fr) minmax(220px,2fr) 70px 8px; padding-inline: 16px; }
  .user-name { display: none; }
  .sp-layout { grid-template-columns: 180px minmax(0,1fr); }
  .sp-list-head, .sp-list-row { grid-template-columns: minmax(220px,2fr) minmax(120px,1fr) 110px 24px; }
  .sp-list-head > span:nth-child(4), .sp-list-row > span:nth-child(4) { display: none; }
  .sp-item-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .topbar { height: 64px; padding-inline: 14px; }
  .user-menu { gap: .35rem; }
  .user-menu .link-button { padding-left: .45rem; }
  .global-nav { top: 64px; }
  .global-nav-inner { padding-inline: 12px; }
  .global-nav-scope { display: none; }
  .global-nav-links { overflow-x: auto; scrollbar-width: none; }
  .global-nav-link { padding-inline: .7rem; }
  .global-nav-menu-trigger { padding-inline: .7rem; }
  .global-nav-submenu, .global-nav-menu:last-child .global-nav-submenu { width: auto; max-height: calc(100dvh - 130px); position: fixed; top: 118px; right: 12px; left: 12px; grid-template-columns: 1fr; }
  .page-shell { padding: 22px 14px 45px; }
  .footer { padding: 14px; flex-direction: column; align-items: flex-start; }
  .brand small, .role-chip { display: none; }
  .module-grid, .session-list, .form-grid, .stats-row, .stats-four, .report-stats { grid-template-columns: 1fr; }
  .dashboard-sections { margin-top: 20px; gap: 26px; }
  .dashboard-module-section + .dashboard-module-section { padding-top: 24px; }
  .dashboard-module-section-primary, .dashboard-module-section-admin { padding: 18px; }
  .dashboard-module-heading { gap: 10px; }
  .dashboard-module-heading > span { width: 34px; height: 34px; }
  .dashboard-module-heading h2 { font-size: 1.15rem; }
  .dashboard-module-section-compact .module-grid { grid-template-columns: 1fr; }
  .certificate-language-grid { grid-template-columns: 1fr; }
  .certificate-participant-card > header { flex-direction: column; }
  .subsection-heading { align-items: flex-start; flex-direction: column; }
  .modal { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .modal form { padding: 20px; }
  .modal-actions { align-items: stretch; flex-direction: column-reverse; }
  .modal-actions .button { width: 100%; }
  .hero-panel, .section-heading, .context-header { align-items: flex-start; flex-direction: column; }
  .context-header-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .session-status { width: 100%; min-width: 0; }
  .access-code-block { padding: 1rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .inline-form, .compose-actions, .schedule-row { display: flex; flex-direction: column; align-items: stretch; }
  .session-clock { width: 100%; padding: 1rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .recipient-heading, .injection-submit { align-items: stretch; flex-direction: column; }
  .recipient-actions { justify-content: flex-start; }
  .injection-submit p { max-width: none; }
  .recipient-grid, .participant-cards { grid-template-columns: 1fr; }
  .webmail-page .page-shell { padding: 8px; }
  .mail-app { min-height: calc(100vh - 100px); grid-template-columns: 1fr; }
  .mail-sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .mail-account, .mail-storage { display: none; }
  .compose-button { margin: 0 0 10px; }
  .mail-nav { flex-direction: row; overflow-x: auto; }
  .mail-nav a { min-width: max-content; grid-template-columns: 20px auto auto; }
  .mail-toolbar { min-height: auto; padding: 18px; flex-direction: column; align-items: stretch; }
  .mail-search { width: 100%; }
  .mail-row { grid-template-columns: 1fr 70px 7px; gap: .6rem; }
  .mail-summary { grid-column: 1 / -1; grid-row: 2; padding-left: 38px; }
  .mail-row time { grid-column: 2; grid-row: 1; }
  .unread-dot { grid-column: 3; grid-row: 1; }
  .compose-shell { padding: 0 16px 20px; }
  .compose-heading { align-items: flex-start; }
  .from-chip { display: none; }
  .compose-field { grid-template-columns: 1fr; gap: .3rem; padding: .7rem 0; }
  .recipient-picker { max-height: 190px; overflow-y: auto; }
  .recipient-option { width: 100%; }
  .message-meta { grid-template-columns: 42px 1fr; }
  .message-meta time { grid-column: 2; }
  .control-strip { align-items: stretch; flex-direction: column; gap: 1rem; }
  .live-clock { margin: 0; text-align: left; }
  .live-engine { min-width: 0; margin: 0; text-align: left; }
  .live-engine + .live-clock { margin-left: 0; }
  .session-controls { display: grid; grid-template-columns: repeat(3, 1fr); }
  .trainer-heading .action-group { width: 100%; flex-direction: column; align-items: stretch; }
  .module-setup-card { grid-template-columns: 1fr; }
  .admin-sound-grid, .sound-pad-grid { grid-template-columns: 1fr; }
  .sound-context-count { padding: 1rem 0 0; align-items: flex-start; border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .sound-library-list > div { grid-template-columns: 1fr; }
  .soundboard-header, .sound-master-console, .soundboard-tools { align-items: stretch; flex-direction: column; }
  .master-controls { align-items: stretch; flex-direction: column; }
  .master-volume { min-width: 0; }
  .sound-controls { grid-template-columns: 1fr 40px 40px; }
  .sound-volume { grid-column: 1 / -1; }
  .report-document { padding: 30px 20px; }
  .report-toolbar { align-items: stretch; flex-direction: column; }
  .readiness-grid, .lifecycle-action-grid, .report-conclusion-grid { grid-template-columns: 1fr; }
  .audit-filter-grid { grid-template-columns: 1fr; }
  .audit-filter-actions { grid-column: auto; flex-direction: column; }
  .audit-event { grid-template-columns: 1fr; gap: .35rem; }
  .readiness-item { grid-template-columns: 34px minmax(0, 1fr); }
  .readiness-item > .status-badge { grid-column: 2; justify-self: start; }
  .future-module-grid, .score-grid, .phishing-team-score, .report-phishing-sources { grid-template-columns: 1fr; }
  .content-generator-form, .content-context-metrics { width: 100%; grid-template-columns: 1fr; }
  .content-source-picker > div { grid-template-columns: 1fr; }
  .content-source-picker > summary { flex-direction: column; gap: .25rem; }
  .website-editor-grid, .website-news-editor, .website-stat-editor, .website-generate-form { grid-template-columns: 1fr; }
  .website-context-state { width: 100%; padding: 1rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); text-align: left; }
  .website-save-bar, .website-danger-zone { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .scenario-decks, .scenario-composer-grid, .scenario-filter-form { grid-template-columns: 1fr; }
  .scenario-filter-note { grid-column: auto; }
  .scenario-card-context { grid-template-columns: 58px minmax(0,1fr); }
  .scenario-card-code { width: 58px; height: 58px; }
  .scenario-card-state { grid-column: 2; justify-self: start; }
  .scenario-card-save-bar, .scenario-duration-panel, .scenario-composer-toolbar, .scenario-generate-bar, .scenario-session-banner { align-items: stretch; flex-direction: column; }
  .scenario-duration-options { width: 100%; }
  .scenario-duration-options span { min-width: 0; }
  .scenario-history-list > article { grid-template-columns: 1fr; }
  .content-context-metrics { padding: 1rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .content-context-metrics div { flex-direction: row; justify-content: space-between; }
  .content-item-card > summary { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .content-item-card > summary > b { grid-column: 2 / -1; }
  .permission-toggle em { display: inline; }
  .phishing-source-card > summary { grid-template-columns: 10px minmax(0, 1fr) auto; }
  .phishing-source-card > summary > b { grid-column: 2 / -1; }
  .message-actions { align-items: flex-start; }
  .message-actions .action-group { flex-wrap: wrap; justify-content: flex-end; }
  .report-cover { min-height: 230px; flex-direction: column; }
  .report-identity { grid-template-columns: 1fr 1fr; }
  .report-event { grid-template-columns: 1fr; gap: .5rem; }
  .sharepoint-page .page-shell { padding: 8px; }
  .sp-site-header { padding: 14px; grid-template-columns: minmax(0,1fr) auto; }
  .sp-site-context { display: none; }
  .sp-layout { grid-template-columns: 1fr; }
  .sp-sidebar { min-height: 0; padding: 8px; display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid #edebe9; }
  .sp-sidebar > a { min-width: max-content; border-left: 0; border-bottom: 3px solid transparent; }
  .sp-sidebar > a.active { border-left-color: transparent; border-bottom-color: #0f6cbd; }
  .sp-sidebar-divider, .sp-sidebar > small, .sp-sidebar > p { display: none; }
  .sp-content { padding: 20px 14px 35px; }
  .sp-commandbar { align-items: stretch; flex-direction: column; gap: 1rem; }
  .sp-search { width: 100%; }
  .sp-kpis { grid-template-columns: 1fr 1fr; }
  .sp-list-head { display: none; }
  .sp-list-row { grid-template-columns: minmax(0,1fr) 24px; gap: .6rem; }
  .sp-list-row > span:nth-child(2), .sp-list-row > time, .sp-list-row > span:nth-child(4) { display: none; }
  .sp-list-row > b { grid-column: 2; }
  .sp-create-heading { padding: 14px; align-items: flex-start; }
  .sp-owner-chip { display: none; }
  .sp-create-form { padding: 18px; }
  .sp-type-picker, .sp-form-grid { grid-template-columns: 1fr; }
  .sp-type-picker label > span { min-height: 58px; }
  .sp-sharing-panel { border-left: 0; border-top: 3px solid #0f6cbd; }
  .sp-create-actions { align-items: stretch; flex-direction: column-reverse; }
  .sp-item-commandbar { grid-template-columns: 38px minmax(0,1fr); }
  .sp-item-commandbar > .action-group { grid-column: 1 / -1; }
  .sp-file-preview { padding: 30px 20px; align-items: flex-start; flex-direction: column; }
  .sp-preview-icon { width: 70px; height: 84px; }
  .sp-edit-panel > form { padding-left: 24px; }
  .sp-injection-card .recipient-grid { grid-template-columns: 1fr; }
  .survey-admin-heading .action-group { width: 100%; flex-wrap: wrap; }
  .survey-context-metrics { width: 100%; padding: 1rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .survey-question-summary { grid-template-columns: 36px minmax(0, 1fr); }
  .survey-order { grid-column: 2; }
  .survey-option-preview { padding-left: 18px; }
  .survey-session-card { grid-template-columns: 1fr; }
  .survey-session-actions { flex-wrap: wrap; }
  .trainee-survey-grid { grid-template-columns: 1fr; }
  .survey-response-header { flex-direction: column; }
  .survey-response-meta { width: 100%; padding: 1rem 0 0; flex-direction: row; justify-content: flex-start; gap: .5rem; border-left: 0; border-top: 1px solid rgba(255,255,255,.17); }
  .survey-choice-grid { grid-template-columns: 1fr; }
  .survey-submit-bar { align-items: stretch; flex-direction: column; }
  .survey-result-context, .survey-result-kpis { grid-template-columns: 1fr 1fr; }
  .survey-result-overview { grid-template-columns: 1fr; }
  .survey-donut { margin: auto; }
  .survey-open-results { grid-template-columns: 1fr; }
  .admin-account-card > header { grid-template-columns: 48px minmax(0, 1fr); }
  .admin-account-card > header > .status-badge { grid-column: 2; justify-self: start; }
  .admin-account-card dl { grid-template-columns: 1fr; }
  .admin-account-card > footer { align-items: stretch; }
  .admin-account-card > footer form { width: 100%; margin-left: 0; }
  .admin-account-card > footer .button { width: 100%; }
}

@media (max-width: 420px) {
  .brand > span:last-child { display: none; }
}

/* Operational simulators */
.operational-heading h1 { display: flex; align-items: center; gap: .8rem; }
.operational-title-icon { width: 48px; height: 48px; flex: 0 0 auto; display: inline-grid; place-items: center; border-radius: 12px; color: white; background: var(--navy); font-size: 1.25rem; }
.operational-session-strip { min-width: 0; margin-bottom: 20px; padding: 8px; display: flex; gap: 7px; overflow-x: auto; background: white; border: 1px solid var(--line); border-radius: 12px; }
.operational-session-strip a { min-width: 210px; max-width: 300px; padding: 10px 12px; display: grid; grid-template-columns: 9px minmax(0,1fr); gap: .65rem; align-items: start; border-radius: 8px; }
.operational-session-strip a:hover, .operational-session-strip a.active { background: #e9f6f7; color: #0a6974; }
.operational-session-strip a > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.operational-session-strip strong, .operational-session-strip small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operational-session-strip strong { font-size: .78rem; }
.operational-session-strip small { margin-top: .2rem; color: var(--muted); font-size: .64rem; }
.operational-context { min-width: 0; margin-bottom: 20px; padding: 26px; display: grid; grid-template-columns: minmax(0,1fr) 145px 160px; gap: 1.4rem; color: white; background: var(--navy); border-radius: 14px; overflow: hidden; }
.operational-context > * { min-width: 0; }
.operational-context h2 { margin: .65rem 0 .25rem; font-size: 1.65rem; }
.operational-context p { margin: 0; color: #becbd7; }
.operational-context-stat { padding-left: 1.3rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.18); }
.operational-context-stat small { color: var(--lime); font-size: .57rem; font-weight: 800; letter-spacing: .09em; }
.operational-context-stat strong { margin-top: .35rem; font-size: 1.35rem; }
.operational-admin-panel, .operational-injection-panel { margin-bottom: 20px; background: white; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.operational-admin-panel > summary, .operational-injection-panel > summary { padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; color: var(--navy); cursor: pointer; font-weight: 800; }
.operational-admin-panel > summary::after, .operational-injection-panel > summary::after { content: "+"; font-size: 1.25rem; }
.operational-admin-panel[open] > summary::after, .operational-injection-panel[open] > summary::after { content: "−"; }
.operational-admin-grid { padding: 0 20px 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.operational-admin-grid .admin-section { min-width: 0; margin: 0; box-shadow: none; }
.operational-injection-panel > form { margin: 0 20px 20px; box-shadow: none; }
.form-span-2 { grid-column: span 2; }
.check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.operational-workspace { min-width: 0; margin-bottom: 20px; padding: 24px; background: white; border: 1px solid var(--line); border-radius: 14px; }
.operational-workspace .subsection-heading { margin-bottom: 20px; }
.operational-filters { min-width: 0; margin: 0 0 20px; padding: 14px; display: grid; grid-template-columns: minmax(220px,2fr) repeat(3,minmax(120px,1fr)) auto auto; gap: 10px; align-items: end; background: #f4f7f9; border: 1px solid var(--line); border-radius: 10px; }
.operational-filters label { min-width: 0; display: grid; gap: .3rem; }
.operational-filters label > span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.operational-filters input, .operational-filters select { min-width: 0; width: 100%; }
.operational-filters .button { min-width: 0; white-space: nowrap; }
.filter-reset { padding: .7rem .2rem; color: var(--danger); font-size: .72rem; font-weight: 750; text-align: center; white-space: nowrap; }
.operational-import-grid { padding: 0 20px 20px; display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,1fr); gap: 18px; align-items: start; }
.operational-import-grid > * { min-width: 0; }
.operational-import-grid h3 { margin-top: 0; }
.operational-import-grid p { color: var(--muted); font-size: .78rem; }
.operational-record-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.operational-record-grid > * { min-width: 0; }
.operational-record { min-width: 0; padding: 18px; display: flex; flex-direction: column; gap: .8rem; background: #fbfcfd; border: 1px solid var(--line); border-top: 4px solid #8ca0b2; border-radius: 11px; overflow: hidden; }
.operational-record.severity-low { border-top-color: #60a37f; }
.operational-record.severity-medium { border-top-color: #e0a036; }
.operational-record.severity-high { border-top-color: #d76f42; }
.operational-record.severity-critical { border-top-color: #bc3e49; }
.operational-record > header { min-width: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: .7rem; }
.record-type { color: var(--cyan-dark); font-size: .62rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; overflow-wrap: anywhere; }
.operational-record h3 { margin: 0; font-size: 1.08rem; overflow-wrap: anywhere; }
.operational-record code { width: fit-content; max-width: 100%; overflow-wrap: anywhere; }
.operational-record dl { min-width: 0; margin: 0; display: grid; gap: 1px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 8px; }
.operational-record dl > div { min-width: 0; padding: .58rem .65rem; display: grid; grid-template-columns: minmax(80px,.75fr) minmax(0,1.25fr); gap: .55rem; background: white; }
.operational-record dt { color: var(--muted); font-size: .62rem; font-weight: 750; text-transform: capitalize; }
.operational-record dd { min-width: 0; margin: 0; color: var(--ink-soft); font-size: .71rem; overflow-wrap: anywhere; }
.record-action-form { min-width: 0; margin-top: auto; padding-top: .8rem; display: grid; gap: .7rem; border-top: 1px solid var(--line); }
.record-action-form label { min-width: 0; }
.record-action-form textarea { min-height: 65px; }
.record-edit-panel { min-width: 0; border: 1px solid #cfdbe3; border-radius: 8px; background: white; overflow: hidden; }
.record-edit-panel > summary { padding: .75rem .85rem; color: var(--cyan-dark); cursor: pointer; font-size: .72rem; font-weight: 800; }
.record-edit-panel > .form-stack { margin: 0; padding: .8rem; border-top: 1px solid var(--line); box-shadow: none; }
.record-edit-panel .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.record-admin-actions { padding: 0 .8rem .8rem; display: flex; justify-content: flex-end; }
.record-admin-actions form { margin: 0; }
.status-record-archived { opacity: .78; background: #f1f3f5; }
.operational-history { min-width: 0; }
.operational-timeline { display: grid; }
.operational-timeline article { min-width: 0; padding: 14px 0; display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 1rem; border-top: 1px solid var(--line); }
.operational-timeline time { color: var(--muted); font: 700 .7rem ui-monospace,monospace; }
.operational-timeline article > div { min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.operational-timeline small { color: var(--muted); }
.operational-timeline p { margin: .25rem 0 0; color: var(--ink-soft); font-size: .78rem; }

.access-map-grid { min-width: 0; margin-bottom: 22px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.access-map { min-width: 0; min-height: 310px; padding: 48px 20px 20px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(95px,1fr)); gap: 9px; position: relative; background: #e8edf1; border: 9px solid #455467; border-radius: 8px; overflow: hidden; }
.access-map-title { position: absolute; inset: 0 0 auto; padding: 10px 14px; color: white; background: #455467; font-size: .64rem; font-weight: 800; letter-spacing: .08em; }
.access-zone { min-width: 0; padding: 14px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 2px solid #9eabb7; }
.access-zone:nth-of-type(3) { background: #e9f6f7; }
.access-zone strong { overflow-wrap: anywhere; }
.access-zone small { margin-top: .25rem; color: var(--muted); }

.scada-synoptic { min-width: 0; margin-bottom: 22px; padding: 28px; display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 30px; position: relative; color: #d9f3e9; background: #132a2b; border: 1px solid #3a5b58; border-radius: 8px; overflow: hidden; font-family: ui-monospace,SFMono-Regular,monospace; }
.scada-line { height: 4px; position: absolute; left: 7%; right: 7%; top: 52%; background: #3e7b72; }
.scada-node { min-width: 0; min-height: 125px; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; position: relative; background: #173637; border: 1px solid #4b7872; border-radius: 5px; z-index: 1; overflow: hidden; }
.scada-node strong, .scada-node b { overflow-wrap: anywhere; }
.scada-node b { color: #79e1c4; font-size: 1.15rem; }
.scada-node small { color: #8fb0a9; }
.scada-light { width: 10px; height: 10px; position: absolute; top: 12px; right: 12px; background: #45cf88; border-radius: 50%; box-shadow: 0 0 0 4px #45cf8820; }
.scada-light.alarm { background: #ff5a5f; animation: scada-pulse 1.2s infinite; }
@keyframes scada-pulse { 50% { box-shadow: 0 0 0 9px #ff5a5f10; } }

.hospital-capacity-board { margin-bottom: 22px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.hospital-capacity-board article { min-width: 0; padding: 14px; display: grid; grid-template-columns: minmax(110px,1fr) minmax(90px,1.3fr) 48px; gap: 12px; align-items: center; background: #f8fafb; border: 1px solid var(--line); border-radius: 9px; }
.hospital-capacity-board article > span { min-width: 0; display: flex; flex-direction: column; }
.hospital-capacity-board strong, .hospital-capacity-board small { overflow-wrap: anywhere; }
.hospital-capacity-board small { color: var(--muted); }
.capacity-bar { height: 9px; overflow: hidden; background: #dde5ea; border-radius: 999px; }
.capacity-bar i { height: 100%; display: block; background: linear-gradient(90deg,#31a979,#efad3b,#d04e56); border-radius: inherit; }
.hospital-capacity-board b { text-align: right; }

.regulatory-simulation-banner { margin: -36px calc(clamp(20px,3vw,48px) * -1) 30px; padding: 10px clamp(20px,3vw,48px); color: #12243a; background: #f2c900; border-bottom: 1px solid #c8a900; font-size: .67rem; font-weight: 900; letter-spacing: .08em; text-align: center; }
.regulatory-interface .operational-title-icon { color: #12243a; background: #f2c900; border-radius: 0; }
.regulatory-interface .eyebrow { color: #8a7000; }
.regulatory-context { background: #172c45; border-radius: 0; border-left: 8px solid #f2c900; }
.regulatory-interface .operational-workspace { border-radius: 0; border-top: 5px solid #f2c900; }
.regulatory-interface .operational-record { border-radius: 0; }
.regulatory-interface .button-primary { color: #12243a; background: #f2c900; box-shadow: none; }
.regulatory-interface .button-primary:hover { background: #ffd900; }
.regulatory-deadlines { margin-bottom: 22px; display: grid; grid-template-columns: minmax(260px,2fr) repeat(3,minmax(110px,1fr)); color: white; background: #172c45; border-bottom: 6px solid #f2c900; }
.regulatory-deadlines > div { min-width: 0; padding: 18px; display: flex; flex-direction: column; border-right: 1px solid #ffffff22; }
.regulatory-deadlines small { color: #f2c900; font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.regulatory-deadlines strong { margin-top: .3rem; overflow-wrap: anywhere; }
.regulatory-deadlines span { margin-top: .2rem; color: #b9c8d5; font-size: .72rem; }
.regulatory-attachments { padding: .8rem; display: grid; gap: .55rem; background: #fffdf3; border: 1px solid #e8ddb0; }
.regulatory-attachments > strong { color: #6a5512; font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; }
.regulatory-attachments > a { color: #154f79; font-size: .75rem; font-weight: 700; overflow-wrap: anywhere; }
.regulatory-attachments > small { color: var(--muted); }
.regulatory-attachments form { display: grid; gap: .55rem; }

@media (max-width: 1050px) {
  .operational-admin-grid, .operational-record-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .operational-admin-grid > :last-child { grid-column: 1 / -1; }
  .operational-context { grid-template-columns: minmax(0,1fr) 120px 140px; }
  .hospital-capacity-board, .access-map-grid { grid-template-columns: 1fr; }
  .operational-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .operational-search { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .operational-heading h1 { align-items: flex-start; }
  .operational-context { padding: 20px; grid-template-columns: 1fr 1fr; }
  .operational-context > div:first-child { grid-column: 1 / -1; }
  .operational-context-stat { padding: 1rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .operational-admin-grid, .operational-record-grid { grid-template-columns: 1fr; }
  .operational-admin-grid > :last-child { grid-column: auto; }
  .operational-workspace { padding: 16px; }
  .operational-filters, .operational-import-grid, .record-edit-panel .form-grid { grid-template-columns: 1fr; }
  .operational-search { grid-column: auto; }
  .form-span-2 { grid-column: auto; }
  .check-grid, .access-map, .hospital-capacity-board { grid-template-columns: 1fr; }
  .access-map { grid-template-rows: none; }
  .operational-timeline article { grid-template-columns: 1fr; gap: .35rem; }
  .operational-record dl > div { grid-template-columns: 1fr; gap: .2rem; }
  .scada-synoptic { grid-template-columns: 1fr; }
  .scada-line { width: 4px; height: auto; inset: 7% auto 7% 50%; }
  .hospital-capacity-board article { grid-template-columns: 1fr 50px; }
  .hospital-capacity-board .capacity-bar { grid-column: 1 / -1; grid-row: 2; }
  .regulatory-simulation-banner { margin-top: -24px; }
  .regulatory-deadlines { grid-template-columns: 1fr 1fr; }
  .regulatory-deadlines > div:first-child { grid-column: 1 / -1; }
}

@media print {
  :root, body { background: white; }
  .topbar, .global-nav, .footer, .no-print, .flash { display: none !important; }
  .page-shell { width: 100%; min-height: 0; padding: 0; }
  .report-document { max-width: none; padding: 15mm; box-shadow: none; }
  .survey-results-document { max-width: none; padding: 12mm; box-shadow: none; }
  .report-section, .report-event, table { break-inside: avoid; }
}

/* Centre d'interactions de crise */
.module-crisis .module-icon { background: linear-gradient(135deg, #0b6571, #2f3f73); }
.crisis-heading { align-items: flex-end; }
.crisis-heading > div:first-child { max-width: 920px; }
.crisis-control-context, .crisis-module-context, .crisis-portal-context { min-width: 0; margin-bottom: 22px; color: white; background: linear-gradient(120deg, #102840, #173851 68%, #245d65); border-radius: 14px; box-shadow: var(--shadow-soft); }
.crisis-control-context { padding: 26px; display: grid; grid-template-columns: minmax(0, 1fr) 210px 150px; align-items: center; gap: 1rem; }
.crisis-control-context h2 { margin: .55rem 0 .25rem; font-size: 1.65rem; }
.crisis-control-context p { margin: 0; color: #c2d2de; }
.crisis-clock, .crisis-control-total { min-width: 0; min-height: 70px; padding-left: 1.2rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.17); }
.crisis-clock small, .crisis-control-total small { color: #8fcbd0; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }
.crisis-clock strong { margin-top: .3rem; color: #effcff; font: 800 1.35rem ui-monospace, monospace; }
.crisis-control-total strong { margin-top: .3rem; font-size: 1.7rem; }
.crisis-control-stats { margin-bottom: 22px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.crisis-module-directory { margin-bottom: 22px; padding: 22px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.crisis-module-directory .subsection-heading { margin-bottom: 16px; }
.crisis-module-directory .crisis-control-stats { margin: 0; }
.crisis-stat { min-width: 0; }
.crisis-stat small { overflow-wrap: anywhere; }

/* Écran de projection */
.wallboard-admin-context { min-width: 0; margin-bottom: 22px; padding: 24px 28px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; color: white; background: linear-gradient(120deg, #102840, #173851 68%, #245d65); border-radius: 14px; box-shadow: var(--shadow-soft); }
.wallboard-admin-context h2 { margin: .55rem 0 .25rem; font-size: 1.55rem; }
.wallboard-admin-context p { margin: 0; color: #c2d2de; }
.wallboard-public-state { min-width: 135px; padding: 1rem 0 1rem 1.4rem; display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,.18); }
.wallboard-public-state small { color: #9bb1c1; font-size: .59rem; font-weight: 850; letter-spacing: .12em; }
.wallboard-public-state strong { margin-top: .3rem; color: #f3c86c; }
.wallboard-public-state.is-live strong { color: var(--lime); }
.wallboard-link-panel { margin-bottom: 22px; display: grid; grid-template-columns: minmax(260px,.75fr) minmax(350px,1.25fr); gap: 20px 28px; align-items: end; border-top: 4px solid var(--cyan-dark); }
.wallboard-link-panel h2 { margin: .35rem 0; }
.wallboard-link-panel p { margin: 0; color: var(--muted); }
.wallboard-link-panel .action-group { grid-column: 1 / -1; }
.wallboard-link-panel form { margin: 0; }
.wallboard-url-row { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.wallboard-url-row input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; background: #f5f8f9; }
.wallboard-editor-grid { margin-bottom: 22px; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(290px,.55fr); gap: 22px; align-items: start; }
.wallboard-settings-form, .wallboard-preview-card { margin: 0; }
.wallboard-checks { display: flex; flex-wrap: wrap; gap: 1.1rem; }
.wallboard-preview-card { position: sticky; top: 138px; }
.wallboard-preview-surface { min-height: 310px; margin: 14px 0; padding: 24px; display: flex; flex-direction: column; color: #eef7fa; background: #0b2033; border-radius: 13px; overflow: hidden; box-shadow: 0 16px 35px rgba(17,40,65,.18); }
.wallboard-preview-surface small { color: #55ccd2; font-size: .58rem; font-weight: 850; letter-spacing: .12em; }
.wallboard-preview-surface > strong { margin-top: 38px; font-size: 1.65rem; line-height: 1; }
.wallboard-preview-surface > span { margin-top: .5rem; color: #afc3d1; font-size: .74rem; }
.wallboard-preview-surface > div { margin-top: auto; display: flex; justify-content: space-between; align-items: end; }
.wallboard-preview-surface b { color: white; font-size: 2.3rem; }
.wallboard-preview-surface em { color: #b8dc42; font-size: .68rem; font-style: normal; }
.wallboard-preview-surface p { margin: 1rem 0 0; padding: .65rem; color: #10243a; background: #b8dc42; border-radius: 7px; font-size: .7rem; font-weight: 750; }
.wallboard-preview-surface.theme-teal { background: #073a3e; }
.wallboard-preview-surface.theme-light { color: #10243a; background: #edf4f5; }
.wallboard-preview-surface.theme-light > span { color: #5e7385; }
.wallboard-preview-surface.theme-light b { color: #10243a; }
.wallboard-preview-surface.theme-contrast { background: #000; border: 2px solid white; }
.wallboard-preview-card > p { margin: 0; color: var(--muted); font-size: .76rem; }
.wallboard-agenda-section { margin-bottom: 22px; }
.wallboard-item-new { margin: 18px 0 22px; border-color: #b8dfe2; background: #f4f9fa; }
.wallboard-item-form { min-width: 0; padding: 18px; display: flex; flex-direction: column; gap: .8rem; border: 1px solid var(--line); border-radius: 10px; }
.wallboard-item-fields { display: grid; grid-template-columns: 90px 130px 130px minmax(180px,1fr); gap: .8rem; }
.wallboard-item-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.wallboard-item-actions .button { margin-left: auto; }
.wallboard-items-list { display: grid; gap: 12px; }
.wallboard-item-editor { min-width: 0; position: relative; }
.wallboard-item-editor.is-hidden { opacity: .68; }
.wallboard-item-editor .wallboard-item-form { padding-right: 100px; }
.wallboard-delete-item { position: absolute; right: 18px; bottom: 25px; }
.wallboard-delete-item .link-button { color: var(--coral); font-size: .72rem; }
@media (max-width: 1050px) {
  .wallboard-editor-grid { grid-template-columns: 1fr; }
  .wallboard-preview-card { position: static; }
  .wallboard-preview-surface { min-height: 260px; }
}
@media (max-width: 760px) {
  .wallboard-admin-context, .wallboard-link-panel { grid-template-columns: 1fr; }
  .wallboard-public-state { padding: .8rem 0 0; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
  .wallboard-link-panel .action-group { grid-column: auto; }
  .wallboard-url-row { grid-template-columns: 1fr; }
  .wallboard-item-fields { grid-template-columns: 1fr 1fr; }
  .wallboard-item-editor .wallboard-item-form { padding-right: 18px; padding-bottom: 58px; }
}
@media (max-width: 480px) {
  .wallboard-item-fields { grid-template-columns: 1fr; }
}
.crisis-stat { min-width: 0; padding: 15px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .15rem .7rem; align-items: center; background: white; border: 1px solid var(--line); border-radius: 11px; }
.crisis-stat > span { grid-row: 1 / 3; width: 34px; height: 34px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 9px; }
.crisis-stat strong { font-size: 1.25rem; }
.crisis-stat small { min-width: 0; color: var(--muted); font-size: .63rem; overflow-wrap: anywhere; }
.crisis-generator-panel { margin-bottom: 20px; }
.crisis-generator-content { padding: 20px; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.crisis-generator-content p { margin: 0; color: var(--muted); font-size: .82rem; }
.crisis-composer { margin-bottom: 22px; }
.crisis-kind-fields { padding: 1rem; background: #f7fafb; border: 1px solid var(--line); border-radius: 10px; }
.crisis-queue-list { display: grid; gap: 12px; }
.crisis-queue-item { min-width: 0; padding: 16px; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 1rem; align-items: center; background: #fbfcfd; border: 1px solid var(--line); border-left: 4px solid #7dc3e5; border-radius: 10px; }
.crisis-queue-item.status-dispatched { border-left-color: #5dc294; }
.crisis-queue-item.status-cancelled { opacity: .72; border-left-color: #aeb8c5; }
.crisis-queue-icon { width: 46px; height: 46px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 12px; font-size: 1.15rem; }
.crisis-queue-main { min-width: 0; }
.crisis-queue-main > div:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.crisis-queue-main > div:first-child small, .crisis-queue-main > small { color: var(--muted); }
.crisis-queue-main h4 { margin: .55rem 0 .25rem; overflow-wrap: anywhere; }
.crisis-queue-main p { margin: 0 0 .35rem; color: var(--ink-soft); font-size: .78rem; }
.crisis-queue-actions { display: flex; align-items: center; gap: .5rem; }
.crisis-queue-actions .link-button { border-left: 0; padding-left: .3rem; }
.link-button.danger { color: #ad3f3a; }

.crisis-portal-context { padding: 22px 26px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.crisis-portal-context > div { display: flex; align-items: center; gap: .9rem; }
.crisis-portal-context small { display: block; color: #86cbd2; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }
.crisis-portal-context h2 { margin: .15rem 0; }
.crisis-portal-context p { margin: 0; color: #bfd0dc; font-size: .8rem; }
.crisis-portal-context > strong { font-size: 1.65rem; }
.crisis-portal-context > strong small { display: inline; color: #bfd0dc; font-size: .7rem; }
.crisis-portal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.crisis-portal-card { min-width: 0; min-height: 190px; padding: 24px; display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 1.2rem; align-items: flex-start; position: relative; background: white; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.crisis-portal-card:hover { transform: translateY(-2px); border-color: #9fd8dc; box-shadow: var(--shadow); }
.crisis-portal-card::after { content: ""; width: 130px; height: 130px; position: absolute; right: -75px; bottom: -80px; border: 24px solid rgba(20,184,196,.07); border-radius: 50%; }
.crisis-portal-icon { width: 54px; height: 54px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 14px; font-size: 1.35rem; }
.crisis-portal-card small { color: var(--cyan-dark); font-size: .6rem; font-weight: 850; letter-spacing: .11em; }
.crisis-portal-card h2 { margin: .35rem 0; }
.crisis-portal-card p { margin: 0; color: var(--muted); font-size: .8rem; }
.crisis-portal-count { min-width: 34px; height: 34px; padding: 0 .55rem; display: grid; place-items: center; background: #edf3f6; border-radius: 999px; font-weight: 800; }
.crisis-portal-card .module-arrow { position: absolute; right: 22px; bottom: 18px; color: var(--cyan-dark); font-size: 1.15rem; }
.crisis-module-context { padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; }
.crisis-module-context > div { display: flex; align-items: center; gap: .8rem; }
.crisis-module-context > div span:last-child { display: flex; flex-direction: column; }
.crisis-module-context small { color: #92c8d0; font-size: .58rem; font-weight: 850; letter-spacing: .09em; }
.crisis-module-context > strong { font-size: 1.4rem; }
.crisis-module-context > strong small { font-size: .65rem; font-weight: 600; letter-spacing: 0; }
.crisis-live-notice { margin-bottom: 16px; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; color: #0d616b; background: #e8f7f8; border: 1px solid #bce7e9; border-radius: 9px; font-size: .8rem; font-weight: 750; }
.crisis-live-notice .link-button { color: #075c65; border: 0; padding: 0; }
.compact-crisis-form { padding: 12px; background: #f7fafb; border-radius: 9px; }

.news-feed { max-width: 920px; margin: 0 auto; display: grid; gap: 16px; }
.news-post { min-width: 0; background: white; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-soft); }
.news-post > header { padding: 16px 20px; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: .8rem; align-items: center; border-bottom: 1px solid var(--line); }
.news-source-mark { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 50%; font-size: 1.05rem; font-weight: 900; }
.news-source-social .news-source-mark { background: #2669a7; }
.news-source-official .news-source-mark { background: var(--cyan-dark); }
.news-post > header > div { min-width: 0; display: flex; flex-direction: column; }
.news-post > header small { color: var(--muted); overflow-wrap: anywhere; }
.news-source-label { color: var(--cyan-dark); font-size: .57rem; font-weight: 850; letter-spacing: .09em; }
.news-post-body { padding: 20px; }
.news-post-body h2 { margin-bottom: .65rem; font-size: 1.25rem; }
.news-post-body p { margin: 0; color: var(--ink-soft); white-space: normal; }
.news-post > footer { padding: 13px 20px; background: #f8fafb; border-top: 1px solid var(--line); }
.news-post > footer > div { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; color: var(--muted); font-size: .7rem; }
.news-post > footer details { margin-top: .8rem; }
.news-post > footer summary { color: var(--cyan-dark); cursor: pointer; font-size: .72rem; font-weight: 800; }
.sentiment-negative, .sentiment-critical { color: #9f3d39 !important; background: #ffeceb !important; }
.sentiment-positive { color: #176847 !important; background: #e8f6f0 !important; }
.news-reactions { padding: 12px 20px; border-top: 1px solid var(--line); }
.news-reactions p { margin: 0; padding: .35rem 0; color: var(--ink-soft); font-size: .73rem; }
.news-reactions p span { display: block; margin-top: .15rem; color: var(--muted); }

.phone-live-dot { width: 12px; height: 12px; background: #5dc294; border-radius: 50%; box-shadow: 0 0 0 6px rgba(93,194,148,.15); animation: phone-ring 1.4s infinite; }
@keyframes phone-ring { 50% { box-shadow: 0 0 0 10px rgba(93,194,148,.04); } }
.call-inbox { max-width: 1050px; margin: 0 auto; display: grid; gap: 18px; }
.call-card { min-width: 0; background: white; border: 1px solid var(--line); border-left: 5px solid #7a8a9b; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-soft); }
.call-card.is-ringing { border-left-color: #39ad7b; }
.call-card-top { padding: 20px; display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 1rem; align-items: center; background: #f8fafb; border-bottom: 1px solid var(--line); }
.call-avatar { width: 54px; height: 54px; display: grid; place-items: center; color: white; background: #2c6e67; border-radius: 50%; font-size: 1.3rem; }
.call-card-top h2 { margin: .15rem 0; }
.call-card-top p, .call-card-top time { margin: 0; color: var(--muted); font-size: .75rem; }
.call-script { padding: 22px; }
.call-script h3 { margin-bottom: .55rem; }
.call-script p { color: var(--ink-soft); }
.call-script audio { width: 100%; margin-top: .7rem; }
.call-response-form { padding: 18px 22px; background: #f7fafb; border-top: 1px solid var(--line); }
.call-response-buttons { margin-bottom: 1rem; display: flex; flex-wrap: wrap; gap: .55rem; }
.call-answer { color: white; background: #288a64; }
.call-response-buttons .link-button { border: 0; }
.call-history { padding: 16px 22px; border-top: 1px solid var(--line); }
.call-history > strong { font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; }
.call-history p { margin: .65rem 0 0; display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: .65rem; color: var(--ink-soft); font-size: .75rem; }
.call-history time { color: var(--muted); font: 700 .68rem ui-monospace, monospace; }
.call-history span { display: flex; flex-direction: column; }
.call-history small { margin-top: .2rem; color: var(--muted); }

.chat-shell { min-height: 650px; display: grid; grid-template-columns: 260px minmax(0, 1fr); background: white; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-soft); }
.chat-sidebar { min-width: 0; padding: 18px; color: #d8e4eb; background: #132b43; }
.chat-session { padding-bottom: 16px; display: flex; align-items: center; gap: .7rem; border-bottom: 1px solid rgba(255,255,255,.13); }
.chat-session > div { min-width: 0; display: flex; flex-direction: column; }
.chat-session small { color: #7ebcc4; font-size: .56rem; font-weight: 850; letter-spacing: .08em; }
.chat-session strong { overflow-wrap: anywhere; }
.chat-sidebar h3 { margin: 20px 0 12px; color: #8aa2b4; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.chat-member { min-width: 0; padding: 8px 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .7rem; align-items: center; }
.chat-member > span { width: 34px; height: 34px; display: grid; place-items: center; color: white; background: #2b5772; border-radius: 50%; font-size: .72rem; font-weight: 800; }
.chat-member > div { min-width: 0; display: flex; flex-direction: column; }
.chat-member strong, .chat-member small { overflow-wrap: anywhere; }
.chat-member small { color: #91a6b6; font-size: .65rem; }
.chat-sidebar .muted { margin-top: 1rem; color: #91a6b6; font-size: .68rem; }
.chat-main { min-width: 0; display: grid; grid-template-rows: auto minmax(300px, 1fr) auto; }
.chat-main > header { padding: 15px 20px; border-bottom: 1px solid var(--line); }
.chat-main > header > div { display: flex; align-items: center; gap: .75rem; }
.chat-main > header span:last-child { display: flex; flex-direction: column; }
.chat-main > header small { color: var(--muted); }
.chat-channel-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--cyan-dark); background: #eaf7f8; border-radius: 9px; font-weight: 900; }
.chat-messages { min-width: 0; max-height: 680px; padding: 20px; overflow-y: auto; }
.chat-message { min-width: 0; padding: 11px 0; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: .8rem; }
.chat-avatar { width: 38px; height: 38px; display: grid; place-items: center; color: white; background: #43617b; border-radius: 50%; font-size: .72rem; font-weight: 800; }
.chat-message.is-mine .chat-avatar { background: var(--cyan-dark); }
.chat-message > div { min-width: 0; }
.chat-message header { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.chat-message header time { color: var(--muted); font-size: .65rem; }
.chat-message .status-badge { padding: .2rem .4rem; font-size: .5rem; }
.chat-message p { max-width: 850px; margin: .3rem 0 0; color: var(--ink-soft); font-size: .82rem; }
.chat-message > div > small { color: var(--muted); font-size: .65rem; }
.chat-message.is-direct > div { padding: .65rem .75rem; background: #f3f1fa; border-left: 3px solid #816bad; border-radius: 7px; }
.chat-empty { padding: 80px 20px; text-align: center; color: var(--muted); }
.chat-composer { padding: 14px 18px; background: #f7fafb; border-top: 1px solid var(--line); }
.chat-audience { margin-bottom: .7rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.chat-audience > label { flex-direction: row; align-items: center; }
.chat-audience input { width: 16px; min-height: auto; }
.chat-audience details { flex-basis: 100%; }
.chat-audience summary { color: var(--cyan-dark); cursor: pointer; font-size: .72rem; font-weight: 800; }
.chat-audience .recipient-grid { margin-top: .65rem; max-height: 180px; overflow-y: auto; }
.chat-input-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .7rem; align-items: stretch; }
.chat-input-row textarea { min-height: 56px; }

.press-masthead { margin-bottom: 18px; padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; color: white; background: #222e3c; border-bottom: 5px solid #d8a929; }
.press-masthead > div { display: flex; align-items: center; gap: .8rem; }
.press-masthead > div > div { display: flex; flex-direction: column; }
.press-masthead-logo { width: 42px; height: 42px; display: grid; place-items: center; color: #222e3c; background: #f1c84f; font: 900 1.2rem Georgia, serif; }
.press-masthead small { color: #f1c84f; font-size: .56rem; letter-spacing: .1em; }
.press-masthead p { margin: 0; color: #bdc8d2; font-size: .7rem; }
.press-request-list { max-width: 1050px; margin: 0 auto; display: grid; gap: 18px; }
.press-request-card { min-width: 0; background: white; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow-soft); overflow: hidden; }
.press-request-card > header { padding: 18px 22px; display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.press-request-card > header > div:first-child { min-width: 0; display: flex; align-items: center; gap: .9rem; }
.press-media-avatar { width: 48px; height: 48px; display: grid; place-items: center; color: white; background: #263848; font: 900 1.2rem Georgia, serif; }
.press-request-card h2 { margin: .15rem 0; }
.press-request-card header p { margin: 0; color: var(--muted); font-size: .72rem; }
.press-deadline { padding-left: 1rem; display: flex; flex-direction: column; border-left: 3px solid #e1b339; }
.press-deadline small { color: var(--muted); font-size: .55rem; letter-spacing: .07em; }
.press-deadline.is-overdue { color: #a63d37; border-color: #d6524c; }
.press-question { padding: 22px; }
.press-question > span { color: #9c7415; font-size: .6rem; font-weight: 900; letter-spacing: .1em; }
.press-question h3 { margin: .35rem 0 .7rem; font: 700 1.3rem Georgia, serif; }
.press-question p { margin: 0; color: var(--ink-soft); }
.press-response-editor { border-top: 1px solid var(--line); }
.press-response-editor > summary { padding: 14px 22px; cursor: pointer; color: #785a10; background: #fffaf0; font-size: .75rem; font-weight: 800; }
.press-response-editor > form { padding: 18px 22px; }
.press-response-history { padding: 18px 22px; background: #f8fafb; border-top: 1px solid var(--line); }
.press-response-history > h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; }
.press-response-history article { padding: 12px 0; border-top: 1px solid var(--line); }
.press-response-history article header { display: flex; justify-content: space-between; color: var(--ink-soft); font-size: .72rem; }
.press-response-history article p { margin: .45rem 0; }
.press-response-history article small { color: var(--muted); }

.crisis-board { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.board-column { min-width: 0; padding: 12px; background: #e9eef2; border-radius: 12px; }
.board-column > header { padding: 5px 4px 12px; display: flex; justify-content: space-between; align-items: center; }
.board-column > header h2 { margin: 0; font-size: .9rem; }
.board-column > header span { min-width: 26px; height: 26px; display: grid; place-items: center; background: white; border-radius: 50%; font-size: .68rem; font-weight: 800; }
.board-items { display: grid; gap: 10px; }
.board-card { min-width: 0; padding: 15px; background: white; border: 1px solid #d7dfe6; border-top: 4px solid #8898a9; border-radius: 9px; box-shadow: 0 4px 10px rgba(17,40,65,.05); }
.board-card.priority-high { border-top-color: #da8739; }
.board-card.priority-critical { border-top-color: #c8444c; }
.board-card.priority-low { border-top-color: #54a57b; }
.board-card > header { display: flex; justify-content: space-between; gap: .6rem; align-items: center; }
.board-reference { color: var(--muted); font: 700 .6rem ui-monospace, monospace; overflow-wrap: anywhere; }
.board-card h3 { margin: .75rem 0 .45rem; font-size: 1rem; }
.board-card > p { color: var(--ink-soft); font-size: .75rem; }
.board-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.board-meta > span { min-width: 0; padding: .55rem; display: flex; flex-direction: column; background: #f4f7f9; border-radius: 6px; }
.board-meta small { color: var(--muted); font-size: .5rem; font-weight: 800; letter-spacing: .06em; }
.board-meta strong { margin-top: .15rem; font-size: .68rem; overflow-wrap: anywhere; }
.board-card-status { margin-top: .75rem; padding-top: .65rem; display: flex; justify-content: space-between; color: var(--muted); border-top: 1px solid var(--line); font-size: .62rem; }
.board-card-status span { color: var(--cyan-dark); font-weight: 850; }
.board-card details { margin-top: .75rem; }
.board-card summary { cursor: pointer; color: var(--cyan-dark); font-size: .68rem; font-weight: 800; }
.board-card details > form { margin-top: .65rem; }
.board-history { margin-top: .75rem; display: grid; }
.board-history p { margin: 0; padding: .55rem 0; display: grid; grid-template-columns: 65px minmax(0, 1fr); gap: .5rem; border-top: 1px solid var(--line); font-size: .65rem; }
.board-history time { color: var(--muted); }
.board-history span { min-width: 0; display: flex; flex-direction: column; }
.board-history small { color: var(--muted); overflow-wrap: anywhere; }
.board-empty { padding: 32px 10px; text-align: center; color: #8796a4; border: 1px dashed #c5d0d8; border-radius: 8px; font-size: .72rem; }

@media (max-width: 1050px) {
  .crisis-control-context { grid-template-columns: minmax(0, 1fr) 190px 120px; }
  .crisis-control-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .crisis-board { grid-template-columns: 1fr; }
  .board-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .crisis-control-context { grid-template-columns: 1fr 1fr; }
  .crisis-control-context > div:first-child { grid-column: 1 / -1; }
  .crisis-clock, .crisis-control-total { padding: .8rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.17); }
  .crisis-control-stats, .crisis-portal-grid { grid-template-columns: 1fr; }
  .crisis-generator-content, .press-masthead, .press-request-card > header { align-items: stretch; flex-direction: column; }
  .crisis-queue-item { grid-template-columns: 40px minmax(0, 1fr); }
  .crisis-queue-icon { width: 40px; height: 40px; }
  .crisis-queue-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .crisis-portal-card { grid-template-columns: 48px minmax(0, 1fr) auto; padding: 18px; }
  .crisis-portal-icon { width: 48px; height: 48px; }
  .news-post > header, .call-card-top { grid-template-columns: 44px minmax(0, 1fr); }
  .news-source-label, .call-card-top time { grid-column: 2; }
  .chat-shell { grid-template-columns: 1fr; }
  .chat-sidebar { max-height: 260px; overflow-y: auto; }
  .chat-input-row { grid-template-columns: 1fr; }
  .board-items { grid-template-columns: 1fr; }
  .press-deadline { padding: .7rem 0 0; border-left: 0; border-top: 3px solid #e1b339; }
}

@media (max-width: 500px) {
  .crisis-control-stats { grid-template-columns: 1fr 1fr; }
  .crisis-portal-card { grid-template-columns: 44px minmax(0, 1fr); }
  .crisis-portal-count { position: absolute; top: 14px; right: 14px; }
  .crisis-portal-card .module-arrow { display: none; }
  .call-response-buttons { display: grid; grid-template-columns: 1fr; }
  .board-meta { grid-template-columns: 1fr; }
}

/* Exercise management, safety, ITSM and continuity */
.real-event-banner { width: 100%; margin: 0 0 22px; padding: 16px 18px; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 1rem; align-items: center; color: white; background: linear-gradient(115deg, #8f2424, #c23f35); border: 2px solid #6f1717; border-radius: 12px; box-shadow: 0 10px 25px rgba(131,30,30,.2); }
.real-event-symbol { width: 44px; height: 44px; display: grid; place-items: center; color: #8f2424; background: white; border-radius: 50%; font-size: 1.45rem; font-weight: 950; }
.real-event-banner > div { min-width: 0; }
.real-event-banner strong { display: block; font-size: .76rem; letter-spacing: .1em; }
.real-event-banner p { margin: .25rem 0 0; color: #fff0ef; font-size: .8rem; }
.real-event-banner a { padding: .65rem .85rem; color: #7c2020; background: white; border-radius: 8px; font-size: .72rem; font-weight: 800; }

.management-context { min-width: 0; margin-bottom: 18px; padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: white; background: linear-gradient(110deg, var(--navy), #1a5262); border-radius: 14px; overflow: hidden; }
.management-context > div { min-width: 0; display: flex; align-items: flex-start; gap: .8rem; }
.management-context > div > div { min-width: 0; display: flex; flex-direction: column; }
.management-context small { color: #97c9d1; font-size: .57rem; font-weight: 850; letter-spacing: .1em; }
.management-context strong, .management-context span { overflow-wrap: anywhere; }
.management-context > div strong { margin: .2rem 0; font-size: 1.1rem; }
.management-context > div span { color: #c2d4de; font-size: .72rem; }
.management-context > strong { display: flex; flex-direction: column; align-items: flex-end; font-size: 1.7rem; }
.management-context > strong small { font-size: .58rem; }

.management-card-grid, .template-version-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.management-card, .template-version-card { min-width: 0; padding: 19px; background: #f8fafb; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.management-card-top { min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: .7rem; }
.management-card-top > * { min-width: 0; overflow-wrap: anywhere; }
.management-card-top small { color: var(--muted); font-size: .64rem; }
.management-card h3, .template-version-card h3 { margin: .8rem 0 .45rem; }
.management-card p, .template-version-card p { color: var(--ink-soft); font-size: .76rem; }
.criteria-box { margin-top: .8rem; padding: .75rem; background: white; border-left: 3px solid var(--cyan); border-radius: 6px; }
.criteria-box strong { font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; }
.criteria-box p { margin: .25rem 0 0; }
.objective-score { margin-top: .8rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.objective-score span { min-width: 0; padding: .55rem; display: flex; flex-direction: column; color: var(--muted); background: white; border-radius: 6px; font-size: .6rem; }
.objective-score b { color: var(--ink); font-size: .9rem; }
.evaluation-timeline { display: grid; gap: 12px; }
.evaluation-observation { min-width: 0; padding: 16px 18px; display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 1rem; background: #f8fafb; border: 1px solid var(--line); border-left: 4px solid #93a1ae; border-radius: 9px; }
.evaluation-observation.rating-achieved { border-left-color: #3ca578; }
.evaluation-observation.rating-partial { border-left-color: #dc9f39; }
.evaluation-observation.rating-not_achieved { border-left-color: #c94a45; }
.evaluation-observation time { color: var(--muted); font: 700 .67rem ui-monospace, monospace; }
.evaluation-observation > div { min-width: 0; }
.evaluation-observation h3 { margin: .55rem 0 .35rem; }
.evaluation-observation p { margin: 0 0 .45rem; color: var(--ink-soft); font-size: .76rem; }
.evaluation-observation > div > small { display: block; margin-top: .2rem; color: var(--muted); font-size: .65rem; }
.improvement-list { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.improvement-card { min-width: 0; padding: 18px; background: #f8fafb; border: 1px solid var(--line); border-top: 4px solid #7890a3; border-radius: 10px; }
.improvement-card.priority-high { border-top-color: #dc8537; }
.improvement-card.priority-critical { border-top-color: #c83f3f; }
.improvement-card.priority-low { border-top-color: #4b9c75; }
.form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.exercise-management-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.context-mini-card { min-width: 0; padding: .7rem 1rem; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; background: #f5f8fa; border: 1px solid var(--line); border-radius: 9px; }
.context-mini-card > * { max-width: 100%; overflow-wrap: anywhere; }
.context-mini-card small { color: var(--muted); }
.danger-governance-card { border-top-color: #b3443f; }
.governance-state { padding: 1rem; display: flex; flex-direction: column; gap: .2rem; color: #285d50; background: #eef7f3; border: 1px solid #cce4da; border-radius: 9px; }
.governance-state span { color: var(--muted); font-size: .74rem; }
.template-version-card { display: flex; flex-direction: column; gap: .65rem; }
.template-version-card > form { margin-top: auto; }

.safety-ready { color: #176847; background: #dff4ea; }
.safety-active { color: white; background: #b52f2f; }
.safety-stop-panel { min-width: 0; margin-bottom: 20px; padding: clamp(24px, 4vw, 46px); display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 1.5rem; background: white; border: 2px solid #e8b4b0; border-radius: 16px; box-shadow: var(--shadow-soft); }
.safety-stop-panel.is-active { color: white; background: linear-gradient(125deg, #721d1d, #b3322d); border-color: #5c1515; }
.safety-stop-symbol { width: 84px; height: 84px; display: grid; place-items: center; color: white; background: #ad2e2e; border-radius: 50%; font-size: 2.6rem; font-weight: 950; }
.safety-stop-panel.is-active .safety-stop-symbol { color: #8b2222; background: white; }
.safety-stop-panel > div:last-child { min-width: 0; }
.safety-stop-panel.is-active .overline, .safety-stop-panel.is-active p { color: #ffe1df; }
.safety-stop-panel dl { display: flex; flex-wrap: wrap; gap: 1rem; }
.safety-stop-panel dl div { padding: .7rem 1rem; background: rgba(255,255,255,.1); border-radius: 8px; }
.safety-stop-panel dt { color: #ffc7c4; font-size: .58rem; font-weight: 850; letter-spacing: .08em; }
.safety-stop-panel dd { margin: .25rem 0 0; font-weight: 750; }
.safety-trigger-form { max-width: 760px; }
.safety-procedure-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.safety-procedure-grid article { min-width: 0; padding: 15px; background: #f5f8fa; border-radius: 9px; }
.safety-procedure-grid p { margin: .35rem 0 0; color: var(--muted); font-size: .72rem; }

.service-desk-layout { min-width: 0; display: grid; grid-template-columns: 350px minmax(0, 1fr); gap: 18px; align-items: start; }
.ticket-queue, .ticket-workspace { min-width: 0; background: white; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; box-shadow: var(--shadow-soft); }
.ticket-queue > header { padding: 18px; border-bottom: 1px solid var(--line); }
.ticket-queue > header h2 { margin: 0; }
.ticket-queue-item { min-width: 0; padding: 15px 17px; display: block; border-bottom: 1px solid var(--line); border-left: 4px solid #8292a1; }
.ticket-queue-item.priority-high { border-left-color: #df8738; }
.ticket-queue-item.priority-critical { border-left-color: #c9433e; }
.ticket-queue-item.priority-low { border-left-color: #49a078; }
.ticket-queue-item.active { background: #edf7f8; box-shadow: inset 0 0 0 1px #a8dadd; }
.ticket-queue-item > span, .ticket-queue-item footer { min-width: 0; display: flex; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .62rem; }
.ticket-queue-item > span strong { color: var(--cyan-dark); font: 800 .64rem ui-monospace, monospace; }
.ticket-queue-item h3 { margin: .55rem 0; font-size: .86rem; }
.ticket-detail-header { min-width: 0; padding: 24px; display: flex; justify-content: space-between; gap: 1rem; background: #f8fafb; border-bottom: 1px solid var(--line); }
.ticket-detail-header > div { min-width: 0; }
.ticket-detail-header h2 { margin: .5rem 0; }
.ticket-detail-header p { margin: 0; color: var(--ink-soft); font-size: .78rem; }
.ticket-detail-header > div:last-child { flex: 0 0 auto; padding-left: 1rem; border-left: 2px solid var(--line); }
.ticket-detail-header > div:last-child small { display: block; color: var(--muted); font-size: .55rem; }
.ticket-editor { border-bottom: 1px solid var(--line); }
.ticket-editor > summary { padding: 14px 24px; color: var(--cyan-dark); background: #f4f9fa; cursor: pointer; font-size: .75rem; font-weight: 800; }
.ticket-editor > form { padding: 20px 24px; }
.ticket-conversation { padding: 22px 24px; }
.ticket-comment { min-width: 0; margin: 10px 0; padding: 13px 15px; background: #f5f8fa; border-left: 3px solid #6d92ac; border-radius: 7px; }
.ticket-comment.is-internal { background: #fff8e8; border-left-color: #d89b34; }
.ticket-comment header { min-width: 0; display: flex; justify-content: space-between; gap: .7rem; font-size: .68rem; }
.ticket-comment header span { color: var(--muted); font-size: .56rem; }
.ticket-comment p { margin: .5rem 0 0; color: var(--ink-soft); font-size: .75rem; }
.ticket-reply { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }

.continuity-stats { margin-bottom: 18px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.continuity-stat { min-width: 0; padding: 14px; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-top: 4px solid #8292a1; border-radius: 9px; }
.continuity-stat span { font-size: 1.5rem; font-weight: 850; }
.continuity-stat strong { color: var(--muted); font-size: .67rem; }
.continuity-stat.status-unavailable { border-top-color: #c9433e; }
.continuity-stat.status-degraded { border-top-color: #df8738; }
.continuity-stat.status-recovering { border-top-color: #4e82ad; }
.continuity-stat.status-restored, .continuity-stat.status-operational { border-top-color: #49a078; }
.continuity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.continuity-grid > .empty-state { grid-column: 1 / -1; }
.continuity-card { min-width: 0; padding: 20px; background: white; border: 1px solid var(--line); border-top: 5px solid #8292a1; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-soft); }
.continuity-card.status-unavailable { border-top-color: #c9433e; }
.continuity-card.status-degraded { border-top-color: #df8738; }
.continuity-card.status-recovering { border-top-color: #4e82ad; }
.continuity-card.status-restored, .continuity-card.status-operational { border-top-color: #49a078; }
.continuity-card > header { min-width: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.continuity-card > header > div { min-width: 0; }
.continuity-card h2 { margin: .25rem 0; }
.continuity-card header p { margin: 0; color: var(--muted); font-size: .7rem; }
.continuity-state { flex: 0 0 auto; padding: .35rem .55rem; color: var(--ink-soft); background: #edf2f5; border-radius: 999px; font-size: .6rem; font-weight: 850; }
.continuity-metrics { margin: 15px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.continuity-metrics span { padding: .7rem; display: flex; flex-direction: column; background: #f3f7f8; border-radius: 7px; }
.continuity-metrics small, .continuity-info small { color: var(--muted); font-size: .54rem; font-weight: 850; letter-spacing: .07em; }
.continuity-metrics strong { margin-top: .15rem; }
.continuity-info { min-width: 0; padding: .6rem 0; border-top: 1px solid var(--line); }
.continuity-info p { margin: .2rem 0 0; color: var(--ink-soft); font-size: .72rem; }
.continuity-action { margin-top: 12px; padding: 14px; background: #f7fafb; border-radius: 8px; }
.continuity-editor { margin-top: 12px; }
.continuity-editor > summary { color: var(--cyan-dark); cursor: pointer; font-size: .7rem; font-weight: 800; }
.continuity-editor > form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }

.report-section .rating-achieved { color: #176847; background: #dff4ea; }
.report-section .rating-partial { color: #7d5311; background: #fff1cf; }
.report-section .rating-not_achieved { color: #8d2d29; background: #ffe3e1; }

@media (max-width: 1050px) {
  .management-card-grid, .template-version-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid-4, .safety-procedure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-desk-layout { grid-template-columns: 300px minmax(0, 1fr); }
  .continuity-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .real-event-banner { grid-template-columns: 40px minmax(0, 1fr); }
  .real-event-banner a { grid-column: 1 / -1; }
  .management-context { align-items: flex-start; flex-direction: column; }
  .management-context > strong { align-items: flex-start; }
  .management-card-grid, .template-version-grid, .improvement-list, .exercise-management-columns, .continuity-grid { grid-template-columns: 1fr; }
  .objective-score { grid-template-columns: 1fr; }
  .evaluation-observation { grid-template-columns: 1fr; }
  .form-grid-4, .safety-procedure-grid { grid-template-columns: 1fr; }
  .safety-stop-panel { grid-template-columns: 1fr; }
  .safety-stop-symbol { width: 62px; height: 62px; font-size: 2rem; }
  .service-desk-layout { grid-template-columns: 1fr; }
  .ticket-queue { max-height: 430px; overflow-y: auto; }
  .ticket-detail-header { flex-direction: column; }
  .ticket-detail-header > div:last-child { padding: .7rem 0 0; border-left: 0; border-top: 2px solid var(--line); }
  .continuity-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 500px) {
  .continuity-stats, .continuity-metrics { grid-template-columns: 1fr; }
  .continuity-card > header, .ticket-comment header { flex-direction: column; }
}

/* Administrative service billing */
.module-billing .module-icon, .billing-setup .module-setup-icon { background: #167f8b; }
.billing-admin-layout { align-items: start; }
.billing-context { background: linear-gradient(118deg, #12243a, #126873); }
.billing-context-metrics { display: flex; align-items: stretch; gap: .75rem; }
.billing-context-metrics > span { min-width: 105px; padding: .75rem 1rem; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.2); }
.billing-context-metrics small { color: #87d6dd; font-size: .61rem; font-weight: 900; letter-spacing: .12em; }
.billing-context-metrics strong { margin-top: .3rem; color: white; font-size: 1.4rem; }
.billing-document-list { margin-top: 18px; }
.billing-document-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.billing-document-grid > .empty-state { grid-column: 1 / -1; }
.billing-document-card { min-width: 0; padding: .9rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: .8rem; color: var(--navy); background: #f7f9fa; border: 1px solid var(--line); border-radius: 9px; text-decoration: none; transition: border-color .15s ease, background .15s ease; }
.billing-document-card:hover, .billing-document-card.active { background: #ecf7f8; border-color: #79c5cc; }
.billing-document-card > span { min-width: 0; display: flex; flex-direction: column; }
.billing-document-card > span:last-child { flex: 0 0 auto; text-align: right; }
.billing-document-card strong, .billing-document-card small { max-width: 100%; overflow-wrap: anywhere; }
.billing-document-card small { margin-top: .25rem; color: var(--muted); font-size: .64rem; }
.billing-document-header { min-width: 0; margin-top: 18px; padding: 22px 24px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: white; background: #182c40; border-radius: 12px; }
.billing-document-header > div { min-width: 0; }
.billing-document-header h2 { margin: .5rem 0 .2rem; color: white; font-size: 1.5rem; overflow-wrap: anywhere; }
.billing-document-header p { margin: 0; color: #becbd7; overflow-wrap: anywhere; }
.billing-document-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: .5rem; }
.billing-document-actions form { margin: 0; }
.billing-status-approved { color: #69521f; background: #f6e8b7; }
.billing-status-sent { color: #195c68; background: #cfedf0; }
.billing-status-paid { color: #17613f; background: #ccf0dd; }
.billing-status-cancelled { color: #873b35; background: #f3d4d0; }
.billing-summary-grid { margin: 18px 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.billing-credit-note .billing-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.billing-summary-grid article { min-width: 0; padding: 1rem; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-top: 4px solid #6a8793; border-radius: 9px; }
.billing-summary-grid article.billing-total { border-top-color: #168795; }
.billing-summary-grid article.billing-cost { border-top-color: #a97928; }
.billing-summary-grid article.billing-margin { border-top-color: #2b8a62; }
.billing-summary-grid small { color: var(--muted); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.billing-summary-grid strong { margin: .5rem 0 .3rem; font-size: 1.12rem; overflow-wrap: anywhere; }
.billing-summary-grid span { color: var(--muted); font-size: .62rem; line-height: 1.35; }
.billing-details-form { margin-bottom: 18px; border-top: 4px solid #168795; }
.billing-party-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.billing-party-grid fieldset { min-width: 0; margin: 0; }
.billing-line-list, .billing-cost-list { display: grid; gap: 9px; }
.billing-line-card, .billing-cost-card { min-width: 0; overflow: hidden; background: #fafbfc; border: 1px solid var(--line); border-radius: 9px; }
.billing-line-card > summary, .billing-cost-card > summary { min-width: 0; padding: .9rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; cursor: pointer; list-style: none; }
.billing-line-card > summary::-webkit-details-marker, .billing-cost-card > summary::-webkit-details-marker { display: none; }
.billing-line-card > summary > span, .billing-cost-card > summary > span { min-width: 0; display: flex; flex-direction: column; }
.billing-line-card > summary > strong, .billing-cost-card > summary > span:last-child { flex: 0 0 auto; text-align: right; }
.billing-line-card summary b, .billing-cost-card summary b { margin-bottom: .25rem; color: #168795; font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.billing-line-card summary strong, .billing-line-card summary small, .billing-cost-card summary strong, .billing-cost-card summary small { overflow-wrap: anywhere; }
.billing-line-card summary small, .billing-cost-card summary small { margin-top: .22rem; color: var(--muted); font-size: .63rem; }
.billing-line-card[open], .billing-cost-card[open] { background: white; border-color: #a8cfd3; }
.billing-inline-editor { padding: 1rem; border-top: 1px solid var(--line); }
.billing-delete-form { padding: 0 1rem 1rem; }
.billing-delete-form .link-button { padding-left: 0; border-left: 0; }
.billing-rate-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .75rem; }
.billing-attendee-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.billing-attendee-card { min-width: 0; padding: .8rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(115px,.55fr); align-items: center; gap: .55rem .8rem; background: #f8fafb; border: 1px solid var(--line); border-left: 4px solid #a6b2bb; border-radius: 8px; }
.billing-attendee-card.status-present { border-left-color: #2f9367; }
.billing-attendee-card.status-absent { border-left-color: #b84f45; }
.billing-attendee-card > div { min-width: 0; display: flex; flex-direction: column; }
.billing-attendee-card strong, .billing-attendee-card small { overflow-wrap: anywhere; }
.billing-attendee-card small { margin-top: .2rem; color: var(--muted); font-size: .61rem; }
.billing-attendee-card .check-label { grid-column: 1 / -1; margin: 0; }
.billing-save-row { margin-top: 1rem; display: flex; justify-content: flex-end; }
.billing-external-section { margin-top: 18px; border-top: 4px solid #a97928; }
.billing-trainer-directory { margin-top: 1rem; padding: .85rem 1rem; background: #f7f9fa; border: 1px solid var(--line); border-radius: 8px; }
.billing-trainer-directory > summary { color: var(--navy); font-weight: 800; cursor: pointer; }
.billing-trainer-grid { margin-top: .8rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.billing-trainer-grid article { min-width: 0; padding: .75rem; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-radius: 7px; }
.billing-trainer-grid strong, .billing-trainer-grid small, .billing-trainer-grid span { overflow-wrap: anywhere; }
.billing-trainer-grid small { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.billing-trainer-grid span { margin-top: .35rem; color: #7c5a1c; font-size: .64rem; font-weight: 800; }
.billing-document-delete { margin: 1.1rem 0; }
.billing-document-delete .link-button { padding-left: 0; border-left: 0; }

@media (max-width: 1180px) {
  .billing-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .billing-rate-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .billing-context-metrics { width: 100%; }
  .billing-context-metrics > span { border-left: 0; border-right: 1px solid rgba(255,255,255,.2); }
  .billing-document-grid, .billing-party-grid, .billing-attendee-grid, .billing-trainer-grid { grid-template-columns: 1fr; }
  .billing-document-header { align-items: flex-start; flex-direction: column; }
  .billing-document-actions { width: 100%; justify-content: flex-start; }
  .billing-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .billing-rate-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 520px) {
  .billing-context-metrics, .billing-document-card, .billing-line-card > summary, .billing-cost-card > summary { align-items: flex-start; flex-direction: column; }
  .billing-document-card > span:last-child, .billing-line-card > summary > strong, .billing-cost-card > summary > span:last-child { text-align: left; }
  .billing-summary-grid, .billing-rate-grid { grid-template-columns: 1fr; }
  .billing-attendee-card { grid-template-columns: 1fr; }
  .billing-attendee-card .check-label { grid-column: 1; }
}

/* Account security and platform maintenance */
.user-security-link { color: inherit; text-decoration: none; }
.user-security-link:hover, .user-security-link:focus-visible { color: var(--cyan-dark); text-decoration: underline; }
.security-settings-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(300px,.6fr); gap: 22px; align-items: start; }
.recovery-code-panel, .mfa-setup-panel { margin: 18px 0; padding: 1rem; background: #f1faf7; border: 1px solid #a8ddc8; border-radius: 9px; }
.recovery-code-grid { margin: .9rem 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.recovery-code-grid code { padding: .65rem .8rem; color: var(--navy); background: white; border: 1px solid var(--line); border-radius: 6px; font-size: .83rem; text-align: center; overflow-wrap: anywhere; }
.mfa-setup-panel dl { display: grid; grid-template-columns: 135px minmax(0,1fr); gap: .5rem 1rem; }
.mfa-setup-panel dt { color: var(--muted); font-size: .68rem; font-weight: 800; }
.mfa-setup-panel dd { margin: 0; overflow-wrap: anywhere; }
.mfa-uri { max-height: 130px; overflow: auto; padding: .7rem; color: #334759; background: white; border: 1px solid var(--line); border-radius: 6px; font-size: .62rem; }
.sensitive-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.cancel-setup-form { margin-top: .7rem; }
.maintenance-capability-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.maintenance-capability { min-width: 0; padding: .9rem; background: #f7f9fa; border: 1px solid var(--line); border-radius: 8px; }
.maintenance-capability strong, .maintenance-capability span { display: block; overflow-wrap: anywhere; }
.maintenance-capability span { margin-top: .25rem; color: var(--muted); font-size: .66rem; }
.maintenance-capability.available { border-left: 4px solid #3c9b70; }
.maintenance-capability.optional { border-left: 4px solid #d0a247; }
.split-actions { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(360px,1.3fr); gap: 18px; align-items: end; }
.split-actions > form { margin: 0; }
.form-inline { display: flex; align-items: end; gap: .7rem; }
.form-inline label { min-width: 0; flex: 1; }
.helper-text { margin-top: .8rem; color: var(--muted); font-size: .69rem; line-height: 1.55; }

@media (max-width: 900px) {
  .maintenance-capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .security-settings-grid, .maintenance-capability-grid { grid-template-columns: 1fr; }
  .recovery-code-grid { grid-template-columns: 1fr; }
  .split-actions { grid-template-columns: 1fr; }
  .form-inline { align-items: stretch; flex-direction: column; }
}
