:root {
  color-scheme: light dark;
  --page: #f1f4f9;
  --surface: rgba(255, 255, 255, 0.79);
  --surface-strong: rgba(255, 255, 255, 0.96);
  --control: #f5f7fb;
  --ink: #0e131f;
  --muted: #626f80;
  --blue: #0563f5;
  --blue-strong: #034fc7;
  --blue-soft: rgba(5, 99, 245, 0.09);
  --red: #c82028;
  --red-soft: rgba(200, 32, 40, 0.08);
  --green: #137a45;
  --hairline: rgba(31, 42, 56, 0.11);
  --shadow: 0 22px 60px rgba(20, 43, 86, 0.075);
  --radius-panel: 28px;
  --radius-card: 22px;
  --radius-control: 22px;
  --radius-compact: 18px;
  --radius-button: 22px;
  --sidebar-width: 278px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --page: #0b101a;
    --surface: rgba(24, 31, 44, 0.76);
    --surface-strong: rgba(28, 36, 51, 0.96);
    --control: #1b2331;
    --ink: #f1f4f9;
    --muted: #9ca9ba;
    --blue: #4f9cff;
    --blue-strong: #78b3ff;
    --blue-soft: rgba(79, 156, 255, 0.12);
    --red: #ff6b70;
    --red-soft: rgba(255, 78, 86, 0.12);
    --green: #55c98a;
    --hairline: rgba(255, 255, 255, 0.11);
    --shadow: 0 20px 56px rgba(0, 0, 0, 0.28);
  }
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--page); }
body {
  margin: 0;
  min-height: 100dvh;
  color: var(--ink);
  background: transparent;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
  text-rendering: optimizeLegibility;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }

.backdrop {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 3%, rgba(5, 99, 245, 0.095), transparent 32rem),
    radial-gradient(circle at 92% 92%, rgba(27, 112, 201, 0.055), transparent 34rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), transparent 46%),
    var(--page);
}
.backdrop::after {
  content: "";
  position: absolute;
  width: min(66vw, 900px);
  aspect-ratio: 1080 / 1222;
  right: -8vw;
  top: 50%;
  transform: translateY(-48%) rotate(-4deg);
  background: url("/blue-shield-admin/blue-shield-logo.png?v=20260820-1704") center / contain no-repeat;
  opacity: 0.055;
  filter: grayscale(0.15) saturate(0.8);
}

.glass-panel {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-panel);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255, 255, 255, 0.34);
  backdrop-filter: blur(24px) saturate(135%);
  -webkit-backdrop-filter: blur(24px) saturate(135%);
}

.login-layout {
  width: min(1100px, calc(100% - 40px));
  min-height: 100dvh;
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
  gap: 72px;
  align-items: center;
  padding: 48px 0;
}

.login-brand { padding-left: clamp(0px, 4vw, 54px); }
.brand-mark {
  width: 96px;
  height: 108px;
  display: grid;
  place-items: center;
  padding: 8px;
  border-radius: 28px;
  background: linear-gradient(150deg, rgba(255,255,255,.98), rgba(230,239,255,.88));
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 20px 42px rgba(17, 67, 155, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.88);
}
.brand-mark img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(7, 29, 73, 0.12)); }
.brand-mark.small { width: 58px; height: 64px; padding: 5px; border-radius: 19px; box-shadow: 0 12px 26px rgba(17, 67, 155, 0.13); }
.brand-kicker { margin: 24px 0 8px; color: var(--blue); font-weight: 760; }
.login-brand h1 { margin: 0; max-width: none; font-size: clamp(42px, 5.2vw, 66px); line-height: 1.02; letter-spacing: -0.055em; white-space: nowrap; }
.login-brand > p:last-child { max-width: 24rem; margin: 22px 0 0; color: var(--muted); font-size: 18px; line-height: 1.65; }

.login-panel { padding: 34px; }
.login-panel header { margin-bottom: 26px; }
.login-panel h2, .section-panel h2 { margin: 0; font-size: 22px; letter-spacing: -0.02em; }
.login-panel header p, .section-heading p { margin: 7px 0 0; color: var(--muted); line-height: 1.55; }

.field { display: grid; gap: 6px; margin: 0 0 14px; }
.field > span { font-size: 14px; font-weight: 720; color: var(--ink); }
.field > small { color: var(--muted); line-height: 1.45; }
input, select, textarea {
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  color: var(--ink);
  background: var(--control);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-control);
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
select {
  -webkit-appearance: none;
  appearance: none;
  overflow: hidden;
  padding-right: 42px;
  border-radius: var(--radius-control);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  background-clip: padding-box;
}
input:not([type="checkbox"]):not([type="radio"]), select { height: 46px; }
input[type="checkbox"], input[type="radio"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  padding: 0;
  margin: 0;
  flex: 0 0 18px;
  border-radius: 5px;
  accent-color: var(--blue);
  box-shadow: none;
}
input[type="radio"] { border-radius: 50%; }
input[readonly] { color: var(--muted); background: color-mix(in srgb, var(--control) 88%, var(--surface-strong)); cursor: default; }
input[readonly]::-webkit-inner-spin-button, input[readonly]::-webkit-outer-spin-button { appearance: none; margin: 0; }
textarea { min-height: 430px; padding: 15px; resize: vertical; font-family: "SFMono-Regular", Menlo, Consolas, monospace; font-size: 13px; line-height: 1.55; }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--muted) 78%, transparent); }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); background: var(--surface-strong); }

.primary-button, .secondary-button, .quiet-button, .text-button, .icon-button {
  border: 0;
  cursor: pointer;
  transition: transform 140ms ease, opacity 140ms ease, background 140ms ease;
}
.primary-button:active, .secondary-button:active, .quiet-button:active, .text-button:active, .icon-button:active { transform: scale(0.98); }
button:disabled { opacity: 0.45; cursor: not-allowed; transform: none !important; }
.primary-button {
  min-height: 46px;
  padding: 0 20px;
  border-radius: var(--radius-button);
  color: #f7f9ff;
  background: var(--blue);
  font-weight: 760;
  box-shadow: none;
  white-space: nowrap;
}
.primary-button:hover { background: var(--blue-strong); }
.primary-button.compact { min-height: 40px; }
.secondary-button, .quiet-button {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-button);
  background: var(--surface-strong);
  font-weight: 700;
  white-space: nowrap;
}
.quiet-button { width: 100%; background: transparent; color: var(--muted); }
.text-button { padding: 8px 0; color: var(--blue); background: transparent; font-weight: 720; }
.icon-button { min-height: 36px; padding: 0 12px; border-radius: var(--radius-compact); color: var(--muted); background: var(--control); }
.secondary-button:hover, .quiet-button:hover, .text-button:hover, .icon-button:hover, .row-action:hover { color: var(--blue); border-color: color-mix(in srgb, var(--blue) 28%, var(--hairline)); background: var(--blue-soft); }
#trainingCancelPlanButton { color: var(--red); border-color: color-mix(in srgb, var(--red) 24%, var(--hairline)); }
#trainingCancelPlanButton:hover { color: var(--red); border-color: color-mix(in srgb, var(--red) 38%, var(--hairline)); background: var(--red-soft); }
.text-button { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border-radius: var(--radius-compact); }
.form-error { min-height: 20px; margin: 4px 0 12px; color: var(--red); font-size: 14px; font-weight: 650; }

.app-shell {
  width: min(1600px, calc(100% - 32px));
  min-height: 100dvh;
  margin: auto;
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  gap: 22px;
  padding: 14px 0;
}
.sidebar {
  position: sticky;
  top: 14px;
  height: calc(100dvh - 28px);
  display: flex;
  flex-direction: column;
  padding: 18px;
  overflow: hidden;
}
.sidebar-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; padding: 2px 2px 16px; border-bottom: 1px solid var(--hairline); }
.sidebar-brand div:last-child { display: grid; gap: 2px; }
.sidebar-brand strong { font-size: 17px; letter-spacing: -0.02em; white-space: nowrap; }
.sidebar-brand span { color: var(--muted); font-size: 13px; }
nav { flex: 0 1 auto; display: grid; gap: 5px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.nav-group { display: grid; gap: 3px; }
.nav-group-toggle {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 15px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: var(--radius-control);
  text-align: left;
  font-weight: 760;
  cursor: pointer;
}
.nav-group-toggle:hover { color: var(--ink); background: var(--control); }
.nav-group-toggle small { flex: 0 0 auto; color: color-mix(in srgb, var(--muted) 72%, transparent); font-size: 10px; font-weight: 680; }
.nav-group:has(.nav-item.active) .nav-group-toggle { color: var(--blue); background: color-mix(in srgb, var(--blue-soft) 58%, transparent); }
.nav-submenu { display: none; gap: 3px; padding: 3px 0 4px; }
.nav-group.is-open .nav-submenu { display: grid; }
.nav-submenu .nav-item { width: 100%; min-height: 36px; padding-inline: 28px 15px; font-size: 13px; font-weight: 690; }
.nav-item {
  min-height: 42px;
  padding: 0 15px;
  border: 0;
  border-radius: var(--radius-control);
  color: var(--muted);
  background: transparent;
  text-align: left;
  font-weight: 720;
  cursor: pointer;
}
.nav-item:hover { background: var(--control); color: var(--ink); }
.nav-item.active { overflow: hidden; color: #fff; background: var(--blue); box-shadow: none; background-clip: padding-box; }
.nav-item.active:hover { color: #fff; background: var(--blue-strong); }
.nav-item:focus-visible, .nav-group-toggle:focus-visible { outline: 3px solid color-mix(in srgb, var(--blue) 24%, transparent); outline-offset: 2px; }
.sidebar-briefing { margin-top: 16px; padding: 15px; border: 1px solid color-mix(in srgb, var(--blue) 16%, var(--hairline)); border-radius: var(--radius-card); background: color-mix(in srgb, var(--blue-soft) 58%, var(--surface-strong)); transition: border-color 160ms ease, background 160ms ease; }
.sidebar-briefing[data-context="scores"] { border-color: color-mix(in srgb, var(--green) 20%, var(--hairline)); background: color-mix(in srgb, var(--green) 6%, var(--surface-strong)); }
.sidebar-briefing[data-context="assessment"] { border-color: color-mix(in srgb, #c87800 20%, var(--hairline)); background: color-mix(in srgb, #f6a400 7%, var(--surface-strong)); }
.sidebar-briefing[data-context="training"] { border-color: color-mix(in srgb, var(--blue) 20%, var(--hairline)); background: color-mix(in srgb, var(--blue-soft) 72%, var(--surface-strong)); }
.sidebar-briefing[data-context="system"] { border-color: color-mix(in srgb, var(--muted) 22%, var(--hairline)); background: color-mix(in srgb, var(--control) 84%, var(--surface-strong)); }
.sidebar-briefing header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sidebar-briefing header > div { min-width: 0; display: grid; gap: 3px; }
.sidebar-briefing header span, .sidebar-briefing header small { color: var(--muted); font-size: 10px; font-weight: 690; }
.sidebar-briefing header strong { overflow: hidden; color: var(--ink); font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-briefing header small { flex: 0 0 auto; padding: 5px 8px; color: var(--blue); background: var(--surface-strong); border-radius: 999px; white-space: nowrap; }
.sidebar-briefing-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 13px 0 0; }
.sidebar-briefing-metrics button { min-width: 0; display: grid; gap: 3px; padding: 9px 7px; color: inherit; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); text-align: center; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.sidebar-briefing-metrics button:hover { border-color: var(--blue); background: var(--blue-soft); }
.sidebar-briefing-metrics button:focus-visible { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.sidebar-briefing-metrics button span { overflow: hidden; color: var(--muted); font-size: 9px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-briefing-metrics button strong { color: var(--blue); font-size: 19px; font-weight: 840; letter-spacing: -0.035em; }
.sidebar-briefing p { margin: 11px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.sidebar:has(.nav-group.is-open) nav { gap: 3px; }
.sidebar:has(.nav-group.is-open) .nav-item, .sidebar:has(.nav-group.is-open) .nav-group-toggle { min-height: 40px; }
.sidebar:has(.nav-group.is-open) .nav-submenu .nav-item { min-height: 34px; }
.node-card { margin-top: auto; padding: 15px; border-radius: var(--radius-card); background: color-mix(in srgb, var(--control) 82%, var(--surface-strong)); border: 1px solid var(--hairline); }
.node-card span, .node-card small { display: block; color: var(--muted); }
.node-card strong { display: block; margin: 6px 0 4px; color: var(--green); }
.node-card small { line-height: 1.4; }
.sidebar > .quiet-button { margin-top: 10px; }

.workspace { min-width: 0; max-width: 1320px; padding: 16px 18px 32px 0; }
.topbar { min-height: 50px; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 14px; }
.topbar h1 { margin: 0; font-size: clamp(32px, 2.7vw, 42px); letter-spacing: -0.035em; line-height: 1; white-space: nowrap; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.admin-name { color: var(--muted); font-weight: 650; margin-right: 4px; }
.global-message { min-height: 18px; margin: -4px 0 8px; color: var(--green); font-size: 13px; font-weight: 650; }
.global-message.error { color: var(--red); }
.view-stack { display: grid; gap: 14px; }

.metric-grid { display: grid; grid-template-columns: 1.25fr repeat(3, 1fr); gap: 12px; }
.metric-card { min-height: 126px; display: flex; flex-direction: column; padding: 17px 18px; border-radius: var(--radius-card); background: var(--surface); border: 1px solid rgba(255,255,255,.62); box-shadow: 0 16px 38px rgba(20, 43, 86, 0.055); backdrop-filter: blur(18px); }
.metric-card.featured { color: #f7f9ff; background: linear-gradient(145deg, #096bfa, #064cb7); border-color: transparent; box-shadow: 0 18px 38px rgba(5, 99, 245, 0.2); }
.metric-card span { color: var(--muted); font-weight: 700; }
.metric-card.featured span, .metric-card.featured small { color: rgba(247, 249, 255, 0.78); }
.metric-card strong { margin-top: auto; font-size: 38px; letter-spacing: -0.045em; }
.metric-card small { margin-top: 5px; color: var(--muted); line-height: 1.4; }
.overview-command-center { display: grid; gap: 16px; overflow: hidden; }
.overview-dashboard-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.overview-dashboard-heading h2 { margin: 4px 0 0; font-size: 24px; letter-spacing: -0.03em; }
.overview-dashboard-heading p { max-width: 660px; margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.overview-kicker { color: var(--blue); font-size: 11px; font-weight: 820; letter-spacing: 0.12em; }
.overview-dashboard-context { display: grid; justify-items: end; gap: 4px; padding-top: 3px; text-align: right; }
.overview-dashboard-context strong { color: var(--blue); font-size: 13px; }
.overview-dashboard-context small { color: var(--muted); font-size: 11px; }
.overview-metric-grid { grid-template-columns: 1.18fr repeat(3, minmax(0, 1fr)); }
.overview-metric-grid .metric-card { min-width: 0; min-height: 118px; padding: 15px 16px; background: var(--control); box-shadow: none; backdrop-filter: none; }
.overview-metric-grid button.metric-card { color: var(--ink); text-align: left; cursor: pointer; transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.overview-metric-grid button.metric-card:hover { transform: translateY(-1px); border-color: var(--blue); box-shadow: 0 10px 24px rgba(5, 99, 245, 0.08); }
.overview-metric-grid .metric-card.featured { color: #f7f9ff; background: linear-gradient(145deg, #096bfa, #064cb7); border-color: transparent; box-shadow: 0 14px 30px rgba(5, 99, 245, 0.18); }
.overview-metric-grid .metric-card > strong { font-size: 34px; }
.metric-card-topline { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.metric-card-topline > span { min-width: 0; }
.metric-year-select { flex: 0 0 auto; }
.metric-year-select select { width: 88px; min-height: 30px; height: 30px; padding: 0 25px 0 9px; border-radius: 15px; background: var(--surface-strong); font-size: 11px; font-weight: 720; }
.overview-chart-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, 0.75fr); gap: 12px; }
.overview-chart-card { min-width: 0; padding: 15px; background: color-mix(in srgb, var(--control) 76%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.overview-chart-heading { min-height: 42px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.overview-chart-heading h3 { margin: 0; font-size: 15px; letter-spacing: -0.02em; }
.overview-chart-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.overview-chart-legend { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.overview-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.overview-chart-legend i, .overview-composition-legend i { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: var(--blue); }
.overview-chart-legend i.volume { background: color-mix(in srgb, var(--blue) 24%, transparent); }
.overview-trend-panel canvas { width: 100%; height: 220px; display: block; }
.overview-chart-summary { margin: 2px 2px 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.overview-composition-body { min-height: 220px; display: grid; grid-template-rows: 130px auto; justify-items: center; align-content: center; gap: 8px; }
.overview-composition-body canvas { width: 130px; height: 130px; display: block; }
.overview-composition-legend { width: 100%; display: grid; gap: 7px; margin: 0; }
.overview-composition-legend > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 10px 11px; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); }
.overview-composition-legend dt { min-width: 0; display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.overview-composition-legend dd { margin: 0; color: var(--blue); font-size: 18px; font-weight: 820; }
.overview-composition-legend i.daily { background: var(--green); }
.workbench-warning-panel { overflow: hidden; }
.workbench-warning-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.workbench-warning-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 14px; min-height: 106px; padding: 15px 17px; color: var(--ink); background: color-mix(in srgb, #f6a400 8%, var(--surface-strong)); border: 1px solid color-mix(in srgb, #c87800 24%, var(--hairline)); border-radius: var(--radius-card); text-align: left; cursor: pointer; transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.workbench-warning-card.assessment { background: color-mix(in srgb, var(--blue) 7%, var(--surface-strong)); border-color: color-mix(in srgb, var(--blue) 22%, var(--hairline)); }
.workbench-warning-card.maintenance { background: color-mix(in srgb, var(--green) 7%, var(--surface-strong)); border-color: color-mix(in srgb, var(--green) 22%, var(--hairline)); }
.workbench-warning-card:hover { transform: translateY(-1px); border-color: #c87800; box-shadow: 0 12px 28px rgba(115, 72, 0, 0.08); }
.workbench-warning-card.assessment:hover { border-color: var(--blue); box-shadow: 0 12px 28px rgba(5, 99, 245, 0.08); }
.workbench-warning-card.maintenance:hover { border-color: var(--green); box-shadow: 0 12px 28px rgba(16, 122, 73, 0.08); }
.workbench-warning-card span { font-weight: 780; }
.workbench-warning-card strong { grid-row: 1 / span 2; grid-column: 2; color: #a86100; font-size: 15px; white-space: nowrap; }
.workbench-warning-card.assessment strong { color: var(--blue); }
.workbench-warning-card.maintenance strong { color: var(--green); }
.workbench-warning-card strong b { font-size: 34px; letter-spacing: -0.04em; }
.workbench-warning-card small { color: var(--muted); line-height: 1.45; }
.workbench-warning-card em { grid-column: 1 / -1; margin-top: 6px; color: #a86100; font-size: 12px; font-style: normal; font-weight: 760; }
.workbench-warning-card.assessment em { color: var(--blue); }
.workbench-warning-card.maintenance em { color: var(--green); }

.section-panel { padding: 18px 20px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 14px; }
.compact-heading { margin-bottom: 10px; }
.compact-control-panel { padding-block: 15px; }
.panel-status-row { min-height: 24px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 10px; }
.compact-control-panel .panel-status-row { margin-bottom: 0; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.priority-list { display: grid; gap: 10px; }
.priority-item { display: grid; grid-template-columns: minmax(0, 1.4fr) 1fr auto; gap: 18px; align-items: center; padding: 16px 18px; border-radius: var(--radius-control); background: var(--red-soft); border: 1px solid color-mix(in srgb, var(--red) 24%, transparent); }
.priority-item strong, .priority-item span { display: block; }
.priority-item span, .priority-item small { color: var(--muted); }
.priority-item .feedback { color: var(--red); font-weight: 650; line-height: 1.45; }
.empty-inline { padding: 28px; color: var(--muted); text-align: center; background: var(--control); border-radius: var(--radius-control); }
.overview-split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 14px; }
.version-block { display: grid; gap: 7px; padding: 20px; border-radius: var(--radius-card); background: var(--blue-soft); }
.version-block strong { color: var(--blue); font-size: 28px; letter-spacing: -0.03em; }
.version-block span { color: var(--muted); line-height: 1.5; word-break: break-word; }
.version-block.large { margin: 18px 0; padding: 24px; }
.node-summary dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0; }
.node-summary dl div { padding: 15px; border-radius: var(--radius-control); background: var(--control); }
.node-summary dt { color: var(--muted); font-size: 13px; }
.node-summary dd { margin: 6px 0 0; font-weight: 750; }
.overview-system-summary dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 0; }
.overview-system-summary dl > div { min-width: 0; padding: 13px 14px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.overview-system-summary dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.overview-system-summary dd { display: grid; gap: 4px; margin: 7px 0 0; }
.overview-system-summary dd strong { overflow: hidden; color: var(--ink); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.overview-system-summary dd strong.healthy { color: var(--green); }
.overview-system-summary dd small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

.filters { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; }
.filters .field, .ranking-actions .field, .training-management-filters .field, .results-management-filters .field { margin: 0; }
.filters input, .filters select { height: 46px; min-height: 46px; }
.result-export-button { min-height: 46px; }
.ranking-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.department-filter-panel { position: relative; }
.department-filter-panel:has(.department-filter-picker[open]) { z-index: 35; }
.department-filter-field { width: 300px; min-width: 250px; margin: 0; }
.ranking-department-field { width: 340px; }
.department-filter-picker { position: relative; }
.department-filter-picker[open] { z-index: 2; }
.department-filter-picker > summary { display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 10px; padding: 0 13px; color: var(--ink); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-control); cursor: pointer; list-style: none; }
.department-filter-picker > summary::-webkit-details-marker { display: none; }
.department-filter-picker > summary strong { min-width: 0; overflow-wrap: anywhere; }
.department-filter-picker > summary small { flex: 0 0 auto; color: var(--muted); }
.department-filter-picker[open] > summary { border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); background: var(--surface-strong); }
.department-filter-options { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; width: max(100%, 390px); max-height: min(460px, 70vh); padding: 8px; overflow-y: auto; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-card); box-shadow: 0 18px 42px rgba(35, 47, 70, 0.16); }
.department-filter-group { display: grid; gap: 2px; padding: 5px 0; }
.department-filter-group + .department-filter-group { border-top: 1px solid var(--hairline); }
.department-filter-group h3 { margin: 0; padding: 7px 10px 4px; color: var(--muted); font-size: 12px; letter-spacing: 0.02em; }
.department-filter-option { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 42px; align-items: center; gap: 10px; padding: 7px 10px; border-radius: var(--radius-compact); cursor: pointer; }
.department-filter-option:hover { background: var(--blue-soft); }
.department-filter-option.select-all { display: flex; margin-bottom: 5px; padding-bottom: 10px; border-bottom: 1px solid var(--hairline); border-radius: var(--radius-compact); font-weight: 780; }
.department-filter-option input { width: 18px; height: 18px; min-height: 18px; margin: 0; flex: 0 0 auto; accent-color: var(--blue); }
.department-filter-option span { min-width: 0; line-height: 1.35; overflow-wrap: anywhere; }
.department-filter-option small { color: var(--muted); white-space: nowrap; }
.department-filter-empty { margin: 0; padding: 18px; color: var(--muted); text-align: center; }
.ranking-personnel-group-field { flex: 0 0 auto; min-width: 360px; }
.ranking-personnel-group-control { min-height: 46px; display: grid; grid-template-columns: 72px minmax(132px, 1fr) 72px; gap: 4px; padding: 4px; overflow: hidden; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-control); }
.ranking-personnel-group-control label { position: relative; min-width: 0; cursor: pointer; }
.ranking-personnel-group-control input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.ranking-personnel-group-control span { min-width: 0; height: 100%; display: grid; place-items: center; padding: 0 10px; overflow: hidden; color: var(--muted); border-radius: var(--radius-compact); font-size: 12px; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.ranking-personnel-group-control input:checked + span { color: var(--blue); background: var(--surface-strong); box-shadow: 0 4px 14px rgba(22, 56, 112, .08); }
.ranking-personnel-group-control input:focus-visible + span { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.insight-method-note { margin: 14px 2px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.sampling-panel { overflow: hidden; }
.sampling-eligible-summary { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 13px; font-weight: 740; white-space: nowrap; }
.sampling-quick-row { display: grid; grid-template-columns: minmax(230px, 0.55fr) minmax(0, 1.45fr); gap: 14px; align-items: stretch; }
.sampling-quick-action { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: color-mix(in srgb, var(--surface-strong) 82%, transparent); }
.sampling-quick-action > div { min-width: 0; display: grid; gap: 5px; }
.sampling-quick-action strong { font-size: 16px; }
.sampling-quick-action small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.sampling-quick-action .primary-button { flex: 0 0 auto; min-width: 190px; }
.sampling-advanced-settings { margin-top: 14px; overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius-panel); background: color-mix(in srgb, var(--control) 72%, transparent); }
.sampling-advanced-settings > summary { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; list-style: none; cursor: pointer; user-select: none; }
.sampling-advanced-settings > summary::-webkit-details-marker { display: none; }
.sampling-advanced-settings > summary span { min-width: 0; display: grid; gap: 4px; }
.sampling-advanced-settings > summary strong { font-size: 15px; }
.sampling-advanced-settings > summary small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.sampling-advanced-settings > summary b { flex: 0 0 auto; min-height: 30px; display: inline-flex; align-items: center; padding: 0 11px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-weight: 740; }
.sampling-advanced-settings[open] > summary { border-bottom: 1px solid var(--hairline); }
.sampling-advanced-settings[open] > summary b { font-size: 0; }
.sampling-advanced-settings[open] > summary b::after { content: "收起设置"; font-size: 12px; }
.sampling-advanced-content { padding: 14px; }
.sampling-total-field, .sampling-quota-block, .sampling-trend-block, .sampling-event-block, .sampling-department-block, .sampling-exclusion-block { margin: 0; padding: 17px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: color-mix(in srgb, var(--control) 78%, transparent); }
.sampling-total-field { align-content: start; background: color-mix(in srgb, var(--blue-soft) 70%, var(--surface-strong)); }
.sampling-total-field input { overflow: hidden; color: var(--blue); background: var(--surface-strong); border-radius: var(--radius-control); background-clip: padding-box; font-size: 22px; font-weight: 780; }
.sampling-block-heading { min-height: 42px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.sampling-block-heading > div, .sampling-block-heading:not(:has(> div)) { display: grid; gap: 4px; }
.sampling-block-heading strong { font-size: 15px; }
.sampling-block-heading small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.sampling-quota-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.sampling-quota-grid label { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 68px; align-items: center; gap: 8px; padding: 10px 10px 10px 12px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--surface-strong); }
.sampling-quota-grid label:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.sampling-quota-grid span { min-width: 0; color: var(--muted); font-size: 12px; font-weight: 670; line-height: 1.35; }
.sampling-quota-grid input { min-height: 40px; height: 40px; padding: 0 9px; border-radius: var(--radius-control); text-align: center; }
.sampling-trend-block, .sampling-event-block, .sampling-department-block, .sampling-exclusion-block { margin-top: 14px; }
.sampling-trend-years { width: 150px; margin: 0; }
.sampling-trend-quota-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sampling-event-quota-rows, .sampling-department-quota-rows { display: grid; gap: 9px; }
.sampling-event-empty { padding: 15px; color: var(--muted); background: var(--surface-strong); border: 1px dashed var(--hairline); border-radius: var(--radius-card); font-size: 13px; text-align: center; }
.sampling-event-quota-row, .sampling-department-quota-row { display: grid; gap: 10px; align-items: end; padding: 12px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--surface-strong); }
.sampling-event-quota-row { grid-template-columns: minmax(240px, 1fr) 150px auto; }
.sampling-department-quota-row { grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) 180px auto; }
.sampling-event-quota-row .field, .sampling-department-quota-row .field { margin: 0; }
.sampling-department-quota-row .field > span small { color: var(--blue); font-size: 11px; font-weight: 720; }
.sampling-event-quota-row .icon-button, .sampling-department-quota-row .icon-button { min-height: 50px; color: var(--red); background: var(--red-soft); }
.sampling-exclusion-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.sampling-exclusion-option { min-width: 0; display: flex; align-items: flex-start; gap: 11px; padding: 14px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--surface-strong); cursor: pointer; }
.sampling-exclusion-option:has(input:checked) { border-color: var(--blue); box-shadow: none; background: color-mix(in srgb, var(--blue-soft) 64%, var(--surface-strong)); }
.sampling-exclusion-option:has(input:disabled) { opacity: 0.58; cursor: not-allowed; }
.sampling-exclusion-option input { flex: 0 0 auto; width: 21px; height: 21px; min-height: 21px; margin: 1px 0 0; accent-color: var(--blue); }
.sampling-exclusion-option span { min-width: 0; display: grid; gap: 5px; }
.sampling-exclusion-option strong { font-size: 14px; }
.sampling-exclusion-option small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.sampling-result-heading { align-items: center; }
.sampling-result-table { min-width: 940px; }
.sampling-sequence { width: 34px; height: 34px; display: inline-grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: var(--radius-compact); font-weight: 820; }
.sampling-reason { display: inline-flex; min-height: 29px; align-items: center; padding: 0 10px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-weight: 720; white-space: nowrap; }
.inline-field { width: 220px; margin: 0; }
.search-field { min-width: 280px; flex: 1; }
.table-panel { overflow: hidden; }
.table-wrap { overflow: auto; }
table { width: 100%; min-width: 1080px; border-collapse: collapse; }
th, td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(--hairline); }
th { color: var(--muted); background: color-mix(in srgb, var(--surface-strong) 82%, transparent); font-size: 13px; font-weight: 760; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr.disputed { background: var(--red-soft); }
td strong, td small { display: block; }
td small { margin-top: 4px; color: var(--muted); }
.result-person-cell { min-width: 230px; }
.result-person-cell strong, .result-person-cell small { white-space: nowrap; }
.result-assessment-cell { min-width: 300px; }
.result-assessment-title { font-size: 14px; font-weight: 760; line-height: 1.35; white-space: nowrap; }
.result-retest-badge { width: fit-content; display: inline-flex; min-height: 26px; align-items: center; margin-top: 7px; padding: 0 9px; border-radius: 999px; font-size: 11px; font-weight: 760; white-space: nowrap; }
.result-retest-badge.warning { color: #9a5b00; background: rgba(218, 137, 0, 0.13); }
.result-retest-badge.danger { color: var(--red); background: var(--red-soft); }
.status-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; color: var(--muted); background: var(--control); font-size: 13px; font-weight: 720; white-space: nowrap; }
.status-badge.disputed { color: var(--red); background: var(--red-soft); }
.status-badge.confirmed { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.status-badge.pending_confirmation { color: var(--blue); background: var(--blue-soft); }
.row-actions { display: flex; gap: 8px; }
.row-action { min-height: 36px; padding: 0 12px; border: 1px solid var(--hairline); border-radius: var(--radius-compact); background: var(--surface-strong); font-weight: 720; cursor: pointer; white-space: nowrap; }
.row-action.urgent { color: var(--red); border-color: color-mix(in srgb, var(--red) 28%, transparent); }
.result-insight-badges { display: flex; flex-wrap: wrap; gap: 5px; max-width: 250px; }
.result-insight-badge { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 11px; font-weight: 720; white-space: nowrap; }
.result-insight-badge.failed { color: var(--red); background: var(--red-soft); }
.result-insight-badge.near_fail { color: #a76300; background: rgba(218, 137, 0, 0.10); }
.result-insight-badge.item-warning { color: #9a5b00; background: rgba(218, 137, 0, 0.13); }
.result-insight-badge.item-danger { color: var(--red); background: var(--red-soft); }
.insight-normal { color: var(--muted); font-size: 12px; white-space: nowrap; }
.results-management-panel { margin-top: 0; }
.results-management-table { min-width: 1240px; table-layout: fixed; }
.results-management-table th, .results-management-table td { padding: 10px 11px; vertical-align: middle; }
.results-management-table th:nth-child(1) { width: 18%; }
.results-management-table th:nth-child(2) { width: 20%; }
.results-management-table th:nth-child(3) { width: 9%; }
.results-management-table th:nth-child(4) { width: 8%; }
.results-management-table th:nth-child(5) { width: 22%; }
.results-management-table th:nth-child(6) { width: 13%; }
.results-management-table th:nth-child(7) { width: 10%; }
.results-management-table .result-person-cell, .results-management-table .result-assessment-cell { min-width: 0; }
.result-person-name, .result-person-meta, .result-assessment-title, .result-feedback, .result-status-line small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.result-person-name { display: block; font-size: 14px; }
.result-person-meta { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.result-assessment-meta { min-width: 0; display: flex; align-items: center; gap: 6px; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 11px; white-space: nowrap; }
.result-assessment-type { flex: 0 0 auto; color: var(--blue); font-weight: 720; }
.result-assessment-meta .result-retest-badge { flex: 0 0 auto; min-height: 22px; margin: 0; padding-inline: 7px; }
.result-assessment-meta > small { min-width: 0; display: inline; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.result-feedback { min-width: 0; flex: 1; }
.result-score-line { display: flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.result-score-line strong { color: var(--blue); font-size: 18px; }
.result-score-line small { display: inline; margin: 0; font-size: 11px; }
.results-management-table .result-insight-badges { max-width: none; flex-wrap: nowrap; overflow: hidden; }
.result-status-line { min-width: 0; display: flex; align-items: center; gap: 7px; overflow: hidden; white-space: nowrap; }
.result-status-line .status-badge { flex: 0 0 auto; min-height: 27px; padding-inline: 9px; font-size: 11px; }
.result-status-line small { min-width: 0; display: inline; margin: 0; font-size: 10px; }
.results-management-table .row-actions { flex-wrap: nowrap; gap: 5px; }
.results-management-table .row-action { min-height: 32px; padding-inline: 8px; font-size: 11px; }
.empty-state { padding: 36px 20px; text-align: center; }
.empty-state strong { font-size: 20px; }
.empty-state p { margin: 7px 0 0; color: var(--muted); }

.trend-people-summary { color: var(--blue); font-size: 14px; white-space: nowrap; }
.trend-filter-row { display: grid; grid-template-columns: minmax(270px, .7fr) minmax(420px, 1.2fr) minmax(180px, .45fr); gap: 14px; align-items: end; margin-top: 22px; }
.trend-choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.trend-choice-group legend { margin-bottom: 8px; color: var(--ink); font-size: 14px; font-weight: 720; }
.trend-segmented-control { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; min-height: 50px; padding: 5px; border: 1px solid var(--hairline); border-radius: var(--radius-control); background: var(--control); }
.trend-segmented-control label, .trend-filter-option { position: relative; cursor: pointer; }
.trend-segmented-control input, .trend-filter-option input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.trend-segmented-control span { height: 100%; display: grid; place-items: center; border-radius: var(--radius-compact); color: var(--muted); font-size: 13px; font-weight: 760; transition: color 160ms ease, background 160ms ease, box-shadow 160ms ease; }
.trend-segmented-control input:checked + span { color: var(--blue); background: var(--surface-strong); box-shadow: 0 4px 14px rgba(22, 56, 112, .08); }
.trend-segmented-control input:focus-visible + span, .trend-filter-option:has(input:focus-visible) { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.trend-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.trend-filter-option { min-height: 50px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--hairline); border-radius: var(--radius-control); background: var(--control); }
.trend-filter-option span { font-size: 13px; font-weight: 730; white-space: nowrap; }
.trend-filter-option strong { min-width: 26px; height: 26px; display: grid; place-items: center; color: var(--muted); background: var(--surface-strong); border-radius: var(--radius-compact); font-size: 12px; }
.trend-filter-option:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); box-shadow: none; }
.trend-filter-option.rising:has(input:checked) { border-color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.trend-filter-option.falling:has(input:checked) { border-color: var(--red); background: var(--red-soft); }
.trend-organization-field { margin: 0; }
.trend-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 18px; }
.trend-chart-panel { min-width: 0; overflow: hidden; }
.trend-chart { min-height: 286px; display: grid; place-items: center; margin-top: 10px; }
.trend-chart svg { width: 100%; height: auto; max-height: 310px; overflow: visible; }
.trend-grid-line { stroke: var(--hairline); stroke-width: 1; }
.trend-axis-label { fill: var(--muted); font-size: 12px; font-weight: 650; }
.trend-value-label { fill: var(--ink); font-size: 13px; font-weight: 780; }
.trend-chart-line { fill: none; stroke: var(--blue); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.trend-chart-area { fill: color-mix(in srgb, var(--blue) 14%, transparent); }
.trend-chart-point { fill: var(--surface-strong); stroke: var(--blue); stroke-width: 4; }
.trend-chart-empty { min-height: 220px; display: grid; place-items: center; color: var(--muted); text-align: center; }
.trend-delta-badge, .trend-direction-badge { display: inline-flex; align-items: center; min-height: 31px; padding: 0 11px; border-radius: 999px; font-size: 12px; font-weight: 780; white-space: nowrap; }
.trend-delta-badge.rising, .trend-direction-badge.rising { color: var(--green); background: color-mix(in srgb, var(--green) 11%, transparent); }
.trend-delta-badge.falling, .trend-direction-badge.falling { color: var(--red); background: var(--red-soft); }
.trend-delta-badge.neutral, .trend-direction-badge.stable, .trend-direction-badge.insufficient { color: var(--muted); background: var(--control); }
.trend-method-panel { background: color-mix(in srgb, var(--blue-soft) 56%, var(--surface)); }
.trend-method-panel .eyebrow { margin: 0 0 8px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.trend-method-panel h2 { max-width: 12ch; font-size: 27px; line-height: 1.15; }
.trend-method-panel > p:not(.eyebrow) { margin: 15px 0 22px; color: var(--muted); line-height: 1.75; }
.trend-method-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; }
.trend-method-stats div { min-width: 0; padding: 12px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--surface-strong); }
.trend-method-stats dt { color: var(--muted); font-size: 11px; font-weight: 650; }
.trend-method-stats dd { margin: 6px 0 0; color: var(--blue); font-size: 21px; font-weight: 830; }
.trend-table-panel { margin-top: 0; }
.trend-table { min-width: 1120px; }
.trend-sparkline { width: 128px; height: 38px; display: block; overflow: visible; }
.trend-sparkline path { fill: none; stroke: var(--blue); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.trend-sparkline circle { fill: var(--blue); }
.trend-sparkline.rising path, .trend-sparkline.rising circle { stroke: var(--green); fill: var(--green); }
.trend-sparkline.falling path, .trend-sparkline.falling circle { stroke: var(--red); fill: var(--red); }
.trend-no-sparkline { color: var(--muted); font-size: 12px; white-space: nowrap; }
.trend-change-value.rising { color: var(--green); }
.trend-change-value.falling { color: var(--red); }
.trend-change-value.stable, .trend-change-value.insufficient { color: var(--muted); }
.empty-table { padding: 48px 24px; color: var(--muted); text-align: center; }

.comparison-filter-grid { display: grid; grid-template-columns: minmax(128px, .55fr) minmax(200px, .8fr) minmax(0, 2fr) minmax(190px, .8fr); gap: 12px; align-items: end; }
.comparison-filter-grid .field { margin: 0; }
.comparison-select-shell { width: 100%; height: 46px; display: block; overflow: hidden; color: var(--ink); background: var(--control); border: 1px solid var(--hairline); border-radius: 23px; transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.field > .comparison-select-shell { font-size: inherit; font-weight: inherit; }
.comparison-select-shell select { height: 100%; min-height: 44px; padding-inline: 13px; overflow: hidden; background: transparent; border: 0; border-radius: inherit; box-shadow: none; }
.comparison-select-shell:focus-within { background: var(--surface-strong); border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); }
.comparison-select-shell select:focus { background: transparent; border: 0; box-shadow: none; }
.comparison-filter-grid > .field > input { border-radius: 23px; background-clip: padding-box; overflow: hidden; }
.comparison-level-fieldset { margin: 0; }
.comparison-level-control { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; min-height: 46px; padding: 4px; border: 1px solid var(--hairline); border-radius: var(--radius-control); background: var(--control); overflow: hidden; }
.comparison-level-control label { position: relative; cursor: pointer; }
.comparison-level-control input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.comparison-level-control span { height: 100%; display: grid; place-items: center; border-radius: var(--radius-compact); color: var(--muted); font-size: 13px; font-weight: 760; white-space: nowrap; }
.comparison-level-control input:checked + span { color: var(--blue); background: var(--surface-strong); box-shadow: none; }
.comparison-level-control input:focus-visible + span { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.comparison-dashboard-grid { display: grid; grid-template-columns: minmax(280px, .55fr) minmax(0, 1.45fr); gap: 14px; }
.comparison-target-panel { min-width: 0; }
.comparison-target-panel .section-heading { align-items: center; }
.comparison-target-list { max-height: 390px; display: grid; gap: 8px; margin-top: 14px; padding-right: 3px; overflow: auto; }
.comparison-target-option { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 56px; padding: 9px 11px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--control); cursor: pointer; }
.comparison-target-option input { width: 20px; min-height: 20px; margin: 0; accent-color: var(--blue); }
.comparison-target-option span { min-width: 0; display: grid; gap: 3px; }
.comparison-target-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.comparison-target-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 11px; }
.comparison-target-option b { color: var(--blue); font-size: 13px; white-space: nowrap; }
.comparison-target-option:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); }
.comparison-target-empty { padding: 24px 10px; color: var(--muted); text-align: center; }
.analysis-group-picker { background: color-mix(in srgb, var(--blue-soft) 42%, var(--surface-strong)); }
.analysis-group-picker > .field-note { margin: 0 0 12px; }
.analysis-group-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.analysis-group-option { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid var(--hairline); border-radius: var(--radius-control); background: var(--surface-strong); cursor: pointer; transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease; }
.analysis-group-option input { width: 20px; height: 20px; min-height: 20px; margin: 0; accent-color: var(--blue); }
.analysis-group-option span { min-width: 0; display: grid; gap: 3px; }
.analysis-group-option strong, .analysis-group-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analysis-group-option strong { font-size: 14px; }
.analysis-group-option small { color: var(--muted); font-size: 11px; }
.analysis-group-option b { color: var(--blue); font-size: 12px; white-space: nowrap; }
.analysis-group-option:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); box-shadow: none; }
.analysis-group-option:has(input:disabled) { cursor: default; opacity: .7; }
.analysis-group-empty { padding: 18px; color: var(--muted); border: 1px dashed var(--hairline); border-radius: var(--radius-control); text-align: center; }
.comparison-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 8px; }
.comparison-legend span { display: inline-flex; align-items: center; gap: 7px; min-height: 28px; padding: 0 9px; color: var(--muted); background: var(--control); border-radius: 999px; font-size: 12px; font-weight: 650; }
.comparison-legend b { color: var(--ink); font-weight: 740; white-space: nowrap; }
.comparison-legend i { width: 22px; height: 5px; flex: 0 0 auto; border-radius: 99px; }
.comparison-color-0 { background: #1768d3; }
.comparison-color-1 { background: #16a36a; }
.comparison-color-2 { background: #d68100; }
.comparison-color-3 { background: #8b5cf6; }
.comparison-color-4 { background: #d9485f; }
.comparison-color-5 { background: #0f8fa8; }
.comparison-color-6 { background: #c23b9a; }
.comparison-color-7 { background: #8a5a2b; }
.comparison-color-8 { background: #647c17; }
.comparison-color-9 { background: #00897b; }
.comparison-chart-series { fill: none; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.comparison-chart-point { stroke-width: 2.5; }
.comparison-chart-value { font-size: 10px; font-weight: 800; paint-order: stroke; stroke: var(--surface-strong); stroke-width: 3px; stroke-linejoin: round; }
.comparison-rank-stack { display: grid; gap: 3px; min-width: 86px; }
.comparison-rank-stack span { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; white-space: nowrap; }
.comparison-rank-stack small { color: var(--muted); }
.comparison-rank-stack b { color: var(--ink); }
.comparison-unit-path { max-width: 220px; }
.comparison-unit-path small { white-space: normal; line-height: 1.4; }

.template-layout { display: grid; grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr); gap: 22px; align-items: start; }
.template-summary { position: sticky; top: 28px; }
.template-summary > p { color: var(--muted); line-height: 1.7; }
.project-library-panel { margin-top: 22px; overflow: hidden; }
.project-library-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; list-style: none; cursor: pointer; }
.project-library-panel > summary::-webkit-details-marker { display: none; }
.project-library-panel > summary span { display: grid; gap: 5px; }
.project-library-panel > summary strong { font-size: 18px; }
.project-library-panel > summary small { color: var(--muted); font-weight: 600; }
.project-library-panel > summary b { color: var(--blue); font-size: 13px; white-space: nowrap; }
.project-library-panel[open] > summary { padding-bottom: 20px; border-bottom: 1px solid var(--hairline); }
.project-library-panel[open] > summary b { font-size: 0; }
.project-library-panel[open] > summary b::after { content: "收起设置"; font-size: 13px; }
.project-library-content { padding-top: 22px; }
.project-library-content .template-summary { padding: 18px; border-radius: var(--radius-card); background: var(--control); }
.picker-fieldset { margin: 0 0 20px; padding: 16px; border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.picker-fieldset legend { padding: 0 8px; font-size: 14px; font-weight: 760; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.check-card, .participant-row { display: flex; align-items: flex-start; gap: 11px; padding: 13px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--control); cursor: pointer; }
.check-card input, .participant-row input { flex: 0 0 auto; width: 20px; min-height: 20px; margin: 2px 0 0; accent-color: var(--blue); }
.check-card > span, .participant-row > span { min-width: 0; display: grid; gap: 4px; }
.check-card small, .participant-row small, .field-note { color: var(--muted); line-height: 1.4; }
.check-card small { overflow: hidden; text-overflow: ellipsis; }
#physicalProjectPicker, #assessmentPlanPhysicalPicker { grid-template-columns: 1fr; gap: 14px; }
.rule-demographic { overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: color-mix(in srgb, var(--surface-strong) 76%, transparent); }
.rule-demographic > summary { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 17px; list-style: none; cursor: pointer; }
.rule-demographic > summary::-webkit-details-marker { display: none; }
.rule-demographic > summary span { display: grid; gap: 4px; }
.rule-demographic > summary strong { font-size: 16px; }
.rule-demographic > summary small { color: var(--muted); }
.rule-demographic > summary b { color: var(--blue); font-size: 13px; white-space: nowrap; }
.rule-demographic[open] > summary { background: var(--blue-soft); border-bottom: 1px solid var(--hairline); }
.rule-demographic[open] > summary b::before { content: "收起"; }
.rule-demographic[open] > summary b { font-size: 0; }
.rule-demographic[open] > summary b::before { font-size: 13px; }
.subject-rule-list { display: grid; gap: 12px; padding: 14px; }
.subject-rule { padding: 14px; border-radius: var(--radius-card); background: var(--control); border: 1px solid var(--hairline); }
.subject-rule > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 11px; }
.subject-rule > header > span { display: grid; gap: 4px; }
.subject-rule > header small { color: var(--muted); font-weight: 600; }
.rule-badge { flex: 0 0 auto; min-width: 56px; padding: 6px 10px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-style: normal; text-align: center; font-weight: 760; }
.rule-badge.required { color: var(--green); background: color-mix(in srgb, var(--green) 11%, transparent); }
.rule-options .check-card { background: var(--surface-strong); }
.rule-options .check-card:has(input:checked) { border-color: var(--blue); box-shadow: none; }
.rule-options input:disabled { opacity: 1; }
.field-note { display: block; margin: -8px 0 18px; }
.year-field { width: 140px; }
.rank-number { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: var(--radius-compact); color: var(--blue); background: var(--blue-soft); font-weight: 850; }
.rank-number.rank-1 { color: #a66a00; background: rgba(245, 180, 40, 0.15); }
.rank-number.rank-2 { color: #607080; background: rgba(120, 140, 160, 0.14); }
.rank-number.rank-3 { color: #945a32; background: rgba(164, 96, 52, 0.13); }
.theory-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); gap: 14px; align-items: start; }
.theory-screen-layout { grid-template-columns: 1fr; }
.theory-launch-panel { padding: 21px; }
.theory-launch-heading { align-items: center; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px solid var(--hairline); }
.theory-launch-heading h2 { margin-top: 3px; }
.theory-kicker { color: var(--blue); font-size: 10px; font-weight: 820; letter-spacing: 0.12em; }
.theory-launch-state { flex: 0 0 auto; display: grid; justify-items: end; gap: 3px; padding: 10px 12px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); text-align: right; }
.theory-launch-state span { color: var(--muted); font-size: 9px; font-weight: 690; }
.theory-launch-state strong { color: var(--blue); font-size: 12px; }
.theory-config-strip { display: grid; grid-template-columns: minmax(230px, 2fr) 82px 102px repeat(3, 84px); gap: 9px; margin-bottom: 14px; padding: 13px; background: color-mix(in srgb, var(--control) 78%, var(--surface-strong)); border: 1px solid var(--hairline); border-radius: var(--radius-control); }
.theory-config-strip .field { min-width: 0; gap: 5px; margin: 0; }
.theory-config-strip .field > span { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.theory-config-strip input { min-height: 42px; height: 42px; padding-inline: 11px; border-radius: 21px; }
.theory-form-workspace { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
.theory-config-column { min-width: 0; }
.theory-number-grid { gap: 10px; }
.theory-number-grid .field { margin-bottom: 0; }
.theory-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--hairline); }
.theory-submit-copy { min-width: 0; display: grid; gap: 3px; }
.theory-submit-copy > strong { font-size: 13px; }
.theory-submit-copy > small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.theory-form-footer .form-error { min-height: 0; margin: 2px 0 0; }
.theory-form-footer .primary-button { flex: 0 0 auto; min-width: 190px; }
.theory-results-panel { scroll-margin-top: 24px; }
.theory-result-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0 24px 20px; }
.theory-result-summary[hidden] { display: none; }
.theory-result-summary div { padding: 15px 17px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--control); }
.theory-result-summary dt { color: var(--muted); font-size: 13px; font-weight: 720; }
.theory-result-summary dd { display: flex; align-items: baseline; gap: 5px; margin: 7px 0 0; color: var(--blue); }
.theory-result-summary dd strong { font-size: 28px; letter-spacing: -0.04em; }
.theory-result-summary dd span { font-size: 13px; font-weight: 720; }
.theory-result-summary .completed dd { color: var(--green); }
.theory-result-summary .pending dd { color: #a76300; }
.theory-status-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; font-size: 13px; font-weight: 760; white-space: nowrap; }
.theory-status-badge.submitted { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.theory-status-badge.in_progress { color: var(--blue); background: var(--blue-soft); }
.theory-status-badge.assigned { color: var(--muted); background: var(--control); }
.theory-time-fieldset { min-width: 0; min-height: 100%; margin: 0; padding: 14px; background: color-mix(in srgb, var(--surface-strong) 72%, transparent); }
.theory-time-fieldset .form-grid { margin-top: 4px; }
.theory-time-fieldset .field { margin-bottom: 0; }
.theory-time-presets { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; margin-top: 12px; overflow-x: auto; scrollbar-width: thin; }
.theory-time-presets > span { flex: 0 0 auto; margin-right: 2px; color: var(--muted); font-size: 11px; font-weight: 720; white-space: nowrap; }
.theory-time-presets button { flex: 0 0 auto; min-height: 36px; padding: 0 11px; color: var(--blue); background: var(--blue-soft); border: 1px solid color-mix(in srgb, var(--blue) 20%, transparent); border-radius: var(--radius-compact); font-size: 11px; font-weight: 760; white-space: nowrap; cursor: pointer; }
.theory-time-presets button:hover { color: #fff; background: var(--blue); border-color: var(--blue); }
.theory-time-fieldset .field-note { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.participant-picker-toolbar { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 12px; margin-bottom: 12px; }
.participant-picker-toolbar .field { margin: 0; }
.participant-selection-bar { display: grid; grid-template-columns: minmax(118px, 1fr) auto; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 11px; border-radius: var(--radius-card); background: var(--blue-soft); }
.participant-selection-copy { min-width: 0; display: grid; gap: 2px; }
.participant-selection-copy strong { color: var(--blue); font-size: 13px; white-space: nowrap; }
.participant-selection-copy small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.participant-selection-bar > div:last-child { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 3px; padding: 3px; background: var(--surface-strong); border: 1px solid color-mix(in srgb, var(--blue) 12%, var(--hairline)); border-radius: var(--radius-compact); }
.participant-selection-bar button { width: auto; min-height: 30px; padding-inline: 9px; border-color: transparent; border-radius: var(--radius-compact); font-size: 10px; white-space: nowrap; }
.participant-selection-bar .text-button { padding-block: 0; }
.participant-picker { max-height: 350px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; overflow: auto; }
.participant-fieldset { min-width: 0; margin: 0; padding: 14px; background: color-mix(in srgb, var(--surface-strong) 72%, transparent); }
.participant-fieldset .participant-row { min-width: 0; min-height: 54px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 9px; padding: 7px 10px; border-color: color-mix(in srgb, var(--hairline) 76%, transparent); border-radius: var(--radius-compact); background: color-mix(in srgb, var(--surface-strong) 82%, transparent); box-shadow: none; transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.participant-fieldset .participant-row:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--blue) 34%, var(--hairline)); background: var(--surface-strong); box-shadow: 0 8px 18px rgba(20, 43, 86, 0.055); }
.participant-fieldset .participant-row input { width: 20px; height: 20px; min-height: 20px; margin: 0; }
.participant-identity { min-width: 0; gap: 2px !important; overflow: hidden; }
.participant-row-head { min-width: 0; display: flex !important; align-items: center; gap: 7px !important; overflow: hidden; }
.participant-row-head strong { overflow: hidden; font-size: 13px; letter-spacing: -0.015em; text-overflow: ellipsis; white-space: nowrap; }
.participant-account-state { flex: 0 0 auto; padding: 3px 6px; color: #9b6400; background: color-mix(in srgb, #f0a500 12%, transparent); border-radius: 999px; font-size: 8px; font-style: normal; font-weight: 760; white-space: nowrap; }
.participant-account-state.ready { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.participant-row-meta { min-width: 0; display: flex !important; align-items: center; gap: 6px !important; overflow: hidden; font-size: 8.5px !important; white-space: nowrap; }
.participant-row-meta b { flex: 0 0 auto; color: var(--ink); font-size: 8.5px; font-weight: 740; }
.participant-row-meta > span { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.participant-row:has(input:checked) { border-color: color-mix(in srgb, var(--blue) 64%, var(--hairline)); background: color-mix(in srgb, var(--blue-soft) 66%, var(--surface-strong)); box-shadow: 0 7px 16px rgba(5, 99, 245, 0.08); }
.participant-row:has(input:checked) .participant-row-head strong { color: var(--blue); }
.participant-fieldset > .empty-inline { margin: 10px 0 2px; }
.plan-list { display: grid; gap: 10px; }
.theory-plan-library .plan-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.theory-plan-library .empty-inline { min-height: 76px; display: grid; place-items: center; margin: 0; color: var(--muted); background: var(--control); border: 1px dashed color-mix(in srgb, var(--muted) 24%, transparent); border-radius: var(--radius-card); }
.plan-card-row { display: grid; grid-template-columns: 1fr; gap: 9px; align-items: stretch; }
.plan-card { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 15px; color: var(--ink); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); text-align: left; cursor: pointer; }
.plan-card:hover, .plan-card.selected { border-color: var(--blue); box-shadow: none; }
.plan-card span { display: grid; gap: 5px; }
.plan-card small { color: var(--muted); }
.plan-card b { color: var(--blue); white-space: nowrap; }
.assessment-plan-card { cursor: default; }
.assessment-plan-card small { line-height: 1.45; }
.assessment-plan-card em { color: var(--blue); font-size: 12px; font-style: normal; font-weight: 760; white-space: nowrap; }
.assessment-plan-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.assessment-plan-actions .row-action, .assessment-plan-actions .plan-delete-button { min-height: 42px; }
.assessment-plan-form-actions { display: flex; justify-content: flex-end; gap: 10px; }
.assessment-plan-record-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 9px; margin: 0 0 14px; align-items: end; }
.assessment-plan-record-filters .field { margin: 0; }
.assessment-plan-record-filters .secondary-button { min-height: 44px; }
.record-mode-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding: 5px; border: 1px solid var(--hairline); border-radius: var(--radius-control); background: color-mix(in srgb, var(--control) 88%, transparent); }
.record-mode-tabs button { min-height: 40px; padding: 0 16px; border: 0; border-radius: var(--radius-compact); color: var(--muted); background: transparent; font-weight: 780; cursor: pointer; }
.record-mode-tabs button:hover { color: var(--blue); background: var(--blue-soft); }
.record-mode-tabs button.active { color: #fff; background: var(--blue); }
.record-mode-tabs button.deleted-mode { color: var(--red); }
.record-mode-tabs button.deleted-mode.active { color: #fff; background: var(--red); }
.assessment-plan-record-mode { grid-column: 1 / -1; }
.deleted-plan-record .assessment-plan-card { background: color-mix(in srgb, var(--control) 86%, var(--red) 14%); border-color: color-mix(in srgb, var(--hairline) 72%, var(--red) 28%); }
.deleted-plan-record .assessment-plan-card em { color: var(--red); }
.plan-delete-button { min-width: 62px; padding: 0 13px; color: var(--red); background: color-mix(in srgb, var(--red) 7%, var(--surface)); border: 1px solid color-mix(in srgb, var(--red) 24%, var(--hairline)); border-radius: var(--radius-compact); font-weight: 780; cursor: pointer; }
.plan-delete-button:hover { color: #fff; background: var(--red); border-color: var(--red); }
.table-heading { padding: 16px 20px 0; }
.account-panel { width: min(620px, 100%); }
.maintenance-search { margin: 0; }
.admin-access-panel { margin-bottom: 0; }
.admin-access-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; margin: 0 0 18px; padding: 16px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.admin-access-form .field { margin: 0; }
.admin-access-person-picker { position: relative; grid-column: 1 / span 2; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-access-candidate-list { position: absolute; z-index: 40; top: calc(100% + 7px); left: 0; width: min(100%, 760px); max-height: 330px; padding: 7px; overflow-y: auto; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-card); box-shadow: 0 18px 42px rgba(35, 47, 70, 0.18); }
.admin-access-candidate { appearance: none; width: 100%; min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; color: var(--ink); background: transparent; border: 0; border-radius: var(--radius-compact); text-align: left; cursor: pointer; }
.admin-access-candidate:hover, .admin-access-candidate:focus-visible { background: var(--blue-soft); outline: none; }
.admin-access-candidate span { min-width: 0; display: grid; gap: 2px; }
.admin-access-candidate strong, .admin-access-candidate small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-access-candidate small { color: var(--muted); font-size: 11px; }
.admin-access-candidate em { flex: 0 0 auto; color: var(--blue); font-size: 12px; font-style: normal; font-weight: 760; }
.admin-access-candidate-empty { margin: 0; padding: 14px; color: var(--muted); text-align: center; }
.admin-access-role-field { position: relative; }
#adminAccessRoleCode { appearance: none; -webkit-appearance: none; padding-right: 42px; overflow: hidden; border-radius: var(--radius-control); background-clip: padding-box; }
#adminAccessSubmitButton { grid-column: 1; justify-self: start; min-width: 172px; }
.admin-access-form .form-error { grid-column: 1 / -1; margin: 0; }
.admin-access-edit-hint { grid-column: 2 / -1; align-self: center; margin: 0; }
.admin-access-inventory { display: grid; gap: 12px; padding: 0 16px 15px; }
.admin-access-inventory-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.admin-access-inventory-heading > div { min-width: 0; display: grid; gap: 4px; }
.admin-access-inventory-heading h3 { margin: 0; font-size: 17px; }
.admin-access-inventory-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.admin-access-inventory-heading .field { width: min(360px, 42%); margin: 0; }
.admin-access-role-filters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.admin-access-role-filters button { min-height: 42px; padding: 0 10px; color: var(--muted); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-compact); cursor: pointer; font-size: 12px; font-weight: 740; white-space: nowrap; }
.admin-access-role-filters button strong { margin-left: 4px; color: var(--blue); }
.admin-access-role-filters button:hover, .admin-access-role-filters button.active { color: var(--blue); border-color: var(--blue); background: var(--blue-soft); }
.admin-access-role-filters button:focus-visible { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.admin-access-table-wrap { border-top: 1px solid var(--hairline); }
.admin-access-person { appearance: none; width: 100%; border: 0; padding: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; font: inherit; }
.admin-access-person strong, .admin-access-person small { display: block; }
.admin-access-person:hover strong, .admin-access-person:focus-visible strong { color: var(--accent); }
.admin-access-table { width: 100%; min-width: 820px; table-layout: fixed; }
.admin-access-table th, .admin-access-table td { padding: 10px 14px; }
.admin-access-table th:nth-child(1) { width: 22%; }
.admin-access-table th:nth-child(2) { width: 12%; }
.admin-access-table th:nth-child(3) { width: 32%; }
.admin-access-table th:nth-child(4) { width: 17%; }
.admin-access-table th:nth-child(5) { width: 14%; }
.admin-access-table th:nth-child(6) { width: 15%; }
.roster-location-settings-link { align-self: flex-start; margin-top: 4px; padding: 0; }
.roster-location-edit-help { margin: 12px 0 0; padding: 10px 12px; color: var(--blue); background: color-mix(in srgb, var(--blue-soft) 68%, var(--surface-strong)); border: 1px solid color-mix(in srgb, var(--blue) 18%, var(--hairline)); border-radius: var(--radius-compact); font-size: 12px; line-height: 1.5; }
.admin-level-badge { display: inline-flex; min-height: 28px; align-items: center; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.admin-level-badge.level-1 { color: var(--blue); background: var(--blue-soft); }
.admin-level-badge.level-2 { color: #08734f; background: rgba(11, 143, 94, 0.12); }
.admin-level-badge.level-3 { color: #9a5b00; background: rgba(218, 137, 0, 0.13); }
.admin-level-badge.level-4 { color: var(--muted); background: var(--control); }
.read-only-label { color: var(--muted); font-size: 12px; font-weight: 700; }
.audit-log-table { min-width: 980px; }
.audit-log-table th:nth-child(1) { width: 17%; }
.audit-log-table th:nth-child(2) { width: 18%; }
.audit-log-table th:nth-child(3) { width: 17%; }
.audit-log-table th:nth-child(4) { width: 23%; }
.audit-log-table th:nth-child(5) { width: 25%; }
.audit-log-table td strong, .audit-log-table td small { display: block; }
.audit-log-table td small { margin-top: 3px; color: var(--muted); }
.audit-action-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-weight: 760; }
.account-users-panel { margin-top: 0; }
.account-users-table { width: 2100px; min-width: 100%; table-layout: fixed; font-size: 13px; }
.account-users-table th, .account-users-table td { padding: 11px 12px; vertical-align: top; line-height: 1.45; }
.account-users-table th:nth-child(1) { width: 140px; }
.account-users-table th:nth-child(2) { width: 280px; }
.account-users-table th:nth-child(3) { width: 220px; }
.account-users-table th:nth-child(4) { width: 240px; }
.account-users-table th:nth-child(5) { width: 160px; }
.account-users-table th:nth-child(6) { width: 80px; }
.account-users-table th:nth-child(7) { width: 190px; }
.account-users-table th:nth-child(8) { width: 270px; }
.account-users-table th:nth-child(9) { width: 80px; }
.account-users-table th:nth-child(10) { width: 110px; }
.account-users-table th:nth-child(11) { width: 210px; }
.account-users-table th, .account-users-table td,
.account-users-table td strong, .account-users-table td small,
.account-users-table td span { max-width: none; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
.account-users-table th:nth-child(6), .account-users-table td:nth-child(6),
.account-users-table th:nth-child(9), .account-users-table td:nth-child(9),
.account-users-table th:nth-child(10), .account-users-table td:nth-child(10),
.account-users-table th:nth-child(11), .account-users-table td:nth-child(11) { vertical-align: middle; white-space: nowrap; }
.account-user-actions { display: flex; flex-wrap: nowrap; gap: 5px; }
.account-user-actions .row-action { min-height: 32px; padding: 0 9px; border-radius: var(--radius-compact); font-size: 12px; }
.training-profile-editor { margin: 18px 0; }
.training-period-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.training-period-card { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: rgba(255, 255, 255, 0.48); }
.training-period-card strong { color: var(--ink); }
.training-period-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.training-period-card-heading small { color: var(--muted); text-align: right; }
.training-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.training-additional-records { display: grid; gap: 8px; }
.training-additional-entry { margin: 0; }
.training-additional-entry > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.training-additional-entry .icon-button { min-height: 50px; color: var(--red); background: var(--red-soft); }
.add-training-entry { width: 100%; }
.training-dashboard { display: grid; gap: 16px; overflow: hidden; }
.training-dashboard-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.training-dashboard-heading h2, .training-dashboard-subheading h3 { margin: 0; color: var(--ink); letter-spacing: -0.02em; }
.training-dashboard-heading h2 { font-size: 21px; }
.training-dashboard-heading p, .training-dashboard-subheading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.training-dashboard-context { display: grid; justify-items: end; gap: 3px; text-align: right; }
.training-dashboard-context strong { color: var(--blue); font-size: 13px; }
.training-dashboard-context small { color: var(--muted); font-size: 11px; }
.training-dashboard-body { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(270px, 0.75fr); gap: 13px; }
.training-dashboard-main { min-width: 0; display: grid; gap: 13px; }
.training-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.training-kpi-card { min-width: 0; min-height: 92px; display: grid; align-content: space-between; gap: 3px; padding: 13px 14px; color: var(--ink); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); text-align: left; cursor: pointer; transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.training-kpi-card:hover { transform: translateY(-1px); border-color: var(--blue); box-shadow: 0 9px 22px rgba(5, 99, 245, 0.08); }
.training-kpi-card > span { color: var(--muted); font-size: 12px; font-weight: 760; }
.training-kpi-card > strong { display: flex; align-items: baseline; gap: 4px; }
.training-kpi-card > strong b { color: var(--blue); font-size: 29px; letter-spacing: -0.045em; }
.training-kpi-card > strong small { color: var(--muted); font-size: 11px; }
.training-kpi-card > em { overflow: hidden; color: var(--muted); font-size: 10px; font-style: normal; font-weight: 660; text-overflow: ellipsis; white-space: nowrap; }
.training-kpi-card.complete > strong b { color: var(--green); }
.training-kpi-card.warning > strong b { color: #b46d00; }
.training-kpi-card.danger > strong b { color: var(--red); }
.training-quarter-dashboard { min-width: 0; padding: 13px; background: color-mix(in srgb, var(--control) 70%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-dashboard-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.training-dashboard-subheading h3 { font-size: 14px; }
.training-quarter-dashboard-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.training-quarter-summary-card { min-width: 0; padding: 11px; background: var(--surface-strong); border: 1px solid color-mix(in srgb, var(--hairline) 75%, transparent); border-radius: var(--radius-compact); }
.training-quarter-summary-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.training-quarter-summary-heading strong { font-size: 13px; }
.training-quarter-summary-heading b { color: var(--blue); font-size: 13px; }
.training-quarter-summary-card progress { width: 100%; height: 7px; margin: 9px 0 7px; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: var(--control); }
.training-quarter-summary-card progress::-webkit-progress-bar { background: var(--control); border-radius: 999px; }
.training-quarter-summary-card progress::-webkit-progress-value { background: var(--blue); border-radius: 999px; }
.training-quarter-summary-card progress::-moz-progress-bar { background: var(--blue); border-radius: 999px; }
.training-quarter-summary-card p { display: flex; align-items: baseline; gap: 5px; margin: 0; }
.training-quarter-summary-card p strong { color: var(--ink); font-size: 16px; }
.training-quarter-summary-card p span { color: var(--muted); font-size: 10px; }
.training-quarter-summary-card > small { display: block; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.training-risk-dashboard { min-width: 0; padding: 13px; background: color-mix(in srgb, var(--control) 70%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-risk-list { display: grid; gap: 7px; }
.training-risk-item { width: 100%; min-height: 51px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); text-align: left; cursor: pointer; }
.training-risk-item:hover { border-color: var(--blue); }
.training-risk-item > span { min-width: 0; display: grid; gap: 2px; }
.training-risk-item strong { font-size: 12px; }
.training-risk-item small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.training-risk-item > b { flex: 0 0 auto; color: var(--blue); font-size: 11px; }
.training-risk-item > b span { margin-right: 2px; font-size: 20px; letter-spacing: -0.04em; }
.training-risk-item.warning > b { color: #b46d00; }
.training-risk-item.danger > b { color: var(--red); }
.training-risk-item.missing > b { color: var(--muted); }
.results-dashboard { display: grid; gap: 16px; overflow: hidden; }
.results-dashboard-context .text-button { min-height: 24px; justify-self: end; padding: 0; font-size: 11px; }
.results-dashboard-body { align-items: stretch; }
.results-kpi-grid .training-kpi-card.active { border-color: var(--blue); box-shadow: none; background: color-mix(in srgb, var(--blue-soft) 68%, var(--surface-strong)); }
.result-grade-dashboard, .result-risk-dashboard { min-width: 0; padding: 13px; background: color-mix(in srgb, var(--control) 70%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-grade-dashboard-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.result-grade-summary-card { appearance: none; min-width: 0; padding: 11px; color: var(--ink); background: var(--surface-strong); border: 1px solid color-mix(in srgb, var(--hairline) 75%, transparent); border-radius: var(--radius-compact); text-align: left; cursor: pointer; transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.result-grade-summary-card:hover { transform: translateY(-1px); border-color: var(--blue); }
.result-grade-summary-card:focus-visible { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.result-grade-summary-card.active { border-color: var(--blue); box-shadow: none; background: color-mix(in srgb, var(--blue-soft) 64%, var(--surface-strong)); }
.result-grade-summary-card.good.active { border-color: var(--green); box-shadow: none; }
.result-grade-summary-card.pass.active { border-color: #c78100; box-shadow: none; }
.result-grade-summary-card.failed.active { border-color: var(--red); box-shadow: none; }
.result-grade-summary-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.result-grade-summary-heading strong { font-size: 13px; }
.result-grade-summary-heading b { color: var(--blue); font-size: 13px; }
.result-grade-summary-card progress { width: 100%; height: 7px; margin: 9px 0 7px; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: var(--control); }
.result-grade-summary-card progress::-webkit-progress-bar { background: var(--control); border-radius: 999px; }
.result-grade-summary-card progress::-webkit-progress-value { background: var(--blue); border-radius: 999px; }
.result-grade-summary-card progress::-moz-progress-bar { background: var(--blue); border-radius: 999px; }
.result-grade-summary-card.good progress::-webkit-progress-value { background: var(--green); }
.result-grade-summary-card.good progress::-moz-progress-bar { background: var(--green); }
.result-grade-summary-card.pass progress::-webkit-progress-value { background: #c78100; }
.result-grade-summary-card.pass progress::-moz-progress-bar { background: #c78100; }
.result-grade-summary-card.failed progress::-webkit-progress-value { background: var(--red); }
.result-grade-summary-card.failed progress::-moz-progress-bar { background: var(--red); }
.result-grade-summary-card p { display: flex; align-items: baseline; gap: 5px; margin: 0; white-space: nowrap; }
.result-grade-summary-card p strong { color: var(--ink); font-size: 16px; }
.result-grade-summary-card p span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; }
.result-risk-list { display: grid; gap: 7px; }
.result-risk-item { position: relative; width: 100%; min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 10px; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); text-align: left; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.result-risk-item:hover { border-color: var(--blue); }
.result-risk-item:has(input:focus-visible) { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.result-risk-item:has(input:checked) { border-color: var(--blue); box-shadow: none; background: color-mix(in srgb, var(--blue-soft) 64%, var(--surface-strong)); }
.result-risk-item.danger:has(input:checked) { border-color: var(--red); box-shadow: none; background: var(--red-soft); }
.result-risk-item.warning:has(input:checked) { border-color: #c47a00; box-shadow: none; background: rgba(218, 137, 0, 0.07); }
.result-risk-item > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.result-risk-item > span { min-width: 0; display: grid; gap: 1px; }
.result-risk-item strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.result-risk-item small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.result-risk-item > b { flex: 0 0 auto; color: var(--blue); font-size: 11px; }
.result-risk-item > b span { margin-right: 2px; font-size: 19px; letter-spacing: -0.04em; }
.result-risk-item.danger > b { color: var(--red); }
.result-risk-item.warning > b { color: #b46d00; }
.results-management-overview { position: relative; display: grid; gap: 10px; }
.results-management-overview:has(.department-filter-picker[open]) { z-index: 30; }
.results-overview-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: nowrap; }
.results-visible-summary { color: var(--blue); white-space: nowrap; }
.results-management-filters { display: grid; grid-template-columns: minmax(130px, 0.45fr) minmax(160px, 0.55fr) minmax(260px, 0.9fr) minmax(300px, 1.35fr); gap: 12px; }
.results-management-filters .department-filter-field { width: auto; min-width: 0; }
.training-management-overview { position: relative; display: grid; gap: 10px; }
.training-management-overview:has(.training-department-picker[open]) { z-index: 30; }
.training-overview-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.training-attention-summary { color: var(--blue); white-space: nowrap; }
.training-management-filters { display: grid; grid-template-columns: minmax(180px, 0.5fr) minmax(260px, 0.8fr) minmax(280px, 1.2fr); gap: 12px; }
.training-department-picker { position: relative; }
.training-department-picker[open] { z-index: 1; }
.training-department-picker > summary { display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 10px; padding: 0 13px; color: var(--ink); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-control); cursor: pointer; list-style: none; }
.training-department-picker > summary::-webkit-details-marker { display: none; }
.training-department-picker > summary strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.training-department-picker > summary small { flex: 0 0 auto; color: var(--muted); }
.training-department-picker[open] > summary { border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); background: var(--surface-strong); }
.training-department-options { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; width: max(100%, 360px); max-height: 340px; padding: 8px; overflow-y: auto; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-card); box-shadow: 0 18px 42px rgba(35, 47, 70, 0.16); }
.training-department-option { display: flex; min-height: 42px; align-items: center; gap: 10px; padding: 7px 10px; border-radius: var(--radius-compact); cursor: pointer; }
.training-department-option:hover { background: var(--blue-soft); }
.training-department-option.select-all { margin-bottom: 5px; padding-bottom: 10px; border-bottom: 1px solid var(--hairline); border-radius: var(--radius-compact); font-weight: 780; }
.training-department-option input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--blue); }
.training-department-option span { line-height: 1.35; }
.training-management-panel { margin-top: 0; }
.training-management-table { min-width: 900px; table-layout: fixed; }
.training-management-table th, .training-management-table td { padding: 9px 10px; vertical-align: middle; }
.training-management-table th:nth-child(1) { width: 17%; }
.training-management-table th:nth-child(2) { width: 15%; }
.training-management-table th:nth-child(3) { width: 14%; }
.training-management-table th:nth-child(4) { width: 17%; }
.training-management-table th:nth-child(5) { width: 19%; }
.training-management-table th:nth-child(6) { width: 18%; }
.training-person-cell { min-width: 0; }
.training-action-cell { min-width: 0; }
.training-manual-actions { display: flex; gap: 5px; }
.training-manual-actions .row-action { min-width: 0; min-height: 32px; flex: 1; padding: 0 8px; color: var(--blue); border-color: color-mix(in srgb, var(--blue) 22%, var(--hairline)); border-radius: var(--radius-compact); background: var(--blue-soft); font-size: 12px; }
.training-course-statuses { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 4px; }
.training-course-statuses span { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; padding: 0 7px; color: var(--muted); background: var(--control); border-radius: 999px; font-size: 11px; font-weight: 740; white-space: nowrap; }
.training-course-statuses i { width: 7px; height: 7px; background: color-mix(in srgb, var(--muted) 42%, transparent); border-radius: 50%; }
.training-course-statuses span.complete { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.training-course-statuses span.complete i { background: var(--green); }
.training-record-values { max-width: 420px; margin-top: 3px; overflow: hidden; color: var(--blue); text-overflow: ellipsis; white-space: nowrap; }
.training-reminder-badge { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; color: var(--muted); background: var(--control); border-radius: 999px; font-size: 11px; font-weight: 780; white-space: nowrap; }
.training-reminder-badge.complete { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.training-reminder-badge.due-soon { color: #9a5b00; background: rgba(218, 137, 0, 0.13); }
.training-reminder-badge.overdue { color: var(--red); background: color-mix(in srgb, var(--red) 10%, transparent); }
.training-countdown { color: var(--blue); font-weight: 780; }
.training-countdown.dueSoon { color: #9a5b00; }
.training-countdown.overdue { color: var(--red); }
.training-alert-stack { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; justify-items: start; gap: 4px 7px; }
.training-alert-stack small { overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.account-status { display: inline-flex; min-height: 29px; align-items: center; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 760; white-space: nowrap; }
.account-status.active { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.account-status.pending { color: #9a5b00; background: rgba(218, 137, 0, 0.13); }

.result-dialog { width: min(980px, calc(100% - 32px)); max-height: calc(100dvh - 40px); padding: 0; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-panel); box-shadow: 0 36px 90px rgba(7, 15, 32, 0.25); }
.result-dialog::backdrop { background: rgba(7, 15, 32, 0.32); backdrop-filter: blur(8px); }
.result-dialog form { padding: 28px; overflow: auto; }
.dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 24px; }
.dialog-heading p { margin: 0 0 4px; color: var(--blue); font-weight: 720; }
.dialog-heading h2 { margin: 0; font-size: 28px; letter-spacing: -0.03em; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.score-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.physical-entry-section { margin: 2px 0 20px; padding: 18px; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: color-mix(in srgb, var(--control) 72%, transparent); }
.physical-entry-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.physical-entry-section > header p { margin: 0 0 3px; color: var(--blue); font-size: 13px; font-weight: 760; }
.physical-entry-section h3 { margin: 0; font-size: 20px; letter-spacing: -0.02em; }
.physical-age-summary { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 13px; font-weight: 720; white-space: nowrap; }
.physical-entry-note { margin: 12px 0 14px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.physical-entry-grid { display: grid; gap: 9px; }
.physical-entry-placeholder { padding: 26px 18px; color: var(--muted); background: var(--surface-strong); border: 1px dashed var(--hairline); border-radius: var(--radius-card); text-align: center; }
.physical-entry-row { display: grid; grid-template-columns: minmax(220px, 1.25fr) minmax(220px, 1fr) 92px; gap: 16px; align-items: center; padding: 13px 15px; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.physical-entry-name { min-width: 0; display: grid; gap: 3px; }
.physical-entry-name > span { color: var(--blue); font-size: 12px; font-weight: 720; }
.physical-entry-name > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.physical-entry-name > small { color: var(--muted); }
.physical-raw-field { display: grid; gap: 5px; }
.physical-raw-field > span, .physical-calculated-score > span { color: var(--muted); font-size: 12px; font-weight: 650; }
.physical-raw-field > div { position: relative; }
.physical-raw-field input { padding-right: 64px; background: var(--control); }
.physical-raw-field b { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 12px; pointer-events: none; }
.physical-calculated-score { display: grid; grid-template-columns: auto auto; align-items: baseline; justify-content: end; column-gap: 4px; }
.physical-calculated-score > span { grid-column: 1 / -1; }
.physical-calculated-score > strong { color: var(--blue); font-size: 25px; letter-spacing: -0.03em; }
.physical-calculated-score > small { color: var(--muted); }
.physical-score-message { min-height: 20px; margin: 12px 2px 0; color: var(--green); font-size: 13px; font-weight: 650; }
.physical-score-message.warning { color: var(--red); }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }
.result-detail-dialog { width: min(1120px, calc(100% - 32px)); }
.result-detail-meta { margin: -12px 0 18px; color: var(--muted); line-height: 1.55; }
.result-detail-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 22px 2px 12px; }
.result-detail-section-heading h3 { margin: 0; font-size: 18px; letter-spacing: -0.02em; }
.result-detail-section-heading small { color: var(--muted); }
.result-person-profile { margin-bottom: 18px; }
.result-person-profile .result-detail-section-heading { margin-top: 0; }
.result-person-profile-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.result-person-profile-grid > div { min-width: 0; padding: 12px 14px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-person-profile-grid dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.result-person-profile-grid dd { overflow: hidden; margin: 5px 0 0; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.detail-score-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.detail-score-summary span { display: grid; gap: 5px; padding: 13px 15px; color: var(--muted); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); font-size: 12px; font-weight: 700; }
.detail-score-summary strong { color: var(--ink); font-size: 24px; letter-spacing: -0.03em; }
.detail-score-summary .total { color: color-mix(in srgb, var(--blue) 72%, var(--muted)); background: var(--blue-soft); border-color: color-mix(in srgb, var(--blue) 18%, var(--hairline)); }
.detail-score-summary .total strong { color: var(--blue); }
.result-detail-table-wrap { max-height: min(48dvh, 520px); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-detail-table { min-width: 650px; }
.result-detail-table td:first-child { color: var(--blue); font-weight: 760; }
.result-detail-table td:nth-child(2) strong, .result-detail-table td:nth-child(2) small { display: block; }
.result-detail-table td:nth-child(2) small { margin-top: 3px; color: var(--muted); }
.result-detail-score-input { width: 100px; min-height: 42px; padding: 0 11px; text-align: right; }
.result-detail-score-input:disabled { appearance: textfield; color: var(--ink); background: transparent; border-color: transparent; opacity: 1; -webkit-text-fill-color: var(--ink); }
.result-detail-score-input:disabled::-webkit-inner-spin-button { display: none; }
.result-detail-raw-field { display: flex; align-items: center; gap: 8px; min-width: 190px; }
.result-detail-raw-field span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.result-detail-raw-input { width: 150px; min-height: 42px; }
.result-detail-raw-input:disabled { color: var(--ink); background: transparent; border-color: transparent; opacity: 1; -webkit-text-fill-color: var(--ink); }
.result-detail-auto-score { display: block; color: var(--blue); font-size: 18px; }
.result-detail-auto-score + small { color: var(--muted); }
.result-detail-dialog form.is-editing .result-detail-table-wrap { border-color: color-mix(in srgb, var(--blue) 36%, var(--hairline)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 8%, transparent); }
.result-detail-dialog form.is-editing .result-detail-score-input { color: var(--blue); background: var(--blue-soft); border-color: color-mix(in srgb, var(--blue) 28%, var(--hairline)); font-weight: 780; }
.result-detail-dialog form.is-editing .result-detail-raw-input { color: var(--blue); background: var(--blue-soft); border-color: color-mix(in srgb, var(--blue) 28%, var(--hairline)); font-weight: 780; }
.result-detail-note { display: block; margin-top: 14px; line-height: 1.5; }
.result-detail-actions { position: sticky; z-index: 5; bottom: 0; margin: 14px 0 22px; padding: 12px; background: color-mix(in srgb, var(--surface-strong) 94%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); box-shadow: 0 12px 34px rgba(7, 15, 32, 0.13); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.result-history-table-wrap { max-height: 300px; border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-history-table-wrap table { min-width: 860px; }
.result-history-table-wrap td strong, .result-history-table-wrap td small { display: block; }
.result-history-table-wrap td small { margin-top: 3px; color: var(--muted); }
.result-history-table-wrap tr.current-result-history td { background: color-mix(in srgb, var(--blue-soft) 58%, transparent); }
.result-person-support-grid { display: grid; grid-template-columns: minmax(280px, 0.8fr) minmax(420px, 1.2fr); gap: 14px; margin: 22px 0; }
.result-support-card { padding: 17px; background: color-mix(in srgb, var(--control) 68%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-support-card .result-detail-section-heading { margin: 0 0 13px; }
.result-support-list { display: grid; gap: 9px; margin: 0; }
.result-support-list > div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 8px; border-bottom: 1px solid var(--hairline); }
.result-support-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
.result-support-list dt { color: var(--muted); }
.result-support-list dd { margin: 0; font-weight: 740; text-align: right; }
.result-support-alert { display: grid; gap: 4px; margin-top: 13px; padding: 12px; color: #9a5b00; background: rgba(218, 137, 0, 0.12); border-radius: var(--radius-compact); }
.result-support-alert small { line-height: 1.45; }
.result-training-period { padding: 11px 12px; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.result-training-period + .result-training-period { margin-top: 8px; }
.result-training-period > div { display: flex; justify-content: space-between; gap: 10px; }
.result-training-period > div small { color: var(--muted); }
.result-training-period ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 9px 0 0; padding: 0; list-style: none; }
.result-training-period li { display: grid; gap: 2px; min-width: 0; padding: 8px; color: var(--muted); background: var(--control); border-radius: var(--radius-compact); }
.result-training-period li.complete span { color: var(--green); font-weight: 740; }
.result-training-period li small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (prefers-reduced-transparency: reduce) {
  .glass-panel { background: var(--surface-strong); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

@media (min-width: 1101px) {
  .assessment-plan-layout { grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.65fr); }
  .theory-screen-layout { grid-template-columns: 1fr; }
  .theory-form-workspace { grid-template-columns: minmax(315px, 0.78fr) minmax(0, 1.22fr); }
  .theory-time-fieldset .form-grid { grid-template-columns: 1fr; }
  #assessmentPlanForm .picker-fieldset { margin-bottom: 14px; padding: 14px; }
  #assessmentPlanPhysicalPicker { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  #assessmentPlanPhysicalPicker .rule-demographic[open] { grid-column: 1 / -1; }
  #assessmentPlanPhysicalPicker .subject-rule-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
  #assessmentPlanPhysicalPicker .subject-rule { padding: 12px; }
  #assessmentPlanPhysicalPicker .rule-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  #assessmentPlanPhysicalPicker .check-card { padding: 10px; }
  #assessmentPlanSkillPicker { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  #assessmentPlanSkillPicker .check-card { padding: 10px; }
}

@media (max-width: 1420px) {
  .comparison-filter-grid { grid-template-columns: 1fr 1fr; grid-template-areas: "years metric" "level level" "search search"; }
  .comparison-years-field { grid-area: years; }
  .comparison-metric-field { grid-area: metric; }
  .comparison-level-fieldset { grid-area: level; }
  .comparison-search-field { grid-area: search; }
}

.execution-command-panel { overflow: hidden; }
.execution-toolbar { display: flex; align-items: end; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.execution-toolbar .field { min-width: 170px; margin: 0; }
.execution-command-panel .execution-toolbar .field, .execution-command-panel .execution-toolbar-button { width: 188px; min-width: 188px; }
.execution-command-panel .execution-toolbar .field input, .execution-command-panel .execution-toolbar-button { min-height: 46px; height: 46px; border-radius: var(--radius-control); }
.execution-session-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.execution-session-card { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px; background: color-mix(in srgb, var(--panel) 88%, transparent); color: inherit; text-align: left; }
.execution-session-card:hover, .execution-session-card.active { border-color: color-mix(in srgb, var(--accent) 58%, var(--line)); background: color-mix(in srgb, var(--accent) 8%, var(--panel)); }
.execution-session-card span:first-child { display: grid; gap: 5px; min-width: 0; }
.execution-session-card strong, .execution-session-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.execution-session-card small { color: var(--muted); }
.execution-progress { display: grid; justify-items: end; }
.execution-progress b { font-size: 19px; }
.execution-layout { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 20px; }
.execution-layout > aside { border-right: 1px solid var(--line); padding-right: 16px; }
.execution-participant-list { display: grid; gap: 8px; max-height: 720px; overflow: auto; }
.execution-participant { display: grid; gap: 8px; width: 100%; border: 1px solid transparent; border-radius: 14px; padding: 12px; background: color-mix(in srgb, var(--panel) 82%, var(--surface)); color: inherit; text-align: left; }
.execution-participant > span { display: grid; gap: 3px; }
.execution-participant small { color: var(--muted); }
.execution-participant em { color: var(--accent); font-style: normal; font-size: 12px; }
.execution-participant:hover, .execution-participant.active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--panel)); }
.execution-scorecard { min-width: 0; }
.execution-person-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.execution-person-header h3 { margin: 4px 0 5px; font-size: 26px; }
.execution-person-header p { color: var(--muted); margin: 0; }
.execution-score-summary { display: grid; grid-template-columns: repeat(2, minmax(90px, 1fr)); gap: 7px; }
.execution-score-summary span { display: flex; justify-content: space-between; gap: 12px; border-radius: 11px; padding: 8px 10px; background: color-mix(in srgb, var(--accent) 7%, var(--panel)); }
.execution-ruleset-note { margin: 16px 0; border-left: 3px solid var(--accent); padding: 10px 12px; border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--accent) 7%, transparent); color: var(--muted); font-size: 13px; }
.execution-subheading { display: flex; justify-content: space-between; align-items: center; margin: 17px 0 9px; }
.execution-subheading h3 { margin: 0; font-size: 16px; }
.execution-subheading span { color: var(--muted); font-size: 13px; }
.execution-items { display: grid; gap: 8px; }
.execution-item-row { display: grid; grid-template-columns: minmax(170px, 1.4fr) minmax(130px, .8fr) 86px auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 13px; padding: 10px 12px; }
.execution-item-row > div { display: grid; gap: 3px; }
.execution-item-row small, .execution-item-row output { color: var(--muted); font-size: 12px; }
.execution-item-row input { min-width: 0; }
.execution-actions { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; margin-top: 16px; }
.execution-theory-field { display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 12px; padding: 5px 7px 5px 10px; }
.execution-theory-field input { width: 90px; }
.execution-signature-records > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.signature-record { display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; background: transparent; color: inherit; text-align: left; }
.signature-record span, .signature-record small { color: var(--muted); font-size: 12px; }
.signature-record:hover { border-color: var(--accent); }
.waiver-record { border-style: dashed; background: color-mix(in srgb, #f59e0b 8%, transparent); }
.assessment-cadre-option { display: flex; align-items: center; gap: 9px; align-self: end; min-height: 44px; }
.assessment-duty-picker { position: relative; }
.assessment-duty-picker input { padding-right: 38px; }
.assessment-duty-options {
  position: absolute;
  z-index: 40;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 240px;
  padding: 6px;
  overflow-y: auto;
  background: var(--surface-strong);
  border: 1px solid color-mix(in srgb, var(--blue) 24%, var(--hairline));
  border-radius: var(--radius-compact);
  box-shadow: 0 18px 42px rgba(20, 43, 86, 0.16);
}
.assessment-duty-option {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 10px;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-radius: 9px;
  text-align: left;
  cursor: pointer;
}
.assessment-duty-option:hover, .assessment-duty-option:focus-visible { background: var(--blue-soft); outline: none; }
.assessment-duty-option span { min-width: 0; display: grid; gap: 2px; }
.assessment-duty-option strong, .assessment-duty-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assessment-duty-option small, .assessment-duty-option em { color: var(--muted); font-size: 11px; font-style: normal; }
.assessment-duty-empty { margin: 0; padding: 12px 10px; color: var(--muted); font-size: 12px; }
.execution-people-picker { max-height: 340px; overflow: auto; }
.participant-option.is-ineligible { opacity: .58; }
.signature-canvas { display: block; width: 100%; height: 240px; border: 1px solid var(--line); border-radius: 16px; background: #fff; touch-action: none; cursor: crosshair; }
.signature-dialog { width: min(760px, calc(100vw - 32px)); }

@media (max-width: 1100px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .overview-chart-grid { grid-template-columns: 1fr; }
  .overview-system-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-split, .trend-dashboard-grid, .comparison-dashboard-grid, .template-layout, .theory-layout { grid-template-columns: 1fr; }
  .theory-config-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .theory-config-strip .theory-title-field { grid-column: 1 / -1; }
  .theory-plan-library .plan-list { grid-template-columns: 1fr; }
  .comparison-filter-grid { grid-template-columns: 1fr 1fr; }
  .workbench-warning-grid { grid-template-columns: 1fr; }
  .training-management-filters { grid-template-columns: 1fr 1fr; }
  .results-management-filters { grid-template-columns: 1fr 1fr; }
  .training-dashboard-body { grid-template-columns: 1fr; }
  .results-dashboard-body { grid-template-columns: 1fr; }
  .training-risk-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-risk-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-management-filters > .field:last-child { grid-column: 1 / -1; }
  .results-management-filters > .field:last-child { grid-column: 1 / -1; }
  .maintenance-overview { grid-template-columns: 1fr; }
  .trend-filter-row { grid-template-columns: 1fr 1.5fr; }
  .trend-organization-field { grid-column: 1 / -1; }
  .template-summary { position: static; }
  .score-grid { grid-template-columns: repeat(2, 1fr); }
  .insight-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sampling-quick-row { grid-template-columns: 1fr; }
  .sampling-quota-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-person-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-person-support-grid { grid-template-columns: 1fr; }
  .execution-session-list { grid-template-columns: 1fr; }
  .execution-layout { grid-template-columns: 1fr; }
  .execution-layout > aside { border-right: 0; border-bottom: 1px solid var(--line); padding-right: 0; padding-bottom: 16px; }
  .execution-participant-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 360px; }
}

@media (max-width: 820px) {
  .admin-access-form { grid-template-columns: 1fr 1fr; }
  .admin-access-role-field { grid-column: 1 / -1; }
  .admin-access-edit-hint { grid-column: 2; }
  .admin-access-inventory-heading { align-items: stretch; flex-direction: column; }
  .admin-access-inventory-heading .field { width: 100%; }
  .admin-access-role-filters { grid-template-columns: 1fr 1fr; }
  .login-layout { grid-template-columns: 1fr; gap: 32px; padding: 32px 0; }
  .login-brand { padding: 0 8px; }
  .login-brand h1 { max-width: none; font-size: 44px; }
  .app-shell { width: min(100% - 20px, 760px); display: block; padding: 10px 0 28px; }
  .sidebar { position: static; height: auto; margin-bottom: 16px; padding: 14px; }
  .sidebar-brand { padding-bottom: 12px; }
  .sidebar nav { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .nav-group { display: contents; }
  .nav-group-toggle { display: none; }
  .nav-submenu, .nav-group.is-open .nav-submenu { display: contents; }
  .nav-item { flex: 0 0 auto; text-align: center; }
  .sidebar-briefing, .node-card, .sidebar > .quiet-button { display: none; }
  .workspace { padding: 8px 4px 30px; }
  .topbar { display: grid; align-items: start; }
  .topbar-actions { flex-wrap: wrap; }
  .admin-name { width: 100%; }
  .overview-dashboard-heading { align-items: flex-start; flex-direction: column; }
  .overview-dashboard-context { justify-items: start; text-align: left; }
  .priority-item { grid-template-columns: 1fr; gap: 8px; }
  .filters { align-items: stretch; flex-direction: column; }
  .department-filter-field, .ranking-department-field { width: 100%; min-width: 0; }
  .department-filter-options { width: 100%; }
  .trend-filter-row { grid-template-columns: 1fr; }
  .comparison-filter-grid { grid-template-columns: 1fr; grid-template-areas: "years" "metric" "level" "search"; }
  .comparison-level-control { display: flex; overflow-x: auto; scrollbar-width: thin; }
  .comparison-level-control label { flex: 0 0 auto; }
  .comparison-level-control span { width: max-content; min-width: 92px; padding-inline: 14px; }
  .training-management-filters { grid-template-columns: 1fr; }
  .results-management-filters { grid-template-columns: 1fr; }
  .training-kpi-grid, .training-quarter-dashboard-grid, .result-grade-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-dashboard-heading { align-items: flex-start; flex-direction: column; }
  .training-dashboard-context { justify-items: start; text-align: left; }
  .results-dashboard-context .text-button { justify-self: start; }
  .training-management-filters > .field:last-child { grid-column: auto; }
  .results-management-filters > .field:last-child { grid-column: auto; }
  .training-overview-actions, .results-overview-actions, .ranking-actions { align-items: stretch; flex-direction: column; }
  .training-overview-actions { justify-content: flex-start; }
  .participant-picker-toolbar { grid-template-columns: 1fr; }
  .participant-selection-bar { grid-template-columns: 1fr; align-items: flex-start; }
  .participant-selection-bar > div { justify-content: flex-start; }
  .trend-organization-field { grid-column: auto; }
  .sampling-exclusion-options { grid-template-columns: 1fr; }
  .sampling-event-quota-row { grid-template-columns: minmax(0, 1fr) 130px; }
  .sampling-department-quota-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .sampling-event-quota-row .icon-button, .sampling-department-quota-row .icon-button { grid-column: 1 / -1; min-height: 42px; }
  .inline-field { width: 100%; }
  .physical-entry-row { grid-template-columns: 1fr 1fr; }
  .physical-calculated-score { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: flex-start; gap: 4px; }
  .physical-calculated-score > span { margin-right: auto; }
  .training-period-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .admin-access-form { grid-template-columns: 1fr; }
  .admin-access-person-picker, .admin-access-role-field, #adminAccessSubmitButton, .admin-access-edit-hint { grid-column: 1; }
  .admin-access-person-picker { grid-template-columns: 1fr; }
  #adminAccessSubmitButton { width: 100%; }
  .admin-access-role-filters { grid-template-columns: 1fr; }
  .training-risk-list { grid-template-columns: 1fr; }
  .result-risk-list { grid-template-columns: 1fr; }
  .training-department-options { width: 100%; }
  .login-layout { width: min(100% - 24px, 500px); }
  .login-panel { padding: 24px; }
  .login-brand h1 { white-space: normal; font-size: 42px; }
  .brand-mark { width: 82px; height: 94px; }
  .metric-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 142px; }
  .theory-config-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theory-config-strip .theory-title-field { grid-column: 1 / -1; }
  .theory-form-footer { align-items: stretch; flex-direction: column; }
  .theory-form-footer .primary-button { width: 100%; }
  .overview-metric-grid { grid-template-columns: 1fr 1fr; }
  .overview-metric-grid .metric-card { min-height: 116px; }
  .overview-system-summary dl { grid-template-columns: 1fr; }
  .section-panel { padding: 19px; }
  .section-heading { display: block; }
  .section-heading .text-button { margin-top: 8px; }
  .node-summary dl { grid-template-columns: 1fr; }
  .form-grid, .score-grid { grid-template-columns: 1fr 1fr; }
  .detail-score-summary { grid-template-columns: 1fr 1fr; }
  .theory-result-summary { grid-template-columns: 1fr; padding-inline: 19px; }
  .check-grid, .participant-picker { grid-template-columns: 1fr; }
  .plan-card-row { grid-template-columns: 1fr; }
  .assessment-plan-form-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .plan-delete-button { min-height: 44px; }
  .insight-filter-grid { grid-template-columns: 1fr; }
  .sampling-quota-grid { grid-template-columns: 1fr; }
  .trend-check-grid { grid-template-columns: 1fr; }
  .ranking-personnel-group-field { min-width: 0; width: 100%; }
  .ranking-personnel-group-control { grid-template-columns: 66px minmax(124px, 1fr) 66px; }
  .analysis-group-options { grid-template-columns: 1fr; }
  .trend-method-stats { grid-template-columns: 1fr; }
  .sampling-block-heading { display: grid; }
  .sampling-block-heading .secondary-button { width: 100%; }
  .sampling-event-quota-row, .sampling-department-quota-row { grid-template-columns: 1fr; }
  .sampling-event-quota-row .icon-button, .sampling-department-quota-row .icon-button { grid-column: auto; }
  .sampling-quick-action { align-items: stretch; flex-direction: column; }
  .sampling-quick-action .primary-button, .sampling-result-heading .secondary-button { width: 100%; }
  .physical-entry-section > header { display: grid; }
  .physical-age-summary { width: fit-content; white-space: normal; }
  .physical-entry-row { grid-template-columns: 1fr; }
  .physical-calculated-score { grid-column: auto; }
  .dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dialog-actions button { width: 100%; }
  .training-entry-grid { grid-template-columns: 1fr; }
  .training-additional-entry > div { grid-template-columns: 1fr; }
  .training-additional-entry .icon-button { width: 100%; min-height: 42px; }
  .result-person-profile-grid { grid-template-columns: 1fr; }
  .result-training-period ul { grid-template-columns: 1fr; }
  .execution-toolbar, .execution-person-header { align-items: stretch; flex-direction: column; }
  .execution-toolbar .field { width: 100%; }
  .execution-command-panel .execution-toolbar .field, .execution-command-panel .execution-toolbar-button { width: 100%; min-width: 0; }
  .execution-session-card { grid-template-columns: 1fr 1fr; }
  .execution-session-card > span:first-child { grid-column: 1 / -1; }
  .execution-item-row { grid-template-columns: 1fr; }
  .execution-score-summary, .execution-participant-list, .execution-signature-records > div:last-child { grid-template-columns: 1fr; }
}

/* 训练场次、四时段签到与终审公示 */
.training-operations-panel { display: grid; gap: 18px; overflow: hidden; }
.training-operations-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.training-operations-heading h2 { margin: 3px 0 0; }
.training-operations-heading p { max-width: 720px; margin: 7px 0 0; color: var(--muted); line-height: 1.55; }
.training-operations-kicker { color: var(--blue); font-size: 12px; font-weight: 820; letter-spacing: .13em; }
.training-operations-actions { display: flex; flex: 0 0 auto; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.training-operations-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 0; }
.training-operations-metrics > button { min-width: 0; display: grid; gap: 5px; padding: 12px 14px; color: inherit; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); text-align: left; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.training-operations-metrics > button:hover, .training-operations-metrics > button.active { border-color: var(--blue); box-shadow: none; background: color-mix(in srgb, var(--blue-soft) 58%, var(--control)); }
.training-operations-metrics > button:focus-visible { outline: 3px solid var(--blue-soft); outline-offset: 2px; }
.training-operations-metrics span { overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.training-operations-metrics strong { color: var(--blue); font-size: 26px; font-weight: 820; letter-spacing: -.04em; }
.training-operations-metrics .warning strong { color: #a96600; }
.training-operations-metrics .attention strong { color: var(--red); }
.training-operations-metrics .complete strong { color: var(--green); }
.training-workspace-tabs { display: flex; gap: 5px; padding: 5px; overflow-x: auto; background: color-mix(in srgb, var(--control) 88%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-control); }
.module-workspace-tabs { margin-bottom: 14px; background: color-mix(in srgb, var(--surface-strong) 88%, var(--control)); box-shadow: none; }
.training-workspace-tabs button { min-height: 38px; flex: 1 0 auto; padding: 0 15px; color: var(--muted); background: transparent; border: 0; border-radius: var(--radius-compact); cursor: pointer; font-weight: 740; }
.training-workspace-tabs button:hover { color: var(--blue); background: var(--blue-soft); }
.training-workspace-tabs button.active { overflow: hidden; color: #fff; background: var(--blue); box-shadow: none; background-clip: padding-box; }
.training-workspace { display: grid; gap: 16px; }
.training-event-toolbar { padding-block: 18px; }
.training-event-record-mode { margin-bottom: 14px; }
.training-event-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; align-items: end; }
.training-event-filters .field { margin: 0; }
.training-event-filters .secondary-button { min-height: 48px; }
.training-event-table { min-width: 1080px; table-layout: fixed; }
.training-event-table th:nth-child(1) { width: 13%; }
.training-event-table th:nth-child(2) { width: 17%; }
.training-event-table th:nth-child(3) { width: 27%; }
.training-event-table th:nth-child(4) { width: 10%; }
.training-event-table th:nth-child(5) { width: 10%; }
.training-event-table th:nth-child(6) { width: 13%; }
.training-event-table th:nth-child(7) { width: 10%; }
.training-event-table td > strong, .training-event-table td > small { display: block; }
.training-event-table td > small { margin-top: 3px; color: var(--muted); line-height: 1.35; }
.training-event-status, .training-checkin-status { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 999px; color: var(--muted); background: var(--control); font-size: 11px; font-weight: 780; white-space: nowrap; }
.training-event-status.warning, .training-checkin-status.warning { color: #9a5b00; background: rgba(218, 137, 0, .13); }
.training-event-status.danger, .training-checkin-status.danger { color: var(--red); background: var(--red-soft); }
.training-event-status.complete, .training-checkin-status.complete { color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); }
.training-assessment-draft-list { display: grid; gap: 9px; padding: 0 20px 20px; }
.training-assessment-draft-card { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) auto; gap: 14px; align-items: center; padding: 13px 15px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-assessment-draft-card strong, .training-assessment-draft-card small { display: block; }
.training-assessment-draft-card small { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.training-checkin-selector { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr); gap: 16px; align-items: end; }
.training-checkin-selector .field { margin: 0; }
.training-selected-event-state { min-height: 46px; display: flex; align-items: center; padding: 0 15px; color: var(--muted); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-control); line-height: 1.4; }
.training-checkin-detail { padding-bottom: 20px; }
.training-checkin-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 22px 14px; }
.training-checkin-heading h2 { margin: 5px 0 0; font-size: 20px; }
.training-checkin-heading p { margin: 5px 0 0; color: var(--muted); line-height: 1.45; }
.training-event-date-badge { color: var(--blue); font-size: 12px; font-weight: 780; }
.training-checkin-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.training-blocker-panel { margin: 0 22px 14px; padding: 12px 14px; color: var(--red); background: var(--red-soft); border: 1px solid color-mix(in srgb, var(--red) 24%, transparent); border-radius: var(--radius-card); line-height: 1.5; }
.training-blocker-panel strong { display: block; margin-bottom: 5px; }
.training-blocker-panel ul { margin: 0; padding-left: 20px; }
.training-checkin-window-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 0 22px 15px; }
.training-checkin-window-card { padding: 11px 12px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-checkin-window-card strong, .training-checkin-window-card span { display: block; }
.training-checkin-window-card span { margin-top: 4px; color: var(--blue); font-size: 12px; font-weight: 760; }
.training-checkin-window-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.training-checkin-table { min-width: 1120px; table-layout: fixed; }
.training-checkin-table th:first-child { width: 17%; }
.training-checkin-table th:last-child { width: 25%; }
.training-checkin-table td { vertical-align: top; }
.training-person-role { color: var(--blue); font-size: 10px; font-weight: 760; }
.training-checkin-evidence { display: grid; gap: 3px; }
.training-checkin-evidence small { color: var(--muted); font-size: 10px; line-height: 1.3; }
.training-window-actions { display: grid; gap: 5px; margin-top: 5px; }
.training-window-actions select, .training-window-actions input { width: 100%; min-height: 34px; height: 34px !important; padding: 0 8px; border-radius: var(--radius-compact); font-size: 10px; }
.training-window-actions .row-action { min-height: 30px; padding: 0 8px; font-size: 10px; }
.training-makeup-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.training-makeup-status { color: var(--blue) !important; font-weight: 750; }
.training-reminder-note { color: #9a5b00 !important; }
.training-exception-editor { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 6px; }
.training-exception-editor select, .training-exception-editor input { min-height: 36px; height: 36px !important; padding: 0 9px; border-radius: var(--radius-compact); font-size: 11px; }
.training-exception-editor select { padding-right: 12px; background-image: none; }
.training-exception-editor input { grid-column: 1 / -1; }
.training-confirmation-note { margin: 16px 22px 0; padding: 12px 14px; color: var(--muted); background: var(--control); border-radius: var(--radius-card); font-size: 12px; line-height: 1.5; }
.training-confirmation-note strong { color: var(--ink); }
.training-confirmation-note p { margin: 4px 0 0; }
.training-settings-layout { display: grid; grid-template-columns: 1fr; gap: 16px; }
.training-policy-toggle { display: flex; align-items: flex-start; gap: 11px; padding: 13px 14px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); cursor: pointer; }
.training-policy-toggle input { width: 20px; height: 20px; min-height: 0; flex: 0 0 auto; accent-color: var(--blue); }
.training-policy-toggle span { display: grid; gap: 3px; }
.training-policy-toggle small { color: var(--muted); line-height: 1.45; }
.training-policy-limits { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 13px; }
.training-policy-limits .field { margin-bottom: 0; }
.training-window-editor { margin: 14px 0 0; padding: 13px; border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-window-editor legend { padding: 0 6px; color: var(--ink); font-size: 13px; font-weight: 780; }
.training-window-row { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(100px, .8fr) minmax(100px, .8fr); gap: 8px; align-items: end; }
.training-window-row + .training-window-row { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--hairline); }
.training-window-row .field { margin: 0; }
.training-window-label { align-self: center; }
.training-window-label strong, .training-window-label small { display: block; }
.training-window-label small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.training-revision-note { color: var(--muted); font-size: 11px; line-height: 1.4; }
.training-policy-actions { align-items: center; }
.training-policy-save-button { width: auto; min-width: 132px; padding-inline: 16px; }
.training-location-list { display: grid; gap: 9px; padding: 0 20px 20px; }
.training-location-card { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(190px, .8fr) auto; gap: 12px; align-items: center; padding: 13px 14px; background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.training-location-card.inactive { opacity: .68; }
.training-location-card h3 { margin: 0; font-size: 15px; }
.training-location-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.training-location-card dl { margin: 0; }
.training-location-card dt { color: var(--muted); font-size: 10px; }
.training-location-card dd { margin: 2px 0 0; font-size: 11px; font-weight: 720; }
.training-settings-notice h2 { margin: 0; }
.training-settings-notice p { margin: 7px 0 0; color: var(--muted); }
.manual-training-event-dialog { width: min(1120px, calc(100% - 32px)); }
.manual-training-event-dialog > form { max-height: min(940px, calc(100dvh - 48px)); overflow-y: auto; }
.manual-training-intro { margin: 0 0 16px; padding: 11px 13px; color: var(--muted); background: var(--control); border-radius: var(--radius-card); line-height: 1.5; }
.manual-training-fields .field { margin-bottom: 0; }
.manual-training-time-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.manual-training-checkin { margin-top: 14px; }
.manual-training-people-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.manual-training-people { min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.manual-training-people legend { padding: 0 6px; color: var(--ink); font-size: 13px; font-weight: 790; }
.manual-training-people legend span { margin-left: 5px; color: var(--blue); font-size: 11px; }
.manual-training-people .field { margin-bottom: 8px; }
.manual-training-search-results { max-height: 166px; display: grid; gap: 5px; overflow-y: auto; padding: 6px; color: var(--muted); background: var(--control); border: 1px solid var(--hairline); border-radius: var(--radius-compact); }
.manual-training-search-results > button { min-width: 0; min-height: 38px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 6px 9px; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); text-align: left; cursor: pointer; }
.manual-training-search-results > button:hover, .manual-training-search-results > button:focus-visible { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); outline: none; }
.manual-training-search-results span { color: var(--muted); font-size: 10px; }
.manual-training-search-results em { color: var(--blue); font-size: 10px; font-style: normal; font-weight: 760; }
.manual-training-selected-list { max-height: 250px; display: grid; gap: 6px; overflow-y: auto; margin-top: 8px; }
.manual-training-selected-empty { padding: 12px; color: var(--muted); text-align: center; background: var(--control); border-radius: var(--radius-compact); font-size: 11px; }
.manual-training-selected-person { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 8px 10px; background: color-mix(in srgb, var(--blue-soft) 58%, var(--surface-strong)); border: 1px solid color-mix(in srgb, var(--blue) 16%, var(--hairline)); border-radius: var(--radius-compact); }
.manual-training-selected-person > div { min-width: 0; }
.manual-training-selected-person strong, .manual-training-selected-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manual-training-selected-person small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.manual-training-selected-person label { display: flex; align-items: center; gap: 5px; color: var(--blue); font-size: 10px; font-weight: 760; cursor: pointer; }
.manual-training-selected-person button { min-height: 30px; padding: 0 8px; color: var(--red); background: var(--surface-strong); border: 1px solid color-mix(in srgb, var(--red) 22%, var(--hairline)); border-radius: var(--radius-compact); cursor: pointer; }
.manual-training-help { display: block; margin-top: 8px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.manual-training-event-dialog .dialog-actions > div { display: flex; gap: 8px; }
.roster-import-dialog { width: min(1040px, calc(100% - 32px)); }
.roster-import-dialog > form { max-height: min(900px, calc(100dvh - 48px)); overflow-y: auto; }
.roster-file-step { display: block; }
.roster-file-picker { min-width: 0; min-height: 132px; display: grid; place-content: center; gap: 5px; padding: 22px; text-align: center; background: var(--control); border: 2px dashed color-mix(in srgb, var(--blue) 38%, var(--hairline)); border-radius: var(--radius-card); cursor: pointer; transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.roster-file-picker:hover, .roster-file-picker:focus-visible { border-color: var(--blue); background: var(--blue-soft); outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--blue-soft) 88%, transparent); }
.roster-file-picker.is-dragover { border-color: var(--blue); border-style: solid; background: color-mix(in srgb, var(--blue-soft) 82%, var(--surface-strong)); box-shadow: 0 0 0 6px color-mix(in srgb, var(--blue-soft) 76%, transparent); transform: translateY(-1px); }
.roster-file-picker[data-state="uploading"] { cursor: wait; border-color: var(--blue); background: color-mix(in srgb, var(--blue-soft) 70%, var(--control)); }
.roster-file-picker[data-state="ready"] { border-color: color-mix(in srgb, var(--green) 58%, var(--hairline)); background: color-mix(in srgb, var(--green) 8%, var(--control)); }
.roster-file-picker[data-state="error"] { border-color: color-mix(in srgb, var(--red) 58%, var(--hairline)); background: var(--red-soft); }
.roster-file-picker > span { color: var(--blue); font-size: 11px; font-weight: 780; }
.roster-file-picker > strong { max-width: 100%; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.roster-file-picker > small { color: var(--muted); line-height: 1.45; }
.roster-file-status { justify-self: center; margin-top: 3px; color: var(--muted); font-size: 11px; font-style: normal; font-weight: 720; }
.roster-file-picker[data-state="uploading"] .roster-file-status { color: var(--blue); }
.roster-file-picker[data-state="ready"] .roster-file-status { color: var(--green); }
.roster-file-picker[data-state="error"] .roster-file-status { color: var(--red); }
.visually-hidden-file { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.roster-import-dirty { margin: 12px 0 0; padding: 10px 12px; color: #925600; background: rgba(218, 137, 0, .12); border-radius: var(--radius-compact); font-size: 12px; font-weight: 680; }
.roster-preview-panel { display: grid; gap: 13px; margin-top: 15px; }
.roster-preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 14px; background: var(--control); border-radius: var(--radius-card); }
.roster-preview-heading > div > span { color: var(--blue); font-size: 11px; font-weight: 780; }
.roster-preview-heading h3 { margin: 3px 0 0; }
.roster-preview-file-meta { min-width: min(520px, 60%); display: grid; grid-template-columns: 1fr 1.4fr .8fr; gap: 8px; margin: 0; }
.roster-preview-file-meta dt { color: var(--muted); font-size: 10px; }
.roster-preview-file-meta dd { margin: 3px 0 0; overflow: hidden; font-size: 11px; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.roster-preview-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0; }
.roster-preview-metrics > div { padding: 10px 12px; background: var(--control); border-radius: var(--radius-card); }
.roster-preview-metrics dt { color: var(--muted); font-size: 10px; }
.roster-preview-metrics dd { margin: 3px 0 0; color: var(--blue); font-size: 20px; font-weight: 820; }
.roster-preview-metrics .danger dd { color: var(--red); }
.roster-preview-issues { padding: 12px 14px; border-radius: var(--radius-card); font-size: 12px; line-height: 1.5; }
.roster-preview-issues.danger { color: var(--red); background: var(--red-soft); border: 1px solid color-mix(in srgb, var(--red) 24%, transparent); }
.roster-preview-issues.warning { color: #925600; background: rgba(218, 137, 0, .11); border: 1px solid rgba(218, 137, 0, .22); }
.roster-preview-issues strong { display: block; }
.roster-preview-issues ul { margin: 5px 0 0; padding-left: 20px; }
.roster-preview-events { display: grid; gap: 10px; }
.roster-preview-event { overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.roster-preview-event > header { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 12px; padding: 12px 14px; background: var(--control); }
.roster-preview-event h4 { margin: 0; }
.roster-preview-event header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.roster-preview-event header dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0; }
.roster-preview-event header dt { color: var(--muted); font-size: 9px; }
.roster-preview-event header dd { margin: 2px 0 0; font-size: 11px; font-weight: 720; }
.roster-preview-field-mappings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 10px 14px 0; }
.roster-preview-field-mappings > div { min-width: 0; padding: 9px 10px; background: color-mix(in srgb, var(--control) 74%, transparent); border: 1px solid var(--hairline); border-radius: var(--radius-compact); }
.roster-preview-field-mappings dt { color: var(--muted); font-size: 9px; font-weight: 720; }
.roster-preview-field-mappings dd { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 7px; align-items: center; margin: 4px 0 0; font-size: 10px; line-height: 1.35; }
.roster-preview-field-mappings dd span, .roster-preview-field-mappings dd strong { min-width: 0; overflow-wrap: anywhere; }
.roster-preview-field-mappings dd span { color: var(--muted); }
.roster-preview-field-mappings dd b { color: var(--blue); }
.roster-preview-people { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px 14px 14px; }
.roster-preview-people section { min-width: 0; }
.roster-preview-people h5 { margin: 0 0 7px; font-size: 12px; }
.roster-person-list { display: flex; flex-wrap: wrap; gap: 5px; }
.roster-person-chip { display: inline-grid; min-height: 38px; grid-template-columns: auto auto auto; align-items: center; gap: 2px 5px; padding: 6px 9px; color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); border-radius: 14px; font-size: 10px; font-weight: 720; }
.roster-person-chip.blocked { color: var(--red); background: var(--red-soft); }
.roster-person-chip.warning { color: #925600; background: rgba(218, 137, 0, .12); }
.roster-person-chip > span { grid-row: 1; }
.roster-person-chip > small { grid-column: 1 / -1; color: currentColor; font-size: 9px; font-weight: 650; opacity: .82; }
.roster-person-chip > em { grid-column: 1 / -1; font-size: 9px; font-style: normal; font-weight: 680; line-height: 1.35; }
.roster-person-chip .marker { color: var(--blue); }
.roster-preview-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 13px; border-top: 1px solid var(--hairline); }
.roster-preview-footer > div { min-width: 0; display: grid; gap: 3px; }
.roster-preview-footer small { max-width: 700px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.roster-preview-actions { display: flex !important; flex: 0 0 auto; gap: 8px !important; }
.roster-import-committed { margin-top: 14px; padding: 14px; color: var(--green); background: color-mix(in srgb, var(--green) 10%, transparent); border: 1px solid color-mix(in srgb, var(--green) 24%, transparent); border-radius: var(--radius-card); line-height: 1.5; }
.training-location-dialog { width: min(900px, calc(100% - 32px)); }
.training-location-form-grid { grid-template-columns: 1fr 1fr; }
.training-location-wide { grid-column: 1 / -1; }
.training-location-card.invalid { border-color: color-mix(in srgb, var(--red) 35%, var(--hairline)); background: color-mix(in srgb, var(--red-soft) 55%, var(--surface-strong)); }
.training-location-card.invalid.inactive { opacity: 1; }
.training-location-invalid-note { color: var(--red) !important; font-weight: 720; }
.training-map-search { display: grid; gap: 12px; margin-bottom: 16px; padding: 14px; background: color-mix(in srgb, var(--blue-soft) 55%, var(--control)); border: 1px solid color-mix(in srgb, var(--blue) 18%, var(--hairline)); border-radius: var(--radius-card); }
.training-map-search > div:first-child { display: grid; gap: 3px; }
.training-map-search > div:first-child > small { color: var(--muted); line-height: 1.45; }
.training-map-search .training-map-privacy { color: #775000; font-size: 10px; }
.training-map-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: end; }
.training-map-search-row .field { margin: 0; }
.training-map-search-row button { min-height: 44px; }
.training-map-results { display: grid; gap: 7px; }
.training-map-results > button { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 12px; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: var(--radius-compact); text-align: left; cursor: pointer; }
.training-map-results > button:hover, .training-map-results > button.selected { border-color: var(--blue); box-shadow: none; }
.training-map-results span { min-width: 0; display: grid; gap: 3px; }
.training-map-results strong, .training-map-results small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.training-map-results small { color: var(--muted); font-size: 10px; }
.training-map-results b { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.training-map-results em { color: var(--blue); font-size: 11px; font-style: normal; font-weight: 760; }
.training-map-confirmation { background: var(--surface-strong); border: 1px solid color-mix(in srgb, var(--blue) 24%, var(--hairline)); border-radius: var(--radius-card); }
.training-map-confirmation > div { display: grid; justify-items: start; gap: 6px; padding: 14px; }
.training-map-confirmation small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.training-map-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 0; }
.training-map-confirmation .row-action:not([href]) { pointer-events: none; opacity: .5; }

/* Import review is an editing surface, not a parser report. */
.roster-preview-heading { align-items: center; padding: 12px 14px; }
.roster-preview-heading > div { min-width: 0; }
.roster-preview-heading > div > p { margin: 4px 0 0; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.roster-preview-file-meta { min-width: 310px; grid-template-columns: repeat(3, minmax(80px, 1fr)); }
.roster-preview-file-meta > div { padding: 8px 10px; background: var(--surface-strong); border-radius: var(--radius-compact); }
.roster-preview-file-meta dd { color: var(--blue); font-size: 18px; }
.roster-marker-review { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 13px; color: #775000; background: rgba(218, 137, 0, .1); border: 1px solid rgba(218, 137, 0, .24); border-radius: var(--radius-card); }
.roster-marker-review > div { min-width: 0; }
.roster-marker-review p { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0 0; }
.roster-marker-review p span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; background: var(--surface-strong); border-radius: 999px; font-size: 10px; }
.roster-marker-review p b { color: var(--blue); }
.roster-marker-review > label { flex: 0 0 auto; display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 760; cursor: pointer; }
.roster-marker-review input, .roster-skip-unresolved input, .roster-event-checkin input { width: 19px; height: 19px; min-height: 0; flex: 0 0 auto; accent-color: var(--blue); }
.roster-recognition-notes { padding: 9px 12px; color: var(--muted); background: var(--control); border-radius: var(--radius-compact); font-size: 11px; }
.roster-recognition-notes summary { color: var(--ink); font-weight: 740; cursor: pointer; }
.roster-recognition-notes div { max-height: 160px; margin-top: 8px; overflow-y: auto; }
.roster-recognition-notes p { margin: 5px 0; line-height: 1.45; }
.roster-preview-event { background: var(--surface-strong); }
.roster-preview-event > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; }
.roster-preview-event > header > div { min-width: 0; }
.roster-preview-event > header > div > span { color: var(--blue); font-size: 10px; font-weight: 780; }
.roster-preview-event > header > small { flex: 0 0 auto; color: var(--muted); font-size: 10px; }
.roster-event-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; padding: 12px 14px 6px; }
.roster-event-fields .field { grid-column: span 2; margin: 0; }
.roster-event-fields .field input, .roster-event-fields .field select { min-width: 0; height: 41px; min-height: 41px; padding: 0 10px; font-size: 11px; }
.roster-event-project { grid-column: span 5 !important; }
.roster-event-course { grid-column: span 7 !important; }
.roster-event-location-text { grid-column: span 5 !important; }
.roster-event-location { grid-column: span 7 !important; }
.roster-event-checkin { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; background: var(--control); border-radius: var(--radius-compact); cursor: pointer; }
.roster-event-checkin span { display: grid; gap: 2px; }
.roster-event-checkin small { color: var(--muted); font-size: 9px; }
.roster-event-error { min-height: 0; margin: 4px 14px 0; color: var(--red); font-size: 11px; font-weight: 680; }
.roster-event-error:empty { display: none; }
.roster-preview-people { padding-top: 8px; }
.roster-preview-people details { min-width: 0; overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius-compact); }
.roster-preview-people summary { display: flex; align-items: center; justify-content: space-between; padding: 9px 11px; background: var(--control); font-size: 11px; font-weight: 760; cursor: pointer; }
.roster-preview-people summary b { color: var(--blue); }
.roster-preview-people .roster-person-list { display: grid; gap: 5px; padding: 8px; }
.roster-person-editor { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(92px, auto) auto auto; align-items: center; gap: 6px; padding: 6px; background: color-mix(in srgb, var(--green) 7%, var(--surface-strong)); border: 1px solid color-mix(in srgb, var(--green) 18%, var(--hairline)); border-radius: var(--radius-compact); }
.roster-person-editor[data-roster-removed="true"] { display: none; }
.roster-person-editor.unresolved { background: rgba(218, 137, 0, .08); border-color: rgba(218, 137, 0, .28); }
.roster-person-editor input[type="text"] { width: 100%; min-height: 34px; height: 34px; padding: 0 8px; background: var(--surface-strong); border: 1px solid var(--hairline); border-radius: 8px; font-size: 11px; }
.roster-person-state { color: var(--green); font-size: 9px; font-weight: 700; white-space: nowrap; }
.roster-person-editor.unresolved .roster-person-state { color: #925600; }
.roster-source-marker { min-width: 25px; padding: 3px 6px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 9px; text-align: center; }
.roster-lead-choice { display: flex; align-items: center; gap: 4px; font-size: 9px; font-weight: 720; white-space: nowrap; cursor: pointer; }
.roster-lead-choice input { width: 16px; height: 16px; min-height: 0; accent-color: var(--blue); }
.roster-person-remove { min-width: 45px; min-height: 32px; height: 32px; color: var(--red); font-size: 9px; }
.roster-people-empty { margin: 5px; color: var(--muted); font-size: 11px; }
.roster-skip-unresolved { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; color: #775000; background: rgba(218, 137, 0, .1); border: 1px solid rgba(218, 137, 0, .24); border-radius: var(--radius-card); cursor: pointer; }
.roster-skip-unresolved span { display: grid; gap: 3px; }
.roster-skip-unresolved small { color: #8c640f; font-size: 10px; line-height: 1.45; }
.roster-preview-footer { position: sticky; z-index: 4; bottom: -1px; margin: 0 -1px -1px; padding: 12px 1px 1px; background: color-mix(in srgb, var(--surface-strong) 94%, transparent); backdrop-filter: blur(16px); }
.assessment-import-draft-dialog { width: min(860px, calc(100% - 32px)); }
.assessment-import-draft-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; padding: 12px; background: var(--control); border-radius: var(--radius-card); }
.assessment-import-draft-summary > div { min-width: 0; }
.assessment-import-draft-summary strong, .assessment-import-draft-summary small { display: block; }
.assessment-import-draft-summary small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1040px) {
  .training-operations-heading, .training-checkin-heading { align-items: stretch; flex-direction: column; }
  .training-operations-actions, .training-checkin-actions { justify-content: flex-start; }
  .training-settings-layout { grid-template-columns: 1fr; }
  .training-checkin-window-grid { grid-template-columns: 1fr 1fr; }
  .training-location-card { grid-template-columns: minmax(0, 1fr) auto; }
  .training-location-card dl { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .training-operations-metrics, .roster-preview-metrics { grid-template-columns: 1fr 1fr; }
  .training-event-filters, .training-checkin-selector { grid-template-columns: 1fr; }
  .training-assessment-draft-card, .training-location-card { grid-template-columns: 1fr; }
  .training-checkin-actions button, .training-operations-actions button { width: 100%; }
  .training-policy-limits, .training-window-row, .training-location-form-grid, .manual-training-people-grid { grid-template-columns: 1fr; }
  .training-location-wide { grid-column: auto; }
  .roster-file-picker { min-height: 150px; padding: 20px 16px; }
  .roster-preview-heading, .roster-preview-footer, .roster-marker-review { align-items: stretch; flex-direction: column; }
  .roster-preview-file-meta { min-width: 0; width: 100%; grid-template-columns: repeat(3, 1fr); }
  .roster-preview-people { grid-template-columns: 1fr; }
  .roster-preview-field-mappings { grid-template-columns: 1fr; }
  .roster-preview-event > header { grid-template-columns: 1fr; }
  .assessment-import-draft-summary { grid-template-columns: 1fr; }
  .roster-preview-actions { align-items: stretch; flex-direction: column; }
  .roster-preview-footer button { width: 100%; }
  .roster-event-fields { grid-template-columns: 1fr 1fr; }
  .roster-event-fields .field, .roster-event-project, .roster-event-course, .roster-event-location-text, .roster-event-location { grid-column: span 1 !important; }
  .roster-event-project, .roster-event-course, .roster-event-location-text, .roster-event-location, .roster-event-checkin { grid-column: 1 / -1 !important; }
  .roster-person-editor { grid-template-columns: minmax(0, 1fr) auto auto; }
  .roster-person-state { grid-column: 1 / 2; }
  .training-map-search-row { grid-template-columns: 1fr; }
  .training-map-results > button { grid-template-columns: minmax(0, 1fr) auto; }
  .training-map-results > button b { grid-column: 1 / -1; }
  .manual-training-event-dialog .dialog-actions { align-items: stretch; flex-direction: column; }
  .manual-training-event-dialog .dialog-actions > div { flex-direction: column; }
  .manual-training-event-dialog .dialog-actions button { width: 100%; }
}

@media (max-width: 520px) {
  .training-operations-metrics, .roster-preview-metrics, .training-checkin-window-grid { grid-template-columns: 1fr; }
}

/* 综合能力评估 */
.capability-view { gap: 14px; }
.capability-command-panel { padding: 22px 24px 16px; overflow: hidden; }
.capability-command-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.capability-command-heading h2 { margin: 3px 0 0; font-size: 25px; letter-spacing: -.035em; }
.capability-command-heading p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.capability-model-stamp { flex: 0 0 auto; min-width: 148px; display: grid; gap: 2px; padding: 10px 14px; text-align: right; background: var(--blue-soft); border: 1px solid color-mix(in srgb, var(--blue) 17%, var(--hairline)); border-radius: 16px; }
.capability-model-stamp span, .capability-model-stamp small { color: var(--muted); font-size: 12px; }
.capability-model-stamp strong { color: var(--blue); font-size: 14px; }
.capability-filter-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.capability-filter-grid label { min-width: 0; display: grid; gap: 5px; }
.capability-filter-grid label > span { padding-left: 4px; color: var(--muted); font-size: 13px; font-weight: 720; }
.capability-filter-grid input, .capability-filter-grid select { min-width: 0; min-height: 46px; height: 46px; padding-left: 13px; border-radius: var(--radius-control); font-size: 14px; }
.capability-scope-strip { display: flex; align-items: center; gap: 12px; margin-top: 14px; min-height: 40px; color: var(--muted); font-size: 13px; }
.capability-scope-strip strong { color: var(--ink); font-size: 14px; }
.capability-scope-strip span { flex: 1; }
.capability-scope-strip .capability-model-inline { flex: 0 0 auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.capability-model-inline b { color: var(--blue); }
.capability-model-inline small { color: var(--muted); font-size: inherit; }
.capability-scope-strip .quiet-button { width: auto; min-height: 40px; height: 40px; padding: 0 16px; font-size: 13px; }

.capability-detail { display: grid; gap: 14px; }
.capability-person-header { min-height: 118px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px 22px; }
.capability-person-identity { min-width: 0; display: flex; align-items: center; gap: 14px; }
.capability-person-mark { width: 59px; height: 59px; flex: 0 0 59px; display: grid; place-items: center; padding: 6px; background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(227,237,255,.88)); border: 1px solid rgba(255,255,255,.9); border-radius: 19px; box-shadow: 0 10px 24px rgba(19, 75, 169, .14); }
.capability-person-mark img { width: 100%; height: 100%; object-fit: contain; }
.capability-person-identity p { margin: 0 0 4px; color: var(--muted); font-size: 13px; }
.capability-person-identity h2 { margin: 0; font-size: 23px; letter-spacing: -.025em; }
.capability-person-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.capability-person-tags span { min-height: 25px; display: inline-flex; align-items: center; padding: 3px 9px; color: var(--blue-strong); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-weight: 720; white-space: nowrap; }
.capability-headline-scores { display: flex; align-self: stretch; flex: 0 0 auto; }
.capability-headline-scores > div { width: 158px; display: grid; align-content: center; gap: 2px; padding: 0 17px; border-left: 1px solid var(--hairline); }
.capability-headline-scores span { color: var(--muted); font-size: 12px; }
.capability-headline-scores strong { font-size: 31px; line-height: 1; letter-spacing: -.04em; }
.capability-headline-scores small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.capability-headline-scores .accent strong, .capability-headline-scores .accent small { color: var(--blue); }

.capability-portrait-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 286px; gap: 14px; align-items: stretch; }
.capability-chart-card, .capability-decision-rail, .capability-trend-card, .capability-measure-card { padding: 18px; }
.capability-chart-card > header, .capability-trend-card > header, .capability-measure-card > header { min-height: 42px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.capability-chart-card header span, .capability-trend-card header span, .capability-measure-card header span { color: var(--muted); font-size: 12px; }
.capability-chart-card h3, .capability-trend-card h3, .capability-measure-card h3 { margin: 3px 0 0; font-size: 18px; letter-spacing: -.015em; }
.capability-chart-card header > strong, .capability-trend-card header > strong, .capability-measure-card header > strong { color: var(--blue); font-size: 13px; }
.capability-chart-card canvas { display: block; width: 100%; height: 320px; }
.capability-chart-legend { display: flex; justify-content: center; gap: 24px; min-height: 22px; color: var(--muted); font-size: 12px; }
.capability-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.capability-chart-legend i { width: 20px; height: 2px; display: inline-block; background: var(--blue); }
.capability-chart-legend i.person::after { content: ""; width: 6px; height: 6px; display: block; margin: -2px auto 0; background: var(--blue); border-radius: 50%; }
.capability-chart-legend i.average { height: 0; background: none; border-top: 2px dashed #8794a7; }

.capability-decision-rail { display: grid; align-content: start; gap: 14px; background: linear-gradient(160deg, color-mix(in srgb, var(--surface-strong) 86%, transparent), color-mix(in srgb, var(--blue-soft) 34%, var(--surface))); }
.capability-decision-rail > section + section { padding-top: 13px; border-top: 1px solid var(--hairline); }
.capability-recommendation { min-height: 132px; padding: 18px; color: #fff; background: linear-gradient(145deg, #0870f7, #034fc7); border-radius: 20px; box-shadow: 0 14px 26px rgba(5, 99, 245, .18); }
.capability-recommendation span { font-size: 12px; opacity: .82; }
.capability-recommendation strong { display: block; margin-top: 6px; font-size: 24px; line-height: 1.18; }
.capability-recommendation p { margin: 8px 0 0; font-size: 12px; line-height: 1.55; opacity: .88; }
.capability-recommendation[data-code="attention"], .capability-recommendation[data-code="not_recommended"] { background: linear-gradient(145deg, #d48108, #a85a00); }
.capability-recommendation[data-code="insufficient"] { background: linear-gradient(145deg, #778397, #556071); }
.capability-rail-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.capability-rail-heading span { font-size: 16px; font-weight: 780; }
.capability-rail-heading small { color: var(--muted); font-size: 12px; }
.capability-bonus-list { display: grid; gap: 6px; margin: 0; }
.capability-bonus-list > div { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 11px; background: color-mix(in srgb, var(--control) 72%, transparent); border-radius: 12px; }
.capability-bonus-list dt { min-width: 0; color: var(--muted); font-size: 14px; line-height: 1.35; }
.capability-bonus-list dd { margin: 0; color: var(--blue); font-size: 14px; font-weight: 780; white-space: nowrap; }
.capability-bonus-list dd.negative { color: var(--red); }
.capability-attention-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.capability-attention-list li { padding: 9px 11px; color: var(--muted); background: color-mix(in srgb, var(--control) 72%, transparent); border-radius: 12px; font-size: 13px; line-height: 1.45; }
.capability-attention-list li.clear { color: var(--green); }

.capability-insight-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr); gap: 14px; }
.capability-trend-card canvas { display: block; width: 100%; height: 190px; margin-top: 3px; }
.capability-trend-card > p, .capability-measure-card > p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.capability-measure-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 12px 0 8px; }
.capability-measure-card dl > div { padding: 11px; background: color-mix(in srgb, var(--control) 74%, transparent); border-radius: 13px; }
.capability-measure-card dt { color: var(--muted); font-size: 12px; }
.capability-measure-card dd { margin: 5px 0 0; font-size: 18px; font-weight: 780; }
.capability-measure-card dd small { margin-left: 3px; color: var(--muted); font-size: 11px; font-weight: 600; }

.capability-empty { padding: 48px 24px; text-align: center; }
.capability-empty strong { font-size: 17px; }
.capability-empty p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.capability-roster-panel { overflow: hidden; }
.capability-roster-table tbody tr { cursor: pointer; }
.capability-roster-table tbody tr:hover, .capability-roster-table tbody tr.selected { background: var(--blue-soft); }
.capability-roster-table td strong, .capability-roster-table td small { display: block; }
.capability-roster-table td small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.capability-level-pill, .capability-recommendation-pill { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; color: var(--blue-strong); background: var(--blue-soft); border-radius: 999px; font-size: 12px; font-weight: 740; white-space: nowrap; }
.capability-level-pill.level-5, .capability-recommendation-pill.not_recommended { color: var(--red); background: var(--red-soft); }
.capability-level-pill.unrated { color: var(--muted); background: var(--control); }
.capability-recommendation-pill.attention { color: #995d00; background: rgba(218,137,0,.1); }
.capability-model-note { margin: 0 8px 8px; color: var(--muted); font-size: 12px; line-height: 1.55; text-align: center; }

@media (max-width: 1320px) {
  .capability-filter-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .capability-search-field { grid-column: span 2; }
  .capability-portrait-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .capability-decision-rail { grid-column: 1 / -1; grid-template-columns: minmax(220px, .85fr) 1fr 1fr; }
  .capability-decision-rail > section + section { padding: 0 0 0 14px; border-top: 0; border-left: 1px solid var(--hairline); }
}

@media (max-width: 920px) {
  .capability-command-heading, .capability-person-header { align-items: stretch; flex-direction: column; }
  .capability-model-stamp { text-align: left; }
  .capability-filter-grid { grid-template-columns: 1fr 1fr; }
  .capability-search-field { grid-column: 1 / -1; }
  .capability-headline-scores > div { flex: 1; width: auto; border: 0; border-top: 1px solid var(--hairline); padding: 12px 0 0; }
  .capability-headline-scores { gap: 20px; }
  .capability-portrait-grid, .capability-insight-grid { grid-template-columns: 1fr; }
  .capability-decision-rail { grid-column: auto; grid-template-columns: 1fr; }
  .capability-decision-rail > section + section { padding: 13px 0 0; border-top: 1px solid var(--hairline); border-left: 0; }
}

@media (max-width: 560px) {
  .capability-command-panel, .capability-person-header, .capability-chart-card, .capability-decision-rail, .capability-trend-card, .capability-measure-card { padding: 15px; }
  .capability-measure-card dl { grid-template-columns: 1fr; }
  .capability-filter-grid input, .capability-filter-grid select { min-height: 44px; height: 44px; }
  .capability-scope-strip { align-items: flex-start; flex-direction: column; }
  .capability-headline-scores { flex-direction: column; gap: 8px; }
  .capability-chart-card canvas { height: 285px; }
}

@media (max-width: 420px) {
  .capability-filter-grid { grid-template-columns: 1fr; }
  .capability-search-field { grid-column: auto; }
}
