:root {
  --ink: #17211d;
  --muted: #64716b;
  --paper: #f6f7f3;
  --surface: #ffffff;
  --line: #dfe5df;
  --line-strong: #c9d2cb;
  --brand: #163f34;
  --brand-soft: #dcebe4;
  --accent: #ffce67;
  --accent-soft: #fff4d7;
  --blue: #2f68c5;
  --blue-soft: #e7effc;
  --green: #177657;
  --green-soft: #dff1e9;
  --red: #b64238;
  --red-soft: #fbe8e5;
  --yellow: #9b6900;
  --yellow-soft: #fff2c9;
  --shadow: 0 14px 40px rgba(27, 49, 39, 0.08);
  --radius: 18px;
  font-family: Inter, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--paper); font-size: 16px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
  outline: 3px solid rgba(47, 104, 197, 0.3); outline-offset: 2px;
}

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 272px minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; height: 100vh; padding: 26px 18px 18px; color: #eef7f2;
  background: linear-gradient(160deg, #173e34 0%, #102e28 72%, #0b241f 100%);
  display: flex; flex-direction: column; overflow-y: auto;
}
.brand { display: flex; gap: 12px; align-items: center; padding: 0 8px 26px; }
.brand-mark { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--accent); color: #21352c; font-weight: 900; letter-spacing: -0.08em; }
.brand-title { font-weight: 800; letter-spacing: -0.02em; }
.brand-subtitle { color: #b9cec4; font-size: 13px; margin-top: 2px; }
.nav { display: grid; gap: 22px; }
.nav-group { --group-accent: #d9ad4d; --group-heading-bg: rgba(255, 206, 103, .17); --group-heading-text: #ffe4a8; --group-item-bg: rgba(255, 206, 103, .09); display: grid; gap: 3px; padding-left: 6px; border-left: 2px solid var(--group-accent); }
.nav-group:nth-child(2) { --group-accent: #52bd91; --group-heading-bg: rgba(82, 189, 145, .18); --group-heading-text: #bdf0d9; --group-item-bg: rgba(82, 189, 145, .1); }
.nav-group:nth-child(3) { --group-accent: #74a8ef; --group-heading-bg: rgba(116, 168, 239, .18); --group-heading-text: #cfe2ff; --group-item-bg: rgba(116, 168, 239, .1); }
.nav-group-title { margin: 0 3px 7px -2px; padding: 9px 11px; border-radius: 8px; color: var(--group-heading-text); background: var(--group-heading-bg); font-size: 17px; font-weight: 900; line-height: 1.45; letter-spacing: .02em; }
.nav-button { width: 100%; min-height: 44px; border: 0; border-radius: 10px; color: #e0eee7; background: var(--group-item-bg); display: flex; align-items: center; padding: 10px 12px; text-align: left; font-size: 16px; font-weight: 750; line-height: 1.4; text-decoration: none; }
.nav-button:hover { background: rgba(255, 255, 255, 0.07); color: white; }
.nav-button.active { color: #15382e; background: #f4fbf7; box-shadow: 0 8px 22px rgba(0,0,0,.14); font-weight: 800; }
.nav-button small { margin-left: 7px; color: inherit; opacity: .7; font-size: 9px; font-weight: 700; }
.sidebar-foot { margin-top: auto; padding: 18px 8px 2px; border-top: 1px solid rgba(255,255,255,.12); }
.environment-pill { display: inline-flex; align-items: center; gap: 6px; color: #ffeab7; font-size: 11px; font-weight: 800; }
.environment-pill::before { content: ""; width: 7px; height: 7px; background: var(--accent); border-radius: 99px; box-shadow: 0 0 0 4px rgba(255, 206, 103, .12); }
.sidebar-note { margin: 9px 0 0; color: #91aca0; font-size: 10px; line-height: 1.5; }

.workspace { min-width: 0; }
.production-db-warning {
  min-height: 44px; padding: 10px 32px; display: flex; align-items: center; justify-content: center; gap: 12px;
  color: #6f1711; background: #ffd9d4; border-bottom: 1px solid #e9aaa3; font-size: 12px;
  position: sticky; top: 0; z-index: 12;
}
.production-db-warning strong { font-size: 13px; letter-spacing: .02em; }
.production-db-warning + .topbar { top: 44px; }
.topbar { min-height: 74px; padding: 14px 32px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.86); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 10; }
.top-search { position: relative; flex: 1; max-width: 620px; }
.top-search input { width: 100%; border: 1px solid var(--line); border-radius: 13px; padding: 11px 42px 11px 39px; background: #f8faf8; color: var(--ink); }
.top-search::before { content: "⌕"; position: absolute; left: 14px; top: 8px; font-size: 21px; color: var(--muted); }
.kbd { position: absolute; right: 11px; top: 10px; border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 6px; background: white; color: var(--muted); font-size: 10px; padding: 3px 6px; }
.topbar-spacer { flex: 1; }
.org-switcher { display: flex; align-items: center; gap: 10px; min-width: 240px; }
.org-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: white; background: var(--brand); font-weight: 800; font-size: 12px; }
.org-meta { min-width: 0; }
.org-name { font-weight: 800; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.role-select { border: 0; padding: 0; background: transparent; color: var(--muted); font-size: 11px; max-width: 180px; }
.main { padding: 32px; max-width: 1540px; margin: 0 auto; }

.page-head { display: flex; gap: 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 24px; }
.eyebrow { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 7px; font-size: clamp(24px, 3vw, 34px); line-height: 1.18; letter-spacing: -.045em; }
h2 { margin-bottom: 14px; font-size: 19px; letter-spacing: -.025em; }
h3 { font-size: 14px; letter-spacing: -.01em; }
.page-description { color: var(--muted); font-size: 13px; line-height: 1.65; margin: 0; }
.page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.button { border: 1px solid var(--line-strong); border-radius: 11px; padding: 9px 13px; background: white; color: var(--ink); font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.button:hover { border-color: #a8b8ae; background: #fafcfb; }
.button.primary { color: white; background: var(--brand); border-color: var(--brand); }
.button.primary:hover { background: #0f3229; }
.button.danger { color: var(--red); border-color: #ebc1bd; background: var(--red-soft); }
.button.ghost { border-color: transparent; background: transparent; color: var(--muted); }
.button.small { border-radius: 9px; padding: 6px 9px; font-size: 11px; }
.button:disabled { opacity: .45; cursor: not-allowed; }

.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.stat-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 18px; box-shadow: 0 5px 20px rgba(30, 52, 42, .035); }
.stat-label { color: var(--muted); font-size: 11px; font-weight: 800; }
.stat-value { margin-top: 9px; font-size: 29px; line-height: 1; font-weight: 900; letter-spacing: -.05em; }
.stat-foot { margin-top: 10px; color: var(--muted); font-size: 10px; }
.stat-dot { width: 9px; height: 9px; display: inline-block; border-radius: 99px; margin-right: 6px; background: var(--green); }
.stat-dot.warn { background: #e0a116; }
.stat-dot.danger { background: var(--red); }

.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); overflow: hidden; }
.panel + .panel { margin-top: 18px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.panel-head h2, .panel-head h3 { margin: 0; }
.panel-head p { color: var(--muted); margin: 4px 0 0; font-size: 11px; }
.panel-body { padding: 20px; }
.split { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(440px, 1.3fr); gap: 18px; align-items: start; }
.two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.three-column { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }

.tabs { display: flex; gap: 5px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: #eef2ee; width: fit-content; margin-bottom: 18px; overflow-x: auto; max-width: 100%; }
.tab { border: 0; border-radius: 9px; background: transparent; color: var(--muted); padding: 8px 13px; white-space: nowrap; font-size: 11px; font-weight: 800; }
.tab.active { background: white; color: var(--brand); box-shadow: 0 3px 10px rgba(30,50,40,.08); }
.education-sticky-nav { position: sticky; top: 74px; z-index: 9; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -8px 0 18px; padding: 8px 0 6px; background: var(--paper); }
.workspace:has(> .production-db-warning) .education-sticky-nav { top: 118px; }
.education-sticky-nav .tabs { margin-bottom: 0; }
.education-sticky-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 14px; }
.toolbar .field-search { flex: 1; min-width: 190px; }
.field-search, .select, .input, .textarea { border: 1px solid var(--line-strong); border-radius: 10px; background: white; color: var(--ink); padding: 9px 11px; font-size: 12px; }
.textarea { width: 100%; min-height: 132px; resize: vertical; line-height: 1.55; }
.input:disabled, .select:disabled { background: #f1f3f1; color: #77827d; }

.list { display: grid; gap: 8px; }
.list-item { width: 100%; border: 1px solid var(--line); border-radius: 13px; background: white; padding: 13px; color: inherit; text-align: left; transition: .15s ease; }
.list-item:hover { border-color: #adbbb3; transform: translateY(-1px); }
.list-item.selected { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(22, 63, 52, .1); background: #fbfdfc; }
.list-item-top { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.list-title { font-size: 12px; font-weight: 850; line-height: 1.45; }
.list-subtitle { margin-top: 5px; color: var(--muted); font-size: 10px; }

.badge { display: inline-flex; align-items: center; gap: 5px; width: fit-content; border-radius: 99px; padding: 4px 8px; color: #49554f; background: #edf1ee; font-size: 9px; font-weight: 900; letter-spacing: .025em; white-space: nowrap; }
.badge.green { color: var(--green); background: var(--green-soft); }
.badge.blue { color: var(--blue); background: var(--blue-soft); }
.badge.yellow { color: var(--yellow); background: var(--yellow-soft); }
.badge.red { color: var(--red); background: var(--red-soft); }
.badge.dark { color: white; background: var(--brand); }

.detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.detail-title { font-size: 22px; font-weight: 900; letter-spacing: -.04em; }
.meta-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.meta { border-radius: 11px; padding: 11px; background: #f3f6f3; }
.meta-label { color: var(--muted); font-size: 9px; font-weight: 800; }
.meta-value { margin-top: 4px; font-size: 11px; font-weight: 800; }

.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 13px; }
.table { width: 100%; border-collapse: collapse; min-width: 620px; }
.table th { padding: 10px 12px; color: var(--muted); background: #f4f6f4; font-size: 9px; font-weight: 900; text-align: left; letter-spacing: .03em; }
.table td { padding: 11px 12px; border-top: 1px solid var(--line); font-size: 11px; vertical-align: middle; }
.table tr:hover td { background: #fcfdfc; }
.permission-table { min-width: 900px; }
.permission-bulk-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.permission-bulk-actions > div { display: flex; gap: 7px; }
.permission-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.permission-editor-row { display: grid; grid-template-columns: minmax(0, 1fr) 140px; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 11px; padding: 9px 11px; background: #fbfcfb; font-size: 12px; font-weight: 800; }
.company-management-list { display: grid; gap: 18px; }
.managed-company { overflow: visible; }
.workflow-strip { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 12px; margin-bottom: 14px; }
.workflow-chip { flex: 0 0 auto; border-radius: 999px; padding: 6px 9px; background: #edf1ee; color: var(--muted); font-size: 9px; font-weight: 850; }
.workflow-chip.completed { color: var(--green); background: var(--green-soft); }
.workflow-chip.in_progress, .workflow-chip.waiting { color: var(--yellow); background: var(--yellow-soft); }
.workflow-chip.action_required { color: var(--red); background: var(--red-soft); }
.participant-management-table { min-width: 1120px; }
.workflow-editor-list { display: grid; gap: 8px; }
.workflow-editor-row { display: grid; grid-template-columns: 150px 150px minmax(200px, 1fr); gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.workflow-editor-row legend { padding: 0 5px; color: var(--ink); font-size: 11px; font-weight: 900; }
.audit-toolbar .field-search { min-width: 260px; }
.audit-table { min-width: 1080px; }
.audit-table td { vertical-align: top; line-height: 1.5; }
.audit-result { display: flex; flex-wrap: wrap; gap: 5px; }
.audit-diff { display: grid; gap: 3px; min-width: 180px; max-width: 380px; font-size: 9px; color: var(--muted); overflow-wrap: anywhere; }
.audit-diff strong { color: var(--ink); }
.audit-pagination { margin-top: 14px; justify-content: center; }
.session-number { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 10px; background: var(--brand-soft); color: var(--brand); font-size: 11px; font-weight: 900; }
.mini-input { width: 112px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 7px; font-size: 10px; }

.term-groups { display: grid; gap: 11px; }
.term-group { border: 1px solid var(--line); border-radius: 14px; padding: 13px; }
.term-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.term-group-title { font-size: 12px; font-weight: 900; }
.term-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.term-chip { border: 1px solid var(--line); border-radius: 9px; padding: 7px 9px; background: white; color: var(--ink); font-size: 10px; }
.term-chip.selected { border-color: var(--brand); background: var(--brand-soft); color: var(--brand); font-weight: 900; }

.selection-config-layout { grid-template-columns: minmax(270px, .72fr) minmax(0, 1.6fr); }
.section-bar { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 24px 0 11px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.section-bar h3 { margin: 0; }
.section-bar p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.config-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.config-card { min-width: 0; border: 1px solid var(--line); border-radius: 13px; padding: 13px; background: #fbfcfb; }
.config-card-head, .application-line-head, .participant-selection-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.config-title { color: var(--ink); font-size: 12px; font-weight: 900; line-height: 1.45; }
.config-metrics { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; color: var(--muted); font-size: 9px; }
.curriculum-config-list { display: grid; gap: 8px; }
.curriculum-config-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .62fr); gap: 14px; align-items: center; border: 1px solid var(--line); border-radius: 13px; padding: 13px; background: white; }
.curriculum-config-main { min-width: 0; }
.curriculum-config-meta { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; color: var(--muted); font-size: 9px; text-align: right; }
.label-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.label-chip { display: inline-flex; align-items: center; min-height: 20px; padding: 3px 7px; border-radius: 999px; color: #315348; background: var(--brand-soft); font-size: 8px; font-weight: 800; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }

.need-catalog-panel { overflow: visible; }
.need-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; margin-bottom: 15px; }
.need-summary { border-top: 4px solid var(--brand); border-radius: 12px; padding: 12px 13px; background: #f3f6f3; }
.need-summary.source-existing { border-top-color: #1f4e78; background: #e8f0f7; }
.need-summary.source-survey { border-top-color: #2e7d32; background: #e8f4e9; }
.need-summary.source-ai { border-top-color: #b34700; background: #fff0e5; }
.need-summary.source-manual { border-top-color: #66756d; background: #edf1ef; }
.need-summary span, .need-summary strong { display: block; }
.need-summary span { color: var(--muted); font-size: 10px; font-weight: 850; }
.need-summary strong { margin-top: 5px; font-size: 24px; }
.need-filter-grid { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #f7f9f7; }
.need-filter-grid .need-query { width: 100%; min-width: 0; }
.need-filter-group { min-width: 0; margin: 0; border: 0; padding: 0; }
.need-filter-group legend { margin-bottom: 7px; color: var(--muted); font-size: 13px; font-weight: 900; }
.need-filter-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.need-filter-chip { min-height: 34px; border: 1px solid #cbd4cf; border-radius: 999px; padding: 6px 11px; color: #405149; background: white; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.need-filter-chip:hover, .need-filter-chip:focus-visible { border-color: var(--brand); color: var(--brand); }
.need-filter-chip.active { border-color: var(--brand); color: white; background: var(--brand); }
.need-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 13px 2px 9px; color: var(--muted); font-size: 11px; }
.need-topic-list { display: grid; gap: 9px; }
.need-topic-section + .need-topic-section { margin-top: 24px; }
.need-topic-section.pending { border-radius: 14px; padding: 0 14px 14px; background: #fffaf0; }
.need-topic-create-panel { scroll-margin-top: 84px; margin-top: 28px; }
.need-topic-create-method { min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 15px; background: #fbfcfb; }
.need-topic-create-method > summary { cursor: pointer; color: var(--ink); font-size: 15px; font-weight: 900; }
.need-topic-create-method[open] > summary { margin-bottom: 14px; }
.need-topic-create-card { margin-top: 0; }
.need-topic-create-marker { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; color: white; background: var(--job-color); font-size: 20px; font-weight: 900; }
.need-topic-create-card .field > span { color: var(--muted); font-size: 11px; font-weight: 900; }
.need-topic-create-card .need-topic-main { display: grid; gap: 10px; }
.need-topic-create-title { width: 100%; }
.need-topic-create-title .input { font-size: 15px; font-weight: 900; }
.need-topic-create-card .need-topic-main > .field > .textarea { min-height: 86px; }
.need-topic-create-card .need-topic-details textarea { min-height: 72px; }
.need-topic-create-card .need-topic-details .input, .need-topic-create-card .need-topic-details .textarea { padding: 8px 9px; }
.need-topic-create-card .need-topic-details dd { margin-top: 5px; }
.need-topic-ai-method { margin-top: 14px; }
.inline-form-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.curriculum-analysis-form { display: grid; gap: 12px; }
.curriculum-analysis-results { margin-top: 18px; }
.curriculum-analysis-results .section-bar { margin-top: 0; }
.curriculum-analysis-suggestions { display: grid; gap: 8px; margin-bottom: 12px; }
.curriculum-analysis-suggestion { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; border: 1px solid var(--line); border-radius: 11px; padding: 10px; background: white; cursor: pointer; }
.curriculum-analysis-suggestion input { width: 18px; height: 18px; accent-color: var(--brand); }
.curriculum-analysis-suggestion strong, .curriculum-analysis-suggestion small, .curriculum-analysis-suggestion span > span { display: block; }
.curriculum-analysis-suggestion small { margin: 3px 0 5px; color: var(--muted); }
.curriculum-analysis-suggestion span > span { color: var(--muted); line-height: 1.5; }
.need-topic-card { --job-color: #87948d; --job-bg: white; display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; border: 1px solid var(--line); border-left: 6px solid var(--job-color); border-radius: 14px; padding: 14px; background: var(--job-bg); }
.need-topic-card.selected { box-shadow: 0 0 0 3px rgba(22, 63, 52, .25); background: var(--job-bg); }
.need-topic-card.job-all { --job-color: #686f78; --job-bg: #e7e6e6; }
.need-topic-card.job-web-marketing { --job-color: #bf7447; --job-bg: #fce4d6; }
.need-topic-card.job-web-engineering { --job-color: #4c83ac; --job-bg: #ddebf7; }
.need-topic-card.job-sales { --job-color: #56874a; --job-bg: #e2efda; }
.need-topic-card.job-back-office { --job-color: #a68118; --job-bg: #fff2cc; }
.need-topic-card.job-creative { --job-color: #9d659d; --job-bg: #f2e2f2; }
.need-topic-card.job-customer-support { --job-color: #b8794b; --job-bg: #fbe5d6; }
.need-topic-card.job-pm-dx { --job-color: #537b9d; --job-bg: #d6e4f0; }
.need-topic-card.job-store-operations { --job-color: #7e5b92; --job-bg: #e8daef; }
.need-selection-help { margin: 0 0 15px; border: 1px solid #c5dbd0; border-radius: 12px; padding: 12px 14px; color: #315348; background: #f0f8f4; font-size: 14px; line-height: 1.65; }
.job-profile-editor-list { display: grid; gap: 14px; }
.job-profile-editor { display: grid; gap: 15px; border: 1px solid var(--line); border-radius: 14px; padding: 17px; background: #fbfcfb; }
.job-profile-editor-head, .job-profile-editor-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.job-profile-editor-head strong, .job-profile-editor-head span { display: block; }
.job-profile-editor-head strong { font-size: 17px; }
.job-profile-editor-head span, .job-profile-editor-foot > span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.job-profile-fields { display: grid; gap: 12px; }
.job-profile-fields .field { margin: 0; }
.job-profile-fields .field > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 13px; font-weight: 900; }
.job-profile-fields .input, .job-profile-fields .textarea { width: 100%; font-size: 14px; }
.job-profile-fields .textarea { min-height: 100px; }
.need-topic-side { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 10px; border-right: 1px solid rgba(76, 96, 85, .2); padding-right: 16px; }
.need-topic-select { display: grid; width: 34px; height: 34px; place-items: center; flex: 0 0 auto; border-radius: 8px; background: rgba(255, 255, 255, .74); cursor: pointer; }
.need-topic-select input { width: 20px; height: 20px; margin: 0; accent-color: var(--brand); }
.need-topic-select input:disabled { cursor: not-allowed; }
.need-topic-attribute-stack { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; min-width: 0; gap: 9px; align-content: start; }
.need-topic-source-line { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; }
.need-topic-source-line .need-source { justify-self: start; }
.need-topic-level-line { display: grid; grid-template-columns: max-content max-content; align-items: center; gap: 7px; }
.need-topic-course-list, .need-topic-job-list { display: grid; gap: 7px; justify-items: start; }
.need-topic-job-list { border-top: 1px solid rgba(76, 96, 85, .3); padding-top: 9px; }
.need-topic-course-list .need-course-chip, .need-topic-job-list .need-job-chip { max-width: 100%; white-space: normal; line-height: 1.35; }
.need-topic-main { min-width: 0; }
.need-topic-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.need-topic-title { color: var(--ink); font-size: 15px; font-weight: 900; line-height: 1.45; }
.need-topic-main > p { margin: 9px 0; color: #425149; font-size: 12px; line-height: 1.65; }
.need-topic-source-row, .need-job-matches { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 7px; }
.need-source, .need-duration, .need-difficulty, .need-job-matches span, .need-job-chip, .need-course-chip { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 900; }
.need-source.source-existing { color: white; background: #1f4e78; }
.need-source.source-survey { color: white; background: #2e7d32; }
.need-source.source-ai { color: white; background: #b34700; }
.need-source.source-manual { color: white; background: #66756d; }
.need-duration { color: #4c5661; background: #eef0f2; }
.need-duration.duration-under-60 { color: #642a2a; background: #ffadad; }
.need-duration.duration-from-60-to-90 { color: #6d4315; background: #ffd6a5; }
.need-duration.duration-from-91-to-120 { color: #585811; background: #fdffb6; }
.need-duration.duration-from-121-to-150 { color: #254979; background: #a0c4ff; }
.need-duration.duration-over-150 { color: #275b31; background: #caffbf; }
.need-difficulty.difficulty-beginner { color: white; background: #1f7a3d; }
.need-difficulty.difficulty-intermediate { color: white; background: #b36b00; }
.need-difficulty.difficulty-advanced { color: white; background: #c0392b; }
.need-job-matches span { color: #536159; background: #edf1ee; }
.need-job-matches .match-primary { color: white; background: #1f7a3d; }
.need-job-matches .match-secondary { color: white; background: #2e5fa3; }
.need-job-matches .match-low { color: white; background: #b36b00; }
.need-job-chip { color: #536159; background: #edf1ee; }
.need-job-chip.match-primary { color: white; background: #1f7a3d; }
.need-job-chip.match-secondary { color: white; background: #2e5fa3; }
.need-job-chip.match-low { color: white; background: #b36b00; }
.need-course-chip { border: 1px solid currentColor; color: #315348; background: rgba(255,255,255,.8); }
.need-course-chip.course-marketing { color: #7b3f18; background: #fff0e5; }
.need-course-chip.course-creative { color: #65406d; background: #f4e8f6; }
.need-course-chip.course-sales { color: #205b31; background: #e6f3e7; }
.need-course-chip.course-dx { color: #244f73; background: #e5f0f8; }
.need-topic-actions { display: grid; width: 100%; gap: 7px; margin-top: auto; }
.need-review-toggle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; overflow: hidden; border: 1px solid #aeb9b2; border-radius: 999px; background: rgba(255,255,255,.72); }
.need-review-option { min-height: 32px; border: 0; padding: 5px 9px; color: #536159; background: transparent; font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
.need-review-option + .need-review-option { border-left: 1px solid #c7d0ca; }
.need-review-option.adopt.active { color: white; background: #1f7a3d; }
.need-review-option.reject.active { color: white; background: #b64b40; }
.need-review-option:not(.active):hover, .need-review-option:not(.active):focus-visible { color: var(--brand); background: white; outline: none; }
.ai-assignment-button { width: 100%; }
.need-topic-details { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 9px; }
.need-topic-details h4 { margin: 0; color: var(--brand); font-size: 13px; font-weight: 900; }
.need-topic-details dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 11px 0 0; }
.need-topic-details dl div { border-radius: 10px; padding: 10px; background: #f6f8f6; }
.need-topic-details dt { color: var(--muted); font-size: 9px; font-weight: 900; }
.need-topic-details dd { margin: 5px 0 0; font-size: 11px; line-height: 1.55; }
.ai-assignment-list { display: grid; gap: 9px; }
.ai-assignment-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) 140px; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px; background: #f8faf8; }
.ai-assignment-item > input { width: 18px; height: 18px; accent-color: var(--brand); }
.ai-assignment-item strong, .ai-assignment-item small { display: block; }
.ai-assignment-item small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.topic-material-list { display: grid; gap: 8px; }
.topic-material-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 11px 13px; color: var(--ink); background: #f8faf8; text-decoration: none; }
.topic-material-item:hover, .topic-material-item:focus-visible { border-color: var(--brand); }
.topic-material-item strong, .topic-material-item small { display: block; }
.topic-material-item small { margin-top: 4px; color: var(--muted); font-size: 13px; }
.material-add-section { display: grid; gap: 9px; margin-top: 16px; border-top: 1px solid var(--line); padding-top: 15px; }
.material-add-section h3, .material-add-section p { margin: 0; }
.material-add-section p { color: var(--muted); font-size: 14px; line-height: 1.55; }
.material-add-section .button { justify-self: start; }
.material-folder-link { margin-top: 16px; text-align: right; }
.material-folder-link a { color: var(--brand); font-weight: 850; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.plan-status-stack { display: grid; justify-items: end; gap: 5px; }
.intake-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #c5dbd0; border-radius: 14px; padding: 14px 16px; background: #f0f8f4; }
.intake-card span, .intake-card strong, .intake-card small { display: block; }
.intake-card span { color: var(--muted); font-size: 9px; font-weight: 850; }
.intake-card strong { margin-top: 4px; font-size: 15px; }
.intake-card small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.curriculum-topic-list { display: grid; gap: 8px; }
.curriculum-topic-row { --job-color: #87948d; --job-bg: white; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; border: 1px solid var(--line); border-left: 5px solid var(--job-color); border-radius: 13px; padding: 13px; background: var(--job-bg); }
.curriculum-topic-row.job-all { --job-color: #686f78; --job-bg: #e7e6e6; }
.curriculum-topic-row.job-web-marketing { --job-color: #bf7447; --job-bg: #fce4d6; }
.curriculum-topic-row.job-web-engineering { --job-color: #4c83ac; --job-bg: #ddebf7; }
.curriculum-topic-row.job-sales { --job-color: #56874a; --job-bg: #e2efda; }
.curriculum-topic-row.job-back-office { --job-color: #a68118; --job-bg: #fff2cc; }
.curriculum-topic-row.job-creative { --job-color: #9d659d; --job-bg: #f2e2f2; }
.curriculum-topic-row.job-customer-support { --job-color: #b8794b; --job-bg: #fbe5d6; }
.curriculum-topic-row.job-pm-dx { --job-color: #537b9d; --job-bg: #d6e4f0; }
.curriculum-topic-row.job-store-operations { --job-color: #7e5b92; --job-bg: #e8daef; }
.curriculum-topic-row p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.curriculum-topic-decision { display: grid; justify-items: end; gap: 8px; }
.decision-note { margin-top: 7px; color: #536159; font-size: 9px; }
.plan-next-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.plan-next-links a { border: 1px solid var(--line); border-radius: 12px; padding: 13px; color: var(--brand); background: #fbfcfb; text-decoration: none; }
.plan-next-links a:hover, .plan-next-links a:focus-visible { border-color: var(--brand); background: var(--brand-soft); }
.plan-next-links strong, .plan-next-links span { display: block; }
.plan-next-links strong { font-size: 12px; }
.plan-next-links span { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.curriculum-set-inline-editor { display: grid; gap: 12px; margin-bottom: 16px; }
.curriculum-set-description { min-height: 84px; }
.curriculum-set-save-state { color: var(--muted); font-size: 10px; font-weight: 850; }
.curriculum-set-detail-status { display: flex; align-items: center; gap: 9px; }
.curriculum-set-capacity { border-width: 2px; }
.curriculum-set-capacity.is-short { border-color: #d66a6a; background: #fff8f7; }
.curriculum-set-capacity.is-over { border-color: #5c8fd8; background: #f5f9ff; }
.curriculum-set-capacity-label { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 24px; border-radius: 999px; padding: 4px 8px; background: #eef2ef; color: #466057; font-size: 9px; font-weight: 900; }
.curriculum-set-capacity-label.is-short, .curriculum-set-capacity.is-short .curriculum-set-capacity-label { background: #fee7e5; color: #9b302c; }
.curriculum-set-capacity-label.is-over, .curriculum-set-capacity.is-over .curriculum-set-capacity-label { background: #e5efff; color: #245b9f; }
.curriculum-set-session-list { display: grid; gap: 9px; }
.curriculum-set-session { display: grid; width: 100%; grid-template-columns: 38px minmax(0, 1fr) minmax(190px, auto); align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 13px; padding: 12px 13px; background: #fbfcfb; color: inherit; text-align: left; }
.curriculum-set-session:hover, .curriculum-set-session:focus-visible { border-color: var(--brand); background: var(--brand-soft); }
.curriculum-set-session-main { min-width: 0; }
.curriculum-set-session-main strong, .curriculum-set-session-main span { display: block; }
.curriculum-set-session-main strong { font-size: 13px; }
.curriculum-set-session-main span { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.curriculum-set-session-time { color: #315348; font-size: 11px; font-weight: 850; text-align: right; }
.curriculum-set-next { margin-top: 16px; }
.curriculum-set-next { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.curriculum-set-editor { display: grid; gap: 7px; margin-top: 18px; }
.curriculum-set-editor-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.curriculum-set-editor-toolbar strong, .curriculum-set-editor-toolbar span { display: block; }
.curriculum-set-editor-toolbar span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.curriculum-set-editor-head, .curriculum-set-editor-row { display: grid; grid-template-columns: 38px minmax(190px, 1.4fr) minmax(190px, 1fr) 82px 58px; align-items: center; gap: 8px; }
.curriculum-set-editor-head { padding: 0 4px; color: var(--muted); font-size: 10px; font-weight: 900; }
.curriculum-set-editor-row { border: 1px solid var(--line); border-radius: 11px; padding: 8px; background: #f8faf8; }

.application-builder { overflow: hidden; }
.application-overview-layout { display: grid; grid-template-columns: minmax(250px, .55fr) minmax(0, 2.45fr); gap: 18px; align-items: start; }
.application-hierarchy { position: sticky; top: 82px; }
.application-tree-all { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; color: var(--ink); background: white; font-size: 10px; font-weight: 900; text-align: left; }
.application-tree-all.selected, .application-tree-company-button.selected, .application-tree-industries button.selected { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.application-tree { display: grid; gap: 10px; margin-top: 10px; }
.application-tree-company { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: white; }
.application-tree-company-button, .application-tree-industries button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 0; color: var(--ink); background: white; text-align: left; }
.application-tree-company-button { padding: 11px 12px; font-size: 10px; font-weight: 900; }
.application-tree-company-button span:last-child, .application-tree-industries button span:last-child { color: var(--muted); font-size: 8px; }
.application-tree-industries { display: grid; border-top: 1px solid var(--line); background: #f7f9f7; }
.application-tree-industries button { position: relative; padding: 8px 12px 8px 27px; font-size: 9px; }
.application-tree-industries button::before { content: ""; position: absolute; left: 14px; top: 0; bottom: 50%; width: 7px; border-left: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.axis-switch { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 10px; background: #f3f6f3; }
.axis-switch button { border: 0; border-radius: 7px; padding: 7px 10px; color: var(--muted); background: transparent; font-size: 9px; font-weight: 900; }
.axis-switch button.active { color: var(--brand); background: white; box-shadow: 0 2px 7px rgba(20,45,34,.1); }
.application-gantt-scroll { max-height: 620px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; border: 1px solid var(--line); border-radius: 13px; }
.application-gantt-scroll:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.application-person-gantt { min-width: max(100%, calc(180px + var(--gantt-date-count) * 210px)); background: white; }
.application-gantt-row { display: grid; grid-template-columns: 180px repeat(var(--gantt-date-count), minmax(210px, 1fr)); min-height: 112px; border-top: 1px solid var(--line); }
.application-gantt-row:first-child { border-top: 0; }
.application-gantt-header { position: sticky; top: 0; z-index: 8; min-height: auto; color: var(--muted); background: #f3f6f3; font-size: 9px; font-weight: 900; }
.application-gantt-label { position: sticky; left: 0; z-index: 4; display: grid; align-content: center; gap: 4px; border-right: 1px solid var(--line); padding: 12px; background: white; }
.application-gantt-header .application-gantt-label { z-index: 10; background: #f3f6f3; }
.application-gantt-label strong { font-size: 11px; }
.application-gantt-label span { color: var(--muted); font-size: 8px; }
.application-gantt-date { display: grid; gap: 2px; align-content: center; border-right: 1px solid var(--line); padding: 10px; }
.application-gantt-date span { font-size: 8px; font-weight: 600; }
.application-gantt-cell { display: grid; align-content: start; gap: 5px; min-width: 0; border-right: 1px solid var(--line); padding: 8px; background: repeating-linear-gradient(135deg, transparent 0, transparent 17px, rgba(222,230,225,.25) 17px, rgba(222,230,225,.25) 18px); }
.person-gantt-card { display: grid; gap: 4px; min-width: 0; border-left: 4px solid var(--brand); border-radius: 9px; padding: 8px 9px; color: #23473d; background: var(--brand-soft); }
.person-gantt-card strong { font-size: 9px; line-height: 1.4; }
.person-gantt-card span, .person-gantt-time { color: var(--muted); font-size: 8px; }
.person-gantt-time { font-weight: 900; }
.application-date-gantt { min-width: 960px; background: white; }
.application-date-gantt .board-header { position: sticky; top: 0; }
.application-date-gantt-row .board-date small { display: block; margin-top: 8px; color: var(--brand); font-size: 8px; }
.application-gantt-time-card { position: absolute; min-width: 174px; height: 80px; display: grid; gap: 3px; border-left: 4px solid var(--brand); border-radius: 10px; padding: 8px 10px; overflow: hidden; color: var(--ink); background: var(--brand-soft); box-shadow: 0 4px 14px rgba(20,45,34,.12); }
.application-gantt-time-card strong { font-size: 10px; }
.application-gantt-time-card span { font-size: 9px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.application-gantt-time-card small, .application-gantt-time { color: var(--muted); font-size: 8px; }
.application-gantt-time { font-weight: 900; }
.builder-basics { margin-bottom: 16px; }
.readonly-value { display: flex; align-items: center; min-height: 39px; border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; color: var(--ink); background: #f6f8f6; font-size: 11px; font-weight: 800; }
.participant-picker { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.6fr); gap: 18px; align-items: center; margin: 8px 0 18px; border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: #fbfcfb; }
.participant-checks { display: flex; flex-wrap: wrap; gap: 7px; }
.participant-check { display: flex; align-items: center; gap: 7px; min-height: 34px; border: 1px solid var(--line); border-radius: 10px; padding: 7px 10px; background: white; color: var(--muted); font-size: 9px; font-weight: 800; }
.participant-check:has(input:checked) { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.participant-check.static { justify-self: start; border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.participant-selection-list { display: grid; gap: 14px; }
.selection-layout-note { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 14px; border-radius: 12px; padding: 12px 14px; background: #f3f6f3; }
.selection-layout-note div { display: grid; gap: 3px; }
.selection-layout-note strong { font-size: 10px; }
.selection-layout-note span { color: var(--muted); font-size: 9px; }
.schedule-prefill { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; margin-bottom: 14px; }
.schedule-prefill span { margin-left: auto; color: var(--muted); }
.application-schedule-picker { margin: 0 0 14px; border: 1px solid #bcd8ce; border-radius: 14px; padding: 14px; background: #f4faf7; }
.company-reference-picker { display: grid; gap: 11px; margin: 14px 0; border: 1px solid #bcd8ce; border-radius: 14px; padding: 14px; background: #f4faf7; }
.company-reference-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.company-reference-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.company-reference-head h3 { margin: 0; font-size: 11px; }
.company-reference-head p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.company-reference-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.company-reference-results { display: grid; gap: 7px; max-height: 280px; overflow-y: auto; }
.company-reference-result { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; border: 1px solid var(--line); border-radius: 11px; padding: 11px 12px; color: var(--ink); background: white; text-align: left; }
.company-reference-result:hover, .company-reference-result:focus-visible { border-color: var(--brand); outline: 2px solid var(--brand-soft); }
.company-reference-result strong, .company-reference-result small { display: block; }
.company-reference-result strong { font-size: 10px; }
.company-reference-result small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.company-reference-empty { border: 1px dashed var(--line-strong); border-radius: 11px; padding: 14px; color: var(--muted); background: white; text-align: center; font-size: 9px; }
.company-reference-empty strong { display: block; color: var(--ink); font-size: 10px; }
.company-reference-empty p { margin: 6px 0 10px; line-height: 1.6; }
.company-reference-search-panel { display: grid; gap: 10px; }
.company-reference-current { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; align-items: baseline; border-top: 1px solid #d8e6df; padding-top: 10px; }
.company-reference-current span { color: var(--muted); font-size: 8px; font-weight: 800; }
.company-reference-current strong { font-size: 10px; }
.company-reference-current small { grid-column: 2; color: var(--muted); font-size: 8px; }
.identity-status { color: var(--muted); font-size: 9px; font-weight: 800; }
.clerk-host { min-height: 430px; display: grid; place-items: start center; }
.clerk-redirect-fallback { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.application-schedule-picker-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 11px; }
.application-schedule-picker-head h3 { margin: 0; font-size: 11px; }
.application-schedule-picker-head p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.participant-selection-card { border: 1px solid var(--line); border-radius: 16px; padding: 16px; background: white; }
.participant-selection-card.not-target { border-style: dashed; background: #fafbfa; }
.participant-selection-head { margin-bottom: 13px; }
.session-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.session-choice { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; align-items: center; min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 10px; background: #f7f8f7; opacity: .72; }
.session-choice.selected { border-color: #bcd8ce; background: #f4faf7; opacity: 1; }
.session-choice-toggle { display: flex; align-items: center; gap: 7px; font-size: 10px; }
.session-choice-fields { display: grid; grid-template-columns: minmax(105px, .55fr) minmax(220px, 1.25fr) auto; gap: 7px; min-width: 0; }
.session-choice-fields .select { min-width: 0; }
.session-choice-empty { display: grid; gap: 3px; color: var(--muted); font-size: 9px; }
.session-choice-empty span { color: var(--ink); font-weight: 800; }
.session-clear { align-self: end; min-height: 39px; border: 1px solid #d7dfda; border-radius: 9px; padding: 7px 9px; color: var(--muted); background: white; font-size: 8px; font-weight: 800; white-space: nowrap; }
.session-clear:hover, .session-clear:focus-visible { border-color: var(--red); color: var(--red); outline: none; }
.compact-field { display: grid; gap: 4px; min-width: 0; }
.compact-field > span { color: var(--muted); font-size: 8px; font-weight: 800; }
.builder-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; border-radius: 14px; padding: 15px 17px; color: #315348; background: var(--brand-soft); }
.builder-submit strong { font-size: 11px; }
.builder-submit p { margin: 4px 0 0; font-size: 9px; }
.application-line-list { display: grid; gap: 10px; }
.application-line-card { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: #fbfcfb; }
.selection-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.selection-summary-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; align-items: start; border-radius: 10px; padding: 9px; background: white; }
.selection-summary-item strong { font-size: 9px; line-height: 1.4; }
.selection-schedule { margin-top: 5px; color: var(--brand); font-size: 8px; font-weight: 800; }

.board-wrap { max-height: 520px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding-bottom: 5px; }
.board-wrap:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.schedule-board { min-width: 960px; border: 1px solid var(--line); border-radius: 14px; overflow: visible; background: white; }
.board-header, .board-row { display: grid; grid-template-columns: 120px minmax(780px, 1fr); }
.board-header { position: sticky; top: 0; z-index: 6; background: #f3f6f3; color: var(--muted); font-size: 9px; font-weight: 900; }
.board-date { border-right: 1px solid var(--line); padding: 13px; }
.board-header .board-date { position: sticky; left: 0; z-index: 8; background: #f3f6f3; }
.board-hours { display: grid; grid-template-columns: repeat(9, 1fr); }
.board-hour { padding: 13px 4px; border-right: 1px solid var(--line); }
.board-row { min-height: 128px; border-top: 1px solid var(--line); }
.board-row .board-date { position: sticky; left: 0; z-index: 4; background: white; font-weight: 900; font-size: 11px; }
.board-row .board-date span { display: block; color: var(--muted); font-size: 9px; margin-top: 5px; font-weight: 600; }
.board-track { position: relative; background: repeating-linear-gradient(to right, transparent 0, transparent calc(11.111% - 1px), #edf0ed calc(11.111% - 1px), #edf0ed 11.111%); }
.event-card { position: absolute; top: 14px; min-width: 138px; height: 98px; border: 0; border-left: 4px solid var(--blue); border-radius: 11px; padding: 9px 10px; overflow: hidden; color: var(--ink); background: var(--blue-soft); box-shadow: 0 5px 16px rgba(20,45,34,.12); cursor: pointer; text-align: left; }
.event-card:hover, .event-card:focus-visible { filter: brightness(.97); outline: 2px solid var(--brand); outline-offset: 2px; }
.event-card.yellow { border-left-color: #d79b1d; background: var(--yellow-soft); }
.event-card.green { border-left-color: var(--green); background: var(--green-soft); }
.event-card.red { border-left-color: var(--red); background: var(--red-soft); }
.event-time { font-size: 9px; font-weight: 900; }
.event-title { margin-top: 4px; font-size: 10px; font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-meta { margin-top: 4px; color: #536159; font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-detail { display: inline-flex; margin-top: 7px; color: var(--brand); font-size: 8px; font-weight: 900; }
.schedule-workbench { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 18px; align-items: start; }
.schedule-palette { position: sticky; top: 18px; max-height: calc(100vh - 54px); overflow: hidden; }
.schedule-palette .panel-head { padding: 18px; }
.schedule-palette .panel-body { padding: 14px; overflow-y: auto; }
.schedule-palette-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 14px; }
.schedule-palette-tabs .tab { min-height: 42px; font-size: 14px; }
.schedule-sidebar-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin-bottom: 14px; }
.schedule-sidebar-tabs .tab { min-height: 44px; padding-inline: 8px; font-size: 14px; }
.schedule-palette-selection-actions { display: flex; justify-content: flex-end; margin: -4px 0 10px; }
.schedule-selected-curriculum-summary { display: grid; gap: 9px; margin-bottom: 14px; border: 2px solid var(--brand); border-radius: 13px; padding: 12px; background: var(--brand-soft); }
.schedule-selected-curriculum-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.schedule-selected-curriculum-summary > div > strong { font-size: 14px; line-height: 1.45; }
.schedule-selected-curriculum-summary > p { margin: 0; color: #315348; font-size: 12px; font-weight: 700; line-height: 1.5; }
.schedule-selected-curriculum-events { display: grid; gap: 6px; border-top: 1px solid rgba(27,119,87,.2); padding-top: 8px; }
.schedule-selected-curriculum-events > span { color: var(--muted); font-size: 12px; font-weight: 900; }
.schedule-selected-curriculum-events > small { color: var(--muted); }
.schedule-selected-curriculum-event { display: grid; gap: 2px; width: 100%; border: 1px solid rgba(27,119,87,.22); border-radius: 9px; padding: 7px 8px; color: var(--ink); background: white; cursor: pointer; text-align: left; }
.schedule-selected-curriculum-event span { color: var(--brand); font-size: 12px; font-weight: 900; }
.schedule-selected-curriculum-event small { color: var(--muted); font-size: 11px; }
.schedule-palette-list { display: grid; gap: 9px; }
.schedule-palette-item { display: grid; gap: 5px; width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 13px; color: var(--ink); background: #fff; cursor: grab; text-align: left; }
.schedule-palette-item:hover, .schedule-palette-item:focus-visible { border-color: var(--brand); outline: 2px solid rgba(27,119,87,.18); outline-offset: 1px; }
.schedule-palette-item.selected { border-color: var(--brand); background: var(--brand-soft); box-shadow: 0 0 0 2px rgba(27,119,87,.18); }
.schedule-palette-item strong { font-size: 15px; line-height: 1.45; }
.schedule-palette-item span { color: var(--muted); font-size: 13px; line-height: 1.4; }
.schedule-palette-set { display: grid; gap: 8px; border: 1px solid var(--line); border-radius: 14px; padding: 12px; background: #f7f9f7; }
.schedule-palette-set + .schedule-palette-set { margin-top: 10px; }
.schedule-palette-set > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.schedule-palette-set > div strong { font-size: 16px; }
.schedule-palette-set > div span, .schedule-palette-set > p { color: var(--muted); font-size: 13px; }
.schedule-palette-item.set-session { background: #fff; }
.schedule-palette-item.set-session.selected { background: var(--brand-soft); }
.schedule-event-list { display: grid; gap: 9px; }
.schedule-event-list-item { display: grid; gap: 5px; width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 13px; color: var(--ink); background: white; cursor: pointer; text-align: left; }
.schedule-event-list-item:hover, .schedule-event-list-item:focus-visible { border-color: var(--brand); outline: 2px solid rgba(27,119,87,.18); outline-offset: 1px; }
.schedule-event-list-item[data-draggable-schedule-event="true"], .db-timetable-event[data-draggable-schedule-event="true"] { cursor: grab; }
.schedule-event-list-item[data-draggable-schedule-event="true"]:active, .db-timetable-event[data-draggable-schedule-event="true"]:active { cursor: grabbing; }
.schedule-event-list-item.selected { border-color: var(--brand); background: var(--brand-soft); box-shadow: 0 0 0 2px rgba(27,119,87,.18); }
.schedule-event-list-item span, .schedule-event-list-item strong, .schedule-event-list-item small { display: block; }
.schedule-event-list-item span { color: var(--brand); font-size: 13px; font-weight: 900; }
.schedule-event-list-item strong { font-size: 15px; line-height: 1.45; }
.schedule-event-list-item small { color: var(--muted); font-size: 12px; }
.schedule-timetable-panel { min-width: 0; }
.schedule-board-controls { display: flex; flex-wrap: wrap; align-items: end; justify-content: flex-end; gap: 10px; }
.schedule-date-control, .schedule-duration-control, .schedule-instructor-control { display: grid; gap: 4px; color: var(--muted); font-size: 13px; font-weight: 800; }
.schedule-instructor-control .select { width: min(260px, 44vw); min-height: 36px; padding: 6px 30px 6px 9px; font-size: 13px; }
.schedule-duration-control .input { width: 116px; min-height: 36px; padding: 6px 8px; font-size: 14px; }
.schedule-start-date { width: 150px; min-height: 36px; padding: 6px 8px; font-size: 14px; }
.schedule-instruction { margin-bottom: 12px; border-radius: 10px; padding: 11px 13px; color: #315348; background: var(--brand-soft); font-size: 14px; font-weight: 700; line-height: 1.55; }
.schedule-availability-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 12px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fafbfa; }
.schedule-availability-legend strong { margin-right: 4px; font-size: 13px; }
.schedule-availability-legend span { border-radius: 999px; padding: 4px 8px; font-size: 11px; font-weight: 900; }
.schedule-availability-legend span.available { color: #176248; background: #dff4e8; }
.schedule-availability-legend span.busy { color: #795206; background: #ffedb4; }
.schedule-availability-legend span.unavailable { color: #8a372b; background: #ffe2dc; }
.schedule-availability-legend span.unregistered { color: #58645e; background: #e7ebe8; }
.schedule-availability-legend small { flex-basis: 100%; color: var(--muted); font-size: 11px; }
.db-timetable-wrap { max-height: 650px; overflow: auto; border: 1px solid var(--line); border-radius: 14px; overscroll-behavior: contain; }
.db-timetable { min-width: 1280px; background: white; }
.db-timetable-header, .db-timetable-row { display: grid; grid-template-columns: 128px minmax(1152px, 1fr); }
.db-timetable-header { position: sticky; top: 0; z-index: 12; border-bottom: 1px solid var(--line); background: #eef3ef; }
.db-timetable-date { position: sticky; left: 0; z-index: 8; display: grid; gap: 4px; align-content: center; border-right: 1px solid var(--line); padding: 10px 12px; background: white; }
.db-timetable-header .db-timetable-date { z-index: 14; background: #eef3ef; font-size: 14px; font-weight: 900; }
.db-timetable-date strong { font-size: 15px; }
.db-timetable-date span { color: var(--muted); font-size: 12px; }
.db-timetable-hours { display: grid; grid-template-columns: repeat(9, minmax(128px, 1fr)); }
.db-timetable-hour { border-right: 1px solid var(--line); color: var(--muted); }
.db-timetable-hour > strong { display: block; padding: 8px 6px 5px; font-size: 13px; }
.db-timetable-minute-scale { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.db-timetable-minute-scale span { border-left: 1px solid rgba(207,216,210,.72); padding: 3px 2px 6px; font-size: 10px; font-weight: 800; text-align: center; }
.db-timetable-minute-scale span:first-child { border-left: 0; }
.db-timetable-row { min-height: calc(76px * var(--schedule-lanes, 1)); border-bottom: 1px solid var(--line); }
.db-timetable-row.saturday .db-timetable-date { background: #f5f8ff; }
.db-timetable-row.sunday .db-timetable-date { background: #fff5f3; }
.db-timetable-track { position: relative; display: grid; grid-template-columns: repeat(36, minmax(32px, 1fr)); min-width: 1152px; min-height: calc(76px * var(--schedule-lanes, 1)); }
.db-timetable-cell { position: relative; min-height: 100%; border: 0; border-right: 1px solid #edf0ed; background: transparent; cursor: crosshair; }
.db-timetable-cell.availability-available { background: rgba(87, 184, 139, .14); }
.db-timetable-cell.availability-busy { background: rgba(236, 184, 55, .22); }
.db-timetable-cell.availability-unavailable { background: rgba(222, 110, 90, .11); }
.db-timetable-cell.availability-unregistered { background: repeating-linear-gradient(135deg, rgba(95,111,102,.04), rgba(95,111,102,.04) 5px, rgba(95,111,102,.1) 5px, rgba(95,111,102,.1) 10px); }
.db-timetable-cell:nth-child(4n) { border-right-color: #cfd8d2; }
.db-timetable-cell:hover, .db-timetable-cell:focus-visible { background: transparent; outline: none; }
.db-timetable-cell:not(:disabled):hover, .db-timetable-cell:not(:disabled):focus-visible { z-index: 4; }
.db-timetable-cell:not(:disabled):hover::after, .db-timetable-cell:not(:disabled):focus-visible::after { content: attr(data-preview-label); position: absolute; z-index: 4; top: 7px; left: 0; box-sizing: border-box; width: var(--schedule-preview-width, 600%); height: 60px; overflow: hidden; border: 2px solid var(--brand); border-radius: 10px; padding: 8px 9px; color: #123c31; background: rgba(201,235,223,.9); box-shadow: 0 0 0 2px rgba(27,119,87,.16); font-size: 13px; font-weight: 900; line-height: 1.35; text-align: left; pointer-events: none; }
.db-timetable-cell:disabled { cursor: not-allowed; background: repeating-linear-gradient(135deg, transparent, transparent 5px, rgba(95,111,102,.08) 5px, rgba(95,111,102,.08) 10px); }
.db-timetable-event { position: absolute; z-index: 5; top: calc(8px + var(--schedule-lane, 0) * 76px); height: 58px; min-width: 86px; overflow: hidden; border: 1px solid #c5d9d0; border-left: 5px solid var(--brand); border-radius: 10px; padding: 8px 10px; color: var(--ink); background: #e7f4ef; box-shadow: 0 4px 12px rgba(20,45,34,.12); cursor: pointer; text-align: left; }
.schedule-event-dragging .db-timetable-event { pointer-events: none; opacity: .68; }
.db-timetable-event.unassigned { border-left-color: #9a6e12; background: #fff4d7; }
.db-timetable-event.selected { z-index: 7; outline: 3px solid rgba(27,119,87,.34); outline-offset: 2px; }
.db-timetable-event strong, .db-timetable-event span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.db-timetable-event strong { font-size: 13px; }
.db-timetable-event span { margin-top: 5px; color: #536159; font-size: 12px; }
.schedule-detail-panel { margin-top: 18px; }

.user-management-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.user-management-guide article { display: grid; align-content: start; gap: 9px; border: 1px solid var(--line); border-radius: 16px; padding: 17px; background: white; }
.user-management-guide h2, .user-management-guide p { margin: 0; }
.user-management-guide h2 { font-size: 17px; }
.user-management-guide p { color: var(--muted); font-size: 13px; line-height: 1.65; }
.user-management-guide .button { justify-self: start; margin-top: auto; }
.user-directory-layout, .user-directory-section .panel-body { display: grid; gap: 18px; }
.directory-secondary { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.directory-subheading { margin-top: 4px; }
.participant-check small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.role-view-safety { display: grid; gap: 4px; margin-bottom: 14px; border: 1px solid #b9d8ca; border-radius: 12px; padding: 12px 14px; color: #245444; background: #edf7f2; }
.role-view-safety strong { font-size: 13px; }
.role-view-safety span { font-size: 12px; line-height: 1.55; }
.role-view-shell { display: grid; grid-template-columns: 170px minmax(0, 1fr); min-height: 360px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fafbfa; }
.role-view-nav { display: grid; align-content: start; gap: 6px; padding: 16px; color: #fff; background: #173f34; }
.role-view-nav strong { margin-bottom: 7px; font-size: 14px; }
.role-view-nav span { border-radius: 8px; padding: 8px 9px; background: rgba(255,255,255,.1); font-size: 11px; font-weight: 800; }
.role-view-shell > section { padding: 18px; overflow: hidden; background: white; }
.role-view-shell h3 { margin: 10px 0; }
.role-view-shell .list-item span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.role-view-participants { display: flex; flex-wrap: wrap; gap: 7px; }
.role-view-participants > span { border: 1px solid var(--line); border-radius: 999px; padding: 6px 9px; background: #f7f9f7; font-size: 11px; font-weight: 800; }
.application-schedule-picker .board-wrap { max-height: 430px; }
.application-schedule-picker .board-row { min-height: 174px; }
.application-event-card { top: 14px; min-width: 190px; height: 144px; padding: 12px 13px; }
.application-event-card .event-time { font-size: 11px; }
.application-event-card .event-title { margin-top: 6px; font-size: 13px; }
.application-event-card .event-detail { margin-top: 8px; font-size: 9px; }
.application-event-card.has-selections { box-shadow: 0 0 0 2px var(--brand), 0 6px 18px rgba(20,45,34,.16); }
.event-group-name { margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-selection-names { display: flex; flex-wrap: wrap; gap: 4px; max-height: 38px; margin-top: 7px; overflow-y: auto; }
.event-selection-names span { display: inline-flex; min-width: 0; max-width: 100%; border-radius: 999px; padding: 3px 6px; color: #315348; background: rgba(255,255,255,.72); font-size: 9px; font-weight: 900; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-selection-names .empty-selection { color: var(--muted); background: rgba(255,255,255,.46); }
.event-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.kanban { display: grid; grid-template-columns: repeat(4, minmax(210px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.kanban-column { border: 1px solid var(--line); border-radius: 14px; background: #f4f6f4; padding: 11px; min-height: 250px; }
.kanban-title { display: flex; align-items: center; justify-content: space-between; margin: 1px 2px 11px; font-size: 11px; font-weight: 900; }
.kanban-card { border: 1px solid var(--line); border-radius: 12px; background: white; padding: 12px; margin-bottom: 8px; box-shadow: 0 3px 10px rgba(30,50,40,.04); }
.kanban-card-title { font-size: 11px; font-weight: 900; line-height: 1.45; }
.kanban-card-meta { color: var(--muted); font-size: 9px; margin-top: 8px; line-height: 1.5; }

.warning-list { display: grid; gap: 8px; }
.warning-item { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid #efdfb6; background: #fffaf0; border-radius: 12px; padding: 11px; }
.warning-item.danger { border-color: #ecc3bf; background: #fff5f3; }
.warning-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--yellow-soft); color: var(--yellow); font-weight: 900; }
.warning-item.danger .warning-icon { color: var(--red); background: var(--red-soft); }
.warning-title { font-size: 11px; font-weight: 900; }
.warning-meta { margin-top: 3px; color: var(--muted); font-size: 9px; }

.empty { border: 1px dashed var(--line-strong); border-radius: 14px; padding: 34px 18px; color: var(--muted); text-align: center; font-size: 11px; }
.notice { border: 1px solid #d9e6df; border-radius: 12px; background: #f0f7f3; color: #315348; padding: 11px 13px; font-size: 10px; line-height: 1.55; }
.notice.warn { border-color: #ecd9a8; background: #fff8e5; color: #73530b; }
.feature-readonly-notice { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; border-color: #b9cfe8; background: #f2f7fc; color: #244a69; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }
.field { display: grid; gap: 6px; }
.field label { color: #4e5b54; font-size: 10px; font-weight: 900; }
.field-hint { color: var(--muted); font-size: 9px; line-height: 1.5; }
.check-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.check-row:last-child { border-bottom: 0; }
.schedule-move-confirmation { width: fit-content; justify-content: flex-start; gap: 9px; border-bottom: 0; padding: 8px 2px; cursor: pointer; font-weight: 850; }
.schedule-move-confirmation input { width: 19px; height: 19px; margin: 0; flex: 0 0 auto; accent-color: var(--brand); }
.switch { position: relative; width: 39px; height: 23px; flex: none; }
.switch input { opacity: 0; position: absolute; }
.switch span { position: absolute; inset: 0; border-radius: 99px; background: #c8d0cb; transition: .2s; }
.switch span::after { content: ""; position: absolute; width: 17px; height: 17px; left: 3px; top: 3px; border-radius: 99px; background: white; box-shadow: 0 2px 6px rgba(0,0,0,.2); transition: .2s; }
.switch input:checked + span { background: var(--green); }
.switch input:checked + span::after { transform: translateX(16px); }
.switch input:disabled + span { opacity: .55; cursor: not-allowed; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(11, 30, 25, .58); backdrop-filter: blur(4px); }
.modal { width: min(760px, 100%); max-height: min(88vh, 880px); display: flex; flex-direction: column; border-radius: 20px; background: white; box-shadow: 0 28px 90px rgba(0,0,0,.24); overflow: hidden; }
.modal-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 21px 23px; border-bottom: 1px solid var(--line); }
.modal-head h2 { margin: 0; }
.modal-close { border: 0; width: 32px; height: 32px; border-radius: 9px; background: #eef1ef; color: var(--muted); }
.modal-body { padding: 22px 23px; overflow-y: auto; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 15px 23px; border-top: 1px solid var(--line); background: #fafbfa; }

#toast-root { position: fixed; right: 22px; bottom: 22px; z-index: 200; display: grid; gap: 8px; }
.toast { width: min(360px, calc(100vw - 44px)); border-radius: 13px; padding: 12px 14px; color: white; background: #173c32; box-shadow: 0 12px 34px rgba(0,0,0,.22); font-size: 11px; line-height: 1.5; animation: toast-in .2s ease-out; }
.toast.error { background: #8f332c; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

.improvement-launcher {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 70;
  min-width: 112px;
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  color: white;
  background: var(--green);
  box-shadow: 0 12px 30px rgba(22, 79, 64, .3);
  font: inherit;
  font-size: 14px;
  font-weight: 900;
}
.improvement-launcher:hover { transform: translateY(-1px); box-shadow: 0 15px 34px rgba(22, 79, 64, .36); }
.improvement-page-head { align-items: center; }
.improvement-slack-settings { margin-bottom: 18px; }
.mcp-endpoint-panel, .mcp-permission-panel { margin-top: 18px; }
.mcp-endpoint-url { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.mcp-endpoint-url .input { min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.mcp-actor-picker { display: flex; align-items: end; gap: 10px; margin-bottom: 16px; }
.mcp-actor-picker .field { min-width: min(360px, 100%); }
.mcp-permission-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
.mcp-permission-table { min-width: max-content; border-collapse: separate; border-spacing: 0; }
.mcp-permission-table th:first-child { position: sticky; left: 0; z-index: 2; min-width: 300px; max-width: 360px; background: #f4f6f4; }
.mcp-permission-table tbody th:first-child { z-index: 1; background: white; }
.mcp-permission-table thead th { min-width: 150px; text-align: center; }
.mcp-permission-table thead th:first-child { text-align: left; }
.mcp-permission-table thead th strong, .mcp-permission-table thead th span,
.mcp-permission-table tbody th strong, .mcp-permission-table tbody th code,
.mcp-permission-table tbody th span { display: block; }
.mcp-permission-table thead th span { margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 700; }
.mcp-permission-table tbody th code { margin: 5px 0; color: var(--brand); font-size: 11px; }
.mcp-permission-table tbody th span { color: var(--muted); font-weight: 500; line-height: 1.45; }
.mcp-permission-table td { text-align: center; }
.mcp-permission-toggle { display: inline-grid; place-items: center; gap: 4px; cursor: pointer; }
.mcp-permission-toggle input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.mcp-permission-toggle > span { width: 42px; height: 24px; padding: 3px; border-radius: 999px; background: #c7d1cc; transition: background .16s ease; }
.mcp-permission-toggle > span::after { content: ""; display: block; width: 18px; height: 18px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform .16s ease; }
.mcp-permission-toggle input:checked + span { background: var(--brand); }
.mcp-permission-toggle input:checked + span::after { transform: translateX(18px); }
.mcp-permission-toggle input:focus-visible + span { outline: 3px solid rgba(22, 79, 64, .24); outline-offset: 2px; }
.mcp-permission-toggle input:disabled + span { opacity: .58; cursor: not-allowed; }
.mcp-permission-toggle small { color: var(--muted); font-size: 10px; font-weight: 800; }
.mcp-permission-toggle.is-inherited > span { box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); }
.mcp-permission-hint { margin: 12px 0 0; }
.improvement-slack-endpoints { display: grid; gap: 8px; margin-bottom: 14px; }
.improvement-slack-endpoints > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 10px; align-items: start; }
.improvement-slack-endpoints strong { font-size: 12px; }
.improvement-slack-endpoints code { overflow-wrap: anywhere; color: #315348; font-size: 12px; }
.improvement-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.improvement-status-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.improvement-status-chip { min-height: 36px; padding: 7px 12px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--muted); background: white; font: inherit; font-size: 13px; font-weight: 800; }
.improvement-status-chip.active { border-color: var(--green); color: var(--green); background: var(--green-soft); }
.improvement-query { display: grid; flex: 0 1 320px; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 900; }
.improvement-workspace { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(440px, 1.5fr); align-items: start; gap: 18px; }
.improvement-list-pane, .improvement-detail-pane { min-width: 0; }
.improvement-detail-pane { position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow-y: auto; }
.improvement-request-list { display: grid; gap: 9px; max-height: calc(100vh - 285px); overflow-y: auto; }
.improvement-request-card { display: grid; width: 100%; gap: 8px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; color: inherit; background: white; text-align: left; font: inherit; }
.improvement-request-card:hover { border-color: #a8beb4; background: #fbfdfc; }
.improvement-request-card.selected { border-color: var(--green); box-shadow: 0 0 0 2px rgba(22, 79, 64, .1); background: var(--green-soft); }
.improvement-request-card.is-subtask { width: calc(100% - 18px); margin-left: 18px; border-left: 3px solid #aac1b6; }
.improvement-card-head, .improvement-card-meta, .improvement-card-flags { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.improvement-card-head { justify-content: space-between; }
.improvement-card-title { font-weight: 900; line-height: 1.45; }
.improvement-card-excerpt { display: -webkit-box; overflow: hidden; color: var(--muted); line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.improvement-card-meta, .improvement-card-flags { color: var(--muted); font-size: 12px; }
.improvement-card-flags time { margin-left: auto; }
.improvement-detail-head { align-items: flex-start; }
.improvement-detail-head h2 { overflow-wrap: anywhere; }
.improvement-detail-body { display: grid; gap: 18px; }
.improvement-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.improvement-summary > div { min-width: 0; padding: 11px 12px; border-radius: 10px; background: #f6f8f7; }
.improvement-summary dt { color: var(--muted); font-size: 11px; font-weight: 900; }
.improvement-summary dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 800; }
.improvement-summary a, .improvement-message-body a { color: var(--green); }
.improvement-management { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfb; }
.improvement-management-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.improvement-management-save-status { min-height: 18px; margin-top: 9px; color: var(--muted); font-size: 12px; text-align: right; }
.improvement-management-save-status[data-state="saving"] { color: #73530b; }
.improvement-management-save-status[data-state="saved"] { color: var(--green); }
.improvement-management-save-status[data-state="error"] { color: #a23131; }
.improvement-subtasks { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.improvement-live-sync { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #315348; background: #edf5f1; font-size: 12px; }
.improvement-live-sync.warn { color: #73530b; background: #fff8e5; }
.improvement-thread { display: grid; gap: 10px; }
.improvement-message { padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.improvement-message header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.improvement-message header > div { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.improvement-message header time { flex: none; color: var(--muted); font-size: 11px; }
.improvement-source { padding: 3px 7px; border-radius: 999px; color: #315348; background: #edf5f1; font-size: 10px; font-weight: 900; }
.improvement-source.source-slack { color: #5e3a79; background: #f4ecf9; }
.improvement-source.source-system { color: var(--muted); background: #eef1ef; }
.improvement-source.source-mcp { color: #73530b; background: #fff2cc; }
.improvement-message-body { overflow-wrap: anywhere; line-height: 1.7; white-space: normal; }
.improvement-message-attachments, .improvement-attachment-tray { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 9px; margin-top: 10px; }
.improvement-message-attachments figure, .improvement-attachment-tray figure { position: relative; min-width: 0; margin: 0; }
.improvement-message-attachments img, .improvement-attachment-tray img { display: block; width: 100%; max-height: 260px; border: 1px solid var(--line); border-radius: 10px; object-fit: contain; background: #f4f6f5; }
.improvement-message-attachments figcaption, .improvement-attachment-tray figcaption { overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.improvement-attachment-input { margin-top: 8px; }
.improvement-attachment-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 12px; }
.improvement-attachment-toolbar label { cursor: pointer; }
.improvement-attachment-toolbar input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.improvement-attachment-tray button { position: absolute; top: 5px; right: 5px; display: grid; width: 26px; height: 26px; place-items: center; border: 0; border-radius: 999px; color: white; background: rgba(24, 34, 29, .78); cursor: pointer; }
.improvement-comment-form { display: grid; gap: 10px; padding-top: 4px; }
.improvement-comment-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.improvement-comment-actions p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }

/* 画面全体で説明・操作文字が12pxを下回らない読みやすい文字体系にする。 */
.environment-pill, .production-db-warning, .stat-label, .panel-head p,
.list-subtitle, .meta-label, .audit-diff, .mini-input, .term-chip,
.section-bar p, .config-metrics, .curriculum-config-meta, .label-chip,
.need-summary span, .need-source, .need-duration, .need-difficulty,
.need-job-matches span, .need-job-chip, .need-course-chip, .need-topic-details h4, .need-topic-details dt,
.intake-card span, .intake-card small, .curriculum-topic-row p, .decision-note,
.plan-next-links span, .curriculum-set-session-main span, .curriculum-set-editor-head,
.application-tree-company-button span:last-child, .application-tree-industries button span:last-child,
.axis-switch button, .application-gantt-header, .application-gantt-label span,
.application-gantt-date span, .person-gantt-card span, .person-gantt-time,
.application-date-gantt-row .board-date small, .application-gantt-time-card small,
.application-gantt-time, .selection-layout-note span, .company-reference-head p,
.company-reference-result small, .company-reference-empty, .company-reference-current span,
.company-reference-current small, .identity-status, .application-schedule-picker-head p,
.session-choice-empty, .session-clear, .compact-field > span, .builder-submit p,
.selection-schedule, .board-header, .board-row .board-date span, .event-meta,
.event-detail, .event-group-name, .event-selection-names span, .kanban-card-meta,
.warning-meta, .field-hint { font-size: 12px; }

.sidebar-note, .kbd, .role-select, .eyebrow, .button.small, .stat-foot,
.tab, .list-title, .meta-value, .table th, .table td, .session-number,
.term-group-title, .config-title, .need-toolbar, .need-topic-details dd,
.plan-next-links strong, .curriculum-set-session-time, .application-tree-all,
.application-tree-company-button, .application-tree-industries button,
.application-gantt-label strong, .person-gantt-card strong,
.application-gantt-time-card strong, .application-gantt-time-card span,
.readonly-value, .participant-check, .selection-layout-note strong,
.company-reference-head h3, .company-reference-result strong,
.company-reference-empty strong, .company-reference-current strong,
.clerk-redirect-fallback, .application-schedule-picker-head h3,
.session-choice-toggle, .builder-submit strong, .selection-summary-item strong,
.board-row .board-date, .event-time, .event-title, .kanban-title,
.kanban-card-title, .warning-title, .empty, .notice, .field label, .toast { font-size: 13px; }

.page-description, .button, .field-search, .select, .input, .textarea,
.need-topic-main > p, .intake-card strong, .curriculum-set-session-main strong,
.application-event-card .event-time, .application-event-card .event-detail { font-size: 14px; }

.list-title, .meta-value, .table td, .term-group-title, .config-title,
.plan-next-links strong, .curriculum-set-session-main strong,
.application-event-card .event-title { font-size: 15px; }

h3 { font-size: 16px; }
h2 { font-size: 21px; }
.need-topic-title { font-size: 17px; }

.hearing-form-list, .hearing-form-directory, .hearing-response-list { display: grid; gap: 18px; }
.hearing-tabs { display: flex; gap: 8px; margin: 0 0 16px; padding: 5px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.hearing-tabs button { min-height: 38px; padding: 7px 14px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font-weight: 800; cursor: pointer; }
.hearing-tabs button.active { color: white; background: var(--brand); }
.hearing-form-workspace, .hearing-form-tab-content { display: grid; gap: 18px; }
.hearing-form-tabs { display: flex; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.hearing-form-tabs button { min-height: 38px; padding: 8px 15px; border: 1px solid transparent; border-radius: 9px; color: var(--muted); background: transparent; font-weight: 800; cursor: pointer; }
.hearing-form-tabs button:hover { color: var(--brand); background: var(--brand-soft); }
.hearing-form-tabs button.active { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.hearing-workspace-section { display: grid; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.hearing-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.hearing-section-head h3, .hearing-section-head p { margin: 0; }
.hearing-section-head p { margin-top: 4px; color: var(--muted); font-size: 12px; }
.hearing-form-preview { display: grid; gap: 22px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.hearing-form-preview > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.hearing-form-preview h2 { margin: 12px 0 7px; }
.hearing-form-preview header p { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.75; }
.hearing-preview-questions { display: grid; gap: 14px; }
.hearing-preview-group { display: grid; gap: 12px; padding: 12px; border: 1px solid #e2e8e4; border-radius: 11px; background: #fbfcfb; }
.hearing-preview-group-elements { display: grid; gap: 12px; }
.hearing-preview-section { padding: 14px 16px; border-left: 4px solid var(--brand); border-radius: 8px; background: var(--brand-soft); }
.hearing-preview-section h3, .hearing-preview-section p { margin: 0; }
.hearing-preview-section p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.hearing-preview-question { padding: 0 4px; }
.hearing-preview-question > label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.hearing-preview-question .textarea { min-height: 90px; }
.hearing-preview-options { display: flex; flex-wrap: wrap; gap: 10px 18px; min-height: 42px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.hearing-preview-options label { color: var(--muted); font-size: 13px; }
.hearing-preview-work-items, .hearing-preview-work-questions { display: grid; gap: 14px; }
.hearing-preview-work-item { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.hearing-preview-attachments { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 13px; border-top: 1px solid var(--line); }
.hearing-preview-attachments > div { display: grid; gap: 7px; }
.hearing-preview-attachments strong { font-size: 12px; }
.hearing-preview-attachment-description { color: var(--muted); font-size: 11px; line-height: 1.5; }
.hearing-form-filters { margin: 0 0 18px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; }
.hearing-form-filters legend { padding: 0 6px; color: var(--muted); font-size: 12px; font-weight: 800; }
.hearing-form-filters > div { display: flex; flex-wrap: wrap; gap: 8px; }
.hearing-form-filters label { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: white; font-size: 12px; font-weight: 750; cursor: pointer; }
.hearing-form-filters label.active { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.hearing-form-filters input { width: 15px; height: 15px; margin: 0; accent-color: var(--brand); }
.hearing-form-list-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.hearing-form-list-main { min-width: 0; }
.hearing-form-list-main > div:first-child { display: flex; align-items: center; gap: 10px; }
.hearing-form-list-main > div:first-child small { color: var(--muted); }
.hearing-form-list-main h3 { margin: 12px 0 5px; font-size: 18px; }
.hearing-form-list-main > p { display: -webkit-box; max-width: 900px; margin: 0; overflow: hidden; color: var(--muted); font-size: 13px; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.hearing-form-list-main dl { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 15px 0 0; }
.hearing-form-list-main dl > div { display: flex; align-items: baseline; gap: 7px; }
.hearing-form-list-main dt { color: var(--muted); font-size: 11px; font-weight: 800; }
.hearing-form-list-main dd { margin: 0; font-size: 13px; font-weight: 800; }
.hearing-form-list-actions { display: flex; flex-direction: column; align-items: stretch; align-self: center; gap: 8px; }
.hearing-back-button { margin-bottom: 12px; }
.hearing-form-editor { display: grid; gap: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.hearing-form-designer { padding: 0; border: 0; background: transparent; }
.hearing-designer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hearing-designer-toolbar > div { display: flex; align-items: center; gap: 10px; }
.hearing-designer-toolbar small { color: var(--muted); }
.hearing-form-settings { display: grid; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.hearing-form-settings h3, .hearing-form-settings p { margin: 0; }
.hearing-form-settings p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.hearing-form-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hearing-form-settings fieldset { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; padding: 13px; border: 1px solid var(--line); border-radius: 10px; }
.hearing-form-settings legend { padding: 0 5px; font-size: 12px; font-weight: 800; }
.hearing-form-settings label { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; }
.hearing-form-settings input[type="radio"], .hearing-form-settings input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--brand); }
.hearing-form-settings .hearing-default-days { width: 88px; }
.panel:has(.hearing-form-designer) { overflow: visible; }
.hearing-designer-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); align-items: start; gap: 18px; }
.hearing-designer-preview-column { min-width: 0; display: grid; gap: 14px; }
.hearing-designer-preview-pane { min-width: 0; overflow: visible; }
.hearing-designer-properties { min-width: 0; position: sticky; top: 90px; height: calc(100dvh - 106px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #f7f9f8; }
.hearing-designer-properties [data-hearing-property-panel] { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
@media (min-width: 1121px) {
  .workspace:has(> .production-db-warning) .hearing-designer-properties { top: 134px; height: calc(100dvh - 150px); }
}
.hearing-designer-pane-head h3, .hearing-designer-pane-head p { margin: 0; }
.hearing-designer-pane-head p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.hearing-designer-pane-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hearing-designer-pane-head-row .button { flex: none; }
.hearing-designer-form-settings { display: grid; gap: 14px; }
.hearing-designer-form-settings .textarea { min-height: 150px; }
.hearing-designer-placement { display: grid; gap: 9px; margin-bottom: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.hearing-designer-placement h4 { margin: 0; font-size: 12px; }
.hearing-designer-move-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hearing-designer-move-buttons .button { justify-content: center; }
.hearing-designer-selected-label { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.hearing-designer-selected-label strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hearing-designer-properties .hearing-question-editor-row { grid-template-columns: 1fr; padding: 14px; }
.hearing-designer-properties .hearing-question-editor-row .question-order { display: none; }
.hearing-designer-properties .hearing-question-editor-row .form-grid { grid-template-columns: 1fr; }
.hearing-designer-properties .hearing-question-editor-row .field { grid-column: 1; }
.hearing-designer-properties .hearing-question-editor-row > .badge,
.hearing-designer-properties .hearing-question-editor-row > .button { justify-self: start; }
.hearing-designer-element-actions { display: grid; gap: 9px; margin-top: 12px; }
.hearing-designer-element-actions p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.hearing-designer-element-actions .button { justify-self: start; }
.hearing-designer-add { display: grid; gap: 7px; padding-top: 15px; border-top: 1px solid var(--line); }
.hearing-designer-add h4, .hearing-designer-add p { margin: 0; }
.hearing-designer-add h4 { font-size: 13px; }
.hearing-designer-add p { color: var(--muted); font-size: 11px; line-height: 1.6; }
.hearing-designer-add > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.hearing-live-preview { background: white; }
.hearing-live-preview .hearing-designer-selectable { position: relative; cursor: pointer; outline: 2px solid transparent; outline-offset: 3px; transition: outline-color .15s ease, background-color .15s ease; }
.hearing-live-preview .hearing-designer-selectable:hover,
.hearing-live-preview .hearing-designer-selectable:focus-visible { outline-color: #9bb2a5; }
.hearing-live-preview .hearing-designer-selectable.selected { outline-color: var(--brand); }
.hearing-live-preview .hearing-preview-question.hearing-designer-selectable { padding: 10px; border-radius: 9px; }
.hearing-live-preview .hearing-preview-question.hearing-designer-selectable.selected { background: var(--brand-soft); }
.hearing-live-preview .hearing-preview-section.hearing-designer-selectable.selected { background: #e2eee7; }
.hearing-live-preview .hearing-preview-attachment.hearing-designer-selectable { padding: 10px; border-radius: 9px; }
.hearing-live-preview .hearing-preview-attachment.hearing-designer-selectable.selected { background: var(--brand-soft); }
.hearing-live-preview input, .hearing-live-preview textarea, .hearing-live-preview select, .hearing-live-preview .hearing-preview-options { pointer-events: none; }
.hearing-select-hint { position: absolute; z-index: 1; top: 7px; right: 8px; padding: 4px 7px; border-radius: 999px; color: var(--brand); background: white; font-size: 10px; font-weight: 800; opacity: 0; box-shadow: 0 2px 8px rgba(14,62,45,.12); }
.hearing-designer-selectable:hover > .hearing-select-hint, .hearing-designer-selectable.selected > .hearing-select-hint { opacity: 1; }
.hearing-reorder-mode .hearing-reorder-group, .hearing-reorder-mode .hearing-reorder-element { position: relative; cursor: grab; }
.hearing-reorder-mode .hearing-reorder-group:active, .hearing-reorder-mode .hearing-reorder-element:active { cursor: grabbing; }
.hearing-reorder-mode .hearing-reorder-group { padding-top: 42px; border-style: dashed; }
.hearing-drag-handle { display: inline-flex; align-items: center; gap: 5px; width: max-content; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; user-select: none; }
.hearing-group-drag-handle { position: absolute; top: 12px; left: 14px; }
.hearing-reorder-element { padding: 12px !important; border: 1px dashed #c6d3cc; border-radius: 9px; background: white; }
.hearing-reorder-element > .hearing-drag-handle { position: absolute; top: 7px; right: 9px; }
.hearing-dragging { opacity: .42; }
.hearing-drop-before { box-shadow: 0 -4px 0 var(--brand); }
.hearing-drop-after { box-shadow: 0 4px 0 var(--brand); }
.hearing-form-editor-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hearing-form-editor-head > div { display: flex; align-items: center; gap: 10px; }
.hearing-form-editor-head small { color: var(--muted); }
.hearing-share-field > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.hearing-share-field .input { min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.hearing-form-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 2px; }
.hearing-autosave-status.saved { color: var(--green); }
.hearing-autosave-status.error { color: var(--red); font-weight: 750; }
.hearing-question-builder { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.hearing-builder-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.hearing-builder-head h3, .hearing-builder-head p { margin: 0; }
.hearing-builder-head p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.hearing-builder-head > div:last-child { display: flex; align-items: center; gap: 8px; }
.hearing-builder-head .select { width: 170px; }
.hearing-question-list { display: grid; gap: 10px; }
.hearing-question-editor-row { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.hearing-question-editor-row.section { border-left: 4px solid var(--brand); background: #f7faf8; }
.hearing-question-editor-row .question-order { display: grid; place-items: center; align-self: start; width: 28px; height: 28px; border-radius: 8px; color: var(--brand); background: var(--brand-soft); font-size: 11px; font-weight: 800; }
.hearing-question-editor-row > .badge, .hearing-question-editor-row > .button { align-self: start; }
.hearing-question-editor-row .check-row { justify-content: flex-start; border: 0; }
.hearing-question-editor-row .question-options.is-hidden { display: none; }
.hearing-form-selector { max-width: 560px; margin-bottom: 18px; }
.hearing-invitation-form { padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfb; }
.hearing-deadline-field { align-content: start; }
.hearing-no-deadline { display: inline-flex; align-items: center; align-self: start; gap: 7px; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 700; cursor: pointer; }
.hearing-no-deadline input { width: 16px; height: 16px; margin: 0; accent-color: var(--brand); }
.hearing-deadline-field .input:disabled { color: var(--muted); background: #f0f2f0; }
.hearing-bulk-paste { min-height: 150px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; white-space: pre; }
.hearing-bulk-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hearing-bulk-label a, .hearing-drive-link { color: var(--brand); font-size: 12px; font-weight: 800; }
.hearing-invitation-list { display: grid; gap: 12px; }
.hearing-invitation-card { display: grid; gap: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; }
.hearing-invitation-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.hearing-invitation-card > .hearing-invitation-title { margin: 0; padding: 13px 16px; border-left: 5px solid var(--green, #245e4c); border-radius: 8px; background: #deede5; color: #173e32; font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.hearing-invitation-meta { display: grid; gap: 8px; min-width: 0; }
.hearing-invitation-badges { display: flex; flex-wrap: wrap; gap: 7px; }
.hearing-invitation-card header small, .hearing-invitation-card time { color: var(--muted); font-size: 11px; }
.hearing-invitation-deadline { display: grid; justify-items: end; gap: 7px; text-align: right; }
.hearing-invitation-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.hearing-invitation-card dl > div { min-width: 0; }
.hearing-invitation-card dt { color: var(--muted); font-size: 10px; font-weight: 800; }
.hearing-invitation-card dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 13px; }
.hearing-invitation-url { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
.hearing-invitation-url .input { min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 11px; }
.hearing-invitation-responses { padding-top: 12px; border-top: 1px solid var(--line); }
.hearing-invitation-responses summary { color: var(--brand); font-size: 13px; font-weight: 800; cursor: pointer; }
.hearing-invitation-responses[open] summary { margin-bottom: 12px; }
.hearing-response-view-toggle { display: flex; justify-content: flex-end; gap: 7px; margin-bottom: 12px; }
.hearing-response-table-wrap { overflow-x: auto; }
.hearing-response-table { min-width: 900px; }
.hearing-response-card { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.hearing-response-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.hearing-response-card > header h2 { margin: 8px 0 2px; }
.hearing-response-card > header a { color: var(--brand); }
.hearing-response-card > header small { display: block; margin-top: 5px; color: var(--muted); }
.hearing-response-card > header time { color: var(--muted); font-size: 12px; white-space: nowrap; }
.hearing-response-edit-url { display: grid; gap: 8px; margin-top: 16px; padding: 14px; border-radius: 11px; background: var(--brand-soft); }
.hearing-response-edit-url > strong { font-size: 12px; }
.hearing-work-list { display: grid; gap: 12px; margin-top: 16px; }
.hearing-work-item { padding: 16px; border-radius: 11px; background: white; }
.hearing-work-item h3 { margin: 0 0 10px; color: var(--brand); }
.hearing-work-item dl { display: grid; gap: 12px; margin: 0; }
.hearing-work-item dl > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 14px; }
.hearing-work-item dt { color: var(--muted); font-size: 12px; font-weight: 800; }
.hearing-work-item dd { margin: 0; font-size: 14px; }
.hearing-attachment-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.hearing-attachment-section h3 { margin: 0 0 10px; }
.hearing-attachment-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; }
.hearing-attachment-links a { display: grid; gap: 3px; min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: white; text-decoration: none; }
.hearing-attachment-links a:hover { border-color: var(--brand); }
.hearing-attachment-links strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hearing-attachment-links span { color: var(--muted); font-size: 11px; }

@media (max-width: 1120px) {
  .split { grid-template-columns: 1fr; }
  .schedule-workbench { grid-template-columns: 1fr; }
  .schedule-palette { position: static; max-height: none; }
  .application-overview-layout { grid-template-columns: 1fr; }
  .application-hierarchy { position: static; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .config-grid { grid-template-columns: 1fr; }
  .need-topic-create-grid { grid-template-columns: 1fr; }
  .session-choice-grid { grid-template-columns: 1fr; }
  .need-topic-card { grid-template-columns: 210px minmax(0, 1fr); }
  .improvement-workspace { grid-template-columns: 1fr; }
  .improvement-detail-pane { position: static; max-height: none; }
  .improvement-request-list { max-height: none; }
  .user-management-guide { grid-template-columns: 1fr; }
  .hearing-designer-layout { grid-template-columns: 1fr; height: auto; overflow: visible; }
  .hearing-form-settings-grid { grid-template-columns: 1fr; }
  .hearing-designer-properties { position: static; height: auto; max-height: none; }
  .hearing-designer-properties [data-hearing-property-panel] { overflow: visible; }
}

@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { position: sticky; z-index: 40; top: 0; width: 100%; height: auto; max-height: 250px; padding: 9px 10px; display: block; overflow: auto; }
  .brand, .sidebar-foot { display: none; }
  .nav { display: flex; gap: 12px; min-width: max-content; }
  .nav-group { min-width: 190px; }
  .nav-group-title { margin-bottom: 4px; padding: 7px 9px; font-size: 16px; }
  .nav-button { min-height: 40px; padding: 8px 10px; font-size: 15px; }
  .topbar { padding: 10px 15px; }
  .org-switcher { min-width: 0; }
  .org-meta { display: none; }
  .kbd { display: none; }
  .main { padding: 22px 15px 48px; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .page-actions { justify-content: flex-start; }
  .education-sticky-nav { align-items: stretch; flex-direction: column; }
  .mcp-actor-picker { align-items: stretch; flex-direction: column; }
  .mcp-permission-table th:first-child { min-width: 240px; max-width: 260px; }
  .mcp-endpoint-url { grid-template-columns: 1fr; }
  .education-sticky-actions { justify-content: flex-start; }
  .stat-grid, .two-column, .three-column, .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panel-body { padding: 15px; }
  .curriculum-config-row, .participant-picker, .session-choice, .session-choice-fields { grid-template-columns: 1fr; }
  .curriculum-config-meta { justify-content: flex-start; text-align: left; }
  .checkbox-grid, .selection-summary-grid, .event-detail-grid { grid-template-columns: 1fr; }
  .builder-submit, .selection-layout-note { align-items: stretch; flex-direction: column; }
  .company-reference-head { align-items: stretch; flex-direction: column; }
  .company-reference-actions { align-items: stretch; justify-content: flex-start; }
  .company-reference-search { grid-template-columns: 1fr; }
  .need-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .need-topic-card { grid-template-columns: 1fr; }
  .need-topic-side { border-right: 0; border-bottom: 1px solid rgba(76, 96, 85, .2); padding: 0 0 12px; }
  .need-topic-actions { display: flex; flex-wrap: wrap; }
  .ai-assignment-button { width: auto; }
  .job-profile-editor-head, .job-profile-editor-foot { align-items: stretch; flex-direction: column; }
  .ai-assignment-item { grid-template-columns: 22px minmax(0, 1fr); }
  .ai-assignment-item .select { grid-column: 2; }
  .need-topic-heading, .intake-card { align-items: flex-start; flex-direction: column; }
  .need-topic-details dl, .plan-next-links { grid-template-columns: 1fr; }
  .curriculum-topic-row { grid-template-columns: 1fr; }
  .curriculum-topic-decision { justify-items: start; }
  .curriculum-set-session { grid-template-columns: 36px minmax(0, 1fr); }
  .curriculum-set-session-time { grid-column: 2; text-align: left; }
  .curriculum-set-editor { overflow-x: auto; }
  .curriculum-set-editor-head, .curriculum-set-editor-row { min-width: 740px; }
  .improvement-launcher { right: 14px; bottom: 14px; }
  .improvement-toolbar, .improvement-comment-actions { align-items: stretch; flex-direction: column; }
  .improvement-query { flex-basis: auto; }
  .improvement-summary, .improvement-management-grid { grid-template-columns: 1fr; }
  .improvement-slack-endpoints > div { grid-template-columns: 1fr; }
  .improvement-message header { flex-direction: column; }
  .schedule-board-controls { justify-content: flex-start; }
  .schedule-instructor-control, .schedule-instructor-control .select { width: 100%; }
  .role-view-shell { grid-template-columns: 1fr; }
  .role-view-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-view-nav strong { grid-column: 1 / -1; }
  .hearing-form-editor-head, .hearing-form-editor-actions, .hearing-section-head, .hearing-form-preview > header, .hearing-designer-toolbar { align-items: stretch; flex-direction: column; }
  .hearing-form-list-item { grid-template-columns: 1fr; }
  .hearing-form-list-actions { align-items: stretch; flex-direction: column; }
  .hearing-builder-head { flex-direction: column; }
  .hearing-builder-head > div:last-child, .hearing-builder-head .select { width: 100%; }
  .hearing-question-editor-row { grid-template-columns: 28px minmax(0, 1fr); }
  .hearing-question-editor-row > .badge, .hearing-question-editor-row > .button { grid-column: 2; justify-self: start; }
  .hearing-invitation-card > header { flex-direction: column; }
  .hearing-invitation-deadline { justify-items: start; text-align: left; }
  .hearing-invitation-card dl { grid-template-columns: 1fr; }
  .hearing-invitation-url { grid-template-columns: 1fr 1fr; }
  .hearing-invitation-url .input { grid-column: 1 / -1; }
  .hearing-tabs, .hearing-form-tabs { overflow-x: auto; }
  .hearing-tabs button, .hearing-form-tabs button { flex: 0 0 auto; }
  .hearing-share-field > div { grid-template-columns: 1fr; }
  .hearing-response-card > header { flex-direction: column; }
  .hearing-work-item dl > div { grid-template-columns: 1fr; gap: 3px; }
  .hearing-preview-attachments { grid-template-columns: 1fr; }
  .hearing-designer-add > div { grid-template-columns: 1fr; }
  .permission-editor-grid { grid-template-columns: 1fr; }
  .permission-editor-row { grid-template-columns: 1fr; }
  .workflow-editor-row { grid-template-columns: 1fr; }
}

.hearing-group-deletion { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.hearing-group-deletion legend { margin-bottom: 10px; font-size: 12px; font-weight: 800; }
.hearing-group-deletion label { display: flex; align-items: center; gap: 10px; padding: 13px; border: 1px solid var(--line-strong); border-radius: 10px; cursor: pointer; overflow-wrap: anywhere; }
.hearing-group-deletion input { flex: 0 0 auto; margin: 0; accent-color: var(--brand); }
.hearing-group-deletion label:has(input:checked) { border-color: var(--brand); background: var(--brand-soft); }
.hearing-group-deletion label:has(input:focus-visible) { outline: 2px solid var(--brand); outline-offset: 2px; }
.hearing-group-deletion label:has(input:disabled) { opacity: .5; cursor: not-allowed; }

.hearing-form-list-main > p,
.hearing-form-preview > header p,
.hearing-preview-section > p,
.hearing-preview-question > .field-hint,
.hearing-preview-attachment-description { white-space: pre-wrap; overflow-wrap: anywhere; }

/* URL発行時の必須項目は、未入力の間だけ赤枠で示す。 */
.hearing-invitation-form .input.hearing-required-empty,
.hearing-invitation-form [data-hearing-deadline]:required:invalid:not(:disabled) {
  border-color: #bc3c35;
  border-width: 2px;
}

.participant-management-table td { vertical-align: top; }
.participant-management-table .input, .participant-management-table .select { min-width: 140px; }
.participant-management-table .textarea { min-width: 180px; min-height: 72px; }
.participant-inline-label { display: grid; gap: 4px; margin-bottom: 8px; font-size: 12px; }
.participant-inline-actions { display: grid; gap: 8px; min-width: 82px; }

.plan-response { display:block; padding:12px; border-bottom:1px solid var(--line); }
.plan-agenda { display:grid; grid-template-columns:minmax(0,1fr) 90px; gap:10px; margin:12px 0; }
.plan-agenda .field { grid-column:1/-1; }

/* Plan editors use the page scroll, never a constrained modal. */
.plan-editor, .plan-editor-form, .plan-editor-fields { min-width: 0; }
.plan-editor-form { display: grid; gap: 20px; }
.plan-editor-actions { position: sticky; top: 78px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; }
.plan-editor-actions [data-plan-save-status] { flex: 1; min-width: 0; }
.plan-editor-fields { display: grid; gap: 20px; }
.plan-editor-fields > *, .plan-editor-fields .form-grid > *, .plan-editor-fields label { min-width: 0; }
.plan-editor-fields label { display: grid; gap: 8px; }
.plan-editor-fields input:not([type=radio]):not([type=checkbox]), .plan-editor-fields select, .plan-editor-fields textarea { width: 100%; min-width: 0; max-width: 100%; }
.plan-editor-fields textarea { min-height: 120px; resize: vertical; }
.plan-editor-fields fieldset { min-inline-size: 0; margin: 12px 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.plan-editor-fields legend { max-width: 100%; padding: 0 6px; overflow-wrap: anywhere; font-weight: 700; }
.plan-source-url > a { display: block; overflow-wrap: anywhere; margin: 8px 0 16px; }
.plan-link-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.plan-editor-fields .plan-link-options label, .plan-editor-fields .plan-response > label, .plan-editor-fields .participant-check { display: flex; align-items: flex-start; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; overflow-wrap: anywhere; }
.plan-link-options label:has(input:checked) { background: var(--brand-soft); border-color: var(--brand); }
.plan-editor-fields input[type=radio], .plan-editor-fields input[type=checkbox] { flex: 0 0 auto; margin-top: 4px; }
.plan-editor-fields pre, .plan-editor-fields p { overflow-wrap: anywhere; }
.plan-editor-fields summary { cursor: pointer; padding: 8px 0; font-weight: 700; }
.plan-editor-end { display: flex; justify-content: flex-end; padding-bottom: 28px; }
@media (max-width: 760px) {
 .plan-link-options, .plan-editor-fields .form-grid, .plan-editor-fields .plan-agenda { grid-template-columns: minmax(0,1fr); }
 .plan-editor-actions { top: 78px; }
 .plan-editor-fields fieldset { padding: 12px; }
}
.panel:has(.plan-editor) { overflow: visible; }
.plan-editor-fields .field label { font-size: 14px; }
.plan-editor-fields .input, .plan-editor-fields .select, .plan-editor-fields .textarea { font-size: 16px; }
.plan-answer-access { margin-top:20px; padding:18px; background:#f1f6f3; border:1px solid var(--line); border-radius:12px; }
.plan-linked-answers details { margin:12px 0; padding:14px; border:1px solid var(--line); border-radius:10px; background:white; }
.plan-linked-answers summary { cursor:pointer; font-weight:700; }
.plan-linked-answers dt { font-weight:700; margin-top:16px; color:var(--brand); }
.plan-linked-answers dd { margin:6px 0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.plan-linked-answers pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; }
.plan-editor-fields > details { border:1px solid #c9ddd1; background:#f2f7f4; padding:18px; border-radius:12px; }
.plan-editor-fields > .field { border-left:4px solid #88ae9a; padding:16px; background:#f8faf8; border-radius:10px; }
.plan-editor-fields > .field:nth-of-type(2n) { border-left-color:#89a9cf; }
.plan-editor-fields > h3 { margin:16px 0 0; padding:12px 16px; border-radius:10px; background:#e3eee7; color:#204e3d; }
.list-item:has(.cp-document):hover { transform:none; }
.plan-answer-access { margin:12px 0 20px; }
.hearing-answer-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; align-items:end; margin-bottom:18px; padding:16px; border:1px solid var(--line); border-radius:12px; background:#f2f7f4; }
.hearing-answer-filters label { display:grid; gap:6px; min-width:0; font-size:14px; font-weight:700; }
.hearing-answer-filters .input,.hearing-answer-filters .select { width:100%; min-width:0; }
.hearing-invitation-responses>.hearing-response-list { margin-top:16px; }
.hearing-response-view-toggle { flex-wrap:wrap; }
.plan-answer-section { margin:18px 0; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; min-width:0; }
.plan-answer-section h4 { margin:0 0 12px; padding:8px 12px; border-left:4px solid var(--brand); background:#eff5f1; overflow-wrap:anywhere; }
.plan-answer-section dt { margin-top:14px; font-weight:700; color:var(--brand); }
.plan-answer-section dd { margin:6px 0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.plan-direct-editor .cp-hero label { display:grid; gap:7px; font-size:14px; }
.plan-direct-editor .cp-hero > div:first-child { flex:1; min-width:0; }
.plan-direct-editor .cp-insight textarea { min-height:150px; }
.plan-direct-editor .cp-task { display:grid; gap:12px; }
.plan-direct-editor .cp-task label { display:grid; gap:6px; }
.plan-direct-editor .cp-metrics .field { margin:0; }
.plan-direct-editor .cp-metrics textarea { min-height:70px; }
.plan-overview-table { min-width:950px; table-layout:fixed; }
.plan-overview-table th:first-child { width:16%; }
.plan-overview-table th:nth-child(2) { width:40%; }
.plan-overview-table td { vertical-align:top; overflow-wrap:anywhere; }
.plan-overview-measure { border-bottom:1px solid var(--line); padding:12px 0 20px; }
.plan-overview-measure p { white-space:pre-wrap; }
.cp-section-title .plan-answer-button { margin-left:auto; flex-shrink:0; }
.plan-answer-dialog { width:min(1040px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--line); border-radius:16px; color:var(--ink); box-shadow:0 20px 70px #0004; }
.plan-answer-dialog::backdrop { background:#102b2566; }
.plan-answer-dialog[open] { display:flex; flex-direction:column; }
.plan-answer-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px; border-bottom:1px solid var(--line); flex-shrink:0; }
.plan-answer-dialog h2 { margin:0; font-size:21px; }
.plan-answer-dialog [data-close-answers] { padding:10px 14px; border:1px solid var(--line); border-radius:8px; background:white; cursor:pointer; }
.plan-answer-dialog-body { padding:8px 24px 24px; overflow:auto; overscroll-behavior:contain; min-height:0; }
@media(max-width:600px) { .cp-section-title { flex-wrap:wrap; } .cp-section-title .plan-answer-button { font-size:12px; } .plan-answer-dialog-body { padding:8px 14px 16px; } }
.plan-overview-section { margin:16px 0; }
.plan-overview-section h4 { display:flex; align-items:center; gap:8px; margin:0 0 8px; padding:9px 12px; border-radius:6px; border-left:4px solid #7ba58e; background:#edf5ef; }
.plan-overview-section-02 h4 { border-color:#cea34a; background:#fbf5e7; }
.plan-overview-section-03 h4 { border-color:#7b9dcb; background:#edf3fb; }
.plan-overview-section-04 h4 { border-color:#a693be; background:#f4eff9; }
.plan-overview-section h4 span { font-size:12px; opacity:.8; }
.plan-overview-section textarea { width:100%; min-height:140px; resize:vertical; font:inherit; line-height:1.7; }
.plan-overview-target th { background:#e8f2ed; color:var(--brand); padding:12px 16px; border-left:4px solid #8bb59f; font-size:16px; }
.plan-overview-respondent { margin-bottom:18px; }
.plan-overview-response { border:1px solid var(--line); border-radius:10px; padding:12px; margin-bottom:16px; background:#fff; }
.plan-overview-response > h3 { font-size:15px; padding:8px 10px; margin:0 0 10px; background:#f0f5f2; border-radius:6px; }
.plan-overview-filters { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:18px 0; }
.plan-overview-filters label { flex:1 1 220px; display:grid; gap:6px; }

.plan-meeting {border:1px solid var(--border,#ccd9d2);border-radius:14px;padding:20px;margin-bottom:20px;background:#f7faf8;}
.plan-meeting details {margin:16px 0;}.plan-meeting textarea {min-height:200px;width:100%;}
.plan-meeting-proposal {border:2px solid #43896d;border-radius:14px;padding:20px;}
.plan-meeting-proposal article {margin:18px 0;}.plan-meeting-diff {display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.plan-meeting-diff>div {min-width:0;background:#f0f6f2;border-radius:10px;padding:16px;}.plan-meeting-diff p {white-space:pre-wrap;overflow-wrap:anywhere;}
@media(max-width:720px){.plan-meeting-diff{grid-template-columns:1fr;}.plan-meetings .panel-head{flex-wrap:wrap;}}

/* Read-only prompt snapshot for training. Long prompts use page scrolling. */
.prompt-catalog {max-width:1280px;margin-inline:auto;}
.prompt-snapshot {padding:20px 24px;background:#e6f0eb;border:1px solid #c9ddd1;border-radius:14px;}
.prompt-snapshot p {line-height:1.8;margin:8px 0;}.prompt-snapshot summary {cursor:pointer;}
.prompt-context-flow {display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0;}
.prompt-context-flow span {padding:12px 18px;border:1px solid #d0dfd6;border-radius:12px;background:#fff;font-weight:700;}
.prompt-context-flow b {color:#557764;}
.prompt-filters {display:grid;gap:14px;margin:24px 0;}.prompt-filters label {display:grid;gap:8px;}.prompt-filters .tabs {flex-wrap:wrap;}
.prompt-card-list {display:grid;gap:24px;}.prompt-card {border:1px solid #d0dfd6;border-radius:16px;overflow:hidden;background:#fff;}
.prompt-card-head {background:#edf5f0;padding:22px 24px;border-bottom:1px solid #d0dfd6;}.prompt-card-head h2 {margin:10px 0;font-size:22px;}.prompt-card-head p {margin:0;color:#486253;}
.prompt-card-body {padding:24px;}.prompt-dimensions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.prompt-dimensions>div {padding:16px;background:#f5f8f6;border-radius:10px;min-width:0;}.prompt-dimensions h3 {font-size:13px;color:#34604a;margin:0 0 8px;}.prompt-dimensions p {line-height:1.8;margin:0;}
.prompt-teaching {padding:16px 18px;background:#fff7e5;border-left:4px solid #cf9c39;border-radius:8px;line-height:1.9;}
.prompt-original summary {padding:12px 0;font-weight:700;cursor:pointer;}.prompt-original pre {white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:none;padding:20px;background:#f3f5f7;border:1px solid #dce3e7;border-radius:10px;font-size:14px;line-height:1.9;}
.prompt-source {font-size:12px;color:var(--muted);overflow-wrap:anywhere;}
@media(max-width:900px){.prompt-dimensions{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.prompt-dimensions{grid-template-columns:1fr;}.prompt-card-head,.prompt-card-body{padding:16px;}.prompt-original pre{padding:12px;font-size:13px;}}

/* Company summaries keep participant editing collapsed until requested. */
.company-overview-facts { display: flex; flex-wrap: wrap; gap: 20px 48px; margin: 0 0 18px; }
.company-overview-facts dt { color: var(--muted, #60716a); font-size: 13px; margin-bottom: 6px; }
.company-overview-facts dd { margin: 0; font-weight: 600; }
.company-overview-status.workflow-strip { display: flex; flex-wrap: wrap; overflow: visible; gap: 8px; }
.company-participant-details > summary { cursor: pointer; padding: 16px 24px; border-top: 1px solid var(--border, #dbe3df); color: #174c3c; font-weight: 700; background: #f2f7f4; }
.company-participant-details > summary:focus-visible { outline: 2px solid #247558; outline-offset: -3px; }
.company-details-open, .company-participant-details[open] > summary .company-details-closed { display: none; }
.company-participant-details[open] > summary .company-details-open { display: inline; }
.company-participant-details .page-actions { margin-bottom: 14px; }

.main:has(.company-management-list) { max-width: none; }
.company-summary-head { display:flex; flex-wrap:wrap; align-items:center; gap:24px; }
.company-summary-head h2 { flex:1; min-width:220px; }
.company-summary-head .company-overview-facts { margin:0; gap:20px 36px; align-items:flex-start; }
.company-summary-head dt { font-size:14px; }
.company-summary-head dd { font-size:17px; }
.company-summary-head select { min-width:170px; }
.company-workflow-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.company-stage-tasks h3 { margin:0 0 16px; font-size:17px; }
.company-workflow-card { padding:16px; border:1px solid #d6e3dc; border-radius:12px; background:#f6f9f7; display:flex; flex-direction:column; gap:12px; min-width:0; }
.company-workflow-card strong { font-size:16px; min-height:24px; }
.company-workflow-card label { display:flex; flex-direction:column; gap:6px; font-size:14px; }
.company-workflow-card .select, .company-workflow-card .textarea { font-size:16px; min-height:44px; width:100%; }
.company-workflow-card .textarea { min-height:78px; font-weight:400; }
[data-progress-save] { display:block; font-size:13px; font-weight:400; }
.company-workflow-note { white-space:pre-wrap; overflow-wrap:anywhere; }
.company-other-workflows { margin-top:18px; }
.company-other-workflows > summary { padding:12px 0; cursor:pointer; font-size:15px; font-weight:600; }
@media(max-width:640px) { .company-summary-head .company-overview-facts { width:100%; gap:18px; } .company-workflow-grid { grid-template-columns:1fr; } }

.company-workflow-card.emphasis-required, .company-stage-value.emphasis-required, .progress-definition.emphasis-required { border:2px solid #ce3535; }
.company-workflow-card.emphasis-important, .company-stage-value.emphasis-important, .progress-definition.emphasis-important { background:#ffe6e5; border:1px solid #df7770; }
.company-emphasis { display:inline-block; color:#a82020; font-size:14px; font-weight:700; padding:2px 7px; background:#fff4f2; border-radius:4px; }
.company-stage-value { padding:5px; border-radius:8px; }
.company-progress-settings { margin-bottom:24px; }
.company-progress-settings > summary { cursor:pointer; font-weight:700; padding:20px; font-size:17px; }
.company-progress-settings section { margin:24px 0; }
.progress-definition { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,200px) auto; gap:16px; padding:18px; margin:12px 0; border:1px solid #d6e3dc; border-radius:10px; align-items:start; }
.progress-definition label { display:flex; flex-direction:column; gap:7px; font-size:15px; }
.progress-definition fieldset { grid-column:1 / -1; min-inline-size:0; margin:0; display:flex; flex-wrap:wrap; gap:12px 18px; border:1px solid #d6e3dc; border-radius:8px; padding:14px; }
.progress-definition > * { min-width:0; }
.progress-definition fieldset legend { max-width:100%; overflow-wrap:anywhere; }
.progress-definition fieldset label { flex-direction:row; align-items:center; max-width:100%; overflow-wrap:anywhere; }
.progress-definition .progress-stage-check { flex-direction:row; align-items:center; }
.progress-definition input[type=checkbox] { width:18px; height:18px; flex:0 0 18px; margin:0; }
@media(max-width:800px) { .progress-definition { grid-template-columns:minmax(0,1fr); } .progress-option { flex-wrap:wrap; } }
/* Compact company summaries and on-demand notes. */
.company-summary-head.panel-head { justify-content:flex-start; gap:24px; }
.company-summary-head h2 { flex:0 1 auto; min-width:0; max-width:34%; margin:0; overflow-wrap:anywhere; }
.company-summary-head .company-overview-facts { flex:0 1 auto; gap:18px 26px; }
.company-stage-tasks h3 { font-size:14px; font-weight:500; color:var(--muted,#60716a); margin-bottom:12px; }
.company-workflow-grid { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; }
.company-workflow-card { padding:12px; gap:8px; }
.company-workflow-heading { display:flex; align-items:center; gap:6px; }
.company-workflow-heading > strong { flex:1; min-width:0; font-size:14px; min-height:0; }
.company-workflow-card .select { min-height:38px; padding:7px 10px; font-size:14px; }
.company-workflow-card > [data-progress-save]:empty { display:none; }
.workflow-note { flex:none; }
.workflow-note-trigger { display:flex; align-items:center; gap:3px; border:1px solid transparent; border-radius:6px; padding:6px; background:transparent; color:#65756d; cursor:pointer; min-height:32px; }
.workflow-note-trigger.unread { color:#b42323; background:#ffeded; }
.workflow-note-trigger.read { color:#16703e; background:#e7f6ec; }
.workflow-note-trigger:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.note-state-text { font-size:11px; }
.workflow-note-popover { position:fixed; z-index:150; padding:14px; border:1px solid #b8c9bf; border-radius:12px; background:white; color:#193e31; box-shadow:0 8px 28px #102f2833; max-height:calc(100vh - 24px); overflow:auto; }
.workflow-note-popover[hidden], .workflow-note-popover [hidden] { display:none !important; }
.workflow-note-head { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.workflow-note-head strong { flex:1; }
.workflow-note-preview { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; line-height:1.6; }
.workflow-note-popover .textarea { width:100%; min-height:140px; font-size:15px; font-weight:400; }
.workflow-note-popover [data-note-message] { display:block; margin-top:8px; font-size:12px; }
@media(max-width:640px) { .company-summary-head h2 { max-width:none; } .company-summary-head { gap:14px; } .company-workflow-grid { grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); } }
.company-workflow-card.is-required, .company-stage-value.is-required, .progress-definition.is-required { border:2px solid #c92f35; }
.company-workflow-card.is-important, .company-stage-value.is-important, .progress-definition.is-important { background:#fff2bf; }
.company-emphasis.important { color:#765000; background:#ffdf79; }
.company-emphasis.required { color:#a82020; background:#ffe5e5; }
.progress-flags { display:flex; flex-wrap:wrap; gap:12px; }
.progress-flags label { flex-direction:row; align-items:center; }
.progress-options { grid-column:1 / -1; padding:14px; border:1px solid #d6e3dc; border-radius:8px; }
.progress-option { display:flex; gap:8px; margin:8px 0; max-width:520px; }
.progress-option input { flex:1; min-width:0; }
.participant-workflow-details > td { background:#f7f9f7; padding-top:0; }
.participant-workflow-details .company-workflow-grid { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); }

/* Compact company progress and participant rows. */
.workflow-filter { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:12px; }
.workflow-filter [aria-pressed="true"] { background:#173f34; border-color:#173f34; color:white; }
.company-workflow-card[hidden] { display:none !important; }
.company-workflow-grid { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; }
.company-workflow-card { width:260px; max-width:100%; }
.company-overview.panel-body { padding-top:16px; padding-bottom:16px; }
.participant-management-table { min-width:1050px; width:100%; }
.participant-management-table th:nth-child(1) { width:150px; }
.participant-management-table th:nth-child(2) { width:180px; }
.participant-management-table th:nth-child(3) { width:200px; }
.participant-management-table td { padding:10px; vertical-align:middle; }
.participant-management-table .input, .participant-management-table .select { min-width:0; width:100%; }
.participant-support-inline { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.participant-support-inline .company-stage-tasks { flex:0 1 auto; }
.participant-support-inline .company-workflow-card { width:240px; padding:8px 10px; gap:4px; }
.participant-support-inline > .participant-inline-label { flex:1 1 180px; max-width:260px; margin:0; font-size:13px; }
.participant-inline-actions { display:flex; flex-wrap:wrap; gap:5px; min-width:80px; max-width:170px; }
.participant-inline-actions [data-participant-save-status]:empty { display:none; }
.participant-inline-actions [data-participant-save-status] { flex-basis:100%; }
.company-schedule-filters { display:flex; gap:14px; align-items:end; flex-wrap:wrap; margin-bottom:12px; }
.company-schedule-filters label { display:grid; gap:6px; min-width:180px; }
.company-schedule-table { min-width:850px; }
.company-schedule-table small { display:block; margin-top:5px; }
.schedule-overlap { display:block; padding:5px 8px; margin:3px 0; color:#a32626; background:#fff0ec; border-left:3px solid #c73535; border-radius:4px; }
.schedule-overlap.shared { color:#235e87; background:#edf5ff; border-color:#5b8ac1; }
.company-calendar { overflow:auto; max-height:520px; border:1px solid #d9e4df; border-radius:10px; margin:18px 0; }
.company-calendar-scale, .company-calendar-row { display:grid; grid-template-columns:260px minmax(600px,1fr); min-width:900px; border-bottom:1px solid #e2ebe6; }
.company-calendar-scale { position:sticky; top:0; z-index:1; background:#edf4f0; font-size:12px; }
.company-calendar-scale > span { padding:10px; }
.company-calendar-scale > div { display:flex; align-items:center; }
.company-calendar-scale > div > span { flex:1; text-align:center; }
.company-calendar-row > div:first-child { padding:8px 12px; }
.company-calendar-row small { display:block; font-size:12px; margin-top:4px; }
.company-calendar-track { position:relative; min-height:56px; background:repeating-linear-gradient(90deg,#f5f8f6 0,#f5f8f6 3%,#e4ece7 3.2%); }
.company-calendar-bar { position:absolute; top:12px; height:28px; min-width:8px; border-radius:5px; background:#c4d7f3; border:1px solid #7da4d5; }
.company-calendar-bar.support { background:#cce8d9; border-color:#75a78b; }
.company-calendar-bar > span { display:block; overflow:hidden; white-space:nowrap; font-size:11px; padding:4px; }
.workflow-parent-button { border:0; padding:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; width:100%; }
.workflow-parent-button span { display:block; margin-top:5px; font-size:12px; font-weight:500; color:#36735d; }
.workflow-parent-button:hover { text-decoration:underline; }
.workflow-parent-button:focus-visible { outline:2px solid #36735d; outline-offset:3px; }
.workflow-children { flex-basis:100%; padding:14px; border:1px solid #accabb; border-left:4px solid #36735d; border-radius:8px; background:#f1f7f3; }
.workflow-children[hidden] { display:none !important; }
.workflow-children h4 { margin:0 0 10px; font-size:14px; }
.progress-handling label { display:inline-flex; align-items:center; gap:5px; margin-right:12px; }
.progress-option { max-width:760px; flex-wrap:wrap; }
.progress-option [data-option-side] { flex:0 1 190px; }

.company-list-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:16px 0; }
.company-list-toolbar .tabs { margin:0; }
.company-list-toolbar label { display:flex; align-items:center; gap:8px; }
.company-compact-wrap { border:1px solid var(--line, #d5e2dc); border-radius:12px; background:white; }
.company-compact-table { width:100%; }
.company-compact-table > thead > tr > th, .company-compact-row > td { padding:12px 16px; white-space:nowrap; }
.company-compact-row { cursor:pointer; }
.company-compact-row:hover, .company-compact-row:focus-within, .company-compact-row.is-expanded { background:#eaf4ee; }
.company-compact-name { display:flex; align-items:center; gap:8px; border:0; background:transparent; color:inherit; font:inherit; font-weight:700; cursor:pointer; text-align:left; }
.company-compact-name:focus-visible { outline:2px solid #235d4c; outline-offset:4px; }
.company-compact-detail > td { padding:12px; background:#f2f7f4; }
.company-compact-detail[hidden] { display:none; }
.company-compact-detail .managed-company { margin:0; box-shadow:none; }
.company-compact-detail .company-summary-head { padding:12px 16px; }
.company-list-filters {display:grid;gap:12px;background:#fff;border:1px solid #d5e2dc;border-radius:12px;padding:16px;margin-bottom:16px;}
.company-list-filters fieldset {display:flex;flex-wrap:wrap;gap:10px 18px;border:0;padding:8px 0;margin:0;}
.company-list-filters legend {font-weight:700;font-size:14px;}
.company-list-filters fieldset label {display:flex;align-items:center;gap:6px;}
.company-query-label {display:grid;gap:6px;max-width:760px;}
.company-filter-fields {display:flex;flex-wrap:wrap;gap:12px;}
.company-filter-fields label {display:grid;gap:6px;}
.company-list-filters > button {justify-self:start;}
.company-period-value {display:flex;flex-wrap:wrap;gap:6px 12px;max-width:390px;}
.company-period-value label {display:grid;gap:4px;font-weight:400;font-size:12px;}
.company-period-value input {width:160px;font-size:14px;}
.company-period-value > small {flex-basis:100%;font-weight:400;}
.chatwork-reader {border-top:1px solid #d5e2dc;margin-top:24px;padding-top:16px;}
.chatwork-reader form {margin-top:12px;align-items:end;}
.chatwork-messages {display:grid;gap:12px;}
.chatwork-messages article {border:1px solid #d5e2dc;border-radius:10px;padding:14px;}
.chatwork-messages p {white-space:pre-wrap;overflow-wrap:anywhere;}
.chatwork-messages time {font-size:12px;color:#667770;}

[data-provisional-name]:focus::placeholder { color: transparent; }
.company-draft-count { width: 88px; display: inline-block; margin-right: 4px; }
.participant-add-actions { justify-content: flex-start; margin-top: 12px; }

.nav-development-label { margin: 18px 8px 8px; color: #f3d987; font-weight: 700; font-size: 14px; }
.management-tabs { flex-wrap: wrap; margin-bottom: 20px; }
.management-tabs a { text-decoration: none; }
.management-content > .page-head h2 { margin: 0; font-size: 24px; }

.company-compact-row > .company-task-summary-cell { white-space:normal; min-width:360px; }
.company-task-summary { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; }
.task-summary-group { border:1px solid #d6e3dc; border-radius:8px; background:#f6f9f7; padding:7px 9px; }
.task-summary-item { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:14px; }
.task-summary-label { font-weight:600; }
.task-summary-status { border-radius:5px; background:#e5ece8; padding:3px 6px; }
.task-summary-status.is-complete { color:#186947; background:#dff3e8; }
.task-summary-status.is-action { color:#a32323; background:#ffe5e5; }
.task-summary-children { border-left:2px solid #b3cfc2; margin:7px 0 0 5px; padding-left:9px; display:grid; gap:7px; }
.task-summary-item.is-required { outline:2px solid #c92f35; border-radius:4px; padding:4px; }
.task-summary-item.is-important { background:#fff2bf; }
.task-summary-flag { font-size:12px; font-weight:700; }
.company-task-overview { margin-bottom:16px; }
.company-task-overview > summary { font-weight:600; margin-bottom:10px; }
.progress-definition-fold { border:1px solid #d6e3dc; border-radius:10px; margin:10px 0; }
.progress-definition-fold > summary { cursor:pointer; padding:14px 16px; background:#f2f6f4; border-radius:10px; }
.progress-definition-fold > summary span { margin-left:16px; color:#52675d; font-size:14px; }
.progress-definition-fold .progress-definition { margin:0; border:0; }

.company-plan-links { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0; }

.curriculum-navigation { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; margin:16px 0; }
.curriculum-navigation > * { flex:1 1 260px; min-width:0; white-space:normal; overflow-wrap:anywhere; }
.curriculum-navigation [aria-disabled] { opacity:.5; }
.curriculum-branches { border:1px solid var(--line); border-radius:10px; padding:12px; background:white; }
.curriculum-branches summary { cursor:pointer; font-weight:600; }
.curriculum-branches > div { display:grid; gap:8px; margin-top:12px; }
.curriculum-branches button { white-space:normal; text-align:left; }

.plan-company-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:18px 0; }
.plan-company-selector { min-width:0; max-width:100%; }
.plan-company-selector select { font-size:18px; font-weight:700; max-width:100%; }
.plan-company-toolbar > .primary { margin-left:auto; }
.session-occurrence { display:flex; flex-wrap:wrap; gap:12px; align-items:end; padding:14px; margin:12px 0; border:1px solid var(--line); border-radius:10px; }
.session-occurrence > label { flex:1 1 180px; min-width:0; }
.curriculum-card-session { margin:14px 0; }
.cp-attendance { overflow-x:auto; margin:12px 0; }
.cp-attendance table { width:100%; border-collapse:collapse; text-align:left; }
.cp-attendance th { background:#eaf3ee; }
.cp-attendance th,.cp-attendance td { padding:10px; border-bottom:1px solid #d6e3dc; overflow-wrap:anywhere; white-space:normal; }

.cp-topic-grid.curriculum-topic-list { grid-template-columns:minmax(0,1fr); }
.curriculum-topic-list .cp-topic-card { align-items:stretch; }
.curriculum-topic-list .curriculum-card-description { white-space:pre-wrap; }
.curriculum-topic-list .cp-topic-card > .button { align-self:flex-start; }
.curriculum-topic-list .curriculum-card-session { margin:0; }

/* Course identity stays visible across the heading, lesson border and attendance header. */
.curriculum-course-group { --course-accent:#397957; --course-tint:#edf6ee; margin:24px 0; padding:0 12px 12px; border-left:5px solid var(--course-accent); border-radius:8px; background:var(--course-tint); }
.curriculum-course-group.course-blue { --course-accent:#366db0; --course-tint:#edf4fd; }
.curriculum-course-group.course-purple { --course-accent:#8053a3; --course-tint:#f5effb; }
.curriculum-course-group.course-orange { --course-accent:#996218; --course-tint:#fff5e5; }
.curriculum-course-group.course-teal { --course-accent:#247b80; --course-tint:#eaf7f7; }
.curriculum-course-group.course-rose { --course-accent:#a14e70; --course-tint:#fff0f5; }
.curriculum-course-group > .plan-target-heading { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:16px 4px; margin:0; border:0; background:transparent; }
.curriculum-course-label { color:var(--course-accent); background:#fff; border:1px solid var(--course-accent); border-radius:6px; padding:4px 10px; }
.curriculum-course-group .cp-topic-card { border-top-color:var(--course-accent); }
.curriculum-course-group .curriculum-card-session th { background:var(--course-tint); border-bottom:2px solid var(--course-accent); }

.curriculum-attendance-toggle { display:flex; align-items:center; gap:8px; margin-bottom:16px; width:fit-content; cursor:pointer; }
.curriculum-attendance-toggle input { flex:0 0 auto; width:18px; height:18px; }

.plan-rich-field { min-width:0; width:100%; font-weight:400; font-size:15px; }
.plan-rich-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:6px; color:#476158; font-size:13px; }
.plan-rich-tools { flex:1 1 auto; min-width:0; }
.plan-rich-tools summary { cursor:pointer; width:fit-content; padding:3px 8px; font-size:13px; list-style:none; border-radius:5px; }
.plan-rich-tools summary::-webkit-details-marker { display:none; }
.plan-rich-tools[open] summary { background:#e5eee9; }
.plan-rich-tools [role=toolbar] { display:flex; flex-wrap:wrap; align-items:center; gap:5px; padding:8px; margin-top:6px; border:1px solid #c4d5cc; background:#f2f6f3; border-radius:7px; }
.plan-rich-tools button,.plan-rich-tools select { min-width:30px; min-height:32px; border:1px solid #c4d5cc; border-radius:4px; background:white; color:#193d31; padding:4px 7px; cursor:pointer; }
.plan-rich-tools label { display:flex; align-items:center; gap:4px; white-space:nowrap; font-size:12px; }
.plan-rich-tools input[type=color] { width:32px; height:30px; padding:2px; border:1px solid #c4d5cc; }
.plan-rich-input { min-height:46px; padding:10px 12px; border:1px solid #cbd9d2; border-radius:7px; background:#fff; color:#233b32; font-family:sans-serif; font-size:16px; font-weight:400; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; cursor:text; }
.plan-rich-input:focus { outline:2px solid #739fd0; outline-offset:1px; }
.plan-rich-field[data-rich-field=title] .plan-rich-input { font-size:20px; font-weight:700; }
.plan-rich-label { display:block; margin-top:12px; margin-bottom:2px; }
.plan-rich-label:first-child { margin-top:0; }
.plan-rich-display { white-space:pre-wrap; }
.plan-rich-field textarea[hidden] { display:none!important; }
.cp-hero .plan-rich-field { color:#233b32; }
.curriculum-simple-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:12px 16px; background:#fff; border:1px solid #d3dfd9; border-left:4px solid var(--course-accent); border-radius:7px; }
.curriculum-simple-row > div:first-child { flex:1; min-width:180px; }
.curriculum-simple-title { display:block; text-align:left; border:0; background:none; padding:3px 0; color:#193e32; font:inherit; font-weight:700; cursor:pointer; }
.curriculum-simple-title:hover { text-decoration:underline; }
.curriculum-simple-row small { display:block; color:#61766b; margin-top:4px; }
.curriculum-simple-attendance { flex-basis:100%; }

.plan-material-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid var(--border,#d5e0da)}.plan-material-row label{flex:1 1 200px;min-width:0}.plan-material-row input,.plan-material-row select{width:100%}
