:root {
  --bg: #f3f6f4;
  --surface: #ffffff;
  --surface-soft: #edf3ef;
  --ink: #1d2722;
  --muted: #647069;
  --line: #dce4df;
  --primary: #1f6048;
  --primary-dark: #174a38;
  --primary-soft: #dcece4;
  --coral: #d65f46;
  --coral-soft: #f8e3de;
  --gold: #d89b2b;
  --gold-soft: #f7ecd5;
  --blue: #3e6e8c;
  --blue-soft: #e1edf3;
  --shadow: 0 8px 24px rgba(24, 52, 39, .08);
  --sidebar: 248px;
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  letter-spacing: 0;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); }
body { min-width: 320px; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(31, 96, 72, .2);
  outline-offset: 2px;
}
svg { width: 18px; height: 18px; stroke-width: 2; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--sidebar); z-index: 10;
  background: #17382e; color: #fff; padding: 18px 14px;
  display: flex; flex-direction: column;
}
.brand { height: 56px; display: flex; align-items: center; gap: 11px; padding: 0 8px; }
.brand img { border: 1px solid rgba(255,255,255,.18); border-radius: 8px; }
.brand strong { display: block; font-size: 18px; line-height: 1.2; }
.brand span { display: block; margin-top: 3px; font-size: 11px; color: rgba(255,255,255,.64); }
.nav-list { display: grid; gap: 5px; margin-top: 28px; }
.nav-item {
  width: 100%; min-height: 44px; border: 0; border-radius: 6px; padding: 0 12px;
  color: rgba(255,255,255,.72); background: transparent;
  display: flex; align-items: center; gap: 11px; text-align: left;
}
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-item.active { color: #fff; background: rgba(255,255,255,.13); }
.nav-item.active svg { color: #efb954; }
.sidebar-footer { margin-top: auto; display: grid; gap: 12px; }
.sync-panel {
  min-height: 60px; padding: 10px 12px; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; align-items: center; gap: 10px;
}
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: #65c18c; box-shadow: 0 0 0 4px rgba(101,193,140,.12); flex: 0 0 auto; }
.status-dot.offline { background: #efb954; box-shadow: 0 0 0 4px rgba(239,185,84,.12); }
.sync-panel strong, .sync-panel span { display: block; }
.sync-panel strong { font-size: 12px; }
.sync-panel div span { margin-top: 3px; color: rgba(255,255,255,.56); font-size: 11px; }

.main-panel { grid-column: 2; min-width: 0; }
.topbar {
  position: sticky; top: 0; z-index: 8; height: 70px; padding: 0 28px;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px);
}
.topbar-context, .topbar-actions { display: flex; align-items: center; gap: 10px; }
.tenant-select {
  max-width: 220px; border: 0; background: transparent; color: var(--ink); font-weight: 700; padding: 8px 26px 8px 4px;
}
.context-select {
  height: 34px; max-width: 150px; border: 1px solid var(--line); border-radius: 6px;
  background: var(--surface); color: var(--ink); padding: 0 28px 0 9px; font-size: 12px; font-weight: 700;
}
.class-select { max-width: 140px; }
.context-select:disabled { color: var(--muted); background: #f4f6f5; cursor: not-allowed; }
.class-chip, .pill {
  display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px;
  border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--surface);
  font-size: 12px; white-space: nowrap;
}
.icon-button {
  width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 6px;
  background: var(--surface); color: var(--ink); display: inline-grid; place-items: center; flex: 0 0 auto;
}
.icon-button:hover { border-color: #b7c9bf; color: var(--primary); background: var(--surface-soft); }
.identity-button {
  min-width: 118px; height: 42px; padding: 0 10px; border: 1px solid #cbd9d1; border-radius: 6px;
  background: var(--surface-soft); color: var(--ink); display: flex; align-items: center; gap: 8px; text-align: left;
}
.identity-button > span, .identity-button strong, .identity-button small { display: block; min-width: 0; }
.identity-button strong { max-width: 82px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.identity-button small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.identity-button:hover { border-color: #9fbcae; background: var(--primary-soft); }

.view-root { max-width: 1440px; margin: 0 auto; padding: 28px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-heading h1 { margin: 4px 0 0; font-size: 28px; line-height: 1.25; }
.page-heading p { max-width: 680px; margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.eyebrow { color: var(--primary); font-size: 12px; font-weight: 800; }
.heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.settings-mobile-save { display: none; }

.primary-button, .secondary-button, .danger-button, .text-button {
  min-height: 40px; border-radius: 6px; padding: 0 14px; border: 1px solid transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700;
}
.primary-button { color: #fff; background: var(--primary); }
.primary-button:hover { background: var(--primary-dark); }
.secondary-button { color: var(--ink); background: #fff; border-color: var(--line); }
.secondary-button:hover { border-color: #b7c9bf; background: var(--surface-soft); }
.danger-button { color: #9a352f; background: #fff; border-color: #e4c4c0; }
.danger-button:hover { color: #7f2823; border-color: #d5a09a; background: #fff5f4; }
.text-button { min-height: 34px; padding: 0 8px; color: var(--primary); background: transparent; }
.text-button:hover { background: var(--primary-soft); }

.teaching-calendar { padding: 2px 0 4px; }
.calendar-heading { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.calendar-heading h2 { margin: 3px 0 0; font-size: 17px; }
.calendar-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; min-width: 0; }
.calendar-day { position: relative; min-width: 0; min-height: 92px; padding: 11px 12px 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); display: grid; grid-template-columns: auto minmax(0,1fr); gap: 5px 10px; text-align: left; }
.calendar-day:hover { border-color: #9bb6a7; background: #f8fbf9; }
.calendar-day.selected { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.calendar-day.completed { background: #f7faf8; }
.calendar-date { display: grid; align-content: start; }
.calendar-date b { font-size: 12px; color: var(--primary); }
.calendar-date small { margin-top: 2px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.calendar-activity { min-width: 0; }
.calendar-activity strong, .calendar-activity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-activity strong { font-size: 12px; }
.calendar-activity small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.calendar-status { grid-column: 1 / -1; color: var(--muted); font-size: 10px; font-weight: 700; }
.calendar-day.selected .calendar-status { color: var(--primary); }
.calendar-day.completed .calendar-status { color: var(--blue); }
.calendar-meter { position: absolute; inset: auto 0 0; height: 4px; background: #e7ece9; }
.calendar-meter span { display: block; height: 100%; background: var(--gold); transition: width .2s; }
.calendar-day.selected .calendar-meter span { background: var(--primary); }
.calendar-day.completed .calendar-meter span { width: 100% !important; background: var(--blue); }

.grid-main { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.stack { display: grid; gap: 16px; min-width: 0; }
.grid-main > *, .stack > *, .panel { min-width: 0; }
.panel {
  background: var(--surface); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 1px 2px rgba(23,56,46,.03);
}
.panel-header { min-height: 60px; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.panel-header h2, .panel-header h3 { margin: 0; font-size: 16px; }
.panel-body { padding: 18px; }
.hero-band {
  position: relative; overflow: hidden; min-height: 170px; padding: 26px;
  background: #214f3f; color: #fff; border-radius: 8px;
  display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px;
}
.hero-band::after {
  content: ""; position: absolute; width: 260px; height: 260px; right: 80px; top: -130px;
  border: 46px solid rgba(255,255,255,.06); border-radius: 50%;
}
.hero-band .eyebrow { color: #f2c56b; }
.hero-band h1 { max-width: 650px; margin: 8px 0; font-size: 28px; line-height: 1.3; }
.hero-band p { max-width: 700px; margin: 0; color: rgba(255,255,255,.72); line-height: 1.65; }
.hero-metrics { align-self: center; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; z-index: 1; }
.hero-metric { min-height: 78px; padding: 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 6px; background: rgba(255,255,255,.07); }
.hero-metric strong, .hero-metric span { display: block; }
.hero-metric strong { font-size: 22px; }
.hero-metric span { margin-top: 5px; font-size: 11px; color: rgba(255,255,255,.64); }

.progress-row { display: flex; align-items: center; gap: 10px; }
.progress-track { height: 8px; flex: 1; overflow: hidden; border-radius: 4px; background: #e5ebe7; }
.progress-fill { height: 100%; border-radius: inherit; background: var(--primary); }
.progress-fill.coral { background: var(--coral); }
.progress-fill.gold { background: var(--gold); }
.progress-fill.blue { background: var(--blue); }
.progress-row span { min-width: 38px; color: var(--muted); font-size: 12px; text-align: right; }

.step-list { display: grid; }
.step-item { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.step-item:last-child { border-bottom: 0; }
.step-index { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-soft); color: var(--primary); font-weight: 800; }
.step-content h3 { margin: 0; font-size: 15px; }
.step-content p { margin: 5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.step-meta { color: var(--muted); font-size: 12px; white-space: nowrap; }

.check-list, .material-list { display: grid; gap: 10px; }
.check-row, .material-row { display: grid; align-items: center; gap: 8px; min-height: 44px; }
.check-row { grid-template-columns: 24px minmax(0,1fr) auto; }
.material-row { grid-template-columns: 20px 24px minmax(0,1fr) auto; }
.check-row input, .material-row input { width: 17px; height: 17px; margin: 0; accent-color: var(--primary); }
.check-row span, .material-row span { font-size: 13px; }
.material-row b { font-size: 12px; color: var(--muted); font-weight: 600; }
.material-swatch { width: 22px; height: 22px; border-radius: 5px; background: var(--gold-soft); display: grid; place-items: center; color: var(--gold); }
.material-swatch svg { width: 14px; height: 14px; }

.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.choice-card {
  min-height: 152px; padding: 16px; border: 1px solid var(--line); border-radius: 7px;
  background: #fff; text-align: left; color: var(--ink);
}
.choice-card:hover { border-color: #99b7a7; box-shadow: var(--shadow); }
.choice-card.selected { border: 2px solid var(--primary); padding: 15px; background: #f7fbf8; }
.choice-card strong { display: block; margin: 8px 0 5px; }
.choice-card p { min-height: 42px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.choice-card .choice-meta { margin-top: 12px; display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.choice-icon { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.choice-card-top { min-height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.recommend-badge { min-height: 25px; padding: 4px 7px; border-radius: 5px; display: inline-flex; align-items: center; gap: 4px; color: #745313; background: var(--gold-soft); font-size: 10px; font-weight: 800; }
.recommend-badge svg, .choice-evidence svg { width: 13px; height: 13px; }
.choice-evidence { min-height: 28px; margin-top: 10px; padding: 6px 8px; border-radius: 5px; display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; line-height: 1.4; }
.choice-evidence.ready { color: var(--primary); background: var(--primary-soft); }
.choice-evidence.waiting { color: #8a4b3e; background: var(--coral-soft); }
.choice-card[aria-disabled="true"] { border-style: dashed; background: #fafbfa; }
.choice-card[aria-disabled="true"] .choice-icon { color: var(--muted); background: #edf0ee; }

.notice { display: flex; align-items: flex-start; gap: 10px; padding: 13px 14px; border: 1px solid #edd49d; border-radius: 6px; background: var(--gold-soft); color: #684d17; font-size: 13px; line-height: 1.5; }
.notice svg { flex: 0 0 auto; margin-top: 1px; }
.sync-health-notice strong { display: block; margin-bottom: 3px; }
.sync-health-notice.synced { border-color: #c7d8cf; background: var(--primary-soft); color: var(--primary-dark); }
.sync-health-notice.conflict, .sync-health-notice.auth, .sync-health-notice.stalled { border-color: #efc4bb; background: var(--coral-soft); color: #7a3f35; }
.sync-transfer-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 2px 0 8px; }
.sync-transfer-heading strong, .sync-transfer-heading small { display: block; }
.sync-transfer-heading strong { color: #30463c; font-size: 13px; }
.sync-transfer-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.sync-transfer-heading > b { color: var(--primary); font-size: 20px; }
.sync-transfer-track { height: 8px; overflow: hidden; background: #e7ece9; }
.sync-transfer-track > span { display: block; height: 100%; background: var(--primary); transition: width .2s ease; }
.sync-transfer-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 10px 0 5px; border: 1px solid var(--line); }
.sync-transfer-metrics > span { min-width: 0; padding: 8px 5px; border-right: 1px solid var(--line); color: var(--muted); text-align: center; font-size: 9px; line-height: 1.35; }
.sync-transfer-metrics > span:last-child { border-right: 0; }
.sync-transfer-metrics strong { display: block; margin-bottom: 2px; overflow-wrap: anywhere; color: #31473d; font-size: 13px; }

.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.stat-card { min-height: 118px; padding: 17px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.stat-card .stat-top { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 12px; }
.stat-card strong { display: block; margin-top: 14px; font-size: 27px; }
.stat-card small { display: block; margin-top: 5px; color: var(--muted); }
.stat-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--primary); background: var(--primary-soft); }

.timeline { position: relative; display: grid; grid-template-columns: repeat(4, minmax(180px,1fr)); gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.week-card { min-height: 208px; padding: 16px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.week-card.current { border-color: var(--primary); box-shadow: inset 0 3px 0 var(--primary); }
.week-card .week-number { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.week-card h3 { margin: 14px 0 8px; font-size: 16px; }
.week-card p { margin: 0; min-height: 58px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.week-tags, .tag-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.tag { min-height: 24px; padding: 3px 8px; border-radius: 999px; background: var(--surface-soft); color: #52645b; font-size: 11px; }

.heatmap { display: grid; grid-template-columns: 84px repeat(4, minmax(80px,1fr)); gap: 6px; align-items: stretch; }
.heat-head, .heat-label, .heat-cell { min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 5px; font-size: 12px; }
.heat-head { color: var(--muted); font-weight: 700; }
.heat-label { justify-content: flex-start; font-weight: 700; }
.heat-cell { background: #edf2ef; color: #3f5349; }
.heat-cell.level-2 { background: #cfe4d8; }
.heat-cell.level-3 { background: #83b59e; color: #153b2d; }
.heat-cell.level-4 { background: var(--primary); color: #fff; }

.observation-list { display: grid; gap: 10px; }
.observation-row {
  display: grid; grid-template-columns: 52px minmax(0,1fr) auto; gap: 12px; align-items: start;
  padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff;
}
.child-avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--blue-soft); color: var(--blue); font-weight: 800; }
.observation-row h3 { margin: 0; font-size: 14px; }
.observation-row p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.observation-row.structured blockquote { margin: 7px 0 8px; padding: 8px 10px; border-left: 3px solid var(--blue); background: var(--blue-soft); font-size: 13px; line-height: 1.55; }
.observation-row.structured p { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 5px; }
.observation-row.structured p b { color: var(--ink); font-size: 11px; }
.observation-time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.observation-review-summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.7fr); gap: 24px; align-items: center; margin: 0 0 18px; padding: 18px 22px; border-left: 4px solid var(--gold); background: #f8f6ef; }
.observation-review-summary h2 { margin: 5px 0 6px; font-size: 18px; }
.observation-review-summary p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.observation-review-summary-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.observation-review-summary-metrics > div { min-width: 0; padding: 4px 10px; border-left: 1px solid #ddd8c5; }
.observation-review-summary-metrics > div:first-child { border-left: 0; }
.observation-review-summary-metrics strong, .observation-review-summary-metrics span { display: block; }
.observation-review-summary-metrics strong { color: var(--primary); font-size: 21px; }
.observation-review-summary-metrics span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.observation-review-ledger { margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line); }
.observation-review-ledger-heading { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.observation-review-ledger-heading strong { font-size: 12px; }
.observation-review-ledger-heading > small { color: var(--gold-strong); font-weight: 700; }
.observation-review-ledger > p { display: block !important; margin: 7px 0 0 !important; color: var(--muted); font-size: 12px; }
.observation-review-row-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.observation-review-row-actions button { min-height: 34px; padding: 7px 10px; font-size: 11px; }
.observation-review-history { margin-top: 8px; }
.observation-review-history summary { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; cursor: pointer; }
.observation-review-history summary svg { width: 14px; height: 14px; }
.observation-review-history > div { display: grid; gap: 5px; margin-top: 7px; padding-left: 7px; border-left: 2px solid var(--line); }
.observation-review-history > div span { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; }
.observation-review-history > div small { color: var(--muted); }


.evidence-summary-band { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(360px,.65fr); gap: 28px; align-items: center; margin-bottom: 18px; padding: 20px 22px; border-left: 4px solid var(--primary); background: #eef6f2; }
.evidence-summary-band h2 { margin: 6px 0 8px; font-size: 18px; line-height: 1.55; }
.evidence-summary-band p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.evidence-summary-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.evidence-summary-metrics div { min-width: 0; padding: 4px 12px; border-left: 1px solid #cddfd6; }
.evidence-summary-metrics div:first-child { border-left: 0; }
.evidence-summary-metrics strong, .evidence-summary-metrics span { display: block; }
.evidence-summary-metrics strong { color: var(--primary); font-size: 22px; }
.evidence-summary-metrics span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.learning-evidence-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 18px; align-items: start; }
.signal-insight-list { padding-top: 4px; padding-bottom: 4px; }
.signal-insight-row { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 9px; padding: 13px 0; border-top: 1px solid var(--line); }
.signal-insight-row:first-child { border-top: 0; }
.signal-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 5px; color: var(--blue); background: var(--blue-soft); }
.signal-icon svg { width: 15px; height: 15px; }
.signal-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.signal-heading strong { font-size: 13px; }
.signal-insight-row p { margin: 6px 0; font-size: 12px; line-height: 1.55; }
.signal-insight-row small { color: var(--muted); }
.empty-inline { min-height: 82px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--muted); font-size: 12px; }
.empty-inline svg { width: 18px; height: 18px; }
.learning-insight-section, .weekly-report-section { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.section-heading-wide { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.section-heading-wide h2 { margin: 5px 0 0; font-size: 18px; }
.section-heading-wide > span { color: var(--muted); font-size: 11px; }
.child-insight-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.child-insight-card { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.child-insight-heading { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.child-insight-heading h3 { margin: 0; font-size: 14px; }
.child-insight-heading small { display: block; margin-top: 3px; color: var(--muted); }
.child-insight-card p { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.weekly-report-section { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.weekly-report-content { display: grid; grid-template-columns: .9fr 1.1fr; gap: 30px; padding: 18px 20px; background: #fff; border-left: 4px solid var(--gold); }
.weekly-report-content > div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.weekly-report-content h3 { margin: 0 0 9px; font-size: 14px; }
.weekly-report-content p { margin: 0; font-size: 13px; line-height: 1.7; }
.weekly-report-content small { display: block; margin-top: 12px; color: var(--muted); line-height: 1.55; }
.weekly-report-content ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.weekly-report-content li { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 9px; align-items: start; }
.weekly-report-content li > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: 11px; font-weight: 800; }
.weekly-report-content li p { margin: 1px 0 0; font-size: 12px; line-height: 1.6; }

.review-table { width: 100%; border-collapse: collapse; }
.review-table th, .review-table td { padding: 13px 12px; border-bottom: 1px solid var(--line); text-align: left; font-size: 13px; vertical-align: middle; }
.review-table th { color: var(--muted); font-size: 11px; font-weight: 700; }
.review-table tr:last-child td { border-bottom: 0; }
.status-badge { display: inline-flex; min-height: 25px; align-items: center; padding: 2px 8px; border-radius: 999px; font-size: 11px; }
.status-badge.green { color: #1d6548; background: var(--primary-soft); }
.status-badge.yellow { color: #7c5712; background: var(--gold-soft); }
.status-badge.red { color: #9a3728; background: var(--coral-soft); }

.bar-chart { display: grid; gap: 13px; }
.bar-row { display: grid; grid-template-columns: 88px minmax(0,1fr) 50px; align-items: center; gap: 10px; font-size: 12px; }
.bar-track { height: 18px; border-radius: 4px; background: #edf1ef; overflow: hidden; }
.bar-fill { height: 100%; border-radius: 4px; background: var(--primary); }

.settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.setting-section { padding: 18px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.setting-section h2 { margin: 0 0 14px; font-size: 16px; }
.setting-section p { margin: -7px 0 15px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.settings-quick-nav { margin: 0 0 16px; padding: 15px 0; border-block: 1px solid var(--line); background: rgba(255,255,255,.96); }
.settings-quick-nav-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.settings-quick-nav-heading h2 { margin: 3px 0 0; font-size: 16px; }
.settings-quick-nav-heading > small { color: var(--muted); font-size: 10px; }
.settings-quick-nav-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.settings-quick-nav-list button { min-width: 0; min-height: 56px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); display: grid; grid-template-columns: 20px minmax(0,1fr) 14px; align-items: center; gap: 8px; text-align: left; }
.settings-quick-nav-list button:hover, .settings-quick-nav-list button.active { border-color: #8fb6a2; background: var(--primary-soft); color: var(--primary-dark); }
.settings-quick-nav-list button > svg { width: 18px; height: 18px; color: var(--primary); }
.settings-quick-nav-list button > svg:last-child { width: 13px; height: 13px; color: var(--muted); }
.settings-quick-nav-list strong, .settings-quick-nav-list small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-quick-nav-list strong { font-size: 12px; }
.settings-quick-nav-list small { margin-top: 3px; color: var(--muted); font-size: 9px; }
#settingsOrganization, #settingsRoster, #settingsConditions, #settingsCurriculum, #settingsInventory, #settingsAccounts, #settingsSync, #settingsRuntime { scroll-margin-top: 86px; }
.settings-target-highlight { animation: settings-target-highlight 1.45s ease-out; }
@keyframes settings-target-highlight {
  0%, 35% { box-shadow: 0 0 0 3px rgba(31,96,72,.22); border-color: #76a98f; }
  100% { box-shadow: none; }
}

/* V178 role command summaries */
.management-command-summary { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.management-command-summary > header { padding: 21px 23px; display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.management-command-summary h2 { margin: 5px 0 0; font-size: 21px; }
.management-command-summary header p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.management-command-state { flex: 0 0 auto; min-height: 34px; padding: 6px 10px; border-radius: 6px; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800; }
.management-command-state.stable { color: var(--primary); border: 1px solid #acd0bd; background: var(--primary-soft); }
.management-command-state.attention { color: #8b4a16; border: 1px solid #e2c084; background: var(--gold-soft); }
.management-command-metrics { border-block: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.management-command-metrics > div { min-height: 76px; padding: 13px 18px; border-right: 1px solid var(--line); display: grid; align-content: center; gap: 4px; }
.management-command-metrics > div:last-child { border-right: 0; }
.management-command-metrics strong { font-size: 22px; }
.management-command-metrics span { color: var(--muted); font-size: 11px; }
.management-guide-supply { min-height: 64px; padding: 11px 18px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.management-guide-supply > span { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; }
.management-guide-supply.ready > span { color: var(--primary); background: var(--primary-soft); }
.management-guide-supply.attention > span { color: #8b4a16; background: var(--gold-soft); }
.management-guide-supply div { min-width: 0; display: grid; gap: 3px; }
.management-guide-supply strong { font-size: 13px; }
.management-guide-supply small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.management-guide-supply > b { color: var(--primary); font-size: 18px; }
.cross-class-priority-queue { border-bottom: 1px solid var(--line); background: #f8faf9; }
.cross-class-priority-queue > header { padding: 12px 18px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.cross-class-priority-queue > header div { display: grid; gap: 3px; }
.cross-class-priority-queue > header strong { font-size: 12px; }
.cross-class-priority-queue > header small { color: var(--muted); font-size: 10px; }
.cross-class-priority-queue ol { margin: 0; padding: 0 18px 10px; list-style: none; }
.cross-class-priority-queue li { min-height: 46px; padding: 7px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 24px minmax(0,1fr) auto 34px; align-items: center; gap: 10px; }
.cross-class-priority-queue li > div { min-width: 0; display: grid; gap: 3px; }
.cross-class-priority-queue li strong { font-size: 11px; }
.cross-class-priority-queue li small { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.organization-inspection-route { border-bottom: 1px solid var(--line); background: #f4f8f5; }
.organization-inspection-route > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 14px 18px 11px; }
.organization-inspection-route > header div { display: grid; gap: 3px; }
.organization-inspection-route > header strong { color: #274b3b; font-size: 13px; }
.organization-inspection-route-coverage { display: inline-flex; align-items: center; gap: 5px; width: max-content; max-width: 100%; margin-top: 3px; padding: 3px 6px; color: #416b56; background: #e6f0e9; font-size: 8px; line-height: 1.35; overflow-wrap: anywhere; }
.organization-inspection-route-coverage svg { flex: 0 0 auto; width: 12px; height: 12px; }
.organization-inspection-route > header small { max-width: 290px; color: var(--muted); font-size: 10px; line-height: 1.45; text-align: right; }
.organization-inspection-route ol { display: grid; gap: 8px; margin: 0; padding: 0 18px 13px; list-style: none; }
.organization-inspection-route-item { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 68px; padding: 10px; border: 1px solid #dce8e0; border-left: 3px solid #7ba88c; background: #fff; }
.organization-inspection-route-item.priority-1 { border-left-color: #b45b45; }
.organization-inspection-route-item.priority-2 { border-left-color: #b58a37; }
.organization-inspection-route-rank { display: grid; place-items: center; width: 26px; height: 26px; color: #fff; background: #548268; font-size: 11px; font-weight: 800; }
.organization-inspection-route-item.priority-1 .organization-inspection-route-rank { background: #a8493f; }
.organization-inspection-route-item.priority-2 .organization-inspection-route-rank { background: #9b7429; }
.organization-inspection-route-item > div { min-width: 0; }
.organization-inspection-route-item header { display: flex; align-items: center; gap: 7px; min-width: 0; }
.organization-inspection-route-item header strong { min-width: 0; color: #2b4036; font-size: 12px; overflow-wrap: anywhere; }
.organization-inspection-route-item header span { flex: 0 0 auto; padding: 2px 5px; color: #537363; background: #edf5ef; font-size: 8px; font-weight: 800; }
.organization-inspection-route-item small { display: block; margin-top: 3px; color: #6c7a73; font-size: 9px; line-height: 1.35; overflow-wrap: anywhere; }
.organization-inspection-route-item p { margin: 4px 0 0; color: #485f53; font-size: 9px; line-height: 1.42; overflow-wrap: anywhere; }
.organization-inspection-route-item p b { color: #32624c; }
.organization-inspection-route-item .secondary-button { min-height: 32px; white-space: nowrap; font-size: 9px; }
.organization-inspection-route-readonly { display: inline-flex; align-items: center; gap: 4px; color: #718078; font-size: 9px; white-space: nowrap; }
.organization-inspection-route-readonly svg { width: 13px; height: 13px; }
.organization-inspection-route > footer { display: flex; align-items: flex-start; gap: 6px; padding: 10px 18px; border-top: 1px solid #dce8e0; color: #718078; background: #edf4ef; font-size: 8.5px; line-height: 1.45; }
.organization-inspection-route > footer svg { flex: 0 0 auto; width: 13px; height: 13px; color: #377055; }
.organization-inspection-week { border-bottom: 1px solid var(--line); background: #fbfaf7; }
.organization-inspection-week > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px 9px; }
.organization-inspection-week > header > div { display: grid; gap: 2px; }
.organization-inspection-week > header strong { color: #3d4641; font-size: 12px; }
.organization-inspection-week > header > b { padding: 4px 7px; border: 1px solid #c9d1cc; color: #56615b; background: #fff; font-size: 9px; white-space: nowrap; }
.organization-inspection-week > header > b.complete { border-color: #8fb29d; color: #2f674c; background: #edf5ef; }
.organization-inspection-week > header > b.attention { border-color: #d5bd83; color: #7c5c1b; background: #fff8e9; }
.organization-inspection-week ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0 18px 12px; list-style: none; }
.organization-inspection-week-day { min-width: 0; padding: 8px; border: 1px solid #dddcd5; border-top: 3px solid #aeb8b2; background: #fff; }
.organization-inspection-week-day.current { border-top-color: #3f775b; background: #f5faf7; }
.organization-inspection-week-day time { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; padding-bottom: 5px; border-bottom: 1px solid #e8e6df; }
.organization-inspection-week-day time strong { color: #35443c; font-size: 10px; }
.organization-inspection-week-day time small { color: var(--muted); font-size: 8px; }
.organization-inspection-week-day > div { display: grid; gap: 4px; padding-top: 5px; }
.organization-inspection-week-day > div > span { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.organization-inspection-week-day > div b { min-width: 0; color: #45524b; font-size: 9px; overflow-wrap: anywhere; }
.organization-inspection-week-day > div small { flex: 0 0 auto; color: #7b827e; font-size: 7px; }
.organization-inspection-week > footer { display: grid; gap: 3px; padding: 9px 18px 11px; border-top: 1px solid #e2e0d9; color: #59635d; font-size: 8.5px; line-height: 1.45; }
.organization-inspection-week > footer small { color: #7a817d; font-size: 8px; }
.week-management-actions { border-bottom: 1px solid var(--line); background: #f7faf8; }
.week-management-actions > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 12px 18px 9px; }
.week-management-actions > header > div { display: grid; gap: 2px; }
.week-management-actions > header strong { color: #35443c; font-size: 12px; }
.week-management-actions > header small { color: var(--muted); font-size: 9px; }
.week-management-actions ol { margin: 0; padding: 0 18px 11px; list-style: none; }
.week-management-actions li { min-width: 0; min-height: 48px; padding: 7px 0; border-top: 1px solid #dce5df; display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.week-management-action-kind { width: 78px; padding: 4px 6px; border-left: 3px solid #a0aca5; color: #536059; background: #fff; font-size: 9px; font-weight: 800; text-align: center; }
.week-management-action-kind.exception { border-left-color: #bc6b53; color: #793f30; background: #fff6f2; }
.week-management-action-kind.handoff { border-left-color: #4e8066; color: #315d48; background: #f1f8f4; }
.week-management-actions li > div { min-width: 0; display: grid; gap: 3px; }
.week-management-actions li strong { color: #344139; font-size: 11px; overflow-wrap: anywhere; }
.week-management-actions li small { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.week-management-actions .secondary-button { min-height: 30px; padding-inline: 9px; font-size: 9px; white-space: nowrap; }
.week-management-action-readonly { display: inline-flex; align-items: center; gap: 5px; color: #68736d; font-size: 9px; white-space: nowrap; }
.week-management-action-readonly svg { width: 13px; height: 13px; }
.week-management-actions > p { margin: 0; padding: 12px 18px 14px; border-top: 1px solid #dce5df; display: flex; align-items: center; gap: 8px; color: #496052; font-size: 10px; }
.week-management-actions > p svg { width: 15px; height: 15px; }
.cross-class-rank { width: 22px; height: 22px; border-radius: 50%; color: var(--primary); background: var(--primary-soft); display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.management-timeline-transitions { border-bottom: 1px solid var(--line); background: #fffdf7; }
.management-timeline-transitions > header { padding: 12px 18px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.management-timeline-transitions > header > span { width: 32px; height: 32px; border-radius: 6px; color: #8b6417; background: var(--gold-soft); display: grid; place-items: center; }
.management-timeline-transitions > header div { display: grid; gap: 3px; }
.management-timeline-transitions > header strong { font-size: 12px; }
.management-timeline-transitions > header small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.management-timeline-transitions ul { margin: 0; padding: 0 18px 10px 60px; list-style: none; }
.management-timeline-transitions li { min-height: 42px; padding: 7px 0; border-top: 1px solid #e8ddc5; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.management-timeline-transitions li div { min-width: 0; display: grid; gap: 3px; }
.management-timeline-transitions li strong { font-size: 11px; }
.management-timeline-transitions li small { color: var(--muted); font-size: 9px; }
.management-timeline-transitions .primary-button.compact { min-height: 34px; padding: 7px 10px; font-size: 11px; white-space: nowrap; }
.theme-transition-supervision { min-height: 32px; padding: 6px 9px; border: 1px solid #bfd0c6; border-radius: 6px; color: var(--primary); background: #f5f9f6; display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.theme-transition-supervision svg { width: 14px; height: 14px; }
.management-priority-list { padding: 18px 23px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 20px; }
.management-priority-list > div:first-child > span { color: var(--primary); font-size: 12px; font-weight: 800; }
.management-priority-list ol { margin: 9px 0 0; padding-left: 21px; display: grid; gap: 7px; font-size: 13px; line-height: 1.55; }
.management-command-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.management-depth { margin-top: 18px; }
.management-depth > summary { min-height: 62px; padding: 12px 18px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.management-depth > summary::-webkit-details-marker { display: none; }
.management-depth > summary > span { margin-right: auto; display: grid; gap: 2px; }
.management-depth > summary small { color: var(--muted); font-size: 11px; font-weight: 500; }
.management-depth[open] > summary { border-radius: 8px 8px 0 0; border-color: #b7c9bf; }
.management-depth-content { padding-top: 18px; }

/* V178 teacher digital guide */
.teacher-guide-shell { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.teacher-optional-observation-band {
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface-soft);
}
.teacher-optional-observation-band > header {
  padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
}
.teacher-optional-observation-band h2, .teacher-observation-list-section h2 { margin: 4px 0 0; font-size: 21px; }
.teacher-observation-boundaries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.teacher-observation-boundaries > div { min-width: 0; padding: 18px 22px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 3px 10px; }
.teacher-observation-boundaries > div + div { border-left: 1px solid var(--line); }
.teacher-observation-boundaries span { grid-row: 1 / span 2; width: 32px; height: 32px; border-radius: 6px; color: var(--primary); background: #fff; display: grid; place-items: center; }
.teacher-observation-boundaries strong { font-size: 14px; }
.teacher-observation-boundaries small { color: var(--muted); line-height: 1.5; }
.teacher-observation-list-section { display: grid; gap: 14px; }
.teacher-observation-list-section > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.teacher-observation-list-section > header p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.teacher-observation-list-section > header > strong { color: var(--primary); font-size: 28px; }
.teacher-observation-list-section > header > strong small { margin-left: 3px; color: var(--muted); font-size: 12px; }
.teacher-observation-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.teacher-observation-item { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.teacher-observation-item-heading { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.teacher-observation-item-heading > span { width: 32px; height: 32px; border-radius: 6px; color: var(--primary); background: var(--primary-soft); display: grid; place-items: center; }
.teacher-observation-item-heading strong, .teacher-observation-item-heading small { display: block; }
.teacher-observation-item-heading small, .teacher-observation-item-heading time { color: var(--muted); font-size: 11px; }
.teacher-observation-item-content { margin: 14px 0; font-size: 13px; line-height: 1.65; }
.teacher-observation-item-content blockquote { margin: 0 0 8px; padding: 9px 11px; border-left: 3px solid var(--blue); background: var(--blue-soft); font-weight: 700; }
.teacher-observation-item-content p { margin: 5px 0; }
.teacher-observation-item-content b { margin-right: 7px; color: var(--primary); }
.teacher-observation-item footer { padding-top: 11px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 11px; }
.teacher-observation-item footer span { display: inline-flex; align-items: center; gap: 5px; }
.teacher-observation-empty { grid-column: 1 / -1; min-height: 160px; padding: 28px; border: 1px dashed var(--line); display: grid; place-items: center; align-content: center; gap: 10px; text-align: center; color: var(--muted); }
.teacher-observation-empty > svg { color: var(--primary); }
.teacher-observation-empty strong, .teacher-observation-empty span { display: block; }
.teacher-observation-empty span { margin-top: 5px; font-size: 13px; }

.teacher-theme-completion {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(250px, 320px); gap: 22px; align-items: center;
  padding: 28px; background: #f4f8f5; border-top: 4px solid var(--primary); border-bottom: 1px solid var(--line);
}
.teacher-theme-completion-mark {
  width: 64px; height: 64px; border-radius: 8px; display: grid; place-items: center; color: #fff; background: var(--primary);
}
.teacher-theme-completion-mark svg { width: 30px; height: 30px; }
.teacher-theme-completion-main h2 { margin: 5px 0 8px; font-size: 24px; }
.teacher-theme-completion-main p, .teacher-theme-completion aside p { margin: 0; color: var(--muted); line-height: 1.65; }
.teacher-theme-completion-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.teacher-theme-completion-metrics span { min-width: 0; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.teacher-theme-completion-metrics strong, .teacher-theme-completion-metrics small { display: block; }
.teacher-theme-completion-metrics strong { font-size: 20px; color: var(--primary-dark); }
.teacher-theme-completion-metrics small { margin-top: 3px; color: var(--muted); }
.teacher-theme-completion aside { min-width: 0; padding-left: 22px; border-left: 1px solid var(--line); }
.teacher-theme-completion aside > span, .teacher-theme-completion aside > strong, .teacher-theme-completion aside > small { display: block; }
.teacher-theme-completion aside > span { color: var(--muted); font-size: 12px; }
.teacher-theme-completion aside > strong { margin: 5px 0; font-size: 18px; overflow-wrap: anywhere; }
.teacher-theme-completion aside > small { color: var(--primary); font-weight: 700; }
.teacher-theme-completion aside p { display: flex; align-items: flex-start; gap: 7px; margin-top: 14px; font-size: 12px; }
.teacher-theme-completion aside p svg { flex: 0 0 auto; margin-top: 2px; }
.teacher-theme-completion-actions {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; background: #fff; border-bottom: 1px solid var(--line);
}
.teacher-theme-completion-actions strong, .teacher-theme-completion-actions span { display: block; }
.teacher-theme-completion-actions span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.teacher-theme-completion-actions > div:last-child { display: flex; gap: 8px; flex: 0 0 auto; }
.teacher-guide-header {
  display: flex; align-items: end; justify-content: space-between; gap: 20px;
  padding: 2px 0 4px;
}
.teacher-guide-header h1 { margin: 5px 0 0; font-size: 30px; line-height: 1.25; }
.teacher-guide-header p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.teacher-guide-tabs {
  width: min(100%, 640px); min-height: 48px; padding: 4px; border: 1px solid var(--line); border-radius: 8px;
  background: #fff; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
}
.teacher-guide-tabs button {
  min-width: 0; min-height: 40px; border: 0; border-radius: 5px; background: transparent; color: var(--muted);
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 13px; font-weight: 800;
}
.teacher-guide-tabs button.active { color: #fff; background: var(--primary); }
.teacher-guide-tabs button small { width: 18px; height: 18px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-size: 10px; line-height: 1; }
.teacher-guide-tabs button[data-teacher-guide-finish] { color: var(--primary); }
.teacher-guide-tabs button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-guide-band, .teacher-outdoor-guide, .teacher-day-actions, .teacher-issue-panel {
  border: 1px solid var(--line); border-radius: 8px; background: #fff;
}
.teacher-guide-band > header, .teacher-outdoor-guide > header, .teacher-issue-panel > header {
  padding: 22px 24px 18px; display: flex; align-items: start; justify-content: space-between; gap: 18px;
  border-bottom: 1px solid var(--line);
}
.teacher-guide-band header h2, .teacher-outdoor-guide header h2, .teacher-issue-panel header h2 { margin: 4px 0 0; font-size: 20px; }
.teacher-guide-band header p, .teacher-outdoor-guide header p, .teacher-issue-panel header p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.teacher-no-record {
  flex: 0 0 auto; min-height: 32px; padding: 5px 10px; border: 1px solid #acd0bd; border-radius: 6px;
  color: var(--primary); background: var(--primary-soft); display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800;
}
.teacher-guide-header-tools { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.teacher-guide-header-tools .secondary-button { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.teacher-today-hero {
  min-height: 174px; padding: 25px 28px; border-radius: 8px; color: #fff; background: #1d4c3d;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px;
  box-shadow: var(--shadow);
}
.teacher-today-hero .eyebrow { color: #f1c66e; }
.teacher-today-hero h1 { margin: 6px 0 0; font-size: 32px; line-height: 1.2; }
.teacher-today-hero > div > p { max-width: 730px; margin: 10px 0 0; color: rgba(255,255,255,.8); line-height: 1.7; }
.teacher-today-hero > dl { margin: 0; display: grid; grid-template-columns: repeat(3, 104px); }
.teacher-today-hero > dl > div { min-height: 80px; padding: 11px; border-left: 1px solid rgba(255,255,255,.18); display: grid; align-content: center; }
.teacher-today-hero dt { color: rgba(255,255,255,.65); font-size: 11px; }
.teacher-today-hero dd { margin: 6px 0 0; font-size: 23px; font-weight: 800; }
.teacher-today-hero dd small { margin-left: 3px; font-size: 11px; font-weight: 500; }
.teacher-goal-strip { margin: 20px 24px 0; padding: 15px 17px; border-left: 4px solid var(--gold); background: var(--gold-soft); display: grid; gap: 5px; }
.teacher-goal-strip strong { color: #7d5512; font-size: 11px; }
.teacher-goal-strip span { font-size: 15px; font-weight: 800; line-height: 1.55; }
.teacher-guide-steps { padding: 20px 24px 24px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.teacher-guide-step { min-width: 0; min-height: 224px; padding: 18px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; }
.teacher-guide-step-number { width: 30px; height: 30px; border-radius: 50%; color: #fff; background: var(--primary); display: grid; place-items: center; font-weight: 900; }
.teacher-guide-step-main { display: grid; align-content: start; gap: 10px; }
.teacher-guide-step-main > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.teacher-guide-step h3 { margin: 0; font-size: 16px; }
.teacher-guide-step-main > div > span { color: var(--blue); font-size: 12px; font-weight: 800; white-space: nowrap; }
.teacher-stage-field { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: start; gap: 8px; font-size: 12px; line-height: 1.55; }
.teacher-stage-field > b { color: var(--primary); font-size: 12px; }
.teacher-stage-field > p { margin: 0; color: var(--muted); }
.teacher-stage-say { padding: 10px 11px; border-left: 3px solid var(--blue); background: var(--blue-soft); }
.teacher-stage-say > b { color: var(--blue); }
.teacher-stage-say blockquote { margin: 0; font-size: 13px; font-weight: 800; line-height: 1.6; }
.teacher-guide-annotations { border-top: 1px solid var(--line); background: #fbfcfa; }
.teacher-guide-annotations > summary {
  min-height: 66px; padding: 13px 24px; display: flex; align-items: center; gap: 11px; cursor: pointer; list-style: none;
}
.teacher-guide-annotations > summary::-webkit-details-marker { display: none; }
.teacher-guide-annotations > summary > svg:first-child { color: var(--primary); }
.teacher-guide-annotations > summary > span { min-width: 0; margin-right: auto; display: grid; gap: 3px; }
.teacher-guide-annotations > summary strong { font-size: 14px; }
.teacher-guide-annotations > summary small { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.45; }
.teacher-guide-annotations > summary > b { padding: 4px 8px; border: 1px solid #b9ceda; border-radius: 5px; color: var(--blue); background: var(--blue-soft); font-size: 10px; white-space: nowrap; }
.teacher-guide-annotations > summary > svg:last-child { transition: transform .18s ease; }
.teacher-guide-annotations[open] > summary > svg:last-child { transform: rotate(180deg); }
.teacher-guide-annotation-body { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.teacher-guide-annotation-body > section { min-width: 0; padding: 21px 24px; border-bottom: 1px solid var(--line); }
.teacher-guide-annotation-body > section:nth-child(odd) { border-right: 1px solid var(--line); }
.teacher-guide-annotation-body > section:last-child { grid-column: 1 / -1; border-right: 0; }
.teacher-guide-annotation-body section > header { margin-bottom: 12px; display: grid; gap: 4px; }
.teacher-guide-annotation-body section > header span { color: var(--primary); font-size: 10px; font-weight: 900; }
.teacher-guide-annotation-body section > header h3 { margin: 0; font-size: 15px; line-height: 1.45; }
.teacher-guide-annotation-body p, .teacher-guide-annotation-body li, .teacher-guide-annotation-body dd { overflow-wrap: anywhere; font-size: 12px; line-height: 1.68; }
.teacher-guide-annotation-body section > p { margin: 0 0 12px; color: var(--muted); }
.teacher-annotation-inquiry blockquote { margin: 12px 0; padding: 11px 13px; border-left: 3px solid var(--gold); background: var(--gold-soft); font-size: 12px; line-height: 1.65; }
.teacher-annotation-inquiry blockquote b { margin-right: 7px; color: #7d5512; }
.teacher-annotation-inquiry ol { margin: 12px 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; list-style: none; }
.teacher-annotation-inquiry ol li { min-width: 0; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 7px; }
.teacher-annotation-inquiry ol span { width: 21px; height: 21px; border-radius: 50%; color: #fff; background: var(--primary); display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.teacher-guide-annotation-body h4 { margin: 15px 0 5px; font-size: 12px; }
.teacher-guide-annotation-body ul { margin: 0; padding-left: 18px; }
.teacher-annotation-age dl { margin: 0; display: grid; gap: 0; }
.teacher-annotation-age dl > div { padding: 10px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
.teacher-annotation-age dt { color: var(--blue); font-size: 11px; font-weight: 900; }
.teacher-annotation-age dd { margin: 0; }
.teacher-annotation-child > div, .teacher-annotation-decisions > div { display: grid; gap: 0; }
.teacher-annotation-child article, .teacher-annotation-decisions article { padding: 11px 0; border-top: 1px solid var(--line); }
.teacher-annotation-child article > strong, .teacher-annotation-decisions article > strong { font-size: 12px; line-height: 1.55; }
.teacher-annotation-child article p, .teacher-annotation-decisions article p { margin: 5px 0 0; color: var(--muted); }
.teacher-annotation-child article p b, .teacher-annotation-decisions article small b { margin-right: 6px; color: var(--primary); }
.teacher-annotation-decisions article small { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.teacher-annotation-inference { margin: 13px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); }
.teacher-annotation-inference p { margin: 0; padding: 11px 12px; }
.teacher-annotation-inference p + p { border-left: 1px solid var(--line); }
.teacher-annotation-inference b { display: block; margin-bottom: 4px; color: var(--blue); }
.teacher-annotation-inference p + p b { color: #9a352f; }
.teacher-annotation-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.teacher-annotation-evidence-grid > div { min-width: 0; }
.teacher-annotation-evidence-grid strong { font-size: 12px; }
.teacher-annotation-evidence > small { display: block; margin-top: 14px; padding: 10px 12px; color: var(--muted); background: var(--surface-soft); font-size: 11px; line-height: 1.6; }
.teacher-annotation-evidence > small b { color: var(--primary); }
.teacher-guide-annotations > footer { padding: 12px 24px; color: var(--muted); background: var(--surface-soft); display: flex; align-items: flex-start; gap: 8px; font-size: 11px; line-height: 1.6; }
.teacher-guide-annotations > footer svg { flex: 0 0 auto; color: var(--primary); }
.teacher-goal-reference, .teacher-challenge-options, .teacher-safety-boundary { border-top: 1px solid var(--line); }
.teacher-goal-reference summary, .teacher-challenge-options summary, .teacher-safety-boundary summary {
  min-height: 58px; padding: 12px 24px; display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none;
}
.teacher-goal-reference summary::-webkit-details-marker, .teacher-challenge-options summary::-webkit-details-marker, .teacher-safety-boundary summary::-webkit-details-marker { display: none; }
.teacher-goal-reference summary span, .teacher-challenge-options summary span, .teacher-safety-boundary summary span { min-width: 0; margin-right: auto; display: grid; gap: 2px; }
.teacher-goal-reference summary small, .teacher-challenge-options summary small, .teacher-safety-boundary summary small { color: var(--muted); font-size: 11px; font-weight: 500; }
.teacher-goal-reference ul { margin: 0; padding: 0 24px 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; list-style: none; }
.teacher-goal-reference li { padding: 10px 12px; background: var(--surface-soft); display: grid; grid-template-columns: 42px 1fr; gap: 8px; align-items: start; }
.teacher-goal-reference li span { color: var(--primary); font-size: 12px; font-weight: 800; }
.teacher-goal-reference li p { margin: 0; font-size: 12px; line-height: 1.55; }
.teacher-outdoor-guide { border-top: 4px solid var(--blue); }
.teacher-outdoor-mode { flex: 0 0 auto; min-height: 36px; padding: 3px; border: 1px solid #b9ceda; border-radius: 7px; background: var(--blue-soft); display: grid; grid-template-columns: repeat(3, 36px); gap: 2px; }
.teacher-outdoor-mode button { width: 36px; height: 30px; border: 0; border-radius: 4px; color: var(--blue); background: transparent; font-weight: 900; }
.teacher-outdoor-mode button.active { color: #fff; background: var(--blue); }
.teacher-outdoor-summary { padding: 18px 24px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
.teacher-outdoor-summary > div, .teacher-outdoor-summary > dl { margin: 0; padding: 15px; background: var(--blue-soft); }
.teacher-outdoor-summary > div > span { color: var(--blue); display: inline-flex; gap: 6px; align-items: center; font-size: 11px; font-weight: 800; }
.teacher-outdoor-summary blockquote { margin: 7px 0 0; font-size: 15px; font-weight: 800; line-height: 1.55; }
.teacher-outdoor-summary dl { display: grid; gap: 9px; }
.teacher-outdoor-summary dl > div { display: grid; grid-template-columns: 42px 1fr; gap: 8px; font-size: 12px; line-height: 1.55; }
.teacher-outdoor-summary dt { color: var(--blue); font-weight: 800; }
.teacher-outdoor-summary dd { margin: 0; }
.teacher-sensory-dimensions { padding: 0 24px 16px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.teacher-sensory-dimensions b { margin-right: 4px; font-size: 12px; }
.teacher-sensory-dimensions span { padding: 5px 9px; border: 1px solid #b9ceda; border-radius: 5px; color: #315f79; background: #f4f9fb; font-size: 11px; font-weight: 800; }
.teacher-sensory-dimensions small { color: var(--muted); font-size: 11px; }
.teacher-outdoor-flow { padding: 0 24px 22px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.teacher-outdoor-flow > article { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 25px 1fr; gap: 8px; }
.teacher-outdoor-flow > article > span { width: 24px; height: 24px; border-radius: 50%; color: #fff; background: var(--blue); display: grid; place-items: center; font-size: 11px; font-weight: 900; }
.teacher-outdoor-flow article > div > div { display: flex; justify-content: space-between; gap: 5px; }
.teacher-outdoor-flow strong { font-size: 13px; }
.teacher-outdoor-flow article > div > div small { color: var(--blue); white-space: nowrap; }
.teacher-outdoor-flow p { margin: 7px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.teacher-outdoor-flow article > div > small { font-size: 11px; line-height: 1.5; }
.teacher-challenge-options > div { padding: 0 24px 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.teacher-challenge-options article { padding: 12px; background: var(--surface-soft); }
.teacher-challenge-options article span { color: var(--primary); font-size: 11px; font-weight: 800; }
.teacher-challenge-options article p { margin: 6px 0 0; font-size: 12px; line-height: 1.6; }
.teacher-safety-boundary summary { color: #9a352f; background: #fff8f7; }
.teacher-safety-boundary ul { margin: 0; padding: 0 42px 12px 60px; color: #763a35; font-size: 12px; line-height: 1.65; }
.teacher-safety-boundary > p { margin: 0; padding: 12px 24px; color: var(--muted); background: #f7f8f7; font-size: 11px; line-height: 1.55; }
.teacher-day-actions { min-height: 116px; padding: 18px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; box-shadow: var(--shadow); }
.teacher-day-completion { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 18px; }
.teacher-day-completion > .eyebrow { grid-column: 1; color: var(--muted); }
.teacher-day-completion > strong { grid-column: 1; color: var(--primary); display: inline-flex; align-items: center; gap: 7px; }
.teacher-day-completion > span:last-of-type { grid-column: 1; max-width: 680px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.teacher-day-completion > .teacher-complete-button { grid-column: 2; grid-row: 1 / 4; }
.teacher-day-support-actions { padding-left: 22px; border-left: 1px solid var(--line); display: grid; justify-items: end; gap: 6px; }
.teacher-day-support-actions > span { color: var(--muted); font-size: 11px; }
.teacher-day-support-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px 12px; }
.teacher-day-support-actions .text-button { min-height: 34px; padding: 5px 2px; color: var(--muted); }
.teacher-day-support-actions .text-button:hover { color: var(--primary); }
.teacher-complete-button { min-width: 142px; min-height: 44px; }
.teacher-complete-button:disabled { color: var(--primary); background: var(--primary-soft); cursor: default; }
.teacher-issue-panel { border-left: 4px solid var(--coral); }
.teacher-issue-options { padding: 18px 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.teacher-issue-options button { min-height: 62px; padding: 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; display: flex; align-items: center; justify-content: center; gap: 7px; font-weight: 800; }
.teacher-issue-options button.active { border-color: var(--primary); background: var(--primary-soft); }
.teacher-issue-options button.safety { color: #963d34; border-color: #e5b7b0; background: #fff8f7; }
.teacher-issue-answer { margin: 0 24px 22px; padding: 15px; background: var(--surface-soft); display: grid; grid-template-columns: 26px 1fr; gap: 10px; }
.teacher-issue-answer h3 { margin: 0; font-size: 15px; }
.teacher-issue-answer p { margin: 7px 0 0; font-size: 12px; line-height: 1.6; }
.teacher-week-list { padding: 6px 24px 20px; display: grid; }
.teacher-week-prep-summary { padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--surface-soft); display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
.teacher-week-prep-summary > section { min-width: 0; }
.teacher-week-prep-summary > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.teacher-week-prep-title { display: flex; align-items: center; gap: 9px; }
.teacher-week-prep-title > span { width: 32px; height: 32px; border-radius: 6px; color: var(--primary); background: var(--primary-soft); display: grid; place-items: center; }
.teacher-week-prep-title > div { min-width: 0; display: grid; gap: 2px; }
.teacher-week-prep-title b { font-size: 14px; }
.teacher-week-prep-title small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.teacher-week-prep-materials { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; }
.teacher-week-prep-material { min-width: 0; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 7px; align-items: start; }
.teacher-week-prep-material > svg { width: 17px; height: 17px; color: var(--blue); }
.teacher-week-prep-material > span { min-width: 0; display: grid; gap: 2px; }
.teacher-week-prep-material b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.teacher-week-prep-material small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.teacher-week-safety-list { margin: 12px 0 0; padding: 0; display: grid; gap: 7px; list-style: none; }
.teacher-week-safety-list li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 7px; align-items: start; font-size: 11px; line-height: 1.45; }
.teacher-week-safety-list svg { width: 16px; height: 16px; color: #9a352f; }
.teacher-week-safety-list b { color: var(--muted); font-size: 9px; white-space: nowrap; }
.teacher-week-prep-empty { color: var(--muted); font-size: 11px; }
.teacher-week-prep-boundary { padding: 10px 24px; border-bottom: 1px solid var(--line); color: var(--primary); background: #f5faf7; display: flex; align-items: center; gap: 7px; font-size: 11px; line-height: 1.5; }
.teacher-week-prep-boundary svg { flex: 0 0 auto; width: 16px; height: 16px; }
.teacher-week-day { min-height: 116px; padding: 16px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.teacher-week-day.current { background: linear-gradient(90deg, var(--primary-soft), transparent 70%); }
.teacher-week-date { min-height: 62px; border-right: 1px solid var(--line); display: grid; align-content: center; gap: 3px; }
.teacher-week-date span { color: var(--primary); font-size: 18px; font-weight: 900; }
.teacher-week-date small { color: var(--muted); }
.teacher-week-main > div { display: flex; align-items: center; gap: 8px; }
.teacher-week-main > div > strong { font-size: 16px; }
.teacher-week-main > p { margin: 6px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.teacher-week-main blockquote { margin: 0; color: var(--blue); font-size: 12px; font-weight: 800; }
.teacher-week-prep-line { margin-top: 8px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; font-size: 11px; }
.teacher-week-prep-line span { color: var(--muted); }
.teacher-week-prep-line strong { color: var(--primary); }
.guide-status { padding: 3px 7px; border-radius: 4px; color: var(--blue); background: var(--blue-soft); font-size: 10px; font-weight: 800; }
.guide-status.completed { color: var(--primary); background: var(--primary-soft); }
.teacher-week-actions { display: grid; justify-items: end; gap: 10px; }
.teacher-week-actions dl { margin: 0; display: flex; gap: 18px; }
.teacher-week-actions dl > div { display: grid; gap: 4px; }
.teacher-week-day dt { color: var(--muted); font-size: 10px; }
.teacher-week-day dd { margin: 0; font-size: 12px; font-weight: 800; white-space: nowrap; }
.teacher-week-actions button { min-width: 112px; min-height: 34px; font-size: 12px; }
.teacher-week-guide > footer { padding: 15px 24px; border-top: 1px solid var(--line); color: var(--muted); background: var(--surface-soft); display: flex; gap: 9px; font-size: 12px; line-height: 1.6; }
.teacher-material-layout { padding: 20px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.teacher-material-layout > section { min-width: 0; }
.teacher-guide-section-title { min-height: 44px; display: flex; align-items: center; gap: 9px; }
.teacher-guide-section-title > span { width: 34px; height: 34px; border-radius: 6px; color: var(--primary); background: var(--primary-soft); display: grid; place-items: center; }
.teacher-guide-section-title h3 { margin: 0; font-size: 15px; }
.teacher-guide-section-title p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.teacher-material-list { margin-top: 10px; display: grid; gap: 7px; }
.teacher-material-item { min-height: 55px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 6px; display: grid; grid-template-columns: 30px 1fr auto; gap: 9px; align-items: center; }
.teacher-material-item > span { color: var(--primary); }
.teacher-material-item div { display: grid; gap: 3px; }
.teacher-material-item strong { font-size: 13px; }
.teacher-material-item small { color: var(--muted); font-size: 10px; }
.teacher-material-item > b { color: var(--blue); font-size: 12px; }
.teacher-material-item.attention { border-color: #e2b3ab; background: #fff8f7; }
.teacher-setup-list { margin: 10px 0 0; padding: 15px 15px 15px 34px; background: var(--surface-soft); font-size: 12px; line-height: 1.75; }
.teacher-outdoor-materials { margin: 0 24px 20px; padding: 16px; border: 1px solid #b9ceda; background: #f4f9fb; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
.teacher-outdoor-material-grid { grid-column: 1 / -1; display: grid; grid-template-columns: .8fr 1.2fr; gap: 10px; }
.teacher-outdoor-material-grid > div { padding: 12px; background: #fff; display: grid; gap: 6px; }
.teacher-outdoor-material-grid span { color: var(--blue); font-size: 11px; font-weight: 800; }
.teacher-outdoor-material-grid strong, .teacher-outdoor-material-grid ol { margin: 0; font-size: 12px; line-height: 1.65; }
.teacher-outdoor-material-grid ol { padding-left: 20px; }
.teacher-material-boundary { padding: 14px 24px; border-top: 1px solid var(--line); color: var(--muted); background: var(--surface-soft); display: flex; gap: 8px; font-size: 12px; line-height: 1.6; }
.teacher-preview-notice { min-height: 82px; padding: 15px 20px; border: 1px solid #b9ceda; border-radius: 8px; background: var(--blue-soft); display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.teacher-preview-notice > svg { color: var(--blue); }
.teacher-preview-notice > div { display: grid; gap: 4px; }
.teacher-preview-notice strong { font-size: 14px; }
.teacher-preview-notice span { color: var(--muted); font-size: 12px; }
.teacher-timeline-projection { width: 100%; max-width: 100%; min-width: 0; min-height: 72px; padding: 11px 16px; border: 1px solid var(--line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: 34px minmax(0,1fr) minmax(0,1fr) auto; align-items: center; gap: 13px; overflow: hidden; }
.teacher-timeline-icon { width: 34px; height: 34px; border-radius: 6px; color: var(--primary); background: var(--primary-soft); display: grid; place-items: center; }
.teacher-timeline-projection > div { width: 100%; max-width: 100%; min-width: 0; display: grid; gap: 2px; overflow: hidden; }
.teacher-timeline-projection > div + div { padding-left: 13px; border-left: 1px solid var(--line); }
.teacher-timeline-projection > div span { color: var(--primary); font-size: 9px; font-weight: 800; }
.teacher-timeline-projection > div strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.teacher-timeline-projection > div small { color: var(--muted); font-size: 9px; }
.teacher-timeline-projection > b { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.teacher-timeline-projection > b svg { width: 13px; height: 13px; }
.teacher-timeline-projection > .teacher-calendar-notice { grid-column: 2 / 4; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
.teacher-timeline-projection > .teacher-calendar-notice strong { color: #8a5e14; }
.observe-dialog.optional-mode .evidence-fields label:last-child,
.observe-dialog.optional-mode fieldset { display: none; }
.observe-dialog.optional-mode .evidence-fields { margin-bottom: 4px; }

@media (max-width: 980px) {
  .teacher-today-hero { grid-template-columns: 1fr; }
  .teacher-today-hero > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .teacher-guide-steps { grid-template-columns: 1fr; }
  .teacher-outdoor-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-issue-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .management-command-summary > header { padding: 17px; flex-direction: column; }
  .management-command-state { align-self: flex-start; }
  .management-command-metrics { grid-template-columns: repeat(2, 1fr); }
  .management-command-metrics > div:nth-child(2) { border-right: 0; }
  .management-command-metrics > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .management-priority-list { padding: 17px; grid-template-columns: 1fr; }
  .management-timeline-transitions ul { padding-left: 18px; }
  .management-timeline-transitions > header { grid-template-columns: 32px minmax(0,1fr); }
  .management-timeline-transitions > header > button, .management-timeline-transitions > header > .theme-transition-supervision { grid-column: 1 / -1; width: 100%; justify-content: center; }
  .management-timeline-transitions li { align-items: flex-start; flex-wrap: wrap; }
  .management-command-actions { display: grid; grid-template-columns: 1fr; }
  .cross-class-priority-queue > header { align-items: flex-start; flex-direction: column; }
  .cross-class-priority-queue li { grid-template-columns: 24px minmax(0,1fr) 34px; }
  .cross-class-priority-queue li > .status-badge { grid-column: 2; justify-self: start; }
  .cross-class-priority-queue li > .icon-button { grid-column: 3; grid-row: 1 / span 2; }
  .organization-inspection-route > header { align-items: flex-start; flex-direction: column; }
  .organization-inspection-route > header small { max-width: none; text-align: left; }
  .organization-inspection-route-item { grid-template-columns: 24px minmax(0, 1fr); padding: 9px; }
  .organization-inspection-route-rank { width: 24px; height: 24px; }
  .organization-inspection-route-item .secondary-button, .organization-inspection-route-readonly { grid-column: 2; justify-self: start; }
  .organization-inspection-route > footer { padding: 10px 18px; }
  .organization-inspection-week > header { align-items: flex-start; flex-direction: column; }
  .organization-inspection-week ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organization-inspection-week-day:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .week-management-actions > header { align-items: flex-start; flex-direction: column; }
  .week-management-actions li { grid-template-columns: 68px minmax(0, 1fr); align-items: start; gap: 7px; }
  .week-management-action-kind { width: 68px; }
  .week-management-actions .secondary-button,
  .week-management-action-readonly { grid-column: 2; justify-self: stretch; justify-content: center; min-width: 0; width: 100%; white-space: normal; }
  .teacher-guide-header { align-items: stretch; flex-direction: column; }
  .teacher-guide-header h1 { font-size: 24px; }
  .teacher-guide-header > button { width: 100%; }
  .teacher-guide-tabs { width: 100%; }
  .teacher-guide-tabs button { gap: 4px; font-size: 12px; }
  .teacher-guide-tabs button svg { display: none; }
  .teacher-today-hero { min-height: auto; padding: 20px; gap: 18px; }
  .teacher-today-hero h1 { font-size: 26px; }
  .teacher-today-hero > dl > div { min-height: 66px; padding: 8px; }
  .teacher-today-hero dd { font-size: 20px; }
  .teacher-guide-band > header, .teacher-outdoor-guide > header, .teacher-issue-panel > header { padding: 18px; flex-direction: column; }
  .teacher-issue-panel > header { position: relative; padding-right: 60px; }
  .teacher-issue-panel > header > .icon-button { position: absolute; top: 18px; right: 18px; }
  .teacher-no-record { align-self: flex-start; }
  .teacher-guide-header-tools { width: 100%; justify-content: flex-start; }
  .teacher-goal-strip { margin: 16px 16px 0; }
  .teacher-guide-steps { padding: 16px; }
  .teacher-guide-step { min-height: 0; padding: 14px; grid-template-columns: 30px minmax(0, 1fr); }
  .teacher-guide-annotations > summary { padding: 12px 16px; }
  .teacher-guide-annotation-body { grid-template-columns: 1fr; }
  .teacher-guide-annotation-body > section { padding: 18px 16px; border-right: 0 !important; }
  .teacher-guide-annotation-body > section:last-child { grid-column: auto; }
  .teacher-annotation-inquiry ol, .teacher-annotation-inference, .teacher-annotation-evidence-grid { grid-template-columns: 1fr; }
  .teacher-annotation-inference p + p { border-top: 1px solid var(--line); border-left: 0; }
  .teacher-guide-annotations > footer { padding: 12px 16px; }
  .teacher-goal-reference ul { grid-template-columns: 1fr; padding: 0 16px 16px; }
  .teacher-goal-reference summary, .teacher-challenge-options summary, .teacher-safety-boundary summary { padding: 12px 16px; }
  .teacher-outdoor-guide > header { flex-direction: row; }
  .teacher-outdoor-summary { padding: 14px 16px; grid-template-columns: 1fr; }
  .teacher-sensory-dimensions { padding: 0 16px 14px; }
  .teacher-outdoor-flow { padding: 0 16px 16px; grid-template-columns: 1fr; }
  .teacher-challenge-options > div { padding: 0 16px 16px; grid-template-columns: 1fr; }
  .teacher-day-actions { padding: 16px; grid-template-columns: 1fr; align-items: stretch; gap: 14px; }
  .teacher-day-completion { grid-template-columns: 1fr; gap: 5px; }
  .teacher-day-completion > .eyebrow, .teacher-day-completion > strong, .teacher-day-completion > span:last-of-type, .teacher-day-completion > .teacher-complete-button { grid-column: 1; }
  .teacher-day-completion > .teacher-complete-button { grid-row: auto; width: 100%; margin-top: 8px; }
  .teacher-day-support-actions { padding: 12px 0 0; border-top: 1px solid var(--line); border-left: 0; justify-items: stretch; }
  .teacher-day-support-actions > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .teacher-day-support-actions .text-button { justify-content: center; }
  .teacher-issue-options { padding: 16px; }
  .teacher-issue-answer { margin: 0 16px 16px; }
  .teacher-week-list { padding: 4px 16px 16px; }
  .teacher-week-prep-summary { padding: 16px; grid-template-columns: 1fr; gap: 16px; }
  .teacher-week-prep-summary > section + section { padding: 16px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .teacher-week-prep-materials { grid-template-columns: 1fr; }
  .teacher-week-prep-boundary { padding: 10px 16px; align-items: flex-start; }
  .teacher-week-day { grid-template-columns: 48px minmax(0, 1fr); gap: 11px; }
  .teacher-week-actions { grid-column: 2; justify-items: stretch; }
  .teacher-week-actions dl { justify-content: flex-start; }
  .teacher-week-actions button { width: 100%; }
  .teacher-preview-notice { grid-template-columns: 28px minmax(0, 1fr); }
  .teacher-timeline-projection { grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; }
  .teacher-timeline-projection > div:first-of-type { grid-column: 2; grid-row: 1; }
  .teacher-timeline-projection > div:nth-of-type(2) { grid-column: 2 / -1; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .teacher-timeline-projection > .teacher-calendar-notice { grid-column: 2 / -1; grid-row: 3; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .teacher-timeline-projection > b { grid-column: 3; grid-row: 1; }
  .teacher-preview-notice button { grid-column: 1 / -1; width: 100%; }
  .teacher-material-layout { padding: 16px; grid-template-columns: 1fr; }
  .teacher-outdoor-materials { margin: 0 16px 16px; }
  .teacher-outdoor-material-grid { grid-template-columns: 1fr; }
}
.condition-profile-summary { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 10px 12px; border-left: 3px solid var(--primary); background: #f3f8f5; }
.condition-profile-summary > svg { flex: 0 0 auto; width: 18px; height: 18px; color: var(--primary); }
.condition-profile-summary span { min-width: 0; }
.condition-profile-summary strong, .condition-profile-summary small { display: block; }
.condition-profile-summary strong { color: var(--primary-dark); font-size: 12px; }
.condition-profile-summary small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.condition-form-grid { margin-bottom: 14px; }
.class-condition-overrides { margin: 2px -18px 14px; padding: 15px 18px 1px; border-block: 1px solid var(--line); background: #fbfcfb; }
.class-condition-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.class-condition-heading strong, .class-condition-heading small { display: block; }
.class-condition-heading strong { color: #34483f; font-size: 13px; }
.class-condition-heading small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.class-condition-heading .status-badge { flex: 0 0 auto; }
.class-effective-profile { margin-bottom: 12px; border-left-color: #4f728b; background: #f3f7f9; }
.class-effective-profile > svg { color: #42677f; }
.condition-owner-note { display: flex; align-items: flex-start; gap: 7px; padding-top: 11px; border-top: 1px solid var(--line); color: #586861; font-size: 11px; line-height: 1.55; }
.condition-owner-note svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px; color: var(--primary); }
.condition-change-impact { margin: 0 0 14px; border: 1px solid var(--line); background: #f8faf9; }
.condition-change-impact.attention { border-color: #d8c58e; background: #fffdf7; }
.condition-change-impact.warning { border-color: #d9a89d; background: #fff9f7; }
.condition-change-impact.protected { border-color: #a9c8b7; background: #f6fbf8; }
.condition-impact-heading { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.condition-impact-heading > div { min-width: 0; display: flex; align-items: center; gap: 9px; }
.condition-impact-heading > div > span { width: 30px; height: 30px; display: grid; flex: 0 0 auto; place-items: center; background: #e8f1ec; color: var(--primary); }
.condition-impact-heading svg { width: 16px; height: 16px; }
.condition-impact-heading strong, .condition-impact-heading small { display: block; }
.condition-impact-heading strong { color: #31473d; font-size: 12px; }
.condition-impact-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.condition-impact-heading > b { flex: 0 0 auto; color: #5b6c64; font-size: 10px; }
.condition-change-impact.warning .condition-impact-heading > b { color: #973f31; }
.condition-impact-summary { margin: 0 !important; padding: 10px 12px !important; font-size: 11px !important; }
.condition-impact-defaults { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 10px; }
.condition-impact-defaults span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; border: 1px solid var(--line); background: #fff; color: #5a6760; font-size: 10px; }
.condition-impact-defaults b { color: #34483f; }
.condition-impact-defaults svg { width: 12px; height: 12px; color: var(--muted); }
.condition-impact-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--line); background: rgba(255,255,255,.72); }
.condition-impact-metrics span { padding: 9px 8px; border-right: 1px solid var(--line); color: var(--muted); text-align: center; font-size: 9px; }
.condition-impact-metrics span:last-child { border-right: 0; }
.condition-impact-metrics strong { display: block; margin-bottom: 2px; color: #273c33; font-size: 17px; }
.condition-impact-rows { margin: 0; padding: 0; list-style: none; }
.condition-impact-rows li { display: grid; grid-template-columns: 24px minmax(0,1fr) auto; gap: 8px; align-items: start; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.condition-impact-rows li:last-child { border-bottom: 0; }
.condition-impact-rows li > span { width: 24px; height: 24px; display: grid; place-items: center; color: #6b7d74; }
.condition-impact-rows li > span svg { width: 14px; height: 14px; }
.condition-impact-rows li > div { min-width: 0; }
.condition-impact-rows strong, .condition-impact-rows small { display: block; }
.condition-impact-rows strong { color: #33463e; font-size: 11px; }
.condition-impact-rows p { margin: 2px 0 !important; color: #56665e !important; font-size: 10px !important; line-height: 1.45 !important; }
.condition-impact-rows small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.condition-impact-rows .condition-impact-fit { color: #98483b; }
.condition-impact-rows li > b { color: #6d776f; font-size: 9px; white-space: nowrap; }
.condition-impact-rows li.affected > span { color: #9a5b22; }
.condition-impact-rows li.protected > span { color: var(--primary); }
.condition-impact-empty { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px; color: var(--muted); font-size: 10px; text-align: center; }
.condition-impact-empty svg { width: 14px; height: 14px; }
.condition-override-governance { margin: 0 0 14px; border: 1px solid var(--line); background: #fff; }
.condition-override-governance.attention { border-color: #d8c58e; }
.condition-governance-heading { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); background: #f8faf9; }
.condition-governance-heading > div { min-width: 0; display: flex; align-items: center; gap: 9px; }
.condition-governance-heading > div > span { width: 30px; height: 30px; display: grid; flex: 0 0 auto; place-items: center; background: #edf3ef; color: var(--primary); }
.condition-governance-heading svg { width: 16px; height: 16px; }
.condition-governance-heading strong, .condition-governance-heading small { display: block; }
.condition-governance-heading strong { color: #31473d; font-size: 12px; }
.condition-governance-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.condition-governance-heading > b { flex: 0 0 auto; color: #5b6c64; font-size: 10px; }
.condition-override-governance > p { margin: 0 !important; padding: 10px 12px !important; font-size: 11px !important; }
.condition-governance-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--line); background: #fbfcfb; }
.condition-governance-metrics span { padding: 9px 8px; border-right: 1px solid var(--line); color: var(--muted); text-align: center; font-size: 9px; }
.condition-governance-metrics span:last-child { border-right: 0; }
.condition-governance-metrics strong { display: block; margin-bottom: 2px; color: #273c33; font-size: 17px; }
.condition-governance-rows { display: grid; gap: 0; }
.condition-governance-row { border-bottom: 1px solid var(--line); }
.condition-governance-row:last-child { border-bottom: 0; }
.condition-governance-row.current { box-shadow: inset 3px 0 var(--primary); }
.condition-governance-row > header { min-height: 47px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; background: #fbfcfb; }
.condition-governance-row > header strong, .condition-governance-row > header small { display: block; }
.condition-governance-row > header strong { color: #34483f; font-size: 11px; }
.condition-governance-row > header small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.condition-governance-row > header .secondary-button { min-height: 28px; padding: 4px 8px; font-size: 9px; }
.condition-governance-row > header .secondary-button svg { width: 12px; height: 12px; }
.condition-governance-current, .condition-governance-inactive { color: var(--primary); font-size: 9px; font-weight: 800; }
.condition-governance-inactive { color: #7b6a43; }
.condition-governance-row ul { margin: 0; padding: 0; list-style: none; }
.condition-governance-row li { min-height: 45px; display: grid; grid-template-columns: minmax(0,1fr) auto 30px; gap: 8px; align-items: center; padding: 7px 12px 7px 20px; border-top: 1px solid #edf0ee; }
.condition-governance-row li strong, .condition-governance-row li small { display: block; }
.condition-governance-row li strong { color: #46564e; font-size: 10px; }
.condition-governance-row li small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.condition-governance-row li > span { color: #53735f; font-size: 9px; }
.condition-governance-row li.redundant > span, .condition-governance-row li.inactive > span { color: #8a6121; }
.condition-governance-row li .icon-button { width: 28px; height: 28px; min-height: 28px; color: var(--primary); }
.condition-governance-row li .icon-button svg { width: 13px; height: 13px; }
.condition-governance-empty { min-height: 72px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px; color: #557065; text-align: left; }
.condition-governance-empty > svg { width: 18px; height: 18px; color: var(--primary); }
.condition-governance-empty strong, .condition-governance-empty span { display: block; }
.condition-governance-empty strong { font-size: 11px; }
.condition-governance-empty span { margin-top: 2px; color: var(--muted); font-size: 9px; }
.condition-governance-boundary { display: flex; align-items: flex-start; gap: 7px; padding: 9px 12px; border-top: 1px solid var(--line); background: #f7faf8; color: #5a6962; font-size: 9px; line-height: 1.5; }
.condition-governance-boundary svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.condition-override-target select { outline: 2px solid #8db4a0; outline-offset: 2px; }
.condition-history { margin: 0 0 14px; border: 1px solid var(--line); background: #fff; }
.condition-history-heading { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); background: #f8faf9; }
.condition-history-heading > div { min-width: 0; display: flex; align-items: center; gap: 9px; }
.condition-history-heading > div > span { width: 30px; height: 30px; display: grid; flex: 0 0 auto; place-items: center; background: #edf3ef; color: var(--primary); }
.condition-history-heading svg { width: 16px; height: 16px; }
.condition-history-heading strong, .condition-history-heading small { display: block; }
.condition-history-heading strong { color: #31473d; font-size: 12px; }
.condition-history-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.condition-history-heading > b { flex: 0 0 auto; color: #5b6c64; font-size: 10px; }
.condition-history-list { display: grid; }
.condition-history-row { border-bottom: 1px solid var(--line); }
.condition-history-row:last-child { border-bottom: 0; }
.condition-history-row summary { min-height: 52px; display: grid; grid-template-columns: minmax(0,1fr) auto 18px; gap: 8px; align-items: center; padding: 9px 12px; cursor: pointer; list-style: none; }
.condition-history-row summary::-webkit-details-marker { display: none; }
.condition-history-row summary > span { min-width: 0; display: flex; align-items: center; gap: 8px; }
.condition-history-row summary > span > svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--primary); }
.condition-history-row summary strong, .condition-history-row summary small { display: block; }
.condition-history-row summary strong { color: #34483f; font-size: 11px; }
.condition-history-row summary small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.condition-history-row summary > b { padding: 3px 6px; color: #83601f; background: #f7efd9; font-size: 8px; white-space: nowrap; }
.condition-history-row summary > b.server { color: #27634a; background: #e8f3ed; }
.condition-history-row summary > svg { width: 14px; height: 14px; color: var(--muted); transition: transform .2s ease; }
.condition-history-row[open] summary > svg { transform: rotate(180deg); }
.condition-history-content { padding: 0 12px 12px; }
.condition-history-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); }
.condition-history-metrics span { padding: 8px; border-right: 1px solid var(--line); color: var(--muted); text-align: center; font-size: 8px; }
.condition-history-metrics span:last-child { border-right: 0; }
.condition-history-metrics strong { display: block; margin-bottom: 2px; color: #2f453b; font-size: 15px; }
.condition-history-content ul { margin: 8px 0 0; padding: 0; list-style: none; border: 1px solid var(--line); }
.condition-history-content li { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 7px 8px; border-bottom: 1px solid #edf0ee; font-size: 9px; }
.condition-history-content li:last-child { border-bottom: 0; }
.condition-history-content li b { color: #42534a; }
.condition-history-content li span { color: #66736d; text-align: right; }
.condition-history-content > p { margin: 7px 0 0 !important; color: var(--muted) !important; font-size: 9px !important; line-height: 1.5 !important; }
.condition-history-empty { min-height: 72px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px; color: #557065; }
.condition-history-empty > svg { width: 18px; height: 18px; color: var(--primary); }
.condition-history-empty strong, .condition-history-empty span { display: block; }
.condition-history-empty strong { font-size: 11px; }
.condition-history-empty span { margin-top: 2px; color: var(--muted); font-size: 9px; }
.condition-history-boundary { display: flex; align-items: flex-start; gap: 7px; padding: 9px 12px; border-top: 1px solid var(--line); background: #f7faf8; color: #5a6962; font-size: 9px; line-height: 1.5; }
.condition-history-boundary svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.toggle-row { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); }
.toggle-row:first-of-type { border-top: 0; }
.toggle-row span { font-size: 13px; }
.runtime-assurance-section { grid-column: 1 / -1; }
.runtime-assurance-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.runtime-assurance-heading h2 { margin: 3px 0 11px; }
.runtime-assurance-heading p { margin: 0; max-width: 720px; }
.runtime-assurance-badge { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 7px 10px; border-radius: 5px; font-size: 12px; font-weight: 800; }
.runtime-assurance-badge svg { width: 15px; height: 15px; }
.runtime-assurance-badge.healthy { color: #275c45; background: #e8f3ed; }
.runtime-assurance-badge.attention, .runtime-assurance-badge.unavailable { color: #7a3f35; background: var(--coral-soft); }
.runtime-assurance-badge.offline { color: #5e5134; background: #f5efdc; }
.runtime-assurance-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 18px; border-block: 1px solid var(--line); }
.runtime-assurance-grid article { min-width: 0; padding: 14px; border-right: 1px solid var(--line); }
.runtime-assurance-grid article:first-child { padding-left: 0; }
.runtime-assurance-grid article:last-child { padding-right: 0; border-right: 0; }
.runtime-assurance-grid span, .runtime-assurance-grid strong, .runtime-assurance-grid small { display: block; }
.runtime-assurance-grid span { color: var(--muted); font-size: 11px; }
.runtime-assurance-grid strong { margin-top: 5px; font-size: 14px; }
.runtime-assurance-grid small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.runtime-assurance-summary { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; color: var(--primary-dark); }
.runtime-assurance-summary.attention, .runtime-assurance-summary.unavailable { color: #7a3f35; }
.runtime-assurance-summary.offline { color: #5e5134; }
.runtime-assurance-summary > svg { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; }
.runtime-assurance-summary strong, .runtime-assurance-summary span { display: block; font-size: 12px; line-height: 1.5; }
.runtime-assurance-summary span { margin-top: 2px; color: var(--muted); }
.recovery-drill-band { margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.recovery-drill-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.recovery-drill-heading > div > strong, .recovery-drill-heading > div > small { display: block; }
.recovery-drill-heading > div > strong { margin-top: 3px; font-size: 14px; }
.recovery-drill-heading > div > small { margin-top: 4px; max-width: 700px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.recovery-drill-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 13px; border-block: 1px solid var(--line); }
.recovery-drill-metrics > span { min-width: 0; padding: 11px 13px; border-right: 1px solid var(--line); }
.recovery-drill-metrics > span:first-child { padding-left: 0; }
.recovery-drill-metrics > span:last-child { padding-right: 0; border-right: 0; }
.recovery-drill-metrics small, .recovery-drill-metrics strong { display: block; }
.recovery-drill-metrics small { color: var(--muted); font-size: 10px; }
.recovery-drill-metrics strong { margin-top: 4px; font-size: 12px; overflow-wrap: anywhere; }
.recovery-drill-checks { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 16px; margin: 10px 0 0; padding: 0; list-style: none; }
.recovery-drill-checks li { display: flex; align-items: flex-start; gap: 7px; min-width: 0; padding: 8px 0; border-bottom: 1px solid var(--line); }
.recovery-drill-checks li > svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; }
.recovery-drill-checks li.passed > svg { color: #2d7456; }
.recovery-drill-checks li.attention > svg, .recovery-drill-checks li.unavailable > svg { color: #a34b3d; }
.recovery-drill-checks li.pending > svg { color: var(--muted); }
.recovery-drill-checks span, .recovery-drill-checks strong, .recovery-drill-checks small { display: block; min-width: 0; }
.recovery-drill-checks strong { font-size: 11px; }
.recovery-drill-checks small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.recovery-drill-summary { margin: 10px 0 0 !important; color: #275c45 !important; font-size: 11px !important; }
.recovery-drill-summary.attention, .recovery-drill-summary.unavailable { color: #8f4439 !important; }
.recovery-drill-summary.offline { color: #5e5134 !important; }
.operations-monitor-section { grid-column: 1 / -1; }
.operations-monitor-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 18px; border-block: 1px solid var(--line); }
.operations-monitor-metrics article { min-width: 0; padding: 14px; border-right: 1px solid var(--line); }
.operations-monitor-metrics article:first-child { padding-left: 0; }
.operations-monitor-metrics article:last-child { padding-right: 0; border-right: 0; }
.operations-monitor-metrics span, .operations-monitor-metrics strong, .operations-monitor-metrics small { display: block; }
.operations-monitor-metrics span { color: var(--muted); font-size: 11px; }
.operations-monitor-metrics strong { margin-top: 5px; font-size: 14px; }
.operations-monitor-metrics small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.operations-monitor-body { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 24px; margin-top: 18px; }
.operations-monitor-subheading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 30px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.operations-monitor-subheading strong { font-size: 13px; }
.operations-monitor-subheading span { color: var(--muted); font-size: 11px; }
.operations-capacity-list { display: grid; }
.operations-capacity-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 16px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.operations-capacity-row:last-child { border-bottom: 0; }
.operations-capacity-row > div:first-child strong, .operations-capacity-row > div:first-child small { display: block; }
.operations-capacity-row > div:first-child strong { font-size: 12px; }
.operations-capacity-row > div:first-child small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.operations-capacity-measure { display: flex; align-items: baseline; gap: 8px; text-align: right; }
.operations-capacity-measure span { color: var(--muted); font-size: 10px; }
.operations-capacity-measure strong { font-size: 12px; }
.operations-capacity-measure strong.healthy { color: #275c45; }
.operations-capacity-measure strong.attention, .operations-capacity-measure strong.unavailable { color: #9b4236; }
.operations-capacity-track { grid-column: 1 / -1; height: 5px; overflow: hidden; border-radius: 3px; background: #edf1ee; }
.operations-capacity-track span { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #41866a; }
.operations-capacity-track span.attention { background: #d6923e; }
.operations-capacity-track span.unavailable { background: #c75c4c; }
.operations-alert-list { margin: 0; padding: 0; list-style: none; }
.operations-alert-list li { display: flex; align-items: flex-start; gap: 9px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.operations-alert-list li:last-child { border-bottom: 0; }
.operations-alert-list li > svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 2px; }
.operations-alert-list li.healthy > svg { color: #2d7456; }
.operations-alert-list li.attention > svg, .operations-alert-list li.unavailable > svg { color: #a34b3d; }
.operations-alert-list strong, .operations-alert-list span, .operations-alert-list small { display: block; }
.operations-alert-list strong { font-size: 12px; }
.operations-alert-list span { margin-top: 3px; color: var(--text); font-size: 11px; line-height: 1.45; }
.operations-alert-list small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.operations-monitor-empty { padding: 18px 0; color: var(--muted); font-size: 12px; }
.service-readiness-section { grid-column: 1 / -1; }
.service-readiness-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 18px; border-block: 1px solid var(--line); }
.service-readiness-metrics article { min-width: 0; padding: 14px; border-right: 1px solid var(--line); }
.service-readiness-metrics article:first-child { padding-left: 0; }
.service-readiness-metrics article:last-child { padding-right: 0; border-right: 0; }
.service-readiness-metrics span, .service-readiness-metrics strong, .service-readiness-metrics small { display: block; }
.service-readiness-metrics span { color: var(--muted); font-size: 11px; }
.service-readiness-metrics strong { margin-top: 5px; font-size: 14px; }
.service-readiness-metrics small { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.service-readiness-checks { margin: 14px 0 0; padding: 0; list-style: none; }
.service-readiness-checks li { display: grid; grid-template-columns: 22px 18px minmax(0,1fr) auto; align-items: start; gap: 9px; min-height: 50px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.service-readiness-checks li:last-child { border-bottom: 0; }
.service-readiness-index { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: var(--muted); background: #edf1ee; font-size: 10px; font-weight: 800; }
.service-readiness-checks li > svg { width: 16px; height: 16px; margin-top: 3px; }
.service-readiness-checks li.healthy > svg { color: #2d7456; }
.service-readiness-checks li.attention > svg { color: #b4772c; }
.service-readiness-checks li.unavailable > svg { color: #a34b3d; }
.service-readiness-checks div strong, .service-readiness-checks div span { display: block; }
.service-readiness-checks div strong { font-size: 12px; }
.service-readiness-checks div span { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.service-readiness-checks li > small { padding-top: 3px; color: var(--muted); font-size: 10px; font-weight: 800; }
.service-readiness-checks li.healthy > small { color: #2d7456; }
.service-readiness-checks li.unavailable > small { color: #a34b3d; }
.security-baseline-band { margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--line); }
.child-data-compliance-band { margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--line); }
.child-data-compliance-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 13px; border: 1px solid var(--line); background: #fbfcfb; }
.child-data-compliance-metrics span { min-width: 0; padding: 9px; text-align: center; }
.child-data-compliance-metrics span + span { border-left: 1px solid var(--line); }
.child-data-compliance-metrics small, .child-data-compliance-metrics strong { display: block; }
.child-data-compliance-metrics small { color: var(--muted); font-size: 9px; }
.child-data-compliance-metrics strong { margin-top: 3px; font-size: 12px; }
.child-data-rule-list { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 11px 0 0; padding: 0; list-style: none; }
.child-data-rule-list li { display: inline-flex; align-items: center; gap: 5px; color: #275c45; font-size: 10px; font-weight: 800; }
.child-data-rule-list svg { width: 13px; height: 13px; }
.security-baseline-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.security-baseline-heading > div > strong, .security-baseline-heading > div > small { display: block; }
.security-baseline-heading > div > strong { margin-top: 3px; font-size: 14px; }
.security-baseline-heading > div > small { margin-top: 4px; max-width: 700px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.security-baseline-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 13px; border-block: 1px solid var(--line); }
.security-baseline-metrics > span { min-width: 0; padding: 11px 13px; border-right: 1px solid var(--line); }
.security-baseline-metrics > span:first-child { padding-left: 0; }
.security-baseline-metrics > span:last-child { padding-right: 0; border-right: 0; }
.security-baseline-metrics small, .security-baseline-metrics strong { display: block; }
.security-baseline-metrics small { color: var(--muted); font-size: 10px; }
.security-baseline-metrics strong { margin-top: 4px; font-size: 12px; overflow-wrap: anywhere; }
.security-baseline-checks { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 16px; margin: 10px 0 0; padding: 0; list-style: none; }
.security-baseline-checks li { display: flex; align-items: flex-start; gap: 7px; min-width: 0; padding: 8px 0; border-bottom: 1px solid var(--line); }
.security-baseline-checks li > svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; }
.security-baseline-checks li.healthy > svg { color: #2d7456; }
.security-baseline-checks li.attention > svg { color: #b4772c; }
.security-baseline-checks li.unavailable > svg { color: #a34b3d; }
.security-baseline-checks span, .security-baseline-checks strong, .security-baseline-checks small { display: block; min-width: 0; }
.security-baseline-checks strong { font-size: 11px; }
.security-baseline-checks small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.security-baseline-boundary { margin: 10px 0 0 !important; color: #275c45 !important; font-size: 10px !important; line-height: 1.5 !important; }
.security-baseline-boundary.attention, .security-baseline-boundary.unavailable { color: #8f4439 !important; }
.security-baseline-boundary.offline { color: #5e5134 !important; }
.service-readiness-conclusion { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line); color: #275c45; }
.service-readiness-conclusion.attention, .service-readiness-conclusion.unavailable { color: #8f4439; }
.service-readiness-conclusion.offline { color: #5e5134; }
.service-readiness-conclusion > svg { width: 18px; height: 18px; flex: 0 0 auto; }
.service-readiness-conclusion strong, .service-readiness-conclusion span { display: block; font-size: 11px; line-height: 1.5; }
.service-readiness-conclusion span { margin-top: 3px; color: var(--muted); }
.ai-integration-readiness-band { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.ai-integration-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; margin: 12px 0 0; padding: 0; list-style: none; }
.ai-integration-checks li { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 9px 0; border-bottom: 1px solid var(--line); }
.ai-integration-checks li > svg { width: 15px; height: 15px; flex: 0 0 auto; margin-top: 2px; }
.ai-integration-checks li.healthy > svg { color: #2d7456; }
.ai-integration-checks li.attention > svg, .ai-integration-checks li.unavailable > svg { color: #a34b3d; }
.ai-integration-checks span, .ai-integration-checks strong, .ai-integration-checks small { display: block; min-width: 0; }
.ai-integration-checks strong { font-size: 11px; }
.ai-integration-checks small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.pilot-readiness-section { grid-column: 1 / -1; }
.pilot-readiness-summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; margin-top: 16px; padding: 12px 0; border-block: 1px solid var(--line); }
.pilot-readiness-summary strong { font-size: 14px; }
.pilot-readiness-summary span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.pilot-readiness-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 16px; }
.pilot-check-list, .pilot-week-list { margin: 8px 0 0; padding: 0; list-style: none; }
.pilot-check-list li { display: grid; grid-template-columns: 17px minmax(0,1fr) auto; gap: 8px; align-items: start; padding: 9px 0; border-bottom: 1px solid var(--line); }
.pilot-check-list li > svg { width: 15px; height: 15px; margin-top: 2px; }
.pilot-check-list li.healthy > svg { color: #2d7456; }
.pilot-check-list li.attention > svg { color: #b4772c; }
.pilot-check-list strong, .pilot-check-list span { display: block; }
.pilot-check-list strong, .pilot-week-list strong { font-size: 11px; }
.pilot-check-list span, .pilot-check-list small, .pilot-week-list span, .pilot-week-list small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.pilot-week-list li { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.pilot-activation-board { margin-top: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.pilot-activation-recommendation { display: grid; grid-template-columns: minmax(210px,1fr) minmax(250px,1.2fr) auto; align-items: center; gap: 16px; }
.pilot-activation-recommendation h3 { margin: 4px 0 0; font-size: 15px; }
.pilot-activation-recommendation p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.pilot-activation-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.pilot-activation-badges span { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border: 1px solid var(--line); border-radius: 4px; font-size: 10px; font-weight: 700; }
.pilot-activation-badges span svg { width: 12px; height: 12px; }
.pilot-activation-badges .healthy { color: #2d7456; background: #eef6f1; }
.pilot-activation-badges .attention { color: #8b5b22; background: #fff8e9; }
.pilot-class-readiness { margin-top: 14px; }
.pilot-class-readiness ul { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.pilot-class-readiness li { display: grid; grid-template-columns: minmax(0,1fr) auto 32px; align-items: center; gap: 8px; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 4px; }
.pilot-class-readiness li.recommended { border-color: #78a58e; background: #f1f7f3; }
.pilot-class-readiness strong, .pilot-class-readiness small, .pilot-class-readiness b { display: block; min-width: 0; }
.pilot-class-readiness strong { font-size: 11px; overflow-wrap: anywhere; }
.pilot-class-readiness small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.pilot-class-readiness b { color: var(--primary-dark); font-size: 12px; text-align: right; }
.pilot-class-readiness .icon-button { width: 32px; height: 32px; }
.pilot-activation-board > p { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.pilot-activation-board > p svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; color: #2d7456; }
.toggle { position: relative; width: 42px; height: 24px; flex: 0 0 auto; }
.toggle input { opacity: 0; position: absolute; }
.toggle-track { position: absolute; inset: 0; border-radius: 12px; background: #cbd5cf; transition: .2s; }
.toggle-track::after { content: ""; position: absolute; width: 18px; height: 18px; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.toggle input:checked + .toggle-track { background: var(--primary); }
.toggle input:checked + .toggle-track::after { transform: translateX(18px); }

.dialog {
  width: min(680px, calc(100vw - 24px)); max-height: calc(100vh - 32px); border: 0; border-radius: 8px;
  padding: 0; box-shadow: 0 24px 80px rgba(18,39,30,.24); color: var(--ink);
}
.dialog::backdrop { background: rgba(15,27,21,.48); backdrop-filter: blur(3px); }
.dialog form { padding: 22px; }
.dialog-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.dialog-header h2 { margin: 5px 0 0; font-size: 20px; }
.dialog label { display: grid; gap: 7px; color: #38463f; font-size: 12px; font-weight: 700; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.dialog input, .dialog select, .dialog textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); padding: 11px 12px;
}
.dialog textarea { margin-bottom: 14px; resize: vertical; line-height: 1.6; }
.dialog fieldset { margin: 0; padding: 0; border: 0; }
.dialog legend { margin-bottom: 9px; font-size: 12px; font-weight: 700; }
.tag-options { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-options label { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 6px; background: var(--surface-soft); font-weight: 500; }
.tag-options input { width: 15px; height: 15px; margin: 0; accent-color: var(--primary); }
.dialog-footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.dialog-footer > span { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.observe-dialog { width: min(700px, calc(100vw - 24px)); overflow: auto; }
.record-context { margin-bottom: 16px; padding: 12px 14px; display: grid; gap: 4px; border-left: 4px solid var(--primary); background: var(--surface-soft); }
.record-context span { display: flex; align-items: center; gap: 6px; color: var(--primary); font-size: 11px; font-weight: 800; }
.record-context span svg { width: 14px; height: 14px; }
.record-context strong { font-size: 14px; }
.record-context small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.record-development-context { margin-top: 8px; padding-top: 10px; border-top: 1px solid #cfdad4; }
.record-development-context > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.record-development-context > div b { color: var(--ink); font-size: 11px; }
.record-development-context > div span { color: var(--muted); font-size: 9px; }
.record-development-context ul { margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d6dfda; list-style: none; }
.record-development-context li { min-width: 0; padding: 7px 8px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 6px; background: #fff; }
.record-development-context li strong { color: var(--primary); font-size: 9px; }
.record-development-context li span { color: var(--ink); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.record-development-context > p { margin: 8px 0 0; display: flex; align-items: flex-start; gap: 6px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.record-development-context > p svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.evidence-fields { margin-bottom: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.evidence-fields label:nth-child(2) { grid-row: span 2; }
.evidence-fields label > span { display: flex; align-items: center; gap: 7px; }
.evidence-fields label > span b { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--primary); font-size: 11px; }
.evidence-fields textarea { min-height: 118px; margin: 0; }

.toast {
  position: fixed; z-index: 50; left: 50%; bottom: 28px; transform: translate(-50%, 16px);
  min-width: 240px; max-width: calc(100vw - 32px); padding: 12px 16px; border-radius: 6px;
  color: #fff; background: #17382e; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .2s;
  text-align: center; font-size: 13px;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.mobile-nav { display: none; }

.empty-state { min-height: 240px; display: grid; place-items: center; text-align: center; color: var(--muted); }
.empty-state svg { width: 34px; height: 34px; margin-bottom: 8px; color: var(--primary); }
.offline-banner { display: none; margin-bottom: 14px; }
.offline-banner.visible { display: flex; }
.role-workspace-notice {
  display: grid; grid-template-columns: 38px minmax(0,1fr) minmax(320px,auto); gap: 12px 16px;
  align-items: center; min-width: 0; margin-bottom: 14px; padding: 12px 14px;
  border: 1px solid var(--line); border-left: 4px solid var(--primary); border-radius: 6px; background: #fff;
}
.role-workspace-notice.management { border-left-color: var(--blue); background: #f6fafc; }
.role-workspace-notice.supervision { border-left-color: var(--gold); background: #fffaf0; }
.role-workspace-icon { display: grid; width: 36px; height: 36px; place-items: center; color: #fff; background: var(--primary); border-radius: 5px; }
.role-workspace-notice.management .role-workspace-icon { background: var(--blue); }
.role-workspace-notice.supervision .role-workspace-icon { background: #9a6c12; }
.role-workspace-icon svg { width: 18px; height: 18px; }
.role-workspace-notice > div { min-width: 0; }
.role-workspace-notice > div > span { display: block; color: var(--muted); font-size: 10px; font-weight: 800; }
.role-workspace-notice > div > strong { display: block; margin-top: 2px; font-size: 14px; }
.role-workspace-notice > div > p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.role-workspace-notice dl { display: grid; grid-template-columns: repeat(2,minmax(130px,1fr)); min-width: 0; margin: 0; }
.role-workspace-notice dl > div { min-width: 0; padding: 2px 12px; border-left: 1px solid var(--line); }
.role-workspace-notice dt { color: var(--muted); font-size: 9px; font-weight: 800; }
.role-workspace-notice dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 11px; font-weight: 800; line-height: 1.4; }
.conflict-readonly-note { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 12px; color: #77591c; background: var(--gold-soft); font-size: 11px; line-height: 1.5; }
.conflict-readonly-note svg { width: 15px; height: 15px; flex: 0 0 auto; }


.execution-panel .panel-body { padding-top: 16px; }
.execution-header-actions { display: flex; align-items: center; gap: 8px; min-width: 0; }
.execution-tabs { display: grid; grid-template-columns: repeat(4, minmax(82px, 1fr)); padding: 3px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); }
.execution-tabs button { min-height: 34px; padding: 0 10px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.execution-tabs button svg { width: 15px; height: 15px; }
.execution-tabs button.active { background: #fff; color: var(--primary); box-shadow: 0 1px 4px rgba(23,56,46,.1); }
.execution-mode { min-width: 0; }
.quick-objective-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--line); }
.quick-objective-grid article { min-height: 116px; padding: 18px; background: #fff; }
.quick-objective-grid span, .quick-action-row span, .section-title span, .stage-heading span, .research-intro section > span, .after-activity span { display: block; color: var(--primary); font-size: 11px; font-weight: 800; }
.quick-objective-grid strong { display: block; margin-top: 9px; font-size: 15px; line-height: 1.65; }
.start-callout { margin: 14px 0 20px; padding: 15px 17px; display: flex; align-items: flex-start; gap: 12px; border-left: 4px solid var(--gold); background: var(--gold-soft); }
.start-callout > svg { color: var(--gold); flex: 0 0 auto; }
.start-callout span { display: block; color: #77591c; font-size: 11px; font-weight: 800; }
.start-callout strong { display: block; margin-top: 5px; line-height: 1.65; }
.execution-section { padding: 2px 0 20px; border-bottom: 1px solid var(--line); }
.section-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.section-title h3 { margin: 0; font-size: 15px; }
.section-title span { color: var(--muted); }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.role-column { min-width: 0; padding: 13px 14px; background: #fff; }
.role-column h4 { margin: 0 0 8px; display: flex; align-items: center; gap: 7px; color: var(--primary); font-size: 13px; }
.role-column h4 svg { width: 16px; height: 16px; }
.role-column ul, .compact-list, .do-not-list { margin: 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.role-column li + li, .compact-list li + li, .do-not-list li + li { margin-top: 4px; }
.role-confirm { min-height: 44px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 7px; color: var(--primary); font-size: 11px; font-weight: 800; }
.role-confirm input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.execution-header .eyebrow b { color: var(--blue); }
.quick-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 20px 0; }
.quick-columns section + section { border-left: 1px solid var(--line); padding-left: 22px; }
.quick-columns h3 { margin: 0 0 9px; display: flex; align-items: center; gap: 7px; font-size: 14px; }
.quick-columns h3 svg { width: 16px; height: 16px; color: var(--blue); }
.quick-columns p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.quick-action-row { padding: 15px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--surface-soft); border-radius: 7px; }
.quick-action-row div { min-width: 0; }
.quick-action-row strong { display: block; margin-top: 4px; font-size: 12px; line-height: 1.5; }
.quick-action-row button { flex: 0 0 auto; }
.phase-rail { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 8px; overflow-x: auto; padding-bottom: 8px; }
.phase-rail button { min-height: 58px; padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 8px; align-items: center; text-align: left; }
.phase-rail button > span { width: 27px; height: 27px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-soft); color: var(--primary); font-size: 12px; font-weight: 800; }
.phase-rail button strong, .phase-rail button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.phase-rail button strong { font-size: 12px; }
.phase-rail button small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.phase-rail button.active { border-color: var(--primary); background: #f7fbf8; }
.phase-rail button.active > span { background: var(--primary); color: #fff; }
.current-stage { margin-top: 10px; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stage-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.stage-heading h3 { margin: 4px 0 0; font-size: 20px; }
.stage-heading > strong { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: 13px; white-space: nowrap; }
.stage-detail { margin: 11px 0 16px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.script-callout { padding: 17px 18px; background: #edf4f7; border-left: 4px solid var(--blue); }
.script-callout span { display: flex; align-items: center; gap: 7px; color: var(--blue); font-size: 11px; font-weight: 800; }
.script-callout blockquote { margin: 9px 0 0; font-size: 17px; font-weight: 700; line-height: 1.65; }
.stage-support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 16px; }
.stage-support-grid article + article { border-left: 1px solid var(--line); padding-left: 20px; }
.stage-support-grid span { color: var(--primary); font-size: 11px; font-weight: 800; }
.stage-support-grid p { margin: 5px 0 0; font-size: 13px; line-height: 1.65; }
.bounded-response-guide { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.bounded-response-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.bounded-response-heading span { color: var(--muted); font-size: 10px; font-weight: 750; }
.bounded-response-heading h4 { margin: 4px 0 0; font-size: 16px; }
.bounded-response-heading > small { padding: 4px 7px; border-radius: 4px; background: var(--mint-soft); color: var(--primary); font-size: 10px; font-weight: 750; white-space: nowrap; }
.bounded-response-choices { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bounded-response-choice {
  min-width: 0;
  min-height: 78px;
  padding: 10px;
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}
.bounded-response-choice > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-soft); color: var(--primary); font-size: 11px; font-weight: 800; }
.bounded-response-choice strong,
.bounded-response-choice small { display: block; overflow-wrap: anywhere; }
.bounded-response-choice strong { font-size: 12px; line-height: 1.4; }
.bounded-response-choice small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.bounded-response-choice:hover,
.bounded-response-choice.active { border-color: var(--primary); background: #f7fbf9; }
.bounded-response-choice.active > span { background: var(--primary); color: #fff; }
.bounded-response-result { margin-top: 12px; padding: 14px 16px; border-left: 3px solid var(--primary); background: var(--surface-soft); }
.bounded-response-result.adjust { border-left-color: var(--gold); background: #fffaf0; }
.bounded-response-result header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.bounded-response-result header span { color: var(--primary); font-size: 10px; font-weight: 800; }
.bounded-response-result header h4 { margin: 4px 0 0; font-size: 15px; }
.bounded-response-role-selector { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.bounded-response-role {
  min-width: 0;
  min-height: 54px;
  padding: 8px 9px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}
.bounded-response-role > svg { width: 17px; height: 17px; color: var(--muted); }
.bounded-response-role strong,
.bounded-response-role small { display: block; overflow-wrap: anywhere; }
.bounded-response-role strong { font-size: 11px; }
.bounded-response-role small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.bounded-response-role.active { border-color: var(--primary); background: var(--mint-soft); color: var(--primary); }
.bounded-response-role.active > svg { color: var(--primary); }
.bounded-response-role-primary { margin-top: 12px; padding: 11px 13px; display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; align-items: center; background: #fff; }
.bounded-response-role-primary span { color: var(--primary); font-size: 10px; font-weight: 800; }
.bounded-response-role-primary strong { font-size: 12px; line-height: 1.5; }
.bounded-response-actions { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bounded-response-actions article { min-width: 0; padding-right: 14px; }
.bounded-response-actions article + article { padding-left: 14px; border-left: 1px solid var(--line); }
.bounded-response-actions span,
.bounded-response-actions strong { display: block; }
.bounded-response-actions span { color: var(--muted); font-size: 10px; font-weight: 750; }
.bounded-response-actions strong { margin-top: 5px; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.bounded-response-handoff { margin-top: 12px; padding-top: 11px; display: flex; align-items: flex-start; gap: 7px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; line-height: 1.55; }
.bounded-response-handoff svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.bounded-response-boundary { margin-top: 13px; padding-top: 11px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border-top: 1px solid var(--line); }
.bounded-response-boundary span { display: flex; align-items: flex-start; gap: 6px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.bounded-response-boundary svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.bounded-response-result > small { display: block; margin-top: 10px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.bounded-response-empty { margin: 10px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.response-reference .guide-grid { margin: 0 0 16px; }
.stage-controls { min-height: 50px; margin-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.stage-controls > span { color: var(--muted); font-size: 11px; }
.stage-controls button:disabled { opacity: .45; cursor: default; }
.guide-grid, .research-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 22px; }
.support-panel { min-width: 0; }
.support-panel + .support-panel { border-left: 1px solid var(--line); padding-left: 22px; }
.response-list, .decision-list { display: grid; gap: 0; }
.response-card { padding: 12px 0; border-top: 1px solid var(--line); }
.response-card strong { font-size: 12px; line-height: 1.5; }
.response-card p { margin: 5px 0 0; font-size: 12px; line-height: 1.55; }
.response-card .response-meaning { color: var(--muted); }
.decision-row { padding: 12px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; }
.decision-row > span { width: 26px; height: 26px; display: grid; place-items: center; color: var(--coral); background: var(--coral-soft); border-radius: 5px; }
.decision-row > span svg { width: 14px; height: 14px; }
.decision-row strong { font-size: 12px; line-height: 1.5; }
.decision-row p { margin: 5px 0; font-size: 12px; line-height: 1.55; }
.decision-row small { color: var(--muted); line-height: 1.5; }
.execution-details { margin-top: 12px; border-top: 1px solid var(--line); }
.execution-details summary { min-height: 46px; display: flex; align-items: center; gap: 8px; color: var(--primary); font-size: 13px; font-weight: 800; cursor: pointer; }
.execution-details.warning summary { color: #a44634; }
.execution-details .role-grid, .execution-details .compact-list, .execution-details .substitution-list { margin: 0 0 16px; }
.substitution-list { display: grid; }
.substitution-list article { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 4px 12px; padding: 11px 0; border-top: 1px solid var(--line); font-size: 12px; }
.substitution-list span { display: flex; align-items: center; gap: 7px; }
.substitution-list span svg { width: 14px; height: 14px; color: var(--muted); }
.substitution-list small { grid-column: 2; color: var(--muted); }
.research-intro { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; padding: 16px; background: var(--blue-soft); border-radius: 7px; }
.research-intro > div { width: 44px; height: 44px; display: grid; place-items: center; background: #fff; border-radius: 6px; color: var(--blue); }
.research-intro h3 { margin: 4px 0 7px; font-size: 17px; }
.research-intro .compact-list { color: var(--ink); }
.research-grid .support-panel > p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.research-grid h4 { margin: 17px 0 8px; font-size: 13px; }
.do-not-list li::marker { color: var(--coral); }
.standards-panel { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.standard-support-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.standard-support-list article { padding: 12px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 10px; }
.standard-support-list article > span { width: 38px; height: 24px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); border-radius: 4px; font-size: 11px; font-weight: 800; }
.standard-support-list strong { font-size: 12px; line-height: 1.55; }
.standard-support-list p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.standard-support-list p > b { margin-right: 6px; color: #40564c; font-size: 9px; }
.development-evidence-brief .section-title > div { min-width: 0; }
.development-evidence-brief .section-title small { color: var(--muted); font-size: 9px; font-weight: 800; }
.development-evidence-brief .section-title h3 { margin: 3px 0 0; }
.development-evidence-source { margin-top: 12px; padding: 12px 14px; border-left: 3px solid var(--primary); background: #f6f9f7; }
.development-evidence-source > span { display: flex; align-items: center; gap: 7px; color: #40564c; font-size: 10px; font-weight: 800; }
.development-evidence-source svg { width: 14px; height: 14px; flex: 0 0 auto; }
.development-evidence-source p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.development-evidence-blocked { margin-top: 12px; padding: 13px 14px; display: flex; align-items: flex-start; gap: 8px; background: var(--coral-soft); color: #8c352d; font-size: 11px; line-height: 1.55; }
.development-evidence-blocked svg { width: 16px; height: 16px; flex: 0 0 auto; }
.after-activity { margin-top: 18px; padding: 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--surface-soft); border-radius: 7px; }
.after-activity strong, .after-activity small { display: block; }
.after-activity strong { margin-top: 4px; font-size: 12px; line-height: 1.5; }
.after-activity small { margin-top: 4px; color: var(--muted); line-height: 1.5; }

.live-support { margin-top: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.live-support .section-title { align-items: flex-start; }
.live-support .section-title h3 { margin: 4px 0 0; font-size: 16px; }
.live-support .section-title > small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.live-support-actions { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.live-support-button { min-height: 50px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); display: flex; align-items: center; gap: 8px; text-align: left; font-size: 12px; font-weight: 700; }
.live-support-button svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--coral); }
.live-support-button:hover, .live-support-button.active { border-color: var(--primary); background: #f7fbf8; color: var(--primary); }
.live-guidance { margin-top: 12px; padding: 14px 16px; border-left: 3px solid var(--coral); background: #fff9f6; }
.live-guidance-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.live-guidance-heading span { color: var(--coral); font-size: 11px; font-weight: 800; }
.live-guidance-heading h4 { margin: 4px 0 0; font-size: 15px; }
.live-guidance p { margin: 10px 0 0; font-size: 12px; line-height: 1.65; }
.live-guidance small { display: block; margin-top: 9px; color: var(--muted); line-height: 1.55; }
.dashboard-note { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.dashboard-table-wrap { padding-top: 4px; padding-bottom: 4px; overflow-x: auto; }
.dashboard-table-wrap table { min-width: 720px; }

@media (max-width: 1100px) {
  :root { --sidebar: 78px; }
  .brand div, .nav-item span, .sync-panel div { display: none; }
  .brand { justify-content: center; padding: 0; }
  .nav-item { justify-content: center; padding: 0; }
  .sync-panel { justify-content: center; padding: 10px 0; }
  .grid-main, .learning-evidence-layout { grid-template-columns: 1fr; }
  .child-insight-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .calendar-days { grid-template-columns: 1fr; overflow-x: visible; padding-bottom: 0; scroll-snap-type: none; gap: 6px; }
  .calendar-day { min-height: 64px; padding: 9px 11px 11px; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: start; gap: 4px 8px; scroll-snap-align: none; }
  .calendar-status { grid-column: 3; grid-row: 1; align-self: start; text-align: right; white-space: nowrap; }

  .execution-header { align-items: stretch; flex-direction: column; }
  .execution-header-actions { width: 100%; }
  .execution-tabs { flex: 1; min-width: 0; grid-template-columns: repeat(4, minmax(0,1fr)); }
  .execution-tabs button { padding: 0 5px; }
  .quick-objective-grid, .quick-columns, .role-grid, .stage-support-grid, .guide-grid, .research-grid, .standard-support-list { grid-template-columns: 1fr; }
  .quick-columns section + section, .stage-support-grid article + article, .support-panel + .support-panel { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 18px; }
  .quick-action-row, .after-activity { align-items: stretch; flex-direction: column; }
  .quick-action-row button, .after-activity button { width: 100%; }
  .role-column + .role-column { border-top: 1px solid var(--line); }
  .stage-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .stage-controls > span { grid-column: 1 / -1; grid-row: 1; text-align: center; }
  .bounded-response-choices,
  .bounded-response-actions,
  .bounded-response-boundary { grid-template-columns: 1fr; }
  .bounded-response-choice { min-height: 0; }
  .bounded-response-role { min-height: 44px; padding: 7px; grid-template-columns: 18px minmax(0, 1fr); gap: 5px; }
  .bounded-response-role > svg { width: 15px; height: 15px; }
  .bounded-response-role small { display: none; }
  .bounded-response-role-primary { grid-template-columns: 1fr; gap: 4px; }
  .bounded-response-actions { gap: 11px; }
  .bounded-response-actions article { padding-right: 0; }
  .bounded-response-actions article + article { padding: 11px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .live-support-actions { grid-template-columns: 1fr 1fr; }
  .substitution-list article { grid-template-columns: 1fr; }
  .substitution-list small { grid-column: 1; }
  .role-workspace-notice { grid-template-columns: 36px minmax(0,1fr); }
  .role-workspace-notice dl { grid-column: 1 / -1; }
  .role-workspace-notice dl > div:first-child { border-left: 0; padding-left: 0; }
}

@media (max-width: 720px) {
  .app-shell { display: block; min-height: 100dvh; }
  .sidebar { display: none; }
  .main-panel { padding-bottom: 74px; }
  .topbar { height: 60px; padding: 0 14px; }
  .class-chip { display: none; }
  .topbar-context { flex: 1 1 auto; min-width: 0; gap: 6px; }
  .topbar-actions { flex: 0 0 auto; gap: 5px; }
  .tenant-select { flex: 1 1 132px; width: auto; min-width: 0; max-width: 150px; padding-left: 2px; font-size: 12px; }
  .class-select { flex: 0 0 88px; width: 88px; max-width: 88px; }
  .topbar-actions .icon-button { display: none; }
  .topbar-actions .identity-button { width: 68px; min-width: 68px; padding: 0 6px; justify-content: center; }
  .topbar-actions .identity-button > svg, .topbar-actions .identity-button small { display: none; }
  .topbar-actions .identity-button > span { display: block; min-width: 0; }
  .topbar-actions .identity-button strong { max-width: 56px; text-align: center; }
  .view-root { padding: 16px 14px 24px; }
  .role-workspace-notice dl { grid-template-columns: 1fr; }
  .role-workspace-notice dl > div { padding: 7px 0; border-left: 0; border-top: 1px solid var(--line); }
  .page-heading { align-items: flex-start; margin-bottom: 18px; }
  .page-heading h1 { font-size: 23px; }
  .page-heading p { font-size: 13px; }
  .heading-actions { display: none; }
  .settings-mobile-save { display: block; margin: -2px 0 16px; }
  .settings-mobile-save .primary-button { width: 100%; min-height: 44px; }
  .hero-band { min-height: 0; padding: 20px; grid-template-columns: 1fr; gap: 18px; }
  .hero-band h1 { font-size: 23px; }
  .hero-metrics { grid-template-columns: 1fr 1fr; }
  .hero-metric { min-height: 68px; }
  .choice-grid, .settings-grid, .child-insight-grid, .weekly-report-content { grid-template-columns: 1fr; }
  .settings-quick-nav { position: sticky; top: 60px; z-index: 7; margin: 0 -14px 14px; padding: 9px 14px 10px; box-shadow: 0 5px 12px rgba(35,59,48,.08); }
  .settings-quick-nav-heading { align-items: center; margin-bottom: 7px; }
  .settings-quick-nav-heading .eyebrow, .settings-quick-nav-heading > small { display: none; }
  .settings-quick-nav-heading h2 { margin: 0; font-size: 13px; }
  .settings-quick-nav-list { display: flex; gap: 7px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: none; }
  .settings-quick-nav-list::-webkit-scrollbar { display: none; }
  .settings-quick-nav-list button { flex: 0 0 136px; min-height: 50px; padding: 7px 8px; grid-template-columns: 18px minmax(0,1fr) 12px; scroll-snap-align: start; }
  .settings-quick-nav-list button > svg { width: 16px; height: 16px; }
  #settingsOrganization, #settingsRoster, #settingsConditions, #settingsCurriculum, #settingsInventory, #settingsAccounts, #settingsSync, #settingsRuntime { scroll-margin-top: 137px; }
  .class-condition-heading { align-items: flex-start; flex-wrap: wrap; }
  .runtime-assurance-heading { display: block; }
  .runtime-assurance-badge { margin-top: 12px; }
  .runtime-assurance-grid { grid-template-columns: 1fr 1fr; }
  .runtime-assurance-grid article { padding: 12px 10px; border-bottom: 1px solid var(--line); }
  .runtime-assurance-grid article:first-child { padding-left: 0; }
  .runtime-assurance-grid article:nth-child(2) { padding-right: 0; border-right: 0; }
  .runtime-assurance-grid article:nth-child(3) { padding-left: 0; border-bottom: 0; }
  .runtime-assurance-grid article:last-child { padding-right: 0; border-bottom: 0; }
  .recovery-drill-heading { display: block; }
  .recovery-drill-heading .runtime-assurance-badge { margin-top: 10px; }
  .recovery-drill-metrics { grid-template-columns: 1fr 1fr; }
  .recovery-drill-metrics > span { padding: 10px; border-bottom: 1px solid var(--line); }
  .recovery-drill-metrics > span:first-child { padding-left: 0; }
  .recovery-drill-metrics > span:nth-child(2) { padding-right: 0; border-right: 0; }
  .recovery-drill-metrics > span:nth-child(3) { padding-left: 0; border-bottom: 0; }
  .recovery-drill-metrics > span:last-child { padding-right: 0; border-bottom: 0; }
  .recovery-drill-checks { grid-template-columns: 1fr 1fr; gap: 0 12px; }
  .operations-monitor-metrics { grid-template-columns: 1fr 1fr; }
  .operations-monitor-metrics article { padding: 12px 10px; border-bottom: 1px solid var(--line); }
  .operations-monitor-metrics article:first-child { padding-left: 0; }
  .operations-monitor-metrics article:nth-child(2) { padding-right: 0; border-right: 0; }
  .operations-monitor-metrics article:nth-child(3) { padding-left: 0; border-bottom: 0; }
  .operations-monitor-metrics article:last-child { padding-right: 0; border-bottom: 0; }
  .operations-monitor-body { grid-template-columns: 1fr; gap: 16px; }
  .operations-capacity-row { grid-template-columns: minmax(0,1fr); gap: 5px; }
  .operations-capacity-measure { justify-content: space-between; text-align: left; }
  .service-readiness-metrics { grid-template-columns: 1fr 1fr; }
  .service-readiness-metrics article { padding: 12px 10px; border-bottom: 1px solid var(--line); }
  .service-readiness-metrics article:first-child { padding-left: 0; }
  .service-readiness-metrics article:nth-child(2) { padding-right: 0; border-right: 0; }
  .service-readiness-metrics article:nth-child(3) { padding-left: 0; border-bottom: 0; }
  .service-readiness-metrics article:last-child { padding-right: 0; border-bottom: 0; }
  .service-readiness-checks li { grid-template-columns: 22px 17px minmax(0,1fr); gap: 7px; }
  .service-readiness-checks li > small { grid-column: 3; padding-top: 0; }
  .ai-integration-checks, .pilot-readiness-columns { grid-template-columns: 1fr; }
  .pilot-readiness-summary { grid-template-columns: 1fr; align-items: stretch; }
  .pilot-readiness-summary .secondary-button { width: 100%; }
  .pilot-activation-recommendation { grid-template-columns: 1fr; align-items: stretch; }
  .pilot-activation-recommendation .primary-button { width: 100%; }
  .pilot-class-readiness ul { grid-template-columns: 1fr; }
  .security-baseline-heading { display: block; }
  .security-baseline-heading .runtime-assurance-badge { margin-top: 10px; }
  .security-baseline-metrics { grid-template-columns: 1fr 1fr; }
  .child-data-compliance-metrics { grid-template-columns: 1fr 1fr; }
  .child-data-compliance-metrics span:nth-child(3), .child-data-compliance-metrics span:nth-child(4) { border-top: 1px solid var(--line); }
  .child-data-compliance-metrics span:nth-child(3) { border-left: 0; }
  .security-baseline-metrics > span { padding: 10px; border-bottom: 1px solid var(--line); }
  .security-baseline-metrics > span:first-child { padding-left: 0; }
  .security-baseline-metrics > span:nth-child(2) { padding-right: 0; border-right: 0; }
  .security-baseline-metrics > span:nth-child(3) { padding-left: 0; border-bottom: 0; }
  .security-baseline-metrics > span:last-child { padding-right: 0; border-bottom: 0; }
  .security-baseline-checks { grid-template-columns: 1fr 1fr; gap: 0 12px; }
  .evidence-summary-band { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .evidence-summary-metrics { grid-template-columns: 1fr 1fr; gap: 12px 0; }
  .evidence-summary-metrics div:nth-child(3) { border-left: 0; }
  .weekly-report-content > div + div { padding-left: 0; padding-top: 18px; border-left: 0; border-top: 1px solid var(--line); }
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .stat-card { min-height: 108px; padding: 14px; }
  .stat-card strong { font-size: 23px; }
  .panel-header, .panel-body { padding-left: 14px; padding-right: 14px; }
  .step-item { grid-template-columns: 38px minmax(0,1fr); }
  .step-meta { grid-column: 2; }
  .heatmap { grid-template-columns: 64px repeat(4,minmax(58px,1fr)); gap: 4px; overflow-x: auto; }
  .heat-head, .heat-label, .heat-cell { font-size: 10px; }
  .observation-row { grid-template-columns: 44px minmax(0,1fr); }
  .observation-time { grid-column: 2; }
  .observation-review-summary { grid-template-columns: 1fr; padding: 16px; gap: 14px; }
  .observation-review-summary-metrics { grid-template-columns: 1fr 1fr; }
  .observation-review-summary-metrics > div { padding: 8px 10px; border-bottom: 1px solid #ddd8c5; }
  .observation-review-summary-metrics > div:nth-child(odd) { border-left: 0; }
  .observation-review-row-actions { flex-direction: column; }
  .observation-review-row-actions button { width: 100%; }
  .observation-review-history > div span { align-items: flex-start; flex-direction: column; gap: 2px; }
  .form-grid { grid-template-columns: 1fr; }
  .evidence-fields { grid-template-columns: 1fr; }
  .evidence-fields label:nth-child(2) { grid-row: auto; }
  .evidence-fields textarea { min-height: 82px; }
  .dialog form { padding: 18px; }
  .dialog-footer { align-items: stretch; flex-direction: column; }
  .dialog-footer .primary-button { width: 100%; }
  .mobile-nav {
    position: fixed; z-index: 20; inset: auto 0 0; height: 66px; padding: 5px 8px max(5px, env(safe-area-inset-bottom));
    display: grid; grid-template-columns: repeat(6,1fr); align-items: end;
    background: rgba(255,255,255,.97); border-top: 1px solid var(--line); backdrop-filter: blur(12px);
  }
  html[data-role="teacher"] .mobile-nav { grid-template-columns: repeat(4,1fr); }
  html[data-role="researcher"] .mobile-nav { grid-template-columns: repeat(6,1fr); }
  html[data-role="principal"] .mobile-nav, html[data-role="chief_principal"] .mobile-nav { grid-template-columns: repeat(7,1fr); }
  .mobile-nav-item { height: 52px; border: 0; background: transparent; color: var(--muted); display: grid; place-items: center; align-content: center; gap: 3px; font-size: 10px; }
  .mobile-nav-item svg { width: 19px; height: 19px; }
  .mobile-nav-item.active { color: var(--primary); }
  .mobile-record { width: 48px; height: 48px; align-self: center; justify-self: center; border: 0; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 16px rgba(31,96,72,.25); }
  .mobile-record[hidden] { display: none !important; }
  .teacher-optional-observation-band > header, .teacher-observation-list-section > header { align-items: stretch; flex-direction: column; }
  .teacher-observation-boundaries, .teacher-observation-list { grid-template-columns: 1fr; }
  .teacher-observation-boundaries > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .teacher-observation-item footer { align-items: flex-start; flex-direction: column; }
  .toast { bottom: 82px; }
}
.ai-role-support { margin: 14px 0 0; padding: 14px 16px; border: 1px solid #b9ccc2; border-radius: 6px; background: #f4f9f6; color: #23372d; }
.ai-role-support.loading, .ai-role-support.error { display: flex; align-items: center; gap: 9px; font-weight: 700; }
.ai-role-support.loading svg { animation: ai-support-spin 1s linear infinite; }
.ai-role-support.error { border-color: #e1b9b0; background: #fff5f2; color: #8b3525; }
.ai-role-support header { display: flex; align-items: center; gap: 9px; }
.ai-role-support header > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; background: #1f6048; color: #fff; }
.ai-role-support header div { display: grid; gap: 2px; }
.ai-role-support header small { color: #617369; }
.ai-role-support p { margin: 12px 0 8px; line-height: 1.7; }
.ai-role-support ol { margin: 0; padding-left: 22px; display: grid; gap: 5px; }
.ai-role-support footer { margin-top: 12px; padding-top: 10px; border-top: 1px solid #d4e1da; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.ai-role-support footer b { margin-right: 3px; font-size: 12px; }
.ai-role-support footer span { padding: 3px 7px; border: 1px solid #c7d8cf; border-radius: 4px; background: #fff; color: #426050; font-size: 11px; }
.ai-research-workbench { margin-top: 16px; }
.ai-research-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-research-workbench .panel-body:empty { display: none; }
@keyframes ai-support-spin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .ai-research-workbench .panel-header { align-items: stretch; }
  .ai-research-actions { display: grid; grid-template-columns: 1fr; }
  .ai-research-actions button, [data-ai-management-summary], [data-ai-preparation] { width: 100%; justify-content: center; }
}

@media print {
  .sidebar, .topbar, .mobile-nav, .heading-actions, .icon-button, button { display: none !important; }
  .app-shell, .main-panel { display: block; }
  .view-root { max-width: none; padding: 0; }
  .panel, .hero-band { box-shadow: none; break-inside: avoid; }
}

/* Course kernel and version workspace */
.course-quality-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
}
.course-quality-grid article {
  min-height: 108px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.course-quality-grid span,
.course-quality-grid small { color: var(--muted); font-size: 12px; }
.course-quality-grid strong { font-size: 28px; line-height: 1; }
.course-quality-grid strong small { margin-left: 3px; font-size: 12px; font-weight: 600; }
.timeline.expanded { grid-template-columns: repeat(4, minmax(230px, 1fr)); }
.timeline.expanded .week-card { min-height: 420px; display: flex; flex-direction: column; }
.week-days {
  display: grid;
  gap: 6px;
  margin: 12px 0;
  padding: 0;
  list-style: none;
}
.week-days li {
  min-height: 48px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-subtle);
}
.week-days li.active { border-color: var(--primary); background: var(--mint-soft); }
.week-days li > span {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--primary);
  font-size: 10px;
  font-weight: 800;
}
.week-days strong,
.week-days small { display: block; min-width: 0; overflow-wrap: anywhere; }
.week-days strong { font-size: 12px; line-height: 1.3; }
.week-days small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.timeline.expanded .week-tags { margin-top: auto; }
.rule-result-list { margin: 0; padding-left: 20px; color: var(--text); line-height: 1.7; }
.rule-result-list li::marker { color: var(--primary); }
.quality-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
}
.quality-meta span { display: inline-flex; align-items: center; gap: 5px; }
.quality-meta svg { width: 14px; height: 14px; }
.version-list { display: grid; gap: 0; }
.version-row {
  min-height: 58px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.version-row:last-child { border-bottom: 0; }
.version-number {
  width: 38px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
}
.version-row strong,
.version-row small { display: block; min-width: 0; overflow-wrap: anywhere; }
.version-row strong { font-size: 13px; }
.version-row small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.version-checksum { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; }
.empty-state.compact { min-height: 120px; }

@media (max-width: 900px) {
  .course-quality-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .course-quality-grid { grid-template-columns: 1fr 1fr; }
  .course-quality-grid article { min-height: 96px; padding: 13px; }
  .course-quality-grid strong { font-size: 23px; }
  .timeline.expanded { grid-template-columns: repeat(4, minmax(216px, 1fr)); }
  .version-row { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .version-row .text-button,
  .version-checksum { grid-column: 2 / -1; justify-self: start; }
}


/* Course editor */
.course-editor-dialog { width: min(720px, calc(100vw - 28px)); }
.course-editor-dialog select,
.course-editor-dialog input,
.course-editor-dialog textarea { width: 100%; }
.course-editor-dialog .editor-boundary-note { margin-top: 14px; }
.course-editor-dialog .dialog-footer > span {
  max-width: 62%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  overflow-wrap: anywhere;
}
@media (max-width: 520px) {
  .course-editor-dialog { width: calc(100vw - 20px); }
  .course-editor-dialog .dialog-footer { align-items: stretch; }
  .course-editor-dialog .dialog-footer > span { max-width: none; }
}


/* Daily observation assistant */
.observation-task-panel .panel-body { padding-top: 4px; }
.observation-task-list { display: grid; }
.observation-task-row {
  min-width: 0;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.observation-task-row:last-child { border-bottom: 0; }
.observation-task-heading {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
}
.observation-task-heading > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--mint-soft);
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
}
.observation-task-heading strong,
.observation-task-heading small { display: block; min-width: 0; overflow-wrap: anywhere; }
.observation-task-heading strong { font-size: 13px; }
.observation-task-heading small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.observation-task-row > p {
  margin: 10px 0;
  color: var(--text);
  font-size: 12px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.observation-task-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.observation-task-meta > small {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.observation-task-meta > small svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; }
.observation-task-meta .secondary-button { min-height: 34px; padding: 7px 9px; white-space: nowrap; font-size: 11px; }
.observation-review-actions { display: grid; grid-template-columns: repeat(2, minmax(128px, auto)); gap: 7px; }
.observation-review-actions .primary-button,
.observation-review-actions .secondary-button { min-height: 34px; justify-content: center; padding: 7px 9px; font-size: 10px; white-space: nowrap; }
.observation-task-boundary {
  display: block;
  margin-top: 9px;
  padding-left: 37px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.child-evidence-details { margin-top: 12px; border-top: 1px solid var(--line); }
.child-evidence-details summary {
  padding: 11px 0 2px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--primary);
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  list-style: none;
}
.child-evidence-details summary::-webkit-details-marker { display: none; }
.child-evidence-details summary svg { width: 14px; height: 14px; }
.child-evidence-details > div { margin-top: 7px; display: grid; gap: 7px; }
.child-evidence-details > div p {
  margin: 0;
  padding: 8px 9px;
  border-left: 3px solid var(--line);
  background: var(--surface-subtle);
  color: var(--text);
  font-size: 10px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.child-evidence-details time { display: block; margin-bottom: 3px; color: var(--muted); font-size: 9px; }

@media (max-width: 520px) {
  .observation-task-meta { grid-template-columns: 1fr; }
  .observation-task-meta .secondary-button { width: 100%; justify-content: center; }
  .observation-review-actions { grid-template-columns: 1fr; width: 100%; }
  .observation-review-actions .primary-button,
  .observation-review-actions .secondary-button { width: 100%; }
  .observation-task-boundary { padding-left: 0; }
}


/* Roster coverage and fair observation rotation */
.roster-config-block {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.roster-config-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.roster-config-heading h3 { margin: 0 0 5px; font-size: 14px; }
.roster-config-heading p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.roster-field textarea { width: 100%; min-height: 132px; resize: vertical; line-height: 1.6; }
.roster-field small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.5; }
.roster-editor-add { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
.roster-editor-add input { width: 100%; min-height: 40px; }
.roster-editor-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.roster-editor-row { min-width: 0; min-height: 42px; padding: 5px 6px 5px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.roster-editor-row > span { min-width: 0; display: flex; align-items: center; gap: 7px; }
.roster-editor-row > span svg { width: 15px; height: 15px; color: var(--primary); flex: 0 0 auto; }
.roster-editor-row strong { overflow-wrap: anywhere; font-size: 12px; }
.roster-editor-row small { color: #8a5a16; font-size: 10px; white-space: nowrap; }
.roster-editor-row.pending { border-style: dashed; border-color: #d7a858; background: #fff9ec; }
.roster-editor-row .icon-button { width: 30px; height: 30px; color: #9a352f; }
.roster-editor-empty { padding: 16px; margin-top: 10px; border: 1px dashed var(--line); border-radius: 6px; color: var(--muted); text-align: center; font-size: 12px; }
.child-lifecycle-history { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.child-lifecycle-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.child-lifecycle-history-heading > div { min-width: 0; display: grid; gap: 3px; }
.child-lifecycle-history-heading strong { font-size: 13px; }
.child-lifecycle-history-heading small, .child-lifecycle-history-boundary { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.child-lifecycle-history-heading > b { min-width: 46px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 5px; text-align: center; font-size: 11px; }
.child-lifecycle-history-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
.child-lifecycle-history-list article { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.child-lifecycle-history-list article > span { min-width: 0; display: flex; align-items: center; gap: 6px; }
.child-lifecycle-history-list article > span svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.child-lifecycle-history-list article strong { min-width: 0; overflow-wrap: anywhere; font-size: 12px; }
.child-lifecycle-history-list article > b { align-self: center; padding: 2px 5px; border-radius: 4px; background: #f2f1ec; color: var(--muted); font-size: 10px; }
.child-lifecycle-history-list article > b.transferred { background: #eaf3f7; color: #276078; }
.child-lifecycle-history-list article > b.departed { background: #f6eeee; color: #8c3c36; }
.child-lifecycle-history-list article > b.graduated { background: #edf4e9; color: #386a35; }
.child-lifecycle-history-list article > small, .child-lifecycle-history-list article > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.child-lifecycle-history-empty { grid-column: 1 / -1; padding: 14px; border: 1px dashed var(--line); border-radius: 6px; color: var(--muted); text-align: center; font-size: 11px; }
.child-lifecycle-history-boundary { display: block; margin-top: 7px; }
.coverage-section {
  margin: 18px 0;
  padding: 20px 22px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.coverage-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
}
.coverage-heading h2 { margin: 5px 0 4px; font-size: 18px; }
.coverage-heading p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.coverage-heading > strong { color: var(--primary); font-size: 30px; line-height: 1; }
.coverage-track { height: 7px; margin: 16px 0 14px; overflow: hidden; border-radius: 4px; background: var(--surface-soft); }
.coverage-track span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.coverage-roster { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; }
.coverage-roster > span { color: var(--muted); font-size: 10px; font-weight: 700; }
.coverage-roster > div { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.coverage-child { padding: 5px 8px; border-radius: 4px; background: var(--mint-soft); color: var(--primary); font-size: 10px; font-weight: 700; }
.coverage-complete { color: var(--primary); font-size: 11px; font-weight: 700; }
.coverage-roster small { color: var(--muted); font-size: 10px; }
.empty-coverage { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.empty-coverage h2 { margin: 5px 0; font-size: 18px; }
.empty-coverage p { margin: 0; color: var(--muted); font-size: 11px; }

@media (max-width: 520px) {
  .roster-config-heading { align-items: stretch; flex-direction: column; }
  .roster-config-heading .pill { align-self: flex-start; }
  .roster-editor-add, .roster-editor-list, .child-lifecycle-history-list { grid-template-columns: 1fr; }
  .roster-editor-add .secondary-button { width: 100%; }
  .coverage-section { padding: 17px 14px; }
  .coverage-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .coverage-heading h2 { font-size: 16px; }
  .coverage-heading > strong { font-size: 24px; }
  .coverage-roster { grid-template-columns: 1fr; gap: 7px; }
  .empty-coverage { align-items: stretch; flex-direction: column; }
  .empty-coverage .secondary-button { width: 100%; justify-content: center; }
}


/* Bounded next-day execution package */
.adaptive-active-banner {
  margin-top: 14px;
  padding: 15px 18px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border-left: 4px solid var(--gold);
  background: var(--gold-soft);
}
.adaptive-active-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--gold-strong);
}
.adaptive-active-icon svg { width: 18px; height: 18px; }
.adaptive-active-banner h2 { margin: 3px 0; font-size: 16px; }
.adaptive-active-banner p { margin: 0; color: var(--muted); font-size: 11px; }
.adaptive-active-meta { display: flex; align-items: center; gap: 12px; }
.adaptive-active-meta > span { display: inline-flex; align-items: center; gap: 5px; color: var(--primary); font-size: 10px; font-weight: 700; }
.adaptive-active-meta svg { width: 14px; height: 14px; }
.adaptive-package-panel .panel-body { padding-top: 18px; }
.adaptive-package-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
}
.adaptive-package-summary > div:first-child > strong { font-size: 17px; }
.adaptive-package-summary p { margin: 7px 0 0; color: var(--text); font-size: 12px; line-height: 1.65; }
.adaptive-package-summary > div:last-child { display: flex; gap: 10px; }
.adaptive-package-summary b {
  min-width: 76px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--primary);
  font-size: 20px;
  text-align: center;
}
.adaptive-package-summary b small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 600; }
.adaptive-change-list {
  margin: 16px 0;
  padding: 13px 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 14px;
  background: var(--surface-soft);
}
.adaptive-change-list span { display: flex; gap: 6px; align-items: flex-start; min-width: 0; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.adaptive-change-list svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.adaptive-package-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(220px, .8fr); gap: 22px; }
.adaptive-package-grid h3 { margin: 0 0 10px; font-size: 13px; }
.adaptive-step-list { display: grid; }
.adaptive-step-list article {
  min-width: 0;
  padding: 11px 0;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 9px;
  border-bottom: 1px solid var(--line);
}
.adaptive-step-list article > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--mint-soft); color: var(--primary); font-size: 10px; font-weight: 800; }
.adaptive-step-list strong { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.adaptive-step-list strong small { color: var(--muted); font-size: 9px; }
.adaptive-step-list p { margin: 5px 0; font-size: 10px; line-height: 1.55; }
.adaptive-step-list blockquote { margin: 6px 0 0; padding-left: 9px; border-left: 2px solid var(--gold); color: var(--muted); font-size: 10px; line-height: 1.55; }
.adaptive-role-list { margin-bottom: 18px; display: grid; gap: 8px; }
.adaptive-role-list > div { padding: 9px 10px; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 8px; background: var(--surface-subtle); }
.adaptive-role-list strong { color: var(--primary); font-size: 10px; }
.adaptive-role-list span { font-size: 10px; line-height: 1.5; }
.adaptive-audit-list { display: grid; gap: 7px; }
.adaptive-audit-list span { display: flex; gap: 6px; align-items: center; color: var(--muted); font-size: 10px; }
.adaptive-audit-list svg { width: 14px; height: 14px; color: var(--primary); }
.adaptive-package-footer { margin-top: 16px; padding-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--line); }
.adaptive-package-footer > span { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; }
.adaptive-package-footer > span svg { width: 14px; height: 14px; }

@media (max-width: 700px) {
  .adaptive-active-banner { grid-template-columns: 34px minmax(0, 1fr); }
  .adaptive-active-meta { grid-column: 2; align-items: flex-start; flex-direction: column; gap: 6px; }
  .adaptive-package-summary, .adaptive-package-grid { grid-template-columns: 1fr; }
  .adaptive-change-list { grid-template-columns: 1fr; }
  .adaptive-package-summary > div:last-child { width: 100%; }
  .adaptive-package-summary b { flex: 1; }
  .adaptive-package-footer { align-items: stretch; flex-direction: column; }
  .adaptive-package-footer .primary-button { width: 100%; justify-content: center; }
}


/* Evidence-backed activity debrief */
.debrief-panel { border-top: 3px solid var(--primary); }
.debrief-panel .panel-body { padding-top: 18px; }
.debrief-empty { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.debrief-empty > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.debrief-empty > div > svg { width: 20px; color: var(--primary); }
.debrief-empty p { margin: 0; color: var(--muted); font-size: 12px; }
.debrief-summary { padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; background: var(--surface-soft); }
.debrief-summary > div:first-child { min-width: 0; }
.debrief-summary span, .debrief-label { display: block; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.debrief-summary strong { display: block; margin-top: 6px; font-size: 13px; line-height: 1.55; }
.debrief-metrics { display: grid; grid-template-columns: repeat(3, minmax(70px, 1fr)); }
.debrief-metrics b { min-width: 0; padding: 2px 12px; border-left: 1px solid var(--line); color: var(--primary); font-size: 18px; text-align: center; }
.debrief-metrics b small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; font-weight: 600; white-space: nowrap; }
.debrief-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(230px, .9fr); gap: 0; border-bottom: 1px solid var(--line); }
.debrief-grid > section { min-width: 0; padding: 18px 16px 18px 0; }
.debrief-grid > section + section { padding-left: 20px; border-left: 1px solid var(--line); }
.debrief-grid blockquote { margin: 10px 0 7px; color: var(--primary-strong); font-size: 14px; font-weight: 750; line-height: 1.55; }
.debrief-grid h3 { margin: 10px 0 7px; font-size: 16px; }
.debrief-grid p { margin: 0; color: var(--text); font-size: 11px; line-height: 1.65; overflow-wrap: anywhere; }
.debrief-grid small { display: block; margin-top: 9px; color: var(--muted); font-size: 9px; }
.debrief-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.debrief-tags .tag { font-size: 9px; }
.debrief-tags .tag.muted { color: var(--muted); background: var(--surface-subtle); }
.debrief-handoff { padding: 16px 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr); gap: 24px; }
.debrief-handoff .compact-list { margin: 8px 0 0; }
.debrief-audit { margin-top: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px 12px; }
.debrief-audit span { display: flex; align-items: flex-start; gap: 5px; min-width: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.debrief-audit svg { width: 13px; height: 13px; flex: 0 0 auto; }
.debrief-audit .passed svg { color: var(--primary); }
.debrief-audit .blocked svg { color: var(--coral); }
.debrief-footer { padding-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); }
.debrief-footer > span, .debrief-confirmed { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.debrief-footer > span svg, .debrief-confirmed svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.debrief-footer > div { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.debrief-confirmed { min-height: 34px; padding: 0 8px; color: var(--primary); font-weight: 750; }

@media (max-width: 700px) {
  .debrief-empty, .debrief-footer { align-items: stretch; flex-direction: column; }
  .debrief-empty .primary-button { width: 100%; justify-content: center; }
  .debrief-summary, .debrief-grid, .debrief-handoff { grid-template-columns: 1fr; }
  .debrief-summary { align-items: stretch; }
  .debrief-metrics { width: 100%; }
  .debrief-metrics b:first-child { border-left: 0; }
  .debrief-grid > section { padding: 16px 0; }
  .debrief-grid > section + section { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .debrief-audit { grid-template-columns: 1fr; }
  .debrief-footer > div { display: grid; grid-template-columns: 1fr 1fr; }
  .debrief-footer .primary-button, .debrief-footer .secondary-button { width: 100%; justify-content: center; }
}

@media (max-width: 420px) {
  .debrief-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .debrief-metrics b { padding-left: 6px; padding-right: 6px; font-size: 16px; }
  .debrief-footer > div { grid-template-columns: 1fr; }
}


/* Debrief governance across teaching, research and leadership */
.research-debrief-list { padding-top: 4px; padding-bottom: 4px; }
.research-debrief-row { min-height: 62px; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto 96px; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.research-debrief-row:last-child { border-bottom: 0; }
.research-debrief-row time { color: var(--muted); font-size: 10px; font-weight: 700; }
.research-debrief-row > div { min-width: 0; }
.research-debrief-row > button { justify-self: end; white-space: nowrap; }
.research-debrief-row strong { display: block; font-size: 12px; }
.research-debrief-row small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.research-quality-grid { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); }
.research-exception-list { padding-top: 4px; padding-bottom: 4px; }
.research-exception-row { min-height: 66px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.research-exception-row:last-child { border-bottom: 0; }
.research-exception-row > span { width: 26px; height: 26px; display: grid; place-items: center; color: var(--gold); background: var(--gold-soft); }
.research-exception-row.critical > span { color: var(--coral); background: var(--coral-soft); }
.research-exception-row.watch > span { color: var(--blue); background: var(--blue-soft); }
.research-exception-row svg { width: 14px; height: 14px; }
.research-exception-row strong, .research-exception-row small { display: block; }
.research-exception-row strong { font-size: 11px; }
.research-exception-row small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.governance-workbench { border-top: 3px solid var(--primary); }
.governance-action-list { padding-top: 0; padding-bottom: 0; }
.governance-action-card { padding: 20px 0; border-bottom: 1px solid var(--line); }
.governance-action-card:last-child { border-bottom: 0; }
.governance-action-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.governance-action-title { min-width: 0; display: flex; align-items: center; gap: 11px; }
.governance-action-title > span { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; color: var(--gold); background: var(--gold-soft); border-radius: 6px; }
.governance-action-card.critical .governance-action-title > span { color: var(--coral); background: var(--coral-soft); }
.governance-action-title svg { width: 17px; height: 17px; }
.governance-action-title small, .governance-action-title h3 { display: block; }
.governance-action-title small { color: var(--muted); font-size: 10px; font-weight: 700; }
.governance-action-title h3 { margin: 3px 0 0; font-size: 16px; }
.governance-context { margin: 13px 0 0 45px; display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.governance-context small { white-space: nowrap; }
.governance-action-card blockquote { margin: 16px 0 0; padding: 12px 14px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: var(--ink); font-size: 12px; line-height: 1.7; }
.governance-action-card blockquote strong { display: block; margin-bottom: 3px; color: var(--blue); font-size: 10px; }
.governance-protocol { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr); gap: 24px; margin-top: 18px; }
.governance-protocol > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.governance-protocol > section > strong { display: block; margin-bottom: 10px; font-size: 11px; }
.governance-protocol ol, .governance-protocol ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.governance-protocol li { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.governance-protocol ol li > span { width: 20px; height: 20px; flex: 0 0 20px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--primary); font-size: 9px; font-weight: 800; }
.governance-protocol li p { margin: 1px 0 0; }
.governance-protocol ul svg { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 2px; color: var(--primary); }
.governance-action-card > footer { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.governance-action-card > footer > span { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; }
.governance-action-card > footer svg { width: 14px; height: 14px; }
.governance-history-list { padding-top: 4px; padding-bottom: 4px; }
.governance-history-row { min-height: 62px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.governance-history-row:last-child { border-bottom: 0; }
.governance-history-row > span { color: var(--primary); }
.governance-history-row svg { width: 18px; height: 18px; }
.governance-history-row strong, .governance-history-row small { display: block; }
.governance-history-row strong { font-size: 11px; }
.governance-history-row small, .governance-history-row time { margin-top: 4px; color: var(--muted); font-size: 9px; }
.quality-clear { min-height: 90px; justify-content: center; color: var(--primary); }
.dashboard-quality-panel { border-top: 3px solid var(--primary); }
.quality-governance-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 24px; }
.quality-governance-grid > section { min-width: 0; }
.quality-governance-grid > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.quality-metric-strip { margin-top: 9px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--surface-soft); }
.quality-metric-strip > div { min-width: 0; padding: 14px 12px; border-left: 1px solid var(--line); }
.quality-metric-strip > div:first-child { border-left: 0; }
.quality-metric-strip strong, .quality-metric-strip span { display: block; }
.quality-metric-strip strong { color: var(--primary); font-size: 20px; }
.quality-metric-strip span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.quality-subheading { margin-top: 18px; }
.quality-exception-preview { margin: 8px 0 0; padding: 0; list-style: none; display: grid; }
.quality-exception-preview li { min-height: 40px; display: flex; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); }
.quality-exception-preview li:last-child { border-bottom: 0; }
.quality-exception-preview .status-dot { width: 7px; height: 7px; box-shadow: none; }
.status-dot.error { background: var(--coral); }
.status-dot.warning { background: var(--gold); }
.quality-exception-preview strong, .quality-exception-preview small { display: block; }
.quality-exception-preview strong { font-size: 10px; }
.quality-exception-preview small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.quality-no-exception { color: var(--primary); font-size: 10px; }
.quality-no-exception svg { width: 15px; height: 15px; }
.quality-recommendation-list { margin-top: 12px; display: grid; gap: 12px; }
.quality-recommendation-row { display: grid; grid-template-columns: minmax(94px, .8fr) minmax(100px, 1fr) 28px; align-items: center; gap: 10px; font-size: 10px; }
.quality-recommendation-row > div { height: 7px; overflow: hidden; background: var(--surface-soft); }
.quality-recommendation-row i { height: 100%; display: block; background: var(--primary); }
.quality-recommendation-row b { text-align: right; }

@media (max-width: 900px) {
  .research-quality-grid, .quality-governance-grid { grid-template-columns: 1fr; }
  .quality-governance-grid > section + section { padding-top: 20px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .governance-protocol { grid-template-columns: 1fr; gap: 18px; }
  .governance-protocol > section + section { padding-top: 18px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 600px) {
  .research-debrief-row { padding: 12px 0; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; }
  .research-debrief-row time { grid-column: 1; }
  .research-debrief-row > div { grid-column: 1; }
  .research-debrief-row > .status-badge { grid-column: 2; grid-row: 1; }
  .research-debrief-row > button { grid-column: 2; grid-row: 2; }
  .research-exception-row { padding: 10px 0; grid-template-columns: 26px minmax(0, 1fr); }
  .research-exception-row > button { grid-column: 2; justify-self: start; }
  .governance-action-card { padding: 17px 0; }
  .governance-action-card > header { align-items: center; }
  .governance-action-title h3 { font-size: 14px; }
  .governance-context { margin-left: 0; flex-direction: column; gap: 4px; }
  .governance-context small { white-space: normal; }
  .governance-action-card > footer { align-items: stretch; flex-direction: column; }
  .governance-action-card > footer button { width: 100%; }
  .governance-history-row { padding: 10px 0; grid-template-columns: 24px minmax(0, 1fr); }
  .governance-history-row time { grid-column: 2; }
  .quality-metric-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quality-metric-strip > div { padding: 12px 7px; }
  .quality-metric-strip strong { font-size: 17px; }
}


.class-overview-list { display: grid; gap: 8px; margin-top: 14px; }
.class-overview-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.class-overview-item strong, .class-overview-item small { display: block; }
.class-overview-item small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.class-overview-item.current { border-color: #9fbcae; background: var(--primary-soft); }
.class-overview-item.inactive { border-style: dashed; background: #f5f6f5; }
.class-overview-item.inactive > div:first-child { opacity: .72; }
.class-overview-heading { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.class-overview-heading strong { font-size: 13px; }
.class-overview-heading small { color: var(--muted); font-size: 10px; text-align: right; }
.class-overview-actions { display: flex; gap: 4px; }
.class-overview-actions .icon-button { width: 32px; height: 32px; }
.class-overview-actions .delete-unused-class { color: #9a352f; }
.class-summary-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 10px; margin-bottom: 16px; }
.class-summary-card { border: 1px solid var(--line); border-radius: 7px; padding: 14px; background: var(--surface); }
.class-summary-card header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.class-summary-card h3 { margin: 0; font-size: 15px; }
.class-summary-card p { margin: 11px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.class-summary-card .metric-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin-top: 12px; }
.class-summary-card .metric-row span { display: grid; gap: 2px; padding: 7px; background: var(--surface-soft); border-radius: 5px; font-size: 10px; color: var(--muted); }
.class-summary-card .metric-row b { color: var(--ink); font-size: 15px; }
.permission-notice { display: flex; align-items: center; gap: 10px; padding: 12px 14px; margin-bottom: 16px; border: 1px solid #c7d8cf; border-radius: 6px; background: var(--primary-soft); color: var(--primary-dark); font-size: 13px; }
[hidden] { display: none !important; }
@media (max-width: 720px) {
  .topbar-actions .avatar-button { display: none; }
  .class-overview-item { grid-template-columns: minmax(0,1fr) auto; }
  .class-overview-actions { grid-column: 1 / -1; justify-content: flex-end; border-top: 1px solid var(--line); padding-top: 7px; }
  .class-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  body { min-width: 0; }
  .topbar { padding-inline: 10px; }
  .tenant-select { min-width: 0; font-size: 12px; }
  .class-select { flex-basis: 82px; width: 82px; max-width: 82px; padding-left: 7px; padding-right: 22px; }
}

/* Full-garden project launch command board */
.organization-launch-board {
  margin-bottom: 16px;
  scroll-margin-top: 68px;
  border-top: 3px solid var(--primary);
  border-bottom: 1px solid #cfd8d3;
  background: #fff;
}
.organization-launch-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px 15px;
}
.organization-launch-heading h2 { margin: 4px 0 5px; font-size: 19px; }
.organization-launch-heading p { max-width: 720px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.organization-launch-metrics { display: grid; grid-template-columns: repeat(4,auto); gap: 6px; flex: 0 0 auto; }
.organization-launch-metrics > span { display: grid; min-width: 66px; padding: 8px 10px; border-left: 2px solid #9ebcaf; color: var(--muted); font-size: 9px; }
.organization-launch-metrics > span.attention { border-left-color: #d1a13e; }
.organization-launch-metrics > span.blocked { border-left-color: #be6157; }
.organization-launch-metrics strong { color: var(--ink); font-size: 19px; line-height: 1; }
.launch-board-toolbar { display: flex; gap: 0; padding: 0 20px 12px; overflow-x: auto; scrollbar-width: none; }
.launch-board-toolbar::-webkit-scrollbar { display: none; }
.launch-board-filter {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-right: 0;
  color: var(--muted);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.launch-board-filter:last-child { border-right: 1px solid var(--line); }
.launch-board-filter.active { border-color: var(--primary); color: #fff; background: var(--primary); }
.launch-board-filter.active + .launch-board-filter { border-left-color: var(--primary); }
.launch-board-filter b { display: grid; min-width: 18px; height: 18px; place-items: center; color: inherit; background: rgba(114,128,120,.12); font-size: 9px; }
.launch-board-filter.active b { background: rgba(255,255,255,.18); }
.launch-board-batchbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 9px 20px;
  border-top: 1px solid #dfe7e2;
  background: #f6f9f7;
}
.launch-board-batchbar > div { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-width: 0; }
.launch-board-batchbar > div > span { color: #66756e; font-size: 10px; line-height: 1.45; text-align: right; }
.launch-board-batchbar .primary-button { min-width: 154px; min-height: 34px; padding: 7px 11px; font-size: 10px; white-space: nowrap; }
.launch-board-select-all,
.launch-board-select {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #3d6753;
  cursor: pointer;
}
.launch-board-select-all { gap: 7px; min-width: 0; font-size: 11px; font-weight: 800; }
.launch-board-select-all input,
.launch-board-select input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.launch-board-select-all span { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.launch-board-select-all svg { width: 17px; height: 17px; flex: 0 0 auto; }
.launch-board-select {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  justify-content: center;
  border: 1px solid #c8d8cf;
  background: #fff;
}
.launch-board-select:hover { border-color: var(--primary); background: #edf5f0; }
.launch-board-select:focus-within,
.launch-board-select-all:focus-within { outline: 2px solid rgba(47,111,83,.32); outline-offset: 2px; }
.launch-board-select svg { width: 15px; height: 15px; }
.launch-board-select.locked { border-color: transparent; color: #619075; background: #edf5f0; cursor: default; }
.launch-board-reminder.scheduled { color: #8a651f; font-weight: 800; }
.launch-board-reminder.overdue { color: #aa4037; font-weight: 900; }
.launch-board-reminder.received { color: #367356; font-weight: 800; }
.organization-launch-list { border-top: 1px solid var(--line); }
.organization-launch-row {
  display: grid;
  grid-template-areas: "class project handoff gate material outcome action";
  grid-template-columns: minmax(110px,.8fr) minmax(150px,1.1fr) minmax(118px,.9fr) minmax(105px,.75fr) minmax(145px,1.1fr) minmax(125px,.9fr) auto;
  gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 12px 16px;
  border-left: 4px solid #d5b35b;
  border-bottom: 1px solid var(--line);
}
.organization-launch-row.blocked,
.organization-launch-row.unissued,
.organization-launch-row.overdue { border-left-color: #be6157; }
.organization-launch-row.ready { border-left-color: #5c9678; background: #f6faf7; }
.launch-board-class { grid-area: class; display: flex; gap: 9px; align-items: center; min-width: 0; }
.launch-board-grade { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: var(--primary-dark); background: #e9f1ed; font-size: 9px; font-weight: 900; }
.launch-board-class strong,
.launch-board-class small,
.launch-board-project strong,
.launch-board-project small,
.launch-board-progress b,
.launch-board-progress small,
.launch-board-material strong,
.launch-board-material small,
.launch-board-outcome small { display: block; }
.launch-board-class strong { font-size: 12px; }
.launch-board-class small,
.launch-board-project small,
.launch-board-progress small,
.launch-board-material small,
.launch-board-outcome small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.launch-board-project { grid-area: project; min-width: 0; }
.launch-board-project strong { font-size: 11px; line-height: 1.45; }
.launch-board-progress { min-width: 0; }
.launch-board-progress:nth-of-type(3) { grid-area: handoff; }
.launch-board-progress:nth-of-type(4) { grid-area: gate; }
.launch-board-progress b { font-size: 10px; }
.launch-board-progress .progress-track { height: 5px; margin-top: 7px; overflow: hidden; background: #e9ece9; }
.launch-board-progress .progress-track i { display: block; height: 100%; background: var(--primary); }
.launch-board-material { grid-area: material; display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 7px; align-items: start; min-width: 0; }
.launch-board-material > svg { width: 18px; height: 18px; color: var(--primary); }
.launch-board-material.blocked > svg { color: #a84037; }
.launch-board-material strong { font-size: 10px; }
.launch-board-outcome { grid-area: outcome; min-width: 0; }
.organization-launch-open { grid-area: action; min-width: 104px; gap: 5px; padding: 8px 7px; font-size: 10px; white-space: nowrap; }
.organization-launch-empty { display: flex; min-height: 120px; align-items: center; justify-content: center; gap: 10px; color: var(--muted); }
.organization-launch-empty > svg { width: 24px; height: 24px; color: var(--primary); }
.organization-launch-empty strong,
.organization-launch-empty span { display: block; }
.organization-launch-empty strong { color: var(--ink); font-size: 12px; }
.organization-launch-empty span { margin-top: 3px; font-size: 9px; }

@media (max-width: 1180px) {
  .organization-launch-heading { flex-direction: column; gap: 14px; }
  .organization-launch-metrics { width: 100%; grid-template-columns: repeat(4,minmax(0,1fr)); }
  .organization-launch-row {
    grid-template-areas: "class project handoff gate" "material material outcome action";
    grid-template-columns: minmax(120px,.8fr) minmax(180px,1.2fr) minmax(130px,1fr) minmax(120px,.8fr);
  }
}

@media (max-width: 680px) {
  .organization-launch-heading { padding: 15px; }
  .organization-launch-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .launch-board-toolbar { padding: 0 15px 12px; }
  .launch-board-batchbar { display: grid; gap: 10px; padding: 11px 15px; }
  .launch-board-batchbar > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; }
  .launch-board-batchbar > div > span { text-align: left; }
  .launch-board-batchbar .primary-button { min-width: 0; }
  .organization-launch-row {
    grid-template-areas: "class outcome" "project project" "handoff gate" "material material" "action action";
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 11px 14px;
    padding: 13px 15px;
  }
  .launch-board-outcome { justify-self: end; text-align: right; }
  .launch-board-project { padding-top: 9px; border-top: 1px solid var(--line); }
  .organization-launch-open { width: 100%; }
}

@media (max-width: 430px) {
  .launch-board-batchbar > div { grid-template-columns: 1fr; }
  .launch-board-batchbar .primary-button { width: 100%; }
  .launch-board-class { gap: 7px; }
  .launch-board-grade { width: 30px; height: 30px; }
}


.auth-dialog { width: min(440px, calc(100vw - 24px)); }
.auth-dialog form { min-height: 320px; }
.organization-dialog { width: min(480px, calc(100vw - 24px)); }
.organization-dialog form { display: grid; gap: 16px; }
.organization-dialog-copy { margin: -5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.organization-dialog .dialog-footer > div { display: flex; gap: 8px; }
.lifecycle-dialog, .roster-import-dialog { width: min(580px, calc(100vw - 24px)); overflow: auto; }
.condition-impact-dialog { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 32px); overflow: auto; }
.condition-impact-dialog form { display: grid; }
.condition-impact-dialog .condition-change-impact { margin: 0; }
.condition-impact-dialog .condition-impact-rows { max-height: 260px; overflow: auto; }
.condition-impact-dialog .dialog-footer > div { display: flex; gap: 8px; }
.lifecycle-dialog .dialog-footer > div, .roster-import-dialog .dialog-footer > div { display: flex; gap: 8px; }
.roster-import-preview { min-height: 70px; margin-top: 12px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.roster-import-empty { min-height: 70px; display: grid; place-items: center; padding: 14px; color: var(--muted); font-size: 12px; text-align: center; }
.import-accepted, .import-issues { display: grid; gap: 5px; padding: 12px 14px; }
.import-accepted { border-left: 4px solid #4b875d; background: #f4faf6; }
.import-issues { max-height: 170px; overflow: auto; border-top: 1px solid var(--line); border-left: 4px solid #b8752c; background: #fffaf2; }
.import-accepted strong, .import-issues strong { font-size: 12px; }
.import-accepted span, .import-issues span { color: var(--muted); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 520px) {
  .lifecycle-fields { grid-template-columns: 1fr; }
  .lifecycle-dialog .dialog-footer, .roster-import-dialog .dialog-footer, .condition-impact-dialog .dialog-footer { align-items: stretch; flex-direction: column; }
  .lifecycle-dialog .dialog-footer > div, .roster-import-dialog .dialog-footer > div, .condition-impact-dialog .dialog-footer > div { display: grid; grid-template-columns: 1fr 1fr; }
  .class-overview-heading { align-items: flex-start; flex-direction: column; }
  .class-overview-heading small { text-align: left; }
}
.auth-dialog #loginPanel > label + label { margin-top: 14px; }
.auth-error { min-height: 20px; margin: 10px 0 0; color: #a83f32; font-size: 12px; line-height: 1.5; }
.identity-profile { display: flex; align-items: center; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); }
.identity-profile-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: #fff; font-weight: 800; }
.identity-profile strong, .identity-profile small { display: block; }
.identity-profile small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.identity-scope-list { margin: 18px 0 0; }
.identity-scope-list > div { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.identity-scope-list dt { color: var(--muted); font-size: 12px; }
.identity-scope-list dd { margin: 0; font-size: 12px; font-weight: 700; text-align: right; }
.session-security-note { margin: 14px 0 0; padding: 11px 12px; border-left: 3px solid var(--primary); background: var(--primary-soft); color: var(--primary-dark); font-size: 12px; line-height: 1.55; }
.audit-list { display: grid; }
.audit-row { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.audit-row time, .audit-row small { color: var(--muted); font-size: 11px; }
.audit-row strong, .audit-row small { display: block; }
.audit-row small { margin-top: 3px; }
@media (max-width: 720px) {
  .identity-button { min-width: 72px; width: 72px; padding: 0 7px; gap: 5px; }
  .identity-button > svg { display: none; }
  .identity-button strong { max-width: 58px; }
  .identity-button small { display: none; }
  .audit-row { grid-template-columns: 1fr auto; }
  .audit-row time { grid-column: 1 / -1; }
}

.conflict-workbench {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
}
.conflict-workbench.is-clear { border-color: #c7d8cf; background: var(--primary-soft); }
.conflict-workbench-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.conflict-workbench-heading h2 { margin: 3px 0 6px; font-size: 18px; }
.conflict-workbench-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.conflict-clear-icon { display: grid; place-items: center; width: 38px; height: 38px; color: var(--primary); }
.conflict-clear-icon svg { width: 28px; height: 28px; }
.conflict-case-list { margin-top: 18px; border-top: 1px solid var(--line); }
.conflict-case { border-bottom: 1px solid var(--line); }
.conflict-case-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
}
.conflict-case-heading h3 { margin: 7px 0 4px; font-size: 15px; }
.conflict-case-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.conflict-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.conflict-case-body { padding: 0 0 18px; }
.conflict-case-body[hidden] { display: none; }
.conflict-field-list { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.conflict-field { padding: 14px; background: #fff; }
.conflict-field + .conflict-field { border-top: 1px solid var(--line); }
.conflict-field.locked { background: var(--surface); }
.conflict-field-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 9px;
}
.conflict-field-name strong { font-size: 13px; }
.conflict-field-name span { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.conflict-field-name svg { width: 13px; height: 13px; }
.conflict-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.conflict-values > div,
.conflict-values > label {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--surface);
  cursor: pointer;
}
.conflict-values > div.selected { border-color: #9fbcae; background: var(--primary-soft); }
.conflict-values input { margin: 0 6px 0 0; accent-color: var(--primary); }
.conflict-values span { color: var(--muted); font-size: 11px; font-weight: 700; }
.conflict-values label:has(input:checked) { border-color: #7da18e; background: var(--primary-soft); }
.conflict-values pre {
  max-height: 180px;
  margin: 8px 0 0;
  overflow: auto;
  color: var(--ink);
  font: 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.conflict-identical {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px;
  color: var(--primary-dark);
  background: var(--primary-soft);
  font-size: 12px;
}
.conflict-identical svg { width: 17px; height: 17px; }
.conflict-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

@media (max-width: 680px) {
  .conflict-workbench { padding: 16px; }
  .conflict-workbench-heading { align-items: center; }
  .conflict-values { grid-template-columns: 1fr; }
  .conflict-field-name { align-items: flex-start; flex-direction: column; gap: 4px; }
  .conflict-actions { display: grid; grid-template-columns: 1fr; }
  .conflict-actions button { width: 100%; }
}

.user-admin-section {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
}
.user-admin-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.user-admin-heading h2 { margin: 3px 0 6px; font-size: 18px; }
.user-admin-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.create-user-form {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #b7d0c3;
  border-radius: 6px;
  background: var(--primary-soft);
}
.create-user-form[hidden] { display: none; }
.user-form-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.user-form-grid > label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.user-form-grid input,
.user-form-grid select { min-width: 0; width: 100%; }
.user-active-field .toggle-row.compact { min-height: 38px; margin: 0; padding: 0 2px; border: 0; }
.user-admin-list { margin-top: 18px; border-top: 1px solid var(--line); }
.user-admin-row { padding: 14px 0; border-bottom: 1px solid var(--line); }
.user-admin-row.inactive { opacity: .68; }
.user-admin-summary {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 11px;
}
.user-admin-avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-weight: 800;
}
.user-admin-summary h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 3px; font-size: 14px; }
.user-admin-summary h3 small { padding: 2px 6px; border-radius: 10px; background: var(--surface); color: var(--muted); font-size: 10px; }
.user-admin-summary p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.user-admin-details { margin: 10px 0 0 45px; }
.user-admin-details summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.user-admin-details summary::-webkit-details-marker { display: none; }
.user-admin-details summary svg { width: 14px; height: 14px; }
.user-edit-form { padding-top: 14px; }
.user-grant-heading { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0 8px; }
.user-grant-heading strong { font-size: 12px; }
.user-grant-heading span { color: var(--muted); font-size: 11px; }
.user-tenant-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.user-tenant-grant { padding: 11px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.user-tenant-grant.disabled .user-class-grants { opacity: .4; }
.user-tenant-toggle { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.user-tenant-toggle input,
.user-class-check input { accent-color: var(--primary); }
.user-class-grants { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.user-class-check { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--muted); font-size: 11px; }
.user-form-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

@media (max-width: 900px) {
  .user-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .user-admin-section { padding: 16px; }
  .user-admin-heading { align-items: center; }
  .user-admin-heading .secondary-button { flex: 0 0 auto; }
  .user-form-grid,
  .user-tenant-list { grid-template-columns: 1fr; }
  .user-admin-details { margin-left: 0; }
  .user-grant-heading { flex-direction: column; gap: 4px; }
  .user-form-actions { display: grid; grid-template-columns: 1fr; }
  .user-form-actions button { width: 100%; }
}

.age-protocol-band {
  margin-top: 16px;
  padding: 18px 0;
  border-top: 1px solid #b8cdc2;
  border-bottom: 1px solid #b8cdc2;
  background: #fff;
}
.age-protocol-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 0 18px 14px;
}
.age-protocol-heading h2 { margin: 4px 0 0; font-size: 17px; }
.age-protocol-heading .status-badge { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.age-protocol-heading .status-badge svg { width: 14px; height: 14px; }
.age-protocol-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.age-protocol-item { min-width: 0; padding: 13px 18px; }
.age-protocol-item + .age-protocol-item { border-left: 1px solid var(--line); }
.age-protocol-item span { color: var(--primary-dark); font-size: 11px; font-weight: 800; }
.age-protocol-item p { margin: 6px 0 0; color: var(--ink); font-size: 12px; line-height: 1.65; }
.age-protocol-boundary {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  padding: 13px 18px 8px;
}
.age-protocol-boundary span {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}
.age-protocol-boundary svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px; color: var(--primary); }
.age-protocol-source { display: block; padding: 0 18px; color: var(--muted); font-size: 10px; }

@media (max-width: 900px) {
  .age-protocol-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .age-protocol-item:nth-child(odd) { border-left: 0; }
  .age-protocol-item:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 680px) {
  .age-protocol-heading { align-items: flex-start; flex-direction: column; gap: 9px; padding-inline: 15px; }
  .age-protocol-grid { grid-template-columns: 1fr; }
  .age-protocol-item { padding: 12px 15px; }
  .age-protocol-item + .age-protocol-item { border-left: 0; border-top: 1px solid var(--line); }
  .age-protocol-boundary { grid-template-columns: 1fr; padding-inline: 15px; }
  .age-protocol-source { padding-inline: 15px; }
}

.weekly-prep-band {
  margin-top: 16px;
  padding: 18px;
  border-top: 1px solid #cad6d0;
  border-bottom: 1px solid #cad6d0;
  background: #f8faf9;
}
.weekly-prep-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.weekly-prep-heading h2 { margin: 4px 0 5px; font-size: 18px; }
.weekly-prep-heading p { max-width: 660px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.weekly-prep-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.weekly-prep-metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  margin-top: 15px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.weekly-prep-metrics > div { padding: 12px 14px; }
.weekly-prep-metrics > div + div { border-left: 1px solid var(--line); }
.weekly-prep-metrics strong { display: block; color: var(--primary-dark); font-size: 22px; }
.weekly-prep-metrics strong small { margin-left: 2px; font-size: 11px; }
.weekly-prep-metrics span { color: var(--muted); font-size: 11px; }
.weekly-prep-details {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr);
  gap: 20px;
  padding-top: 18px;
}
.weekly-prep-details > section + section { padding-left: 20px; border-left: 1px solid var(--line); }
.weekly-prep-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.weekly-prep-subheading h3,
.weekly-safety-strip h3 { margin: 3px 0 0; font-size: 14px; }
.weekly-prep-days { border-top: 1px solid var(--line); }
.weekly-prep-day {
  display: grid;
  grid-template-columns: 54px minmax(0,1fr) 70px;
  align-items: center;
  gap: 11px;
  min-height: 58px;
  border-bottom: 1px solid var(--line);
}
.weekly-prep-date b,
.weekly-prep-date small { display: block; }
.weekly-prep-date b { color: var(--primary-dark); font-size: 12px; }
.weekly-prep-date small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.weekly-prep-day > div strong,
.weekly-prep-day > div small { display: block; }
.weekly-prep-day > div strong { font-size: 12px; }
.weekly-prep-day > div small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.weekly-progress { text-align: right; }
.weekly-progress b { color: var(--primary-dark); font-size: 11px; }
.weekly-progress > span { display: block; height: 4px; margin-top: 5px; overflow: hidden; background: #dfe7e3; }
.weekly-progress i { display: block; height: 100%; background: var(--primary); }
.weekly-material-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.weekly-material-chip { display: grid; grid-template-columns: auto minmax(0,1fr); column-gap: 6px; padding: 7px 8px; border: 1px solid var(--line); background: #fff; }
.weekly-material-chip svg { grid-row: 1 / 3; width: 15px; height: 15px; margin-top: 2px; color: var(--primary); }
.weekly-material-chip b { font-size: 11px; }
.weekly-material-chip small { color: var(--muted); font-size: 9px; }
.weekly-prep-note { display: block; margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.weekly-role-table { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.weekly-role-row {
  display: grid;
  grid-template-columns: 48px repeat(3,minmax(0,1fr));
  border-top: 1px solid var(--line);
}
.weekly-role-row > b,
.weekly-role-row > span { min-width: 0; padding: 10px; font-size: 10px; line-height: 1.5; }
.weekly-role-row > span { border-left: 1px solid var(--line); }
.weekly-role-row small { display: block; margin-bottom: 3px; color: var(--primary-dark); font-size: 9px; font-weight: 800; }
.weekly-safety-strip {
  display: grid;
  grid-template-columns: 170px minmax(0,1fr);
  gap: 18px;
  align-items: start;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.weekly-safety-strip ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 18px; margin: 0; padding: 0; list-style: none; }
.weekly-safety-strip li { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 7px; align-items: start; color: var(--muted); font-size: 10px; line-height: 1.5; }
.weekly-safety-strip li svg { width: 14px; height: 14px; color: var(--primary); }
.weekly-safety-strip li b { color: var(--primary-dark); font-size: 9px; white-space: nowrap; }

@media (max-width: 900px) {
  .weekly-prep-details { grid-template-columns: 1fr; }
  .weekly-prep-details > section + section { padding: 16px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .weekly-role-table { overflow-x: auto; }
  .weekly-role-row { min-width: 720px; }
}
@media (max-width: 680px) {
  .weekly-prep-band { padding: 15px; }
  .weekly-prep-heading { flex-direction: column; }
  .weekly-prep-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .weekly-prep-actions button { width: 100%; }
  .weekly-prep-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .weekly-prep-metrics > div:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .weekly-prep-metrics > div:nth-child(4) { border-top: 1px solid var(--line); }
  .weekly-prep-day { grid-template-columns: 48px minmax(0,1fr) 54px; }
  .weekly-safety-strip { grid-template-columns: 1fr; }
  .weekly-safety-strip ul { grid-template-columns: 1fr; }
}


/* Project catalog and class-level course assignment */
.project-catalog-band {
  margin-bottom: 16px;
  padding: 20px;
  border: 1px solid #cfdad5;
  border-left: 4px solid var(--primary);
  background: #f7faf8;
}
.project-catalog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}
.project-catalog-header h2 { margin: 4px 0 5px; font-size: 19px; }
.project-catalog-header p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.project-assignment-state {
  display: grid;
  gap: 4px;
  min-width: 220px;
  padding-left: 16px;
  border-left: 1px solid var(--line);
}
.project-assignment-state span { display: flex; gap: 7px; align-items: center; color: var(--primary-dark); font-size: 12px; font-weight: 800; }
.project-assignment-state svg { width: 16px; height: 16px; }
.project-assignment-state small { color: var(--muted); font-size: 10px; }
.project-condition-profile { display: flex; align-items: center; gap: 9px; margin: -3px 0 14px; padding: 9px 11px; border: 1px solid #d7e4dd; background: #fff; }
.project-condition-profile > svg { flex: 0 0 auto; width: 17px; height: 17px; color: var(--primary); }
.project-condition-profile strong, .project-condition-profile small { display: block; }
.project-condition-profile strong { color: #315847; font-size: 11px; }
.project-condition-profile small { margin-top: 2px; color: #6d7b74; font-size: 10px; line-height: 1.4; }
.project-discovery-toolbar {
  display: grid;
  grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr);
  gap: 16px;
  align-items: end;
  margin: 0 0 12px;
  padding: 13px 14px;
  border-top: 1px solid #d7e4dd;
  border-bottom: 1px solid #d7e4dd;
  background: #fff;
}
.project-discovery-toolbar form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; align-items: center; }
.project-discovery-toolbar form > label,
.project-discovery-toolbar > div > span { color: #4f6258; font-size: 10px; font-weight: 800; }
.project-discovery-toolbar form > div { position: relative; grid-column: 1 / -1; display: grid; grid-template-columns: 28px minmax(0,1fr) 32px auto; align-items: center; min-height: 38px; border: 1px solid #cbd8d1; background: #fbfdfc; }
.project-discovery-toolbar form > div > span { display: grid; place-items: center; color: var(--primary); }
.project-discovery-toolbar form > div > span svg { width: 15px; height: 15px; }
.project-discovery-toolbar input { width: 100%; min-width: 0; height: 36px; padding: 0 7px; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; font-size: 12px; }
.project-discovery-toolbar input:focus { box-shadow: inset 0 -2px 0 var(--primary); }
.project-discovery-toolbar form .icon-button { width: 30px; height: 30px; min-height: 30px; }
.project-discovery-toolbar form > small { grid-column: 2; grid-row: 1; color: #748179; font-size: 9px; text-align: right; }
.project-discovery-toolbar > div { min-width: 0; }
.project-profile-filters { display: flex; margin-top: 5px; overflow-x: auto; }
.project-profile-filters button { display: inline-flex; min-height: 38px; align-items: center; gap: 5px; padding: 7px 10px; border: 1px solid #d9e2dc; border-right: 0; color: #5e6e65; background: #fff; font: inherit; font-size: 10px; white-space: nowrap; cursor: pointer; }
.project-profile-filters button:first-child { border-radius: 5px 0 0 5px; }
.project-profile-filters button:last-child { border-right: 1px solid #d9e2dc; border-radius: 0 5px 5px 0; }
.project-profile-filters button.active { color: #fff; background: #3e6654; }
.project-profile-filters button span { min-width: 18px; padding: 1px 5px; border-radius: 8px; background: rgba(74,94,83,.1); text-align: center; }
.project-profile-filters button.active span { background: rgba(255,255,255,.2); }
.project-catalog-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
}
.project-catalog-card {
  display: flex;
  min-width: 0;
  min-height: 330px;
  flex-direction: column;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}
.project-catalog-card.active {
  border-color: var(--primary);
  box-shadow: inset 0 3px 0 var(--primary);
}
.project-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.project-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid #cfdad5;
  border-radius: 6px;
  color: var(--primary-dark);
  background: #eef4f1;
}
.project-icon svg { width: 17px; height: 17px; }
.project-catalog-card h3 { margin: 13px 0 4px; font-size: 16px; }
.project-catalog-card > p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.project-catalog-card .project-question { min-height: 36px; color: var(--ink); font-size: 12px; font-weight: 800; }
.project-meta { display: flex; flex-wrap: wrap; gap: 7px 10px; margin-top: 12px; }
.project-meta span { display: inline-flex; gap: 4px; align-items: center; color: var(--primary-dark); font-size: 10px; font-weight: 700; }
.project-meta svg { width: 13px; height: 13px; }
.project-context {
  display: grid;
  gap: 7px;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--line);
}
.project-context span {
  display: grid;
  grid-template-columns: 14px minmax(0,1fr);
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}
.project-context svg { width: 14px; height: 14px; color: var(--primary); }
.project-condition-actions { margin-top: 10px; padding: 9px 10px; border-left: 3px solid #b38335; background: #fffaf0; }
.project-condition-actions > strong { display: flex; align-items: center; gap: 5px; color: #795b24; font-size: 10px; }
.project-condition-actions > strong svg { width: 13px; height: 13px; }
.project-condition-actions ul { display: grid; gap: 4px; margin: 6px 0 0; padding-left: 16px; color: #6d6045; font-size: 10px; line-height: 1.45; }
.project-history-note {
  display: grid;
  grid-template-columns: 14px minmax(0,1fr);
  gap: 6px;
  margin: auto 0 10px;
  padding-top: 12px;
  color: #55635d;
  font-size: 9px;
  line-height: 1.45;
}
.project-history-note svg { width: 14px; height: 14px; color: var(--primary); }
.project-card-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0 0 7px; }
.project-card-tools .secondary-button { min-width: 0; min-height: 34px; padding: 7px 6px; font-size: 9px; }
.project-card-tools .secondary-button.active { border-color: #47765f; color: #fff; background: #47765f; }
.project-card-tools svg { width: 13px; height: 13px; }
.project-catalog-card > button { width: 100%; min-height: 36px; }
.project-active-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #b9d2c6;
  color: var(--primary-dark);
  background: #eaf4ef;
  font-size: 11px;
  font-weight: 800;
}
.project-active-button svg { width: 15px; height: 15px; }
.project-view-only {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
}
.project-view-only svg { width: 14px; height: 14px; }
.theme-trial-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
}
.theme-trial-actions .secondary-button { min-width: 0; }
.theme-trial-actions .secondary-button:last-child { grid-column: 1 / -1; }
.project-trial-state {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid #9bb6a7;
  border-radius: 6px;
  color: #285943;
  background: #eef6f1;
  font-size: 10px;
  font-weight: 800;
}
.project-trial-state.paused,
.project-trial-state.rejected,
.project-trial-state.archived {
  border-color: #c9b4a8;
  color: #70483a;
  background: #f7f2ef;
}
.project-trial-state svg { width: 14px; height: 14px; flex: 0 0 auto; }
.teacher-theme-trial-notice {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #d1b46f;
  border-radius: 6px;
  color: #5c491f;
  background: #fff8e6;
}
.teacher-theme-trial-notice.formal {
  border-color: #8fb49e;
  color: #285943;
  background: #edf7f1;
}
.teacher-theme-trial-notice > svg { width: 20px; height: 20px; flex: 0 0 auto; }
.teacher-theme-trial-notice div { display: grid; gap: 2px; min-width: 0; }
.teacher-theme-trial-notice strong { font-size: 12px; }
.teacher-theme-trial-notice span { font-size: 10px; line-height: 1.45; }
.project-comparison-workspace,
.project-execution-preview { margin: 0 0 14px; border-top: 1px solid #d5e0da; border-bottom: 1px solid #d5e0da; background: #fff; }
.project-comparison-heading,
.project-preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px 15px; }
.project-comparison-heading h3,
.project-preview-heading h3 { margin: 3px 0 0; color: #334e40; font-size: 15px; letter-spacing: 0; }
.project-preview-heading p { margin: 4px 0 0; color: #6b7971; font-size: 10px; }
.project-comparison-table-wrap { overflow-x: auto; border-top: 1px solid #e0e7e3; }
.project-comparison-table { width: 100%; }
.project-comparison-table-wrap table { width: 100%; min-width: 720px; border-collapse: collapse; table-layout: fixed; }
.project-comparison-table-wrap th,
.project-comparison-table-wrap td { padding: 9px 11px; border-right: 1px solid #e3e9e6; border-bottom: 1px solid #e3e9e6; color: #53645b; font-size: 10px; line-height: 1.5; text-align: left; vertical-align: top; }
.project-comparison-table-wrap thead th { color: #314c3e; background: #f3f7f5; }
.project-comparison-table-wrap thead th:first-child,
.project-comparison-table-wrap tbody th { width: 110px; color: #6d7973; background: #fafcfb; }
.project-comparison-table-wrap thead th:not(:first-child) { position: relative; padding-right: 42px; }
.project-comparison-table-wrap thead th span { display: flex; align-items: center; gap: 6px; }
.project-comparison-table-wrap thead th span svg { width: 15px; height: 15px; color: var(--primary); }
.project-comparison-table-wrap thead th .icon-button { position: absolute; top: 5px; right: 6px; width: 28px; height: 28px; }
.project-comparison-table-wrap td strong,
.project-comparison-table-wrap td small { display: block; }
.project-comparison-table-wrap td small { margin-top: 3px; color: #738078; }
.project-comparison-table-wrap td ul { margin: 0; padding-left: 14px; }
.project-comparison-pending { display: flex; gap: 8px; padding: 0 15px 13px; }
.project-comparison-pending > span { display: grid; grid-template-columns: 16px minmax(0,1fr) 28px; gap: 6px; align-items: center; min-width: 180px; padding: 7px 8px; border: 1px solid #dce5e0; color: #40584b; font-size: 10px; }
.project-comparison-pending > span > svg { width: 14px; height: 14px; color: var(--primary); }
.project-comparison-pending .icon-button { width: 26px; height: 26px; }
.project-preview-fit { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 8px; margin: 0 15px 12px; padding: 9px 11px; background: #eef6f2; }
.project-preview-fit > svg { width: 17px; height: 17px; color: var(--primary); }
.project-preview-fit strong,
.project-preview-fit small { display: block; }
.project-preview-fit strong { color: #335844; font-size: 11px; }
.project-preview-fit small { margin-top: 2px; color: #6b7971; font-size: 9px; line-height: 1.45; }
.project-preview-resource-pack { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 15px 12px; padding: 10px 11px; border: 1px solid #d7e3dc; }
.project-preview-resource-pack > span { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 2px 7px; min-width: 0; }
.project-preview-resource-pack > span > svg { grid-row: 1 / span 2; width: 16px; height: 16px; color: var(--primary); }
.project-preview-resource-pack strong { color: #365245; font-size: 10px; }
.project-preview-resource-pack small { color: #6c7972; font-size: 9px; line-height: 1.45; }
.project-preview-resource-pack .secondary-button { flex: 0 0 auto; }
.project-preview-role-week { margin: 0 15px 12px; border: 1px solid #d7e3dc; }
.project-preview-role-week > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 10px 11px; background: #f7faf8; }
.project-preview-role-week > header strong,
.project-preview-role-week > header small { display: block; }
.project-preview-role-week > header strong { margin-top: 3px; color: #365245; font-size: 10px; }
.project-preview-role-week > header small { color: #6c7972; font-size: 8px; }
.project-preview-days { border-top: 1px solid #e0e7e3; }
.project-preview-day { border-bottom: 1px solid #e3e9e6; }
.project-preview-day summary { display: grid; grid-template-columns: 48px minmax(130px,.35fr) minmax(0,1fr) 18px; gap: 9px; align-items: center; min-height: 48px; padding: 8px 15px; cursor: pointer; list-style: none; }
.project-preview-day summary::-webkit-details-marker { display: none; }
.project-preview-day summary > span { color: var(--primary); font-size: 9px; font-weight: 800; }
.project-preview-day summary > strong { color: #364e42; font-size: 11px; }
.project-preview-day summary > small { color: #6d7973; font-size: 9px; line-height: 1.45; }
.project-preview-day summary > svg { width: 15px; height: 15px; transition: transform .2s ease; }
.project-preview-day[open] summary > svg { transform: rotate(180deg); }
.project-preview-day-body { padding: 0 15px 13px 72px; }
.project-preview-day-body dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin: 0; }
.project-preview-day-body dl > div { padding-top: 7px; border-top: 1px dotted #dce4df; }
.project-preview-day-body dt { color: #6c7972; font-size: 8px; font-weight: 800; }
.project-preview-day-body dd { margin: 3px 0 0; color: #405249; font-size: 10px; line-height: 1.55; }
.project-preview-roles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.project-preview-roles span { padding: 7px 8px; color: #5e6c65; background: #f5f8f6; font-size: 9px; line-height: 1.5; }
.project-preview-roles b { display: block; margin-bottom: 2px; color: #315442; }
.project-preview-boundary { display: flex; align-items: center; gap: 6px; padding: 10px 15px; color: #69766f; font-size: 9px; }
.project-preview-boundary svg { width: 14px; height: 14px; }

@media (max-width: 1180px) {
  .project-catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-catalog-card { min-height: 300px; }
}
@media (max-width: 680px) {
  .project-catalog-band { padding: 15px; }
  .project-catalog-header { flex-direction: column; gap: 12px; }
  .project-assignment-state { width: 100%; min-width: 0; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .project-discovery-toolbar { grid-template-columns: 1fr; gap: 12px; padding: 12px 0; }
  .project-profile-filters { padding-bottom: 2px; }
  .project-comparison-workspace, .project-execution-preview { margin-right: -15px; margin-left: -15px; }
  .project-comparison-pending { overflow-x: auto; }
  .project-preview-day summary { grid-template-columns: 43px minmax(0,1fr) 18px; }
  .project-preview-day summary > small { grid-column: 2; }
  .project-preview-day summary > svg { grid-column: 3; grid-row: 1 / span 2; }
  .project-preview-day-body { padding-left: 58px; }
  .project-preview-day-body dl { grid-template-columns: 1fr; }
  .project-preview-roles { grid-template-columns: 1fr; }
  .project-preview-resource-pack { align-items: stretch; flex-direction: column; }
  .project-preview-resource-pack .secondary-button { width: 100%; }
  .project-preview-role-week { margin-right: 15px; margin-left: 15px; }
  .project-preview-role-week > header { align-items: flex-start; flex-direction: column; }
  .project-catalog-grid { grid-template-columns: 1fr; }
  .project-catalog-card { min-height: 0; }
  .project-catalog-card .project-question { min-height: 0; }
}


/* First-week project launch workspace */
.project-launch-band {
  margin-bottom: 16px;
  border: 1px solid #d8d6ce;
  border-left: 4px solid var(--coral);
  background: #fff;
}
.project-launch-band.has-transition { border-top-color: #8fb9a4; }
.project-launch-transition {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 12px 20px;
  border-bottom: 1px solid #c8ddd2;
  color: #194c39;
  background: #edf7f1;
}
.project-launch-transition.warning { border-bottom-color: #ead39b; color: #725012; background: #fff8e8; }
.project-launch-transition > svg { width: 22px; height: 22px; }
.project-launch-transition strong,
.project-launch-transition span { display: block; }
.project-launch-transition strong { font-size: 12px; }
.project-launch-transition span { margin-top: 2px; font-size: 9px; line-height: 1.45; }
.project-launch-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px 16px;
}
.project-launch-header h2 { margin: 4px 0 5px; font-size: 19px; }
.project-launch-header p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.project-launch-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.project-launch-metrics {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fafbf9;
}
.project-launch-metrics > div { min-width: 0; padding: 12px 16px; }
.project-launch-metrics > div + div { border-left: 1px solid var(--line); }
.project-launch-metrics strong { display: block; color: var(--primary-dark); font-size: 22px; }
.project-launch-metrics strong small { margin-left: 2px; font-size: 10px; }
.project-launch-metrics span { color: var(--muted); font-size: 10px; }
.launch-workspace-body { padding: 18px 20px 20px; }
.launch-workspace-body > section + section,
.launch-workspace-body > div + section { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.launch-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 11px; }
.launch-section-heading h3 { margin: 3px 0 0; font-size: 15px; }
.launch-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.launch-check {
  display: grid;
  grid-template-columns: 0 22px minmax(0,1fr);
  gap: 8px;
  align-items: start;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
}
.launch-check.checked { border-color: #b9d2c6; background: #f0f7f3; }
.launch-check > input { width: 0; height: 0; opacity: 0; }
.launch-check-box {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid #c6d2cc;
  color: var(--primary);
  background: #fff;
}
.launch-check-box svg { width: 14px; height: 14px; }
.launch-check strong,
.launch-check small { display: block; }
.launch-check strong { font-size: 11px; }
.launch-check small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.launch-day-list { border-top: 1px solid var(--line); }
.launch-day-row {
  display: grid;
  grid-template-columns: 38px 150px minmax(170px,.9fr) minmax(220px,1.2fr) minmax(220px,1.2fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}
.launch-day-index {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: #fff;
  background: var(--primary-dark);
  font-size: 10px;
  font-weight: 900;
}
.launch-day-row > div strong,
.launch-day-row > div small { display: block; }
.launch-day-row > div strong { font-size: 11px; }
.launch-day-row > div small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.launch-day-row > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.launch-day-script { padding-left: 12px; border-left: 2px solid #d7e3dd; }
.launch-day-script span { display: block; margin-bottom: 3px; color: var(--primary-dark); font-size: 9px; font-weight: 800; }
.launch-day-script q { display: block; color: var(--ink); font-size: 10px; line-height: 1.5; }
.launch-day-signal {
  display: grid;
  grid-template-columns: 18px minmax(0,1fr);
  gap: 2px 7px;
  padding: 8px 9px;
  background: #f4f6f4;
}
.launch-day-signal > span { grid-row: 1 / 3; color: var(--primary); }
.launch-day-signal svg { width: 16px; height: 16px; }
.launch-day-signal small { color: var(--muted); font-size: 8px; }
.launch-day-signal b { font-size: 9px; line-height: 1.4; }
.launch-resource-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.launch-resource-grid > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.launch-material-list,
.launch-substitution-list,
.launch-safety-section ul,
.launch-role ul { margin: 0; padding: 0; list-style: none; }
.launch-material-list li {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 43px;
  border-top: 1px solid var(--line);
}
.launch-material-icon { display: grid; width: 24px; height: 24px; place-items: center; color: var(--primary); background: #eef4f1; }
.launch-material-icon svg { width: 14px; height: 14px; }
.launch-material-list strong,
.launch-material-list small { display: block; }
.launch-material-list strong { font-size: 10px; }
.launch-material-list small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.launch-material-list li > b { color: var(--primary-dark); font-size: 9px; white-space: nowrap; }
.launch-substitution-list li { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 4px 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.launch-substitution-list strong { font-size: 10px; }
.launch-substitution-list span { display: flex; gap: 5px; align-items: flex-start; color: var(--muted); font-size: 10px; line-height: 1.4; }
.launch-substitution-list span svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.launch-substitution-list small { grid-column: 2; color: var(--muted); font-size: 8px; }
.launch-role-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.launch-role { min-width: 0; padding: 0 18px; }
.launch-role:first-child { padding-left: 0; }
.launch-role + .launch-role { border-left: 1px solid var(--line); }
.launch-role h4 { display: flex; gap: 6px; align-items: center; margin: 0 0 8px; font-size: 11px; }
.launch-role h4 svg { width: 15px; height: 15px; color: var(--primary); }
.launch-role li { position: relative; padding: 4px 0 4px 12px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.launch-role li::before { position: absolute; left: 0; content: "·"; color: var(--primary); font-weight: 900; }
.launch-safety-section ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 20px; }
.launch-safety-section li { display: grid; grid-template-columns: 15px minmax(0,1fr) auto; gap: 7px; align-items: start; padding: 7px 0; border-top: 1px solid var(--line); }
.launch-safety-section li svg { width: 14px; height: 14px; color: var(--primary); }
.launch-safety-section li span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.launch-safety-section li b { color: var(--primary-dark); font-size: 8px; white-space: nowrap; }

.project-launch-handoff {
  margin-bottom: 16px;
  border-top: 1px solid #d5d9d5;
  border-bottom: 1px solid #d5d9d5;
  background: #fff;
}
.project-launch-handoff.issued { border-top: 3px solid #d4a43e; }
.project-launch-handoff.complete { border-top: 3px solid #508b70; }
.project-launch-handoff.pending { border-top: 3px solid #a9ada9; }
.launch-receipt-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 17px 20px 13px;
}
.launch-receipt-heading h2 { margin: 4px 0 5px; font-size: 18px; }
.launch-receipt-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.launch-receipt-status { display: grid; min-width: 112px; justify-items: end; gap: 2px; }
.launch-receipt-status strong { color: var(--primary-dark); font-size: 24px; line-height: 1; }
.launch-receipt-status span { color: var(--muted); font-size: 9px; font-weight: 800; }
.launch-receipt-status button { margin-top: 7px; }
.launch-issued-meta {
  display: flex;
  gap: 7px;
  align-items: center;
  padding: 8px 20px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: #f7f8f6;
  font-size: 9px;
}
.launch-issued-meta svg { width: 14px; height: 14px; color: var(--primary); }
.launch-receipt-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); }
.launch-receipt-role { display: grid; min-width: 0; min-height: 150px; align-content: start; padding: 14px 18px; }
.launch-receipt-role + .launch-receipt-role { border-left: 1px solid var(--line); }
.launch-receipt-role.received { background: #f1f7f3; }
.launch-receipt-role header { display: flex; gap: 9px; align-items: center; }
.launch-receipt-role header strong,
.launch-receipt-role header small { display: block; }
.launch-receipt-role header strong { font-size: 12px; }
.launch-receipt-role header small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.launch-receipt-icon { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; color: var(--primary); background: #eaf1ed; }
.launch-receipt-icon svg { width: 17px; height: 17px; }
.launch-receipt-role p { min-height: 34px; margin: 13px 0 10px; color: var(--ink); font-size: 10px; line-height: 1.6; }
.launch-receive-button { width: 100%; margin-top: auto; }
.launch-receipt-done { display: flex; gap: 5px; align-items: center; margin-top: auto; color: #276045; font-size: 10px; font-weight: 900; }
.launch-receipt-done svg { width: 14px; height: 14px; }

@media (max-width: 1050px) {
  .launch-day-row { grid-template-columns: 38px 140px minmax(0,1fr); }
  .launch-day-row > p { grid-column: 3; }
  .launch-day-script { grid-column: 2 / 4; }
  .launch-day-signal { grid-column: 2 / 4; }
}
@media (max-width: 680px) {
  .project-launch-transition { padding: 11px 15px; }
  .project-launch-header { flex-direction: column; padding: 15px; }
  .project-launch-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .project-launch-actions button { width: 100%; }
  .project-launch-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-launch-metrics > div { border-top: 1px solid var(--line); }
  .project-launch-metrics > div:nth-child(odd) { border-left: 0; }
  .project-launch-metrics > div:first-child,
  .project-launch-metrics > div:nth-child(2) { border-top: 0; }
  .project-launch-metrics > div:last-child { grid-column: 1 / 3; border-left: 0; }
  .launch-workspace-body { padding: 15px; }
  .launch-check-grid { grid-template-columns: 1fr; }
  .launch-day-row { grid-template-columns: 38px minmax(0,1fr); align-items: start; }
  .launch-day-row > p,
  .launch-day-script,
  .launch-day-signal { grid-column: 2; }
  .launch-resource-grid { grid-template-columns: 1fr; gap: 18px; }
  .launch-resource-grid > section + section { padding: 18px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .launch-substitution-list li { grid-template-columns: 90px minmax(0,1fr); }
  .launch-role-grid { grid-template-columns: 1fr; }
  .launch-role { padding: 12px 0; }
  .launch-role + .launch-role { border-top: 1px solid var(--line); border-left: 0; }
  .launch-safety-section ul { grid-template-columns: 1fr; }
  .launch-receipt-heading { flex-direction: column; gap: 12px; padding: 15px; }
  .launch-receipt-status { width: 100%; grid-template-columns: auto 1fr auto; align-items: center; justify-items: start; }
  .launch-receipt-status button { margin-top: 0; justify-self: end; }
  .launch-issued-meta { padding: 8px 15px; }
  .launch-receipt-grid { grid-template-columns: 1fr; }
  .launch-receipt-role { min-height: 0; padding: 13px 15px; }
  .launch-receipt-role + .launch-receipt-role { border-top: 1px solid var(--line); border-left: 0; }
  .launch-receipt-role p { min-height: 0; }
}

/* Class project history and read-only archive */
.project-history-workspace {
  margin-bottom: 16px;
  border-top: 1px solid #cfdad5;
  border-bottom: 1px solid #cfdad5;
  background: #fff;
}
.project-history-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px 16px;
}
.project-history-heading h2 { margin: 4px 0 5px; font-size: 19px; }
.project-history-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.project-history-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.history-total-badge { color: var(--muted); font-size: 10px; font-weight: 700; white-space: nowrap; }
.history-project-timeline {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(230px,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f7f9f8;
}
.history-project-step {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  min-height: 76px;
  padding: 11px 13px;
  border: 0;
  border-left: 1px solid var(--line);
  color: var(--ink);
  background: transparent;
  text-align: left;
}
.history-project-step:first-child { border-left: 0; }
.history-project-step:hover { background: #f0f5f2; }
.history-project-step.selected { box-shadow: inset 0 -3px 0 var(--primary); background: #fff; }
.history-step-index { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #c5d1cb; color: var(--primary-dark); background: #fff; font-size: 10px; font-weight: 900; }
.history-project-step.selected .history-step-index { border-color: var(--primary); color: #fff; background: var(--primary); }
.history-step-copy { min-width: 0; }
.history-step-copy small,
.history-step-copy strong,
.history-step-copy time { display: block; }
.history-step-copy small { color: var(--primary); font-size: 8px; font-weight: 900; }
.history-step-copy strong { overflow: hidden; margin-top: 3px; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.history-step-copy time { margin-top: 3px; color: var(--muted); font-size: 8px; }
.history-step-count { color: var(--primary-dark); font-size: 17px; font-weight: 900; text-align: right; }
.history-step-count small { display: block; color: var(--muted); font-size: 8px; font-weight: 600; }
.history-project-detail { padding: 18px 20px 20px; }
.history-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.history-detail-heading h3 { margin: 7px 0 4px; font-size: 17px; }
.history-detail-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.history-readonly-note { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.history-readonly-note svg { width: 14px; height: 14px; color: var(--primary); }
.history-metric-strip { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin-top: 15px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.history-metric-strip > div { min-width: 0; padding: 11px 13px; }
.history-metric-strip > div + div { border-left: 1px solid var(--line); }
.history-metric-strip strong { display: block; color: var(--primary-dark); font-size: 21px; }
.history-metric-strip span { color: var(--muted); font-size: 9px; }
.history-detail-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); gap: 22px; margin-top: 18px; }
.history-detail-grid > section,
.history-detail-grid > aside { min-width: 0; }
.history-detail-grid > aside { padding-left: 22px; border-left: 1px solid var(--line); }
.history-section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.history-section-title span { color: var(--primary); font-size: 8px; font-weight: 900; }
.history-section-title h4 { margin: 3px 0 0; font-size: 13px; }
.history-section-title small { color: var(--muted); font-size: 8px; }
.history-table-wrap { overflow-x: auto; }
.history-day-table { min-width: 620px; }
.history-day-table td { vertical-align: middle; }
.history-day-table td strong,
.history-day-table td small { display: block; }
.history-day-table td small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.history-day-table time { color: var(--muted); font-size: 9px; white-space: nowrap; }
.history-empty-row { display: flex; min-height: 66px; align-items: center; justify-content: center; gap: 7px; color: var(--muted); font-size: 10px; }
.history-empty-row svg { width: 16px; height: 16px; }
.history-evidence-list { border-top: 1px solid var(--line); }
.history-evidence-item { padding: 11px 0; border-bottom: 1px solid var(--line); }
.history-evidence-item > div { display: flex; justify-content: space-between; gap: 8px; }
.history-evidence-item > div span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.history-evidence-item time { color: var(--muted); font-size: 8px; }
.history-evidence-item blockquote { margin: 7px 0 5px; color: var(--ink); font-size: 11px; line-height: 1.5; }
.history-evidence-item p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.history-empty-evidence { display: flex; min-height: 92px; align-items: center; justify-content: center; gap: 7px; color: var(--muted); font-size: 10px; text-align: center; }
.history-empty-evidence svg { width: 17px; height: 17px; }

@media (max-width: 900px) {
  .history-detail-grid { grid-template-columns: 1fr; }
  .history-detail-grid > aside { padding: 17px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}
@media (max-width: 680px) {
  .project-history-heading { flex-direction: column; padding: 15px; }
  .project-history-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .project-history-actions button { width: 100%; }
  .history-total-badge { white-space: normal; }
  .history-project-timeline { grid-template-columns: 1fr; }
  .history-project-step { border-top: 1px solid var(--line); border-left: 0; }
  .history-project-step:first-child { border-top: 0; }
  .history-project-step.selected { box-shadow: inset 3px 0 0 var(--primary); }
  .history-project-detail { padding: 15px; }
  .history-detail-heading { flex-direction: column; }
  .history-metric-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .history-metric-strip > div { border-top: 1px solid var(--line); }
  .history-metric-strip > div:nth-child(odd) { border-left: 0; }
  .history-metric-strip > div:first-child,
  .history-metric-strip > div:nth-child(2) { border-top: 0; }
  .history-metric-strip > div:last-child { grid-column: 1 / 3; border-left: 0; }
}

/* Searchable teacher execution resources */
.teacher-role-desk { margin-bottom: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.teacher-resource-pane-switch { width: min(460px, 100%); margin-bottom: 16px; padding: 4px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); background: #f4f6f5; }
.teacher-resource-pane-switch button { min-height: 46px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; color: var(--muted); background: transparent; font-size: 11px; font-weight: 900; }
.teacher-resource-pane-switch button svg { width: 16px; height: 16px; }
.teacher-resource-pane-switch button.active { color: #fff; background: var(--primary); }
.teacher-role-desk[hidden], .teacher-support-lookup[hidden] { display: none !important; }
.teacher-role-desk > header { padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.teacher-role-desk > header h2 { margin: 4px 0; font-size: 22px; }
.teacher-role-desk > header p { margin: 0; color: var(--muted); font-size: 12px; }
.teacher-no-paperwork-status { width: fit-content; margin-top: 10px; padding: 7px 9px; display: flex; align-items: center; gap: 6px; color: var(--primary-dark); background: #e8f2ed; font-size: 9px; font-weight: 900; }
.teacher-no-paperwork-status svg { width: 14px; height: 14px; }
.teacher-role-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: 1px solid var(--line); background: #f5f7f6; }
.teacher-role-day { min-width: 0; min-height: 74px; padding: 11px 12px; border: 0; color: var(--muted); background: transparent; text-align: left; }
.teacher-role-day + .teacher-role-day { border-left: 1px solid var(--line); }
.teacher-role-day span, .teacher-role-day strong { display: block; overflow-wrap: anywhere; }
.teacher-role-day span { color: var(--primary); font-size: 10px; font-weight: 900; }
.teacher-role-day span em { margin-left: 6px; padding: 2px 4px; color: #7f5d17; background: #f8efd7; font-size: 8px; font-style: normal; }
.teacher-role-day strong { margin-top: 8px; color: #53635b; font-size: 11px; line-height: 1.4; }
.teacher-role-day.active { background: #fff; box-shadow: inset 0 -3px var(--primary); }
.teacher-role-day.active strong { color: var(--primary-dark); }
.teacher-role-day-summary { margin: 18px 22px 0; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #314f40; background: #eaf3ee; }
.teacher-role-day-summary > div { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 11px; align-items: center; }
.teacher-role-day-summary > div > span { width: 42px; height: 42px; display: grid; place-items: center; color: #fff; background: var(--primary); font-weight: 900; }
.teacher-role-day-summary h3 { margin: 3px 0 0; font-size: 17px; }
.teacher-role-day-summary small { color: var(--muted); font-size: 10px; }
.teacher-role-day-summary > strong { font-size: 23px; }
.teacher-role-day-summary > strong small { margin-left: 3px; font-size: 10px; }
.teacher-role-start { margin: 12px 22px 0; padding: 16px; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 18px; border: 1px solid #d5e0da; }
.teacher-role-start h3 { margin: 4px 0 0; font-size: 15px; }
.teacher-role-start ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; list-style: none; }
.teacher-role-start li { min-width: 0; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; align-items: start; }
.teacher-role-start li span { width: 23px; height: 23px; display: grid; place-items: center; color: var(--primary-dark); background: var(--primary-soft); font-size: 9px; font-weight: 900; }
.teacher-role-start li strong { font-size: 11px; line-height: 1.5; }
.teacher-role-stages { padding: 14px 22px 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.teacher-role-stage { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.teacher-role-stage > header { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; align-items: center; }
.teacher-role-stage > header > span { width: 29px; height: 29px; display: grid; place-items: center; color: #fff; background: var(--blue); font-size: 10px; font-weight: 900; }
.teacher-role-stage > header strong, .teacher-role-stage > header small { display: block; }
.teacher-role-stage > header strong { font-size: 14px; }
.teacher-role-stage > header small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.teacher-role-stage > p { margin: 13px 0 0; padding: 10px 11px; background: #eef4f8; font-size: 12px; line-height: 1.55; }
.teacher-role-stage > p b { display: block; margin-bottom: 3px; color: var(--blue); font-size: 9px; }
.teacher-role-stage blockquote { margin: 9px 0 0; padding: 10px 11px; border-left: 3px solid var(--gold); background: #fff9ea; font-size: 12px; font-weight: 800; line-height: 1.55; }
.teacher-role-stage dl { margin: 9px 0 0; }
.teacher-role-stage dl > div { padding: 7px 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px; border-top: 1px solid var(--line); font-size: 10px; line-height: 1.5; }
.teacher-role-stage dt { color: var(--primary); font-weight: 900; }
.teacher-role-stage dd { margin: 0; color: var(--muted); }
.teacher-role-boundaries { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.teacher-role-boundaries section { padding: 16px 22px; border-left: 4px solid var(--primary); background: #eef5f1; }
.teacher-role-boundaries section + section { border-left-color: var(--gold); background: #fff9ea; }
.teacher-role-boundaries h3 { margin: 0; font-size: 13px; }
.teacher-role-boundaries ul { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.teacher-role-desk > footer { padding: 14px 22px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; align-items: center; border-top: 1px solid var(--line); }
.teacher-role-desk > footer > div { min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; align-items: center; }
.teacher-role-desk > footer > div > span { width: 29px; height: 29px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.teacher-role-desk > footer small, .teacher-role-desk > footer strong { display: block; }
.teacher-role-desk > footer small { color: var(--muted); font-size: 9px; }
.teacher-role-desk > footer strong { margin-top: 2px; font-size: 10px; line-height: 1.45; }
.teacher-role-desk > footer > b { padding: 7px 9px; color: var(--primary-dark); background: #e8f2ed; font-size: 9px; white-space: nowrap; }
.teacher-support-lookup { display: grid; gap: 12px; }
.teacher-support-lookup > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.teacher-support-lookup > header h2 { margin: 4px 0; font-size: 19px; }
.teacher-support-lookup > header p { margin: 0; color: var(--muted); font-size: 11px; }
.teacher-support-lookup > header > strong { color: var(--primary); font-size: 10px; }
.teacher-support-lookup .teacher-resource-search { max-width: 680px; }
.teacher-support-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 4px; border: 1px solid var(--line); background: #f4f6f5; }
.teacher-support-modes button { min-width: 0; min-height: 46px; padding: 0 12px; display: flex; align-items: center; justify-content: center; gap: 7px; border: 0; color: var(--muted); background: transparent; font-size: 11px; font-weight: 800; }
.teacher-support-modes button svg { flex: 0 0 auto; width: 16px; height: 16px; }
.teacher-support-modes button.active { color: #fff; background: var(--primary); }
.teacher-support-results { grid-template-columns: minmax(0, 760px); }
.teacher-support-results .teacher-resource-card { min-height: 0; }
.teacher-curriculum-overview { padding: 20px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.teacher-curriculum-overview h2 { margin: 4px 0; font-size: 23px; }
.teacher-curriculum-overview p { margin: 0; color: var(--muted); font-size: 12px; }
.teacher-curriculum-overview dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(110px, auto)); }
.teacher-curriculum-overview dl > div { padding: 3px 16px; border-left: 1px solid var(--line); }
.teacher-curriculum-overview dt { color: var(--muted); font-size: 9px; }
.teacher-curriculum-overview dd { margin: 5px 0 0; color: var(--primary-dark); font-size: 15px; font-weight: 900; }
.teacher-curriculum-progress { grid-column: 1 / -1; height: 7px; overflow: hidden; background: #e5ebe8; }
.teacher-curriculum-progress span { display: block; height: 100%; background: var(--primary); }
.teacher-curriculum-overview > small { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.teacher-curriculum-overview > small svg { flex: 0 0 auto; width: 14px; height: 14px; color: var(--primary); }
.teacher-curriculum-path { margin-top: 18px; }
.teacher-curriculum-path > header { padding: 0 0 14px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.teacher-curriculum-path > header h2 { margin: 4px 0; font-size: 20px; }
.teacher-curriculum-path > header p { margin: 0; color: var(--muted); font-size: 11px; }
.teacher-curriculum-weeks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.teacher-curriculum-week { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.teacher-curriculum-week.current { border-top: 4px solid var(--primary); }
.teacher-curriculum-week > header { padding: 15px 16px 10px; display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.teacher-curriculum-week > header span { color: var(--primary); font-size: 9px; font-weight: 900; }
.teacher-curriculum-week > header h3 { margin: 4px 0 0; font-size: 16px; }
.teacher-curriculum-week > header > strong { color: var(--primary-dark); font-size: 17px; }
.teacher-curriculum-week > header > strong small { margin-left: 3px; color: var(--muted); font-size: 8px; }
.teacher-curriculum-week > p { margin: 0; padding: 0 16px 12px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.teacher-curriculum-days { border-top: 1px solid var(--line); }
.teacher-curriculum-day { width: 100%; min-width: 0; min-height: 68px; padding: 10px 12px; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto 18px; gap: 9px; align-items: center; border: 0; color: var(--ink); background: transparent; text-align: left; }
.teacher-curriculum-day + .teacher-curriculum-day { border-top: 1px solid var(--line); }
.teacher-curriculum-day > span { width: 31px; height: 31px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); font-size: 9px; font-weight: 900; }
.teacher-curriculum-day strong, .teacher-curriculum-day small { display: block; min-width: 0; overflow-wrap: anywhere; }
.teacher-curriculum-day strong { font-size: 11px; }
.teacher-curriculum-day small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.teacher-curriculum-day em { color: var(--muted); font-size: 8px; font-style: normal; white-space: nowrap; }
.teacher-curriculum-day > svg { width: 15px; height: 15px; color: var(--muted); }
.teacher-curriculum-day:hover, .teacher-curriculum-day.current { background: #f0f6f3; }
.teacher-curriculum-day.completed > span, .teacher-curriculum-day.skipped > span, .teacher-curriculum-day.merged > span { color: #fff; background: #6a8678; }
.teacher-curriculum-day.skipped, .teacher-curriculum-day.merged { background: #f7f8f7; }
.teacher-map-tabs { display: grid; grid-template-columns: 1fr 1fr; max-width: 620px; margin: 18px auto 0; padding: 4px; border: 1px solid var(--line); background: #f4f6f5; }
.teacher-map-tabs button { min-width: 0; min-height: 46px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; color: var(--muted); background: transparent; font-size: 11px; font-weight: 800; }
.teacher-map-tabs button svg { width: 17px; height: 17px; }
.teacher-map-tabs button.active { color: #fff; background: var(--primary); }
.teacher-project-map { margin-top: 16px; }
.teacher-project-map > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 0 0 14px; }
.teacher-project-map > header h2 { margin: 4px 0; font-size: 20px; }
.teacher-project-map > header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.teacher-project-map-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.teacher-project-map-actions .teacher-no-record { margin-right: 2px; }
.teacher-project-map-actions button { min-height: 38px; padding: 8px 12px; }
.teacher-project-map > footer { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 11px 13px; color: var(--muted); background: #f3f6f4; font-size: 9px; line-height: 1.5; }
.teacher-project-map > footer svg { flex: 0 0 auto; width: 15px; height: 15px; color: var(--primary); }
.teacher-inquiry-network { min-width: 0; padding-top: 4px; }
.teacher-inquiry-core { position: relative; z-index: 1; width: min(560px, 86%); margin: 0 auto 34px; padding: 17px 22px; border: 2px solid var(--primary); border-radius: 7px; background: #eef6f2; text-align: center; }
.teacher-inquiry-core::after { content: ""; position: absolute; left: 50%; bottom: -35px; width: 1px; height: 34px; background: #9db8aa; }
.teacher-inquiry-core span { color: var(--primary); font-size: 9px; font-weight: 900; }
.teacher-inquiry-core h3 { margin: 4px 0; font-size: 18px; }
.teacher-inquiry-core p { margin: 0; color: var(--primary-dark); font-size: 12px; line-height: 1.55; }
.teacher-inquiry-threads { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding-top: 24px; }
.teacher-inquiry-threads::before { content: ""; position: absolute; top: 0; left: 16.66%; right: 16.66%; height: 1px; background: #9db8aa; }
.teacher-inquiry-thread { position: relative; min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.teacher-inquiry-thread::before { content: ""; position: absolute; left: 50%; top: -25px; width: 1px; height: 24px; background: #9db8aa; }
.teacher-inquiry-thread.current { border-top: 4px solid var(--primary); padding-top: 11px; }
.teacher-inquiry-thread > header { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.teacher-inquiry-thread > header > span { width: 34px; height: 34px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.teacher-inquiry-thread > header svg { width: 17px; height: 17px; }
.teacher-inquiry-thread > header small, .teacher-inquiry-thread > header h3 { display: block; min-width: 0; overflow-wrap: anywhere; }
.teacher-inquiry-thread > header small { color: var(--primary); font-size: 8px; font-weight: 800; }
.teacher-inquiry-thread > header h3 { margin: 2px 0 0; font-size: 13px; }
.teacher-inquiry-thread > header b { color: var(--primary-dark); font-size: 10px; white-space: nowrap; }
.teacher-inquiry-thread > p { min-height: 44px; margin: 11px 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.teacher-inquiry-tags { display: flex; flex-wrap: wrap; gap: 5px; min-height: 23px; }
.teacher-inquiry-tags span { padding: 3px 6px; color: #526b5e; background: #edf3f0; font-size: 8px; }
.teacher-inquiry-activities { margin-top: 11px; border-top: 1px solid var(--line); }
.teacher-inquiry-activities button { width: 100%; min-width: 0; padding: 8px 2px; display: grid; grid-template-columns: 42px minmax(0, 1fr) 14px; gap: 6px; align-items: center; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.teacher-inquiry-activities button:hover, .teacher-inquiry-activities button.current { background: #f0f6f3; }
.teacher-inquiry-activities button span { color: var(--primary); font-size: 8px; font-weight: 900; }
.teacher-inquiry-activities button strong { min-width: 0; font-size: 9px; overflow-wrap: anywhere; }
.teacher-inquiry-activities button svg { width: 13px; height: 13px; color: var(--muted); }
.teacher-inquiry-activities > small { display: block; padding-top: 8px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.teacher-path-stage-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.teacher-path-stage { position: relative; min-width: 0; min-height: 142px; padding: 15px 28px 14px 15px; }
.teacher-path-stage + .teacher-path-stage { border-left: 1px solid var(--line); }
.teacher-path-stage > span { color: var(--primary); font-size: 9px; font-weight: 900; }
.teacher-path-stage h3 { margin: 5px 0; font-size: 13px; }
.teacher-path-stage p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.teacher-path-stage small { position: absolute; left: 15px; bottom: 13px; color: var(--primary-dark); font-size: 8px; font-weight: 800; }
.teacher-path-stage > svg { position: absolute; right: 6px; top: 50%; width: 16px; height: 16px; color: #8fa99c; transform: translateY(-50%); }
.teacher-path-stage.current { background: #edf5f1; box-shadow: inset 0 4px 0 var(--primary); }
.teacher-path-branches { margin-top: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fbfcfb; }
.teacher-path-branches > header { padding: 14px 16px 11px; }
.teacher-path-branches > header h3 { margin: 4px 0; font-size: 15px; }
.teacher-path-branches > header p { margin: 0; color: var(--muted); font-size: 9px; }
.teacher-path-branches > div { border-top: 1px solid var(--line); }
.teacher-path-branches article { display: grid; grid-template-columns: 31px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 16px; }
.teacher-path-branches article + article { border-top: 1px solid var(--line); }
.teacher-path-branches article > span { width: 29px; height: 29px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.teacher-path-branches article svg { width: 15px; height: 15px; }
.teacher-path-branches article strong, .teacher-path-branches article small { display: block; min-width: 0; overflow-wrap: anywhere; }
.teacher-path-branches article strong { font-size: 10px; }
.teacher-path-branches article small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.teacher-path-branches article b { color: var(--primary-dark); font-size: 8px; white-space: nowrap; }
.teacher-resource-current {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  margin-bottom: 16px;
  padding: 18px 20px;
  border-left: 4px solid var(--primary);
  background: #eef5f1;
}
.teacher-resource-current h2 { margin: 4px 0 5px; font-size: 19px; }
.teacher-resource-current p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.teacher-resource-current-metrics { display: grid; grid-template-columns: auto auto auto auto; gap: 4px 12px; align-items: center; padding-left: 18px; border-left: 1px solid #cadbd2; }
.teacher-resource-current-metrics strong { color: var(--primary-dark); font-size: 24px; }
.teacher-resource-current-metrics strong small { margin-left: 2px; font-size: 10px; }
.teacher-resource-current-metrics span { color: var(--muted); font-size: 9px; }
.teacher-handoff-readiness {
  display: grid;
  grid-template-columns: minmax(240px,1fr) auto auto;
  gap: 15px 22px;
  align-items: center;
  margin-bottom: 16px;
  padding: 16px 20px 11px;
  border-top: 1px solid #cfdad5;
  border-bottom: 1px solid #cfdad5;
  background: #fff;
}
.teacher-handoff-readiness h2 { margin: 4px 0 4px; color: #334d40; font-size: 17px; letter-spacing: 0; }
.teacher-handoff-readiness p { margin: 0; color: #6b7871; font-size: 10px; line-height: 1.5; }
.teacher-handoff-metrics { display: grid; grid-template-columns: repeat(4,auto); gap: 12px; }
.teacher-handoff-metrics span { min-width: 70px; padding-left: 10px; border-left: 1px solid #dce4df; }
.teacher-handoff-metrics strong,
.teacher-handoff-metrics small { display: block; }
.teacher-handoff-metrics strong { color: var(--primary-dark); font-size: 15px; }
.teacher-handoff-metrics small { margin-top: 2px; color: #768179; font-size: 8px; }
.teacher-handoff-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; min-width: 260px; }
.teacher-handoff-actions button { min-width: 0; min-height: 34px; padding: 7px 9px; font-size: 9px; }
.teacher-handoff-actions .primary-button { grid-column: 1 / -1; }
.teacher-handoff-boundary { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; padding-top: 9px; border-top: 1px solid #e1e7e3; color: #69766f; font-size: 8px; line-height: 1.45; }
.teacher-handoff-boundary svg { flex: 0 0 auto; width: 13px; height: 13px; }
.role-week-handoff-panel { margin-bottom: 16px; border-top: 1px solid #cfdad5; border-bottom: 1px solid #cfdad5; background: #fff; }
.role-week-handoff-panel > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 15px 20px 12px; }
.role-week-handoff-panel > header h2 { margin: 4px 0; color: #334d40; font-size: 17px; letter-spacing: 0; }
.role-week-handoff-panel > header p { margin: 0; color: #6b7871; font-size: 10px; line-height: 1.5; }
.role-week-handoff-panel > header > strong { flex: 0 0 auto; color: var(--primary); font-size: 10px; }
.role-week-handoff-list { border-top: 1px solid #e1e7e3; }
.role-week-handoff-row { display: grid; grid-template-columns: 34px minmax(220px,1fr) auto minmax(140px,auto); gap: 12px; align-items: center; min-width: 0; padding: 10px 20px; }
.role-week-handoff-row + .role-week-handoff-row { border-top: 1px solid #e8ecea; }
.role-week-handoff-icon { display: grid; width: 30px; height: 30px; place-items: center; color: var(--primary); background: #edf5f1; }
.role-week-handoff-icon svg { width: 15px; height: 15px; }
.role-week-handoff-copy { min-width: 0; }
.role-week-handoff-copy strong,
.role-week-handoff-copy small { display: block; overflow-wrap: anywhere; }
.role-week-handoff-copy strong { color: #344f41; font-size: 11px; }
.role-week-handoff-copy small { margin-top: 3px; color: #6b7871; font-size: 9px; line-height: 1.45; }
.role-week-handoff-counts { display: flex; gap: 6px; }
.role-week-handoff-counts span { min-width: 48px; padding: 5px 7px; color: #6a7770; background: #f4f7f5; font-size: 8px; text-align: center; white-space: nowrap; }
.role-week-handoff-counts b { margin-right: 2px; color: var(--primary-dark); font-size: 11px; }
.role-week-handoff-row .secondary-button { min-width: 140px; min-height: 32px; padding: 6px 9px; font-size: 9px; }
.role-week-execution-workspace { border-top: 1px solid #cfdad5; background: #fbfcfb; }
.role-week-execution-workspace > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 16px 20px 13px; }
.role-week-execution-workspace > header h3 { margin: 4px 0; color: #304b3d; font-size: 16px; letter-spacing: 0; }
.role-week-execution-workspace > header p { margin: 0; color: #6b7871; font-size: 9px; line-height: 1.5; }
.role-week-execution-actions { display: flex; flex: 0 0 auto; gap: 7px; }
.role-week-execution-actions button { min-width: 142px; }
.role-week-continuity-status { display: flex; align-items: center; gap: 8px; margin: 10px 20px 0; padding: 8px 10px; color: #4e6659; background: #f1f6f3; }
.role-week-continuity-status > svg { flex: 0 0 auto; width: 15px; height: 15px; color: var(--primary); }
.role-week-continuity-status span,
.role-week-continuity-status strong,
.role-week-continuity-status small { display: block; min-width: 0; overflow-wrap: anywhere; }
.role-week-continuity-status strong { font-size: 9px; }
.role-week-continuity-status small { margin-top: 2px; color: #6b7871; font-size: 8px; }
.role-week-role-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #dfe6e2; border-bottom: 1px solid #dfe6e2; background: #f3f6f4; }
.role-week-role-tab { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 8px; align-items: center; min-width: 0; min-height: 62px; padding: 10px 14px; border: 0; color: #68766e; background: transparent; text-align: left; }
.role-week-role-tab + .role-week-role-tab { border-left: 1px solid #dfe6e2; }
.role-week-role-tab > svg { width: 18px; height: 18px; color: #7c8982; }
.role-week-role-tab span,
.role-week-role-tab strong,
.role-week-role-tab small { display: block; min-width: 0; overflow-wrap: anywhere; }
.role-week-role-tab strong { color: #40544a; font-size: 11px; }
.role-week-role-tab small { margin-top: 2px; font-size: 8px; line-height: 1.4; }
.role-week-role-tab.active { color: #385c49; background: #fff; box-shadow: inset 0 -3px 0 var(--primary); }
.role-week-role-tab.active > svg,
.role-week-role-tab.active strong { color: var(--primary-dark); }
.role-week-day-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); padding: 10px 20px; background: #fff; }
.role-week-day-tab { display: grid; grid-template-rows: auto minmax(30px,auto) auto; min-width: 0; min-height: 74px; padding: 8px 10px; border: 1px solid #dce4df; border-right: 0; color: #66736c; background: #fff; text-align: left; }
.role-week-day-tab:last-child { border-right: 1px solid #dce4df; }
.role-week-day-tab > span { display: flex; align-items: center; justify-content: space-between; gap: 4px; color: var(--primary); font-size: 8px; font-weight: 900; }
.role-week-day-tab em { padding: 2px 4px; color: #8a6821; background: #f8efd7; font-size: 7px; font-style: normal; }
.role-week-day-tab strong { margin-top: 5px; color: #40544a; font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.role-week-day-tab small { margin-top: 4px; font-size: 7px; }
.role-week-day-tab.active { border-color: var(--primary); background: #edf5f1; box-shadow: inset 0 -3px 0 var(--primary); }
.role-week-day-tab.active + .role-week-day-tab { border-left-color: var(--primary); }
.role-week-execution-summary { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; align-items: center; margin: 0 20px; padding: 10px 12px; color: #365245; background: #e9f2ed; }
.role-week-execution-summary > span { display: grid; width: 30px; height: 30px; place-items: center; background: #fff; }
.role-week-execution-summary svg { width: 16px; height: 16px; color: var(--primary); }
.role-week-execution-summary small,
.role-week-execution-summary strong { display: block; overflow-wrap: anywhere; }
.role-week-execution-summary small { color: #6a7770; font-size: 8px; }
.role-week-execution-summary strong { margin-top: 3px; font-size: 10px; }
.role-week-execution-summary > b { font-size: 9px; white-space: nowrap; }
.role-week-execution-body { display: grid; grid-template-columns: minmax(230px,.34fr) minmax(0,1fr); gap: 14px; padding: 14px 20px; }
.role-week-execution-body > aside { min-width: 0; }
.role-week-execution-body > aside > section:first-child { padding: 13px; border: 1px solid #d9e3dd; background: #fff; }
.role-week-execution-body h4 { margin: 4px 0 0; color: #3e5348; font-size: 12px; letter-spacing: 0; }
.role-week-execution-body aside ol { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.role-week-execution-body aside ol li { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 8px; align-items: start; }
.role-week-execution-body aside ol span { display: grid; width: 21px; height: 21px; place-items: center; color: var(--primary-dark); background: #e8f1ec; font-size: 8px; font-weight: 900; }
.role-week-execution-body aside ol strong { color: #4c5e55; font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.role-week-boundary-pair { display: grid; gap: 8px; margin-top: 10px; }
.role-week-boundary-pair article { padding: 11px 12px; border-left: 3px solid #557a68; background: #edf4f0; }
.role-week-boundary-pair article + article { border-left-color: #bd8e2d; background: #fbf6e8; }
.role-week-boundary-pair strong { color: #385546; font-size: 9px; }
.role-week-boundary-pair ul { margin: 7px 0 0; padding-left: 14px; color: #65736c; font-size: 8px; line-height: 1.5; }
.role-week-stage-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; min-width: 0; }
.role-week-stage-card { min-width: 0; padding: 12px; border: 1px solid #d9e3dd; background: #fff; }
.role-week-stage-card > header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 7px; align-items: center; }
.role-week-stage-card > header span { color: var(--primary); font-size: 8px; font-weight: 900; }
.role-week-stage-card > header h4 { margin: 0; font-size: 11px; overflow-wrap: anywhere; }
.role-week-stage-card > header small { color: #738078; font-size: 8px; white-space: nowrap; }
.role-week-stage-action { margin: 10px 0 0; padding: 9px 10px; background: #edf5f1; }
.role-week-stage-action b,
.role-week-stage-action strong { display: block; }
.role-week-stage-action b { color: var(--primary); font-size: 8px; }
.role-week-stage-action strong { margin-top: 3px; color: #344f41; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.role-week-stage-card dl { display: grid; gap: 0; margin: 8px 0 0; }
.role-week-stage-card dl > div { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 8px; padding: 7px 0; border-top: 1px solid #edf0ee; }
.role-week-stage-card dt { display: flex; align-items: flex-start; gap: 5px; color: #60736a; font-size: 8px; font-weight: 900; }
.role-week-stage-card dt svg { flex: 0 0 auto; width: 12px; height: 12px; color: var(--primary); }
.role-week-stage-card dd { margin: 0; color: #4c5c54; font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.role-week-execution-workspace > footer { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #dfe6e2; background: #fff; }
.role-week-execution-workspace > footer > div { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: start; padding: 12px 20px; }
.role-week-execution-workspace > footer > div + div { border-left: 1px solid #dfe6e2; }
.role-week-execution-workspace > footer span { display: grid; width: 26px; height: 26px; place-items: center; color: var(--primary); background: #edf5f1; }
.role-week-execution-workspace > footer svg { width: 14px; height: 14px; }
.role-week-execution-workspace > footer p { margin: 0; }
.role-week-execution-workspace > footer small,
.role-week-execution-workspace > footer strong { display: block; overflow-wrap: anywhere; }
.role-week-execution-workspace > footer small { color: #6d7973; font-size: 8px; }
.role-week-execution-workspace > footer strong { margin-top: 3px; color: #3f5449; font-size: 9px; line-height: 1.45; }
.role-week-handoff-boundary { display: flex; align-items: center; gap: 6px; padding: 9px 20px; border-top: 1px solid #e1e7e3; color: #69766f; font-size: 8px; line-height: 1.45; }
.role-week-handoff-boundary svg { flex: 0 0 auto; width: 13px; height: 13px; }
.teacher-onboarding {
  margin-bottom: 16px;
  border-top: 1px solid #cfdad5;
  border-bottom: 1px solid #cfdad5;
  background: #fff;
}
.teacher-onboarding > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 20px 14px;
}
.teacher-onboarding > header h2 { margin: 4px 0 0; font-size: 17px; }
.teacher-onboarding > header > strong { flex: 0 0 auto; color: var(--primary); font-size: 10px; }
.teacher-onboarding-days {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fafbf9;
}
.teacher-onboarding-day {
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  min-width: 0;
  min-height: 180px;
  padding: 14px;
  border: 0;
  color: var(--ink);
  background: transparent;
  text-align: left;
}
.teacher-onboarding-day + .teacher-onboarding-day { border-left: 1px solid var(--line); }
.teacher-onboarding-day:hover,
.teacher-onboarding-day.selected { background: #fff; }
.teacher-onboarding-day.selected { box-shadow: inset 0 -3px 0 var(--primary); }
.teacher-onboarding-day.completed { background: #f2f7f4; }
.teacher-onboarding-day-number {
  color: var(--primary);
  font-size: 9px;
  font-weight: 900;
}
.teacher-onboarding-day h3 { margin: 10px 0 5px; font-size: 13px; line-height: 1.35; }
.teacher-onboarding-day p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.teacher-onboarding-day small {
  display: block;
  margin-top: 10px;
  color: var(--ink);
  font-size: 8px;
  line-height: 1.5;
}
.teacher-onboarding-day-status {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 5px;
  margin-top: 12px;
  padding: 4px 6px;
  color: var(--primary-dark);
  background: #e6f0eb;
  font-size: 8px;
  font-weight: 800;
}
.teacher-onboarding-day-status svg { width: 12px; height: 12px; }
.teacher-onboarding-guide { background: #fff; }
.teacher-onboarding-guide > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 20px 14px;
}
.teacher-onboarding-guide > header span { color: var(--primary); font-size: 9px; font-weight: 900; }
.teacher-onboarding-guide > header h3 { margin: 5px 0 4px; font-size: 16px; }
.teacher-onboarding-guide > header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.teacher-onboarding-guide > header > strong { color: var(--primary-dark); font-size: 22px; }
.teacher-onboarding-guide-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fafbf9;
}
.teacher-onboarding-phase { min-width: 0; padding: 14px 16px; }
.teacher-onboarding-phase + .teacher-onboarding-phase { border-left: 1px solid var(--line); }
.teacher-onboarding-phase > span { color: var(--primary); font-size: 9px; font-weight: 900; }
.teacher-onboarding-phase > div { margin-top: 8px; }
.teacher-onboarding-task {
  display: grid;
  grid-template-columns: 17px minmax(0,1fr);
  gap: 8px;
  align-items: flex-start;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}
.teacher-onboarding-task input { width: 15px; height: 15px; margin: 2px 0 0; accent-color: var(--primary); }
.teacher-onboarding-task span,
.teacher-onboarding-task strong,
.teacher-onboarding-task small,
.teacher-onboarding-task em { display: block; min-width: 0; }
.teacher-onboarding-task strong { font-size: 10px; line-height: 1.45; }
.teacher-onboarding-task small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.teacher-onboarding-task em { margin-top: 5px; color: #668074; font-size: 8px; font-style: normal; }
.teacher-onboarding-task.completed strong { color: var(--primary-dark); }
.teacher-onboarding-guide-boundary {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 10px 20px;
  color: #765c22;
  background: #fbf6e8;
  font-size: 8px;
  line-height: 1.5;
}
.teacher-onboarding-guide-boundary svg { flex: 0 0 auto; width: 13px; height: 13px; }
.teacher-onboarding-boundary { margin: 0; padding: 10px 20px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.teacher-resource-toolbar {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(260px,340px);
  gap: 14px;
  align-items: end;
  padding: 15px 18px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.teacher-resource-search > label,
.teacher-resource-activity { display: grid; gap: 6px; color: var(--muted); font-size: 9px; font-weight: 800; }
.teacher-resource-search > div { display: grid; grid-template-columns: 34px minmax(0,1fr) 34px; align-items: center; min-height: 40px; border: 1px solid #c9d5cf; background: #f9faf9; }
.teacher-resource-search > div > span { display: grid; place-items: center; color: var(--primary); }
.teacher-resource-search svg { width: 16px; height: 16px; }
.teacher-resource-search input { min-width: 0; height: 38px; padding: 0; border: 0; outline: 0; background: transparent; font-size: 12px; }
.teacher-resource-search button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; color: var(--muted); background: transparent; }
.teacher-resource-activity select { width: 100%; min-height: 40px; padding: 0 34px 0 11px; border: 1px solid #c9d5cf; background-color: #f9faf9; font-size: 11px; }
.teacher-resource-categories { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); padding: 4px; border-bottom: 1px solid var(--line); background: #f4f6f5; }
.teacher-resource-categories button { display: grid; grid-template-columns: 18px minmax(0,1fr) auto; gap: 5px; align-items: center; min-width: 0; min-height: 38px; padding: 0 8px; border: 0; color: var(--muted); background: transparent; font-size: 10px; }
.teacher-resource-categories button svg { width: 15px; height: 15px; }
.teacher-resource-categories button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-resource-categories button small { font-size: 8px; }
.teacher-resource-categories button.active { color: var(--primary-dark); background: #fff; box-shadow: 0 1px 4px rgba(25,60,48,.09); font-weight: 800; }
.teacher-resource-results-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 22px 0 12px; }
.teacher-resource-results-heading h2 { margin: 3px 0 0; font-size: 17px; }
.teacher-resource-results-heading > strong { color: var(--primary); font-size: 10px; }
.teacher-resource-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.teacher-resource-card { display: flex; min-width: 0; flex-direction: column; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.teacher-resource-card.priority-high { border-left: 3px solid #c59535; }
.teacher-resource-card.priority-critical { border-left: 3px solid var(--coral); }
.teacher-resource-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.teacher-resource-card > header > div { min-width: 0; }
.teacher-resource-card > header small { display: block; overflow: hidden; margin-top: 5px; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.resource-category-mark { display: inline-flex; align-items: center; gap: 5px; color: var(--primary); font-size: 9px; font-weight: 900; }
.resource-category-mark svg { width: 14px; height: 14px; }
.resource-priority { flex: 0 0 auto; padding: 4px 6px; color: var(--muted); background: #f2f4f3; font-size: 8px; font-weight: 800; }
.priority-high .resource-priority { color: #775916; background: #fbf3df; }
.priority-critical .resource-priority { color: #934837; background: var(--coral-soft); }
.teacher-resource-card h3 { margin: 13px 0 5px; font-size: 15px; }
.teacher-resource-card > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.teacher-resource-content { margin: 13px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.teacher-resource-content li { display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.teacher-resource-content li > span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.teacher-resource-content strong,
.teacher-resource-content small { display: block; }
.teacher-resource-content strong { font-size: 10px; line-height: 1.5; }
.teacher-resource-content small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.teacher-resource-card footer { display: flex; justify-content: flex-end; gap: 12px; margin-top: auto; padding-top: 12px; }
.teacher-resource-card footer button { display: inline-flex; align-items: center; gap: 5px; }
.teacher-resource-card footer svg { width: 13px; height: 13px; }
.teacher-resource-empty { grid-column: 1 / -1; display: flex; min-height: 180px; align-items: center; justify-content: center; gap: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); }
.teacher-resource-empty svg { width: 24px; height: 24px; color: var(--primary); }
.teacher-resource-empty strong,
.teacher-resource-empty span { display: block; }
.teacher-resource-empty strong { color: var(--ink); font-size: 12px; }
.teacher-resource-empty span { margin-top: 4px; font-size: 9px; }
.resource-result-limit { grid-column: 1 / -1; padding: 12px; color: var(--muted); background: #f5f6f5; font-size: 9px; text-align: center; }

@media (max-width: 980px) {
  .teacher-role-stages, .teacher-curriculum-weeks { grid-template-columns: 1fr; }
  .teacher-inquiry-threads { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-inquiry-threads::before { left: 25%; right: 25%; }
  .teacher-path-stage-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-path-stage:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .teacher-path-stage:nth-child(4) { border-top: 1px solid var(--line); }
  .teacher-curriculum-overview { grid-template-columns: 1fr; }
  .teacher-curriculum-overview dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .teacher-curriculum-overview dl > div:first-child { border-left: 0; padding-left: 0; }
  .teacher-handoff-readiness { grid-template-columns: 1fr 1fr; }
  .teacher-handoff-readiness > div:first-child { grid-column: 1 / -1; }
  .teacher-onboarding-days { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .teacher-onboarding-day + .teacher-onboarding-day { border-left: 0; }
  .teacher-onboarding-day:nth-child(even) { border-left: 1px solid var(--line); }
  .teacher-onboarding-day:nth-child(n+3) { border-top: 1px solid var(--line); }
  .teacher-onboarding-guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .teacher-onboarding-phase:last-child { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
  .teacher-resource-categories { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .teacher-resource-results { grid-template-columns: 1fr; }
  .role-week-handoff-row { grid-template-columns: 34px minmax(0,1fr) auto; }
  .role-week-handoff-counts { grid-column: 2; }
  .role-week-handoff-row .secondary-button { grid-column: 3; grid-row: 1 / span 2; }
  .role-week-execution-body { grid-template-columns: 1fr; }
  .role-week-execution-body > aside { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,.45fr); gap: 10px; }
  .role-week-boundary-pair { margin-top: 0; }
}
@media (max-width: 680px) {
  .teacher-resource-pane-switch { width: 100%; margin-bottom: 12px; }
  .teacher-resource-pane-switch button { min-height: 44px; }
  .teacher-role-desk > header, .teacher-support-lookup > header, .teacher-curriculum-path > header { align-items: stretch; flex-direction: column; }
  .teacher-role-desk > header button { width: 100%; }
  .teacher-role-days { display: flex; overflow-x: auto; }
  .teacher-role-day { flex: 0 0 132px; }
  .teacher-role-start { margin-inline: 14px; grid-template-columns: 1fr; }
  .teacher-role-start ol { grid-template-columns: 1fr; }
  .teacher-role-stages { padding-inline: 14px; }
  .teacher-role-boundaries, .teacher-role-desk > footer { grid-template-columns: 1fr; }
  .teacher-role-boundaries section + section { border-top: 1px solid var(--line); }
  .teacher-role-desk > footer > b { justify-self: start; white-space: normal; }
  .teacher-support-modes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .teacher-support-modes button { min-height: 44px; padding-inline: 6px; font-size: 10px; }
  .teacher-curriculum-overview { padding: 16px; }
  .teacher-curriculum-overview dl { grid-template-columns: 1fr 1fr; }
  .teacher-curriculum-overview dl > div { padding: 8px 10px; border-top: 1px solid var(--line); }
  .teacher-curriculum-overview dl > div:nth-child(odd) { border-left: 0; }
  .teacher-curriculum-overview dl > div:first-child, .teacher-curriculum-overview dl > div:nth-child(2) { border-top: 0; }
  .teacher-curriculum-overview dl > div:last-child { grid-column: 1 / -1; }
  .teacher-curriculum-day { grid-template-columns: 30px minmax(0, 1fr) 16px; }
  .teacher-curriculum-day em { grid-column: 2; white-space: normal; }
  .teacher-curriculum-day > svg { grid-column: 3; grid-row: 1 / span 2; }
  .teacher-map-tabs { width: 100%; max-width: none; }
  .teacher-project-map > header { align-items: stretch; flex-direction: column; }
  .teacher-project-map-actions { display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; }
  .teacher-project-map-actions .teacher-no-record { grid-column: 1 / -1; justify-self: start; }
  .teacher-project-map-actions button { width: 100%; min-width: 0; }
  .teacher-inquiry-core { width: 100%; margin-bottom: 22px; padding: 15px; }
  .teacher-inquiry-core::after { left: 18px; bottom: -23px; height: 22px; }
  .teacher-inquiry-threads { grid-template-columns: 1fr; gap: 10px; padding: 0 0 0 20px; }
  .teacher-inquiry-threads::before { top: 0; bottom: 0; left: 18px; right: auto; width: 1px; height: auto; }
  .teacher-inquiry-thread::before { left: -3px; top: 25px; width: 3px; height: 1px; }
  .teacher-inquiry-thread > p { min-height: 0; }
  .teacher-path-stage-rail { grid-template-columns: 1fr; }
  .teacher-path-stage { min-height: 116px; padding-right: 15px; }
  .teacher-path-stage + .teacher-path-stage { border-top: 1px solid var(--line); border-left: 0; }
  .teacher-path-stage > svg { display: none; }
  .teacher-path-branches article { grid-template-columns: 29px minmax(0, 1fr); }
  .teacher-path-branches article b { grid-column: 2; white-space: normal; }
  .teacher-resource-current { grid-template-columns: 1fr; padding: 15px; }
  .teacher-resource-current-metrics { grid-template-columns: auto minmax(0,1fr) auto minmax(0,1fr); padding: 12px 0 0; border-top: 1px solid #cadbd2; border-left: 0; }
  .teacher-handoff-readiness { grid-template-columns: 1fr; padding: 15px; }
  .teacher-handoff-readiness > div:first-child { grid-column: auto; }
  .teacher-handoff-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
  .teacher-handoff-metrics span { min-width: 0; padding: 7px 8px; border: 1px solid #dce4df; }
  .teacher-handoff-actions { min-width: 0; }
  .role-week-handoff-panel > header { align-items: flex-start; flex-direction: column; padding: 15px; }
  .role-week-handoff-row { grid-template-columns: 30px minmax(0,1fr); gap: 8px 10px; padding: 12px 15px; }
  .role-week-handoff-icon { width: 30px; height: 30px; }
  .role-week-handoff-counts { grid-column: 2; min-width: 0; }
  .role-week-handoff-counts span { min-width: 0; flex: 1 1 0; }
  .role-week-handoff-row .secondary-button { grid-column: 1 / -1; grid-row: auto; width: 100%; min-width: 0; }
  .role-week-execution-workspace > header { align-items: stretch; flex-direction: column; padding: 15px; }
  .role-week-execution-actions { width: 100%; flex-direction: column; }
  .role-week-execution-actions button { width: 100%; min-width: 0; }
  .role-week-continuity-status { margin-right: 15px; margin-left: 15px; }
  .role-week-role-tabs { grid-template-columns: 1fr; }
  .role-week-role-tab { min-height: 54px; padding: 9px 15px; }
  .role-week-role-tab + .role-week-role-tab { border-top: 1px solid #dfe6e2; border-left: 0; }
  .role-week-role-tab.active { box-shadow: inset 3px 0 0 var(--primary); }
  .role-week-day-tabs { grid-template-columns: 1fr 1fr; gap: 7px; padding: 10px 15px; }
  .role-week-day-tab { min-height: 68px; border: 1px solid #dce4df; }
  .role-week-day-tab:last-child { grid-column: 1 / -1; }
  .role-week-day-tab.active + .role-week-day-tab { border-left-color: #dce4df; }
  .role-week-execution-summary { margin: 0 15px; }
  .role-week-execution-body { padding: 12px 15px; }
  .role-week-execution-body > aside { grid-template-columns: 1fr; }
  .role-week-boundary-pair { margin-top: 0; }
  .role-week-stage-list { grid-template-columns: 1fr; }
  .role-week-stage-card dl > div { grid-template-columns: 1fr; gap: 4px; }
  .role-week-execution-workspace > footer { grid-template-columns: 1fr; }
  .role-week-execution-workspace > footer > div { padding: 11px 15px; }
  .role-week-execution-workspace > footer > div + div { border-top: 1px solid #dfe6e2; border-left: 0; }
  .role-week-handoff-boundary { padding: 10px 15px; }
  .teacher-onboarding > header { align-items: flex-start; padding: 15px; }
  .teacher-onboarding-days { grid-template-columns: 1fr; }
  .teacher-onboarding-day { min-height: 0; padding: 14px 15px; }
  .teacher-onboarding-day:nth-child(even) { border-left: 0; }
  .teacher-onboarding-day + .teacher-onboarding-day { border-top: 1px solid var(--line); }
  .teacher-onboarding-guide > header { align-items: flex-start; padding: 15px; }
  .teacher-onboarding-guide-grid { grid-template-columns: 1fr; }
  .teacher-onboarding-phase { padding: 14px 15px; }
  .teacher-onboarding-phase + .teacher-onboarding-phase,
  .teacher-onboarding-phase:last-child { grid-column: auto; border-top: 1px solid var(--line); border-left: 0; }
  .teacher-onboarding-guide-boundary { align-items: flex-start; padding: 10px 15px; }
  .teacher-onboarding-boundary { padding: 10px 15px; }
  .teacher-resource-toolbar { grid-template-columns: 1fr; padding: 14px 15px; }
  .teacher-resource-categories { display: flex; overflow-x: auto; overscroll-behavior-inline: contain; }
  .teacher-resource-categories button { min-width: 104px; }
  .teacher-resource-results-heading { margin-top: 18px; }
  .teacher-resource-card { padding: 14px; }
  .teacher-resource-content li { grid-template-columns: 72px minmax(0,1fr); }
}

/* 2-6 age adaptation audit */
.age-audit-workspace {
  margin-bottom: 16px;
  border-top: 1px solid #cfdad5;
  border-bottom: 1px solid #cfdad5;
  background: #fff;
}
.age-audit-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 19px 20px 16px;
}
.age-audit-heading h2 { margin: 4px 0 5px; font-size: 19px; }
.age-audit-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.age-audit-heading-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.age-audit-overall { display: grid; grid-template-columns: auto auto; column-gap: 7px; align-items: center; min-height: 38px; padding: 0 10px; border-left: 3px solid var(--primary); background: #eef5f1; }
.age-audit-overall.blocked { border-left-color: var(--coral); background: var(--coral-soft); }
.age-audit-overall strong { color: var(--primary-dark); font-size: 17px; }
.age-audit-overall small { color: var(--muted); font-size: 8px; }
.age-audit-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fafbf9; }
.age-audit-summary > div { min-width: 0; padding: 12px 16px; }
.age-audit-summary > div + div { border-left: 1px solid var(--line); }
.age-audit-summary strong { display: block; color: var(--primary-dark); font-size: 22px; }
.age-audit-summary span { color: var(--muted); font-size: 9px; }
.age-audit-band-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--line); background: #f4f6f5; }
.age-audit-band-tab { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 10px; align-items: center; min-width: 0; min-height: 78px; padding: 11px 14px; border: 0; border-left: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.age-audit-band-tab:first-child { border-left: 0; }
.age-audit-band-tab.selected { box-shadow: inset 0 -3px 0 var(--primary); background: #fff; }
.age-audit-band-tab > span:first-child small,
.age-audit-band-tab > span:first-child strong { display: block; }
.age-audit-band-tab > span:first-child small { color: var(--primary); font-size: 8px; font-weight: 900; }
.age-audit-band-tab > span:first-child strong { margin-top: 4px; font-size: 13px; }
.age-audit-score { color: var(--primary-dark); font-size: 21px; font-weight: 900; }
.age-audit-score small { margin-left: 2px; font-size: 8px; }
.age-audit-score.blocked { color: var(--coral); }
.age-audit-band-meta { grid-column: 1 / 3; color: var(--muted); font-size: 8px; }
.age-audit-detail-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 24px; padding: 20px; }
.age-audit-detail-grid > section { min-width: 0; }
.age-audit-detail-grid > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.age-audit-section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.age-audit-section-title > div > span { color: var(--primary); font-size: 8px; font-weight: 900; }
.age-audit-section-title h3 { margin: 3px 0 0; font-size: 14px; }
.age-audit-section-title > small { color: var(--muted); font-size: 8px; }
.age-audit-profile,
.age-audit-checks { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.age-audit-profile li { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.age-audit-profile li > span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.age-audit-profile p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.age-audit-source { display: flex; gap: 6px; align-items: flex-start; margin-top: 11px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.age-audit-source svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }
.age-audit-checks li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 9px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.age-audit-checks li > span { display: grid; width: 20px; height: 20px; place-items: center; color: var(--primary); background: #eef5f1; }
.age-audit-checks li.blocked > span { color: var(--coral); background: var(--coral-soft); }
.age-audit-checks svg { width: 14px; height: 14px; }
.age-audit-checks strong { display: block; font-size: 10px; }
.age-audit-checks p { margin: 3px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.age-audit-checks small { display: block; margin-top: 4px; color: var(--coral); font-size: 8px; line-height: 1.45; }
.age-audit-matrix { padding: 0 20px 20px; }
.age-audit-table-wrap { overflow-x: auto; }
.age-audit-matrix table { min-width: 620px; }
.age-audit-matrix th:not(:first-child),
.age-audit-matrix td:not(:first-child) { text-align: center; }
.age-matrix-status { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 52px; color: var(--primary); }
.age-matrix-status.blocked { color: var(--coral); }
.age-matrix-status svg { width: 13px; height: 13px; }
.age-matrix-status small { font-size: 8px; }

@media (max-width: 900px) {
  .age-audit-heading { flex-direction: column; }
  .age-audit-detail-grid { grid-template-columns: 1fr; }
  .age-audit-detail-grid > section + section { padding: 18px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}
@media (max-width: 680px) {
  .age-audit-heading { padding: 15px; }
  .age-audit-heading-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .age-audit-heading-actions button { width: 100%; }
  .age-audit-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .age-audit-summary > div:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .age-audit-summary > div:nth-child(4) { border-top: 1px solid var(--line); }
  .age-audit-band-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .age-audit-band-tab:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .age-audit-band-tab:nth-child(4) { border-top: 1px solid var(--line); }
  .age-audit-band-tab.selected { box-shadow: inset 3px 0 0 var(--primary); }
  .age-audit-detail-grid { padding: 15px; }
  .age-audit-matrix { padding: 0 15px 15px; }
}

/* Role-specific handoff cards */
.role-mode { display: grid; gap: 18px; min-width: 0; }
.role-mode-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.role-mode-intro h3 { margin: 4px 0 5px; font-size: 18px; }
.role-mode-intro p { max-width: 720px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.role-mode-actions { display: flex; flex: 0 0 auto; gap: 7px; }
.role-mode-actions .secondary-button { min-width: 140px; }
.role-selector { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); background: #f5f7f6; }
.role-selector > button {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  gap: 9px;
  align-items: center;
  min-width: 0;
  min-height: 66px;
  padding: 10px 13px;
  border: 0;
  border-left: 1px solid var(--line);
  color: var(--ink);
  background: transparent;
  text-align: left;
}
.role-selector > button:first-child { border-left: 0; }
.role-selector > button:hover { background: #eef4f1; }
.role-selector > button.active { box-shadow: inset 0 -3px 0 var(--primary); background: #fff; }
.role-selector > button > svg { width: 20px; height: 20px; color: var(--primary); }
.role-selector > button strong,
.role-selector > button small { display: block; }
.role-selector > button strong { font-size: 12px; }
.role-selector > button small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.role-mission {
  display: grid;
  grid-template-columns: 42px auto minmax(0,1fr);
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 10px 14px;
  border-left: 4px solid var(--primary);
  background: var(--primary-soft);
}
.role-mission > div { display: grid; width: 40px; height: 40px; place-items: center; color: #fff; background: var(--primary); }
.role-mission > div svg { width: 20px; height: 20px; }
.role-mission > span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.role-mission > strong { font-size: 14px; line-height: 1.45; }
.role-before-start { padding: 14px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.role-before-start ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 20px; margin: 12px 0 0; padding: 0; list-style: none; }
.role-before-start li { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 8px; align-items: start; color: var(--muted); font-size: 10px; line-height: 1.5; }
.role-before-start li b { display: grid; width: 22px; height: 22px; place-items: center; color: #fff; background: var(--primary-dark); font-size: 9px; }
.role-stage-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.role-stage-card { min-width: 0; padding: 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.role-stage-card header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 8px; align-items: center; }
.role-stage-card header > span { color: var(--primary); font-size: 9px; font-weight: 900; }
.role-stage-card header h4 { overflow: hidden; margin: 0; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.role-stage-card header > b { color: var(--muted); font-size: 9px; }
.role-stage-primary { margin-top: 12px; padding: 10px 11px; border-left: 3px solid var(--gold); background: var(--gold-soft); }
.role-stage-primary span,
.role-stage-primary strong { display: block; }
.role-stage-primary span { color: #795615; font-size: 8px; font-weight: 900; }
.role-stage-primary strong { margin-top: 4px; font-size: 11px; line-height: 1.5; }
.role-stage-card dl { margin: 10px 0 0; }
.role-stage-card dl > div { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 9px; padding: 7px 0; border-top: 1px solid var(--line); }
.role-stage-card dt { display: flex; gap: 5px; align-items: flex-start; color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.role-stage-card dt svg { width: 13px; height: 13px; flex: 0 0 auto; }
.role-stage-card dd { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.role-close { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.role-close > div { min-width: 0; padding: 13px 15px; }
.role-close > div + div { border-left: 1px solid var(--line); }
.role-close span,
.role-close strong { display: block; }
.role-close span { color: var(--primary); font-size: 9px; font-weight: 900; }
.role-close strong { margin-top: 5px; font-size: 11px; line-height: 1.5; }
.role-boundary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.role-boundary-grid > section + section { padding-left: 24px; border-left: 1px solid var(--line); }
.role-boundary-grid > section > span { display: block; margin-bottom: 8px; color: var(--primary-dark); font-size: 10px; font-weight: 900; }
.role-boundary-note { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; color: var(--muted); background: #f5f7f6; font-size: 9px; line-height: 1.5; }
.role-boundary-note svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }

@media (max-width: 920px) {
  .role-stage-list { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .execution-header { align-items: stretch; }
  .execution-header-actions { width: 100%; }
  .execution-tabs { width: 100%; }
  .execution-tabs button { min-width: 0; font-size: 10px; }
  .execution-tabs button svg { display: none; }
  .role-mode-intro { flex-direction: column; }
  .role-mode-actions { width: 100%; flex-direction: column; }
  .role-mode-actions .secondary-button { width: 100%; }
  .role-selector { grid-template-columns: 1fr; }
  .role-selector > button { min-height: 58px; border-top: 1px solid var(--line); border-left: 0; }
  .role-selector > button:first-child { border-top: 0; }
  .role-selector > button.active { box-shadow: inset 3px 0 0 var(--primary); }
  .role-selector > button small { white-space: normal; }
  .role-mission { grid-template-columns: 38px minmax(0,1fr); }
  .role-mission > span { align-self: end; }
  .role-mission > strong { grid-column: 2; }
  .role-before-start ol { grid-template-columns: 1fr; }
  .role-stage-card { padding: 13px; }
  .role-stage-card dl > div { grid-template-columns: 66px minmax(0,1fr); }
  .role-close,
  .role-boundary-grid { grid-template-columns: 1fr; gap: 0; }
  .role-close > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .role-boundary-grid > section + section { margin-top: 14px; padding: 14px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

/* Class grouping and material allocation */
.class-orchestration { margin-top: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fafbf9; }
.class-orchestration-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 16px; }
.class-orchestration-heading h3 { margin: 4px 0 5px; font-size: 16px; }
.class-orchestration-heading p { max-width: 680px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.class-orchestration-heading .secondary-button { flex: 0 0 auto; }
.class-group-strip { display: grid; grid-template-columns: repeat(auto-fit,minmax(100px,1fr)); margin: 0; padding: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); list-style: none; background: #fff; }
.class-group-strip li { min-width: 0; min-height: 58px; padding: 10px 12px; border-left: 1px solid var(--line); }
.class-group-strip li:first-child { border-left: 0; }
.class-group-strip span,
.class-group-strip strong,
.class-group-strip small { display: block; }
.class-group-strip span { color: var(--primary); font-size: 8px; font-weight: 900; }
.class-group-strip strong { margin-top: 3px; font-size: 15px; }
.class-group-strip small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.class-zone-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 14px 16px; }
.class-zone-grid article { min-width: 0; padding: 0 16px; }
.class-zone-grid article:first-child { padding-left: 0; }
.class-zone-grid article + article { border-left: 1px solid var(--line); }
.class-zone-grid span,
.class-zone-grid strong { display: block; }
.class-zone-grid span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.class-zone-grid strong { margin-top: 4px; font-size: 11px; }
.class-zone-grid p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.class-material-plan { scroll-margin-top: 84px; border-top: 1px solid var(--line); background: #fff; }
.class-material-plan summary { display: grid; grid-template-columns: 24px minmax(0,1fr) 18px; gap: 9px; align-items: center; min-height: 54px; padding: 9px 16px; cursor: pointer; list-style: none; }
.class-material-plan summary::-webkit-details-marker { display: none; }
.class-material-plan summary > svg { color: var(--primary); }
.class-material-plan summary > svg:last-child { color: var(--muted); transition: transform .18s ease; }
.class-material-plan[open] summary > svg:last-child { transform: rotate(180deg); }
.class-material-plan summary strong,
.class-material-plan summary small { display: block; }
.class-material-plan summary strong { font-size: 11px; }
.class-material-plan summary small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.class-material-plan ul { margin: 0; padding: 0 16px 12px; border-top: 1px solid var(--line); list-style: none; }
.class-material-plan li { display: grid; grid-template-columns: 120px minmax(0,1fr) minmax(130px,.7fr); gap: 12px; align-items: start; padding: 9px 0; border-bottom: 1px solid var(--line); }
.class-material-plan li:last-child { border-bottom: 0; }
.class-material-plan li > div strong,
.class-material-plan li > div small { display: block; }
.class-material-plan li > div strong { font-size: 10px; }
.class-material-plan li > div small { margin-top: 3px; color: var(--primary); font-size: 8px; }
.class-material-plan li > span { color: var(--ink); font-size: 9px; line-height: 1.5; }
.class-material-plan li > em { color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.5; }
.class-start-sequence { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 12px; padding: 13px 16px; border-top: 1px solid var(--line); }
.class-start-sequence > span { color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.class-start-sequence ol { display: grid; gap: 5px; margin: 0; padding-left: 18px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.class-orchestration-boundary { display: flex; gap: 7px; align-items: flex-start; margin: 0; padding: 10px 16px; border-top: 1px solid var(--line); color: var(--muted); background: #eef4f1; font-size: 8px; line-height: 1.5; }
.class-orchestration-boundary svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }

@media (max-width: 680px) {
  .class-orchestration-heading { flex-direction: column; padding: 14px; }
  .class-orchestration-heading .secondary-button { width: 100%; }
  .class-group-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .class-group-strip li { border-top: 1px solid var(--line); }
  .class-group-strip li:nth-child(odd) { border-left: 0; }
  .class-group-strip li:first-child,
  .class-group-strip li:nth-child(2) { border-top: 0; }
  .class-zone-grid { grid-template-columns: 1fr; padding: 0 14px; }
  .class-zone-grid article { padding: 12px 0; }
  .class-zone-grid article + article { border-top: 1px solid var(--line); border-left: 0; }
  .class-material-plan summary { padding: 9px 14px; }
  .class-material-plan ul { padding: 0 14px 10px; }
  .class-material-plan li { grid-template-columns: 82px minmax(0,1fr); gap: 6px 10px; }
  .class-material-plan li > em { grid-column: 2; }
  .class-start-sequence { grid-template-columns: 1fr; padding: 12px 14px; }
  .class-orchestration-boundary { padding: 10px 14px; }
}

/* Material inventory and readiness */
.inventory-outcome { display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 2px 6px; border-radius: 4px; background: #eef1ef; color: #4f5b55; font-size: 8px; font-weight: 800; line-height: 1.35; }
.inventory-outcome.ready { background: #e5f3e9; color: #24643a; }
.inventory-outcome.check { background: #eef1f4; color: #52606b; }
.inventory-outcome.supply { background: #fff2cf; color: #79520a; }
.inventory-outcome.substitute { background: #e7f0f7; color: #285a78; }
.inventory-outcome.blocked { background: #fae5e3; color: #943b32; }
.material-name-cell { display: grid; gap: 4px; min-width: 0; }
.material-name-cell > span { overflow-wrap: anywhere; }
.class-material-plan li > div .inventory-outcome { margin-top: 6px; color: inherit; font-size: 7px; }
.class-material-plan li.material-outcome-blocked { background: #fff8f7; }
.class-material-plan li.material-outcome-supply,
.class-material-plan li.material-outcome-substitute { background: #fffdf7; }

.material-readiness-band { display: grid; grid-template-columns: minmax(260px,1.1fr) minmax(300px,.9fr); gap: 18px 26px; margin-top: 18px; padding: 18px 22px; border-top: 3px solid #708078; border-bottom: 1px solid var(--line); background: #f7f9f8; }
.material-readiness-band.ready { border-top-color: #3d7b50; background: #f2f8f4; }
.material-readiness-band.attention { border-top-color: #b47a16; background: #fffbf1; }
.material-readiness-band.blocked { border-top-color: #ad493e; background: #fff7f6; }
.material-readiness-heading { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 12px; align-items: start; }
.material-readiness-heading > span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid currentColor; border-radius: 7px; color: #52635a; }
.material-readiness-band.attention .material-readiness-heading > span { color: #946313; }
.material-readiness-band.blocked .material-readiness-heading > span { color: #a14339; }
.material-readiness-heading svg { width: 20px; height: 20px; }
.material-readiness-heading small { color: var(--muted); font-size: 9px; font-weight: 800; }
.material-readiness-heading h2 { margin: 3px 0 5px; font-size: 17px; }
.material-readiness-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.material-readiness-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); background: #fff; }
.material-readiness-metrics div { min-width: 0; padding: 10px; text-align: center; }
.material-readiness-metrics div + div { border-left: 1px solid var(--line); }
.material-readiness-metrics strong,
.material-readiness-metrics span { display: block; }
.material-readiness-metrics strong { font-size: 17px; }
.material-readiness-metrics span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.material-readiness-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.material-readiness-actions p { display: grid; gap: 4px; min-width: 0; margin: 0; padding: 10px 12px; background: #fff; }
.material-readiness-actions b { color: var(--ink); font-size: 9px; overflow-wrap: anywhere; }
.material-readiness-actions span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.material-readiness-actions > small { grid-column: 1 / -1; padding: 7px 12px; background: #f6f7f6; color: var(--muted); font-size: 8px; }

.material-inventory-section { grid-column: 1 / -1; padding: 0; overflow: hidden; }
.project-inventory-review-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 18px; border-bottom: 1px solid #ead7ad; background: #fff9e8; }
.project-inventory-review-banner > div { min-width: 0; }
.project-inventory-review-banner span,
.project-inventory-review-banner strong,
.project-inventory-review-banner small { display: block; }
.project-inventory-review-banner span { display: flex; gap: 6px; align-items: center; color: #8a631e; font-size: 9px; font-weight: 900; }
.project-inventory-review-banner span svg { width: 14px; height: 14px; }
.project-inventory-review-banner strong { margin-top: 5px; color: #513f1f; font-size: 14px; line-height: 1.45; }
.project-inventory-review-banner small { margin-top: 4px; color: #786b52; font-size: 9px; line-height: 1.5; }
.project-inventory-review-banner .secondary-button { flex: 0 0 auto; }
.material-inventory-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 18px; border-bottom: 1px solid var(--line); }
.material-inventory-heading h2 { margin: 4px 0 7px; }
.material-inventory-heading p { max-width: 720px; margin: 0; }
.material-inventory-heading .primary-button { flex: 0 0 auto; }
.material-inventory-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--line); background: #fafbf9; }
.material-inventory-summary div { padding: 12px 18px; border-left: 3px solid #8a9690; }
.material-inventory-summary div + div { border-left-width: 1px; }
.material-inventory-summary div.available { box-shadow: inset 3px 0 #4b875d; }
.material-inventory-summary div.low { box-shadow: inset 3px 0 #c28a2d; }
.material-inventory-summary div.unavailable { box-shadow: inset 3px 0 #b85449; }
.material-inventory-summary strong,
.material-inventory-summary span { display: block; }
.material-inventory-summary strong { font-size: 20px; }
.material-inventory-summary span { margin-top: 2px; color: var(--muted); font-size: 9px; }
.material-inventory-list { padding: 0 18px 18px; }
.material-inventory-row { display: grid; grid-template-columns: minmax(180px,1fr) minmax(120px,.45fr) minmax(220px,1fr); gap: 12px; align-items: end; padding: 12px 10px; border-bottom: 1px solid var(--line); border-left: 3px solid #8a9690; }
.material-inventory-row[data-inventory-state="available"] { border-left-color: #4b875d; }
.material-inventory-row[data-inventory-state="low"] { border-left-color: #c28a2d; background: #fffdf7; }
.material-inventory-row[data-inventory-state="unavailable"] { border-left-color: #b85449; background: #fff9f8; }
.material-inventory-name { min-width: 0; }
.material-inventory-name strong,
.material-inventory-name small { display: block; }
.material-inventory-name strong { font-size: 12px; overflow-wrap: anywhere; }
.material-inventory-name small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.material-inventory-row label { display: grid; gap: 5px; min-width: 0; }
.material-inventory-row label > span { color: var(--muted); font-size: 8px; font-weight: 700; }
.material-inventory-row select,
.material-inventory-row input { width: 100%; min-width: 0; height: 36px; padding: 0 9px; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }

/* Semester curriculum route */
.semester-planning-band { margin-bottom: 18px; border-top: 4px solid var(--primary); border-bottom: 1px solid var(--line); background: #fff; }

.theme-lifecycle-band {
  display: grid; grid-template-columns: minmax(260px, 1.25fr) minmax(220px, .9fr) minmax(220px, .85fr); gap: 20px; align-items: center;
  padding: 18px 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f7f9f8;
}
.theme-lifecycle-band.ready { background: #f0f7f3; border-bottom-color: #b9d7c7; }
.theme-lifecycle-status { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.theme-lifecycle-status > span { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 6px; color: #fff; background: var(--primary); }
.theme-lifecycle-status h3 { margin: 3px 0 4px; font-size: 17px; }
.theme-lifecycle-status p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.theme-lifecycle-progress { min-width: 0; }
.theme-lifecycle-progress > div { height: 8px; overflow: hidden; border-radius: 4px; background: #dfe6e2; }
.theme-lifecycle-progress i { display: block; height: 100%; background: var(--primary); }
.theme-lifecycle-progress strong, .theme-lifecycle-progress small { display: block; }
.theme-lifecycle-progress strong { margin-top: 7px; font-size: 18px; }
.theme-lifecycle-progress small { color: var(--muted); overflow-wrap: anywhere; }
.theme-lifecycle-next { min-width: 0; padding-left: 18px; border-left: 1px solid var(--line); }
.theme-lifecycle-next span, .theme-lifecycle-next strong, .theme-lifecycle-next small { display: block; }
.theme-lifecycle-next span { color: var(--muted); font-size: 11px; }
.theme-lifecycle-next strong { margin: 5px 0; overflow-wrap: anywhere; }
.theme-lifecycle-next small { color: var(--primary); font-weight: 700; }

@media (max-width: 720px) {
  .teacher-theme-completion { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; padding: 20px 16px; }
  .teacher-theme-completion-mark { width: 48px; height: 48px; }
  .teacher-theme-completion-main h2 { font-size: 20px; }
  .teacher-theme-completion-metrics { grid-template-columns: 1fr; }
  .teacher-theme-completion aside { grid-column: 1 / -1; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .teacher-theme-completion-actions { align-items: stretch; flex-direction: column; padding: 16px; }
  .teacher-theme-completion-actions > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .teacher-theme-completion-actions button { min-width: 0; white-space: normal; }
  .theme-lifecycle-band { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
  .theme-lifecycle-next { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
.semester-heading { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; padding: 20px 22px 16px; }
.semester-heading h2 { margin: 4px 0 6px; font-size: 20px; }
.semester-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.semester-heading-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.semester-heading-actions .project-view-only { min-height: 36px; }
.semester-status-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f6f8f7; }
.semester-status-strip > div { min-width: 0; padding: 12px 16px; }
.semester-status-strip > div + div { border-left: 1px solid var(--line); }
.semester-status-strip span,
.semester-status-strip strong,
.semester-status-strip small { display: block; }
.semester-status-strip span { color: var(--primary); font-size: 8px; font-weight: 900; }
.semester-status-strip strong { margin-top: 4px; overflow-wrap: anywhere; font-size: 13px; line-height: 1.35; }
.semester-status-strip small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.curriculum-timeline-band { border-bottom: 1px solid var(--line); background: #fbfcfb; }
.curriculum-timeline-band > header { padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.curriculum-timeline-band h3 { margin: 3px 0 0; font-size: 15px; }
.curriculum-timeline-band header p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.curriculum-timeline-projects { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--line); }
.curriculum-timeline-project { min-width: 0; min-height: 70px; padding: 11px 12px; display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 8px; align-items: start; position: relative; }
.curriculum-timeline-project + .curriculum-timeline-project { border-left: 1px solid var(--line); }
.curriculum-timeline-project > span { width: 21px; height: 21px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #82928a; font-size: 8px; font-weight: 900; }
.curriculum-timeline-project strong, .curriculum-timeline-project small { display: block; min-width: 0; overflow-wrap: anywhere; }
.curriculum-timeline-project strong { font-size: 10px; }
.curriculum-timeline-project small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.curriculum-timeline-project > b { grid-column: 2; color: var(--muted); font-size: 8px; }
.curriculum-timeline-project.active { box-shadow: inset 0 3px var(--gold); background: var(--gold-soft); }
.curriculum-timeline-project.active > span { background: #9b721d; }
.curriculum-timeline-project.ended { background: #f1f5f3; }
.curriculum-timeline-project.shortened > b { color: #8b4a16; }
.curriculum-timeline-gap { padding: 9px 18px; display: flex; align-items: center; gap: 7px; color: #6d541b; background: #fff9e9; font-size: 9px; }
.curriculum-timeline-gap svg { width: 14px; height: 14px; flex: 0 0 auto; }
.curriculum-timeline-band > footer { padding: 9px 18px; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.curriculum-timeline-band > footer svg { width: 14px; height: 14px; color: var(--primary); }
.curriculum-timeline-band > footer b { margin-left: auto; color: var(--primary-dark); white-space: nowrap; }
.curriculum-calendar-rules { padding: 9px 18px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 12px; background: #f7faf8; }
.curriculum-calendar-rules > strong { flex: 0 0 auto; color: var(--primary-dark); font-size: 9px; }
.curriculum-calendar-rules > div { min-width: 0; display: flex; gap: 7px; overflow-x: auto; }
.curriculum-calendar-rule { min-height: 28px; padding: 0 9px; border: 1px solid #ccd8d1; display: inline-flex; align-items: center; gap: 5px; color: var(--muted); background: #fff; font-size: 8px; white-space: nowrap; }
.curriculum-calendar-rule small { color: var(--muted); font-size: 8px; }
.curriculum-calendar-rule svg { width: 13px; height: 13px; color: var(--primary); }
.curriculum-calendar-rule.closed { border-color: #e2c5a7; background: #fffaf3; }
.curriculum-calendar-rule.closed svg { color: #9a651f; }
.semester-projects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-bottom: 1px solid var(--line); }
.semester-project { display: grid; grid-template-columns: 26px 38px minmax(0,1fr) auto; gap: 10px; align-items: start; min-width: 0; padding: 14px 16px; border-top: 1px solid var(--line); }
.semester-project:nth-child(even) { border-left: 1px solid var(--line); }
.semester-project.active { box-shadow: inset 4px 0 0 var(--gold); background: var(--gold-soft); }
.semester-project-order { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 9px; font-weight: 900; }
.semester-project-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 6px; color: var(--primary-dark); background: var(--primary-soft); }
.semester-project-icon svg { width: 19px; height: 19px; }
.semester-project > div { min-width: 0; }
.semester-project > div > strong,
.semester-project > div > small { display: block; }
.semester-project > div > strong { font-size: 12px; }
.semester-project > div > small { margin-top: 3px; color: var(--primary); font-size: 8px; }
.semester-project p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.semester-readiness { display: grid; justify-items: end; gap: 6px; }
.semester-readiness small { display: inline-flex; gap: 4px; align-items: center; color: #73510c; font-size: 8px; font-weight: 800; }
.semester-readiness small svg { width: 12px; height: 12px; }
.semester-age-note { display: flex; gap: 9px; align-items: flex-start; padding: 10px 16px; border-bottom: 1px solid var(--line); color: #3f5d70; background: #edf4f7; font-size: 9px; line-height: 1.5; }
.semester-age-note svg { width: 16px; height: 16px; flex: 0 0 auto; }
.semester-age-note strong { margin-right: 8px; color: #294b60; }
.semester-week-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 1px; padding: 1px 0; background: var(--line); }
.semester-week { min-width: 0; min-height: 92px; padding: 10px; background: #fff; }
.semester-week header { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 8px; font-weight: 900; }
.semester-week header svg { width: 13px; height: 13px; }
.semester-week strong { display: -webkit-box; overflow: hidden; min-height: 30px; margin-top: 10px; font-size: 10px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.semester-week small { display: block; margin-top: 7px; color: var(--muted); font-size: 8px; }
.semester-week.done { background: #f1f6f3; }
.semester-week.done header { color: #3f7a53; }
.semester-week.current { box-shadow: inset 0 4px 0 var(--gold); background: #fff9e9; }
.semester-week.current header { color: #855f12; }
.semester-decision-bar { display: flex; gap: 18px; align-items: center; justify-content: space-between; min-height: 64px; padding: 12px 16px; border-top: 1px solid var(--line); background: #f7f9f8; }
.semester-decision-bar > div { display: flex; gap: 9px; align-items: center; min-width: 0; }
.semester-decision-bar > div > svg { width: 20px; height: 20px; flex: 0 0 auto; color: var(--primary); }
.semester-decision-bar strong,
.semester-decision-bar small { display: block; }
.semester-decision-bar strong { font-size: 10px; }
.semester-decision-bar small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.semester-decision-bar > button,
.semester-decision-bar > span { flex: 0 0 auto; }
.semester-no-action { display: inline-flex; gap: 6px; align-items: center; color: var(--primary-dark); font-size: 9px; font-weight: 900; }
.semester-no-action svg { width: 15px; height: 15px; }

.curriculum-timeline-dialog { width: min(760px, calc(100vw - 28px)); }
.curriculum-timeline-dialog form { display: grid; gap: 14px; }
.timeline-dialog-copy { margin: 0; padding: 10px 12px; border-left: 3px solid var(--primary); color: var(--muted); background: var(--primary-soft); font-size: 11px; line-height: 1.55; }
.curriculum-timeline-dialog label { min-width: 0; display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 800; }
.curriculum-timeline-dialog select, .curriculum-timeline-dialog input, .curriculum-timeline-dialog textarea { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); background: #fff; font: inherit; }
.curriculum-timeline-dialog fieldset { margin: 0; padding: 13px; border: 1px solid var(--line); border-radius: 6px; display: grid; gap: 12px; }
.curriculum-timeline-dialog fieldset[hidden] { display: none; }
.curriculum-timeline-dialog legend { padding: 0 6px; color: var(--primary); font-size: 11px; font-weight: 900; }
.curriculum-timeline-dialog fieldset > p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.curriculum-timeline-dialog .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.curriculum-timeline-dialog .dialog-footer > div { display: flex; gap: 8px; }
.timeline-preview { min-height: 78px; }
.timeline-preview-empty, .timeline-preview-blocked { min-height: 78px; padding: 13px; border: 1px dashed var(--line); border-radius: 6px; display: flex; align-items: center; gap: 10px; color: var(--muted); background: #fafbfa; font-size: 11px; }
.timeline-preview-blocked { border-style: solid; border-color: #dfb5af; color: #8a3129; background: #fff7f6; }
.timeline-preview-blocked div { display: grid; gap: 3px; }
.timeline-preview-ready { border: 1px solid #afd0bc; border-radius: 6px; overflow: hidden; background: #fff; }
.timeline-preview-ready > header { padding: 11px 13px; display: flex; align-items: center; gap: 9px; color: var(--primary); background: var(--primary-soft); }
.timeline-preview-ready > header div { display: grid; gap: 3px; }
.timeline-preview-ready > header strong { font-size: 12px; }
.timeline-preview-ready > header span { color: var(--muted); font-size: 9px; }
.timeline-preview-ready ul { margin: 0; padding: 5px 13px; list-style: none; }
.timeline-preview-ready li { min-height: 34px; display: grid; grid-template-columns: minmax(110px,1fr) auto 15px auto; gap: 7px; align-items: center; border-bottom: 1px solid var(--line); font-size: 9px; }
.timeline-preview-ready li:last-child { border-bottom: 0; }
.timeline-preview-ready li span { color: var(--muted); }
.timeline-preview-ready li b { color: var(--primary); }
.teaching-calendar-flex { margin: 10px 0 0; padding: 9px 11px; display: flex; align-items: flex-start; gap: 7px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; line-height: 1.55; }
.teaching-calendar-flex svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }
.curriculum-timeline-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.pace-adjustment-banner { margin: 0 22px 14px; padding: 12px 14px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 11px; border: 1px solid #b9d3c3; border-left: 4px solid var(--primary); background: #f4faf6; }
.pace-adjustment-banner > span { width: 28px; height: 28px; display: grid; place-items: center; color: var(--primary); background: #e3f0e7; }
.pace-adjustment-banner > span svg { width: 16px; height: 16px; }
.pace-adjustment-banner > div { min-width: 0; display: grid; gap: 3px; }
.pace-adjustment-banner small { color: var(--muted); font-size: 9px; }
.pace-adjustment-banner strong { color: var(--ink); font-size: 12px; }
.pace-adjustment-banner p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.pace-adjustment-banner > b { padding: 5px 7px; color: var(--primary); background: #e3f0e7; font-size: 9px; white-space: nowrap; }
.pace-latest-batch { padding: 11px 12px; display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 8px; border: 1px solid #d9c78f; color: #6f5314; background: var(--gold-soft); }
.pace-latest-batch > svg { width: 18px; height: 18px; }
.pace-latest-batch > div { min-width: 0; display: grid; gap: 3px; }
.pace-latest-batch strong { font-size: 11px; }
.pace-latest-batch span { color: #796a43; font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.pace-preview-ready ul { max-height: 210px; overflow: auto; }
.pace-preview-ready li { grid-template-columns: minmax(0,1fr) auto; }
.pace-preview-ready li strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.daily-plan-pace-dialog textarea { min-height: 76px; resize: vertical; }
.timeline-handoff-preview { padding: 10px 13px; display: flex; align-items: flex-start; gap: 8px; color: #6f5314; background: var(--gold-soft); font-size: 10px; line-height: 1.5; }
.timeline-handoff-preview svg { width: 15px; height: 15px; flex: 0 0 auto; }
.organization-timeline-dialog { width: min(820px, calc(100vw - 28px)); }
.organization-timeline-preview { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: #fff; }
.organization-timeline-preview > header { min-height: 58px; padding: 11px 13px; display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 9px; }
.organization-timeline-preview.ready > header { color: var(--primary); background: var(--primary-soft); }
.organization-timeline-preview.blocked > header { color: #8a3129; background: #fff7f6; }
.organization-timeline-preview > header > span { width: 28px; height: 28px; display: grid; place-items: center; }
.organization-timeline-preview > header div { min-width: 0; display: grid; gap: 3px; }
.organization-timeline-preview > header strong { font-size: 12px; }
.organization-timeline-preview > header small { color: var(--muted); font-size: 9px; }
.organization-timeline-preview ul { max-height: 250px; margin: 0; padding: 0 13px; overflow: auto; list-style: none; }
.organization-timeline-preview li { min-height: 44px; padding: 7px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.organization-timeline-preview li > span { color: var(--primary); }
.organization-timeline-preview li.blocked > span, .organization-timeline-preview li.blocked > b { color: #9b342b; }
.organization-timeline-preview li div { min-width: 0; display: grid; gap: 2px; }
.organization-timeline-preview li strong { font-size: 10px; }
.organization-timeline-preview li small { color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.organization-timeline-preview li > b { color: var(--primary); font-size: 9px; }
.organization-timeline-preview > footer { padding: 9px 13px; border-top: 1px solid var(--line); display: flex; align-items: flex-start; gap: 7px; color: var(--muted); background: #fafbfa; font-size: 9px; line-height: 1.5; }
.organization-timeline-preview > footer svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }

@media (max-width: 920px) {
  .semester-status-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .semester-status-strip > div:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .semester-status-strip > div:nth-child(4) { border-top: 1px solid var(--line); }
  .semester-week-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .curriculum-timeline-projects { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .curriculum-timeline-project:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .curriculum-timeline-project:nth-child(4) { border-top: 1px solid var(--line); }
}

@media (max-width: 680px) {
  .semester-heading { flex-direction: column; padding: 16px 14px; }
  .semester-heading h2 { font-size: 17px; }
  .semester-heading-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .semester-heading-actions .secondary-button,
  .semester-heading-actions .project-view-only { width: 100%; min-width: 0; justify-content: center; }
  .curriculum-timeline-band > header { align-items: stretch; flex-direction: column; padding: 14px 13px; }
  .curriculum-timeline-band > header button { width: 100%; }
  .curriculum-timeline-band > footer { align-items: flex-start; flex-wrap: wrap; padding: 9px 13px; }
  .curriculum-timeline-band > footer b { width: 100%; margin-left: 21px; }
  .curriculum-calendar-rules { align-items: flex-start; flex-direction: column; padding: 9px 13px; }
  .curriculum-calendar-rules > div { width: 100%; }
  .semester-status-strip > div { padding: 10px 12px; }
  .semester-status-strip strong { font-size: 11px; }
  .semester-projects { grid-template-columns: 1fr; }
  .semester-project { grid-template-columns: 24px 34px minmax(0,1fr); padding: 12px 13px; }
  .semester-project:nth-child(even) { border-left: 0; }
  .semester-project-icon { width: 32px; height: 32px; }
  .semester-readiness { grid-column: 3; grid-row: 2; justify-items: start; }
  .semester-age-note { padding: 10px 13px; }
  .semester-age-note span { min-width: 0; overflow-wrap: anywhere; }
  .semester-age-note strong { display: block; margin: 0 0 3px; }
  .semester-week { min-height: 88px; padding: 9px; }
  .semester-week strong { min-height: 28px; font-size: 9px; }
  .semester-week small { font-size: 7px; }
  .semester-decision-bar { align-items: stretch; flex-direction: column; padding: 12px 13px; }
  .semester-decision-bar > button,
  .semester-decision-bar > span { width: 100%; justify-content: center; }
  .curriculum-timeline-dialog .form-grid { grid-template-columns: 1fr; }
  .curriculum-timeline-dialog .dialog-footer > div { display: grid; grid-template-columns: 1fr 1fr; }
  .curriculum-timeline-dialog .dialog-footer .primary-button { grid-column: 1 / -1; }
  .timeline-preview-ready li { grid-template-columns: 1fr auto; gap: 4px 8px; padding: 7px 0; }
  .timeline-preview-ready li svg { display: none; }
  .curriculum-timeline-actions { width: 100%; display: grid; grid-template-columns: 1fr; }
  .curriculum-timeline-actions button { width: 100%; justify-content: center; }
  .pace-adjustment-banner { margin: 0 12px 12px; grid-template-columns: 26px minmax(0,1fr); align-items: start; }
  .pace-adjustment-banner > b { grid-column: 2; justify-self: start; white-space: normal; }
  .pace-preview-ready li { align-items: start; }
  .pace-preview-ready li strong { white-space: normal; overflow-wrap: anywhere; }
  .organization-timeline-preview li { grid-template-columns: 20px minmax(0,1fr) auto; }
  .material-readiness-band { grid-template-columns: 1fr; gap: 14px; padding: 16px 14px; }
  .material-readiness-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .material-readiness-metrics div:nth-child(3),
  .material-readiness-metrics div:nth-child(4) { border-top: 1px solid var(--line); }
  .material-readiness-metrics div:nth-child(3) { border-left: 0; }
  .material-readiness-actions { grid-template-columns: 1fr; }
  .material-readiness-heading h2 { font-size: 15px; }
  .material-inventory-heading { flex-direction: column; padding: 16px 14px; }
  .material-inventory-heading .primary-button { width: 100%; }
  .project-inventory-review-banner { align-items: stretch; flex-direction: column; padding: 14px; }
  .project-inventory-review-banner .secondary-button { width: 100%; }
  .material-inventory-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .material-inventory-summary div { padding: 10px 12px; }
  .material-inventory-summary div:nth-child(3),
  .material-inventory-summary div:nth-child(4) { border-top: 1px solid var(--line); }
  .material-inventory-list { padding: 0 14px 14px; }
  .material-inventory-row { grid-template-columns: minmax(0,1fr) 110px; gap: 9px; padding: 12px 8px; }
  .material-inventory-row label:last-child { grid-column: 1 / -1; }
  .class-material-plan li > div .inventory-outcome { width: fit-content; }
}

/* Organization semester operations */
.semester-ops-band { margin-bottom: 18px; border-top: 4px solid #38644f; border-bottom: 1px solid var(--line); background: #fff; }
.semester-ops-heading { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; padding: 18px 20px 15px; }
.semester-ops-heading h2 { margin: 4px 0 6px; font-size: 19px; }
.semester-ops-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.semester-ops-actions { display: flex; flex: 0 0 auto; gap: 8px; align-items: center; }
.semester-ops-actions .status-badge { min-height: 36px; padding: 0 12px; }
.semester-ops-actions .status-badge svg { width: 14px; height: 14px; }
.semester-ops-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f5f8f6; }
.semester-ops-metrics > div { min-width: 0; padding: 12px 16px; border-left: 3px solid #6c8879; }
.semester-ops-metrics > div + div { border-left-width: 1px; }
.semester-ops-metrics > div.blocked { box-shadow: inset 4px 0 #b85449; background: #fff7f6; }
.semester-ops-metrics strong,
.semester-ops-metrics span,
.semester-ops-metrics small { display: block; }
.semester-ops-metrics strong { font-size: 20px; }
.semester-ops-metrics span { margin-top: 2px; color: var(--ink); font-size: 9px; font-weight: 900; }
.semester-ops-metrics small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.semester-ops-list { border-bottom: 1px solid var(--line); }
.semester-ops-row { display: grid; grid-template-columns: minmax(110px,.7fr) minmax(140px,1fr) minmax(190px,1.35fr) minmax(110px,.72fr) minmax(130px,.85fr) 38px; gap: 12px; align-items: center; min-height: 72px; padding: 10px 14px; border-top: 1px solid var(--line); border-left: 4px solid #809087; }
.semester-ops-row[data-semester-state="missing"],
.semester-ops-row[data-semester-state="activate"],
.semester-ops-row[data-semester-state="blocked"] { border-left-color: #b85449; background: #fff9f8; }
.semester-ops-row[data-semester-state="prepare"],
.semester-ops-row[data-semester-state="materials"] { border-left-color: #c18a2c; background: #fffdf7; }
.semester-ops-row[data-semester-state="ready"] { border-left-color: #4b875d; background: #f8fcf9; }
.semester-ops-row > div { min-width: 0; }
.semester-ops-row > div > span,
.semester-ops-row > div > strong,
.semester-ops-row > div > small { display: block; }
.semester-ops-row > div > span { color: var(--primary); font-size: 8px; font-weight: 900; }
.semester-ops-row > div > strong { margin-top: 3px; overflow: hidden; font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.semester-ops-row > div > small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 8px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.semester-ops-class > strong { margin-top: 0 !important; font-size: 12px !important; }
.semester-ops-state { display: grid; justify-items: start; gap: 5px; }
.semester-ops-state .status-badge { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.semester-ops-state small { display: inline-flex !important; gap: 4px; align-items: center; }
.semester-ops-state small svg { width: 12px; height: 12px; flex: 0 0 auto; }
.semester-ops-open { width: 34px; height: 34px; }
.semester-ops-boundary { display: flex; gap: 8px; align-items: flex-start; padding: 10px 15px; color: var(--muted); background: #eef4f1; font-size: 8px; line-height: 1.5; }
.semester-ops-boundary svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--primary); }

@media (max-width: 1080px) {
  .semester-ops-row { grid-template-columns: minmax(100px,.7fr) minmax(125px,1fr) minmax(160px,1.3fr) minmax(110px,.8fr) 38px; }
  .semester-ops-state { grid-column: 2 / 5; grid-row: 2; display: flex; align-items: center; }
  .semester-ops-open { grid-column: 5; grid-row: 1 / 3; }
}

@media (max-width: 680px) {
  .semester-ops-heading { flex-direction: column; padding: 16px 14px; }
  .semester-ops-heading h2 { font-size: 17px; }
  .semester-ops-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .semester-ops-actions > * { min-width: 0; width: 100%; justify-content: center; }
  .semester-ops-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .semester-ops-metrics > div { padding: 10px 12px; }
  .semester-ops-metrics > div:nth-child(3),
  .semester-ops-metrics > div:nth-child(4) { border-top: 1px solid var(--line); }
  .semester-ops-row { grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 12px 13px; }
  .semester-ops-row > div { padding-top: 8px; border-top: 1px solid var(--line); }
  .semester-ops-class { padding-top: 0 !important; border-top: 0 !important; }
  .semester-ops-row > div:nth-child(2),
  .semester-ops-row > div:nth-child(3),
  .semester-ops-row > div:nth-child(4) { grid-column: 1 / -1; display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 3px 8px; }
  .semester-ops-row > div:nth-child(2) > span,
  .semester-ops-row > div:nth-child(3) > span,
  .semester-ops-row > div:nth-child(4) > span { grid-row: 1 / 3; align-self: center; }
  .semester-ops-row > div > strong,
  .semester-ops-row > div > small { white-space: normal; overflow-wrap: anywhere; }
  .semester-ops-state { grid-column: 1 / -1; grid-row: auto; display: flex; align-items: center; padding-top: 9px; }
  .semester-ops-open { grid-column: 2; grid-row: 1; }
  .semester-ops-boundary { padding: 10px 13px; }
}
/* Cross-class resource coordination */
.resource-coordination-band {
  margin: 18px 0 24px;
  border: 1px solid #d9e1de;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.resource-coordination-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border-bottom: 1px solid #e6ebe9;
}

.resource-coordination-heading h2,
.resource-list-heading h3 {
  margin: 4px 0 0;
  letter-spacing: 0;
}

.resource-coordination-heading h2 {
  font-size: 23px;
  line-height: 1.3;
}

.resource-coordination-heading p {
  max-width: 740px;
  margin: 8px 0 0;
  color: #5f6b67;
  line-height: 1.65;
}

.resource-coordination-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
}

.resource-coordination-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: #f6f8f7;
  border-bottom: 1px solid #e6ebe9;
}

.resource-coordination-metrics > div {
  min-width: 0;
  padding: 18px 22px;
  border-right: 1px solid #e0e6e3;
}

.resource-coordination-metrics > div:last-child {
  border-right: 0;
}

.resource-coordination-metrics strong,
.resource-coordination-metrics span,
.resource-coordination-metrics small {
  display: block;
  letter-spacing: 0;
}

.resource-coordination-metrics strong {
  color: #17483a;
  font-size: 28px;
  line-height: 1;
}

.resource-coordination-metrics span {
  margin-top: 9px;
  color: #273832;
  font-weight: 700;
}

.resource-coordination-metrics small {
  margin-top: 4px;
  color: #738079;
}

.resource-coordination-metrics .blocked strong {
  color: #b33a32;
}

.resource-coordination-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.82fr) minmax(460px, 1.18fr);
}

.resource-calendar,
.resource-materials {
  min-width: 0;
}

.resource-calendar {
  border-right: 1px solid #e6ebe9;
}

.resource-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 16px;
}

.resource-list-heading h3 {
  font-size: 17px;
}

.resource-calendar-list,
.resource-material-list {
  border-top: 1px solid #eef1f0;
}

.resource-calendar-row {
  display: grid;
  grid-template-columns: 56px 34px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 16px 22px;
  border-bottom: 1px solid #eef1f0;
}

.resource-calendar-row:last-child,
.resource-material-row:last-child {
  border-bottom: 0;
}

.resource-calendar-row time strong,
.resource-calendar-row time small {
  display: block;
  letter-spacing: 0;
}

.resource-calendar-row time strong {
  color: #22332e;
}

.resource-calendar-row time small,
.resource-calendar-row div small,
.resource-material-main small {
  margin-top: 5px;
  color: #77827e;
}

.resource-event-marker,
.resource-material-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  background: #e8f2ee;
  color: #1d6652;
}

.resource-event-marker.inventory {
  background: #f6edda;
  color: #8b6115;
}

.resource-event-marker.handoff {
  background: #e8eef5;
  color: #315d84;
}

.resource-event-marker.safety {
  background: #f7e7e5;
  color: #a7443b;
}

.resource-event-marker svg,
.resource-material-icon svg {
  width: 17px;
  height: 17px;
}

.resource-calendar-row div strong {
  display: block;
  line-height: 1.45;
}

.resource-calendar-row p,
.resource-material-main p {
  margin: 5px 0 0;
  color: #5e6b66;
  font-size: 13px;
  line-height: 1.55;
}

.resource-material-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  padding: 16px 22px;
  border-bottom: 1px solid #eef1f0;
}

.resource-material-row.blocked {
  background: #fff9f8;
}

.resource-material-row.substitute,
.resource-material-row.rotate,
.resource-material-row.supply,
.resource-material-row.check {
  background: #fffdf8;
}

.resource-material-row.blocked .resource-material-icon {
  background: #f7e7e5;
  color: #a7443b;
}

.resource-material-row.substitute .resource-material-icon,
.resource-material-row.rotate .resource-material-icon,
.resource-material-row.supply .resource-material-icon,
.resource-material-row.check .resource-material-icon {
  background: #f6edda;
  color: #8b6115;
}

.resource-material-main > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.resource-material-main > div strong {
  min-width: 0;
  line-height: 1.4;
}

.resource-material-main .status-badge {
  flex: 0 0 auto;
}

.resource-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 116px;
  padding: 24px;
  color: #68756f;
}

.resource-empty svg {
  width: 19px;
  height: 19px;
}

.resource-coordination-boundary {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 14px 22px;
  border-top: 1px solid #e6ebe9;
  background: #f8faf9;
  color: #5e6b66;
  font-size: 13px;
  line-height: 1.55;
}

.resource-coordination-boundary svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin-top: 1px;
  color: #286b57;
}

@media (max-width: 1100px) {
  .resource-coordination-grid {
    grid-template-columns: 1fr;
  }

  .resource-calendar {
    border-right: 0;
    border-bottom: 1px solid #e6ebe9;
  }
}

@media (max-width: 760px) {
  .resource-coordination-heading {
    display: block;
    padding: 20px 16px;
  }

  .resource-coordination-heading h2 {
    font-size: 20px;
  }

  .resource-coordination-actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 16px;
  }

  .resource-coordination-actions button {
    width: 100%;
  }

  .resource-coordination-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resource-coordination-metrics > div,
  .resource-coordination-metrics > div:last-child {
    padding: 15px 16px;
    border-right: 1px solid #e0e6e3;
    border-bottom: 1px solid #e0e6e3;
  }

  .resource-coordination-metrics > div:nth-child(2n) {
    border-right: 0;
  }

  .resource-coordination-metrics > div:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .resource-list-heading {
    padding: 18px 16px 14px;
  }

  .resource-calendar-row {
    grid-template-columns: 50px 30px minmax(0, 1fr);
    gap: 9px;
    padding: 14px 16px;
  }

  .resource-event-marker,
  .resource-material-icon {
    width: 30px;
    height: 30px;
  }

  .resource-material-row {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 9px;
    padding: 14px 16px;
  }

  .resource-material-main > div {
    align-items: flex-start;
  }

  .resource-material-main > div strong {
    padding-top: 2px;
  }

  .resource-coordination-boundary {
    padding: 13px 16px;
  }
}
/* Organization preparation task workflow */
.resource-task-board {
  border-top: 1px solid #dfe6e3;
  background: #fbfcfc;
}

.resource-task-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 22px;
}

.resource-task-heading h3 {
  margin: 4px 0 0;
  font-size: 19px;
  letter-spacing: 0;
}

.resource-task-heading p {
  max-width: 720px;
  margin: 7px 0 0;
  color: #62706a;
  font-size: 13px;
  line-height: 1.6;
}

.resource-task-heading-action {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 12px;
}

.resource-task-progress {
  display: grid;
  min-width: 62px;
  text-align: right;
}

.resource-task-progress strong {
  color: #1e5f4c;
  font-size: 22px;
  line-height: 1;
}

.resource-task-progress small {
  margin-top: 4px;
  color: #74817c;
}

.condition-closure-board {
  display: grid;
  grid-template-columns: minmax(280px, 1.15fr) minmax(360px, 1fr) minmax(320px, 1.2fr);
  align-items: stretch;
  border-top: 1px solid #dfe6e3;
  border-bottom: 1px solid #dfe6e3;
  background: #f4f8f6;
}

.condition-closure-heading {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 16px 22px;
  border-right: 1px solid #dfe6e3;
}

.condition-closure-heading > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 6px;
  background: #dfede7;
  color: #1d654f;
}

.condition-closure-heading svg { width: 17px; height: 17px; }
.condition-closure-heading small { color: #28705a; font-weight: 700; }
.condition-closure-heading h4 { margin: 3px 0 0; color: #29483d; font-size: 15px; letter-spacing: 0; }
.condition-closure-heading p { margin: 5px 0 0; color: #65736d; font-size: 11px; line-height: 1.55; }

.condition-closure-archive {
  margin-top: 8px;
  color: #52635d;
  font-size: 11px;
}

.condition-closure-archive summary {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  cursor: pointer;
  font-weight: 700;
}

.condition-closure-archive summary svg { width: 14px; height: 14px; }
.condition-closure-archive > div { display: grid; gap: 6px; margin-top: 4px; }
.condition-closure-archive > div > span { display: grid; gap: 2px; }
.condition-closure-archive b { color: #304b42; }
.condition-closure-archive small { color: #6c7974; font-weight: 400; line-height: 1.4; }

.condition-closure-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-right: 1px solid #dfe6e3;
}

.condition-closure-metrics span {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 13px 15px;
  border-right: 1px solid #e0e7e4;
  border-bottom: 1px solid #e0e7e4;
  color: #65736d;
  font-size: 11px;
}

.condition-closure-metrics span:nth-child(2n) { border-right: 0; }
.condition-closure-metrics span:nth-last-child(-n + 2) { border-bottom: 0; }
.condition-closure-metrics b { color: #245b49; font-size: 19px; }

.condition-closure-status {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: #fff;
}

.condition-assurance-strip {
  min-width: 0;
  padding: 10px 13px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #dce7e1;
  background: #edf6f1;
  color: #245b49;
}

.condition-assurance-strip.attention {
  border-bottom-color: #edd4ce;
  background: #fff3f0;
  color: #8a392f;
}

.condition-assurance-strip > svg { width: 16px; height: 16px; }
.condition-assurance-strip > span { min-width: 0; }
.condition-assurance-strip strong,
.condition-assurance-strip small { display: block; overflow-wrap: anywhere; }
.condition-assurance-strip strong { font-size: 10px; }
.condition-assurance-strip small { margin-top: 2px; color: #5d7269; font-size: 8px; line-height: 1.45; }
.condition-assurance-strip.attention small { color: #7a5a54; }
.condition-assurance-strip > b {
  padding: 4px 6px;
  border-radius: 4px;
  background: #dceee4;
  font-size: 8px;
  white-space: nowrap;
}
.condition-assurance-strip.attention > b { background: #f4dcd6; }

.condition-closure-board ul {
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
}

.condition-closure-board li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 46px;
  padding: 8px 14px;
  border-bottom: 1px solid #e7ecea;
}

.condition-closure-board li:last-child { border-bottom: 0; }
.condition-closure-board li div { min-width: 0; }
.condition-closure-board li strong, .condition-closure-board li small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.condition-closure-board li strong { color: #40554c; font-size: 11px; }
.condition-closure-board li small { margin-top: 3px; color: #7a8782; font-size: 9px; }
.condition-closure-clear { display: flex; align-items: center; gap: 8px; padding: 16px; color: #4f685e; font-size: 11px; line-height: 1.55; background: #fff; }
.condition-closure-clear svg { width: 16px; height: 16px; flex: 0 0 auto; color: #237057; }
.condition-closure-waiting { display: flex; align-items: center; gap: 10px; padding: 16px; color: #785b23; background: #fffaf0; }
.condition-closure-waiting > svg { width: 18px; height: 18px; flex: 0 0 auto; }
.condition-closure-waiting strong, .condition-closure-waiting small { display: block; }
.condition-closure-waiting strong { font-size: 11px; }
.condition-closure-waiting small { margin-top: 4px; color: #856f45; font-size: 9px; line-height: 1.45; }

.resource-task-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #e5eae8;
  border-bottom: 1px solid #e5eae8;
  background: #f3f7f5;
}

.resource-task-metrics > div {
  padding: 13px 22px;
  border-right: 1px solid #dfe6e3;
}

.resource-task-metrics > div:last-child {
  border-right: 0;
}

.resource-task-metrics strong,
.resource-task-metrics span {
  display: block;
  letter-spacing: 0;
}

.resource-task-metrics strong {
  color: #204b3e;
  font-size: 21px;
  line-height: 1;
}

.resource-task-metrics span {
  margin-top: 5px;
  color: #586760;
  font-size: 12px;
}

.resource-task-metrics .blocked strong {
  color: #ae3f36;
}

.resource-task-list {
  background: #fff;
}

.resource-task-row {
  display: grid;
  grid-template-columns: 76px 34px minmax(0, 1fr) minmax(112px, auto);
  align-items: center;
  gap: 12px;
  min-height: 94px;
  padding: 15px 22px;
  border-bottom: 1px solid #e9eeec;
}

.resource-task-row.overdue,
.resource-task-row.blocked {
  background: #fff8f7;
}

.resource-task-row.completed {
  background: #f8fbf9;
}

.resource-task-row time strong,
.resource-task-row time small {
  display: block;
  letter-spacing: 0;
}

.resource-task-row time strong {
  color: #263a33;
  font-size: 15px;
}

.resource-task-row time small {
  margin-top: 5px;
  color: #7b8782;
  font-size: 11px;
  line-height: 1.35;
}

.resource-task-row.overdue time small,
.resource-task-row.blocked time small {
  color: #b0443b;
}

.resource-task-type {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  background: #e9f2ee;
  color: #226652;
}

.resource-task-row.overdue .resource-task-type,
.resource-task-row.blocked .resource-task-type {
  background: #f7e7e5;
  color: #aa443b;
}

.resource-task-type svg {
  width: 17px;
  height: 17px;
}

.resource-task-main {
  min-width: 0;
}

.resource-task-main > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.resource-task-main > div strong {
  min-width: 0;
  line-height: 1.45;
}

.resource-task-main .status-badge {
  flex: 0 0 auto;
}

.resource-task-main p {
  margin: 5px 0 0;
  color: #5f6d67;
  font-size: 13px;
  line-height: 1.5;
}

.resource-task-main small {
  display: block;
  margin-top: 5px;
  color: #7b8782;
  line-height: 1.45;
}

.resource-task-main .resource-task-result {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  color: #26634f;
  font-weight: 650;
}

.resource-task-result svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 2px;
}

.resource-task-control {
  display: flex;
  justify-content: flex-end;
}

.resource-task-control .secondary-button,
.resource-task-control .primary-button {
  min-width: 108px;
}

.resource-task-owner {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  color: #65736d;
  font-size: 12px;
  white-space: nowrap;
}

.resource-task-owner svg {
  width: 15px;
  height: 15px;
}

.resource-task-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 112px;
  padding: 24px;
  color: #697771;
}

.resource-task-empty svg {
  width: 18px;
  height: 18px;
}

.resource-task-boundary {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px 22px;
  border-top: 1px solid #e5eae8;
  color: #63716b;
  font-size: 12px;
  line-height: 1.55;
}

.resource-task-boundary svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin-top: 1px;
}

@media (max-width: 760px) {
  .resource-task-heading {
    display: block;
    padding: 19px 16px;
  }

  .resource-task-heading-action {
    justify-content: space-between;
    margin-top: 15px;
  }

  .resource-task-heading-action .primary-button {
    flex: 1;
  }

  .resource-task-progress {
    text-align: left;
  }

  .condition-closure-board {
    grid-template-columns: 1fr;
  }

  .condition-closure-heading,
  .condition-closure-metrics {
    border-right: 0;
    border-bottom: 1px solid #dfe6e3;
  }

  .condition-closure-heading { padding: 15px 16px; }

  .condition-assurance-strip {
    grid-template-columns: 18px minmax(0, 1fr);
    padding: 11px 16px;
  }

  .condition-assurance-strip > b {
    width: max-content;
    margin-left: 26px;
  }

  .resource-task-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resource-task-metrics > div,
  .resource-task-metrics > div:last-child {
    padding: 12px 16px;
    border-right: 1px solid #dfe6e3;
    border-bottom: 1px solid #dfe6e3;
  }

  .resource-task-metrics > div:nth-child(2n) {
    border-right: 0;
  }

  .resource-task-metrics > div:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .resource-task-row {
    grid-template-columns: 58px 30px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    min-height: 0;
    padding: 14px 16px;
  }

  .resource-task-type {
    width: 30px;
    height: 30px;
  }

  .resource-task-main > div {
    align-items: flex-start;
  }

  .resource-task-control {
    grid-column: 3;
    justify-content: flex-start;
    margin-top: 3px;
  }

  .resource-task-control .secondary-button,
  .resource-task-control .primary-button {
    width: 100%;
    min-width: 0;
  }

  .resource-task-owner {
    justify-content: flex-start;
    white-space: normal;
  }

  .resource-task-boundary {
    padding: 12px 16px;
  }
}

.class-preparation-band {
  margin-top: 16px;
  border-top: 1px solid #d5ded9;
  border-bottom: 1px solid #d5ded9;
  background: #fff;
}

.class-preparation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 22px 18px;
}

.class-preparation-heading h2 {
  margin: 4px 0 0;
  font-size: 21px;
  letter-spacing: 0;
}

.class-preparation-heading p {
  max-width: 760px;
  margin: 7px 0 0;
  color: #607069;
  font-size: 13px;
  line-height: 1.65;
}

.class-preparation-promise {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 7px;
  padding: 9px 11px;
  border: 1px solid #b9d3c7;
  border-radius: 6px;
  background: #edf6f1;
  color: #205e49;
  font-size: 13px;
}

.class-preparation-promise svg { width: 17px; height: 17px; }

.class-preparation-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #e4eae7;
  border-bottom: 1px solid #e4eae7;
  background: #f6f8f7;
}

.class-preparation-metrics > div {
  padding: 12px 22px;
  border-right: 1px solid #e0e7e3;
}

.class-preparation-metrics > div:last-child { border-right: 0; }
.class-preparation-metrics strong,
.class-preparation-metrics span { display: block; letter-spacing: 0; }
.class-preparation-metrics strong { color: #255847; font-size: 20px; line-height: 1; }
.class-preparation-metrics span { margin-top: 5px; color: #68766f; font-size: 12px; }
.class-preparation-metrics .blocked strong { color: #ad4038; }

.class-preparation-list { background: #fff; }

.class-preparation-row {
  display: grid;
  grid-template-columns: 72px 36px minmax(0, 1fr) minmax(120px, auto);
  align-items: center;
  gap: 13px;
  min-height: 112px;
  padding: 15px 22px;
  border-bottom: 1px solid #e8eeeb;
}

.class-preparation-row:last-child { border-bottom: 0; }
.class-preparation-row.blocked { background: #fff8f6; }
.class-preparation-row.ready { background: #f8fbf9; }
.class-preparation-row.instruction { box-shadow: inset 4px 0 0 #34735a; background: #f6faf8; }
.class-preparation-row.instruction.blocked { box-shadow: inset 4px 0 0 #b34840; background: #fff7f5; }
.class-preparation-row time strong,
.class-preparation-row time small { display: block; letter-spacing: 0; }
.class-preparation-row time strong { color: #2f413a; font-size: 15px; }
.class-preparation-row time small { margin-top: 5px; color: #718079; font-size: 11px; }
.class-preparation-row.blocked time small { color: #af4038; }

.class-preparation-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: #e7f1ec;
  color: #24664f;
}

.class-preparation-row.blocked .class-preparation-icon { background: #f6e5e2; color: #ac4038; }
.class-preparation-icon svg { width: 18px; height: 18px; }
.class-preparation-main { min-width: 0; }
.class-preparation-title { display: flex; align-items: center; gap: 9px; }
.class-preparation-title > strong { min-width: 0; line-height: 1.45; }
.class-preparation-title .status-badge { flex: 0 0 auto; }
.class-preparation-main p { margin: 7px 0 0; color: #3e4d47; font-size: 13px; line-height: 1.55; }
.class-preparation-main p b { color: #213b31; }
.class-preparation-row.instruction .class-preparation-main p { padding: 8px 10px; border-left: 3px solid #4b8068; background: #fff; }
.class-preparation-row.instruction.blocked .class-preparation-main p { border-left-color: #b64a42; }
.class-preparation-result { display: flex; gap: 6px; align-items: flex-start; margin-top: 7px; padding: 7px 9px; border: 1px solid #d8e8df; border-radius: 5px; background: #fff; color: #3f6653; font-size: 11px; line-height: 1.5; }
.class-preparation-result svg { flex: 0 0 auto; width: 14px; height: 14px; margin-top: 1px; color: #2f7657; }
.class-preparation-main > small { display: flex; align-items: flex-start; gap: 4px; margin-top: 5px; color: #995047; line-height: 1.5; }
.class-preparation-main > small svg { flex: 0 0 auto; width: 13px; height: 13px; margin-top: 2px; }
.class-preparation-main > small b { flex: 0 0 auto; white-space: nowrap; }

.class-preparation-owner {
  display: grid;
  justify-items: end;
  gap: 5px;
  max-width: 180px;
  text-align: right;
}

.class-preparation-owner span { color: #4c6158; font-size: 12px; font-weight: 700; }
.class-preparation-owner small { color: #7a8781; font-size: 11px; line-height: 1.4; }
.class-preparation-empty { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 100px; padding: 18px; color: #27634e; }
.class-preparation-empty > svg { width: 24px; height: 24px; }
.class-preparation-empty strong,
.class-preparation-empty span { display: block; }
.class-preparation-empty span { margin-top: 4px; color: #6b7973; font-size: 12px; }
.class-preparation-more { padding: 10px 22px; border-top: 1px solid #e8eeeb; background: #f8faf9; color: #68766f; font-size: 12px; text-align: right; }

@media (max-width: 720px) {
  .class-preparation-heading { display: grid; gap: 12px; padding: 17px 15px 15px; }
  .class-preparation-promise { justify-self: start; }
  .class-preparation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .class-preparation-metrics > div { padding: 11px 15px; }
  .class-preparation-metrics > div:nth-child(2) { border-right: 0; }
  .class-preparation-metrics > div:nth-child(-n+2) { border-bottom: 1px solid #e0e7e3; }
  .class-preparation-row { grid-template-columns: 58px 32px minmax(0, 1fr); gap: 9px; padding: 14px 15px; }
  .class-preparation-icon { width: 32px; height: 32px; }
  .class-preparation-owner { grid-column: 3; justify-items: start; max-width: none; text-align: left; }
  .class-preparation-owner small { display: none; }
  .class-preparation-title { align-items: flex-start; flex-wrap: wrap; }
  .class-preparation-main p { font-size: 12px; }
  .class-preparation-more { padding: 10px 15px; text-align: left; }
}

.execution-launch-gate {
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid #c9ddd3;
  border-radius: 6px;
  background: #f7fbf9;
}

.resource-task-main .condition-task-verification {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  color: #1f6650;
  font-weight: 700;
}

.condition-task-verification svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  margin-top: 1px;
}

.teacher-condition-brief { margin: -4px 0 18px; border: 1px solid #d5e3dc; background: #f8fbf9; }
.teacher-condition-brief.adapt { border-color: #e3d4aa; background: #fffdf6; }
.teacher-condition-brief summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 14px; cursor: pointer; list-style: none; }
.teacher-condition-brief summary::-webkit-details-marker { display: none; }
.teacher-condition-brief summary > span { display: flex; align-items: center; gap: 9px; min-width: 0; }
.teacher-condition-brief summary > span:first-child > svg { flex: 0 0 auto; width: 18px; height: 18px; color: #2f7255; }
.teacher-condition-brief.adapt summary > span:first-child > svg { color: #8a6723; }
.teacher-condition-brief summary strong, .teacher-condition-brief summary small { display: block; }
.teacher-condition-brief summary strong { color: #30493e; font-size: 12px; line-height: 1.4; }
.teacher-condition-brief summary small { margin-top: 2px; color: #6d7a73; font-size: 10px; line-height: 1.4; }
.teacher-condition-brief summary > span:last-child { flex: 0 0 auto; color: #65746d; font-size: 10px; }
.teacher-condition-brief summary > span:last-child svg { width: 13px; height: 13px; transition: transform .18s ease; }
.teacher-condition-brief[open] summary > span:last-child svg { transform: rotate(180deg); }
.teacher-condition-brief > div { padding: 0 14px 12px 41px; border-top: 1px solid rgba(78, 105, 92, .12); }
.teacher-condition-brief ul { display: grid; gap: 6px; margin: 10px 0; padding-left: 17px; color: #3e5048; font-size: 11px; line-height: 1.55; }
.teacher-condition-brief p { display: flex; align-items: flex-start; gap: 6px; margin: 0; color: #66746d; font-size: 10px; line-height: 1.5; }
.teacher-condition-brief p svg { flex: 0 0 auto; width: 13px; height: 13px; margin-top: 1px; color: #2f7255; }

.execution-launch-gate.attention {
  border-color: #dfd3a9;
  background: #fffdf6;
}

.execution-launch-gate.blocked {
  border-color: #e4bdb8;
  background: #fff9f8;
}

.execution-launch-gate.pause {
  border-color: #cf756c;
  box-shadow: inset 4px 0 0 #b9473d;
}

.execution-gate-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 16px;
}

.execution-gate-heading > div {
  min-width: 0;
  flex: 1;
}

.execution-gate-heading h3 {
  margin: 3px 0 0;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: 0;
}

.execution-gate-heading > b {
  flex: 0 0 auto;
  padding: 6px 8px;
  border-radius: 5px;
  background: #dcefe6;
  color: #205f49;
  font-size: 12px;
  letter-spacing: 0;
}

.execution-launch-gate.attention .execution-gate-heading > b {
  background: #f3e9c8;
  color: #705815;
}

.execution-launch-gate.blocked .execution-gate-heading > b {
  background: #f6dedb;
  color: #a33e35;
}

.execution-gate-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: #dcefe6;
  color: #20624b;
}

.execution-launch-gate.attention .execution-gate-icon { background: #f3e9c8; color: #765d17; }
.execution-launch-gate.blocked .execution-gate-icon { background: #f6dedb; color: #a84037; }
.execution-gate-icon svg { width: 18px; height: 18px; }

.execution-gate-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(70, 96, 85, 0.12);
  border-bottom: 1px solid rgba(70, 96, 85, 0.12);
  background: rgba(255, 255, 255, 0.66);
}

.execution-gate-metrics span {
  padding: 9px 14px;
  border-right: 1px solid rgba(70, 96, 85, 0.12);
  color: #64736c;
  font-size: 11px;
  letter-spacing: 0;
}

.execution-gate-metrics span:last-child { border-right: 0; }
.execution-gate-metrics strong { margin-right: 5px; color: #263e35; font-size: 17px; }
.execution-launch-gate.blocked .execution-gate-metrics span:first-child strong,
.execution-gate-groups li.critical strong { color: #aa4037; }

.execution-gate-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.execution-gate-groups section {
  min-width: 0;
  padding: 13px 15px 14px;
  border-right: 1px solid rgba(70, 96, 85, 0.12);
}

.execution-gate-groups section:last-child { border-right: 0; }
.execution-gate-groups h4 { margin: 0 0 9px; color: #52635b; font-size: 12px; letter-spacing: 0; }
.execution-gate-groups ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.execution-gate-groups li { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.execution-gate-groups li > span { display: grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 5px; background: rgba(41, 105, 80, 0.1); color: #286950; }
.execution-gate-groups li.critical > span,
.execution-launch-gate.blocked .execution-gate-groups section:first-child li > span { background: #f5e0dd; color: #a74037; }
.execution-gate-groups li > span svg { width: 13px; height: 13px; }
.execution-gate-groups li > div { min-width: 0; }
.execution-gate-groups strong { display: block; color: #2c4038; font-size: 12px; line-height: 1.45; letter-spacing: 0; }
.execution-gate-groups p { margin: 3px 0 0; color: #66756e; font-size: 11px; line-height: 1.55; }

@media (max-width: 720px) {
  .execution-gate-heading { align-items: flex-start; padding: 14px; }
  .execution-gate-heading > b { align-self: flex-start; }
  .execution-gate-heading h3 { font-size: 15px; }
  .execution-gate-metrics span { display: grid; gap: 2px; padding: 9px 10px; }
  .execution-gate-metrics strong { margin-right: 0; }
  .execution-gate-groups { grid-template-columns: 1fr; }
  .execution-gate-groups section,
  .execution-gate-groups section:last-child { border-right: 0; border-bottom: 1px solid rgba(70, 96, 85, 0.12); }
  .execution-gate-groups section:last-child { border-bottom: 0; }
}

.preparation-escalation-queue {
  border-top: 1px solid #ead5d1;
  border-bottom: 1px solid #ead5d1;
  background: #fffaf9;
}

.preparation-escalation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 22px 15px;
}

.preparation-escalation-heading h4 {
  margin: 4px 0 0;
  color: #46332f;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0;
}

.preparation-escalation-heading p {
  max-width: 690px;
  margin: 6px 0 0;
  color: #70615c;
  font-size: 12px;
  line-height: 1.6;
}

.preparation-escalation-metrics {
  display: flex;
  flex: 0 0 auto;
  align-items: stretch;
  border: 1px solid #eadbd7;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.preparation-escalation-metrics span {
  display: grid;
  align-content: center;
  gap: 3px;
  min-width: 67px;
  padding: 7px 10px;
  border-right: 1px solid #eee2df;
  color: #7d6a65;
  font-size: 10px;
  text-align: center;
}

.preparation-escalation-metrics span:last-child { border-right: 0; }
.preparation-escalation-metrics b { color: #a13f36; font-size: 17px; line-height: 1; letter-spacing: 0; }

.preparation-escalation-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) minmax(145px, auto) minmax(108px, auto);
  align-items: center;
  gap: 12px;
  min-height: 91px;
  padding: 13px 22px;
  border-top: 1px solid #f0e5e2;
  background: #fff;
}

.preparation-escalation-row.breached { background: #fff7f6; }
.preparation-escalation-row.today { background: #fffdf6; }

.preparation-escalation-rank {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 5px;
  background: #eee6e3;
  color: #71564f;
  font-size: 13px;
  font-weight: 750;
}

.preparation-escalation-row.breached .preparation-escalation-rank { background: #f3d8d5; color: #a63d35; }
.preparation-escalation-row.safety .preparation-escalation-rank { background: #dfb9b4; color: #8f3029; }
.preparation-escalation-main { min-width: 0; }
.preparation-escalation-main > div { display: flex; align-items: center; gap: 8px; }
.preparation-escalation-main > div strong { min-width: 0; line-height: 1.4; }
.preparation-escalation-main .status-badge { flex: 0 0 auto; }
.preparation-escalation-main p { margin: 5px 0 0; color: #635752; font-size: 12px; line-height: 1.45; }
.preparation-escalation-main small { display: block; margin-top: 4px; color: #85756f; font-size: 11px; line-height: 1.4; }

.preparation-escalation-sla {
  display: grid;
  gap: 4px;
  max-width: 190px;
}

.preparation-escalation-sla b { color: #8f3931; font-size: 12px; line-height: 1.35; }
.preparation-escalation-sla small { color: #796863; font-size: 11px; line-height: 1.4; }
.preparation-escalation-action { display: flex; justify-content: flex-end; }
.preparation-escalation-action .primary-button,
.preparation-escalation-action .secondary-button { min-width: 108px; }
.preparation-escalation-owner { color: #72625c; font-size: 12px; }
.preparation-escalation-more { padding: 10px 22px; border-top: 1px solid #f0e5e2; color: #776762; font-size: 12px; text-align: right; }

.preparation-escalation-clear {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 22px;
  border-top: 1px solid #dce8e2;
  border-bottom: 1px solid #dce8e2;
  background: #f8fbf9;
  color: #4e7060;
  font-size: 12px;
}

.preparation-escalation-clear svg { width: 16px; height: 16px; }

.preparation-resolution-digest { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; padding: 15px 22px; border-top: 1px solid #e9e5d7; background: #fbfcf7; }
.preparation-resolution-digest h4 { margin: 4px 0 0; color: #39453b; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.preparation-resolution-digest p { margin: 5px 0 0; color: #6c7469; font-size: 11px; line-height: 1.55; }
.preparation-resolution-metrics { display: flex; align-items: stretch; border: 1px solid #dde5d8; border-radius: 6px; overflow: hidden; background: #fff; }
.preparation-resolution-metrics span { display: grid; align-content: center; gap: 3px; min-width: 68px; padding: 7px 9px; border-right: 1px solid #e8ede5; color: #687266; font-size: 10px; text-align: center; }
.preparation-resolution-metrics span:last-child { border-right: 0; }
.preparation-resolution-metrics b { color: #38624b; font-size: 16px; line-height: 1; letter-spacing: 0; }
.preparation-resolution-digest ul { display: grid; grid-column: 1 / -1; gap: 6px; margin: 0; padding: 0; list-style: none; }
.preparation-resolution-digest li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 7px; border-top: 1px solid #edf0e9; color: #697265; font-size: 11px; }
.preparation-resolution-digest li > div { min-width: 0; }
.preparation-resolution-digest li strong { display: block; color: #465045; font-size: 12px; line-height: 1.4; }
.preparation-resolution-digest li small { display: block; margin-top: 2px; color: #798276; font-size: 10px; }
.preparation-resolution-digest li > span { flex: 0 0 auto; color: #52735d; }
.preparation-resolution-empty { grid-column: 1 / -1; color: #72806f; font-size: 11px; }
.preparation-class-impact { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; padding: 15px 22px; border-top: 1px solid #dce7e1; background: #f8fbfa; }
.preparation-class-impact h4 { margin: 4px 0 0; color: #35483e; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.preparation-class-impact-metrics { display: flex; border: 1px solid #d7e5dc; border-radius: 6px; overflow: hidden; background: #fff; }
.preparation-class-impact-metrics span { display: grid; gap: 3px; min-width: 68px; padding: 7px 9px; border-right: 1px solid #e6eee9; color: #66756d; font-size: 10px; text-align: center; }
.preparation-class-impact-metrics span:last-child { border-right: 0; }
.preparation-class-impact-metrics b { color: #2c6b51; font-size: 16px; line-height: 1; letter-spacing: 0; }
.preparation-class-impact ul { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.preparation-class-impact li { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid #dce7e1; border-radius: 5px; background: #fff; color: #4d715f; font-size: 11px; }
.preparation-class-impact li.blocked { border-color: #eed5d1; color: #9d433a; background: #fff9f8; }
.preparation-class-impact li strong { display: block; color: #3d4e45; font-size: 12px; }
.preparation-class-impact li small { display: block; margin-top: 3px; color: #728078; font-size: 10px; }
.preparation-handoff { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 1fr); gap: 14px; padding: 14px 22px; border-top: 1px solid #e7e5ed; background: #fbfbfd; }
.preparation-handoff h4 { margin: 4px 0 0; color: #4b4a5c; font-size: 14px; line-height: 1.45; letter-spacing: 0; }
.preparation-handoff ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.preparation-handoff li { display: grid; gap: 2px; padding: 7px 9px; border-left: 3px solid #8d91a8; background: #fff; color: #697080; font-size: 10px; }
.preparation-handoff li strong { color: #4a4e61; font-size: 12px; }
.preparation-handoff small { color: #737587; font-size: 11px; }
.incident-recovery { margin-top: 14px; border: 1px solid #eadfcb; border-radius: 6px; background: #fffdf7; }
.incident-recovery > div { padding: 13px 15px 9px; }
.incident-recovery h3 { margin: 4px 0 0; color: #564b38; font-size: 14px; letter-spacing: 0; }
.incident-recovery ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid #eee5d6; }
.incident-recovery li { padding: 11px 14px; border-right: 1px solid #eee5d6; }
.incident-recovery li:last-child { border-right: 0; }
.incident-recovery li strong { color: #6b5834; font-size: 12px; }
.incident-recovery li p { margin: 4px 0; color: #6f6757; font-size: 11px; line-height: 1.5; }
.incident-recovery li small { color: #8a6f37; font-size: 10px; line-height: 1.45; }
.project-fit { display: grid; gap: 3px; margin: 10px 0; padding: 8px 10px; border-left: 3px solid #8a9b92; background: #f7faf8; }
.project-fit.recommended { border-color: #2f7a58; background: #f2f8f4; }
.project-fit.prepare { border-color: #b38335; background: #fffaf0; }
.project-fit.blocked { border-color: #b24b42; background: #fff6f5; }
.project-fit strong { color: #3d5e4e; font-size: 11px; }
.project-fit.prepare strong { color: #8a6327; }
.project-fit.blocked strong { color: #a33f37; }
.project-fit span { color: #6c7871; font-size: 10px; line-height: 1.45; }
.project-catalog-card.return-target { animation: project-return-highlight 2.6s ease-out; }
@keyframes project-return-highlight {
  0%, 35% { box-shadow: inset 0 0 0 3px #c89128, 0 0 0 4px rgba(200, 145, 40, .2); background: #fffaf0; }
  100% { box-shadow: none; }
}
.project-fit-filters { display: flex; gap: 0; padding: 0 20px 14px; overflow-x: auto; }
.project-fit-filters button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 11px; border: 1px solid #d9e2dc; border-right: 0; background: #fff; color: #627068; font: inherit; font-size: 11px; cursor: pointer; white-space: nowrap; }
.project-fit-filters button:first-child { border-radius: 5px 0 0 5px; }
.project-fit-filters button:last-child { border-right: 1px solid #d9e2dc; border-radius: 0 5px 5px 0; }
.project-fit-filters button.active { background: #2f6f53; color: #fff; }
.project-fit-filters button span { min-width: 18px; padding: 1px 5px; border-radius: 8px; background: rgba(74, 94, 83, .1); text-align: center; }
.project-fit-filters button.active span { background: rgba(255, 255, 255, .2); }
.project-catalog-empty { display: grid; place-items: center; gap: 5px; min-height: 180px; color: #718078; text-align: center; }
.project-catalog-empty svg { width: 24px; height: 24px; }
.project-catalog-empty strong { color: #495b51; font-size: 13px; }
.project-catalog-empty span { font-size: 11px; }
@media (max-width: 720px) { .project-fit-filters { padding: 0 16px 12px; } }
.organization-project-map-board { margin: 0 0 16px; border-top: 3px solid var(--primary); border-bottom: 1px solid var(--line); background: #fff; }
.organization-project-map-board > header { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.organization-project-map-board > header h2 { margin: 4px 0; font-size: 19px; }
.organization-project-map-board > header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.organization-project-map-metrics { display: grid; grid-template-columns: repeat(5,auto); gap: 6px 16px; flex: 0 0 auto; }
.organization-project-map-metrics span { display: grid; color: var(--muted); font-size: 8px; }
.organization-project-map-metrics strong { color: var(--primary-dark); font-size: 17px; }
.organization-project-map-rows { border-top: 1px solid var(--line); }
.organization-project-map-row { min-width: 0; display: grid; grid-template-columns: minmax(105px,.65fr) minmax(180px,1.2fr) minmax(170px,1fr) minmax(210px,1.25fr) auto; gap: 13px; align-items: center; padding: 11px 16px; }
.organization-project-map-row + .organization-project-map-row { border-top: 1px solid var(--line); }
.organization-project-map-row.selected { background: #f0f7f3; box-shadow: inset 3px 0 0 var(--primary); }
.organization-project-map-class strong, .organization-project-map-class small, .organization-project-map-course strong, .organization-project-map-course small { display: block; min-width: 0; overflow-wrap: anywhere; }
.organization-project-map-class strong { font-size: 12px; }
.organization-project-map-class small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.organization-project-map-course { min-width: 0; }
.organization-project-map-course .status-badge { float: right; margin-left: 7px; }
.organization-project-map-course strong { font-size: 11px; }
.organization-project-map-course small { margin-top: 4px; color: var(--muted); font-size: 8.5px; }
.organization-project-map-progress { min-width: 0; display: grid; grid-template-columns: minmax(70px,1fr) auto; gap: 3px 8px; align-items: center; }
.organization-project-map-progress > div { height: 7px; background: #e4ebe7; overflow: hidden; }
.organization-project-map-progress > div span { display: block; height: 100%; background: var(--primary); }
.organization-project-map-progress > strong { color: var(--primary-dark); font-size: 10px; }
.organization-project-map-progress > small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; }
.organization-project-map-guidance { min-width: 0; display: grid; gap: 2px; padding: 7px 9px; border-left: 3px solid #b8c4bd; background: #f6f8f7; }
.organization-project-map-guidance span { color: var(--muted); font-size: 7.5px; font-weight: 800; }
.organization-project-map-guidance strong { color: #32463b; font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.organization-project-map-guidance small { color: var(--muted); font-size: 7.5px; }
.organization-project-map-guidance.urgent { border-left-color: #b74b45; background: #fff3f1; }
.organization-project-map-guidance.urgent span, .organization-project-map-guidance.urgent strong { color: #8f332f; }
.organization-project-map-guidance.attention, .organization-project-map-guidance.review { border-left-color: #bd8a2e; background: #fff9ed; }
.organization-project-map-guidance.attention span, .organization-project-map-guidance.review span { color: #8a641f; }
.organization-project-map-actions { display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.organization-project-map-actions .secondary-button { min-width: 76px; min-height: 34px; padding: 7px 9px; font-size: 9px; }
.organization-project-map-actions .icon-button { width: 34px; height: 34px; }
.organization-project-map-current { padding: 6px 8px; color: var(--primary); background: var(--primary-soft); font-size: 8px; font-weight: 800; white-space: nowrap; }
.organization-project-map-board > footer { padding: 9px 16px; display: flex; align-items: center; gap: 7px; border-top: 1px solid var(--line); color: var(--muted); background: #f6f8f7; font-size: 8.5px; }
.organization-project-map-board > footer svg { flex: 0 0 auto; width: 14px; height: 14px; color: var(--primary); }
.organization-project-support-dialog { width: min(760px, calc(100vw - 28px)); max-width: 760px; max-height: calc(100vh - 28px); padding: 0; overflow: auto; }
.organization-project-support-summary { display: grid; gap: 6px; padding: 18px 20px; background: #f2f7f4; border-bottom: 1px solid var(--line); }
.organization-project-support-summary strong { color: var(--primary-dark); font-size: 16px; line-height: 1.4; }
.organization-project-support-summary small { color: var(--muted); font-size: 10px; }
.organization-project-support-route { display: grid; grid-template-columns: 34px minmax(0,1fr) 34px; align-items: center; gap: 10px; padding: 10px 20px; border-bottom: 1px solid #d7e4db; background: #eaf3ed; }
.organization-project-support-route[hidden] { display: none; }
.organization-project-support-route > div { min-width: 0; display: grid; gap: 2px; text-align: center; }
.organization-project-support-route span { color: #47705d; font-size: 8px; font-weight: 800; }
.organization-project-support-route strong { color: #29483a; font-size: 10px; overflow-wrap: anywhere; }
.organization-project-support-route small { color: #65766d; font-size: 8px; line-height: 1.4; overflow-wrap: anywhere; }
.organization-project-support-route .icon-button { width: 34px; height: 34px; background: #fff; }
.organization-project-support-route .icon-button:disabled { opacity: .35; }
.organization-project-support-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 14px 20px; }
.organization-project-support-facts span { padding: 9px 8px; background: #f7f9f8; color: var(--muted); font-size: 9px; text-align: center; }
.organization-project-support-actions { padding: 0 20px 16px; }
.organization-project-support-actions .eyebrow { display: block; margin-bottom: 8px; }
.organization-project-support-actions ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.organization-project-support-actions li { display: flex; align-items: flex-start; gap: 8px; color: #34473d; font-size: 11px; line-height: 1.5; }
.organization-project-support-actions li b { display: grid; place-items: center; flex: 0 0 18px; height: 18px; color: #fff; background: var(--primary); font-size: 9px; }
.organization-project-support-inspection { padding: 16px 20px; border-top: 1px solid var(--line); background: #fbfcfb; }
.organization-project-support-inspection > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.organization-project-support-inspection h3 { margin: 2px 0 0; color: #274238; font-size: 14px; }
.organization-project-support-inspection h4 { margin: 0 0 8px; color: #527063; font-size: 10px; }
.organization-project-support-focus { display: grid; grid-template-columns: 1fr 1.15fr 1.15fr; gap: 8px; margin-bottom: 10px; }
.organization-project-support-focus > div { min-width: 0; padding: 10px; border-left: 3px solid #7da490; background: #f0f6f2; }
.organization-project-support-focus span { display: block; margin-bottom: 4px; color: #6d8478; font-size: 8px; font-weight: 800; }
.organization-project-support-focus strong, .organization-project-support-focus p, .organization-project-support-focus blockquote { margin: 0; color: #30463b; font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.organization-project-support-focus blockquote { color: #376452; font-style: normal; }
.organization-project-support-guide-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10px; margin-top: 10px; }
.organization-project-support-guide-grid > section { min-width: 0; padding: 10px; border: 1px solid #dce7df; background: #fff; }
.organization-project-support-guide-grid ol, .organization-project-support-guide-grid ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.organization-project-support-guide-grid ol li { display: flex; gap: 7px; align-items: flex-start; color: #3e5549; font-size: 9px; line-height: 1.45; }
.organization-project-support-guide-grid ol li b { display: grid; place-items: center; flex: 0 0 16px; height: 16px; color: #fff; background: #5d9076; font-size: 8px; }
.organization-project-support-guide-grid li strong { display: block; color: #30483c; font-size: 9px; }
.organization-project-support-guide-grid li small, .organization-project-support-guide-grid li span { display: block; margin-top: 1px; color: var(--muted); font-size: 8.5px; line-height: 1.45; }
.organization-project-support-substitutions { margin-top: 9px !important; padding-top: 8px !important; border-top: 1px dashed #cbd9d0; }
.organization-project-support-substitutions strong { color: #87682c !important; }
.organization-project-support-safety li { position: relative; padding-left: 13px; color: #74503b; font-size: 8.5px; line-height: 1.5; }
.organization-project-support-safety li::before { position: absolute; left: 0; top: 4px; width: 6px; height: 6px; background: #b97b59; content: ""; }
.organization-project-support-outdoor { display: grid; gap: 4px; color: #465d52; font-size: 9px; line-height: 1.45; }
.organization-project-support-outdoor strong { color: #30483c; font-size: 9px; }
.organization-project-support-outdoor blockquote { margin: 2px 0; color: #376452; font-style: normal; }
.organization-project-support-outdoor small { color: var(--muted); font-size: 8px; }
.organization-project-support-guide-boundary { display: flex; align-items: flex-start; gap: 5px; margin-top: 10px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.organization-project-support-guide-boundary svg { flex: 0 0 auto; width: 13px; height: 13px; color: var(--primary); }
.organization-project-support-empty { color: var(--muted) !important; font-size: 8.5px !important; }
.organization-project-support-boundary { margin: 0 20px 16px; font-size: 9px; }
@media (max-width: 680px) {
  .organization-project-support-route { grid-template-columns: 32px minmax(0,1fr) 32px; gap: 7px; padding: 10px 14px; }
  .organization-project-support-route .icon-button { width: 32px; height: 32px; }
  .organization-project-support-facts { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px 14px; }
  .organization-project-support-actions { padding: 0 14px 14px; }
  .organization-project-support-inspection { padding: 14px; }
  .organization-project-support-focus, .organization-project-support-guide-grid { grid-template-columns: 1fr; }
  .organization-project-support-inspection > header { align-items: center; }
  .organization-project-support-boundary { margin: 0 14px 14px; }
}
@media (max-width: 980px) {
  .organization-project-map-board > header { align-items: stretch; flex-direction: column; }
  .organization-project-map-metrics { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .organization-project-map-row { grid-template-columns: 100px minmax(160px,1fr) minmax(140px,.8fr) auto; }
  .organization-project-map-guidance { grid-column: 1 / 4; grid-row: 2; }
  .organization-project-map-actions { grid-column: 4; grid-row: 1 / 3; }
}
@media (max-width: 680px) {
  .organization-project-map-board > header { padding: 14px; }
  .organization-project-map-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  .organization-project-map-row { grid-template-columns: 1fr auto; gap: 9px; padding: 12px 14px; }
  .organization-project-map-course { grid-column: 1 / -1; grid-row: 2; }
  .organization-project-map-progress { grid-column: 1 / -1; grid-row: 3; }
  .organization-project-map-guidance { grid-column: 1 / -1; grid-row: 4; }
  .organization-project-map-actions { grid-column: 1 / -1; grid-row: 5; justify-content: stretch; }
  .organization-project-map-actions .secondary-button { flex: 1 1 0; }
  .organization-project-map-board > footer { align-items: flex-start; }
}

.organization-project-matrix { margin-bottom: 16px; border: 1px solid #dce6e0; background: #f9fbfa; }
.organization-project-matrix-heading { display: flex; justify-content: space-between; gap: 20px; padding: 16px 20px; }
.organization-project-matrix-heading h2 { margin: 4px 0; font-size: 18px; letter-spacing: 0; }
.organization-project-matrix-heading p { margin: 0; color: #6c7771; font-size: 11px; }
.organization-project-condition { display: flex; align-items: center; gap: 5px; margin-top: 7px; color: #4f6b5d; font-size: 10px; line-height: 1.45; }
.organization-project-condition svg { flex: 0 0 auto; width: 13px; height: 13px; }
.organization-project-matrix-heading #exportOrganizationProjectMatrix { margin-top: 10px; }
.organization-project-matrix-heading > div:last-child { display: grid; grid-template-columns: auto auto; gap: 4px 8px; align-content: center; font-size: 10px; color: #65736b; }
.organization-project-matrix-heading > div:last-child strong { color: #2f7355; font-size: 16px; }
.organization-project-matrix ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 0; margin: 0; padding: 0; border-top: 1px solid #e3ebe6; list-style: none; }
.organization-project-matrix li { display: grid; grid-template-columns: minmax(70px, .7fr) minmax(95px, 1fr) auto 32px; gap: 6px 10px; align-items: center; padding: 10px 14px; border-right: 1px solid #e3ebe6; border-bottom: 1px solid #e3ebe6; font-size: 11px; }
.organization-project-matrix li div small { display: block; color: #7b867f; }
.organization-project-matrix li > span { color: #3f5549; }
.organization-project-matrix li > b { color: #377054; font-size: 10px; }
.organization-project-matrix li > b.prepare,.organization-project-matrix li > b.blocked { color: #9a543c; }
.organization-project-matrix li > small { grid-column: 2 / -1; color: #7b827e; font-size: 9px; }
.organization-project-matrix .project-matrix-open { width: 30px; height: 30px; }
@media (max-width: 720px) { .organization-project-matrix-heading { display: grid; padding: 14px 16px; } .organization-project-matrix ul { grid-template-columns: 1fr; } .organization-project-matrix li { border-right: 0; } }

@media (max-width: 760px) {
  .preparation-escalation-heading { display: grid; gap: 12px; padding: 15px 16px; }
  .preparation-escalation-metrics { justify-self: start; }
  .preparation-escalation-row { grid-template-columns: 30px minmax(0, 1fr); align-items: start; gap: 9px; padding: 14px 16px; }
  .preparation-escalation-main > div { align-items: flex-start; flex-wrap: wrap; }
  .preparation-escalation-sla { grid-column: 2; max-width: none; }
  .preparation-escalation-action { grid-column: 2; justify-content: flex-start; }
  .preparation-escalation-action .primary-button,
  .preparation-escalation-action .secondary-button { width: 100%; }
  .preparation-escalation-more { padding: 10px 16px; text-align: left; }
  .preparation-escalation-clear { padding: 13px 16px; }
  .preparation-resolution-digest { grid-template-columns: 1fr; padding: 14px 16px; }
  .preparation-resolution-metrics { width: 100%; }
  .preparation-resolution-metrics span { min-width: 0; flex: 1; padding: 7px 5px; }
  .preparation-resolution-digest li { align-items: flex-start; }
  .preparation-resolution-digest li > span { max-width: 105px; text-align: right; }
  .preparation-class-impact { grid-template-columns: 1fr; padding: 14px 16px; }
  .preparation-class-impact-metrics { width: 100%; }
  .preparation-class-impact-metrics span { min-width: 0; flex: 1; padding: 7px 4px; }
  .preparation-class-impact ul { grid-template-columns: 1fr; }
  .preparation-handoff { grid-template-columns: 1fr; padding: 14px 16px; }
  .incident-recovery ul { grid-template-columns: 1fr; }
  .incident-recovery li { border-right: 0; border-bottom: 1px solid #eee5d6; }
  .incident-recovery li:last-child { border-bottom: 0; }
}

.group-portfolio { margin-bottom: 16px; border: 1px solid #d6e0db; border-left: 4px solid #365f4b; background: #fff; }
.group-portfolio.critical { border-left-color: #ad443d; }
.group-portfolio.attention { border-left-color: #a77b2f; }
.group-portfolio-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding: 18px 22px 15px; border-bottom: 1px solid #e2e9e5; background: #f7faf8; }
.group-portfolio-heading h2 { margin: 4px 0; color: #30453a; font-size: 20px; line-height: 1.3; letter-spacing: 0; }
.group-portfolio-heading p { max-width: 780px; margin: 0; color: #68756e; font-size: 12px; line-height: 1.55; }
.group-portfolio-heading .secondary-button { flex: 0 0 auto; }
.group-portfolio-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid #e2e9e5; }
.group-portfolio-metrics > div { display: grid; gap: 3px; min-height: 70px; align-content: center; padding: 10px 18px; border-right: 1px solid #e2e9e5; }
.group-portfolio-metrics > div:last-child { border-right: 0; }
.group-portfolio-metrics strong { color: #326a50; font-size: 23px; line-height: 1; letter-spacing: 0; }
.group-portfolio-metrics span { color: #6d7972; font-size: 10px; }
.group-portfolio-metrics .critical strong { color: #ac433c; }
.group-portfolio-insights { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); border-bottom: 1px solid #e2e9e5; background: #fcfdfc; }
.group-portfolio-compare,.group-supervision { min-width: 0; padding: 16px 18px; }
.group-portfolio-compare { border-right: 1px solid #e2e9e5; }
.group-insight-heading { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 12px; }
.group-insight-heading h3 { margin: 3px 0 0; color: #34483d; font-size: 14px; line-height: 1.35; letter-spacing: 0; }
.group-portfolio-trend { display: inline-flex; gap: 4px; align-items: center; color: #6f7b74; font-size: 9px; font-weight: 700; white-space: nowrap; }
.group-portfolio-trend svg { width: 13px; height: 13px; }
.group-portfolio-trend.up { color: #287355; }
.group-portfolio-trend.down { color: #ad443d; }
.group-portfolio-trend.flat { color: #68756e; }
.group-portfolio-trend.new { color: #356b8a; }
.group-portfolio-compare-list { display: grid; border-top: 1px solid #e4ebe7; }
.group-portfolio-compare-row { display: grid; grid-template-columns: minmax(110px, .8fr) minmax(90px, 1fr) 42px minmax(112px, auto) minmax(104px, auto); gap: 9px; align-items: center; min-width: 0; padding: 10px 0; border-bottom: 1px solid #e7ede9; }
.group-portfolio-compare-row > div:first-child { min-width: 0; }
.group-portfolio-compare-row strong,.group-portfolio-compare-row small { display: block; }
.group-portfolio-compare-row strong { overflow: hidden; color: #3d5046; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.group-portfolio-compare-row small { margin-top: 2px; color: #7a857e; font-size: 8px; }
.group-portfolio-progress { overflow: hidden; height: 7px; background: #e5ebe7; }
.group-portfolio-progress span { display: block; height: 100%; background: #3f775a; }
.group-portfolio-compare-row > b { color: #2e624a; font-size: 13px; text-align: right; }
.group-portfolio-gap { margin: 0 !important; text-align: right; white-space: nowrap; }
.group-average-note { display: flex; gap: 6px; align-items: center; padding-top: 9px; color: #6d7972; font-size: 9px; }
.group-average-note > span { width: 16px; height: 2px; background: #3f775a; }
.group-supervision-list { display: grid; border-top: 1px solid #e4ebe7; }
.group-supervision-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 92px; gap: 9px; align-items: center; padding: 10px 0; border-bottom: 1px solid #e7ede9; }
.group-supervision-rank { display: grid; place-items: center; width: 22px; height: 22px; color: #6e5b2f; background: #f3ead2; font-size: 9px; font-weight: 800; }
.group-supervision-row.critical .group-supervision-rank { color: #963c36; background: #f7dfdc; }
.group-supervision-main { min-width: 0; }
.group-supervision-main strong { display: block; color: #3c4f45; font-size: 11px; }
.group-supervision-main p { margin: 3px 0; color: #58675f; font-size: 10px; line-height: 1.4; }
.group-supervision-main small { display: block; color: #7b867f; font-size: 8px; line-height: 1.4; }
.group-supervision-row .group-portfolio-open { width: 92px; min-height: 32px; padding: 5px 7px; font-size: 9px; }
.group-supervision-clear { display: flex; gap: 8px; align-items: center; min-height: 58px; color: #557163; font-size: 10px; }
.group-supervision-clear svg { width: 17px; height: 17px; color: #347454; }
.group-portfolio-list { display: grid; }
.group-portfolio-row { display: grid; grid-template-columns: minmax(170px, .8fr) minmax(280px, 1.4fr) minmax(230px, 1fr) 112px; gap: 16px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #e9eeeb; }
.group-portfolio-row.current { background: #f7faf8; box-shadow: inset 3px 0 #3b7257; }
.group-portfolio-row.critical { background: #fffafa; }
.group-portfolio-row.critical.current { box-shadow: inset 3px 0 #af463f; }
.group-portfolio-identity { display: flex; gap: 10px; align-items: center; min-width: 0; }
.group-portfolio-identity > span { display: grid; flex: 0 0 auto; place-items: center; width: 30px; height: 30px; border: 1px solid #d6e1db; color: #3b7357; background: #fff; }
.group-portfolio-row.critical .group-portfolio-identity > span { border-color: #e7c5c2; color: #ab433c; }
.group-portfolio-identity svg { width: 16px; height: 16px; }
.group-portfolio-identity strong,.group-portfolio-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-portfolio-identity strong { color: #34483d; font-size: 13px; }
.group-portfolio-identity small { margin-top: 3px; color: #77837c; font-size: 9px; }
.group-portfolio-row-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #e1e8e4; }
.group-portfolio-row-metrics span { display: grid; gap: 3px; min-width: 0; padding: 7px 8px; border-right: 1px solid #e1e8e4; color: #758078; font-size: 9px; }
.group-portfolio-row-metrics span:last-child { border-right: 0; }
.group-portfolio-row-metrics b { color: #386b52; font-size: 14px; line-height: 1; }
.group-portfolio-reasons { min-width: 0; }
.group-portfolio-reasons p { margin: 5px 0 0; overflow: hidden; color: #66736c; font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.group-portfolio-open { width: 112px; justify-content: center; }
.group-portfolio-empty { padding: 24px; color: #748079; text-align: center; }
.group-portfolio-boundary { display: flex; gap: 8px; align-items: center; padding: 10px 18px; border-top: 1px solid #e2e9e5; background: #f5f8f6; color: #637169; font-size: 10px; line-height: 1.5; }
.group-portfolio-boundary svg { flex: 0 0 auto; width: 15px; height: 15px; color: #3e7458; }
.group-case-panel { margin-bottom: 16px; border: 1px solid #d4dfe2; border-left: 4px solid #356a76; background: #fff; }
.group-case-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 17px 20px 14px; border-bottom: 1px solid #e0e8ea; background: #f6f9fa; }
.group-case-heading h2 { margin: 4px 0; color: #304951; font-size: 19px; line-height: 1.35; letter-spacing: 0; }
.group-case-heading p { max-width: 800px; margin: 0; color: #66787d; font-size: 11px; line-height: 1.55; }
.group-case-metrics { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); border-bottom: 1px solid #e0e8ea; }
.group-case-metrics span { display: grid; gap: 3px; min-height: 62px; align-content: center; padding: 9px 17px; border-right: 1px solid #e0e8ea; color: #718087; font-size: 9px; }
.group-case-metrics span:last-child { border-right: 0; }
.group-case-metrics b { color: #356c78; font-size: 20px; line-height: 1; }
.group-case-decision { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: 24px; align-items: center; padding: 16px 20px; border-bottom: 1px solid #e0e8ea; background: #f7faf8; }
.group-case-decision.attention { background: #fffaf0; }
.group-case-decision.critical { border-left: 3px solid #b95252; background: #fff5f5; }
.group-case-decision h3 { margin: 4px 0; color: #344f55; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.group-case-decision p { margin: 0; color: #66787d; font-size: 10px; line-height: 1.55; }
.group-case-decision ol { display: grid; gap: 5px; margin: 0; padding-left: 20px; color: #4b6267; font-size: 10px; line-height: 1.5; }
.group-case-list { display: grid; }
.group-case-row { display: grid; grid-template-columns: 92px minmax(0, 1fr) 116px; gap: 14px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #e7edef; }
.group-case-row.critical { background: #fffafa; }
.group-case-row.timing-overdue { box-shadow: inset 4px 0 #d5944f; }
.group-case-row.timing-escalated { box-shadow: inset 4px 0 #b95252; background: #fff7f7; }
.group-case-status { display: grid; gap: 5px; justify-items: start; }
.group-case-status small { color: #7a878b; font-size: 9px; }
.group-case-main { min-width: 0; }
.group-case-main > div { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.group-case-main strong { color: #344b52; font-size: 13px; }
.group-case-main > div small,.group-case-main > small { color: #76858a; font-size: 9px; }
.group-case-main p { margin: 4px 0; color: #586c72; font-size: 11px; line-height: 1.5; }
.group-case-clock { display: flex; gap: 6px; align-items: center; margin-top: 7px; color: #4f747b; font-size: 9px; font-weight: 700; }
.group-case-row.timing-overdue .group-case-clock,.group-case-row.timing-escalated .group-case-clock { color: #a14545; }
.group-case-clock svg { flex: 0 0 auto; width: 13px; height: 13px; }
.group-case-action-cell .primary-button { width: 116px; justify-content: center; }
.group-case-response-editor,.group-case-response-result { grid-column: 2 / -1; padding: 11px 12px; border-left: 3px solid #6b9098; background: #f5f8f9; }
.group-case-response-editor label,.group-case-response-result > span { display: block; margin-bottom: 6px; color: #405d65; font-size: 10px; font-weight: 800; }
.group-case-response-editor textarea { width: 100%; min-height: 72px; resize: vertical; border: 1px solid #cfdcdf; border-radius: 4px; padding: 9px 10px; color: #3c5056; background: #fff; font: inherit; font-size: 11px; line-height: 1.55; }
.group-case-response-editor > div { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 8px; }
.group-case-response-editor > div > span { color: #738187; font-size: 9px; line-height: 1.4; }
.group-case-response-result p { margin: 0 0 5px; color: #465c63; font-size: 11px; line-height: 1.55; }
.group-case-response-result small { color: #7a878b; font-size: 9px; }
.group-case-evidence { grid-column: 2 / -1; padding: 12px; border: 1px solid #d6e1e3; border-left: 3px solid #6b9098; background: #f8fafb; }
.group-case-evidence.verified { border-left-color: #4c8464; background: #f4faf6; }
.group-case-evidence.partial { border-left-color: #c08a32; background: #fffaf0; }
.group-case-evidence.insufficient { border-left-color: #b95252; background: #fff6f6; }
.group-case-evidence.unavailable { border-left-color: #7c898d; background: #f7f8f8; }
.group-case-evidence-heading { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.group-case-evidence-heading > div { display: grid; gap: 3px; min-width: 0; }
.group-case-evidence-heading > div > span { color: #718187; font-size: 8px; font-weight: 800; }
.group-case-evidence-heading strong { color: #354f56; font-size: 12px; line-height: 1.4; }
.group-case-evidence > p { margin: 8px 0 10px; color: #5e7177; font-size: 10px; line-height: 1.55; }
.group-case-evidence-checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #dce5e7; background: rgba(255,255,255,.72); }
.group-case-evidence-checks > span { display: grid; gap: 3px; min-width: 0; padding: 8px 10px; border-right: 1px solid #dce5e7; }
.group-case-evidence-checks > span:last-child { border-right: 0; }
.group-case-evidence-checks b { color: #53676d; font-size: 9px; }
.group-case-evidence-checks small { color: #7a888d; font-size: 9px; }
.group-case-evidence-checks .passed b { color: #347052; }
.group-case-evidence-checks .failed b { color: #a14b4b; }
.group-evidence-trail { margin-top: 10px; border-top: 1px solid #dce5e7; border-bottom: 1px solid #dce5e7; background: rgba(255,255,255,.62); }
.group-evidence-trail summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 42px; padding: 8px 10px; color: #3f5b62; cursor: pointer; list-style: none; }
.group-evidence-trail summary::-webkit-details-marker { display: none; }
.group-evidence-trail summary > span:first-child { display: grid; gap: 2px; }
.group-evidence-trail summary b { font-size: 10px; }
.group-evidence-trail summary small { color: #75858a; font-size: 8px; }
.group-evidence-trail summary > span:last-child { display: flex; gap: 5px; align-items: center; color: #49756a; font-size: 8px; font-weight: 800; }
.group-evidence-trail summary svg { width: 13px; height: 13px; }
.group-evidence-trail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #e1e8e9; }
.group-evidence-trail-grid.single-column { grid-template-columns: 1fr; }
.group-evidence-trail-grid > section { min-width: 0; padding: 9px 10px; }
.group-evidence-trail-grid > section + section { border-left: 1px solid #e1e8e9; }
.group-evidence-trail-grid.single-column > section + section { border-top: 1px solid #e1e8e9; border-left: 0; }
.group-evidence-trail-grid header { display: flex; justify-content: space-between; gap: 8px; align-items: center; margin-bottom: 5px; color: #5e7075; font-size: 8px; font-weight: 800; }
.group-evidence-trail-grid header b { color: #3c6460; font-size: 9px; }
.group-evidence-record { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 7px; align-items: center; padding: 8px 0; border-top: 1px solid #e7edef; }
.group-evidence-record:first-of-type { border-top: 0; }
.group-evidence-record-icon { display: grid; width: 24px; height: 24px; place-items: center; color: #3f7661; background: #e9f2ed; }
.group-evidence-record.blocking .group-evidence-record-icon { color: #a14b4b; background: #faeaea; }
.group-evidence-record-icon svg { width: 13px; height: 13px; }
.group-evidence-record > div { display: grid; gap: 2px; min-width: 0; }
.group-evidence-record > div > div { display: flex; justify-content: space-between; gap: 8px; color: #718087; font-size: 7px; }
.group-evidence-record > div > div b { color: #3c7659; font-size: 7px; }
.group-evidence-record.blocking > div > div b { color: #a14b4b; }
.group-evidence-record strong { overflow: hidden; color: #40565c; font-size: 9px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.group-evidence-record small { color: #7a888c; font-size: 7px; }
.group-evidence-record code { overflow: hidden; color: #899397; font-family: Consolas, monospace; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.group-evidence-open { display: inline-flex; gap: 4px; align-items: center; justify-content: center; min-height: 27px; padding: 5px 7px; border: 1px solid #cbdad5; color: #35685a; background: #f7fbf9; font: inherit; font-size: 7px; font-weight: 900; cursor: pointer; }
.group-evidence-open:hover { border-color: #7da598; background: #edf6f1; }
.group-evidence-open:disabled { cursor: wait; opacity: .55; }
.group-evidence-open svg { width: 12px; height: 12px; flex: 0 0 auto; }
.evidence-return-bar { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: 0 0 16px; padding: 11px 14px; border: 1px solid #cadbd6; border-left: 4px solid #3c7665; background: #f4f9f6; }
.evidence-return-icon { display: grid; width: 34px; height: 34px; place-items: center; color: #356c5d; background: #e2efe8; }
.evidence-return-icon svg { width: 17px; height: 17px; }
.evidence-return-bar > div { display: grid; gap: 2px; min-width: 0; }
.evidence-return-bar small { color: #638078; font-size: 8px; font-weight: 800; }
.evidence-return-bar strong { overflow: hidden; color: #36544c; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.evidence-return-bar > div > span { color: #6d7f7a; font-size: 8px; line-height: 1.45; }
.evidence-return-bar .secondary-button { min-width: 128px; justify-content: center; background: #fff; }
.evidence-access-history { border-top: 1px solid #dfe8e9; background: #f9fbfb; }
.evidence-access-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 13px 20px 10px; }
.evidence-access-heading h3 { margin: 3px 0 0; color: #39565d; font-size: 14px; letter-spacing: 0; }
.evidence-access-list { border-top: 1px solid #e3eaeb; }
.evidence-access-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 54px; padding: 8px 20px; border-bottom: 1px solid #e9eeee; }
.evidence-access-row:last-child { border-bottom: 0; }
.evidence-access-kind { display: grid; width: 28px; height: 28px; place-items: center; color: #3f7568; background: #e7f0ec; }
.evidence-access-kind svg { width: 14px; height: 14px; }
.evidence-access-row > div { display: grid; gap: 2px; min-width: 0; }
.evidence-access-row strong { color: #40575d; font-size: 10px; }
.evidence-access-row small { color: #748489; font-size: 8px; }
.evidence-access-row code { overflow: hidden; color: #8a9699; font-family: Consolas, monospace; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.evidence-access-empty { display: flex; gap: 8px; align-items: center; min-height: 58px; padding: 10px 20px; border-top: 1px solid #e3eaeb; color: #708187; font-size: 9px; }
.evidence-access-empty svg { width: 15px; height: 15px; color: #4f796e; }

@keyframes evidence-navigation-pulse {
  0%, 100% { outline-color: rgba(54, 118, 93, 0); box-shadow: 0 0 0 0 rgba(54, 118, 93, 0); }
  18%, 70% { outline-color: rgba(54, 118, 93, .9); box-shadow: 0 0 0 5px rgba(54, 118, 93, .14); }
}

.evidence-navigation-target {
  position: relative;
  z-index: 1;
  outline: 3px solid transparent;
  outline-offset: 3px;
  animation: evidence-navigation-pulse 1.25s ease-in-out 3;
}
.group-evidence-empty { display: flex; gap: 7px; align-items: center; min-height: 50px; color: #738288; font-size: 8px; line-height: 1.4; }
.group-evidence-empty svg { flex: 0 0 auto; width: 14px; height: 14px; color: #53816d; }
.group-evidence-trail-note { display: flex; gap: 6px; align-items: flex-start; padding: 7px 10px; border-top: 1px solid #e1e8e9; color: #78868a; font-size: 7px; line-height: 1.45; }
.group-evidence-trail-note svg { flex: 0 0 auto; width: 12px; height: 12px; color: #4b7868; }
.group-case-evidence-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 12px; align-items: center; margin-top: 10px; }
.group-case-evidence-result > span { color: #4f666c; font-size: 9px; line-height: 1.5; }
.group-case-evidence-result label { grid-column: 1 / -1; color: #405d65; font-size: 9px; font-weight: 800; }
.group-case-evidence-note { min-height: 58px; width: 100%; resize: vertical; border: 1px solid #ccdadd; border-radius: 4px; padding: 8px 9px; color: #3c5056; background: #fff; font: inherit; font-size: 10px; line-height: 1.5; }
.group-case-evidence-result .secondary-button { align-self: stretch; min-width: 132px; justify-content: center; }
.group-case-trend { border-top: 1px solid #dfe8e9; background: #fafcfc; }
.group-case-trend-heading { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 15px 20px 12px; }
.group-case-trend-heading h3 { margin: 4px 0 0; color: #344f55; font-size: 15px; line-height: 1.3; letter-spacing: 0; }
.group-case-trend-heading > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(90px, auto)); gap: 8px; }
.group-case-trend-heading > div:last-child span { display: grid; gap: 2px; padding-left: 12px; border-left: 1px solid #d8e2e3; color: #758489; font-size: 8px; }
.group-case-trend-heading b { color: #356c78; font-size: 13px; }
.group-case-trend-list { border-top: 1px solid #e3eaeb; }
.group-case-trend-row { display: grid; grid-template-columns: minmax(150px, 1.4fr) repeat(5, minmax(82px, 1fr)); gap: 10px; align-items: center; min-height: 42px; padding: 8px 20px; border-bottom: 1px solid #edf1f2; color: #66787d; font-size: 9px; }
.group-case-trend-row:last-child { border-bottom: 0; }
.group-case-trend-row strong { color: #3e565c; font-size: 11px; }
.group-case-trend-row .is-overdue { color: #a14545; font-weight: 800; }
.group-case-empty { display: flex; gap: 10px; align-items: center; min-height: 74px; padding: 16px 20px; color: #50736d; font-size: 11px; }
.group-case-empty svg { width: 20px; height: 20px; }
.group-case-boundary { display: flex; gap: 8px; align-items: flex-start; padding: 10px 18px; border-top: 1px solid #e0e8ea; background: #f5f8f9; color: #64767b; font-size: 9px; line-height: 1.5; }
.group-case-boundary svg { flex: 0 0 auto; width: 14px; height: 14px; color: #3f737d; }
@media (max-width: 1100px) {
  .group-case-decision { grid-template-columns: 1fr; gap: 10px; }
  .group-case-trend-row { grid-template-columns: minmax(140px, 1.4fr) repeat(3, minmax(80px, 1fr)); }
  .group-case-trend-row span:nth-last-child(-n+2) { display: none; }
  .group-portfolio-insights { grid-template-columns: 1fr; }
  .group-portfolio-compare { border-right: 0; border-bottom: 1px solid #e2e9e5; }
  .group-portfolio-row { grid-template-columns: minmax(170px, .8fr) minmax(270px, 1.4fr) 112px; }
  .group-portfolio-reasons { grid-column: 1 / 3; grid-row: 2; }
  .group-portfolio-open { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 760px) {
  .group-case-heading { display: grid; gap: 10px; padding: 15px 16px; }
  .group-case-heading h2 { font-size: 17px; }
  .group-case-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-case-metrics span { min-height: 56px; padding: 8px 13px; border-bottom: 1px solid #e0e8ea; }
  .group-case-metrics span:nth-child(2n) { border-right: 0; }
  .group-case-metrics span:last-child { border-bottom: 0; }
  .group-case-metrics span:nth-last-child(2) { border-bottom: 0; }
  .group-case-decision { gap: 10px; padding: 14px 16px; }
  .group-case-decision ol { padding-left: 18px; }
  .group-case-row { grid-template-columns: 1fr; gap: 9px; padding: 13px 16px; }
  .group-case-status { display: flex; justify-content: space-between; align-items: center; }
  .group-case-main > div { align-items: flex-start; }
  .group-case-action-cell .primary-button { width: 100%; }
  .group-case-response-editor,.group-case-response-result,.group-case-evidence { grid-column: 1; }
  .group-case-response-editor > div { align-items: stretch; flex-direction: column; }
  .group-case-response-editor .primary-button { width: 100%; }
  .group-case-evidence-heading { align-items: flex-start; }
  .group-case-evidence-checks { grid-template-columns: 1fr; }
  .group-case-evidence-checks > span { border-right: 0; border-bottom: 1px solid #dce5e7; }
  .group-case-evidence-checks > span:last-child { border-bottom: 0; }
  .group-evidence-trail-grid { grid-template-columns: 1fr; }
  .group-evidence-trail-grid > section + section { border-top: 1px solid #e1e8e9; border-left: 0; }
  .group-evidence-record strong { white-space: normal; }
  .group-evidence-record { grid-template-columns: 24px minmax(0, 1fr); align-items: start; }
  .group-evidence-open { grid-column: 2; width: fit-content; margin-top: 3px; }
  .evidence-return-bar { grid-template-columns: 34px minmax(0, 1fr); gap: 9px; padding: 10px 11px; }
  .evidence-return-bar strong { white-space: normal; }
  .evidence-return-bar .secondary-button { grid-column: 1 / -1; width: 100%; }
  .evidence-access-heading { padding: 12px 16px 9px; }
  .evidence-access-row { grid-template-columns: 28px minmax(0, 1fr); padding: 9px 16px; }
  .evidence-access-row .status-badge { grid-column: 2; width: fit-content; }
  .group-case-evidence-result { grid-template-columns: 1fr; }
  .group-case-evidence-result label { grid-column: 1; }
  .group-case-evidence-result .secondary-button { width: 100%; }
  .group-case-trend-heading { display: grid; gap: 12px; padding: 14px 16px 12px; }
  .group-case-trend-heading > div:last-child { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .group-case-trend-heading > div:last-child span { min-width: 0; padding-left: 8px; }
  .group-case-trend-row { grid-template-columns: 1fr auto; gap: 6px 10px; padding: 10px 16px; }
  .group-case-trend-row strong { grid-column: 1 / -1; }
  .group-case-trend-row span:nth-of-type(n+3) { display: none; }
  .group-case-boundary { padding: 10px 16px; }
  .group-portfolio-heading { display: grid; gap: 12px; padding: 16px; }
  .group-portfolio-heading h2 { font-size: 17px; }
  .group-portfolio-heading .secondary-button { width: 100%; }
  .group-portfolio-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-portfolio-metrics > div { min-height: 60px; padding: 9px 14px; border-bottom: 1px solid #e2e9e5; }
  .group-portfolio-metrics > div:nth-child(2n) { border-right: 0; }
  .group-portfolio-metrics > div:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .group-portfolio-compare,.group-supervision { padding: 14px 16px; }
  .group-insight-heading { align-items: center; }
  .group-portfolio-compare-row { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; }
  .group-portfolio-compare-row > div:first-child { grid-column: 1; grid-row: 1; }
  .group-portfolio-compare-row > b { grid-column: 2; grid-row: 1; }
  .group-portfolio-progress { grid-column: 1 / -1; grid-row: 2; }
  .group-portfolio-compare-row .group-portfolio-trend { grid-column: 1; grid-row: 3; }
  .group-portfolio-gap { grid-column: 2; grid-row: 3; }
  .group-supervision-row { grid-template-columns: 22px minmax(0, 1fr); }
  .group-supervision-row .group-portfolio-open { grid-column: 2; width: 100%; }
  .group-portfolio-row { grid-template-columns: 1fr; gap: 10px; padding: 14px 16px; }
  .group-portfolio-row-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-portfolio-row-metrics span:nth-child(2) { border-right: 0; }
  .group-portfolio-row-metrics span:nth-child(-n+2) { border-bottom: 1px solid #e1e8e4; }
  .group-portfolio-reasons,.group-portfolio-open { grid-column: 1; grid-row: auto; }
  .group-portfolio-reasons p { white-space: normal; }
  .group-portfolio-open { width: 100%; }
  .group-portfolio-boundary { align-items: flex-start; padding: 10px 16px; }
}

.teaching-operations-brief { margin-bottom: 16px; border: 1px solid #d8e3dd; border-left: 4px solid #47755f; background: #fff; }
.teaching-operations-brief.alert { border-left-color: #b84d45; }
.teaching-operations-brief.attention { border-left-color: #b18335; }
.teaching-operations-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding: 18px 22px 15px; border-bottom: 1px solid #e3ebe6; background: #f8fbf9; }
.teaching-operations-heading h2 { margin: 4px 0; color: #31483d; font-size: 20px; line-height: 1.3; letter-spacing: 0; }
.teaching-operations-heading p { max-width: 760px; margin: 0; color: #68766f; font-size: 12px; line-height: 1.55; }
.teaching-operations-heading .secondary-button { flex: 0 0 auto; }
.teaching-operations-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid #e3ebe6; }
.teaching-operations-metrics > div { display: grid; gap: 3px; min-height: 72px; align-content: center; padding: 11px 18px; border-right: 1px solid #e3ebe6; }
.teaching-operations-metrics > div:last-child { border-right: 0; }
.teaching-operations-metrics strong { color: #2f7053; font-size: 24px; line-height: 1; letter-spacing: 0; }
.teaching-operations-metrics .critical strong { color: #ae443d; }
.teaching-operations-metrics span { color: #6b7871; font-size: 11px; }
.teaching-operations-list { display: grid; }
.teaching-operations-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #edf1ef; }
.teaching-operations-row:last-child { border-bottom: 0; }
.teaching-operations-row.critical { background: #fffafa; }
.teaching-operations-index { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #d4dfd9; border-radius: 50%; color: #52705f; font-size: 11px; font-weight: 700; }
.teaching-operations-row.critical .teaching-operations-index { border-color: #e7c7c3; color: #a9443d; background: #fff; }
.teaching-operations-main { min-width: 0; }
.teaching-operations-main > div { display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
.teaching-operations-main > div > small { color: #77827c; font-size: 10px; }
.operations-workflow { padding: 2px 6px; border: 1px solid #ded9c8; background: #fffdf5; color: #856f3f; font-size: 9px; font-weight: 700; }
.operations-workflow.in_progress { border-color: #cfe0d6; background: #f5faf7; color: #397055; }
.teaching-operations-main > strong { display: block; color: #36473e; font-size: 13px; line-height: 1.4; }
.teaching-operations-main p { margin: 3px 0 5px; color: #66736c; font-size: 11px; line-height: 1.5; }
.teaching-operations-main > small { display: flex; gap: 5px; align-items: center; color: #7a8580; font-size: 10px; }
.teaching-operations-main > small svg { width: 12px; height: 12px; }
.teaching-operations-open { min-width: 128px; justify-content: center; }
.teaching-operations-empty { display: flex; gap: 12px; align-items: center; min-height: 100px; padding: 20px 24px; color: #397258; }
.teaching-operations-empty > svg { width: 28px; height: 28px; }
.teaching-operations-empty strong,.teaching-operations-empty span { display: block; }
.teaching-operations-empty strong { color: #345b48; font-size: 14px; }
.teaching-operations-empty span { margin-top: 4px; color: #728078; font-size: 11px; }
.teaching-operations-more { padding: 9px 18px; border-top: 1px solid #edf1ef; background: #fafbfa; color: #727d77; font-size: 10px; text-align: center; }
.teaching-operations-classes,.teaching-operations-results { border-top: 1px solid #dfe8e3; }
.teaching-operations-classes > header,.teaching-operations-results > header { display: flex; justify-content: space-between; gap: 16px; align-items: end; padding: 14px 18px 11px; background: #f8faf9; }
.teaching-operations-classes h3,.teaching-operations-results h3 { margin: 3px 0 0; color: #384a41; font-size: 14px; letter-spacing: 0; }
.teaching-operations-classes > header > small { color: #77827c; font-size: 10px; }
.teaching-operations-classes > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); border-top: 1px solid #e7ece9; }
.teaching-operations-class { display: grid; gap: 9px; min-width: 0; padding: 13px 16px; border-right: 1px solid #e7ece9; border-bottom: 1px solid #e7ece9; }
.teaching-operations-class.alert { box-shadow: inset 3px 0 #bc554c; }
.teaching-operations-class header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.teaching-operations-class header strong,.teaching-operations-class header small { display: block; }
.teaching-operations-class header strong { color: #35483e; font-size: 13px; }
.teaching-operations-class header small { margin-top: 2px; color: #79837e; font-size: 9px; }
.teaching-operations-class-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #e5ebe8; }
.teaching-operations-class-metrics span { display: grid; gap: 2px; padding: 7px 8px; border-right: 1px solid #e5ebe8; color: #737e78; font-size: 9px; }
.teaching-operations-class-metrics span:last-child { border-right: 0; }
.teaching-operations-class-metrics b { color: #3c7057; font-size: 14px; }
.teaching-operations-class p { min-width: 0; margin: 0; color: #69766f; font-size: 10px; line-height: 1.45; }
.teaching-operations-class p span,.teaching-operations-class p strong { display: block; }
.teaching-operations-class p strong { margin-top: 2px; overflow: hidden; color: #425249; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.teaching-operations-class .text-button { justify-self: start; }
.teaching-operations-results > div { display: grid; }
.teaching-operations-resolved { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto 32px; gap: 10px; align-items: center; padding: 10px 18px; border-top: 1px solid #edf1ef; }
.teaching-operations-resolved > span { display: grid; place-items: center; color: #3d7659; }
.teaching-operations-resolved > span svg { width: 16px; height: 16px; }
.teaching-operations-resolved strong,.teaching-operations-resolved small { display: block; }
.teaching-operations-resolved strong { color: #415148; font-size: 11px; }
.teaching-operations-resolved small,.teaching-operations-resolved time { color: #7a847f; font-size: 9px; }
.teaching-operations-results-empty { padding: 15px 18px; border-top: 1px solid #edf1ef; color: #78827d; font-size: 10px; }
.teaching-operations-boundary { display: flex; gap: 8px; align-items: center; padding: 10px 18px; border-top: 1px solid #e3ebe6; background: #f5f8f6; color: #627169; font-size: 10px; line-height: 1.5; }
.teaching-operations-boundary svg { flex: 0 0 auto; width: 15px; height: 15px; color: #3f7659; }

.development-review-priority { display: grid; grid-template-columns: 42px minmax(0,1fr) auto auto; gap: 16px; align-items: center; margin-bottom: 16px; padding: 14px 18px; border: 1px solid #e5d7ba; border-left: 4px solid #b18335; background: #fffdf8; }
.development-review-priority-icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #dfcfad; border-radius: 6px; background: #fff; color: #8b6b2c; }
.development-review-priority-icon svg { width: 20px; height: 20px; }
.development-review-priority-content { min-width: 0; }
.development-review-priority-content h2 { margin: 3px 0 4px; color: #4b493f; font-size: 15px; line-height: 1.35; letter-spacing: 0; }
.development-review-priority-content p,.development-review-priority-content small { display: block; margin: 0; color: #716e64; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.development-review-priority-content small { margin-top: 2px; color: #898477; }
.development-review-priority-metrics { display: grid; grid-template-columns: auto auto; gap: 2px 7px; align-items: baseline; min-width: 80px; padding-left: 16px; border-left: 1px solid #e5d7ba; }
.development-review-priority-metrics strong { grid-row: 1 / span 2; color: #956c20; font-size: 25px; line-height: 1; }
.development-review-priority-metrics span,.development-review-priority-metrics b { color: #7a7468; font-size: 9px; font-weight: 400; white-space: nowrap; }
.development-review-priority .secondary-button { min-width: 146px; justify-content: center; }

.development-coverage-board { margin-bottom: 16px; border: 1px solid #d8e3dd; border-left: 4px solid #5f7d6d; background: #fff; }
.development-coverage-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding: 18px 22px 15px; border-bottom: 1px solid #e3ebe6; background: #f8fbf9; }
.development-coverage-heading h2 { margin: 4px 0; color: #31483d; font-size: 20px; line-height: 1.3; letter-spacing: 0; }
.development-coverage-heading p { max-width: 760px; margin: 0; color: #68766f; font-size: 12px; line-height: 1.55; }
.development-coverage-heading .secondary-button { flex: 0 0 auto; }
.development-coverage-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.development-coverage-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid #e3ebe6; background: #fbfcfb; }
.development-coverage-metrics > div { display: grid; gap: 3px; min-height: 72px; align-content: center; padding: 11px 18px; border-right: 1px solid #e3ebe6; }
.development-coverage-metrics > div:last-child { border-right: 0; }
.development-coverage-metrics > div.attention { box-shadow: inset 4px 0 #b18335; background: #fffdf7; }
.development-coverage-metrics strong { color: #2f7053; font-size: 23px; line-height: 1; }
.development-coverage-metrics .attention strong { color: #9b6e22; }
.development-coverage-metrics span { color: #6b7871; font-size: 10px; }
.development-coverage-list { display: grid; }
.development-coverage-row { display: grid; grid-template-columns: minmax(125px,.8fr) minmax(230px,1.55fr) minmax(120px,.75fr) minmax(105px,.65fr) auto; gap: 14px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #edf1ef; }
.development-coverage-row:last-child { border-bottom: 0; }
.development-coverage-row > div { min-width: 0; }
.development-coverage-class { display: flex; gap: 8px; align-items: flex-start; }
.development-coverage-class > span { padding: 3px 5px; border: 1px solid #cfe0d6; color: #397258; font-size: 9px; white-space: nowrap; }
.development-coverage-class strong,.development-coverage-class small { display: block; }
.development-coverage-class strong { color: #35483e; font-size: 13px; }
.development-coverage-class small { margin-top: 3px; overflow-wrap: anywhere; color: #79837e; font-size: 9px; line-height: 1.35; }
.development-coverage-goal small,.development-coverage-goal strong,.development-coverage-goal p { display: block; }
.development-coverage-goal small { color: #77827c; font-size: 9px; }
.development-coverage-goal strong { margin-top: 3px; color: #40564a; font-size: 12px; }
.development-coverage-goal p { margin: 3px 0 0; color: #68766f; font-size: 10px; line-height: 1.45; }
.development-coverage-facts,.development-coverage-gap { display: grid; gap: 3px; justify-items: start; }
.development-coverage-facts .status-badge { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.development-coverage-facts strong,.development-coverage-gap strong { color: #3b6f56; font-size: 17px; line-height: 1; }
.development-coverage-facts strong small { margin-left: 2px; color: #748178; font-size: 9px; font-weight: 400; }
.development-coverage-facts > small,.development-coverage-gap > small { color: #78847e; font-size: 9px; }
.development-coverage-gap span { color: #9b6e22; font-size: 9px; }
.development-coverage-open { min-width: 116px; justify-content: center; white-space: nowrap; }
.development-review-queue { scroll-margin-top: 72px; padding: 15px 18px; border-bottom: 1px solid #e3ebe6; background: #fbfcfb; }
.development-review-queue.empty { background: #f8fbf9; }
.development-review-queue h3 { margin: 4px 0 0; color: #40564a; font-size: 13px; }
.development-review-queue p { margin: 5px 0 0; color: #68766f; font-size: 10px; line-height: 1.55; }
.development-review-queue-list { display: grid; gap: 7px; margin-top: 12px; }
.development-review-queue-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid #dfe8e2; background: #fff; }
.development-review-queue-list article > div { min-width: 0; }
.development-review-queue-list strong,.development-review-queue-list small { display: block; overflow-wrap: anywhere; }
.development-review-queue-list strong { color: #40564a; font-size: 11px; }
.development-review-queue-list small { margin-top: 3px; color: #78847e; font-size: 9px; }
.development-review-queue-list .secondary-button { flex: 0 0 auto; min-width: 132px; justify-content: center; }
.observation-review-readonly { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 9px; color: #68766f; font-size: 10px; line-height: 1.45; }
.development-coverage-boundary { display: flex; gap: 8px; align-items: center; padding: 10px 18px; border-top: 1px solid #e3ebe6; background: #f5f8f6; color: #627169; font-size: 10px; line-height: 1.5; }
.development-coverage-boundary svg { flex: 0 0 auto; width: 15px; height: 15px; color: #3f7659; }

@media (max-width: 760px) {
  .development-review-priority { grid-template-columns: 40px minmax(0,1fr); gap: 11px 12px; padding: 14px 15px; }
  .development-review-priority-metrics { grid-column: 2; min-width: 0; padding-left: 0; border-left: 0; }
  .development-review-priority .secondary-button { grid-column: 2; width: 100%; min-width: 0; }
  .development-coverage-heading { display: grid; gap: 12px; padding: 16px; }
  .development-coverage-heading h2 { font-size: 17px; }
  .development-coverage-actions, .development-coverage-actions .secondary-button { width: 100%; }
  .development-coverage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .development-coverage-metrics > div { min-height: 62px; padding: 9px 14px; }
  .development-coverage-metrics > div:nth-child(2n) { border-right: 0; }
  .development-coverage-metrics > div:nth-child(n+3) { border-top: 1px solid #e3ebe6; }
  .development-coverage-row { grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 13px 15px; }
  .development-coverage-row > div { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid #edf1ef; }
  .development-coverage-row > div:first-child { padding-top: 0; border-top: 0; }
  .development-coverage-facts,.development-coverage-gap { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
  .development-coverage-facts > small,.development-coverage-gap > small { margin-right: auto; }
  .development-coverage-open { grid-column: 2; grid-row: 1; min-width: 0; }
  .development-review-queue { padding: 14px 15px; }
  .development-review-queue-list article { display: grid; }
  .development-review-queue-list .secondary-button { width: 100%; min-width: 0; }
  .development-coverage-boundary { align-items: flex-start; padding: 10px 15px; }
}

@media (max-width: 760px) {
  .teaching-operations-heading { display: grid; gap: 12px; padding: 16px; }
  .teaching-operations-heading h2 { font-size: 17px; }
  .teaching-operations-heading .secondary-button { width: 100%; }
  .teaching-operations-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teaching-operations-metrics > div { min-height: 62px; padding: 9px 14px; }
  .teaching-operations-metrics > div:nth-child(2n) { border-right: 0; }
  .teaching-operations-metrics > div:not(:last-child) { border-bottom: 1px solid #e3ebe6; }
  .teaching-operations-metrics > div:last-child { grid-column: 1 / -1; }
  .teaching-operations-metrics strong { font-size: 21px; }
  .teaching-operations-row { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; align-items: start; padding: 14px 16px; }
  .teaching-operations-index { width: 26px; height: 26px; }
  .teaching-operations-open { grid-column: 2; width: 100%; min-width: 0; }
  .teaching-operations-boundary { align-items: flex-start; padding: 10px 16px; }
  .teaching-operations-classes > header,.teaching-operations-results > header { align-items: flex-start; padding: 13px 16px 10px; }
  .teaching-operations-classes > header > small { max-width: 120px; text-align: right; }
  .teaching-operations-classes > div { grid-template-columns: 1fr; }
  .teaching-operations-class { border-right: 0; }
  .teaching-operations-resolved { grid-template-columns: 22px minmax(0, 1fr) 32px; padding: 10px 16px; }
  .teaching-operations-resolved time { grid-column: 2; grid-row: 2; }
  .teaching-operations-resolved .icon-button { grid-column: 3; grid-row: 1 / span 2; }
}

/* V98 supervision priority and evidence freshness */
.group-priority-board { border-bottom: 1px solid #dfe8e9; background: #fbfcfc; }
.group-priority-heading { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 15px 20px 12px; }
.group-priority-heading h3 { margin: 4px 0; color: #344f55; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.group-priority-heading p { margin: 0; color: #6b7b80; font-size: 9px; line-height: 1.5; }
.group-priority-buckets { display: grid; grid-template-columns: repeat(4, minmax(64px, 1fr)); min-width: 330px; border: 1px solid #dde6e7; background: #fff; }
.group-priority-buckets span { display: grid; gap: 2px; min-height: 50px; align-content: center; padding: 7px 10px; border-right: 1px solid #e3e9ea; color: #6c7b80; font-size: 8px; }
.group-priority-buckets span:last-child { border-right: 0; }
.group-priority-buckets b { font-size: 16px; line-height: 1; }
.group-priority-buckets .p0 b { color: #a84343; }
.group-priority-buckets .p1 b { color: #b57524; }
.group-priority-buckets .p2 b { color: #39717c; }
.group-priority-buckets .p3 b { color: #5c7468; }
.group-priority-queue { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #e4eaeb; }
.group-priority-queue > article { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 9px; align-items: center; min-width: 0; padding: 11px 14px; border-right: 1px solid #e4eaeb; background: #fff; }
.group-priority-queue > article:last-child { border-right: 0; }
.group-priority-queue strong { color: #38535a; font-size: 10px; }
.group-priority-queue p { overflow: hidden; margin: 2px 0; color: #61747a; font-size: 9px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.group-priority-queue small { display: block; overflow: hidden; color: #7a888d; font-size: 7px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.group-priority-code { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #cad9dc; color: #456b73; background: #f4f8f8; font-size: 10px; font-weight: 900; }
.group-priority-code.p0 { border-color: #e2bcbc; color: #9f4141; background: #fff4f4; }
.group-priority-code.p1 { border-color: #ead3aa; color: #a76d1d; background: #fff9ed; }
.group-priority-score { color: #345f68; font-size: 17px; font-weight: 900; }
.group-priority-score small { display: inline; margin-left: 2px; font-size: 7px; font-weight: 700; }
.group-priority-boundary { display: flex; gap: 6px; align-items: center; padding: 7px 14px; border-top: 1px solid #e5ebec; color: #758488; background: #f7f9f9; font-size: 7px; line-height: 1.45; }
.group-priority-boundary svg { flex: 0 0 auto; width: 12px; height: 12px; color: #49756a; }
.group-case-row { grid-template-columns: 62px 92px minmax(0, 1fr) 116px; }
.group-case-priority { display: grid; gap: 1px; justify-items: center; align-content: center; min-height: 58px; border-right: 1px solid #e1e8ea; color: #61747a; }
.group-case-priority b { font-size: 15px; line-height: 1; }
.group-case-priority span,.group-case-priority small { font-size: 7px; }
.group-case-priority.critical b { color: #a84343; }
.group-case-priority.high b { color: #ae741f; }
.group-case-priority.medium b { color: #39717c; }
.group-case-priority.low b,.group-case-priority.closed b { color: #537368; }
.group-case-response-editor,.group-case-response-result,.group-case-evidence { grid-column: 3 / -1; }
.group-evidence-digest { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 9px 0 10px; }
.group-evidence-digest article { display: grid; gap: 5px; min-width: 0; padding: 9px 10px; border: 1px solid #dce5e7; background: rgba(255,255,255,.78); }
.group-evidence-digest article > span { color: #718187; font-size: 7px; font-weight: 800; }
.group-evidence-digest article > div { display: flex; justify-content: space-between; gap: 8px; align-items: center; min-width: 0; }
.group-evidence-digest strong { overflow-wrap: anywhere; color: #3d5b62; font-size: 10px; line-height: 1.4; }
.group-evidence-digest b { flex: 0 0 auto; color: #46756c; font-size: 8px; }
.group-evidence-digest small { color: #78878b; font-size: 7px; line-height: 1.45; }

@media (max-width: 1100px) {
  .group-priority-heading { align-items: flex-start; }
  .group-priority-buckets { min-width: 288px; }
  .group-case-row { grid-template-columns: 56px 84px minmax(0, 1fr) 112px; }
}

@media (max-width: 760px) {
  .group-priority-heading { display: grid; gap: 12px; padding: 14px 16px 12px; }
  .group-priority-buckets { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; width: 100%; }
  .group-priority-buckets span:nth-child(2) { border-right: 0; }
  .group-priority-buckets span:nth-child(-n+2) { border-bottom: 1px solid #e3e9ea; }
  .group-priority-queue { grid-template-columns: 1fr; }
  .group-priority-queue > article { border-right: 0; border-bottom: 1px solid #e4eaeb; }
  .group-priority-queue > article:last-child { border-bottom: 0; }
  .group-priority-queue p,.group-priority-queue small { overflow: visible; white-space: normal; }
  .group-case-row { grid-template-columns: 1fr; }
  .group-case-priority { display: flex; justify-content: flex-start; gap: 7px; min-height: 0; padding-bottom: 7px; border-right: 0; border-bottom: 1px solid #e1e8ea; }
  .group-case-priority b { font-size: 13px; }
  .group-case-response-editor,.group-case-response-result,.group-case-evidence { grid-column: 1; }
  .group-evidence-digest { grid-template-columns: 1fr; }
}



/* Teacher action brief V100 */
.teacher-action-brief {
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid #d8e3de;
  border-left: 4px solid var(--primary);
  border-radius: 8px;
  background: #f7fbf9;
}

.project-map-print-pack { display: none; }
.project-map-print-preview-dialog { width: min(1180px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 8px; box-shadow: 0 18px 50px rgba(25,39,32,.22); }
.project-map-print-preview-dialog::backdrop { background: rgba(20,31,26,.56); }
.project-map-print-preview-toolbar { position: sticky; top: 0; z-index: 2; padding: 12px 16px; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.project-map-print-preview-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.project-map-print-preview-toolbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.project-map-print-preview-canvas { padding: 20px; background: #e8ece9; overflow: auto; }
.project-map-print-preview-dialog .project-map-print-pack { display: grid; width: 1123px; height: 794px; margin: 0 auto; }
.project-map-print-pack { box-sizing: border-box; grid-template-rows: auto minmax(0,1fr) auto; gap: 10px; padding: 24px 28px 18px; overflow: hidden; color: #17211c; background: #fff; font-family: "Microsoft YaHei", sans-serif; }
.project-map-print-pack * { box-sizing: border-box; letter-spacing: 0; }
.project-map-print-pack h1, .project-map-print-pack h2, .project-map-print-pack h3, .project-map-print-pack p { margin: 0; }
.project-map-print-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 9px; border-bottom: 2px solid #1f6048; }
.project-map-print-header span { color: #1f6048; font-size: 10px; font-weight: 800; }
.project-map-print-header h1 { margin: 3px 0; font-size: 24px; }
.project-map-print-header p { color: #526158; font-size: 11px; }
.project-map-print-header > strong { padding: 6px 9px; border: 1px solid #1f6048; color: #1f6048; font-size: 11px; white-space: nowrap; }
.project-map-print-pack > footer { display: flex; justify-content: space-between; gap: 18px; padding-top: 7px; border-top: 1px solid #aebbb4; color: #526158; font-size: 9px; }
.project-map-print-pack > footer strong { color: #1f6048; }
.project-map-print-pack.network { grid-template-rows: auto auto minmax(0,1fr) auto; }
.project-map-print-core { position: relative; z-index: 1; width: 52%; margin: 0 auto; padding: 9px 14px; border: 2px solid #1f6048; background: #edf6f1; text-align: center; }
.project-map-print-core::after { content: ""; position: absolute; left: 50%; bottom: -12px; width: 1px; height: 11px; background: #9db8aa; }
.project-map-print-core span { color: #1f6048; font-size: 9px; font-weight: 800; }
.project-map-print-core h2 { margin-top: 3px; font-size: 15px; }
.project-map-print-network { position: relative; min-height: 0; padding-top: 9px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); gap: 13px 9px; background: linear-gradient(#9db8aa,#9db8aa) 16.67% 0/1px 100% no-repeat, linear-gradient(#9db8aa,#9db8aa) 50% 0/1px 100% no-repeat, linear-gradient(#9db8aa,#9db8aa) 83.33% 0/1px 100% no-repeat; }
.project-map-print-network::before, .project-map-print-network::after { content: ""; position: absolute; left: 16.67%; right: 16.67%; height: 1px; background: #9db8aa; }
.project-map-print-network::before { top: 0; }
.project-map-print-network::after { top: calc(50% + 2px); }
.project-map-print-thread { min-width: 0; padding: 9px 10px; border: 1px solid #b8c6be; background: #fff; overflow: hidden; }
.project-map-print-thread.current { border: 2px solid #1f6048; background: #f1f8f4; padding: 8px 9px; }
.project-map-print-thread > header { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 7px; align-items: center; }
.project-map-print-thread > header > b { width: 25px; height: 25px; display: grid; place-items: center; color: #1f6048; background: #dcece4; font-size: 10px; }
.project-map-print-thread > header span { display: block; color: #1f6048; font-size: 8px; font-weight: 700; }
.project-map-print-thread > header h3 { margin-top: 1px; font-size: 13px; }
.project-map-print-thread > p { min-height: 32px; margin-top: 6px; color: #405048; font-size: 10px; line-height: 1.45; }
.project-map-print-thread > small { display: block; margin-top: 4px; padding-bottom: 5px; border-bottom: 1px solid #d6e0da; color: #526158; font-size: 8.5px; white-space: nowrap; overflow: hidden; }
.project-map-print-thread > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 7px; margin-top: 5px; }
.project-map-print-thread > div span { min-width: 0; color: #34463c; font-size: 8.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.project-map-print-thread > div b { margin-right: 3px; color: #1f6048; }
.project-map-print-pack.path { grid-template-rows: auto minmax(0,1fr) auto auto; }
.project-map-print-weeks { min-height: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.project-map-print-week { min-width: 0; display: grid; grid-template-rows: auto minmax(0,1fr); border: 1px solid #aebbb4; overflow: hidden; }
.project-map-print-week.current { border: 2px solid #1f6048; }
.project-map-print-week > header { min-height: 76px; padding: 8px 9px; background: #eef4f1; }
.project-map-print-week > header span { color: #1f6048; font-size: 9px; font-weight: 800; }
.project-map-print-week > header h3 { margin: 2px 0; font-size: 14px; }
.project-map-print-week > header p { color: #526158; font-size: 8.5px; line-height: 1.35; }
.project-map-print-week > div { min-height: 0; display: grid; grid-template-rows: repeat(5,minmax(0,1fr)); }
.project-map-print-day { min-height: 0; padding: 6px 7px; display: grid; grid-template-columns: 25px minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; gap: 2px 6px; border-top: 1px solid #d6e0da; overflow: hidden; }
.project-map-print-day > b { grid-row: 1 / span 2; width: 23px; height: 23px; display: grid; place-items: center; color: #1f6048; background: #dcece4; font-size: 8px; }
.project-map-print-day strong, .project-map-print-day small { display: block; min-width: 0; }
.project-map-print-day strong { font-size: 10.5px; }
.project-map-print-day small { margin-top: 2px; color: #526158; font-size: 8.25px; line-height: 1.3; }
.project-map-print-day em { grid-column: 2; color: #1f6048; font-size: 8px; font-style: normal; font-weight: 700; }
.project-map-print-day.current { background: #f1f8f4; }
.project-map-print-branches { min-height: 42px; display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 9px; align-items: stretch; }
.project-map-print-branches > strong { padding: 8px 10px; color: #1f6048; background: #edf4f0; font-size: 9px; }
.project-map-print-branches > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.project-map-print-branches span { min-width: 0; padding: 6px 8px; border: 1px solid #c4cec8; }
.project-map-print-branches b, .project-map-print-branches small { display: block; min-width: 0; }
.project-map-print-branches b { font-size: 8px; }
.project-map-print-branches small { margin-top: 2px; color: #526158; font-size: 7px; }

@media (max-width: 680px) {
  .project-map-print-preview-dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
  .project-map-print-preview-toolbar { align-items: stretch; flex-direction: column; }
  .project-map-print-preview-toolbar > div:last-child { display: grid; grid-template-columns: 36px 1fr 1fr; }
  .project-map-print-preview-toolbar button { min-width: 0; padding-inline: 7px; font-size: 9px; }
  .project-map-print-preview-canvas { padding: 8px; }
}

@media print {
  body.print-project-map { background: #fff; color: #17211c; }
  body.print-project-map > .app-shell,
  body.print-project-map > dialog,
  body.print-project-map > .toast,
  body.print-project-map > .teacher-print-pack { display: none !important; }
  body.print-project-map > .project-map-print-pack { display: grid !important; width: 281mm; height: 194mm; padding: 5mm 6mm 4mm; gap: 2.2mm; overflow: hidden; }
  body.print-project-map .project-map-print-header { padding-bottom: 2mm; }
  body.print-project-map .project-map-print-header h1 { font-size: 17pt; }
  body.print-project-map .project-map-print-header p { font-size: 7.5pt; }
  body.print-project-map .project-map-print-core { padding: 2mm 3mm; }
  body.print-project-map .project-map-print-network { gap: 2mm; }
  body.print-project-map .project-map-print-thread { padding: 2mm; break-inside: avoid; }
  body.print-project-map .project-map-print-thread > p { font-size: 7.5pt; }
  body.print-project-map .project-map-print-thread > small, body.print-project-map .project-map-print-thread > div span { font-size: 6.5pt; }
  body.print-project-map .project-map-print-weeks { gap: 2mm; }
  body.print-project-map .project-map-print-week { break-inside: avoid; }
  body.print-project-map .project-map-print-day { break-inside: avoid; }
  body.print-project-map .project-map-print-week > header span { font-size: 7pt; }
  body.print-project-map .project-map-print-week > header h3 { font-size: 10pt; }
  body.print-project-map .project-map-print-week > header p { font-size: 6.5pt; }
  body.print-project-map .project-map-print-day strong { font-size: 8pt; }
  body.print-project-map .project-map-print-day small { font-size: 6.25pt; }
  body.print-project-map .project-map-print-day em { font-size: 6pt; }
}

.teacher-print-pack { display: none; }
.teacher-print-preview-dialog { width: min(1120px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 8px; box-shadow: 0 18px 50px rgba(25, 39, 32, .22); }
.teacher-print-preview-dialog::backdrop { background: rgba(20, 31, 26, .56); }
.teacher-print-preview-toolbar { position: sticky; top: 0; z-index: 2; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.teacher-print-preview-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.teacher-print-preview-toolbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.teacher-print-preview-canvas { padding: 20px; background: #e9eeeb; overflow: auto; }
.teacher-print-preview-dialog .teacher-print-pack { display: block; max-width: 900px; margin: 0 auto; padding: 30px; background: #fff; color: #17211c; box-shadow: 0 5px 20px rgba(36, 50, 43, .13); }
.teacher-print-preview-dialog .teacher-print-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 10px; border-bottom: 2px solid #17211c; }
.teacher-print-preview-dialog .teacher-print-header h1 { margin: 4px 0; font-size: 28px; }
.teacher-print-preview-dialog .teacher-print-header span, .teacher-print-preview-dialog .teacher-print-header p { color: #637168; font-size: 12px; }
.teacher-print-preview-dialog .teacher-print-header > strong { padding: 6px 9px; border: 1px solid #17211c; font-size: 12px; }
.teacher-print-preview-dialog .teacher-print-pack.blocked .teacher-print-header > strong { border-color: #9e2f2f; color: #9e2f2f; }
.teacher-print-preview-dialog .teacher-print-blocker { margin-top: 9px; padding: 8px; border: 1px solid #9e2f2f; display: flex; gap: 10px; }
.teacher-print-preview-dialog .teacher-print-intent { margin: 10px 0; padding: 9px; background: #edf3ef; display: grid; gap: 2px; }
.teacher-print-preview-dialog .teacher-print-intent span, .teacher-print-preview-dialog .teacher-print-stage span { color: #637168; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-age-support { margin: 10px 0; padding: 10px; border: 1px solid #b5c0b9; background: #f7faf8; }
.teacher-print-preview-dialog .teacher-print-age-support > div { display: grid; gap: 2px; margin-bottom: 7px; }
.teacher-print-preview-dialog .teacher-print-age-support > div span, .teacher-print-preview-dialog .teacher-print-age-support dt { color: #637168; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-age-support > div strong { font-size: 13px; }
.teacher-print-preview-dialog .teacher-print-age-support dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; }
.teacher-print-preview-dialog .teacher-print-age-support dl div { padding: 7px; background: #fff; }
.teacher-print-preview-dialog .teacher-print-age-support dd { margin: 3px 0 0; font-size: 12px; line-height: 1.5; }
.teacher-print-preview-dialog .teacher-print-age-support footer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 8px; color: #637168; font-size: 10px; line-height: 1.45; }
.teacher-print-preview-dialog .teacher-print-age-support footer span { display: flex; gap: 5px; align-items: flex-start; }
.teacher-print-preview-dialog .teacher-print-age-support footer svg { flex: 0 0 auto; width: 13px; height: 13px; }
.teacher-print-preview-dialog .teacher-print-pack h2 { margin: 0 0 7px; font-size: 14px; }
.teacher-print-preview-dialog .teacher-print-top-grid, .teacher-print-preview-dialog .teacher-print-bottom-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10px; margin-bottom: 10px; }
.teacher-print-preview-dialog .teacher-print-top-grid > section, .teacher-print-preview-dialog .teacher-print-bottom-grid > section { padding: 10px; border: 1px solid #b5c0b9; }
.teacher-print-preview-dialog .teacher-print-materials { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 12px; }
.teacher-print-preview-dialog .teacher-print-materials li { display: flex; justify-content: space-between; gap: 6px; border-bottom: 1px dotted #ccd4cf; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.teacher-print-preview-dialog .teacher-print-roles article { display: grid; gap: 3px; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-roles span, .teacher-print-preview-dialog .teacher-print-roles small { color: #637168; }
.teacher-print-preview-dialog .teacher-print-stages { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; margin-bottom: 10px; }
.teacher-print-preview-dialog .teacher-print-stage { border: 1px solid #8d9b92; }
.teacher-print-preview-dialog .teacher-print-stage header { padding: 7px 9px; background: #edf3ef; display: flex; align-items: center; gap: 7px; }
.teacher-print-preview-dialog .teacher-print-stage header > b { width: 22px; height: 22px; border: 1px solid #17211c; display: grid; place-items: center; }
.teacher-print-preview-dialog .teacher-print-stage header div { flex: 1; display: flex; justify-content: space-between; gap: 8px; }
.teacher-print-preview-dialog .teacher-print-stage > p, .teacher-print-preview-dialog .teacher-print-stage footer { margin: 0; padding: 6px 9px; border-top: 1px solid #d6ddd9; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-stage dl { margin: 0; padding: 6px 9px; display: grid; gap: 3px; }
.teacher-print-preview-dialog .teacher-print-stage dl div { display: grid; grid-template-columns: 34px 1fr; gap: 5px; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-stage dt { font-weight: 700; }
.teacher-print-preview-dialog .teacher-print-stage dd { margin: 0; }
.teacher-print-preview-dialog .teacher-print-safety { border-color: #9e2f2f !important; }
.teacher-print-preview-dialog .teacher-print-safety ul { margin: 0; padding-left: 18px; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-evidence { font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-development-goals { margin: 5px 0 0; padding: 0; display: grid; gap: 2px; list-style: none; }
.teacher-print-preview-dialog .teacher-print-development-goals li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 5px; border-top: 1px dotted #ccd4cf; padding-top: 3px; }
.teacher-print-preview-dialog .teacher-print-development-goals b { color: #27643e; }
.teacher-print-preview-dialog .teacher-print-development-source { display: block; margin-top: 4px; color: #637168; font-size: 9px; line-height: 1.4; }
.teacher-print-preview-dialog .teacher-print-development-blocked { color: #9e2f2f; }
.teacher-print-preview-dialog .teacher-print-boundary { padding-top: 8px; border-top: 2px solid #17211c; display: flex; justify-content: space-between; gap: 12px; font-size: 11px; }
.teacher-print-preview-dialog .teacher-print-boundary span { color: #637168; text-align: right; }

@media (max-width: 720px) {
  .teacher-print-preview-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .teacher-print-preview-canvas { padding: 10px; }
  .teacher-print-preview-dialog .teacher-print-pack { padding: 16px; }
  .teacher-print-preview-dialog .teacher-print-top-grid, .teacher-print-preview-dialog .teacher-print-bottom-grid, .teacher-print-preview-dialog .teacher-print-stages { grid-template-columns: 1fr; }
  .teacher-print-preview-dialog .teacher-print-roles { grid-template-columns: 1fr; }
}

@media print {
  @page { size: A4 portrait; margin: 9mm; }
  body.print-teacher-pack { background: #fff; color: #17211c; }
  body.print-teacher-pack > .app-shell,
  body.print-teacher-pack > dialog,
  body.print-teacher-pack > .toast { display: none !important; }
  body.print-teacher-pack > .teacher-print-pack { display: block !important; width: 100%; font-family: "Microsoft YaHei", sans-serif; }
  .teacher-print-pack * { box-sizing: border-box; }
  .teacher-print-pack h1, .teacher-print-pack h2, .teacher-print-pack p { margin: 0; }
  .teacher-print-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 2px solid #17211c; padding-bottom: 8px; }
  .teacher-print-header span, .teacher-print-header p { font-size: 9pt; color: #526158; }
  .teacher-print-header h1 { margin: 3px 0; font-size: 20pt; letter-spacing: 0; }
  .teacher-print-header > strong { border: 1px solid #17211c; padding: 5px 8px; font-size: 10pt; }
  .teacher-print-pack.blocked .teacher-print-header > strong { border-color: #9e2f2f; color: #9e2f2f; }
  .teacher-print-blocker { margin-top: 7px; padding: 6px 8px; border: 1px solid #9e2f2f; display: flex; gap: 10px; font-size: 9pt; }
  .teacher-print-intent { margin: 8px 0; padding: 7px 9px; background: #edf3ef; display: grid; gap: 2px; }
  .teacher-print-intent span { font-size: 8pt; color: #526158; }
  .teacher-print-intent strong { font-size: 10pt; }
  .teacher-print-age-support { margin: 8px 0; padding: 7px; border: 1px solid #aeb9b2; background: #f7faf8; }
  .teacher-print-age-support > div { display: grid; gap: 2px; margin-bottom: 5px; }
  .teacher-print-age-support > div span, .teacher-print-age-support dt { color: #526158; font-size: 8pt; }
  .teacher-print-age-support > div strong { font-size: 9pt; }
  .teacher-print-age-support dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin: 0; }
  .teacher-print-age-support dl div { padding: 5px; background: #fff; }
  .teacher-print-age-support dd { margin: 2px 0 0; font-size: 8pt; line-height: 1.4; }
  .teacher-print-age-support footer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-top: 5px; color: #526158; font-size: 7.5pt; line-height: 1.35; }
  .teacher-print-age-support footer span { display: flex; gap: 4px; align-items: flex-start; }
  .teacher-print-age-support footer svg { flex: 0 0 auto; width: 11px; height: 11px; }
  .teacher-print-pack h2 { margin-bottom: 5px; font-size: 10pt; }
  .teacher-print-top-grid, .teacher-print-bottom-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8px; margin-bottom: 8px; }
  .teacher-print-top-grid > section, .teacher-print-bottom-grid > section { border: 1px solid #aeb9b2; padding: 7px; }
  .teacher-print-materials { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3px 10px; margin: 0; padding: 0; list-style: none; }
  .teacher-print-materials li { display: flex; justify-content: space-between; gap: 5px; font-size: 8pt; border-bottom: 1px dotted #c9d0cc; }
  .teacher-print-materials span { color: #526158; }
  .teacher-print-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
  .teacher-print-roles article { display: grid; gap: 2px; }
  .teacher-print-roles span, .teacher-print-roles small { font-size: 7.5pt; color: #526158; }
  .teacher-print-roles strong { font-size: 8.5pt; }
  .teacher-print-stages { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; margin-bottom: 8px; }
  .teacher-print-stage { border: 1px solid #87958d; break-inside: avoid; }
  .teacher-print-stage header { display: flex; align-items: center; gap: 6px; padding: 5px 7px; background: #edf3ef; }
  .teacher-print-stage header > b { width: 20px; height: 20px; border: 1px solid #17211c; display: grid; place-items: center; }
  .teacher-print-stage header div { display: flex; justify-content: space-between; gap: 8px; flex: 1; }
  .teacher-print-stage header small { color: #526158; }
  .teacher-print-stage > p { padding: 5px 7px; font-size: 8.5pt; border-bottom: 1px solid #d5dcd8; }
  .teacher-print-stage > p span, .teacher-print-stage footer span { margin-right: 5px; color: #526158; font-size: 7.5pt; }
  .teacher-print-stage dl { margin: 0; padding: 4px 7px; display: grid; gap: 2px; }
  .teacher-print-stage dl div { display: grid; grid-template-columns: 28px 1fr; gap: 4px; font-size: 7.5pt; }
  .teacher-print-stage dt { font-weight: 700; }
  .teacher-print-stage dd { margin: 0; }
  .teacher-print-stage footer { padding: 4px 7px; border-top: 1px solid #d5dcd8; font-size: 7.5pt; }
  .teacher-print-safety { border-color: #9e2f2f !important; }
  .teacher-print-safety ul { margin: 0; padding-left: 16px; font-size: 8pt; }
  .teacher-print-evidence { display: grid; align-content: start; gap: 5px; font-size: 8pt; }
  .teacher-print-development-goals { margin: 2px 0 0; padding: 0; display: grid; gap: 1px; list-style: none; }
  .teacher-print-development-goals li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 4px; border-top: 1px dotted #c9d0cc; padding-top: 2px; font-size: 7pt; line-height: 1.3; }
  .teacher-print-development-goals b { color: #27643e; }
  .teacher-print-development-source { display: block; color: #526158; font-size: 6.5pt; line-height: 1.3; }
  .teacher-print-development-blocked { color: #9e2f2f; }
  .teacher-print-boundary { display: flex; justify-content: space-between; gap: 12px; border-top: 2px solid #17211c; padding-top: 6px; font-size: 8pt; }
  .teacher-print-boundary span { text-align: right; color: #526158; }
}
.teacher-action-brief.attention { border-left-color: #c68a22; background: #fffaf0; }
.teacher-action-brief.critical { border-color: #efd5cf; border-left-color: #bb4f3f; background: #fff8f6; }
.teacher-action-brief.active { border-color: #d4e1eb; border-left-color: #39749a; background: #f5f9fc; }
.teacher-action-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}
.teacher-action-heading > div { min-width: 0; }
.teacher-action-heading h2 {
  margin: 6px 0 7px;
  font-size: 21px;
  line-height: 1.35;
}
.teacher-action-heading p {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}
.teacher-action-button {
  flex: 0 0 auto;
  min-width: 168px;
  min-height: 42px;
  justify-content: center;
}
.teacher-action-milestones {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(55, 91, 77, .13);
  border-bottom: 1px solid rgba(55, 91, 77, .13);
}
.teacher-action-milestone {
  min-width: 0;
  padding: 13px 12px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.teacher-action-milestone + .teacher-action-milestone { border-left: 1px solid rgba(55, 91, 77, .13); }
.teacher-action-milestone > span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: #8a9892;
}
.teacher-action-milestone > span svg { width: 17px; height: 17px; }
.teacher-action-milestone.active > span { color: #b37513; }
.teacher-action-milestone.done > span { color: var(--primary); }
.teacher-action-milestone small,
.teacher-action-milestone strong { display: block; }
.teacher-action-milestone small { color: var(--muted); font-size: 11px; }
.teacher-action-milestone strong { margin-top: 2px; font-size: 13px; }
.teacher-action-essentials {
  padding-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.teacher-action-essential {
  min-width: 0;
  padding-left: 12px;
  border-left: 2px solid #cbd8d2;
}
.teacher-action-essential.critical { border-left-color: #bb4f3f; }
.teacher-action-essential.stable { border-left-color: var(--primary); }
.teacher-action-essential span,
.teacher-action-essential strong { display: block; }
.teacher-action-essential span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}
.teacher-action-essential strong {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.55;
}
.teacher-field-guide {
  margin-top: 16px;
  border-top: 1px solid rgba(55, 91, 77, .13);
  border-bottom: 1px solid rgba(55, 91, 77, .13);
}
.teacher-field-guide summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
}
.teacher-field-guide summary::-webkit-details-marker { display: none; }
.teacher-field-guide-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.teacher-field-guide-title > svg { width: 19px; height: 19px; color: var(--primary); flex: 0 0 auto; }
.teacher-field-guide-title strong,
.teacher-field-guide-title small { display: block; }
.teacher-field-guide-title strong { font-size: 13px; }
.teacher-field-guide-title small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.teacher-field-guide-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
  flex: 0 0 auto;
}
.teacher-field-guide-toggle svg { width: 15px; height: 15px; transition: transform .18s ease; }
.teacher-field-guide-toggle .when-open { display: none; }
.teacher-field-guide[open] .teacher-field-guide-toggle .when-closed { display: none; }
.teacher-field-guide[open] .teacher-field-guide-toggle .when-open { display: inline; }
.teacher-field-guide[open] .teacher-field-guide-toggle svg { transform: rotate(180deg); }
.teacher-field-guide-grid {
  padding: 3px 0 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}
.teacher-field-guide-item {
  min-width: 0;
  padding: 2px 14px;
  border-left: 2px solid #cbd8d2;
}
.teacher-field-guide-item.critical { border-left-color: #bb4f3f; }
.teacher-field-guide-item span,
.teacher-field-guide-item strong { display: block; }
.teacher-field-guide-item span { color: var(--muted); font-size: 11px; font-weight: 700; }
.teacher-field-guide-item strong { margin-top: 5px; font-size: 13px; line-height: 1.55; }
.teacher-field-guide > p {
  margin: -5px 0 14px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}
.teacher-field-guide > p svg { width: 14px; height: 14px; flex: 0 0 auto; }
.teacher-action-footer {
  margin-top: 15px;
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.teacher-action-footer svg { width: 15px; height: 15px; flex: 0 0 auto; }

@media (max-width: 720px) {
  .teacher-action-brief { padding: 18px 16px; }
  .teacher-action-heading { display: grid; grid-template-columns: 1fr; gap: 14px; }
  .teacher-action-heading h2 { font-size: 18px; }
  .teacher-action-button { width: 100%; min-width: 0; }
  .teacher-action-essentials { grid-template-columns: 1fr; gap: 12px; }
  .teacher-field-guide-grid { grid-template-columns: 1fr; gap: 12px; }
  .teacher-field-guide-item { padding: 0 0 0 12px; }
}

/* V110: default next-day handoff keeps the teacher on one bounded decision. */
.next-day-handoff-panel { position: relative; margin: 18px 0 0; padding: 16px 16px 12px 52px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; border: 1px solid #cfe1d6; border-left: 4px solid var(--primary); background: #f5faf7; }
.next-day-handoff-panel.active { border-color: #cfe1e7; border-left-color: var(--blue); background: #f4f9fb; }
.next-day-handoff-panel.attention { border-color: #eadfc4; border-left-color: #bb8424; background: #fffaf0; }
.next-day-handoff-panel.neutral { border-color: #dce3df; border-left-color: #78877f; background: #f8faf9; }
.next-day-handoff-icon { position: absolute; top: 18px; left: 16px; color: var(--primary); }
.next-day-handoff-panel.active .next-day-handoff-icon { color: var(--blue); }
.next-day-handoff-panel.attention .next-day-handoff-icon { color: #a66d15; }
.next-day-handoff-main { min-width: 0; }
.next-day-handoff-main h3 { margin: 4px 0 0; font-size: 16px; letter-spacing: 0; }
.next-day-handoff-main p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.next-day-handoff-meta { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 12px; color: #476357; font-size: 9px; font-weight: 700; }
.next-day-handoff-meta span { display: inline-flex; align-items: center; gap: 4px; }
.next-day-handoff-meta svg { width: 13px; height: 13px; }
.next-day-handoff-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.next-day-handoff-actions .primary-button,
.next-day-handoff-actions .secondary-button { white-space: nowrap; }
.next-day-handoff-panel > footer { grid-column: 1 / -1; padding-top: 9px; display: flex; align-items: flex-start; gap: 6px; border-top: 1px solid #dce8df; color: #5f7067; font-size: 8px; line-height: 1.5; }
.next-day-handoff-panel > footer svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.branch-choice-details { margin-top: 18px; border: 1px solid var(--line); background: #fff; }
.branch-choice-details > summary { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.branch-choice-details > summary::-webkit-details-marker { display: none; }
.branch-choice-details > summary h2 { margin: 4px 0 0; font-size: 15px; letter-spacing: 0; }
.branch-choice-details > summary .pill { display: inline-flex; align-items: center; gap: 5px; }
.branch-choice-details > summary .pill svg { width: 12px; height: 12px; transition: transform .18s ease; }
.branch-choice-details[open] > summary .pill svg { transform: rotate(180deg); }
.branch-choice-details > .panel-body { border-top: 1px solid var(--line); }

.next-day-board { margin-top: 18px; padding: 16px; border: 1px solid #dce4df; background: #fbfcfb; }
.next-day-board > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.next-day-board > header h3 { margin: 4px 0 0; font-size: 15px; letter-spacing: 0; }
.next-day-board-counts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.next-day-board-counts span { padding: 5px 7px; background: #edf3ef; color: #53675b; font-size: 8px; white-space: nowrap; }
.next-day-board-counts b { margin-right: 3px; color: var(--ink); font-size: 11px; }
.next-day-board-list { margin-top: 12px; border-top: 1px solid #e0e6e2; }
.next-day-board-row { min-width: 0; padding: 10px 0; display: grid; grid-template-columns: minmax(110px, .7fr) auto minmax(180px, 1.5fr) 30px; align-items: center; gap: 10px; border-bottom: 1px solid #e9eeeb; }
.next-day-board-row:last-child { border-bottom: 0; }
.next-day-board-class, .next-day-board-detail { min-width: 0; }
.next-day-board-class strong, .next-day-board-class small, .next-day-board-detail strong, .next-day-board-detail small { display: block; overflow-wrap: anywhere; }
.next-day-board-class strong { font-size: 10px; }
.next-day-board-class small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.next-day-board-class .next-day-board-course { color: #476357; }
.next-day-board-detail strong { font-size: 9px; }
.next-day-board-detail small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.next-day-board-row.ready { background: #f4f9fb; }
.next-day-board-row.awaiting-confirmation { background: #fffaf0; }
.next-day-board-row.target-locked { background: #fffaf0; }
.next-day-board-row .icon-button { width: 28px; min-width: 28px; height: 28px; padding: 0; }
.next-day-board-boundary { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #e0e6e2; color: var(--muted); font-size: 8px; line-height: 1.5; }

@media (max-width: 720px) {
  .next-day-handoff-panel { grid-template-columns: 1fr; padding: 15px 14px 11px 46px; }
  .next-day-handoff-actions { justify-content: flex-start; }
  .next-day-handoff-actions .primary-button,
  .next-day-handoff-actions .secondary-button { width: 100%; justify-content: center; }
  .next-day-handoff-panel > footer { margin-top: 2px; }
  .next-day-board > header { display: block; }
  .next-day-board-counts { margin-top: 10px; justify-content: flex-start; }
  .next-day-board-row { grid-template-columns: minmax(0, 1fr) auto 30px; gap: 7px; }
  .next-day-board-row .next-day-board-detail { grid-column: 1 / -1; grid-row: 2; padding-top: 4px; }
  .next-day-board-row .status-badge { grid-column: 2; grid-row: 1; }
  .next-day-board-row .icon-button { grid-column: 3; grid-row: 1; }
}
@media (max-width: 420px) {
  .teacher-action-brief { padding: 16px 14px; }
  .teacher-action-milestone { padding: 11px 5px; grid-template-columns: 1fr; gap: 2px; text-align: center; }
  .teacher-action-milestone + .teacher-action-milestone { border-left: 1px solid rgba(55, 91, 77, .13); }
  .teacher-action-milestone > span { margin: 0 auto; }
  .teacher-action-milestone strong { font-size: 12px; }
  .teacher-field-guide summary { align-items: flex-start; padding: 12px 0; }
  .teacher-field-guide-toggle { padding-top: 2px; }
}

/* V103: teacher-only full-screen execution surface. */
.focus-launch-band {
  margin-top: 18px;
  padding: 13px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #c9d8d1;
  border-left: 4px solid var(--primary);
  background: #f5faf7;
}
.focus-launch-band > div { min-width: 0; display: flex; align-items: center; gap: 10px; }
.focus-launch-band > div > svg { width: 19px; height: 19px; flex: 0 0 auto; color: var(--primary); }
.focus-launch-band strong,
.focus-launch-band small { display: block; }
.focus-launch-band strong { font-size: 13px; }
.focus-launch-band small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.focus-launch-band button { flex: 0 0 auto; }

.teacher-focus-mode {
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #f4f6f3;
  color: var(--ink);
}
.teacher-focus-topbar {
  position: sticky;
  top: 0;
  z-index: 3;
  min-height: 66px;
  padding: 10px max(24px, calc((100vw - 1060px) / 2));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 38px;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid #d8dfdb;
  background: rgba(255,255,255,.97);
}
.teacher-focus-topbar > div:first-child { min-width: 0; }
.teacher-focus-topbar span,
.teacher-focus-topbar strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-focus-topbar > div:first-child span { color: var(--muted); font-size: 10px; font-weight: 750; }
.teacher-focus-topbar > div:first-child strong { margin-top: 3px; font-size: 14px; }
.teacher-focus-save { display: flex; align-items: center; gap: 6px; color: var(--primary); font-size: 11px; font-weight: 750; }
.teacher-focus-save svg { width: 15px; height: 15px; }
.focus-icon-button {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 5px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--ink);
}
.focus-icon-button svg { width: 18px; height: 18px; }
.focus-icon-button:hover { border-color: var(--primary); color: var(--primary); }

.teacher-focus-content {
  width: min(100%, 1060px);
  min-height: calc(100dvh - 136px);
  margin: 0 auto;
  padding: 28px 24px 40px;
}
.focus-stage-summary { padding-bottom: 20px; border-bottom: 1px solid #d8dfdb; }
.focus-step-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--primary); font-size: 11px; font-weight: 800; }
.focus-step-meta > strong { display: inline-flex; align-items: center; gap: 5px; color: var(--blue); }
.focus-step-meta svg { width: 15px; height: 15px; }
.focus-step-markers { height: 4px; margin-top: 10px; display: grid; grid-template-columns: repeat(4, minmax(28px, 1fr)); gap: 5px; }
.focus-step-markers span { min-width: 0; background: #d8dfdb; }
.focus-step-markers span.done { background: #91b4a3; }
.focus-step-markers span.active { background: var(--primary); }
.focus-stage-summary h1 { margin: 18px 0 0; font-size: 27px; line-height: 1.25; letter-spacing: 0; }
.focus-stage-summary p { max-width: 820px; margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.focus-timer-card {
  margin-top: 18px;
  padding: 15px 17px;
  border: 1px solid #d8dfdb;
  border-left: 4px solid var(--primary);
  background: #fff;
}
.focus-timer-card[data-timer-status="nearlyDone"] { border-left-color: var(--gold); background: #fffaf0; }
.focus-timer-card[data-timer-status="overtime"] { border-left-color: #b34b3d; background: #fff5f3; }
.focus-timer-card[data-timer-status="paused"] { border-left-color: var(--blue); background: #f4f8fb; }
.focus-timer-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.focus-timer-heading small { display: block; color: var(--muted); font-size: 10px; font-weight: 750; }
.focus-timer-heading h2 { margin: 4px 0 0; font-size: 17px; letter-spacing: 0; }
.focus-timer-actions { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.focus-timer-actions button { min-height: 34px; padding: 7px 10px; gap: 5px; font-size: 11px; white-space: nowrap; }
.focus-timer-actions button svg { width: 14px; height: 14px; }
.focus-timer-meter { height: 7px; margin-top: 13px; overflow: hidden; background: #dde6e1; }
.focus-timer-meter span { display: block; height: 100%; max-width: 100%; background: var(--primary); transition: width .25s ease; }
.focus-timer-card[data-timer-status="nearlyDone"] .focus-timer-meter span { background: var(--gold); }
.focus-timer-card[data-timer-status="overtime"] .focus-timer-meter span { background: #b34b3d; }
.focus-timer-card[data-timer-status="paused"] .focus-timer-meter span { background: var(--blue); }
.focus-timer-meta { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.focus-timer-meta span { min-width: 0; display: block; }
.focus-timer-meta b,
.focus-timer-meta small { display: block; }
.focus-timer-meta b { font-size: 15px; line-height: 1.3; }
.focus-timer-meta small { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 750; }
.focus-timer-card > p { margin: 11px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.focus-script { margin-top: 18px; padding: 18px 20px; border-left: 4px solid var(--blue); background: #eaf2f6; }
.focus-script > span { display: flex; align-items: center; gap: 7px; color: var(--blue); font-size: 11px; font-weight: 800; }
.focus-script > span svg { width: 16px; height: 16px; }
.focus-script blockquote { margin: 9px 0 0; font-size: 20px; font-weight: 750; line-height: 1.55; letter-spacing: 0; }

.focus-response,
.focus-role-action { padding: 24px 0; border-bottom: 1px solid #d8dfdb; }
.focus-section-heading,
.focus-role-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.focus-section-heading small,
.focus-role-heading small { display: block; color: var(--muted); font-size: 10px; font-weight: 750; }
.focus-section-heading h2,
.focus-role-heading h2 { margin: 4px 0 0; font-size: 17px; letter-spacing: 0; }
.focus-section-heading > span { padding: 4px 7px; background: var(--mint-soft); color: var(--primary); font-size: 10px; font-weight: 750; white-space: nowrap; }
.focus-response-choices { margin-top: 13px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.focus-response-choice {
  min-width: 0;
  min-height: 82px;
  padding: 11px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  border: 1px solid #ccd7d2;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}
.focus-response-choice > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-soft); color: var(--primary); font-size: 11px; font-weight: 800; }
.focus-response-choice strong,
.focus-response-choice small { display: block; overflow-wrap: anywhere; }
.focus-response-choice strong { font-size: 12px; line-height: 1.4; }
.focus-response-choice small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.focus-response-choice.active { border-color: var(--primary); background: #f4faf6; box-shadow: inset 0 0 0 1px var(--primary); }
.focus-response-choice.active > span { background: var(--primary); color: #fff; }

.focus-role-selector { display: grid; grid-template-columns: repeat(3, 78px); gap: 6px; }
.focus-role-button { min-height: 36px; padding: 6px 9px; display: flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid #ccd7d2; border-radius: 5px; background: #fff; color: var(--muted); font-size: 11px; font-weight: 750; }
.focus-role-button svg { width: 15px; height: 15px; }
.focus-role-button.active { border-color: var(--primary); background: var(--mint-soft); color: var(--primary); }
.focus-primary-duty { margin-top: 15px; padding: 12px 14px; display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 3px solid var(--primary); background: #fff; }
.focus-primary-duty span { color: var(--primary); font-size: 10px; font-weight: 800; }
.focus-primary-duty strong { font-size: 13px; line-height: 1.55; }
.focus-action-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.focus-action-grid article { min-width: 0; padding-right: 18px; }
.focus-action-grid article + article { padding-left: 18px; border-left: 1px solid #d8dfdb; }
.focus-action-grid span,
.focus-action-grid strong { display: block; }
.focus-action-grid span { color: var(--muted); font-size: 10px; font-weight: 750; }
.focus-action-grid strong { margin-top: 6px; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.focus-handoff { margin: 15px 0 0; padding-top: 13px; display: flex; align-items: flex-start; gap: 8px; border-top: 1px solid #d8dfdb; color: var(--muted); font-size: 11px; line-height: 1.55; }
.focus-handoff svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }

.focus-safety-guidance { margin-top: 18px; padding: 15px 18px; border-left: 4px solid #b34b3d; background: #fff3ef; }
.focus-safety-guidance > div { display: grid; grid-template-columns: 34px minmax(0, 1fr) 38px; align-items: center; gap: 10px; }
.focus-safety-guidance > div > span { width: 34px; height: 34px; display: grid; place-items: center; background: #b34b3d; color: #fff; }
.focus-safety-guidance > div > span svg { width: 18px; height: 18px; }
.focus-safety-guidance small { color: #9a352f; font-size: 10px; font-weight: 800; }
.focus-safety-guidance h3 { margin: 3px 0 0; font-size: 16px; }
.focus-safety-guidance p { margin: 10px 0 0; font-size: 12px; line-height: 1.6; }

.teacher-focus-controls {
  position: sticky;
  bottom: 0;
  z-index: 3;
  min-height: 70px;
  padding: 11px max(24px, calc((100vw - 1060px) / 2));
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(150px, 1fr) minmax(120px, 1fr);
  gap: 10px;
  border-top: 1px solid #d3dcd7;
  background: rgba(255,255,255,.98);
  box-shadow: 0 -6px 18px rgba(26,55,45,.07);
}
.teacher-focus-controls button { min-width: 0; min-height: 46px; justify-content: center; }
.teacher-focus-controls button:disabled { opacity: .42; cursor: default; }
.focus-pause-button { background: #fff8f6; }
.teacher-focus-blocked { width: min(calc(100% - 32px), 620px); min-height: calc(100dvh - 66px); margin: 0 auto; display: grid; align-content: center; justify-items: center; text-align: center; }
.teacher-focus-blocked > span { width: 58px; height: 58px; display: grid; place-items: center; background: #b34b3d; color: #fff; }
.teacher-focus-blocked > span svg { width: 28px; height: 28px; }
.teacher-focus-blocked > small { margin-top: 18px; color: #9a352f; font-size: 11px; font-weight: 800; }
.teacher-focus-blocked h2 { margin: 6px 0 0; font-size: 23px; letter-spacing: 0; }
.teacher-focus-blocked p { margin: 10px 0 20px; color: var(--muted); font-size: 13px; line-height: 1.65; }

@media (max-width: 720px) {
  .focus-launch-band { align-items: stretch; flex-direction: column; }
  .focus-launch-band button { width: 100%; justify-content: center; }
  .teacher-focus-topbar { min-height: 60px; padding: 8px 12px; grid-template-columns: minmax(0, 1fr) 38px; gap: 8px; }
  .teacher-focus-save { display: none; }
  .teacher-focus-content { min-height: calc(100dvh - 128px); padding: 20px 14px 28px; }
  .focus-stage-summary h1 { font-size: 22px; }
  .focus-timer-card { padding: 14px; }
  .focus-timer-heading { display: grid; }
  .focus-timer-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-timer-actions button { width: 100%; justify-content: center; }
  .focus-timer-meta { grid-template-columns: 1fr 1fr; gap: 8px; }
  .focus-script { padding: 15px 16px; }
  .focus-script blockquote { font-size: 17px; }
  .focus-response-choices,
  .focus-action-grid { grid-template-columns: 1fr; }
  .focus-response-choice { min-height: 0; }
  .focus-role-heading { display: grid; }
  .focus-role-selector { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .focus-primary-duty { grid-template-columns: 1fr; gap: 4px; }
  .focus-action-grid { gap: 12px; }
  .focus-action-grid article { padding-right: 0; }
  .focus-action-grid article + article { padding: 12px 0 0; border-top: 1px solid #d8dfdb; border-left: 0; }
  .teacher-focus-controls { min-height: 68px; padding: 9px 10px calc(9px + env(safe-area-inset-bottom)); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .teacher-focus-controls button { min-height: 44px; padding: 7px 5px; gap: 4px; font-size: 11px; }
  .teacher-focus-controls button svg { width: 15px; height: 15px; }
  .focus-safety-guidance { padding: 14px; }
}

@media (max-width: 380px) {
  .teacher-focus-controls button span { font-size: 10px; }
  .focus-role-button { padding: 6px 4px; }
}

/* V105: the focus-mode activity closeout keeps evidence, debrief, and confirmation in one work surface. */
.focus-closure-content { padding-bottom: 38px; }
.focus-closure-heading { padding-bottom: 20px; display: flex; align-items: flex-start; gap: 13px; border-bottom: 1px solid #d8dfdb; }
.focus-closure-heading > span { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; background: var(--mint-soft); color: var(--primary); }
.focus-closure-heading > span svg { width: 20px; height: 20px; }
.focus-closure-heading small { display: block; color: var(--primary); font-size: 10px; font-weight: 800; }
.focus-closure-heading h1 { margin: 4px 0 0; font-size: 27px; letter-spacing: 0; }
.focus-closure-heading p { max-width: 740px; margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.focus-closure-facts { margin-top: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #d8dfdb; background: #fff; }
.focus-closure-facts article { min-width: 0; padding: 14px 16px; }
.focus-closure-facts article + article { border-left: 1px solid #d8dfdb; }
.focus-closure-facts strong,
.focus-closure-facts span { display: block; overflow-wrap: anywhere; }
.focus-closure-facts strong { color: var(--primary); font-size: 18px; line-height: 1.25; }
.focus-closure-facts span { margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 750; line-height: 1.45; }
.focus-closure-action { margin-top: 18px; padding: 17px 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-left: 4px solid var(--blue); background: #eaf2f6; }
.focus-closure-action > div { min-width: 0; }
.focus-closure-action small { display: block; color: var(--blue); font-size: 10px; font-weight: 800; }
.focus-closure-action h2 { margin: 4px 0 0; font-size: 17px; letter-spacing: 0; }
.focus-closure-action p { margin: 5px 0 0; color: #536862; font-size: 12px; line-height: 1.55; }
.focus-closure-action button { flex: 0 0 auto; min-height: 42px; }
.focus-closure-evidence-prompt,
.focus-closure-debrief { margin-top: 18px; padding: 20px; border: 1px solid #d8dfdb; background: #fff; }
.focus-closure-evidence-prompt > div:first-child { display: flex; align-items: flex-start; gap: 12px; }
.focus-closure-evidence-prompt > div:first-child > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; background: var(--mint-soft); color: var(--primary); }
.focus-closure-evidence-prompt > div:first-child > span svg { width: 17px; height: 17px; }
.focus-closure-evidence-prompt small { display: block; color: var(--primary); font-size: 10px; font-weight: 800; }
.focus-closure-evidence-prompt h2 { margin: 3px 0 0; font-size: 18px; letter-spacing: 0; }
.focus-closure-evidence-prompt p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.focus-closure-evidence-prompt ol { margin: 17px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; list-style: none; }
.focus-closure-evidence-prompt li { min-width: 0; padding: 12px; display: flex; align-items: flex-start; gap: 9px; background: #f5faf7; color: var(--ink); font-size: 12px; line-height: 1.55; }
.focus-closure-evidence-prompt li > span { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--primary); color: #fff; font-size: 10px; font-weight: 800; }
.focus-closure-boundary { padding-top: 14px; display: flex; align-items: flex-start; gap: 7px; border-top: 1px solid #d8dfdb; }
.focus-closure-boundary svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }
.focus-closure-debrief-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.focus-closure-debrief-heading small { display: block; color: var(--primary); font-size: 10px; font-weight: 800; }
.focus-closure-debrief-heading h2 { margin: 4px 0 0; font-size: 18px; letter-spacing: 0; }
.focus-closure-status { padding: 5px 8px; flex: 0 0 auto; font-size: 10px; font-weight: 800; }
.focus-closure-status.ready { background: #fff2c9; color: #775b13; }
.focus-closure-status.confirmed { background: #dff0e4; color: #27643e; }
.focus-closure-status.needs-evidence { background: #fde4df; color: #9b3d31; }
.focus-closure-summary { margin: 12px 0 0; padding: 11px 13px; border-left: 3px solid var(--primary); background: #f5faf7; color: #40534b; font-size: 12px; line-height: 1.6; }
.focus-closure-evidence,
.focus-closure-next { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid #e0e5e2; }
.focus-closure-evidence section,
.focus-closure-next section { min-width: 0; padding: 15px; }
.focus-closure-evidence section + section,
.focus-closure-next section + section { border-left: 1px solid #e0e5e2; }
.focus-closure-evidence span,
.focus-closure-next span { display: block; color: var(--muted); font-size: 10px; font-weight: 800; }
.focus-closure-evidence blockquote { margin: 8px 0 0; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.6; }
.focus-closure-evidence p,
.focus-closure-next p { margin: 8px 0 0; color: #40534b; font-size: 12px; line-height: 1.6; }
.focus-closure-next strong { display: block; margin-top: 7px; font-size: 14px; line-height: 1.5; }
.focus-closure-tag { display: inline-block !important; margin: 9px 5px 0 0; padding: 3px 6px; background: var(--mint-soft); color: var(--primary) !important; font-size: 10px !important; }
.focus-closure-handoff { margin: 8px 0 0; padding-left: 17px; color: #40534b; font-size: 12px; line-height: 1.6; }
.focus-closure-handoff li + li { margin-top: 5px; }
.focus-closure-audit { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 7px; }
.focus-closure-audit span { padding: 5px 7px; display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 750; }
.focus-closure-audit span svg { width: 13px; height: 13px; }
.focus-closure-audit .passed { background: #e5f2e8; color: #27643e; }
.focus-closure-audit .blocked { background: #fde8e3; color: #9b3d31; }

@media (max-width: 720px) {
  .focus-closure-heading h1 { font-size: 22px; }
  .focus-closure-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-closure-facts article:nth-child(3) { border-left: 0; border-top: 1px solid #d8dfdb; }
  .focus-closure-facts article:nth-child(4) { border-top: 1px solid #d8dfdb; }
  .focus-closure-action { display: grid; }
  .focus-closure-action button { width: 100%; justify-content: center; }
  .focus-closure-evidence-prompt,
  .focus-closure-debrief { padding: 16px; }
  .focus-closure-evidence-prompt ol,
  .focus-closure-evidence,
  .focus-closure-next { grid-template-columns: 1fr; }
  .focus-closure-evidence section + section,
  .focus-closure-next section + section { border-top: 1px solid #e0e5e2; border-left: 0; }
}

/* V106: one-at-a-time preflight confirmation before the teacher can enter focus mode. */
.preflight-focus-content { padding-bottom: 38px; }
.preflight-focus-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.preflight-focus-heading small { display: block; color: var(--primary); font-size: 10px; font-weight: 800; }
.preflight-focus-heading h1 { margin: 4px 0 0; font-size: 27px; letter-spacing: 0; }
.preflight-focus-heading p { max-width: 700px; margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.preflight-focus-heading > strong { color: var(--primary); font-size: 25px; line-height: 1; flex: 0 0 auto; }
.preflight-focus-meter { height: 7px; margin-top: 17px; overflow: hidden; background: #dce5e0; }
.preflight-focus-meter span { display: block; height: 100%; max-width: 100%; background: var(--primary); transition: width .2s ease; }
.preflight-focus-categories { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #d8dfdb; background: #fff; }
.preflight-focus-category { min-width: 0; padding: 11px 13px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 8px; }
.preflight-focus-category + .preflight-focus-category { border-left: 1px solid #d8dfdb; }
.preflight-focus-category > span { color: #9caaa3; }
.preflight-focus-category.done > span { color: var(--primary); }
.preflight-focus-category svg { width: 17px; height: 17px; }
.preflight-focus-category strong,
.preflight-focus-category small { display: block; }
.preflight-focus-category strong { font-size: 12px; }
.preflight-focus-category small { margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 750; }
.preflight-focus-gate-note { margin-top: 16px; padding: 13px 15px; display: flex; align-items: flex-start; gap: 9px; border-left: 4px solid var(--gold); background: #fff8e8; }
.preflight-focus-gate-note > svg { width: 18px; height: 18px; flex: 0 0 auto; color: #826516; }
.preflight-focus-gate-note strong { display: block; font-size: 12px; }
.preflight-focus-gate-note p { margin: 4px 0 0; color: #5b5542; font-size: 11px; line-height: 1.55; }
.preflight-focus-gate-note small { display: block; margin-top: 4px; color: #786f53; font-size: 10px; line-height: 1.5; }
.preflight-focus-current,
.preflight-focus-ready { margin-top: 18px; padding: 28px; min-height: 260px; display: grid; align-content: center; justify-items: center; border: 1px solid #d6dfda; background: #fff; text-align: center; }
.preflight-focus-current-icon,
.preflight-focus-ready > span { width: 54px; height: 54px; display: grid; place-items: center; background: var(--mint-soft); color: var(--primary); }
.preflight-focus-current-icon svg,
.preflight-focus-ready > span svg { width: 26px; height: 26px; }
.preflight-focus-current small,
.preflight-focus-ready small { display: block; margin-top: 15px; color: var(--primary); font-size: 10px; font-weight: 800; }
.preflight-focus-current h1,
.preflight-focus-ready h1 { max-width: 740px; margin: 6px 0 0; font-size: 24px; line-height: 1.35; letter-spacing: 0; overflow-wrap: anywhere; }
.preflight-focus-current p,
.preflight-focus-ready p { max-width: 680px; margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.preflight-focus-current > div > b { display: inline-block; margin-top: 12px; padding: 5px 8px; background: #e9f3ed; color: var(--primary); font-size: 10px; }
.preflight-focus-current.blocked { border-color: #e6bdb4; background: #fff7f5; }
.preflight-focus-current.blocked .preflight-focus-current-icon { background: #f5dcd6; color: #9b3d31; }
.preflight-focus-current.blocked small { color: #9b3d31; }
.preflight-focus-boundary { max-width: 760px; margin-top: 20px; padding-top: 15px; display: flex; align-items: flex-start; gap: 7px; border-top: 1px solid #d8dfdb; color: var(--muted); font-size: 10px; line-height: 1.55; }
.preflight-focus-boundary svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }
.preflight-focus-all { margin-top: 16px; border-top: 1px solid #d8dfdb; border-bottom: 1px solid #d8dfdb; background: #fff; }
.preflight-focus-all summary { min-height: 58px; padding: 0 14px; display: grid; grid-template-columns: 22px minmax(0, 1fr) 18px; align-items: center; gap: 9px; cursor: pointer; list-style: none; }
.preflight-focus-all summary::-webkit-details-marker { display: none; }
.preflight-focus-all summary > svg { width: 17px; height: 17px; color: var(--primary); }
.preflight-focus-all summary > svg:last-child { color: var(--muted); transition: transform .18s ease; }
.preflight-focus-all[open] summary > svg:last-child { transform: rotate(180deg); }
.preflight-focus-all summary strong,
.preflight-focus-all summary small { display: block; }
.preflight-focus-all summary strong { font-size: 12px; }
.preflight-focus-all summary small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.preflight-focus-all ol { margin: 0; padding: 0 14px 14px; list-style: none; }
.preflight-focus-all li { min-width: 0; min-height: 48px; padding: 8px 0; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; border-top: 1px solid #edf0ee; }
.preflight-focus-all li > span { color: #a3afa9; }
.preflight-focus-all li.done > span { color: var(--primary); }
.preflight-focus-all li.blocked > span { color: #9b3d31; }
.preflight-focus-all li svg { width: 16px; height: 16px; }
.preflight-focus-all li strong,
.preflight-focus-all li small { display: block; overflow-wrap: anywhere; }
.preflight-focus-all li strong { font-size: 11px; line-height: 1.45; }
.preflight-focus-all li small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.preflight-focus-all li > b { color: var(--muted); font-size: 9px; }
.preflight-focus-all li.current > b,
.preflight-focus-all li.current > span { color: var(--blue); }
.preflight-focus-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 720px) {
  .preflight-focus-heading { align-items: flex-start; }
  .preflight-focus-heading h1 { font-size: 21px; }
  .preflight-focus-heading > strong { font-size: 20px; }
  .preflight-focus-categories { grid-template-columns: 1fr; }
  .preflight-focus-category + .preflight-focus-category { border-top: 1px solid #d8dfdb; border-left: 0; }
  .preflight-focus-current,
  .preflight-focus-ready { min-height: 250px; padding: 24px 17px; }
  .preflight-focus-current h1,
  .preflight-focus-ready h1 { font-size: 20px; }
  .preflight-focus-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* V108: resumable evidence capture with deterministic quality boundaries. */
.focus-evidence-content { padding-bottom: 38px; }
.focus-evidence-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.focus-evidence-heading small { display: block; color: var(--primary); font-size: 10px; font-weight: 800; }
.focus-evidence-heading h1 { max-width: 780px; margin: 5px 0 0; font-size: 27px; line-height: 1.3; letter-spacing: 0; }
.focus-evidence-heading p { max-width: 720px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.focus-evidence-heading > strong { color: var(--primary); font-size: 22px; line-height: 1; flex: 0 0 auto; }
.focus-evidence-markers { height: 5px; margin-top: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.focus-evidence-markers span { background: #d8e1dc; }
.focus-evidence-markers span.done { background: #8eb09f; }
.focus-evidence-markers span.active { background: var(--primary); }
.focus-development-evidence-cue { margin-top: 16px; padding: 15px; border: 1px solid #cddbd3; background: #f3f8f5; }
.focus-development-evidence-cue > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.focus-development-evidence-cue > header small,
.focus-development-evidence-cue > header strong { display: block; }
.focus-development-evidence-cue > header small { color: var(--primary); font-size: 9px; font-weight: 800; }
.focus-development-evidence-cue > header strong { margin-top: 3px; font-size: 13px; }
.focus-development-evidence-cue > header > span { padding: 4px 7px; background: #dcece2; color: var(--primary); font-size: 9px; font-weight: 800; }
.focus-development-evidence-cue > p { margin: 9px 0 0; color: #40574a; font-size: 10px; line-height: 1.5; }
.focus-development-evidence-cue > ul { margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d5dfda; list-style: none; }
.focus-development-evidence-cue li { min-width: 0; padding: 9px 10px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 7px; background: #fff; }
.focus-development-evidence-cue li b { color: var(--primary); font-size: 9px; }
.focus-development-evidence-cue li span { font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.focus-development-evidence-cue > footer { margin-top: 9px; display: flex; align-items: flex-start; gap: 6px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.focus-development-evidence-cue > footer svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--primary); }
.focus-evidence-field { margin-top: 20px; padding: 26px; border: 1px solid #d6dfda; background: #fff; }
.focus-evidence-field > label { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font-size: 13px; font-weight: 800; }
.focus-evidence-field > label b { padding: 4px 7px; background: #e5f2e8; color: var(--primary); font-size: 9px; }
.focus-evidence-field > label b.optional { background: #edf1ef; color: var(--muted); }
.focus-evidence-field > input,
.focus-evidence-field > textarea { width: 100%; margin-top: 13px; padding: 15px 16px; border: 1px solid #b9cac1; border-radius: 5px; outline: 0; background: #fbfdfc; color: var(--ink); font: inherit; font-size: 17px; line-height: 1.65; letter-spacing: 0; }
.focus-evidence-field > input { min-height: 56px; }
.focus-evidence-field > textarea { min-height: 160px; resize: vertical; }
.focus-evidence-field > input:focus,
.focus-evidence-field > textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(39,100,62,.1); }
.focus-evidence-field > div { margin-top: 12px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.focus-evidence-field > div > span { max-width: 760px; display: flex; align-items: flex-start; gap: 7px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.focus-evidence-field > div > span svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }
.focus-evidence-field > div > small { color: var(--muted); font-size: 10px; white-space: nowrap; }
.focus-evidence-field > .focus-evidence-quality { margin-top: 16px; padding: 13px 15px; border: 1px solid #c8d8cf; border-left: 4px solid var(--primary); background: #f2f8f4; }
.focus-evidence-field > .focus-evidence-quality.blocked { border-color: #e5c4bd; border-left-color: #a84535; background: #fff6f3; }
.focus-evidence-quality > div { display: flex; align-items: center; gap: 8px; }
.focus-evidence-quality > div > span { display: flex; color: var(--primary); }
.focus-evidence-quality.blocked > div > span { color: #a84535; }
.focus-evidence-quality svg { width: 16px; height: 16px; }
.focus-evidence-quality > div > strong { font-size: 11px; }
.focus-evidence-quality > p { margin: 7px 0 0 24px; color: #4e6657; font-size: 10px; line-height: 1.55; }
.focus-evidence-quality ul { margin: 8px 0 0 24px; padding: 0; list-style: none; }
.focus-evidence-quality li + li { margin-top: 8px; }
.focus-evidence-quality li strong,
.focus-evidence-quality li span { display: block; overflow-wrap: anywhere; }
.focus-evidence-quality li strong { color: #842f25; font-size: 10px; line-height: 1.5; }
.focus-evidence-quality li span { margin-top: 2px; color: #73544f; font-size: 9px; line-height: 1.55; }
.focus-evidence-completed { margin-top: 16px; border-top: 1px solid #d8dfdb; border-bottom: 1px solid #d8dfdb; background: #fff; }
.focus-evidence-completed summary { min-height: 58px; padding: 0 14px; display: grid; grid-template-columns: 22px minmax(0, 1fr) 18px; align-items: center; gap: 9px; cursor: pointer; list-style: none; }
.focus-evidence-completed summary::-webkit-details-marker { display: none; }
.focus-evidence-completed summary > svg { width: 17px; height: 17px; color: var(--primary); }
.focus-evidence-completed summary > svg:last-child { color: var(--muted); transition: transform .18s ease; }
.focus-evidence-completed[open] summary > svg:last-child { transform: rotate(180deg); }
.focus-evidence-completed summary strong,
.focus-evidence-completed summary small { display: block; }
.focus-evidence-completed summary strong { font-size: 12px; }
.focus-evidence-completed summary small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.focus-evidence-completed ul { margin: 0; padding: 0 14px 14px; list-style: none; }
.focus-evidence-completed li { min-width: 0; padding: 10px 0; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; border-top: 1px solid #edf0ee; }
.focus-evidence-completed li > span { color: var(--primary); }
.focus-evidence-completed li svg { width: 15px; height: 15px; }
.focus-evidence-completed li small,
.focus-evidence-completed li strong { display: block; overflow-wrap: anywhere; }
.focus-evidence-completed li small { color: var(--muted); font-size: 9px; font-weight: 750; }
.focus-evidence-completed li strong { margin-top: 3px; font-size: 11px; line-height: 1.55; }
.focus-evidence-summary { margin-top: 16px; padding: 18px; border-left: 4px solid var(--blue); background: #edf5f8; }
.focus-evidence-summary > div > small { display: block; color: var(--blue); font-size: 10px; font-weight: 800; }
.focus-evidence-summary > div > h2 { margin: 4px 0 0; font-size: 16px; letter-spacing: 0; }
.focus-evidence-summary dl { margin: 14px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d6e2e6; }
.focus-evidence-summary dl > div { min-width: 0; padding: 11px 13px; background: #fff; }
.focus-evidence-summary dt { color: var(--muted); font-size: 9px; font-weight: 800; }
.focus-evidence-summary dd { margin: 5px 0 0; color: var(--ink); font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.focus-evidence-summary > [data-focus-evidence-signals] > p { margin: 12px 0 0; display: flex; align-items: flex-start; gap: 7px; color: #4d666d; font-size: 10px; line-height: 1.5; }
.focus-evidence-summary > [data-focus-evidence-signals] > p svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--blue); }
.focus-evidence-review { margin-top: 16px; padding-top: 15px; border-top: 1px solid #cbdde2; }
.focus-evidence-review > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.focus-evidence-review > header small,
.focus-evidence-review > header strong { display: block; }
.focus-evidence-review > header small { color: var(--blue); font-size: 9px; font-weight: 800; }
.focus-evidence-review > header strong { margin-top: 3px; font-size: 13px; }
.focus-evidence-review > header b { padding: 5px 8px; background: #e0f0e5; color: var(--primary); font-size: 9px; white-space: nowrap; }
.focus-evidence-review.blocked > header b { background: #f8ddd7; color: #8e3328; }
.focus-evidence-review > ul { margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d6e2e6; list-style: none; }
.focus-evidence-review > ul > li { min-width: 0; padding: 11px 12px; display: grid; grid-template-columns: 19px minmax(0, 1fr); gap: 8px; background: #fff; }
.focus-evidence-review > ul > li > span { color: var(--primary); }
.focus-evidence-review > ul > li.blocked > span { color: #a84535; }
.focus-evidence-review > ul svg { width: 15px; height: 15px; }
.focus-evidence-review > ul strong,
.focus-evidence-review > ul p,
.focus-evidence-review > ul small { display: block; overflow-wrap: anywhere; }
.focus-evidence-review > ul strong { font-size: 10px; }
.focus-evidence-review > ul p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.focus-evidence-review > ul small { margin-top: 4px; color: #873a30; font-size: 9px; line-height: 1.5; }
.focus-evidence-review > footer { margin-top: 10px; display: flex; align-items: flex-start; gap: 7px; color: #526a70; font-size: 9px; line-height: 1.5; }
.focus-evidence-review > footer svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--blue); }
.focus-evidence-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 720px) {
  .focus-evidence-heading { align-items: flex-start; }
  .focus-evidence-heading h1 { font-size: 21px; }
  .focus-evidence-heading > strong { font-size: 18px; }
  .focus-evidence-field { padding: 20px 16px; }
  .focus-evidence-field > input,
  .focus-evidence-field > textarea { padding: 13px 12px; font-size: 16px; }
  .focus-evidence-summary dl { grid-template-columns: 1fr; }
  .focus-evidence-review > ul { grid-template-columns: 1fr; }
  .focus-development-evidence-cue > ul,
  .record-development-context ul { grid-template-columns: 1fr; }
  .focus-evidence-controls button { font-size: 10px; }
}

/* V109: evidence-grounded debrief decision pack for one-step teacher confirmation. */
.debrief-decision-pack { margin-top: 18px; padding: 18px 0 0; border-top: 1px solid var(--line); }
.debrief-decision-pack > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.debrief-decision-pack > header small { display: block; color: var(--blue); font-size: 9px; font-weight: 800; }
.debrief-decision-pack > header h3 { margin: 4px 0 0; font-size: 17px; letter-spacing: 0; }
.debrief-decision-pack > header > b { padding: 5px 8px; background: #e1f0e6; color: var(--primary); font-size: 9px; white-space: nowrap; }
.debrief-decision-pack.needs-evidence > header > b { background: #f8ddd7; color: #8e3328; }
.debrief-decision-columns { margin-top: 14px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); border: 1px solid #dce3df; background: #fff; }
.debrief-decision-columns > section { min-width: 0; padding: 15px; }
.debrief-decision-columns > section + section { border-left: 1px solid #dce3df; }
.debrief-decision-label { display: block; color: var(--blue); font-size: 9px; font-weight: 800; }
.debrief-fixed-list { margin: 10px 0 0; padding: 0; list-style: none; }
.debrief-fixed-list li { min-width: 0; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; }
.debrief-fixed-list li + li { margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf0ee; }
.debrief-fixed-list li > span { color: var(--primary); }
.debrief-fixed-list svg { width: 15px; height: 15px; }
.debrief-fixed-list strong,
.debrief-fixed-list p { display: block; overflow-wrap: anywhere; }
.debrief-fixed-list strong { font-size: 10px; }
.debrief-fixed-list p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.debrief-flexible-decision { background: #f3f8fb; }
.debrief-flexible-decision > small { display: inline-block; margin-top: 8px; padding: 3px 6px; background: #dcebf2; color: #315f70; font-size: 8px; font-weight: 800; }
.debrief-flexible-decision.keep-original { background: #f7f8f7; }
.debrief-flexible-decision.keep-original > small { background: #e6e9e7; color: #55645d; }
.debrief-flexible-decision h4 { margin: 7px 0 0; font-size: 14px; letter-spacing: 0; }
.debrief-flexible-decision > p { margin: 5px 0 0; color: #455c64; font-size: 10px; line-height: 1.55; }
.debrief-flexible-decision > div { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.debrief-flexible-decision > div b { padding: 4px 6px; background: #fff; color: #315f70; font-size: 8px; }
.debrief-flexible-decision > footer { margin-top: 11px; padding-top: 9px; display: flex; align-items: flex-start; gap: 6px; border-top: 1px solid #d8e3e8; color: #52666d; font-size: 8px; line-height: 1.5; }
.debrief-flexible-decision > footer svg { width: 13px; height: 13px; flex: 0 0 auto; color: var(--blue); }
.debrief-goal-evidence,
.debrief-role-handoff { margin-top: 14px; padding-top: 14px; border-top: 1px solid #e2e6e4; }
.debrief-goal-evidence > div,
.debrief-role-handoff > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.debrief-goal-evidence > div small,
.debrief-role-handoff > div small { color: var(--muted); font-size: 8px; }
.debrief-goal-evidence > ul { margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #dce3df; list-style: none; }
.debrief-goal-evidence > ul > li { min-width: 0; padding: 10px 11px; display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; background: #fff; }
.debrief-goal-evidence li > div { min-width: 0; }
.debrief-goal-evidence li span,
.debrief-goal-evidence li strong,
.debrief-goal-evidence li p { display: block; overflow-wrap: anywhere; }
.debrief-goal-evidence li span { color: var(--blue); font-size: 8px; font-weight: 800; }
.debrief-goal-evidence li strong { margin-top: 3px; font-size: 10px; line-height: 1.45; }
.debrief-goal-evidence li p { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.debrief-goal-evidence li small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; line-height: 1.45; overflow-wrap: anywhere; }
.debrief-goal-evidence li > b { padding: 4px 6px; flex: 0 0 auto; background: #e4f1e8; color: var(--primary); font-size: 8px; white-space: nowrap; }
.debrief-goal-evidence li > b.facts-awaiting-link { background: #fff1c9; color: #755b16; }
.debrief-goal-evidence li > b.needs-evidence { background: #f8e3de; color: #903b30; }
.debrief-goal-evidence > p { margin: 10px 0 0; display: flex; align-items: flex-start; gap: 6px; color: #755a21; font-size: 8px; line-height: 1.5; }
.debrief-goal-evidence > p svg { width: 13px; height: 13px; flex: 0 0 auto; color: #9a7416; }
.debrief-role-handoff > ul { margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #dce3df; list-style: none; }
.debrief-role-handoff > ul > li { min-width: 0; padding: 11px; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; }
.debrief-role-handoff > ul > li + li { border-left: 1px solid #dce3df; }
.debrief-role-handoff li > b { color: var(--primary); font-size: 9px; }
.debrief-role-handoff li strong,
.debrief-role-handoff li small { display: block; overflow-wrap: anywhere; }
.debrief-role-handoff li strong { font-size: 9px; line-height: 1.5; }
.debrief-role-handoff li small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.debrief-decision-confirm { margin-top: 14px; padding: 12px 13px; background: #f4f7f5; }
.debrief-decision-confirm > div > span { color: var(--ink); font-size: 9px; font-weight: 800; }
.debrief-decision-confirm > div > div { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 5px; }
.debrief-decision-confirm > div > div > span { padding: 4px 6px; display: inline-flex; align-items: center; gap: 4px; background: #e4f1e8; color: var(--primary); font-size: 8px; font-weight: 750; }
.debrief-decision-confirm > div > div > span.blocked { background: #f8e3de; color: #903b30; }
.debrief-decision-confirm svg { width: 12px; height: 12px; flex: 0 0 auto; }
.debrief-decision-confirm > p { margin: 9px 0 0; padding-top: 8px; display: flex; align-items: flex-start; gap: 6px; border-top: 1px solid #dde3df; color: var(--muted); font-size: 8px; line-height: 1.5; }
.debrief-decision-confirm > p svg { color: var(--blue); }
.focus-closure-debrief .debrief-decision-pack.compact { margin-top: 16px; }

/* V208 today's inspection route one-page print */
.organization-inspection-route-header-actions { display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.organization-inspection-route-header-actions small { max-width: 290px; }
.organization-inspection-route-print-pack { display: none; box-sizing: border-box; width: 1123px; height: 794px; margin: 0 auto; padding: 25px 30px 20px; overflow: hidden; color: #17211c; background: #fff; font-family: "Microsoft YaHei", sans-serif; }
.organization-inspection-route-print-pack * { box-sizing: border-box; letter-spacing: 0; }
.organization-inspection-route-print-preview-dialog { width: min(1180px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 8px; box-shadow: 0 18px 50px rgba(25,39,32,.22); }
.organization-inspection-route-print-preview-dialog::backdrop { background: rgba(20,31,26,.56); }
.organization-inspection-route-print-preview-toolbar { position: sticky; top: 0; z-index: 2; padding: 12px 16px; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.organization-inspection-route-print-preview-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.organization-inspection-route-print-preview-toolbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.organization-inspection-route-print-preview-canvas { padding: 20px; background: #e8ece9; overflow: auto; }
.organization-inspection-route-print-preview-dialog .organization-inspection-route-print-pack { display: grid; margin: 0 auto; }
.organization-inspection-route-print-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 10px; border-bottom: 2px solid #1f6048; }
.organization-inspection-route-print-header > div { min-width: 0; }
.organization-inspection-route-print-header span { color: #1f6048; font-size: 10px; font-weight: 800; }
.organization-inspection-route-print-header h1 { margin: 4px 0 3px; font-size: 25px; }
.organization-inspection-route-print-header p { margin: 0; color: #526158; font-size: 11px; }
.organization-inspection-route-print-header > strong { padding: 6px 9px; border: 1px solid #1f6048; color: #1f6048; font-size: 11px; white-space: nowrap; }
.organization-inspection-route-print-grid { min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 15px 0; }
.organization-inspection-route-print-card { min-width: 0; display: grid; grid-template-rows: auto repeat(4, minmax(0, 1fr)); gap: 8px; padding: 12px; border: 1px solid #b8c6be; border-top: 4px solid #7ba88c; background: #fff; overflow: hidden; }
.organization-inspection-route-print-card.priority-1 { border-top-color: #a8493f; }
.organization-inspection-route-print-card.priority-2 { border-top-color: #9b7429; }
.organization-inspection-route-print-card > header { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 8px; align-items: center; }
.organization-inspection-route-print-rank { display: grid; place-items: center; width: 31px; height: 31px; color: #fff; background: #548268; font-size: 13px; font-weight: 800; }
.organization-inspection-route-print-card.priority-1 .organization-inspection-route-print-rank { background: #a8493f; }
.organization-inspection-route-print-card.priority-2 .organization-inspection-route-print-rank { background: #9b7429; }
.organization-inspection-route-print-card header .eyebrow { color: #537363; font-size: 8px; }
.organization-inspection-route-print-card header h2 { margin: 2px 0 1px; font-size: 16px; overflow-wrap: anywhere; }
.organization-inspection-route-print-card header small { color: #526158; font-size: 9px; }
.organization-inspection-route-print-card > section { min-width: 0; padding: 7px 8px; border: 1px solid #d7e1db; background: #f7faf8; overflow: hidden; }
.organization-inspection-route-print-card > section b { display: block; color: #1f6048; font-size: 9px; }
.organization-inspection-route-print-card > section p { margin: 3px 0 0; color: #405048; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.organization-inspection-route-print-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-top: 8px; border-top: 1px solid #aebbb4; color: #526158; font-size: 9px; line-height: 1.45; }
.organization-inspection-route-print-footer strong { color: #1f6048; white-space: nowrap; }
.organization-inspection-route-print-empty { grid-column: 1 / -1; padding: 35px; color: #526158; text-align: center; }

/* V210 weekly teaching-management one-page print */
.organization-inspection-week-header-actions { display: flex; align-items: center; gap: 8px; }
.organization-inspection-week-header-actions .secondary-button { min-height: 30px; font-size: 9px; }
.organization-inspection-week-print-pack { display: none; box-sizing: border-box; width: 1123px; height: 794px; margin: 0 auto; padding: 25px 30px 20px; overflow: hidden; color: #17211c; background: #fff; font-family: "Microsoft YaHei", sans-serif; }
.organization-inspection-week-print-pack * { box-sizing: border-box; letter-spacing: 0; }
.organization-inspection-week-print-preview-dialog { width: min(1180px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 8px; box-shadow: 0 18px 50px rgba(25,39,32,.22); }
.organization-inspection-week-print-preview-dialog::backdrop { background: rgba(20,31,26,.56); }
.organization-inspection-week-print-preview-toolbar { position: sticky; top: 0; z-index: 2; padding: 12px 16px; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.organization-inspection-week-print-preview-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.organization-inspection-week-print-preview-toolbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.organization-inspection-week-print-preview-canvas { padding: 20px; background: #e8ece9; overflow: auto; }
.organization-inspection-week-print-preview-dialog .organization-inspection-week-print-pack { display: grid; margin: 0 auto; }
.organization-inspection-week-print-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 10px; border-bottom: 2px solid #1f6048; }
.organization-inspection-week-print-header > div { min-width: 0; }
.organization-inspection-week-print-header span { color: #1f6048; font-size: 10px; font-weight: 800; }
.organization-inspection-week-print-header h1 { margin: 4px 0 3px; font-size: 25px; }
.organization-inspection-week-print-header p { margin: 0; color: #526158; font-size: 11px; }
.organization-inspection-week-print-header > strong { padding: 6px 9px; border: 1px solid #1f6048; color: #1f6048; font-size: 11px; white-space: nowrap; }
.organization-inspection-week-print-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 13px 0; }
.organization-inspection-week-print-metrics article { display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 9px; padding: 8px 10px; border: 1px solid #d3ddd7; background: #f7faf8; }
.organization-inspection-week-print-metrics b { color: #476254; font-size: 9px; }
.organization-inspection-week-print-metrics strong { color: #1f6048; font-size: 20px; }
.organization-inspection-week-print-metrics small { grid-column: 2; color: #68746d; font-size: 8px; }
.organization-inspection-week-print-days { min-height: 0; }
.organization-inspection-week-print-days > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 5px; border-bottom: 1px solid #aebbb4; }
.organization-inspection-week-print-days > header b { color: #1f6048; font-size: 11px; }
.organization-inspection-week-print-days > header small { color: #6d7972; font-size: 8px; }
.organization-inspection-week-print-days > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 8px 0 11px; }
.organization-inspection-week-print-day { min-width: 0; padding: 8px; border: 1px solid #b8c6be; border-top: 3px solid #7ba88c; background: #fff; }
.organization-inspection-week-print-day header { display: flex; align-items: center; gap: 7px; padding-bottom: 5px; border-bottom: 1px solid #e0e6e2; }
.organization-inspection-week-print-day header > strong { display: grid; place-items: center; width: 22px; height: 22px; color: #fff; background: #548268; font-size: 10px; }
.organization-inspection-week-print-day header div { display: grid; gap: 1px; }
.organization-inspection-week-print-day header b { color: #35443c; font-size: 10px; }
.organization-inspection-week-print-day header small { color: #6c7771; font-size: 8px; }
.organization-inspection-week-print-day ul { display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.organization-inspection-week-print-day li { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; min-width: 0; }
.organization-inspection-week-print-day li b { min-width: 0; color: #45524b; font-size: 9px; overflow-wrap: anywhere; }
.organization-inspection-week-print-day li small { flex: 0 0 auto; color: #7b827e; font-size: 7px; }
.organization-inspection-week-print-lower { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.organization-inspection-week-print-lower > section { min-width: 0; padding: 8px 10px; border: 1px solid #d3ddd7; background: #fbfcfb; overflow: hidden; }
.organization-inspection-week-print-lower header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-bottom: 5px; border-bottom: 1px solid #dbe4de; }
.organization-inspection-week-print-lower header b { color: #1f6048; font-size: 10px; }
.organization-inspection-week-print-lower header small { color: #718078; font-size: 7px; }
.organization-inspection-week-print-lower ul { display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.organization-inspection-week-print-lower li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 7px; align-items: baseline; min-width: 0; }
.organization-inspection-week-print-lower li b { color: #35443c; font-size: 8.5px; overflow-wrap: anywhere; }
.organization-inspection-week-print-lower li span { color: #526158; font-size: 8px; overflow-wrap: anywhere; }
.organization-inspection-week-print-lower li small { grid-column: 2; color: #718078; font-size: 7px; line-height: 1.35; overflow-wrap: anywhere; }
.organization-inspection-week-print-lower li.empty { display: grid; }
.organization-inspection-week-print-lower li.empty small { grid-column: 1 / -1; }
.organization-inspection-week-print-pack > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-top: 9px; padding-top: 7px; border-top: 1px solid #aebbb4; color: #526158; font-size: 8px; line-height: 1.4; }
.organization-inspection-week-print-pack > footer strong { color: #1f6048; white-space: nowrap; }

@media (max-width: 720px) {
  .organization-inspection-route-header-actions { width: 100%; align-items: stretch; justify-content: flex-start; flex-direction: column; }
  .organization-inspection-route-header-actions small { max-width: none; text-align: left; }
  .organization-inspection-route-header-actions .secondary-button { width: 100%; justify-content: center; }
  .organization-inspection-route-print-preview-dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
  .organization-inspection-route-print-preview-toolbar { align-items: stretch; flex-direction: column; }
  .organization-inspection-route-print-preview-toolbar > div:last-child { display: grid; grid-template-columns: 36px 1fr; }
  .organization-inspection-route-print-preview-toolbar button { min-width: 0; padding-inline: 7px; font-size: 9px; }
  .organization-inspection-route-print-preview-canvas { padding: 8px; }
  .organization-inspection-route-print-preview-dialog .organization-inspection-route-print-pack { width: 100%; height: auto; min-height: 0; padding: 16px; }
  .organization-inspection-route-print-grid { grid-template-columns: 1fr; }
  .organization-inspection-week-header-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .organization-inspection-week-header-actions .secondary-button { width: 100%; justify-content: center; }
  .organization-inspection-week-print-preview-dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
  .organization-inspection-week-print-preview-toolbar { align-items: stretch; flex-direction: column; }
  .organization-inspection-week-print-preview-toolbar > div:last-child { display: grid; grid-template-columns: 36px 1fr; }
  .organization-inspection-week-print-preview-toolbar button { min-width: 0; padding-inline: 7px; font-size: 9px; }
  .organization-inspection-week-print-preview-canvas { padding: 8px; }
  .organization-inspection-week-print-preview-dialog .organization-inspection-week-print-pack { width: 100%; height: auto; min-height: 0; padding: 16px; }
  .organization-inspection-week-print-days > header { align-items: flex-start; flex-direction: column; }
  .organization-inspection-week-print-days > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organization-inspection-week-print-day:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .organization-inspection-week-print-lower { grid-template-columns: 1fr; }
  .organization-inspection-week-print-pack > footer { flex-direction: column; }
}

@media print {
  @page { size: A4 landscape; margin: 8mm; }
  body.print-organization-inspection-route { background: #fff; color: #17211c; }
  body.print-organization-inspection-route > .app-shell,
  body.print-organization-inspection-route > dialog,
  body.print-organization-inspection-route > .toast,
  body.print-organization-inspection-route > .teacher-print-pack,
  body.print-organization-inspection-route > .project-map-print-pack { display: none !important; }
  body.print-organization-inspection-route > .organization-inspection-route-print-pack { display: grid !important; width: 281mm; height: 194mm; padding: 5mm 6mm 4mm; overflow: hidden; }
  body.print-organization-inspection-route .organization-inspection-route-print-header { padding-bottom: 2mm; }
  body.print-organization-inspection-route .organization-inspection-route-print-header h1 { font-size: 17pt; }
  body.print-organization-inspection-route .organization-inspection-route-print-header span,
  body.print-organization-inspection-route .organization-inspection-route-print-header p { font-size: 7.5pt; }
  body.print-organization-inspection-route .organization-inspection-route-print-grid { gap: 2.5mm; padding: 3mm 0; }
  body.print-organization-inspection-route .organization-inspection-route-print-card { gap: 2mm; padding: 2.5mm; border-top-width: 1.5mm; break-inside: avoid; }
  body.print-organization-inspection-route .organization-inspection-route-print-card header h2 { font-size: 12pt; }
  body.print-organization-inspection-route .organization-inspection-route-print-card header small,
  body.print-organization-inspection-route .organization-inspection-route-print-card > section b { font-size: 7pt; }
  body.print-organization-inspection-route .organization-inspection-route-print-card > section { padding: 1.5mm; }
  body.print-organization-inspection-route .organization-inspection-route-print-card > section p { font-size: 7.5pt; line-height: 1.35; }
  body.print-organization-inspection-route .organization-inspection-route-print-footer { padding-top: 2mm; font-size: 6.5pt; }
  body.print-organization-inspection-week { background: #fff; color: #17211c; }
  body.print-organization-inspection-week > .app-shell,
  body.print-organization-inspection-week > dialog,
  body.print-organization-inspection-week > .toast,
  body.print-organization-inspection-week > .teacher-print-pack,
  body.print-organization-inspection-week > .project-map-print-pack,
  body.print-organization-inspection-week > .organization-inspection-route-print-pack { display: none !important; }
  body.print-organization-inspection-week > .organization-inspection-week-print-pack { display: grid !important; width: 281mm; height: 194mm; padding: 5mm 6mm 4mm; overflow: hidden; }
  body.print-organization-inspection-week .organization-inspection-week-print-header { padding-bottom: 2mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-header h1 { font-size: 17pt; }
  body.print-organization-inspection-week .organization-inspection-week-print-header span,
  body.print-organization-inspection-week .organization-inspection-week-print-header p { font-size: 7.5pt; }
  body.print-organization-inspection-week .organization-inspection-week-print-metrics { gap: 2.5mm; padding: 3mm 0; }
  body.print-organization-inspection-week .organization-inspection-week-print-metrics article { padding: 2mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-metrics strong { font-size: 14pt; }
  body.print-organization-inspection-week .organization-inspection-week-print-days > div { gap: 2.5mm; padding: 2mm 0 3mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-day { padding: 2mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-lower { gap: 2.5mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-lower > section { padding: 2mm 2.5mm; }
  body.print-organization-inspection-week .organization-inspection-week-print-pack > footer { margin-top: 2mm; padding-top: 2mm; font-size: 6.5pt; }
}

@media (max-width: 720px) {
  .debrief-decision-pack > header { align-items: flex-start; }
  .debrief-decision-columns,
  .debrief-goal-evidence > ul,
  .debrief-role-handoff > ul { grid-template-columns: 1fr; }
  .debrief-decision-columns > section + section,
  .debrief-role-handoff > ul > li + li { border-top: 1px solid #dce3df; border-left: 0; }
  .debrief-goal-evidence > ul > li { display: grid; }
  .debrief-goal-evidence li > b { width: max-content; }
}

.revoked-profile-recovery { grid-column: 1 / -1; }
.recovery-manifest-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.recovery-manifest-heading h2 { margin: 4px 0 0; }
.recovery-manifest-heading p { margin: 7px 0 0; max-width: 720px; }
.recovery-manifest-list { margin-top: 16px; display: grid; gap: 8px; }
.recovery-manifest-row { padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.recovery-manifest-row.acknowledged { background: #f7faf8; }
.recovery-manifest-main { min-width: 0; }
.recovery-manifest-main > strong { margin-left: 8px; font-size: 13px; }
.recovery-manifest-main > small { margin-top: 7px; display: block; color: var(--muted); }
.recovery-manifest-main > p { margin: 6px 0 0; color: var(--ink-soft); overflow-wrap: anywhere; }
.recovery-manifest-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.revoked-profile-recovery > .notice { margin-top: 14px; }

@media (max-width: 720px) {
  .recovery-manifest-heading,
  .recovery-manifest-row { display: grid; }
  .recovery-manifest-actions { justify-content: stretch; }
  .recovery-manifest-actions .secondary-button { flex: 1 1 140px; }
}

/* V138: bounded AI proposals remain a teaching-governance surface, never a teacher input form. */
.ai-course-governance-band {
  margin: 0 0 16px; padding: 20px 22px; border: 1px solid #cfded7; border-radius: 6px;
  background: #fff;
}
.ai-course-governance-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.ai-course-governance-heading > div:first-child { min-width: 0; }
.ai-course-governance-heading h2 { margin: 4px 0 0; max-width: 760px; font-size: 20px; letter-spacing: 0; }
.ai-course-governance-heading p { margin: 7px 0 0; max-width: 820px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.ai-course-governance-actions { display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: 8px; flex: 0 0 auto; }
.ai-course-focus { display: grid; gap: 4px; }
.ai-course-focus span { color: var(--muted); font-size: 9px; font-weight: 800; }
.ai-course-focus select { min-width: 150px; height: 38px; border: 1px solid var(--line); border-radius: 6px; padding: 0 28px 0 10px; background: #fff; color: var(--ink); font-size: 11px; }
.ai-course-supply-metrics { margin-top: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); }
.ai-course-supply-metrics > div { min-width: 0; padding: 14px 15px; background: #f8faf9; }
.ai-course-supply-metrics > div + div { border-left: 1px solid var(--line); }
.ai-course-supply-metrics > div.attention { background: #fff7e8; }
.ai-course-supply-metrics strong, .ai-course-supply-metrics span, .ai-course-supply-metrics small { display: block; overflow-wrap: anywhere; }
.ai-course-supply-metrics strong { color: var(--primary); font-size: 22px; }
.ai-course-supply-metrics span { margin-top: 3px; font-size: 11px; font-weight: 800; }
.ai-course-supply-metrics small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.ai-course-governance-status { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); border: 1px solid var(--line); border-top: 0; }
.ai-course-provider, .ai-course-latest, .ai-course-task-status { min-width: 0; padding: 13px 15px; display: flex; align-items: center; gap: 10px; }
.ai-course-latest { border-left: 1px solid var(--line); }
.ai-course-provider > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; background: var(--blue-soft); color: var(--blue); }
.ai-course-provider strong, .ai-course-provider small, .ai-course-latest strong, .ai-course-latest small { display: block; overflow-wrap: anywhere; }
.ai-course-provider strong, .ai-course-latest strong { font-size: 11px; }
.ai-course-provider small, .ai-course-latest small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.ai-course-latest > .status-badge { flex: 0 0 auto; }
.ai-course-task-status { border-top: 1px solid var(--line); grid-column: 1 / -1; }
.ai-course-task-status > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; background: var(--gold-soft); color: var(--gold); }
.ai-course-task-status strong, .ai-course-task-status small { display: block; overflow-wrap: anywhere; }
.ai-course-task-status strong { font-size: 11px; }
.ai-course-task-status small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.ai-course-boundary { margin-top: 12px; display: flex; align-items: flex-start; gap: 8px; color: #52645b; font-size: 10px; line-height: 1.55; }
.ai-course-boundary svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--primary); }

@media (max-width: 860px) {
  .ai-course-governance-heading { display: grid; }
  .ai-course-governance-actions { justify-content: flex-start; }
}

@media (max-width: 720px) {
  .ai-course-governance-band { padding: 17px 14px; }
  .ai-course-governance-heading h2 { font-size: 17px; }
  .ai-course-governance-actions, .ai-course-governance-actions > button, .ai-course-focus, .ai-course-focus select { width: 100%; }
  .ai-course-supply-metrics, .ai-course-governance-status { grid-template-columns: 1fr; }
  .ai-course-supply-metrics > div + div, .ai-course-latest { border-top: 1px solid var(--line); border-left: 0; }
}
.pilot-feedback-panel { border-top: 3px solid var(--primary); }
.pilot-feedback-body { display: grid; gap: 16px; }
.pilot-feedback-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--surface-soft); }
.pilot-feedback-metrics span { min-width: 0; padding: 14px 16px; border-right: 1px solid var(--line); }
.pilot-feedback-metrics span:last-child { border-right: 0; }
.pilot-feedback-metrics strong, .pilot-feedback-metrics small { display: block; }
.pilot-feedback-metrics strong { color: var(--ink); font-size: 22px; }
.pilot-feedback-metrics small { color: var(--muted); margin-top: 3px; }
.pilot-feedback-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pilot-feedback-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 14px; align-items: center; padding: 13px 15px; border: 1px solid var(--line); background: var(--surface); }
.pilot-feedback-row.alert { border-left: 4px solid var(--coral); }
.pilot-feedback-row.attention { border-left: 4px solid var(--gold); }
.pilot-feedback-row.clear { border-left: 4px solid var(--primary); }
.pilot-feedback-row div { min-width: 0; }
.pilot-feedback-row strong, .pilot-feedback-row small { display: block; }
.pilot-feedback-row small { color: var(--muted); margin-top: 2px; }
.pilot-feedback-row p { grid-column: 1 / -1; margin: 0; color: var(--ink); }
.pilot-feedback-empty { padding: 16px; border: 1px dashed var(--line); color: var(--muted); }
.pilot-feedback-body footer { display: grid; gap: 6px; padding-top: 2px; }
.pilot-feedback-body footer p { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--muted); font-size: 13px; }
.pilot-feedback-body footer svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; }

.frontline-review-panel { border-top: 3px solid var(--gold); }
.frontline-review-body { display: grid; gap: 16px; }
.frontline-review-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--surface-soft); }
.frontline-review-metrics span { min-width: 0; padding: 14px 16px; border-right: 1px solid var(--line); }
.frontline-review-metrics span:last-child { border-right: 0; }
.frontline-review-metrics strong, .frontline-review-metrics small { display: block; }
.frontline-review-metrics strong { color: var(--ink); font-size: 22px; }
.frontline-review-metrics small { color: var(--muted); margin-top: 3px; }
.frontline-review-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.frontline-review-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 14px; align-items: center; padding: 13px 15px; border: 1px solid var(--line); background: var(--surface); }
.frontline-review-row div { min-width: 0; }
.frontline-review-row strong, .frontline-review-row small { display: block; }
.frontline-review-row small { color: var(--muted); margin-top: 2px; }
.frontline-review-row p { grid-column: 1 / -1; margin: 0; color: var(--ink); }
.frontline-review-body footer { display: grid; gap: 6px; padding-top: 2px; }
.frontline-review-body footer p { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--muted); font-size: 13px; }
.frontline-review-body footer svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; }
.frontline-review-header-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }

/* V218 four-age triad review sample pack */
.triad-review-sample-dialog { width: min(1180px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 8px; box-shadow: 0 18px 50px rgba(25,39,32,.22); }
.triad-review-sample-dialog::backdrop { background: rgba(20,31,26,.56); }
.triad-review-sample-toolbar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.triad-review-sample-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.triad-review-sample-toolbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.triad-review-sample-canvas { padding: 20px; overflow: auto; background: #e8ece9; }
.triad-review-sample-intro { width: 1123px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; margin: 0 auto 10px; padding: 10px 12px; border-left: 4px solid #b47b23; color: #4c3a1d; background: #fff8e8; font-size: 12px; }
.triad-review-sample-pack { display: none; gap: 20px; }
.triad-review-sample-dialog .triad-review-sample-pack { display: grid; }
.triad-review-sample-page { box-sizing: border-box; width: 1123px; height: 794px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; gap: 10px; margin: 0 auto; padding: 24px 28px 18px; overflow: hidden; color: #17211c; background: #fff; font-family: "Microsoft YaHei", sans-serif; }
.triad-review-sample-page * { box-sizing: border-box; letter-spacing: 0; }
.triad-review-sample-page h1, .triad-review-sample-page h2, .triad-review-sample-page p, .triad-review-sample-page blockquote, .triad-review-sample-page ul { margin: 0; }
.triad-review-sample-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 8px; border-bottom: 2px solid #1f6048; }
.triad-review-sample-page-header > div { min-width: 0; }
.triad-review-sample-page-header span { color: #1f6048; font-size: 10px; font-weight: 800; }
.triad-review-sample-page-header h1 { margin: 3px 0 2px; font-size: 23px; }
.triad-review-sample-page-header p { color: #526158; font-size: 10px; }
.triad-review-sample-page-header > strong { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #b47b23; color: #805411; font-size: 10px; }
.triad-review-sample-core { min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; }
.triad-review-sample-core > section { min-width: 0; padding: 9px 10px; overflow: hidden; border: 1px solid #ccd8d1; background: #fbfcfb; }
.triad-review-sample-core h2, .triad-review-outdoor h2 { margin-bottom: 6px; color: #1f6048; font-size: 11px; }
.triad-review-opening blockquote { padding: 9px 10px; border-left: 3px solid #7ba88c; background: #edf5f0; font-size: 12px; font-weight: 700; line-height: 1.55; }
.triad-review-sample-core ul { display: grid; gap: 5px; padding-left: 15px; font-size: 8px; line-height: 1.35; }
.triad-review-sample-core li strong, .triad-review-sample-core li span, .triad-review-sample-core li small { display: block; }
.triad-review-sample-core li strong { font-size: 9px; }
.triad-review-sample-core li small { color: #66746c; }
.triad-review-safety { border-color: #e0c8c3 !important; background: #fff9f7 !important; }
.triad-review-body-gradient > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.triad-review-body-gradient > div span { min-width: 0; padding: 5px 6px; background: #edf5f0; }
.triad-review-body-gradient strong, .triad-review-body-gradient small { display: block; }
.triad-review-body-gradient strong { font-size: 8px; }
.triad-review-body-gradient small { margin-top: 2px; color: #526158; font-size: 7px; line-height: 1.25; }
.triad-review-body-gradient p { margin-top: 5px; font-size: 7px; line-height: 1.3; }
.triad-review-outdoor { padding: 8px 10px; border: 1px solid #b8c9bf; }
.triad-review-outdoor > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.triad-review-outdoor article { min-width: 0; padding: 7px 8px; background: #f4f8f5; }
.triad-review-outdoor header strong, .triad-review-outdoor header small { display: block; }
.triad-review-outdoor header strong { font-size: 9px; }
.triad-review-outdoor header small { color: #526158; font-size: 7px; }
.triad-review-outdoor p { margin-top: 4px; font-size: 7px; line-height: 1.3; }
.triad-review-sample-page > footer { display: grid; gap: 6px; padding-top: 7px; border-top: 1px solid #aebbb4; }
.triad-review-role-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.triad-review-role-strip span { min-width: 0; }
.triad-review-role-strip strong, .triad-review-role-strip small { display: block; }
.triad-review-role-strip strong { color: #1f6048; font-size: 8px; }
.triad-review-role-strip small, .triad-review-sample-page > footer p { color: #526158; font-size: 7px; line-height: 1.3; }

/* V220 professional annotation review companion pages */
.triad-review-annotation-page { grid-template-rows: auto minmax(0, 1fr) auto; }
.triad-review-annotation-core { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr 1fr auto; border-top: 1px solid #ccd8d1; border-left: 1px solid #ccd8d1; }
.triad-review-annotation-core > section { min-width: 0; padding: 10px 12px; overflow: hidden; border-right: 1px solid #ccd8d1; border-bottom: 1px solid #ccd8d1; }
.triad-review-annotation-core > section > header { margin-bottom: 6px; }
.triad-review-annotation-core > section > header span { color: #1f6048; font-size: 7px; font-weight: 900; }
.triad-review-annotation-core h2 { margin: 2px 0 0; font-size: 11px; line-height: 1.35; }
.triad-review-annotation-core h3 { margin: 7px 0 3px; font-size: 8px; }
.triad-review-annotation-core p, .triad-review-annotation-core li, .triad-review-annotation-core dd { overflow-wrap: anywhere; font-size: 7px; line-height: 1.38; }
.triad-review-annotation-core ul { margin: 0; padding-left: 14px; }
.triad-review-annotation-design > p { color: #526158; }
.triad-review-annotation-design blockquote { margin: 6px 0; padding: 6px 7px; border-left: 3px solid #b47b23; background: #fff8e8; font-size: 7px; line-height: 1.4; }
.triad-review-annotation-design blockquote b { margin-right: 5px; color: #805411; }
.triad-review-annotation-design ol { margin: 5px 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; list-style: none; }
.triad-review-annotation-design ol li { min-width: 0; display: grid; grid-template-columns: 14px minmax(0, 1fr); align-items: center; gap: 3px; }
.triad-review-annotation-design ol span { width: 13px; height: 13px; border-radius: 50%; color: #fff; background: #1f6048; display: grid; place-items: center; font-size: 6px; font-weight: 900; }
.triad-review-annotation-age dl { margin: 0; }
.triad-review-annotation-age dl > div { padding: 6px 0; border-top: 1px solid #dce5df; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 7px; }
.triad-review-annotation-age dt { color: #315f79; font-size: 7px; font-weight: 900; }
.triad-review-annotation-age dd { margin: 0; }
.triad-review-annotation-child > div, .triad-review-annotation-decision > div { display: grid; gap: 0; }
.triad-review-annotation-child article, .triad-review-annotation-decision article { padding: 5px 0; border-top: 1px solid #dce5df; }
.triad-review-annotation-child article > strong, .triad-review-annotation-decision article > strong { display: block; font-size: 8px; line-height: 1.35; }
.triad-review-annotation-child article p, .triad-review-annotation-decision article p { margin-top: 2px; color: #526158; }
.triad-review-annotation-child article b, .triad-review-annotation-decision article b { margin-right: 4px; color: #1f6048; }
.triad-review-annotation-decision article small { display: block; margin-top: 2px; color: #526158; font-size: 7px; line-height: 1.35; }
.triad-review-annotation-evidence { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr .9fr; grid-template-rows: auto 1fr auto; gap: 5px 10px; }
.triad-review-annotation-evidence > header { grid-column: 1 / -1; }
.triad-review-annotation-evidence > p { margin: 0; color: #526158; }
.triad-review-annotation-evidence > div { display: grid; gap: 4px; }
.triad-review-annotation-evidence > div p { margin: 0; padding: 5px 6px; background: #edf5f0; }
.triad-review-annotation-evidence > div p + p { background: #fff3f0; }
.triad-review-annotation-evidence b { display: block; margin-bottom: 2px; color: #1f6048; }
.triad-review-annotation-evidence aside { padding: 5px 7px; background: #fff8e8; }
.triad-review-annotation-evidence aside strong { color: #805411; font-size: 7px; }
.triad-review-annotation-evidence aside ul { margin-top: 3px; }
.triad-review-annotation-evidence > small { grid-column: 1 / -1; color: #526158; font-size: 7px; line-height: 1.35; }

@media (max-width: 760px) {
  .pilot-feedback-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pilot-feedback-metrics span:nth-child(2) { border-right: 0; }
  .pilot-feedback-metrics span:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .pilot-feedback-row { grid-template-columns: minmax(0, 1fr); }
  .pilot-feedback-row .status-badge { justify-self: start; }
  .frontline-review-metrics { grid-template-columns: 1fr; }
  .frontline-review-metrics span { border-right: 0; border-bottom: 1px solid var(--line); }
  .frontline-review-metrics span:last-child { border-bottom: 0; }
  .frontline-review-row { grid-template-columns: minmax(0, 1fr); }
  .frontline-review-row .status-badge { justify-self: start; }
  .frontline-review-panel .panel-header { align-items: stretch; }
  .frontline-review-header-actions { justify-content: flex-start; }
  .frontline-review-header-actions .secondary-button { width: 100%; justify-content: center; }
  .triad-review-sample-dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
  .triad-review-sample-toolbar { align-items: stretch; flex-direction: column; }
  .triad-review-sample-toolbar > div:last-child { display: grid; grid-template-columns: 36px minmax(0, 1fr); }
  .triad-review-sample-toolbar button { min-width: 0; padding-inline: 7px; font-size: 10px; }
  .triad-review-sample-canvas { padding: 8px; }
  .triad-review-sample-intro { width: 100%; grid-template-columns: 1fr; }
  .triad-review-sample-dialog .triad-review-sample-page { width: 100%; height: auto; min-height: 0; padding: 16px; }
  .triad-review-sample-page-header { flex-direction: column; }
  .triad-review-sample-core { grid-template-columns: 1fr; grid-template-rows: none; }
  .triad-review-outdoor > div, .triad-review-role-strip { grid-template-columns: 1fr; }
  .triad-review-annotation-core { grid-template-columns: 1fr; grid-template-rows: none; }
  .triad-review-annotation-core > section { overflow: visible; }
  .triad-review-annotation-evidence { grid-column: auto; grid-template-columns: 1fr; grid-template-rows: none; }
  .triad-review-annotation-evidence > header, .triad-review-annotation-evidence > small { grid-column: auto; }
}

@media print {
  @page { size: A4 landscape; margin: 8mm; }
  body.print-triad-review-sample-pack { background: #fff; color: #17211c; }
  body.print-triad-review-sample-pack > .app-shell,
  body.print-triad-review-sample-pack > dialog,
  body.print-triad-review-sample-pack > .toast,
  body.print-triad-review-sample-pack > .teacher-print-pack,
  body.print-triad-review-sample-pack > .project-map-print-pack,
  body.print-triad-review-sample-pack > .organization-inspection-route-print-pack,
  body.print-triad-review-sample-pack > .organization-inspection-week-print-pack { display: none !important; }
  body.print-triad-review-sample-pack > .triad-review-sample-pack { display: block !important; }
  body.print-triad-review-sample-pack .triad-review-sample-page { width: 281mm; height: 194mm; padding: 5mm 6mm 4mm; break-after: page; page-break-after: always; }
  body.print-triad-review-sample-pack .triad-review-sample-page:last-child { break-after: auto; page-break-after: auto; }
}
