:root {
  color-scheme: dark;
  font-family: Inter, Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #07111f;
  color: #f4f8fc;
  --bg: #07111f;
  --panel: #0d1b2b;
  --panel-2: #112238;
  --line: #263b52;
  --muted: #91a6bb;
  --green: #58e294;
  --blue: #5aa9ff;
  --amber: #ffc765;
  --red: #ff7a82;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  padding-right: env(safe-area-inset-right);
  padding-left: env(safe-area-inset-left);
  background: radial-gradient(circle at 75% -20%, #173d63 0, transparent 34%), var(--bg);
}
button, input, select { min-width: 0; max-width: 100%; font: inherit; }
a { color: inherit; }
.shell {
  width: min(560px, calc(100% - 36px));
  min-width: 0;
  overflow-wrap: anywhere;
  margin: 0 auto;
  padding: calc(42px + env(safe-area-inset-top)) 0 calc(64px + env(safe-area-inset-bottom));
}
.shell-wide { width: min(1440px, calc(100% - 40px)); }
.page-auth {
  color-scheme: light;
  color: #172033;
  background:
    radial-gradient(circle at 12% 8%, #ffffff 0, #ffffff00 32%),
    radial-gradient(circle at 88% 92%, #e3efff 0, #e3efff00 38%),
    linear-gradient(150deg, #fffefe 0%, #eef6ff 52%, #f9fbff 100%);
}
.shell-auth {
  width: min(480px, calc(100% - 36px));
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: max(32px, calc(7vh + env(safe-area-inset-top))) 0 max(32px, calc(7vh + env(safe-area-inset-bottom)));
}
.login-brand, .auth-heading { margin: 0 0 28px; text-align: center; }
.login-brand a { display: inline-block; color: inherit; text-decoration: none; }
.login-brand strong {
  color: #173f87;
  font-size: clamp(30px, 8vw, 42px);
  font-weight: 850;
  letter-spacing: -.045em;
}
.auth-heading h1 {
  margin: 0;
  color: #173f87;
  font-size: clamp(25px, 7vw, 38px);
  font-weight: 850;
  line-height: 1.16;
  letter-spacing: -.045em;
}
.page-auth .form-card {
  border-color: #dbe6f3;
  background: #fff;
  box-shadow: 0 24px 70px #3763941a;
}
.page-auth .form-card label { color: #26364d; }
.page-auth input {
  border-color: #cbd9e8;
  background: #f8fbff;
  color: #172033;
}
.page-auth input:focus {
  border-color: #4b82e6;
  box-shadow: 0 0 0 3px #4b82e61f;
  background: #fff;
}
.page-auth .form-card small,
.page-auth .remember-login small { color: #66758a; }
.auth-factor-note { margin-top: -8px; text-align: center; line-height: 1.5; }
.page-auth .primary {
  background: linear-gradient(135deg, #5a8ff0, #376ed3);
  box-shadow: 0 10px 24px #376ed329;
}
.page-auth .subnav { color: #66758a; }
.page-auth .notice { margin: 0 0 16px; }
.page-auth .notice-error { border-color: #f3c9cf; background: #fff2f4; color: #a43c4a; }
.page-auth .notice-ok { border-color: #bfe5ce; background: #effbf4; color: #24764a; }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-home { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand-mark { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 13px; background: linear-gradient(145deg, #71b8ff, #3371ff); box-shadow: 0 12px 34px #1d65d955; font-weight: 900; font-size: 20px; }
.brand strong, .brand small { display: block; }
.brand strong { letter-spacing: .04em; }
.brand small { margin-top: 2px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.hero { margin: 64px 0 28px; }
.eyebrow { display: block; color: #76b9ff; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 14px; font-size: clamp(34px, 6vw, 52px); letter-spacing: -.045em; line-height: 1.08; }
h2 { margin-bottom: 0; font-size: 22px; letter-spacing: -.025em; }
p { color: var(--muted); line-height: 1.65; }
.form-card, .action-card, .panel { border: 1px solid var(--line); border-radius: 22px; background: color-mix(in srgb, var(--panel) 94%, transparent); box-shadow: 0 24px 80px #0004; }
.form-card { display: grid; gap: 20px; padding: 26px; }
.form-card label, fieldset { display: grid; gap: 8px; font-size: 14px; font-weight: 700; }
.form-card .remember-login { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: 650; }
.remember-login input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--blue); }
.remember-login span { display: grid; gap: 3px; }
.remember-login small { line-height: 1.45; }
input, select { width: 100%; border: 1px solid #304861; border-radius: 12px; outline: none; background: #081522; color: #fff; padding: 13px 14px; }
input:focus, select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px #5aa9ff24; }
input[readonly] { border-color: #2d536f; background: #102337; color: #9fd1ff; cursor: default; }
label small, .block { color: var(--muted); font-size: 11px; font-weight: 500; }
fieldset { margin: 0; padding: 0; border: 0; }
legend { margin-bottom: 10px; }
.role-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.role-options label { position: relative; cursor: pointer; }
.role-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.role-options span { min-height: 82px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #0a1725; }
.role-options span small { display: block; margin-top: 7px; }
.role-options input:checked + span { border-color: var(--blue); background: #102b47; box-shadow: inset 0 0 0 1px var(--blue); }
button, .button-link { border: 0; border-radius: 11px; padding: 11px 14px; cursor: pointer; background: #1a2d42; color: #dceafb; font-weight: 750; text-decoration: none; }
.primary { padding: 14px 18px; background: linear-gradient(135deg, #458cf6, #3964e8); color: #fff; }
.subnav { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; margin-top: 22px; color: var(--muted); font-size: 13px; }
.notice { margin: 24px 0 -30px; padding: 12px 14px; border-radius: 12px; font-size: 13px; }
.notice-error { border: 1px solid #743841; background: #361a22; color: #ffb0b5; }
.notice-ok { border: 1px solid #25573d; background: #102c20; color: #8cf0b6; }
.action-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; }
.action-card p { margin: 6px 0 0; font-size: 13px; }
.text-button { margin: 18px auto 0; display: block; background: transparent; color: var(--muted); }
.admin-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 20px; }
.top-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.top-actions a, .top-actions button { padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: #0b1827; text-decoration: none; font-size: 13px; }
.top-actions a { max-width: 320px; line-height: 1.35; text-align: center; }
.top-actions form { margin: 0; }
.version-chip, .version-current { display: inline-flex; align-items: center; max-width: 100%; padding: 7px 10px; border: 1px solid #24496a; border-radius: 999px; background: #10263b; color: #8fc8ff; font-size: 11px; font-weight: 800; }
.admin-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; margin: 32px 0 30px; }
.hero.management-hero { margin-top: 0; }
.notice + .hero.management-hero, .notice + .admin-hero { margin-top: 48px; }
.admin-hero h1 { margin-top: 8px; }
.admin-hero p { margin-bottom: 0; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(105px, 1fr)); gap: 10px; }
.stats div { padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: #0d1c2c; }
.stats strong, .stats span { display: block; }
.stats strong { font-size: 28px; }
.stats span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.panel { padding: 24px; margin-bottom: 18px; }
.section-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-bottom: 20px; }
.section-title .eyebrow { margin-bottom: 7px; }
.count { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: #193552; color: #8ac5ff; font-weight: 800; }
.request-list { display: grid; gap: 10px; }
.request-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 460px); align-items: center; gap: 18px; padding: 16px; border: 1px solid #263b52; border-radius: 15px; background: #0a1725; }
.person { display: flex; align-items: center; gap: 12px; min-width: 0; }
.person strong, .person small { display: block; }
.person small { margin-top: 4px; color: var(--muted); }
.avatar { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 12px; background: #1d3b59; color: #9ccfff; font-weight: 850; }
.requested { color: var(--muted); font-size: 12px; }
.approval-actions, .mini-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.approval-actions button, .mini-actions button { padding: 8px 10px; font-size: 11px; }
.approve-admin { background: #3a2757; color: #d9bcff; }
.approve-editor { background: #163b5d; color: #9fd1ff; }
.approve-reader { background: #173e2a; color: #94efba; }
.reject { background: #3a2025 !important; color: #ffadb3 !important; }
.grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
/* A table's intrinsic width belongs to its own scroller, not the outer grid.
   Nested flex/grid text and form controls must also be allowed to shrink. */
.shell > *, .grid-two > *, .panel > *, .form-card > *, .request-list > *,
.request-row > *, .person > *, .admin-top > *, .top-actions > *,
.admin-hero > *, .section-title > *, .action-card > *, .code-control > *,
.code-form > *, .remember-login > *, .brand, .brand-home { min-width: 0; }
.table-wrap { min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.table-wrap .mini-actions { min-width: max-content; flex-wrap: nowrap; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th, td { padding: 12px 10px; border-bottom: 1px solid #213448; text-align: left; white-space: nowrap; }
th { color: #7089a1; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.role, .status { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.role-admin { background: #35234f; color: #d5b3ff; }
.role-editor { background: #143652; color: #9dcfff; }
.role-reader { background: #153b28; color: #91eab6; }
.account-type { margin-right: 5px; }
.account-type-internal { background: #263244; color: #c9d5e5; }
.account-type-external { background: #4b3514; color: #ffd792; }
.organization-role { margin-right: 5px; }
.organization-role-super_admin { background: #44245f; color: #e1c1ff; }
.organization-role-manager { background: #123f66; color: #a9d8ff; }
.organization-role-employee { background: #1d4632; color: #a1edbf; }
.status-approved { background: #153b28; color: #91eab6; }
.status-rejected, .status-disabled { background: #3a2025; color: #ffadb3; }
.online-dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px #58e294aa; }
.live-label { color: var(--muted); font-size: 11px; }
.empty, .empty-cell { padding: 22px; color: var(--muted); text-align: center; }
.code-control { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 22px; }
.code-control > div { display: grid; gap: 8px; }
.code-control small { color: var(--muted); }
.code-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.code-form label { display: grid; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 700; }
.code-hint, .issued-code input { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; letter-spacing: .05em; }
.issued-code { display: grid; gap: 12px; }
.issued-code label { display: grid; gap: 10px; color: var(--muted); font-size: 13px; font-weight: 700; }
.issued-code input { font-size: clamp(14px, 3vw, 21px); color: #dff1ff; }

.admin-summary-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.admin-summary-stats > button { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; min-height: 68px; gap: 7px; padding: 4px 6px; border-radius: 0; background: transparent; text-align: center; -webkit-tap-highlight-color: transparent; transition: background-color 180ms ease, color 180ms ease; }
.admin-summary-stats > button + button { border-left: 1px solid var(--line); }
.admin-summary-stats > button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 8px; }
.admin-summary-stats > button[aria-expanded="true"] { background: #17304a; color: #b7ddff; }
.admin-summary-stats > button > span { display: flex; align-items: center; justify-content: center; gap: 4px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; white-space: nowrap; }
.admin-summary-stats > button > strong { font-size: clamp(24px, 5vw, 32px); font-weight: 800; line-height: 1.2; font-variant-numeric: tabular-nums; }
.admin-summary-chevron { flex: 0 0 12px; width: 12px; height: 12px; transition: transform 220ms ease; }
.admin-summary-stats > button[aria-expanded="true"] .admin-summary-chevron { transform: rotate(180deg); }
.admin-summary-drawer { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows 220ms ease, opacity 180ms ease; }
.admin-summary-drawer[aria-hidden="false"] { grid-template-rows: 1fr; opacity: 1; }
.admin-summary-drawer-inner { min-width: 0; min-height: 0; overflow: hidden; }
.admin-summary-content { min-width: 0; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.admin-summary-content h3 { margin: 0; font-size: 15px; line-height: 1.5; }
.admin-summary-note { margin: 6px 0 14px; font-size: 11px; line-height: 1.6; }
.admin-summary-list { display: grid; list-style: none; max-height: 360px; max-height: min(360px, 50dvh); margin: 0; padding: 0; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
.admin-summary-list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; gap: 12px; min-height: 48px; padding: 12px 0; border-top: 1px solid var(--line); }
.admin-summary-list li:first-child { border-top: 0; }
[data-member-summary-user-id][hidden], [data-member-summary-empty][hidden] { display: none; }
.admin-summary-name, .admin-summary-meta { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.5; }
.admin-summary-name { font-size: 13px; font-weight: 700; }
.admin-summary-meta { color: var(--muted); font-size: 11px; text-align: right; }
.admin-summary-empty { margin: 0; padding: 18px 0 4px; font-size: 12px; }
@media (hover: hover) {
  .admin-summary-stats > button:hover { background: #132a42; }
}
@media (prefers-reduced-motion: reduce) {
  .admin-summary-stats > button, .admin-summary-chevron, .admin-summary-drawer { transition: none; }
}
.admin-code-panel { margin-top: 22px; align-items: center; grid-template-columns: minmax(0, 1fr) minmax(140px, auto); }
.admin-code-panel .code-form { grid-template-columns: minmax(0, 1fr); margin: 0; }
.admin-code-panel h2 { font-size: 20px; }
.admin-code-panel [data-code-result] label { display: grid; gap: 8px; color: var(--muted); font-size: 12px; }
.admin-code-panel [data-generated-code] { width: 100%; min-height: 46px; font: 600 16px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; letter-spacing: .03em; user-select: all; }
.admin-code-panel [data-code-hint] { font-size: 14px; line-height: 1.5; }
.admin-code-panel small { line-height: 1.6; }
.admin-code-panel [data-code-status] { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.admin-code-panel [data-code-status]:empty, .admin-code-panel [hidden] { display: none; }
.admin-code-panel[data-code-state="success"] [data-code-status] { color: var(--green); }
.admin-code-panel[data-code-state="error"] [data-code-status], .admin-code-panel[data-code-state="uncertain"] [data-code-status] { color: var(--amber); }
.admin-code-panel [data-code-submit]:disabled { cursor: progress; opacity: .7; }

/* Selected transcripts stay inert text and wrap within the mobile viewport. */
.admin-utterance-board { scroll-margin-top: 20px; }
.admin-utterance-board * { min-width: 0; overflow-wrap: anywhere; }
.admin-utterance-intro { margin: 8px 0 0; font-size: 12px; }
.admin-utterance-refresh { font-size: 12px; }
.admin-utterance-back { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-bottom: 22px; }
.admin-utterance-back a { color: #9ccfff; font-size: 12px; text-decoration: none; padding: 6px 0; }
.admin-utterance-members, .admin-utterance-conversations, .admin-utterance-messages { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.admin-utterance-members { grid-template-columns: minmax(0, 1fr); }
.admin-utterance-member-form { display: grid; gap: 16px; margin: 0; }
.admin-utterance-member-reason { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #0a1828; }
.admin-utterance-member-reason .admin-utterance-note { margin-top: 10px; }
.admin-utterance-member { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; width: 100%; min-height: 58px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 15px; background: #0a1828; color: inherit; text-align: left; text-decoration: none; }
.admin-utterance-member:focus-visible { outline: 2px solid #8ec9ff; outline-offset: 3px; }
.admin-utterance-person { display: flex; align-items: center; gap: 8px; }
.admin-utterance-member-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 1.5; }
.admin-utterance-member-role { color: var(--muted); font-size: 11px; line-height: 1.5; white-space: nowrap; }
.admin-utterance-member-presence { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 6px; color: #a1b5ca; font-size: 11px; line-height: 1.5; font-weight: 400; }
.admin-utterance-member-presence time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.admin-utterance-member-status { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; white-space: nowrap; font-size: 10px; }
.admin-utterance-member-status::before { content: ''; display: inline-block; flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: #73879c; }
.admin-utterance-member.is-online, .admin-utterance-member.is-online:hover { border-color: #45bfae; background: #11332f; box-shadow: inset 0 0 0 1px #45bfae1c; }
.admin-utterance-member.is-online .admin-utterance-member-status { color: #88eddb; }
.admin-utterance-member.is-online .admin-utterance-member-status::before { background: #70e2ce; box-shadow: 0 0 7px #70e2ce66; }
.admin-member-presence-notice { margin: 0; }
.admin-member-presence-notice[hidden] { display: none; }
.admin-utterance-role { display: inline-grid; place-items: center; flex: 0 0 26px; min-height: 26px; border-radius: 8px; font-size: 12px; font-weight: 800; }
.admin-utterance-role.is-super_admin { background: #44245f; color: #e1c1ff; }
.admin-utterance-role.is-manager { background: #123f66; color: #a9d8ff; }
.admin-utterance-open { flex: 0 0 auto; color: #9ccfff; font-size: 11px; white-space: nowrap; }
.admin-utterance-empty { grid-column: 1 / -1; padding: 30px 14px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; font-size: 13px; line-height: 1.7; }
.admin-utterance-conversations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-utterance-conversation { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 16px; height: 100%; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #0a1828; color: inherit; text-decoration: none; }
.admin-utterance-conversation strong { display: block; font-size: 14px; line-height: 1.65; }
.admin-utterance-conversation div > span { display: block; margin-top: 8px; color: var(--muted); font-size: 11px; }
.admin-utterance-member:hover, .admin-utterance-conversation:hover { border-color: #5aa9ff; background: #132d45; }
.admin-utterance-current { width: fit-content; padding: 3px 6px; border-radius: 5px; background: #173e2a; color: #94efba; font-size: 10px; }
.admin-utterance-detail-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin: 4px 0 18px; }
.admin-utterance-detail-heading h3 { margin: 0; font-size: 16px; line-height: 1.6; }
.admin-utterance-detail-heading > span { color: var(--muted); font-size: 11px; }
.admin-utterance-days { display: grid; gap: 12px; }
.admin-utterance-day { border: 1px solid var(--line); border-radius: 16px; background: #0a1828; }
.admin-utterance-day > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; align-items: center; gap: 10px; min-height: 58px; padding: 14px; cursor: pointer; list-style: none; border-radius: 16px; }
.admin-utterance-day > summary::-webkit-details-marker { display: none; }
.admin-utterance-day > summary strong { font-size: 14px; white-space: nowrap; }
.admin-utterance-day-count { color: #a1b5ca; font-size: 11px; white-space: nowrap; }
.admin-utterance-day-chevron { color: #9ccfff; transition: transform 160ms ease; }
.admin-utterance-day[open] > summary { background: #10263b; border-radius: 16px 16px 0 0; }
.admin-utterance-day[open] > summary .admin-utterance-day-chevron { transform: rotate(180deg); }
.admin-utterance-day > summary:focus-visible { outline: 2px solid #8ec9ff; outline-offset: 3px; }
.admin-utterance-day-content { padding: 12px; }
.admin-record-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.admin-record-tabs button { width: 100%; min-height: 44px; padding: 10px 4px; border: 1px solid var(--line); border-radius: 10px; background: #0d1b2b; color: #bdcbd9; font-size: 12px; white-space: nowrap; }
.admin-record-tabs button[aria-selected="true"] { border-color: #7cbcff; background: #153955; color: #e6f3ff; font-weight: 700; }
.admin-record-tabs button:disabled { background: #0a1522; color: #728396; cursor: default; opacity: .65; }
.admin-record-tabs button:focus-visible, [data-review-record-panel]:focus-visible { outline: 2px solid #8ec9ff; outline-offset: 2px; }
[data-review-record-panel][hidden], [data-review-record-empty][hidden] { display: none; }
.admin-record-empty { margin: 0; padding: 16px 8px; }
.admin-utterance-meeting-title { margin: 0 0 10px; color: #a6c8e8; font-size: 12px; line-height: 1.6; }
@media (prefers-reduced-motion: reduce) { .admin-utterance-day-chevron { transition: none; } }
.admin-utterance-message { border: 1px solid var(--line); border-radius: 15px; padding: 18px; background: #0a1828; }
.admin-utterance-message.is-user { background: #12263a; }
.admin-utterance-message-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.admin-utterance-message-heading strong { font-size: 12px; }
.admin-utterance-message-heading time, .admin-utterance-message-heading > span { color: var(--muted); font-size: 10px; }
.admin-utterance-message-text { white-space: pre-wrap; overflow-wrap: anywhere; word-break: normal; font-size: 14px; line-height: 1.8; }
.admin-utterance-pages { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.admin-utterance-pages .button-link { font-size: 12px; }
.admin-utterance-note { margin: 16px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.admin-utterance-review-form { display: grid; gap: 14px; max-width: 560px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #0a1828; }
.admin-utterance-review-form p { margin: 0; font-size: 12px; }
.admin-utterance-review-field { display: grid; gap: 8px; }
.admin-utterance-review-field label { font-size: 12px; font-weight: 700; }
.admin-utterance-review-field select { font-size: 16px; }
.admin-utterance-review-form button { justify-self: start; font-size: 12px; }
.admin-utterance-review-action { margin: 0; }
.admin-utterance-review-action button { min-height: 40px; font-size: 12px; }
.admin-user-review-more { margin-top: 18px; }
.admin-user-review-more button { width: 100%; min-height: 44px; }
.admin-user-review-more button:disabled { cursor: progress; opacity: .7; }
.admin-user-review-status:empty { display: none; }
.admin-utterance-review-history { margin-top: 24px; padding-top: 14px; border-top: 1px solid var(--line); }
.admin-utterance-review-history summary { display: flex; align-items: center; gap: 8px; min-height: 36px; cursor: pointer; font-size: 12px; font-weight: 700; list-style: none; }
.admin-utterance-review-history summary::-webkit-details-marker { display: none; }
.admin-utterance-review-history summary::before { content: '›'; font-size: 18px; }
.admin-utterance-review-history[open] summary::before { transform: rotate(90deg); }
.admin-utterance-review-history summary span { color: var(--muted); font-size: 10px; font-weight: 400; }
.admin-utterance-review-history > .admin-utterance-note { margin-top: 8px; }
.admin-utterance-review-history ol { display: grid; list-style: none; margin: 0; padding: 0; }
.admin-utterance-review-history-head, .admin-utterance-review-history li { display: grid; grid-template-columns: 62px minmax(0, 1fr) 64px 42px 24px; align-items: center; gap: 4px; font-size: 10px; line-height: 20px; }
.admin-utterance-review-history-head { margin-top: 14px; color: var(--muted); font-size: 9px; }
.admin-utterance-review-history li { padding: 6px 0; border-top: 1px solid var(--line); }
.admin-utterance-review-history li > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-utterance-review-history li > :nth-child(3) { font-size: 9px; }
.admin-utterance-review-history time { color: var(--muted); font-size: 9px; }
.admin-utterance-review-event.is-released { color: var(--green); }
.admin-utterance-review-event.is-failed { color: var(--amber); }
@media (max-width: 640px) {
  .admin-utterance-conversations { grid-template-columns: minmax(0, 1fr); }
  .admin-utterance-conversation, .admin-utterance-message { padding: 15px; }
  .admin-utterance-member { padding: 12px; gap: 8px; }
  .admin-summary-stats > button > span { font-size: 11px; }
}
@media (max-width: 360px) {
  .admin-utterance-member-presence { font-size: 9px; gap: 4px; }
  .admin-utterance-member-status { font-size: 9px; gap: 3px; }
}

@media (max-width: 1050px) {
  .admin-hero, .request-row { align-items: stretch; }
  .admin-hero { flex-direction: column; }
  .request-row { grid-template-columns: minmax(0, 1fr); }
  .grid-two { grid-template-columns: minmax(0, 1fr); }
  .code-control, .code-form { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .shell, .shell-wide { width: min(100% - 24px, 560px); padding-top: calc(24px + env(safe-area-inset-top)); }
  .shell-auth {
    width: min(100% - 28px, 480px);
    padding-top: calc(24px + env(safe-area-inset-top));
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
  }
  .login-brand, .auth-heading { margin-bottom: 22px; }
  .page-request .form-card { gap: 16px; padding: 22px 18px; }
  .hero { margin-top: 44px; }
  .role-options, .stats { grid-template-columns: 1fr; }
  .action-card, .admin-top { align-items: stretch; flex-direction: column; }
  .top-actions { justify-content: space-between; }
  .version-chip { display: none; }
  .panel { padding: 18px; }
}

@media (max-height: 720px) {
  .shell-auth {
    justify-content: flex-start;
    padding-top: calc(24px + env(safe-area-inset-top));
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
  }
  .login-brand, .auth-heading { margin-bottom: 18px; }
  .page-auth .form-card { gap: 16px; padding: 22px; }
}
