:root {
  color-scheme: light;
  --ink: #15211f;
  --muted: #63716e;
  --line: #dce5e2;
  --line-strong: #cbd8d4;
  --surface: #ffffff;
  --surface-soft: #f4f8f7;
  --surface-teal: #edf7f4;
  --brand: #0c6759;
  --brand-dark: #084a41;
  --brand-light: #d8eee8;
  --focus-ring: #006b57;
  --focus-ring-on-dark: #fff3a6;
  --blue: #2d6f92;
  --blue-soft: #eaf4fa;
  --warning: #9a620e;
  --warning-soft: #fff6df;
  --danger: #a6423f;
  --danger-soft: #fff0ef;
  --shadow-sm: 0 8px 26px rgba(13, 46, 41, 0.06);
  --shadow-lg: 0 22px 60px rgba(13, 46, 41, 0.15);
  --radius: 18px;
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }

html { min-width: 320px; max-width: 100%; overflow-x: clip; background: #edf3f1; scroll-behavior: smooth; }

body { max-width: 100%; margin: 0; overflow-x: clip; color: var(--ink); font-family: var(--font); font-size: 15px; line-height: 1.6; background: var(--surface-soft); }

button, input, textarea, select { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: 0.46; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [role="tab"]:focus-visible, .modal-card :focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
textarea { resize: vertical; }
h1, h2, h3, p { margin-top: 0; }
h1 { letter-spacing: -0.045em; line-height: 1.17; }
h2, h3 { letter-spacing: -0.025em; line-height: 1.28; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 1000; padding: 10px 16px; color: #fff; background: var(--brand); border-radius: 8px; }
.skip-link:focus { top: 12px; }

.boot-screen { min-height: 100vh; display: grid; place-content: center; justify-items: center; color: var(--muted); }
.boot-screen img { animation: pulse 1.5s ease-in-out infinite; }
@keyframes pulse { 50% { transform: scale(1.06); opacity: .74; } }

.role-entry-shell { min-height: 100vh; display: flex; flex-direction: column; overflow: hidden; background: radial-gradient(circle at 86% 16%, rgba(73,171,146,.18), transparent 30%), linear-gradient(145deg, #eef6f3 0%, #f8fbfa 50%, #e9f3f0 100%); }
.role-entry-brand { display: flex; align-items: center; gap: 12px; width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 28px 0 18px; }
.role-entry-logo { display: grid; flex: none; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: linear-gradient(145deg, var(--brand), var(--brand-dark)); box-shadow: 0 15px 28px rgba(12,103,89,.2); }
.role-entry-logo img { width: 42px; filter: brightness(0) invert(1); }
.role-entry-brand > span:nth-child(2) strong, .role-entry-brand > span:nth-child(2) small { display: block; }
.role-entry-brand > span:nth-child(2) strong { color: var(--brand-dark); font-size: 18px; }
.role-entry-brand > span:nth-child(2) small { color: var(--muted); font-size: 10px; letter-spacing: .05em; }
.role-entry-brand .prototype-badge { margin: 0 0 0 auto; color: var(--brand); border-color: rgba(12,103,89,.16); background: rgba(255,255,255,.72); }
.role-entry-main { display: grid; flex: 1; place-items: center; width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 24px 0 50px; }
.role-entry-card { position: relative; width: 100%; padding: clamp(32px, 5vw, 62px); overflow: hidden; border: 1px solid rgba(12,103,89,.13); border-radius: 28px; background: rgba(255,255,255,.91); box-shadow: var(--shadow-lg); backdrop-filter: blur(18px); }
.role-entry-card::after { position: absolute; right: -95px; bottom: -145px; width: 380px; height: 380px; content: ""; pointer-events: none; border-radius: 50%; background: radial-gradient(circle, rgba(52,158,135,.14), transparent 68%); }
.role-entry-card h1 { margin: 8px 0 12px; font-size: clamp(36px, 5vw, 62px); }
.role-entry-lead { max-width: 760px; margin-bottom: 30px; color: var(--muted); font-size: 16px; }
.role-choice-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.role-choice-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 18px; min-height: 270px; padding: 28px; overflow: hidden; text-align: left; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(145deg, #fff, #f4f9f7); box-shadow: var(--shadow-sm); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.role-choice-card:hover { transform: translateY(-3px); border-color: #8bbcaf; box-shadow: 0 18px 38px rgba(13,46,41,.12); }
.role-choice-number { position: absolute; top: 17px; right: 21px; color: rgba(12,103,89,.2); font-size: 34px; font-weight: 800; }
.role-choice-icon { display: grid; place-items: center; width: 58px; height: 58px; color: #fff; font-size: 22px; font-weight: 850; border-radius: 18px; background: linear-gradient(145deg, var(--brand), var(--brand-dark)); box-shadow: 0 12px 24px rgba(12,103,89,.18); }
.role-choice-copy { align-self: center; padding-right: 24px; }
.role-choice-copy strong, .role-choice-copy small { display: block; }
.role-choice-copy strong { margin-bottom: 8px; color: var(--brand-dark); font-size: 24px; }
.role-choice-copy small { color: var(--muted); font-size: 13px; line-height: 1.7; }
.role-choice-action { align-self: end; grid-column: 1 / -1; color: var(--brand); font-weight: 800; }
.role-entry-notice { position: relative; z-index: 1; display: flex; gap: 12px; margin-top: 22px; padding: 15px 17px; color: #6e5a2a; border: 1px solid #ead9ac; border-radius: 14px; background: var(--warning-soft); }
.role-entry-notice .note-icon { color: #8a691d; border-color: rgba(138,105,29,.34); }
.role-entry-notice p { margin: 0; font-size: 12px; }
.role-entry-notice strong { display: block; margin-bottom: 2px; color: #765714; }
.role-entry-footer { padding: 0 24px 28px; color: var(--muted); font-size: 11px; text-align: center; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; flex-direction: column; width: 244px; padding: 24px 18px 18px; color: #fff; background: linear-gradient(180deg, #0b5f53 0%, #07463e 74%, #063a34 100%); box-shadow: 14px 0 40px rgba(11, 68, 59, .1); }
.brand { display: flex; gap: 11px; align-items: center; width: 100%; padding: 0; text-align: left; color: inherit; background: transparent; }
.brand img { flex: none; filter: drop-shadow(0 6px 10px rgba(0,0,0,.14)); }
.brand span { min-width: 0; }
.brand strong { display: block; font-size: 16px; white-space: nowrap; }
.brand small { display: block; color: rgba(255,255,255,.58); font-size: 10px; letter-spacing: .04em; }
.prototype-badge { display: inline-flex; align-items: center; gap: 7px; width: max-content; margin: 20px 0 18px 53px; padding: 5px 9px; color: #daf7ee; font-size: 11px; font-weight: 700; border: 1px solid rgba(216,247,238,.2); border-radius: 999px; background: rgba(255,255,255,.07); }
.prototype-badge span { width: 6px; height: 6px; border-radius: 50%; background: #67e2bd; box-shadow: 0 0 0 4px rgba(103,226,189,.11); }
.sidebar nav { display: grid; gap: 6px; margin-top: 26px; }
.sidebar :focus-visible { outline-color: var(--focus-ring-on-dark); }
.nav-item { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 13px; color: rgba(255,255,255,.68); text-align: left; border-radius: 11px; background: transparent; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-item.is-active { color: #fff; background: rgba(255,255,255,.14); box-shadow: inset 3px 0 #74dbbf; }
.nav-icon { display: grid; flex: none; place-items: center; width: 25px; height: 25px; font-size: 18px; font-weight: 700; }
.sidebar-note { display: flex; gap: 10px; margin-top: auto; padding: 13px; color: rgba(255,255,255,.68); font-size: 11px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(0,0,0,.08); }
.sidebar-note p { margin: 0; }
.sidebar-note strong { color: rgba(255,255,255,.94); }
.note-icon { display: grid; flex: none; place-items: center; width: 20px; height: 20px; color: #c9eee4; font-weight: 800; border: 1px solid rgba(201,238,228,.35); border-radius: 50%; }
.reset-button { margin-top: 10px; padding: 9px; color: rgba(255,255,255,.63); font-size: 12px; border-radius: 9px; background: transparent; }
.reset-button:hover { color: #fff; background: rgba(255,255,255,.06); }

.mobile-header, .mobile-nav { display: none; }
.content-shell { min-height: 100vh; margin-left: 244px; }
.topbar { display: flex; align-items: center; justify-content: space-between; height: 76px; padding: 0 38px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.88); backdrop-filter: blur(18px); }
.topbar > div:first-child { display: flex; align-items: baseline; gap: 12px; }
.topbar > div:first-child strong { font-size: 17px; }
.eyebrow, .section-kicker { color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.user-chip { display: flex; align-items: center; gap: 10px; padding: 6px 9px; text-align: left; border-radius: 13px; background: transparent; }
.role-switch:hover { background: var(--surface-teal); }
.avatar { display: grid; place-items: center; width: 36px; height: 36px; color: #fff; font-weight: 800; border-radius: 12px; background: linear-gradient(135deg, #2a7897, #20546e); }
.user-chip strong, .user-chip small { display: block; }
.user-chip strong { font-size: 13px; }
.user-chip small { color: var(--muted); font-size: 10px; }

main { width: min(1280px, calc(100% - 64px)); margin: 0 auto; padding: 34px 0 72px; }

.task-first-card { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); min-height: 350px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow-sm); }
.task-first-main { display: flex; min-width: 0; padding: 36px 40px 32px; flex-direction: column; }
.task-first-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 28px; align-items: center; }
.task-first-heading > div { display: contents; }
.task-first-label { margin: 0 0 9px; color: var(--muted); font-size: 12px; font-weight: 750; }
.task-first-heading .task-first-label { grid-row: 1; grid-column: 1; margin: 0; }
.task-first-heading h1 { display: -webkit-box; grid-row: 2; grid-column: 1 / -1; max-width: 780px; margin: 14px 0 0; overflow: hidden; overflow-wrap: anywhere; font-size: clamp(30px, 3vw, 42px); line-height: 1.16; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.task-first-stage { display: inline-flex; grid-row: 1; grid-column: 2; align-items: center; gap: 8px; padding: 8px 11px; color: var(--brand-dark); font-size: 12px; font-weight: 800; border: 1px solid #c6dfd8; border-radius: 999px; background: var(--surface-teal); }
.task-first-stage > span { width: 7px; height: 7px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 4px rgba(12,103,89,.09); }
.task-first-summary { max-width: 68ch; margin: 18px 0 0; color: var(--muted); font-size: 14px; }
.task-first-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: auto 0 0; padding: 25px 0 0; list-style: none; border-top: 1px solid var(--line); }
.task-first-progress li { position: relative; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }
.task-first-progress li:not(:last-child)::after { position: absolute; top: 14px; right: 14px; left: 52px; height: 1px; content: ""; background: var(--line); }
.task-first-progress li > span { z-index: 1; display: grid; flex: none; place-items: center; width: 29px; height: 29px; color: var(--muted); font-size: 12px; font-weight: 800; border: 1px solid var(--line-strong); border-radius: 9px; background: #fff; }
.task-first-progress li.is-current { color: var(--brand-dark); }
.task-first-progress li.is-current > span { color: #fff; border-color: var(--brand); background: var(--brand); }
.task-first-progress li.is-complete { color: var(--brand); }
.task-first-progress li.is-complete > span { color: var(--brand); border-color: #b9dad1; background: var(--brand-light); }
.task-first-progress li.is-complete::after { background: #b9dad1; }
.task-first-next { display: flex; padding: 36px 32px; flex-direction: column; border-left: 1px solid #cfe4de; background: var(--surface-teal); }
.task-first-next h2 { margin: 0; font-size: clamp(23px, 2.3vw, 30px); line-height: 1.28; }
.task-first-next > p:not(.task-first-label) { display: -webkit-box; margin: 15px 0 26px; overflow: hidden; color: #526d67; font-size: 13px; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.task-first-actions { display: flex; align-items: stretch; gap: 10px; margin-top: auto; flex-direction: column; }
.task-first-actions button { min-height: 46px; }
.task-first-card + .expert-overview-grid { margin-top: 18px; }

.hero-card { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; min-height: 470px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(135deg, #fff 0%, #fff 58%, #edf7f4 100%); box-shadow: var(--shadow-sm); }
.hero-card::before { position: absolute; inset: auto auto -120px -80px; width: 340px; height: 220px; content: ""; background: radial-gradient(circle, rgba(47,148,126,.09), transparent 67%); }
.hero-copy { position: relative; z-index: 2; padding: 64px 28px 54px 54px; }
.hero-copy h1 { max-width: 650px; margin: 11px 0 22px; font-size: clamp(38px, 4.2vw, 62px); }
.hero-copy h1 em { color: var(--brand); font-style: normal; }
.hero-copy > p { max-width: 620px; color: var(--muted); font-size: 16px; }
.hero-actions { display: flex; gap: 12px; margin-top: 30px; }
.primary-button, .secondary-button, .text-button { border-radius: 10px; transition: transform .14s ease, box-shadow .14s ease, background .14s ease; }
.primary-button { padding: 11px 18px; color: #fff; font-weight: 750; background: var(--brand); box-shadow: 0 7px 18px rgba(12,103,89,.18); }
.primary-button:not(:disabled):hover { transform: translateY(-1px); background: var(--brand-dark); box-shadow: 0 10px 24px rgba(12,103,89,.24); }
.primary-button.large { padding: 14px 21px; }
.primary-button.full { width: 100%; }
.secondary-button { padding: 10px 16px; color: var(--brand-dark); font-weight: 700; border: 1px solid var(--line-strong); background: #fff; }
.secondary-button:hover { border-color: #9dbbb4; background: var(--surface-teal); }
.primary-button.small, .secondary-button.small { padding: 7px 11px; font-size: 12px; }
.text-button { padding: 8px 5px; color: var(--brand); font-weight: 700; background: transparent; }
.text-button:hover { color: var(--brand-dark); }
.prototype-inline-note { display: flex; align-items: center; gap: 8px; margin-top: 24px; font-size: 11px !important; }
.prototype-inline-note span { padding: 2px 7px; color: var(--warning); font-weight: 800; border-radius: 999px; background: var(--warning-soft); }

.hero-visual { position: relative; min-height: 470px; overflow: hidden; background: radial-gradient(circle at center, rgba(52,158,135,.18), rgba(226,244,239,.5) 41%, transparent 69%); }
.visual-orbit { position: absolute; top: 50%; left: 50%; border: 1px dashed rgba(12,103,89,.22); border-radius: 50%; transform: translate(-50%,-50%); }
.orbit-one { width: 300px; height: 300px; }
.orbit-two { width: 430px; height: 430px; opacity: .6; }
.visual-center { position: absolute; top: 50%; left: 50%; display: grid; place-content: center; justify-items: center; width: 142px; height: 142px; color: var(--brand-dark); text-align: center; border: 1px solid rgba(12,103,89,.17); border-radius: 44px; background: rgba(255,255,255,.8); box-shadow: 0 24px 50px rgba(11,96,83,.18); transform: translate(-50%,-50%) rotate(2deg); backdrop-filter: blur(12px); }
.visual-center img { width: 52px; margin-bottom: 5px; }
.visual-center strong { line-height: 1.1; }
.visual-node { position: absolute; width: 154px; padding: 14px 16px; border: 1px solid rgba(12,103,89,.12); border-radius: 14px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); backdrop-filter: blur(10px); }
.visual-node span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: 6px; color: #fff; font-size: 10px; font-weight: 800; border-radius: 8px; background: var(--brand); }
.visual-node strong { font-size: 13px; }
.visual-node small { display: block; margin: 5px 0 0 32px; color: var(--muted); font-size: 10px; }
.node-one { top: 45px; left: 34px; }
.node-two { top: 92px; right: 28px; }
.node-three { right: 72px; bottom: 44px; }

.section-block { margin-top: 34px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.section-heading h2 { margin: 3px 0 0; font-size: 25px; }
.recent-tasks-section > .section-heading .text-button { min-height: 44px; }
.recent-task-list { margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); background: #fff; }
.recent-task-list li + li { border-top: 1px solid var(--line); }
.recent-task-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 16px; align-items: center; width: 100%; min-height: 72px; padding: 16px; text-align: left; background: transparent; transition: background-color 120ms cubic-bezier(.2,0,0,1); }
.recent-task-row:hover { background: var(--surface-teal); }
.recent-tasks-state { padding: 24px; border: 1px solid var(--line); background: var(--surface-soft); }
.recent-tasks-state strong { color: var(--ink); font-size: 14px; }
.recent-tasks-state p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.recent-tasks-state .secondary-button { margin-top: 16px; }
.recent-content strong, .recent-content small { display: block; }
.recent-content strong { font-size: 16px; }
.recent-content small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.recent-status { color: var(--brand); font-size: 12px; font-weight: 750; }
.recent-arrow { color: var(--brand); }
.capability-card:hover, .more-card:hover { transform: translateY(-2px); border-color: #a9c4bd; box-shadow: 0 14px 34px rgba(13,46,41,.09); }
.capability-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.capability-card { padding: 25px; text-align: left; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); transition: .18s ease; }
.capability-card > span { display: block; color: #8ca09b; font-family: ui-monospace, monospace; font-size: 11px; }
.capability-card strong { display: block; margin-top: 25px; font-size: 19px; }
.capability-card p { min-height: 52px; margin: 8px 0 16px; color: var(--muted); font-size: 12px; }
.capability-card em { color: var(--brand); font-size: 12px; font-style: normal; font-weight: 750; }

.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin: 6px 0 28px; }
.page-intro h1 { margin: 5px 0 8px; font-size: clamp(33px, 4vw, 50px); }
.page-intro p { max-width: 760px; margin-bottom: 0; color: var(--muted); }
.compact-intro { align-items: center; }
.candidate-pill, .prototype-page-tag, .readonly-pill { flex: none; padding: 8px 12px; font-size: 11px; font-weight: 750; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.candidate-pill { color: var(--warning); border-color: #eddcae; background: var(--warning-soft); }
.prototype-page-tag { color: var(--blue); border-color: #c9e1ee; background: var(--blue-soft); }
.readonly-pill { color: var(--brand); border-color: #beddd5; background: var(--brand-light); }

.stepper { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 22px; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.stepper li { position: relative; display: flex; align-items: center; gap: 11px; padding: 15px 20px; color: #91a09c; }
.stepper li:not(:last-child)::after { position: absolute; top: 22px; right: -5px; z-index: 2; width: 10px; height: 10px; content: ""; border-top: 1px solid var(--line); border-right: 1px solid var(--line); background: #fff; transform: rotate(45deg); }
.step-number { display: grid; flex: none; place-items: center; width: 29px; height: 29px; font-size: 11px; font-weight: 800; border: 1px solid var(--line-strong); border-radius: 9px; }
.stepper strong, .stepper small { display: block; }
.stepper strong { font-size: 12px; }
.stepper small { font-size: 9px; font-weight: 500; }
.stepper .is-current { color: var(--brand-dark); background: var(--surface-teal); }
.stepper .is-current::after { background: var(--surface-teal); }
.stepper .is-current .step-number { color: #fff; border-color: var(--brand); background: var(--brand); }
.stepper .is-complete { color: var(--brand); }
.stepper .is-complete .step-number { border-color: #b9dad1; background: var(--brand-light); }

.workspace-card { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.input-workspace { border-radius: 4px; box-shadow: none; }
.workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 27px 30px 22px; border-bottom: 1px solid var(--line); }
.workspace-header h2 { margin: 4px 0 3px; font-size: 25px; }
.workspace-header p { margin: 0; color: var(--muted); font-size: 12px; }
.expert-history-save { gap: 16px; padding: 16px 20px; border-top: 1px solid var(--line); }
.expert-history-save span { color: var(--muted); font-size: 12px; line-height: 1.6; }
.expert-history-save .secondary-button { flex: none; min-height: 44px; }
.input-workspace form { padding: 25px 30px 0; }
.input-mode-header { align-items: center; }
.mode-switch { display: flex; padding: 0; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface-soft); }
.mode-switch button { min-height: 44px; padding: 8px 16px; color: var(--muted); font-size: 12px; font-weight: 700; border-radius: 0; background: transparent; }
.mode-switch button + button { border-inline-start: 1px solid var(--line); }
.mode-switch .is-active { color: var(--brand-dark); border-block-end: 3px solid var(--brand); background: var(--surface); box-shadow: none; }
.input-mode-panel { border-radius: 0; box-shadow: none; }
.input-mode-help { max-width: 68ch; margin: 0 0 8px; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.field-label { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 12px; font-weight: 750; }
.field-label span { color: var(--danger); font-size: 10px; }
input, select, textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 11px; background: #fff; transition: border .15s ease, box-shadow .15s ease; }
input, select { min-height: 43px; padding: 8px 11px; }
textarea { padding: 14px 15px; line-height: 1.72; }
input:focus, select:focus, textarea:focus { border-color: #6eaaa0; box-shadow: 0 0 0 4px rgba(30,128,109,.08); }
#request-input { min-height: 170px; font-size: 16px; border-radius: 4px; background: var(--surface); box-shadow: none; }
#request-input:focus { border-color: var(--brand); outline: 2px solid var(--focus-ring); outline-offset: 2px; box-shadow: none; }
.field-meta { display: flex; justify-content: space-between; min-height: 34px; padding-top: 7px; color: var(--muted); font-size: 10px; }
.field-error { color: var(--danger); }
.input-field-issue { display: inline-flex; align-items: flex-start; gap: 8px; max-width: 72ch; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.input-issue-mark, .input-blocker-mark { display: inline-grid; flex: none; place-items: center; width: 20px; height: 20px; color: var(--danger); font-weight: 800; border: 1px solid var(--danger); border-radius: 2px; background: var(--danger-soft); }
.input-submit-label { display: inline-block; min-width: 10em; max-width: 100%; text-align: center; }
.example-area { margin-top: 10px; padding: 18px; border-radius: 13px; background: var(--surface-soft); }
.example-heading { display: flex; justify-content: space-between; margin-bottom: 11px; }
.example-heading strong { font-size: 12px; }
.example-heading span { color: var(--muted); font-size: 10px; }
.example-chips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.example-chips button { padding: 12px 13px; text-align: left; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.example-chips button:hover { border-color: #96beb4; background: var(--surface-teal); }
.example-chips small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.input-workspace .primary-button { border-radius: 4px; box-shadow: none; }
.input-workspace .primary-button:not(:disabled):hover { transform: none; box-shadow: none; }
.input-workspace .text-button { min-height: 44px; border-radius: 4px; }
.input-workspace .example-area { padding-inline: 0; border-block: 1px solid var(--line); border-radius: 0; background: transparent; }
.input-workspace .example-chips button { border-radius: 4px; box-shadow: none; }
.input-workspace .example-chips button:hover { transform: none; box-shadow: none; }
.form-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 24px; padding: 17px 0; border-top: 1px solid var(--line); }
.input-workspace .form-footer { margin-top: 25px; }
.sticky-footer { padding: 18px 30px; }
.footer-actions { display: flex; gap: 10px; }

.analysis-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(8,36,32,.42); backdrop-filter: blur(8px); }
.analysis-dialog { width: min(480px, 100%); padding: 38px; text-align: center; border: 1px solid rgba(255,255,255,.55); border-radius: 25px; background: rgba(255,255,255,.96); box-shadow: var(--shadow-lg); }
.analysis-dialog h2 { margin: 8px 0 5px; }
.analysis-dialog > p { color: var(--muted); font-size: 11px; }
.agent-pulse { position: relative; display: grid; place-items: center; width: 78px; height: 78px; margin: 0 auto 17px; border-radius: 26px; background: var(--surface-teal); }
.agent-pulse::before, .agent-pulse::after { position: absolute; inset: -8px; content: ""; border: 1px solid rgba(12,103,89,.14); border-radius: 31px; animation: wave 1.5s infinite; }
.agent-pulse::after { inset: -16px; animation-delay: .35s; }
.agent-pulse img { width: 46px; }
@keyframes wave { 50% { transform: scale(1.04); opacity: .35; } }
.analysis-list { display: grid; gap: 7px; margin: 23px 0 0; padding: 0; text-align: left; list-style: none; }
.analysis-list li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; color: #99a5a2; font-size: 11px; border-radius: 9px; }
.analysis-list span { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 7px; }
.analysis-list .done { color: var(--brand); }
.analysis-list .done span { border-color: #bee1d7; background: var(--brand-light); }
.analysis-list .active { color: var(--ink); font-weight: 750; background: var(--surface-teal); }
.analysis-list .active span { color: #fff; border-color: var(--brand); background: var(--brand); }

.request-summary { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; margin-bottom: 14px; padding: 13px 18px; border: 1px solid #cfe4de; border-radius: 12px; background: var(--surface-teal); }
.request-summary span { color: var(--brand); font-size: 10px; font-weight: 800; }
.request-summary p { margin: 0; font-size: 12px; font-weight: 650; }
.request-summary button { color: var(--brand); font-size: 10px; font-weight: 750; background: transparent; }
.concept-list { display: grid; gap: 12px; padding: 18px 30px 4px; }
.concept-card { display: grid; grid-template-columns: auto 1fr auto; gap: 15px; padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.concept-index { padding-top: 4px; color: #94a39f; font-family: ui-monospace, monospace; font-size: 10px; }
.concept-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.concept-title-row h3 { display: inline; margin: 0 0 0 9px; font-size: 18px; }
.type-pill, .source-pill, .database-badge { display: inline-flex; width: max-content; padding: 3px 8px; font-size: 9px; font-weight: 800; border-radius: 999px; }
.type-pill { color: var(--brand); background: var(--brand-light); }
.source-pill { color: var(--blue); border: 1px solid #d2e8f2; background: var(--blue-soft); }
.concept-facts { margin: 13px 0 0; }
.concept-facts div { display: grid; grid-template-columns: 68px 1fr; gap: 10px; }
.concept-facts dt { color: var(--muted); font-size: 10px; }
.concept-facts dd { margin: 0; font-size: 12px; }
details { margin-top: 11px; }
summary { width: max-content; color: var(--brand); font-size: 10px; font-weight: 750; cursor: pointer; }
details p { margin: 8px 0 0; padding: 10px 12px; color: var(--muted); font-size: 11px; border-radius: 9px; background: var(--surface-soft); }
.concept-actions { display: flex; gap: 5px; align-items: flex-start; }
.concept-actions button { padding: 5px 7px; color: var(--muted); font-size: 10px; border-radius: 7px; background: var(--surface-soft); }
.concept-actions button:hover { color: var(--brand); background: var(--surface-teal); }
.concept-actions .danger-text:hover { color: var(--danger); background: var(--danger-soft); }
.empty-state { padding: 45px; text-align: center; border: 1px dashed var(--line-strong); border-radius: 13px; }
.empty-state p { color: var(--muted); font-size: 12px; }
.live-generation-focus-anchor { display: block; width: 1px; height: 1px; overflow: hidden; outline: none; }
.live-generation-panel { margin: 16px 24px 0; padding: 24px; overflow: hidden; border: 1px solid #9fa9a4; border-radius: 0; background: #fbfaf7; }
.live-generation-focus-anchor:focus-visible ~ #live-generation-content .live-generation-panel { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.live-generation-panel.is-blocked { border-color: #c79582; background: #f3e7e1; }
.live-generation-panel.is-review-waiting { border-color: #9fa9a4; background: #f5f3ee; }
.live-generation-panel.is-admission-rejected { border-color: #c79582; background: #fbfaf7; }
.live-generation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.live-generation-heading > div { min-width: 0; }
.live-generation-heading h3 { margin-bottom: 8px; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.live-generation-heading p { max-width: 68ch; margin: 0; color: #58635f; font-size: 14px; overflow-wrap: anywhere; }
.is-blocked .live-generation-heading p, .is-admission-rejected .live-generation-heading p { color: #774b3b; }
.live-generation-actions { display: flex; flex: none; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.live-generation-state { flex: none; padding: 4px 0; color: #235f52; font-size: 12px; font-weight: 600; border-bottom: 1px solid #235f52; }
.is-blocked .live-generation-state, .is-admission-rejected .live-generation-state { color: #9c563f; border-color: #9c563f; }
.live-generation-cancel { min-height: 44px; padding: 8px 16px; color: #783c2f; font-size: 12px; font-weight: 600; border: 1px solid #b98c7e; border-radius: 4px; background: #fff; }
.live-generation-cancel:hover { color: #fff; border-color: #783c2f; background: #783c2f; }
.live-generation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.live-generation-steps li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 8px; align-items: center; min-width: 0; min-height: 64px; padding: 8px; border: 1px solid #cdd3cf; border-radius: 0; background: #fff; }
.live-generation-steps li > span { display: grid; place-items: center; width: 32px; height: 32px; color: #58635f; font-size: 12px; font-weight: 600; border-radius: 2px; background: #f5f3ee; }
.live-generation-steps strong, .live-generation-steps small { display: block; min-width: 0; overflow-wrap: anywhere; }
.live-generation-steps strong { font-size: 12px; }
.live-generation-steps small { margin-top: 2px; color: #58635f; font-size: 12px; line-height: 1.5; }
.live-generation-steps .is-complete > span { color: var(--brand-dark); background: var(--brand-light); }
.live-generation-steps .is-running { border-color: #86bbae; background: #f7fcfa; }
.live-generation-steps .is-running > span { color: #fff; background: var(--brand); }
.live-generation-steps .is-blocked, .live-generation-steps .is-needs-attention { border-color: #e1c98c; background: #fffaf0; }
.live-generation-steps .is-blocked > span, .live-generation-steps .is-needs-attention > span { color: #fff; background: var(--warning); }
.live-generation-steps .is-locked { opacity: .62; }
.live-generation-recovery { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #e8d9ae; }
.live-generation-recovery p { margin: 0; color: #6c5625; font-size: 11px; }
.live-generation-recovery button { flex: none; min-height: 44px; }
.live-generation-recovery.is-review-waiting { border-top-color: #c7ddd7; }
.term-assistance-region { margin-top: 24px; border-top: 1px solid #9fa9a4; }
.term-assistance-intro { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid #cdd3cf; }
.term-assistance-intro h3 { margin: 0; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; line-height: 1.5; }
.term-assistance-intro p { max-width: 640px; margin: 4px 0 0; color: #58635f; font-size: 12px; line-height: 1.6; }
.term-assistance-intro > span { color: #58635f; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 12px; white-space: nowrap; }
.term-assistance-concept { padding: 16px 0 24px; border-bottom: 1px solid #cdd3cf; }
.term-assistance-concept > header { display: flex; justify-content: space-between; gap: 16px; }
.term-assistance-concept h4 { margin: 0; font-size: 16px; }
.term-assistance-concept header p, .term-assistance-note, .term-assistance-empty { margin: 4px 0 0; color: #58635f; font-size: 12px; line-height: 1.6; }
.term-assistance-status { flex: none; padding: 2px 6px; color: #783c2f; font-size: 12px; font-weight: 600; border: 1px solid #b98c7e; border-radius: 2px; background: #fff; }
.term-assistance-provider-fault { margin: 16px 0 0; padding: 8px 12px; color: #783c2f; font-size: 12px; line-height: 1.6; border: 1px solid #b98c7e; border-left-width: 3px; background: #fdf6f3; }
.term-assistance-subject-terms { margin: 16px 0 0; padding: 12px 16px; border: 1px solid #cdd3cf; background: #fff; }
.term-assistance-subject-terms legend { padding: 0 4px; color: #58635f; font-size: 12px; font-weight: 600; }
.term-assistance-subject-hint { margin: 0 0 8px; color: #58635f; font-size: 12px; line-height: 1.6; }
.term-assistance-subject-option { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; padding: 6px 0; border-top: 1px solid #eceeed; font-size: 14px; }
.term-assistance-subject-option:first-of-type { border-top: 0; }
.term-assistance-subject-option input { width: 16px; height: 16px; accent-color: var(--brand); }
.term-assistance-subject-term { font-weight: 600; }
.term-assistance-subject-option small { color: #58635f; font-size: 12px; }
.term-assistance-subject-flag { color: #235f52; font-weight: 600; }
.term-assistance-candidates { margin: 16px 0 0; padding: 0; list-style: none; border: 1px solid #cdd3cf; background: #fff; }
.term-assistance-candidate { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .9fr) auto; gap: 16px; align-items: center; padding: 16px; border-bottom: 1px solid #cdd3cf; }
.term-assistance-candidate:last-child { border-bottom: 0; }
.term-assistance-choice { display: flex; gap: 8px; align-items: center; min-height: 24px; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 14px; font-weight: 600; }
.term-assistance-choice input { width: 16px; height: 16px; accent-color: var(--brand); }
.term-assistance-choice > label { display: flex; gap: 8px; align-items: center; min-width: 0; }
.term-assistance-candidate-main p, .term-assistance-candidate-main small { display: block; margin: 4px 0 0; color: #58635f; font-size: 12px; line-height: 1.5; }
.term-assistance-verifications { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.term-assistance-verifications dt, .term-assistance-verifications dd { margin: 0; font-size: 12px; }
.term-assistance-verifications dt { color: #58635f; }
.term-assistance-verifications dd { margin-top: 2px; font-weight: 600; }
.term-assistance-verifications a { display: block; width: fit-content; color: var(--brand); }
.term-assistance-verifications .is-verified { color: #235f52; }
.term-assistance-verifications .is-not_found, .term-assistance-verifications .is-unavailable, .term-assistance-verifications .is-ambiguous { color: #783c2f; }
.term-assistance-database-evidence { min-width: 0; }
.term-assistance-mapping-choices { display: grid; gap: 8px; margin-top: 12px; padding-top: 8px; border-top: 1px solid #cdd3cf; }
.term-assistance-mapping-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(112px, auto) auto; gap: 8px; align-items: center; }
.term-assistance-mapping-database { color: #58635f; font-size: 12px; font-weight: 600; }
.term-assistance-mapping-row > label { display: flex; gap: 8px; align-items: flex-start; min-width: 0; font-size: 12px; line-height: 1.5; }
.term-assistance-mapping-row input { flex: none; width: 16px; height: 16px; margin-top: 1px; accent-color: var(--brand); }
.term-assistance-mapping-row b { overflow-wrap: anywhere; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-weight: 600; }
.term-assistance-mapping-row small, .term-assistance-mapping-evidence { color: #58635f; font-size: 12px; }
.term-assistance-mapping-row select { min-height: 32px; padding: 4px 24px 4px 8px; color: #18201d; font-size: 12px; border: 1px solid #9fa9a4; border-radius: 4px; background: #fff; }
.term-assistance-mapping-row a { color: #235f52; font-size: 12px; white-space: nowrap; text-underline-offset: 2px; }
.term-assistance-mapping-row :is(input, select, a):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.term-assistance-relation-note { grid-column: 2 / -1; min-width: 0; color: #58635f; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.term-assistance-relation-note > span:not([hidden]) { display: block; }
.term-assistance-relation-note [data-term-relation-draft] { color: #18201d; }
.term-assistance-relation-note [data-term-relation-error] { color: #9c563f; }
.term-assistance-mapping-row select[aria-invalid="true"] { border-color: #9c563f; }
.term-assistance-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin-top: 16px; }
.term-assistance-actions .secondary-button, .term-assistance-actions .primary-button { min-height: 40px; }
.term-assistance-manual { display: grid; gap: 4px; min-width: 176px; color: #58635f; font-size: 12px; }
.term-assistance-manual input { min-height: 40px; padding: 8px 12px; color: #18201d; font-size: 14px; border: 1px solid #9fa9a4; border-radius: 4px; background: #fff; }
.term-assistance-manual input:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-color: var(--brand); }
.term-assistance-evidence { flex: 1 1 240px; }
.term-assistance-note { margin-top: 12px; }
.term-assistance-diagnostics { margin: 12px 0; padding: 8px 12px 8px 28px; border-left: 2px solid #9fa9a4; background: #fbfaf7; color: #58635f; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.term-assistance-diagnostics li + li { margin-top: 4px; }
.term-assistance-diagnostics strong { color: #18201d; font-weight: 600; }
.generation-queue-status { margin-top: 24px; padding: 16px 0; border-top: 1px solid #cdd3cf; border-bottom: 1px solid #cdd3cf; }
.generation-queue-status dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.generation-queue-status dl div { min-width: 0; padding: 0 16px; border-right: 1px solid #cdd3cf; }
.generation-queue-status dl div:first-child { padding-left: 0; }
.generation-queue-status dl div:last-child { padding-right: 0; border-right: 0; }
.generation-queue-status dt { color: #58635f; font-size: 12px; font-weight: 500; }
.generation-queue-status dd { margin: 4px 0 0; color: #18201d; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }
.generation-queue-status > p { max-width: 68ch; margin: 12px 0 0; color: #58635f; font-size: 12px; }
.generation-queue-status .generation-delivery-copy { color: #235f52; font-weight: 600; }
.generation-delivery-note { margin-top: 24px; padding: 16px 0; border-top: 1px solid #cdd3cf; border-bottom: 1px solid #cdd3cf; }
.generation-delivery-note strong { display: block; margin-bottom: 4px; color: #235f52; font-size: 14px; }
.generation-delivery-note p { margin: 0; color: #58635f; font-size: 14px; }
.live-generation-admission-recovery { margin-top: 24px; padding-top: 16px; border-top: 1px solid #c79582; }
.live-generation-admission-recovery strong { color: #9c563f; font-size: 14px; }
.live-generation-admission-recovery p { max-width: 68ch; margin: 4px 0 0; color: #774b3b; font-size: 14px; }

.result-status { display: flex; align-items: center; gap: 10px; min-width: 260px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.result-status > span { width: 9px; height: 9px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 5px var(--warning-soft); }
.result-status strong, .result-status small { display: block; }
.result-status strong { font-size: 11px; }
.result-status small { color: var(--muted); font-size: 9px; }
.result-status.success > span { background: var(--brand); box-shadow: 0 0 0 5px var(--brand-light); }
.source-banner { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding: 14px 16px; border: 1px solid; border-radius: 13px; }
.source-banner > span { display: grid; flex: none; place-items: center; width: 28px; height: 28px; color: #fff; font-size: 13px; font-weight: 850; border-radius: 9px; }
.source-banner strong { display: block; font-size: 12px; }
.source-banner p { margin: 3px 0 0; font-size: 10px; line-height: 1.6; }
.source-approved { border-color: #b9dbd0; background: #edf8f4; }
.source-approved > span { background: var(--brand); }
.source-approved p { color: #3e6f65; }
.editor-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.feedback-action { color: #fff; border-color: var(--warning); background: var(--warning); }
.strategy-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px 26px; }
.strategy-toolbar h2 { margin: 3px 0 0; font-size: 21px; }
.strategy-toolbar p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.strategy-toolbar-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.copy-guidance { padding: 6px 10px; color: var(--brand); font-size: 10px; font-weight: 750; border-radius: 99px; background: var(--brand-light); }
.strategy-count { flex: none; padding: 7px 11px; color: var(--brand-dark); font-size: 10px; font-weight: 750; border: 1px solid #c5e1da; border-radius: 99px; background: var(--brand-light); }
.concept-navigation { padding: 17px 26px 19px; border-top: 1px solid var(--line); background: #fbfdfc; }
.navigation-label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 9px; font-weight: 750; }
.concept-tabs { display: flex; flex-wrap: wrap; gap: 9px; }
.concept-tab, .single-concept-label { display: flex; min-height: 48px; padding: 9px 14px; flex-direction: column; align-items: flex-start; justify-content: center; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.concept-tab { min-width: 160px; text-align: left; }
.concept-tab small, .single-concept-label small { color: var(--muted); font-size: 8px; }
.concept-tab strong, .single-concept-label strong { margin-top: 2px; font-size: 11px; }
.concept-tab.is-active { color: var(--brand-dark); border-color: #8fbeaf; background: var(--brand-light); box-shadow: inset 3px 0 var(--brand); }
.single-concept-label { width: fit-content; min-width: 180px; color: var(--brand-dark); border-color: #b9d9d0; background: var(--brand-light); }
.database-navigation-label { display: flex; align-items: center; justify-content: space-between; padding: 10px 26px 8px; border-top: 1px solid var(--line); background: var(--surface-soft); }
.database-navigation-label .navigation-label { margin: 0; }
.database-navigation-label > span:last-child { color: var(--brand); font-size: 9px; font-weight: 750; }
.database-tabs { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.database-tabs button { position: relative; min-height: 69px; padding: 10px 13px; text-align: left; border-right: 1px solid var(--line); background: transparent; }
.database-tabs button:last-child { border-right: 0; }
.database-tabs span, .database-tabs small { display: block; }
.database-tabs span { font-size: 11px; font-weight: 750; }
.database-tabs small { color: var(--muted); font-size: 8px; }
.database-tabs button.is-active { color: var(--brand-dark); background: #fff; box-shadow: inset 0 -3px var(--brand); }
.strategy-layout { display: block; }
.strategy-editor-card { padding: 24px 26px; }
.editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.editor-heading > div { display: flex; align-items: center; gap: 8px; }
.database-badge { color: #fff; background: var(--brand); }
.editor-heading strong { font-size: 12px; }
#strategy-text { min-height: 265px; font-family: "Cascadia Code", "SFMono-Regular", Consolas, monospace; font-size: 12px; background: #fbfdfc; }
.editor-meta { display: flex; justify-content: space-between; margin-top: 6px; color: var(--muted); font-size: 9px; }
.evidence-details { margin-top: 17px; padding-top: 13px; border-top: 1px solid var(--line); }
.evidence-details summary { font-size: 11px; }
.evidence-details div { margin-top: 10px; padding: 13px; border-radius: 10px; background: var(--surface-soft); }
.evidence-details p { padding: 0; background: none; }
.my-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.my-summary-card { display: flex; min-height: 172px; padding: 22px; flex-direction: column; align-items: flex-start; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.my-summary-card > span { color: var(--brand); font-size: 10px; font-weight: 800; }
.my-summary-card > strong { margin-top: 13px; font-size: 20px; }
.my-summary-card > p { margin: 7px 0 18px; color: var(--muted); font-size: 10px; }
.my-summary-card > button { margin-top: auto; }
.feedback-history { overflow: hidden; }
.feedback-list { display: grid; gap: 12px; padding: 18px 30px 30px; }
.feedback-card { padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.feedback-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.feedback-card-head span, .feedback-card-head strong { display: block; }
.feedback-card-head span { color: var(--muted); font-family: ui-monospace, monospace; font-size: 9px; }
.feedback-card-head strong { margin-top: 4px; font-size: 17px; }
.feedback-status { flex: none; padding: 4px 9px; font-size: 9px; font-style: normal; font-weight: 800; border-radius: 99px; }
.feedback-status.warning { color: #86570f; background: var(--warning-soft); }
.feedback-status.candidate { color: var(--blue); background: var(--blue-soft); }
.feedback-status.success { color: var(--brand); background: var(--brand-light); }
.feedback-card dl { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr; gap: 12px; margin: 16px 0 0; }
.feedback-card dl > div { padding: 11px 12px; border-radius: 9px; background: var(--surface-soft); }
.feedback-card dt { color: var(--muted); font-size: 9px; }
.feedback-card dd { margin: 4px 0 0; font-size: 11px; }
.waiting-reply, .expert-reply { margin-top: 12px; padding: 11px 13px; font-size: 10px; border-radius: 9px; }
.waiting-reply { color: var(--muted); border: 1px dashed var(--line-strong); }
.expert-reply { color: var(--brand-dark); background: var(--brand-light); }
.expert-reply span { font-weight: 800; }
.expert-reply p { margin: 4px 0 0; }

.teaching-section { margin-top: 26px; }
.teaching-section:first-of-type { margin-top: 0; }
.section-count { flex: none; padding: 5px 9px; color: var(--muted); font-size: 10px; border-radius: 99px; background: var(--surface-soft); }
.tutorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tutorial-card { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; gap: 15px; align-items: center; min-height: 150px; padding: 19px; text-align: left; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.tutorial-card:hover { border-color: #9ec4ba; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.tutorial-cover { display: grid; place-items: center; width: 68px; height: 82px; color: #fff; font-size: 20px; font-weight: 850; border-radius: 15px; }
.video-cover { background: linear-gradient(145deg, var(--brand), #269780); }
.article-cover { background: linear-gradient(145deg, #326c85, #70aabd); }
.tutorial-card-content { min-width: 0; }
.tutorial-card-content small, .tutorial-card-content strong, .tutorial-card-content em { display: block; }
.tutorial-card-content small { color: var(--brand); font-size: 9px; font-weight: 800; }
.tutorial-card-content strong { margin-top: 5px; font-size: 16px; }
.tutorial-card-content p { margin: 7px 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.tutorial-card-content em { color: #7b8986; font-size: 9px; font-style: normal; }
.tutorial-arrow { align-self: end; color: var(--brand); font-size: 10px; font-weight: 750; }
.readonly-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 24px; padding: 15px 17px; border: 1px solid #cce4de; border-radius: 13px; background: var(--surface-teal); }
.readonly-note > span { display: grid; flex: none; place-items: center; width: 25px; height: 25px; color: #fff; font-weight: 850; border-radius: 8px; background: var(--brand); }
.readonly-note strong { font-size: 11px; }
.readonly-note p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.tutorial-modal-card { width: min(720px, 100%); }
.tutorial-player { margin-top: 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #0c2d28; }
.player-stage { display: grid; place-items: center; min-height: 270px; padding: 35px; color: #fff; text-align: center; background: radial-gradient(circle at center, rgba(59,182,153,.35), transparent 55%); }
.player-stage > span { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 14px; font-size: 22px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: rgba(255,255,255,.12); }
.player-stage strong, .player-stage small { display: block; }
.player-stage small { margin-top: 5px; color: rgba(255,255,255,.65); font-size: 9px; }
.tutorial-player.is-playing .player-stage > span { animation: player-pulse 1.3s infinite; }
@keyframes player-pulse { 50% { box-shadow: 0 0 0 12px rgba(77,204,175,.12); } }
.player-progress { height: 5px; background: rgba(255,255,255,.16); }
.player-progress i { display: block; height: 100%; background: #5ed0b7; }
.player-controls { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; padding: 12px 15px; color: rgba(255,255,255,.72); font-size: 9px; }
.player-controls span:last-child { text-align: right; }
.tutorial-article { max-height: 430px; margin-top: 18px; padding: 2px 4px 2px 0; overflow-y: auto; }
.tutorial-article section { padding: 17px 18px; border-radius: 12px; background: var(--surface-soft); }
.tutorial-article section + section { margin-top: 10px; }
.tutorial-article h3 { margin: 0 0 7px; font-size: 15px; }
.tutorial-article p { margin: 0; color: #52625f; font-size: 11px; line-height: 1.8; }

/* Expert workbench */
.expert-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.expert-task-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 18px; }
.expert-task-list { display: grid; gap: 10px; }
.expert-filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.expert-filter-bar > label { min-width: 150px; flex: 1 1 170px; }
.expert-detail-layout { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 18px; }
.expert-context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.expert-decision-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.expert-library-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .82fr); gap: 18px; align-items: start; }
.expert-rule-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 18px; }
.expert-diff-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.expert-teaching-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.expert-readonly { background: var(--surface-soft); border-color: var(--line); }

.expert-home-intro { margin-bottom: 22px; }
.expert-overview-grid > button { display: grid; gap: 18px; min-width: 0; min-height: 126px; padding: 21px; color: var(--brand-dark); text-align: left; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(150deg, #fff, var(--surface-teal)); box-shadow: var(--shadow-sm); transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.expert-overview-grid > button:hover { border-color: #9dc4ba; box-shadow: 0 14px 32px rgba(13,46,41,.09); transform: translateY(-2px); }
.expert-overview-grid > button span { color: var(--muted); font-size: 12px; font-weight: 750; }
.expert-overview-grid > button strong { font-size: 34px; line-height: 1; }
.expert-task-columns > .section-block { min-width: 0; margin-top: 28px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.72); box-shadow: var(--shadow-sm); }
.feedback-summary-card { display: flex; min-width: 0; padding: 17px; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.feedback-summary-card > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.feedback-summary-card small { min-width: 0; overflow-wrap: anywhere; color: var(--muted); font-family: ui-monospace, monospace; font-size: 9px; }
.feedback-summary-card h3 { margin: 12px 0 4px; font-size: 16px; }
.feedback-summary-card > p { margin-bottom: 13px; color: var(--muted); font-size: 11px; }
.feedback-summary-card dl { display: grid; gap: 6px; margin: auto 0 0; }
.feedback-summary-card dl > div { display: flex; justify-content: space-between; gap: 10px; padding-top: 7px; border-top: 1px solid #edf2f0; }
.feedback-summary-card dt { color: var(--muted); font-size: 9px; }
.feedback-summary-card dd { margin: 0; overflow-wrap: anywhere; text-align: right; font-size: 10px; }
.card-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 14px; }

.feedback-center-list, .expert-library-list, .expert-list-panel, .expert-detail-placeholder, .feedback-detail, .library-detail, .expert-rule-detail, .expert-editor { min-width: 0; }
.feedback-center-list, .expert-library-list, .expert-list-panel { align-self: start; overflow: hidden; }
.feedback-status-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 8px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.feedback-status-tabs button { min-height: 42px; padding: 8px; color: var(--muted); font-size: 12px; font-weight: 750; border-radius: 9px; background: transparent; }
.feedback-status-tabs button.is-active { color: var(--brand-dark); background: #fff; box-shadow: 0 3px 12px rgba(13,46,41,.08), inset 0 -3px var(--brand); }
.filter-bar { padding: 18px; }
.filter-bar label, .feedback-resolution-form > label, .library-detail form > label, .rule-preview > label { display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 750; }
.feedback-list { display: grid; gap: 9px; padding: 0 18px 18px; }
.feedback-list-item { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.feedback-list-item > div:first-child { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
.feedback-list-item > div:first-child small { grid-column: 1 / -1; overflow-wrap: anywhere; color: var(--muted); font-family: ui-monospace, monospace; font-size: 9px; }
.feedback-list-item > div:first-child strong { min-width: 0; overflow-wrap: anywhere; }
.feedback-list-item > div:first-child span { color: var(--brand); font-size: 10px; font-weight: 800; }
.feedback-list-item > p { margin: 9px 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.feedback-list-item dl { display: grid; gap: 5px; margin: 0; }
.feedback-list-item dl > div { display: grid; grid-template-columns: minmax(88px, auto) minmax(0, 1fr); gap: 8px; }
.feedback-list-item dt { color: var(--muted); font-size: 9px; }
.feedback-list-item dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 10px; text-align: right; }
.expert-detail-placeholder { align-self: stretch; min-height: 260px; padding: 32px; place-content: center; text-align: center; }
.expert-detail-placeholder strong { color: var(--ink); font-size: 17px; }
.expert-detail-placeholder p { margin: 7px 0 0; }
.feedback-detail .database-tabs, .library-detail .database-tabs, .expert-rule-detail .database-tabs { border-top: 1px solid var(--line); }
.feedback-metadata { margin: 0; padding: 20px 24px; }
.feedback-metadata > div { min-width: 0; padding: 12px; border: 1px solid #e6eeeb; border-radius: 11px; background: var(--surface-soft); }
.feedback-metadata dt { color: var(--muted); font-size: 9px; }
.feedback-metadata dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 11px; }
.feedback-resolution-form { display: grid; gap: 9px; padding: 22px 24px; }
.expert-decision-grid fieldset { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.expert-decision-grid legend { padding: 0 6px; color: var(--brand-dark); font-size: 11px; font-weight: 800; }
.expert-decision-grid label { display: flex; gap: 8px; align-items: center; margin-top: 7px; font-size: 11px; }
.expert-decision-grid input { flex: none; width: 16px; min-height: 16px; }
.feedback-readonly { margin: 22px 24px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; }
.feedback-readonly > p { margin: 10px 0; color: var(--muted); font-size: 11px; }
.feedback-readonly article { min-width: 0; margin-top: 9px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.feedback-readonly dl { display: grid; gap: 7px; margin-bottom: 0; }
.feedback-readonly dl > div { display: grid; grid-template-columns: minmax(100px, .35fr) minmax(0, 1fr); gap: 8px; }
.feedback-readonly dt { color: var(--muted); font-size: 9px; }
.feedback-readonly dd { margin: 0; overflow-wrap: anywhere; font-size: 11px; }
.feedback-context-groups { margin: 0 24px 24px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.feedback-context-groups summary { color: var(--brand-dark); font-size: 11px; font-weight: 800; cursor: pointer; }
.feedback-context-groups article { margin-top: 12px; }
.feedback-context-groups article section { min-width: 0; margin-top: 7px; }

.task-type-tag { display: inline-flex; align-items: center; width: fit-content; min-height: 28px; padding: 4px 8px; color: var(--brand-dark); border: 1px solid #bdd7d0; border-radius: 4px; background: var(--surface-teal); font-size: 12px; font-weight: 800; }
.task-type-tag.is-review { color: #245d50; border-color: #9dc9bd; background: #e7f3ef; }
.generation-review-detail { overflow: hidden; }
.generation-review-concepts { display: flex; gap: 6px; padding: 12px 20px; overflow-x: auto; border-top: 1px solid var(--line); background: var(--surface-soft); }
.generation-review-concepts button { flex: 0 0 auto; min-height: 44px; padding: 9px 12px; color: var(--muted); border: 1px solid var(--line); border-radius: 4px; background: #fff; font-size: 12px; font-weight: 750; }
.generation-review-concepts button.is-active { color: #fff; border-color: var(--brand); background: var(--brand); }
.generation-review-single-concept { display: flex; align-items: baseline; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--line); background: var(--surface-soft); }
.generation-review-single-concept span { color: var(--muted); font-size: 12px; }
.generation-review-single-concept strong { font-size: 12px; }
.generation-review-databases { border-top: 0 !important; }
.generation-review-layout { display: grid; grid-template-columns: minmax(130px, .55fr) minmax(260px, 1.5fr) minmax(165px, .7fr); min-width: 0; border-top: 1px solid var(--line); }
.generation-review-layout > * { min-width: 0; padding: 18px; }
.generation-review-evidence { border-right: 1px solid var(--line); background: #fbfcfa; }
.generation-review-evidence h3, .generation-review-checks h3, .generation-review-editor > h3 { margin: 0 0 12px; font-size: 13px; }
.generation-review-evidence dl { display: grid; gap: 12px; margin: 0; }
.generation-review-evidence dt { color: var(--muted); font-size: 12px; font-weight: 750; }
.generation-review-evidence dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.generation-review-evidence dd strong, .generation-review-evidence dd small { display: block; }
.generation-review-evidence dd small { margin-top: 2px; color: var(--muted); font-family: ui-monospace, monospace; font-size: 12px; }
.generation-review-evidence .mesh-evidence { padding: 9px; border: 1px solid #b8d8d0; background: var(--surface-teal); }
.generation-review-evidence > p { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.generation-review-editor { display: grid; align-content: start; gap: 8px; }
.generation-review-editor > label { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; font-weight: 800; }
.generation-review-editor > label small { font-weight: 500; }
.generation-review-editor textarea { min-height: 84px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; line-height: 1.65; resize: vertical; }
.generation-review-editor #generation-review-strategy { min-height: 165px; }
.generation-review-original { border: 1px solid var(--line); border-radius: 4px; background: var(--surface-soft); }
.generation-review-original summary { min-height: 44px; padding: 12px; color: var(--brand-dark); cursor: pointer; font-size: 12px; font-weight: 800; }
.generation-review-original pre, .generation-review-editor > pre { margin: 0; padding: 12px; overflow-x: auto; white-space: pre-wrap; overflow-wrap: anywhere; border-top: 1px solid var(--line); background: #fff; font-size: 12px; line-height: 1.6; }
.generation-review-editor > pre { border: 1px solid var(--line); border-radius: 4px; }
.generation-review-editor > dl { display: grid; gap: 8px; margin: 0; }
.generation-review-editor > dl div { padding: 9px; border: 1px solid #c9ded8; background: var(--surface-teal); }
.generation-review-editor > dl dt { color: var(--muted); font-size: 12px; }
.generation-review-editor > dl dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 12px; }
.generation-review-checks { border-left: 1px solid var(--line); background: #fbfcfa; }
.generation-review-checks h3 { display: flex; justify-content: space-between; gap: 8px; }
.generation-review-checks h3 small { color: var(--brand); font-size: 12px; }
.generation-review-checks > div { display: grid; gap: 9px; }
.generation-review-checks label { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; align-items: center; min-height: 44px; color: #34433e; font-size: 12px; line-height: 1.45; }
.generation-review-checks input { width: 20px; min-height: 20px; margin: 0; accent-color: var(--brand); }
.readonly-banner { padding: 10px 12px; color: #425c55; border: 1px solid #b8d8d0; background: var(--surface-teal); font-size: 12px; line-height: 1.55; }
.generation-review-actions { gap: 12px; padding: 16px 20px; border-top: 1px solid var(--line); }
.generation-review-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.generation-review-claim { padding: 16px 20px; border-top: 1px solid var(--line); }
.generation-review-claim span { color: var(--muted); font-size: 12px; }

.expert-list { display: grid; gap: 8px; padding: 0 18px 18px; }
.library-grid-help { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; padding: 0 18px 10px; color: var(--muted); font-size: 10px; }
.library-grid-help span { flex: none; color: var(--brand-dark); font-size: 12px; font-weight: 850; }
.library-grid-help p { margin: 0; text-align: right; }
.library-grid-scroll { width: 100%; max-height: min(690px, calc(100vh - 230px)); overflow: auto; border-block: 1px solid var(--line); scrollbar-gutter: stable; }
.library-grid-table { width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 0; table-layout: fixed; color: var(--ink); font-size: 10px; }
.library-grid-table th { position: sticky; top: 0; z-index: 2; height: 40px; padding: 0 10px; color: #53645f; text-align: left; white-space: nowrap; border-bottom: 1px solid #cbd9d5; background: #f4f8f6; font-size: 9px; font-weight: 850; letter-spacing: .02em; }
.library-grid-table th:nth-child(1) { width: 18%; }
.library-grid-table th:nth-child(2) { width: 17%; }
.library-grid-table th:nth-child(3) { width: 9%; }
.library-grid-table th:nth-child(4) { width: 10%; }
.library-grid-table th:nth-child(5) { width: 11%; }
.library-grid-table th:nth-child(6) { width: 20%; }
.library-grid-table th:nth-child(7) { width: 15%; }
.library-grid-table td { height: 48px; padding: 4px 10px; vertical-align: middle; border-bottom: 1px solid #e5ece9; background: #fff; }
.library-grid-row:hover td { background: #f7fbf9; }
.library-grid-row.is-selected td { background: var(--surface-teal); }
.library-grid-row.is-selected td:first-child { box-shadow: inset 3px 0 var(--brand); }
.library-grid-input { width: 100%; min-height: 36px; padding: 6px 7px; overflow: hidden; color: var(--ink); text-overflow: ellipsis; border: 1px solid transparent; border-radius: 4px; background: transparent; font-size: 11px; font-weight: 720; }
.library-grid-input:hover:not([readonly]) { border-color: #c5d6d1; background: #fff; }
.library-grid-input:focus { border-color: var(--brand); outline: 2px solid rgba(12,95,82,.17); outline-offset: 0; background: #fff; }
.library-grid-input[readonly] { color: var(--muted); cursor: default; }
.library-grid-status { display: inline-flex; align-items: center; gap: 5px; color: var(--brand); font-weight: 800; white-space: nowrap; }
.library-grid-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.library-grid-status.stopped { color: var(--danger); }
.library-grid-status.draft { color: var(--warning); }
.library-grid-completeness { color: var(--brand-dark); font-variant-numeric: tabular-nums; }
.library-grid-meta { display: grid; gap: 2px; min-width: 0; }
.library-grid-meta strong, .library-grid-meta time { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.library-grid-meta strong { font-size: 10px; }
.library-grid-meta time { color: var(--muted); font-size: 8px; }
.library-grid-action { min-width: 90px; min-height: 40px; padding: 8px 9px; color: var(--brand); border: 1px solid #b8d2ca; border-radius: 5px; background: #fff; font-size: 10px; font-weight: 800; }
.library-grid-action:hover { color: #fff; border-color: var(--brand); background: var(--brand); }
.library-grid-empty { margin: 0 18px 18px; }
.library-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 0 18px 18px; color: var(--muted); font-size: 12px; }
.library-pagination > div { display: flex; gap: 8px; }
.library-pagination .secondary-button { min-height: 44px; padding-inline: 16px; }
.expert-list-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; min-width: 0; width: 100%; padding: 14px; text-align: left; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.expert-list-item:hover, .expert-list-item.is-active, .rule-list-card:hover, .rule-list-card.is-active { border-color: #91baaf; background: var(--surface-teal); }
.expert-list-item > span { min-width: 0; overflow-wrap: anywhere; }
.expert-list-item strong, .expert-list-item small { display: block; }
.status-pill { width: fit-content; padding: 4px 8px; color: var(--brand); font-size: 9px; font-style: normal; font-weight: 800; border-radius: 999px; background: var(--brand-light); }
.status-pill.stopped { color: var(--danger); background: var(--danger-soft); }
.status-pill.draft { color: var(--warning); background: var(--warning-soft); }
.library-detail form { display: grid; gap: 10px; padding: 0 24px 24px; }
.library-detail { position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow: auto; }
.library-version-history { display: grid; gap: 8px; margin: 0; padding: 0 24px 24px; list-style: none; }
.library-version-history li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 5px 12px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.library-version-history time { color: var(--muted); font-size: 9px; }
.library-version-history p { grid-column: 1 / -1; margin: 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }

.rule-overview { align-self: start; }
.rule-overview .summary-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.rule-overview .summary-card > span { display: block; margin-bottom: 9px; color: var(--brand); font-size: 10px; font-weight: 800; }
.rule-overview .summary-card > strong { display: block; margin-bottom: 7px; font-size: 12px; }
.rule-list-card { display: grid; gap: 3px; width: 100%; min-width: 0; margin-top: 7px; padding: 12px; overflow-wrap: anywhere; text-align: left; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
.rule-list-card span, .rule-list-card small { color: var(--muted); font-size: 9px; }
.readonly-rule-list { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.expert-rule-detail { padding-bottom: 24px; overflow: hidden; }
.expert-rule-detail > .section-heading, .expert-rule-detail > p, .rule-preview { margin-left: 24px; margin-right: 24px; }
.expert-rule-detail > .section-heading { margin-top: 24px; }
.expert-rule-detail > p { color: var(--muted); font-size: 10px; }
.rule-publish-evidence, .rule-section-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 22px 24px 0; }
.rule-publish-evidence label, .rule-section-fields label { display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 750; }
.rule-publish-evidence fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; }
.rule-publish-evidence fieldset label { display: flex; gap: 8px; align-items: center; margin-top: 5px; }
.rule-publish-evidence fieldset input { flex: none; width: 16px; min-height: 16px; }
.workspace-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; padding: 20px 24px 0; }
.expert-rule-detail > .expert-readonly { margin: 20px 24px; padding: 0 0 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; }
.expert-rule-detail > .expert-readonly .readonly-note { margin: 0; border-width: 0 0 1px; border-radius: 0; }
.rule-readonly-metadata { display: grid; grid-template-columns: minmax(110px, .3fr) minmax(0, 1fr); gap: 8px 12px; padding: 18px 24px 0; }
.rule-readonly-metadata dt { color: var(--muted); font-size: 9px; }
.rule-readonly-metadata dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 11px; }
.rule-section-fields article { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.rule-section-fields article p { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.rule-preview { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.rule-preview > label { max-width: 360px; }
.rule-preview > button { margin-top: 10px; }
.rule-comparison-grid { margin-top: 16px; }
.rule-comparison-grid > article { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.rule-comparison-grid h3 { margin: 0 0 9px; font-size: 14px; }
.rule-comparison-grid article > div + div { margin-top: 9px; }
.rule-comparison-grid strong { color: var(--muted); font-size: 9px; }

.expert-teaching-toolbar { align-items: center; margin-bottom: 18px; padding: 14px 16px; }
.expert-teaching-toolbar .concept-tabs { min-width: 0; }
.expert-two-column { align-items: start; }
.expert-list-panel .section-heading { padding: 18px 18px 10px; }
.expert-list-item em { align-self: center; color: var(--brand); font-size: 9px; font-style: normal; font-weight: 800; }
.expert-editor { padding: 24px; }
.expert-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.expert-form-grid > label, .expert-form-section label { display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 750; }
.expert-form-grid .full-width { grid-column: 1 / -1; }
.expert-form-section { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.expert-form-section label + label { margin-top: 9px; }
.expert-readonly.workspace-card { padding: 24px; }

.empty-state { min-width: 0; margin: 0; padding: 22px; overflow-wrap: anywhere; color: var(--muted); font-size: 11px; border: 1px dashed var(--line-strong); border-radius: 12px; background: var(--surface-soft); }
.empty-state p { margin: 5px 0 0; }
.workspace-card, .feedback-summary-card, .feedback-list-item, .library-entry-card, .rule-list-card, .modal-card, form, fieldset { max-width: 100%; }
.workspace-card pre, .feedback-summary-card pre, .feedback-list-item pre, .modal-card pre, .feedback-context-groups pre, .rule-comparison-grid pre, .tutorial-article, table { max-width: 100%; overflow-x: auto; }
.workspace-card pre, .feedback-context-groups pre, .rule-comparison-grid pre { margin: 7px 0 0; padding: 11px; white-space: pre; border-radius: 9px; background: #eef4f2; }
.workspace-card, .workspace-card *, .feedback-summary-card *, .feedback-list-item *, .modal-card * { min-width: 0; }

.future-detail { padding: 28px; }

.more-grid { display: grid; grid-template-columns: minmax(0, 720px); gap: 15px; }
.more-card { display: flex; gap: 17px; min-height: 290px; padding: 27px; text-align: left; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); transition: .18s ease; }
.more-icon { display: grid; flex: none; place-items: center; width: 48px; height: 48px; color: #fff; font-size: 18px; font-weight: 800; border-radius: 15px; background: linear-gradient(135deg, var(--brand), var(--brand-dark)); }
.more-card strong { font-size: 20px; }
.more-card p { margin: 8px 0 20px; color: var(--muted); font-size: 11px; }
.more-card ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 28px; padding: 0; list-style: none; }
.more-card li { padding: 3px 7px; color: var(--brand); font-size: 9px; border-radius: 99px; background: var(--surface-teal); }
.more-card em { color: var(--brand); font-size: 11px; font-style: normal; font-weight: 750; }
.future-hero { display: flex; gap: 17px; align-items: center; padding: 22px; border-radius: 14px; background: var(--surface-teal); }
.future-hero > span { display: grid; flex: none; place-items: center; width: 52px; height: 52px; color: #fff; font-size: 20px; font-weight: 850; border-radius: 16px; background: var(--brand); }
.future-hero strong { font-size: 17px; }
.future-hero p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.feature-list { display: grid; gap: 9px; margin: 22px 0; }
.feature-list article { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 11px; }
.feature-list article > span { color: #93a49f; font-family: ui-monospace, monospace; font-size: 10px; }
.feature-list strong { font-size: 12px; }
.feature-list p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.feature-list button { padding: 7px 9px; color: var(--brand); font-size: 9px; font-weight: 750; border-radius: 8px; background: var(--surface-teal); }

.modal-backdrop { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 18px; background: rgba(8,36,32,.47); backdrop-filter: blur(7px); }
.modal-card { position: relative; width: min(520px, 100%); max-height: calc(100dvh - 36px); padding: 30px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid rgba(255,255,255,.6); border-radius: 21px; background: #fff; box-shadow: var(--shadow-lg); }
.modal-card h2 { margin: 4px 0; }
.modal-card > p { color: var(--muted); font-size: 11px; }
.modal-close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 30px; height: 30px; color: var(--muted); font-size: 20px; border-radius: 9px; background: var(--surface-soft); }
.modal-card form { display: grid; gap: 7px; margin-top: 18px; }
.modal-card label { margin-top: 7px; font-size: 10px; font-weight: 750; }
.required-mark { color: var(--danger); }
.feedback-context { display: flex; align-items: center; gap: 9px; margin-top: 15px; padding: 11px 12px; border-radius: 10px; background: var(--surface-teal); }
.feedback-context span { padding: 3px 7px; color: #fff; font-size: 9px; font-weight: 800; border-radius: 99px; background: var(--brand); }
.feedback-context strong { font-size: 11px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.input-blocker-dialog { width: min(560px, 100%); border-color: var(--line-strong); border-radius: 4px; background: var(--surface); }
.input-blocker-dialog h2, .input-blocker-dialog > p { overflow-wrap: anywhere; }
.input-blocker-dialog > p { margin: 16px 0; color: var(--ink); font-size: 14px; line-height: 1.7; }
.input-blocker-mark { margin-bottom: 12px; }
.input-blocker-evidence { margin: 0; overflow-wrap: anywhere; border-block: 1px solid var(--line); }
.input-blocker-evidence > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 12px 0; }
.input-blocker-evidence > div + div { border-top: 1px solid var(--line); }
.input-blocker-evidence dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.input-blocker-evidence dd { margin: 0; color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.input-blocker-dialog .modal-actions button { min-height: 44px; border-radius: 4px; box-shadow: none; }
.input-blocker-dialog .modal-actions button:hover { transform: none; }
.generation-cancellation-dialog { width: min(560px, 100%); border-radius: 6px; }
.generation-cancellation-dialog > p { margin-bottom: 18px; font-size: 12px; }
.generation-cancellation-summary { margin: 0; border-block: 1px solid var(--line); }
.generation-cancellation-summary > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; padding: 13px 0; }
.generation-cancellation-summary > div + div { border-top: 1px solid var(--line); }
.generation-cancellation-summary dt { color: var(--muted); font-size: 11px; font-weight: 750; }
.generation-cancellation-summary dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; }
.generation-cancellation-error { margin: 14px 0 0 !important; padding: 11px 12px; color: #783c2f !important; border: 1px solid #d6aba0; background: var(--danger-soft); }
.danger-confirm-button { min-width: 108px; min-height: 44px; padding: 9px 16px; color: #fff; font-weight: 750; border: 1px solid #783c2f; border-radius: 6px; background: #783c2f; }
.danger-confirm-button:hover:not(:disabled) { background: #633126; }
.danger-confirm-button:disabled { cursor: wait; opacity: .64; }

.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 200; }
.toast { min-width: 220px; padding: 12px 15px; color: #fff; font-size: 11px; font-weight: 700; border-radius: 11px; background: var(--brand-dark); box-shadow: var(--shadow-lg); animation: toast-in .2s ease-out; }
.toast-warning { background: #86570f; }
@keyframes toast-in { from { transform: translateY(9px); opacity: 0; } }

.formal-status { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; padding: 11px 14px; color: #31534d; border: 1px solid #b8d2ca; border-radius: 12px; background: #f4faf7; font-size: 11px; line-height: 1.55; }
.formal-status strong { color: var(--brand-dark); white-space: nowrap; }
.formal-status span { min-width: 0; }
.formal-status .secondary-button { margin-left: auto; }
.formal-status.is-loading { color: #6c5a2d; border-color: #e1d19f; background: #fff9e8; }
.formal-status.is-loading strong { color: #725716; }
.formal-status.is-error { color: #73483d; border-color: #dfb9ad; background: #fff7f4; }
.formal-status.is-error > span { display: grid; gap: 2px; }
.formal-status.is-error strong { color: #8d3f2c; }

.catalog-release-panel { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 14px 28px; align-items: start; margin-bottom: 22px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.catalog-release-panel h2, .catalog-release-panel p { margin: 0; }
.catalog-release-panel h2 { color: var(--brand-dark); font-size: 18px; }
.catalog-release-panel p { max-width: 68ch; margin-top: 5px; color: var(--muted); font-size: 11px; }
.catalog-release-panel dl { display: flex; gap: 22px; margin: 0; }
.catalog-release-panel dl div { display: grid; gap: 2px; }
.catalog-release-panel dt { color: var(--muted); font-size: 9px; }
.catalog-release-panel dd { margin: 0; color: var(--brand-dark); font-size: 14px; font-weight: 850; font-variant-numeric: tabular-nums; }
.catalog-release-panel details { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid var(--line); }
.catalog-release-panel summary { width: fit-content; min-height: 44px; color: var(--brand); font-size: 11px; font-weight: 800; cursor: pointer; }
.catalog-release-panel ol { display: grid; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.catalog-release-panel li { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 8px 0; border-top: 1px solid var(--line); }
.catalog-release-panel li span { display: grid; gap: 2px; }
.catalog-release-panel li small { color: var(--muted); }
.formal-field-note { margin: 0; padding: 10px 12px; color: #5e635b; border: 1px solid #d8ddd4; border-radius: 10px; background: #fafbf7; font-size: 10px; line-height: 1.6; }

@media (max-width: 1080px) {
  .sidebar { width: 210px; }
  .content-shell { margin-left: 210px; }
  main { width: min(100% - 40px, 1120px); }
  .task-first-card { grid-template-columns: minmax(0, 1fr) minmax(270px, .7fr); }
  .task-first-main { padding: 32px; }
  .task-first-next { padding: 32px 26px; }
  .hero-card { grid-template-columns: 1fr; }
  .hero-copy { padding: 48px; }
  .hero-visual { display: none; }
  .more-grid { grid-template-columns: 1fr; }
  .my-summary-grid { grid-template-columns: 1fr; }
  .more-card { min-height: 0; }
  .expert-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .expert-task-columns, .expert-detail-layout, .expert-library-layout, .expert-rule-layout { grid-template-columns: 1fr; }
  .library-detail { position: static; max-height: none; }
  .generation-review-layout { grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr); }
  .generation-review-checks { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
  .generation-review-checks > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  body { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  body.role-entry-active { padding-bottom: 0; }
  .role-entry-brand, .role-entry-main { width: calc(100% - 28px); }
  .role-entry-brand { padding-top: 18px; }
  .role-entry-logo { width: 50px; height: 50px; border-radius: 15px; }
  .role-entry-logo img { width: 36px; }
  .role-entry-main { display: block; padding: 12px 0 28px; }
  .role-entry-card { padding: 28px 22px; border-radius: 22px; }
  .role-entry-card h1 { font-size: 39px; }
  .role-entry-lead { font-size: 14px; }
  .role-choice-grid { grid-template-columns: 1fr; }
  .role-choice-card { min-height: 210px; padding: 23px; }
  .role-entry-notice { align-items: flex-start; }
  .sidebar, .topbar { display: none; }
  .content-shell { margin-left: 0; }
  .mobile-header { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; min-height: 61px; padding: 9px 16px; color: var(--ink); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.94); backdrop-filter: blur(15px); }
  .mobile-header button, .catalog-release-panel button, .library-detail .text-button { min-height: 44px; }
  .mobile-header .brand { width: auto; }
  .mobile-header .prototype-badge { margin: 0; color: var(--brand); border-color: var(--line); background: var(--surface-teal); }
  .mobile-role-switch { padding: 8px 10px; color: var(--brand); font-size: 11px; font-weight: 800; border-radius: 9px; background: var(--surface-teal); }
  .mobile-nav { position: fixed; inset: auto 0 0; z-index: 50; display: grid; grid-template-columns: repeat(var(--mobile-nav-count, 5), 1fr); height: 67px; padding: 5px 5px max(5px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow: 0 -10px 30px rgba(13,46,41,.08); backdrop-filter: blur(14px); }
  .mobile-nav .nav-item { display: grid; place-content: center; justify-items: center; gap: 0; min-height: 54px; padding: 2px; color: var(--muted); font-size: 9px; text-align: center; border-radius: 9px; }
  .mobile-nav .nav-item > span:last-child { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-nav .nav-item.is-active { color: var(--brand); background: var(--surface-teal); box-shadow: none; }
  .mobile-nav .nav-item:focus-visible { color: #fff; outline-color: var(--focus-ring-on-dark); background: var(--brand-dark); }
  .mobile-nav .nav-icon { width: auto; height: 23px; font-size: 16px; }
  main { width: calc(100% - 28px); padding: 20px 0 30px; }
  .task-first-card { min-height: 0; grid-template-columns: 1fr; }
  .task-first-main { min-height: 300px; padding: 28px 24px; }
  .task-first-next { padding: 26px 24px; border-top: 1px solid #cfe4de; border-left: 0; }
  .task-first-next > p:not(.task-first-label) { margin-bottom: 22px; }
  .task-first-label, .task-first-stage, .task-first-progress li, .task-first-progress li > span, .task-first-next > p:not(.task-first-label) { font-size: 14px; }
  .formal-status { align-items: flex-start; flex-wrap: wrap; margin-bottom: 14px; }
  .formal-status .secondary-button { width: 100%; margin-left: 0; }
  .catalog-release-panel { grid-template-columns: 1fr; padding: 16px; }
  .catalog-release-panel dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .catalog-release-panel details { grid-column: 1; }
  .catalog-release-panel li { align-items: stretch; flex-direction: column; }
  .catalog-release-panel li .secondary-button { width: 100%; }
  .hero-card { min-height: 0; }
  .hero-copy { padding: 34px 25px; }
  .hero-copy h1 { font-size: 37px; }
  .capability-grid, .example-chips { grid-template-columns: 1fr; }
  .recent-task-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
  .recent-status { grid-column: 1; }
  .recent-arrow { grid-row: 1 / span 2; grid-column: 2; }
  .page-intro { align-items: flex-start; }
  .page-intro h1 { font-size: 34px; }
  .stepper li { padding: 11px; }
  .stepper small { display: none; }
  .workspace-header, .strategy-toolbar { align-items: flex-start; flex-direction: column; padding: 20px; }
  .input-workspace form { padding: 20px 20px 0; }
  .concept-list { padding: 14px 18px 0; }
  .live-generation-panel { margin: 16px 16px 0; }
  .live-generation-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .concept-card { grid-template-columns: auto 1fr; }
  .concept-actions { grid-column: 2; }
  .feedback-card dl { grid-template-columns: 1fr; }
  .tutorial-grid { grid-template-columns: 1fr; }
  .concept-navigation { padding: 15px 20px; }
  .concept-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; }
  .concept-tab { flex: 0 0 180px; min-height: 48px; }
  .database-navigation-label { padding: 9px 20px 7px; }
  .database-tabs { display: flex; overflow-x: auto; }
  .database-tabs button { flex: 0 0 125px; }
  .expert-filter-bar { align-items: stretch; flex-direction: column; }
  .expert-filter-bar > label { flex: 0 0 auto; width: 100%; }
  .expert-task-columns > .section-block { margin-top: 0; }
  .expert-detail-layout, .expert-library-layout, .expert-rule-layout, .expert-two-column { gap: 14px; }
  .expert-detail-layout > *, .expert-library-layout > *, .expert-rule-layout > * { width: 100%; }
  .library-grid-help { align-items: flex-start; flex-direction: column; padding-bottom: 12px; }
  .library-grid-help p { text-align: left; }
  .library-grid-scroll { max-height: none; overflow: visible; border-block: 0; }
  .library-grid-table { min-width: 0; }
  .library-grid-table, .library-grid-table tbody, .library-grid-table tr, .library-grid-table td { display: block; width: 100%; }
  .library-grid-table thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .library-grid-table tbody { display: grid; gap: 10px; padding: 0 14px; }
  .library-grid-table tr { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
  .library-grid-table td { display: grid; grid-template-columns: 94px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 44px; height: auto; padding: 4px 10px; border-bottom: 1px solid #e8eeec; }
  .library-grid-table td:last-child { border-bottom: 0; }
  .library-grid-table td::before { content: attr(data-label); color: var(--muted); font-size: 9px; font-weight: 780; }
  .library-grid-row.is-selected td:first-child { box-shadow: inset 3px 0 var(--brand); }
  .library-grid-input { min-height: 44px; }
  .library-grid-action { width: 100%; min-height: 44px; }
  .library-grid-meta time { white-space: normal; }
  .generation-review-layout { grid-template-columns: 1fr; }
  .generation-review-evidence, .generation-review-checks { border-right: 0; border-left: 0; }
  .generation-review-evidence { border-bottom: 1px solid var(--line); }
  .generation-review-checks { grid-column: auto; }
  .generation-review-checks > div { grid-template-columns: 1fr; }
  .generation-review-actions, .generation-review-actions > div { align-items: stretch; flex-direction: column; }
  .generation-review-actions button { width: 100%; }
  .expert-history-save { align-items: stretch; }
  .expert-history-save button { width: 100%; }
  .generation-review-detail, .generation-review-detail button, .generation-review-detail textarea { font-size: 14px; }
}

@media (max-width: 540px) {
  .role-entry-brand .prototype-badge { display: none; }
  .role-entry-card h1 { font-size: 34px; }
  .role-choice-card { grid-template-columns: 48px 1fr; gap: 14px; }
  .role-choice-icon { width: 48px; height: 48px; border-radius: 14px; }
  .role-choice-copy { padding-right: 0; }
  .role-choice-copy strong { font-size: 21px; }
  .form-footer .primary-button, .workspace-actions .primary-button { scroll-margin-block-end: 90px; }
  .mobile-header .prototype-badge { display: none; }
  .task-first-card { border-radius: 18px; }
  .task-first-main { min-height: 0; padding: 24px 20px; }
  .task-first-heading { grid-template-columns: 1fr; align-items: start; }
  .task-first-heading .task-first-label { grid-row: 2; grid-column: 1; margin-top: 18px; }
  .task-first-heading h1 { grid-row: 3; grid-column: 1; margin-top: 10px; }
  .task-first-stage { grid-row: 1; grid-column: 1; width: fit-content; }
  .task-first-heading h1 { font-size: 29px; }
  .task-first-summary { font-size: 14px; }
  .task-first-progress { gap: 7px; padding-top: 22px; }
  .task-first-progress li { gap: 6px; }
  .task-first-progress li:not(:last-child)::after { display: none; }
  .task-first-progress li > span { width: 26px; height: 26px; }
  .task-first-next { padding: 24px 20px; }
  .task-first-next h2 { font-size: 23px; }
  .task-first-actions button { width: 100%; }
  .hero-copy h1 { font-size: 32px; }
  .hero-actions, .footer-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .hero-actions button, .footer-actions button { width: 100%; }
  .section-heading, .page-intro, .workspace-header, .strategy-toolbar, .editor-heading, .form-footer { align-items: stretch; flex-direction: column; }
  .stepper { grid-template-columns: 1fr; }
  .stepper li { display: none; }
  .stepper li.is-current { display: flex; }
  .stepper li::after { display: none; }
  .mode-switch { width: 100%; }
  .mode-switch button { flex: 1; }
  .request-summary { grid-template-columns: 1fr auto; }
  .request-summary span { grid-column: 1 / -1; }
  .concept-card { grid-template-columns: 1fr; }
  .concept-index { display: none; }
  .concept-title-row { align-items: flex-start; flex-direction: column; }
  .concept-actions { grid-column: 1; }
  .live-generation-heading, .live-generation-recovery { align-items: stretch; flex-direction: column; }
  .live-generation-actions { justify-content: space-between; width: 100%; }
  .live-generation-state { width: fit-content; }
  .live-generation-steps { grid-template-columns: 1fr; }
  .live-generation-recovery button { width: 100%; }
  .term-assistance-intro, .term-assistance-concept > header { flex-direction: column; }
  .term-assistance-candidate { grid-template-columns: 1fr; gap: 12px; }
  .term-assistance-verifications { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .term-assistance-mapping-row { grid-template-columns: 48px minmax(0, 1fr); padding: 8px 0; border-top: 1px solid #eceeed; }
  .term-assistance-mapping-row:first-child { border-top: 0; }
  .term-assistance-mapping-row > label { min-height: 44px; align-items: center; }
  .term-assistance-mapping-row input { width: 20px; height: 20px; margin-top: 0; }
  .term-assistance-mapping-row select { grid-column: 2; min-height: 44px; }
  .term-assistance-mapping-row a, .term-assistance-mapping-row > .term-assistance-mapping-evidence { grid-column: 2; }
  .term-assistance-mapping-row a { display: inline-flex; align-items: center; min-height: 44px; }
  .term-assistance-actions { align-items: stretch; }
  .term-assistance-actions .secondary-button, .term-assistance-actions .primary-button { min-height: 44px; }
  .term-assistance-manual { width: 100%; }
  .generation-queue-status dl { grid-template-columns: 1fr; }
  .generation-queue-status dl div, .generation-queue-status dl div:first-child, .generation-queue-status dl div:last-child { padding: 8px 0; border-right: 0; border-bottom: 1px solid #cdd3cf; }
  .generation-queue-status dl div:first-child { padding-top: 0; }
  .generation-queue-status dl div:last-child { padding-bottom: 0; border-bottom: 0; }
  .editor-actions { justify-content: flex-start; }
  .tutorial-card { grid-template-columns: 55px 1fr; }
  .tutorial-cover { width: 55px; height: 68px; }
  .tutorial-arrow { grid-column: 2; }
  .player-stage { min-height: 220px; padding: 24px; }
  .result-status { width: 100%; min-width: 0; }
  .strategy-count { width: fit-content; }
  .database-navigation-label { align-items: flex-start; flex-direction: column; gap: 4px; }
  .strategy-editor-card, .future-detail { padding: 19px; }
  .more-card { padding: 20px; }
  .modal-card { padding: 25px 20px; }
  .input-blocker-evidence > div { grid-template-columns: 1fr; gap: 4px; }
  .expert-summary-grid, .expert-context-grid, .expert-decision-grid, .expert-diff-grid { grid-template-columns: 1fr; }
  .expert-filter-bar, .expert-teaching-toolbar { align-items: stretch; flex-direction: column; }
  .expert-filter-bar > label { width: 100%; min-width: 0; }
  .expert-library-list .expert-filter-bar > label { flex: 0 0 auto; }
  .expert-teaching-toolbar .concept-tabs { width: 100%; max-width: 100%; }
  .expert-overview-grid > button { min-height: 102px; }
  .expert-task-columns > .section-block, .expert-editor, .expert-readonly.workspace-card { padding: 18px; }
  .feedback-metadata, .feedback-resolution-form, .library-detail form, .rule-publish-evidence, .rule-section-fields { padding-right: 18px; padding-left: 18px; }
  .feedback-readonly, .feedback-context-groups, .expert-rule-detail > .section-heading, .expert-rule-detail > p, .expert-rule-detail > .expert-readonly, .rule-preview { margin-right: 18px; margin-left: 18px; }
  .expert-form-grid, .rule-publish-evidence, .rule-section-fields { grid-template-columns: 1fr; }
  .library-version-history li { grid-template-columns: 1fr; }
  .library-version-history p { grid-column: 1; }
  .card-actions, .workspace-actions, .modal-actions { align-items: stretch; flex-direction: column; }
  .card-actions button, .workspace-actions button, .modal-actions button, .form-footer button { width: 100%; }
  .modal-backdrop { padding: 12px; }
  .modal-card { max-height: calc(100dvh - 24px); }
  .generation-cancellation-summary > div { grid-template-columns: 1fr; gap: 4px; }
  .modal-actions { position: sticky; bottom: -25px; z-index: 2; margin-right: -20px; margin-left: -20px; padding: 13px 20px 20px; border-top: 1px solid var(--line); background: #fff; }
  .toast-region { right: 14px; bottom: 80px; left: 14px; }
  .toast { width: 100%; }
}

/* Formal authentication extends the established “循证批注台” surface. */
::selection { color: #fff; background: #235f52; }
input, textarea { caret-color: #235f52; }

body.auth-page-active {
  color: #18201d;
  font-family: "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  background: #f5f3ee;
}

.auth-shell {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
  background: #f5f3ee;
}

.auth-brand,
.auth-main,
.auth-footer {
  width: min(1120px, calc(100% - 64px));
  margin-inline: auto;
}

.auth-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 80px;
  border-bottom: 1px solid #cdd3cf;
}

.auth-brand img { flex: none; }
.auth-brand strong,
.auth-brand small { display: block; }
.auth-brand strong { font-size: 16px; line-height: 1.625; }
.auth-brand small { color: #58635f; font-size: 12px; line-height: 1.58; }

.auth-main {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(380px, 4fr);
  align-self: center;
  min-height: 560px;
  border: 1px solid #9fa9a4;
  background: #fbfaf7;
}

.auth-context {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px;
  border-right: 1px solid #cdd3cf;
}

.auth-document-label {
  width: fit-content;
  margin-bottom: 24px;
  padding-bottom: 8px;
  color: #235f52;
  font-size: 12px;
  font-weight: 600;
  border-bottom: 1px solid #235f52;
}

.auth-context h2 {
  max-width: 12ch;
  margin-bottom: 16px;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.36;
  letter-spacing: 0;
}

.auth-context > p:not(.auth-document-label) {
  max-width: 36em;
  margin-bottom: 40px;
  color: #58635f;
  font-size: 14px;
  line-height: 1.7;
}

.auth-context dl { margin: 0; border-top: 1px solid #cdd3cf; }
.auth-context dl div {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #cdd3cf;
}
.auth-context dt { color: #18201d; font-size: 14px; font-weight: 600; }
.auth-context dd { margin: 0; color: #58635f; font-size: 14px; }

.auth-panel {
  align-self: center;
  padding: 48px;
}

.auth-panel > header { margin-bottom: 32px; }
.auth-panel h1 {
  margin-bottom: 8px;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.36;
  letter-spacing: 0;
}
.auth-panel > header p { margin: 0; color: #58635f; font-size: 14px; line-height: 1.57; }

.auth-login-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 24px;
  border: 1px solid #9fa9a4;
  background: #eef2f0;
}
.auth-login-mode button {
  min-height: 42px;
  padding: 8px 12px;
  color: #58635f;
  font-size: 13px;
  font-weight: 600;
  border-radius: 0;
  background: transparent;
}
.auth-login-mode button + button { border-left: 1px solid #9fa9a4; }
.auth-login-mode button.is-active { color: #fff; background: #235f52; }
.auth-login-mode button:focus-visible { position: relative; z-index: 1; outline: 2px solid #235f52; outline-offset: 2px; }

.auth-form { display: grid; gap: 24px; margin: 0; }
.auth-field { display: grid; gap: 8px; }
.auth-field label { font-size: 14px; font-weight: 600; }
.auth-field input {
  min-height: 44px;
  padding: 8px 12px;
  color: #18201d;
  font-size: 14px;
  border: 1px solid #9fa9a4;
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
}
.auth-field input:focus {
  border-color: #235f52;
  outline: 2px solid #235f52;
  outline-offset: 2px;
  box-shadow: none;
}
.auth-field small { color: #58635f; font-size: 12px; line-height: 1.58; }
.password-input-control { position: relative; min-width: 0; }
.password-input-control input { padding-inline-end: 52px; }
.password-visibility-toggle {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #58635f;
  border-radius: 0 4px 4px 0;
  background: transparent;
}
.password-visibility-toggle:hover:not(:disabled) { color: #235f52; background: #e4ece8; }
.password-visibility-toggle svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.password-visibility-toggle .password-visibility-slash { display: none; }
.password-visibility-toggle[aria-pressed="true"] .password-visibility-slash { display: block; }
.auth-submit {
  width: 100%;
  min-height: 44px;
  padding: 8px 16px;
  border-radius: 4px;
  box-shadow: none;
}
.auth-submit:not(:disabled):hover { transform: none; box-shadow: none; }

.auth-error-summary {
  display: grid;
  gap: 4px;
  margin-bottom: 24px;
  padding: 16px;
  color: #733c2b;
  border: 1px solid #9c563f;
  border-radius: 2px;
  background: #f3e7e1;
}
.auth-error-summary strong { font-size: 14px; }
.auth-error-summary span { font-size: 13px; }

.auth-secondary-action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
  padding-top: 24px;
  color: #58635f;
  font-size: 13px;
  border-top: 1px solid #cdd3cf;
}
.auth-secondary-action .text-button { min-height: 40px; border-radius: 4px; }

.auth-account-line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding: 16px 0;
  border-block: 1px solid #cdd3cf;
}
.auth-account-line > span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: #fff;
  font-weight: 600;
  border-radius: 4px;
  background: #235f52;
}
.auth-account-line strong,
.auth-account-line small { display: block; }
.auth-account-line small { color: #58635f; font-size: 12px; }
.student-setup-identity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 24px;
  border: 1px solid #cdd3cf;
  background: #eef2f0;
}
.student-setup-identity div { min-width: 0; padding: 12px 16px; }
.student-setup-identity div + div { border-left: 1px solid #cdd3cf; }
.student-setup-identity span,
.student-setup-identity strong { display: block; }
.student-setup-identity span { margin-bottom: 4px; color: #58635f; font-size: 12px; }
.student-setup-identity strong { font-size: 14px; overflow-wrap: anywhere; }
.auth-logout-link { display: block; min-height: 40px; margin: 16px auto 0; border-radius: 4px; }

.auth-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  padding-block: 20px;
  color: #58635f;
  font-size: 12px;
}

.auth-notice-dialog { border-color: #9fa9a4; border-radius: 4px; }
.auth-notice-dialog h2 {
  margin-bottom: 16px;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 20px;
  letter-spacing: 0;
}
.auth-notice-dialog > p { font-size: 14px; line-height: 1.7; }

.topbar { position: relative; z-index: 40; }
.account-menu { position: relative; z-index: 1; }
.account-menu summary { list-style: none; cursor: pointer; }
.account-menu summary::-webkit-details-marker { display: none; }
.account-menu .user-chip { border-radius: 4px; }
.account-menu .user-chip:hover { background: #e4ece8; }
.account-menu-caret {
  width: 8px;
  height: 8px;
  margin: 0 4px 4px 8px;
  border-right: 1px solid #58635f;
  border-bottom: 1px solid #58635f;
  transform: rotate(45deg);
}
.account-menu[open] .account-menu-caret { margin-bottom: -4px; transform: rotate(225deg); }
.account-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 50;
  width: 240px;
  padding: 16px;
  border: 1px solid #cdd3cf;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(24, 32, 29, 0.14);
}
.account-menu-panel > div { padding-bottom: 12px; border-bottom: 1px solid #cdd3cf; }
.account-menu-panel strong,
.account-menu-panel small { display: block; }
.account-menu-panel small { margin-top: 4px; color: #58635f; font-size: 12px; }
.account-menu-panel .draft-privacy-copy { margin: 12px 0 4px; font-size: 12px; line-height: 1.58; }
.account-menu-panel button { width: 100%; min-height: 40px; margin-top: 8px; text-align: left; border-radius: 4px; }

.account-settings-dialog {
  width: min(480px, 100%);
  border-color: #9fa9a4;
  border-radius: 4px;
  box-shadow: 0 18px 48px rgba(24, 32, 29, 0.18);
}
.account-settings-dialog h2 {
  margin-bottom: 8px;
  padding-right: 40px;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
}
.account-settings-dialog > p { margin-bottom: 0; font-size: 14px; line-height: 1.7; }
.account-settings-dialog .modal-close { width: 40px; height: 40px; border-radius: 4px; }
.account-settings-dialog .auth-error-summary { margin: 18px 0 0; }
.account-settings-dialog form { gap: 8px; margin-top: 20px; }
.account-settings-dialog label { margin-top: 8px; font-size: 14px; font-weight: 600; }
.account-settings-dialog input {
  min-height: 44px;
  padding: 8px 12px;
  border-color: #9fa9a4;
  border-radius: 4px;
  box-shadow: none;
}
.account-settings-dialog input:focus { border-color: #235f52; outline: 2px solid #235f52; outline-offset: 2px; box-shadow: none; }
.account-settings-dialog input[readonly] { color: #58635f; background: #eef2f0; cursor: default; }
.account-field-help { color: #58635f; font-size: 12px; line-height: 1.58; }
.account-settings-dialog .modal-actions button { min-height: 40px; border-radius: 4px; box-shadow: none; }
.account-settings-dialog .modal-actions button:hover { transform: none; }

.mobile-account-menu .mobile-role-switch {
  display: grid;
  place-items: center;
  min-width: 52px;
  min-height: 44px;
}
.mobile-account-menu .account-menu-panel { width: min(280px, calc(100vw - 32px)); }

@media (max-width: 820px) {
  .auth-brand,
  .auth-main,
  .auth-footer { width: calc(100% - 32px); }
  .auth-brand { min-height: 72px; }
  .auth-main {
    grid-template-columns: 1fr;
    align-self: start;
    min-height: 0;
    margin-block: 24px;
  }
  .auth-context { padding: 32px; border-right: 0; border-bottom: 1px solid #cdd3cf; }
  .auth-context h2 { max-width: none; font-size: 24px; }
  .auth-context > p:not(.auth-document-label) { margin-bottom: 24px; }
  .auth-context dl { display: none; }
  .auth-document-label { margin-bottom: 16px; }
  .auth-panel { padding: 32px; }
  .auth-footer { min-height: 56px; padding-block: 16px; }
  .mobile-account-menu .draft-privacy-copy { font-size: 14px; }
  .mobile-account-menu .account-menu-panel button { min-height: 44px; }
}

@media (max-width: 540px) {
  .auth-brand,
  .auth-main,
  .auth-footer { width: calc(100% - 32px); }
  .auth-brand strong { font-size: 14px; }
  .auth-brand small { font-size: 11px; }
  .auth-main { margin-block: 16px; }
  .auth-context { padding: 24px; }
  .auth-context > p:not(.auth-document-label) { margin-bottom: 0; }
  .auth-panel { padding: 24px; }
  .auth-panel > header { margin-bottom: 24px; }
  .auth-panel h1 { font-size: 24px; }
  .auth-form { gap: 16px; }
  .auth-footer { flex-direction: column; gap: 4px; }
  .auth-notice-dialog { min-height: calc(100dvh - 24px); }
}

@media (prefers-reduced-motion: reduce) {
  .boot-screen img { animation: none; }
}

/* Super administrator: formal governance ledger. */
.admin-page-intro { align-items: end; margin-bottom: 24px; }
.admin-page-intro h1 {
  margin: 0 0 8px;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.36;
  letter-spacing: 0;
}
.admin-page-intro p { max-width: 760px; font-size: 14px; }
.admin-page-actions { display: flex; flex: none; gap: 8px; align-items: center; }
.admin-page-actions button { min-height: 40px; border-radius: 4px; box-shadow: none; }
.admin-page-actions button:hover { transform: none; }
.admin-readonly-mark {
  flex: none;
  padding: 8px 12px;
  color: #235f52;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid #9fa9a4;
  border-radius: 2px;
  background: #e4ece8;
}

.admin-overview-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr); gap: 24px; }
.admin-governance-summary,
.admin-flat-section,
.admin-state-panel {
  border: 1px solid #cdd3cf;
  border-radius: 0;
  background: #fbfaf7;
  box-shadow: none;
}
.admin-governance-summary { grid-column: 1 / -1; }
.admin-governance-summary > header { padding: 24px; border-bottom: 1px solid #cdd3cf; }
.admin-governance-summary h2,
.admin-flat-section h2 { margin: 0 0 4px; font-size: 20px; line-height: 1.5; letter-spacing: 0; }
.admin-governance-summary p,
.admin-flat-section p { margin: 0; color: #58635f; font-size: 13px; }

.admin-queue-strip,
.admin-account-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
}
.admin-queue-strip div,
.admin-account-summary div { min-width: 0; padding: 20px 24px; border-right: 1px solid #cdd3cf; }
.admin-queue-strip div:last-child,
.admin-account-summary div:last-child { border-right: 0; }
.admin-queue-strip dt,
.admin-account-summary dt { color: #58635f; font-size: 12px; }
.admin-queue-strip dd,
.admin-account-summary dd { margin: 8px 0 0; font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }

.admin-flat-section { min-width: 0; }
.admin-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 80px;
  padding: 16px 24px;
  border-bottom: 1px solid #cdd3cf;
}
.admin-section-heading .text-button { flex: none; min-height: 40px; border-radius: 4px; }
.admin-status-list { display: grid; }
.admin-status-line {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px 24px;
  text-align: left;
  border-bottom: 1px solid #cdd3cf;
  border-radius: 0;
  background: transparent;
}
.admin-status-line:last-child { border-bottom: 0; }
button.admin-status-line:hover { background: #e4ece8; }
.admin-status-line strong,
.admin-status-line small { display: block; }
.admin-status-line small { margin-top: 2px; color: #58635f; font-size: 12px; }
.admin-status-dot { display: inline-block; width: 8px; height: 8px; border: 1px solid #58635f; border-radius: 50%; background: #fff; }
.admin-status-dot[data-tone="ok"] { border-color: #235f52; background: #235f52; }
.admin-status-dot[data-tone="warning"] { border-color: #9f6c1f; background: #d9af63; }
.admin-status-dot[data-tone="risk"] { border-color: #9c563f; background: #9c563f; }
.admin-row-action { color: #235f52; font-size: 12px; font-weight: 600; }

.admin-account-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-audit-section { grid-column: 1 / -1; }
.admin-audit-table { display: grid; }
.admin-audit-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.25fr) minmax(120px, .8fr) minmax(180px, 1.25fr) minmax(150px, .8fr);
  gap: 16px;
  align-items: center;
  min-height: 56px;
  padding: 12px 24px;
  border-bottom: 1px solid #cdd3cf;
}
.admin-audit-row:last-child { border-bottom: 0; }
.admin-audit-row > div { display: flex; align-items: center; gap: 10px; }
.admin-audit-row span,
.admin-audit-row time { color: #58635f; font-size: 12px; font-style: normal; font-variant-numeric: tabular-nums; }
.admin-audit-row strong { font-size: 13px; }

.admin-record-section { overflow: hidden; }
.admin-table-heading,
.admin-account-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.35fr) minmax(100px, .7fr) minmax(80px, .5fr) minmax(120px, .8fr) minmax(140px, .85fr) minmax(180px, 1fr);
  gap: 16px;
  align-items: center;
  padding-inline: 24px;
}
.admin-table-heading {
  min-height: 40px;
  color: #58635f;
  font-size: 12px;
  font-weight: 600;
  border-bottom: 1px solid #9fa9a4;
}
.admin-account-row { min-height: 64px; border-bottom: 1px solid #cdd3cf; }
.admin-account-row:last-child { border-bottom: 0; }
.admin-account-row strong,
.admin-account-row small { display: block; }
.admin-account-cell { min-width: 0; }
.admin-account-row small { margin-top: 2px; color: #58635f; font-size: 12px; }
.admin-account-row > span { font-size: 13px; }
.admin-inline-state { width: fit-content; padding: 2px 8px; border: 1px solid #9fa9a4; border-radius: 2px; }
.admin-inline-state[data-tone="ok"] { color: #235f52; border-color: #8fb0a7; background: #e4ece8; }
.admin-inline-state[data-tone="risk"] { color: #7e432f; border-color: #c8a294; background: #f3e7e1; }
.admin-account-actions { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.admin-account-actions .text-button { min-height: 40px; padding-inline: 8px; border-radius: 4px; }
.admin-account-actions .text-button:hover { transform: none; }
.admin-account-actions .admin-risk-action { color: #8a4935; }
.admin-account-actions .admin-risk-action:disabled { color: #777f7c; cursor: not-allowed; }
.admin-action-reason { flex-basis: 100%; color: #7e432f !important; line-height: 1.5; }
.admin-no-action { color: #7a8480; }
.admin-account-policy { margin-top: 16px; }

.admin-account-modal { background: rgba(24, 32, 29, .48); backdrop-filter: none; }
.admin-account-dialog {
  width: min(560px, 100%);
  padding: 24px;
  border: 1px solid #9fa9a4;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(24, 32, 29, .14);
}
.admin-account-dialog h2 { margin: 0 48px 4px 0; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; line-height: 1.5; }
.admin-account-dialog > p { margin: 0; color: #58635f; font-size: 14px; line-height: 1.57; }
.admin-account-dialog .modal-close { width: 40px; height: 40px; border-radius: 4px; }
.admin-account-dialog form { display: grid; gap: 8px; margin-top: 20px; }
.admin-account-dialog label { margin-top: 8px; font-size: 14px; font-weight: 600; }
.admin-account-dialog input[type="text"],
.admin-account-dialog input:not([type]) { min-height: 40px; padding: 8px 12px; color: #18201d; font-size: 14px; border: 1px solid #9fa9a4; border-radius: 4px; background: #fff; }
.admin-account-dialog input:focus { border-color: #235f52; outline: 2px solid #235f52; outline-offset: 2px; box-shadow: none; }
.admin-dialog-error { margin: 16px 0 0; }
.admin-account-dialog .field-error { margin: 0; color: #8a4935; font-size: 12px; }
.admin-account-dialog .account-field-help { color: #58635f; font-size: 12px; line-height: 1.58; }
.admin-account-dialog .modal-actions button { min-height: 40px; border-radius: 4px; box-shadow: none; }
.admin-account-dialog .modal-actions button:hover { transform: none; }
.admin-busy-button { min-width: 176px; }
.admin-danger-button { min-height: 40px; padding: 8px 16px; color: #fff; font: inherit; border: 1px solid #8a4935; border-radius: 4px; background: #8a4935; }
.admin-danger-button:hover:not(:disabled) { background: #703b2b; }
.admin-danger-button:disabled { opacity: .62; cursor: wait; }
.admin-credential-ledger,
.admin-impact-ledger { display: grid; margin: 20px 0 0; border: 1px solid #cdd3cf; }
.admin-credential-ledger div,
.admin-impact-ledger div { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 16px; align-items: center; min-height: 48px; padding: 8px 12px; border-bottom: 1px solid #cdd3cf; }
.admin-credential-ledger div:last-child,
.admin-impact-ledger div:last-child { border-bottom: 0; }
.admin-credential-ledger dt,
.admin-impact-ledger dt { color: #58635f; font-size: 12px; }
.admin-credential-ledger dd,
.admin-impact-ledger dd { min-width: 0; margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.admin-credential-ledger code { font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 14px; line-height: 1.7; user-select: all; }
.admin-credential-warning { margin-top: 16px !important; padding: 12px; color: #6f3d2e !important; border: 1px solid #c8a294; background: #f3e7e1; }
.admin-copy-credential { width: 100%; min-height: 40px; margin-top: 16px; border-radius: 4px; }
.admin-credential-acknowledgement { display: flex; gap: 12px; align-items: start; margin-top: 16px !important; padding: 12px; border: 1px solid #cdd3cf; background: #fbfaf7; cursor: pointer; }
.admin-credential-acknowledgement input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: #235f52; }
.admin-blocked-reason { margin-top: 16px; padding: 12px; color: #6f3d2e; border: 1px solid #c8a294; background: #f3e7e1; }
.admin-blocked-reason strong { font-size: 14px; }
.admin-blocked-reason p { margin: 4px 0 0; color: inherit; font-size: 13px; }

.admin-permission-section { padding: 24px; }
.admin-permission-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #cdd3cf; }
.admin-permission-grid article { min-width: 0; border-right: 1px solid #cdd3cf; }
.admin-permission-grid article:last-child { border-right: 0; }
.admin-permission-grid header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 72px; padding: 16px; border-bottom: 1px solid #cdd3cf; }
.admin-permission-grid header span { color: #58635f; font-size: 12px; }
.admin-permission-grid ul { margin: 0; padding: 0; list-style: none; }
.admin-permission-grid li { display: grid; grid-template-columns: 8px 1fr; gap: 10px; align-items: start; min-height: 56px; padding: 12px 16px; border-bottom: 1px solid #cdd3cf; }
.admin-permission-grid li:last-child { border-bottom: 0; }
.admin-permission-grid li .admin-status-dot { margin-top: 6px; }
.admin-permission-grid li strong,
.admin-permission-grid li small { display: block; overflow-wrap: anywhere; }
.admin-permission-grid li strong { font-size: 13px; }
.admin-permission-grid li small { color: #58635f; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 11px; }

.admin-policy-note { margin: 24px 0 0; padding: 16px; border: 1px solid #9fa9a4; background: #f5f3ee; }
.admin-policy-note strong { font-size: 14px; }
.admin-policy-note p { margin-top: 4px; }

.admin-data-ledger,
.admin-config-ledger { display: grid; margin: 0; }
.admin-data-ledger { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-data-ledger div,
.admin-config-ledger div { min-width: 0; padding: 24px; border-right: 1px solid #cdd3cf; border-bottom: 1px solid #cdd3cf; }
.admin-data-ledger div:last-child { border-right: 0; }
.admin-data-ledger dt,
.admin-config-ledger dt { color: #58635f; font-size: 12px; }
.admin-data-ledger dd { margin: 8px 0 4px; font-size: 28px; font-weight: 600; font-variant-numeric: tabular-nums; }
.admin-data-ledger small,
.admin-config-ledger small { color: #58635f; font-size: 12px; }
.admin-flat-section > .admin-policy-note { margin: 24px; }

.admin-config-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-config-ledger div:nth-child(2n) { border-right: 0; }
.admin-config-ledger dd { margin: 8px 0 4px; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 14px; overflow-wrap: anywhere; }

.admin-link-list { display: grid; }
.admin-link-list > button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 80px;
  padding: 16px 24px;
  text-align: left;
  border-bottom: 1px solid #cdd3cf;
  border-radius: 0;
  background: transparent;
}
.admin-link-list > button:last-child { border-bottom: 0; }
.admin-link-list > button:hover { background: #e4ece8; }
.admin-link-list strong,
.admin-link-list small { display: block; }
.admin-link-list small { margin-top: 4px; color: #58635f; font-size: 12px; }
.admin-link-list > button > span:last-child { color: #235f52; font-size: 12px; font-weight: 600; }

.admin-state-panel { padding: 32px; }
.admin-state-panel strong { font-size: 16px; }
.admin-state-panel p { margin: 8px 0 0; color: #58635f; }
.admin-state-panel.is-error { border-color: #9c563f; background: #f3e7e1; }
.admin-state-panel .secondary-button { margin-top: 16px; border-radius: 4px; }
.admin-empty-state { padding: 32px 24px; }
.admin-empty-state p { margin: 4px 0 0; color: #58635f; }

.admin-account-tabs {
  display: flex;
  gap: 24px;
  margin: 0 0 16px;
  border-bottom: 1px solid #9fa9a4;
}
.admin-account-tabs button {
  min-height: 44px;
  padding: 8px 0;
  color: #58635f;
  font-size: 14px;
  font-weight: 600;
  border-radius: 0;
  background: transparent;
}
.admin-account-tabs button.is-active { color: #235f52; box-shadow: inset 0 -2px #235f52; }
.admin-account-tabs button:focus-visible { outline: 2px solid #235f52; outline-offset: 2px; }

.student-import-section,
.student-import-preview,
.student-roster-section,
.student-school-tools { margin-bottom: 16px; }
.student-template-link {
  display: inline-flex;
  flex: none;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 4px;
}
.student-import-form {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr) auto;
  gap: 8px 16px;
  align-items: end;
  padding: 20px 24px 8px;
}
.student-import-form label { align-self: end; font-size: 13px; font-weight: 600; }
.student-import-form label:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.student-import-form label:nth-of-type(2) { grid-column: 2; grid-row: 1; }
.student-import-form input { min-height: 42px; color: #18201d; border-color: #9fa9a4; border-radius: 4px; }
.student-import-form input[name="schoolName"] { grid-column: 1; grid-row: 2; }
.student-import-form input[type="file"] { grid-column: 2; grid-row: 2; padding: 4px; background: #fff; }
.student-import-form input[type="file"]::file-selector-button { min-height: 32px; margin-right: 10px; padding: 5px 10px; color: #235f52; font: inherit; border: 1px solid #9fa9a4; border-radius: 2px; background: #eef2f0; cursor: pointer; }
.student-import-form button { grid-column: 3; grid-row: 2; min-height: 42px; border-radius: 4px; box-shadow: none; }
.student-import-rule { padding: 4px 24px 20px; line-height: 1.65; }
.student-import-section > .auth-error-summary { margin: 0 24px 20px; }

.student-import-counts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid #cdd3cf; }
.student-import-counts span { padding: 14px 18px; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; border-right: 1px solid #cdd3cf; }
.student-import-counts span:last-child { border-right: 0; }
.student-import-counts [data-tone="ok"] { color: #235f52; background: #e4ece8; }
.student-import-counts [data-tone="risk"] { color: #7e432f; background: #f3e7e1; }
.student-import-preview > .admin-blocked-reason { margin: 16px 24px; }
.student-import-table { overflow-x: auto; }
.student-import-table > div { display: grid; grid-template-columns: 96px minmax(160px, .8fr) minmax(120px, .6fr) minmax(260px, 1.4fr); min-width: 680px; border-bottom: 1px solid #cdd3cf; }
.student-import-table > div:first-child { color: #58635f; font-weight: 600; border-bottom-color: #9fa9a4; }
.student-import-table > div:last-child { border-bottom: 0; }
.student-import-table span,
.student-import-table strong { min-width: 0; padding: 10px 16px; font-size: 12px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.student-import-table [data-tone="ok"] { color: #235f52; }
.student-import-table [data-tone="risk"] { color: #7e432f; }
.student-import-table [data-tone="neutral"] { color: #58635f; }
.student-import-limit-note { padding: 12px 24px 0; }
.student-import-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 24px; border-top: 1px solid #cdd3cf; }
.student-import-actions button { min-height: 40px; border-radius: 4px; box-shadow: none; }

.student-roster-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(140px, .65fr) minmax(220px, 1.2fr) auto;
  gap: 12px;
  align-items: end;
  padding: 16px 24px;
  border-bottom: 1px solid #cdd3cf;
}
.student-roster-filters label,
.student-school-tools label { display: grid; gap: 6px; min-width: 0; }
.student-roster-filters label > span,
.student-school-tools label > span { color: #58635f; font-size: 12px; font-weight: 600; }
.student-roster-filters input,
.student-roster-filters select,
.student-school-tools input,
.student-school-tools select { min-height: 40px; border-color: #9fa9a4; border-radius: 4px; }
.student-roster-filters button,
.student-school-tools button { min-height: 40px; border-radius: 4px; }
.student-roster-heading,
.student-roster-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(170px, .9fr) minmax(130px, .7fr) minmax(90px, .5fr) minmax(110px, .6fr); gap: 16px; align-items: center; padding-inline: 24px; }
.student-roster-heading { min-height: 40px; color: #58635f; font-size: 12px; font-weight: 600; border-bottom: 1px solid #9fa9a4; }
.student-roster-row { min-height: 64px; border-bottom: 1px solid #cdd3cf; }
.student-roster-row:last-child { border-bottom: 0; }
.student-roster-row > span,
.student-roster-row > div { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.student-roster-row strong,
.student-roster-row small { display: block; }
.student-roster-row small { margin-top: 3px; color: #58635f; font-size: 12px; }
.student-school-tools form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; padding: 20px 24px; }

@media (max-width: 1080px) {
  .admin-overview-layout { grid-template-columns: 1fr; }
  .admin-audit-section { grid-column: auto; }
  .admin-data-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-data-ledger div { border-bottom: 1px solid #cdd3cf; }
  .admin-data-ledger div:nth-child(3n) { border-right: 0; }
  .student-import-form { grid-template-columns: 1fr 1fr; }
  .student-import-form button { grid-column: 1 / -1; grid-row: 3; }
  .student-roster-filters { grid-template-columns: 1fr 1fr; }
  .student-roster-filters button { width: 100%; }
}

@media (max-width: 820px) {
  .admin-page-intro { align-items: stretch; }
  .admin-page-actions { align-items: stretch; flex-direction: column; }
  .admin-page-intro .primary-button,
  .admin-page-intro .secondary-button { width: 100%; min-height: 44px; border-radius: 4px; }
  .admin-queue-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-queue-strip div { border-bottom: 1px solid #cdd3cf; }
  .admin-queue-strip div:nth-child(2n) { border-right: 0; }
  .admin-queue-strip div:last-child { grid-column: 1 / -1; }
  .admin-audit-row { grid-template-columns: 1fr; gap: 4px; padding-block: 16px; }
  .admin-table-heading { display: none; }
  .admin-account-row { grid-template-columns: 1fr; gap: 0; padding: 0; }
  .admin-account-cell { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 44px; padding: 6px 16px; border-bottom: 1px solid #e1e5e2; }
  .admin-account-cell:last-child { border-bottom: 0; }
  .admin-account-cell::before { content: attr(data-label); color: #58635f; font-size: 12px; font-weight: 600; }
  .admin-account-identity { padding-block: 12px; }
  .admin-account-actions { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
  .admin-account-actions::before { grid-row: 1 / span 3; }
  .admin-account-actions .text-button { justify-self: start; min-height: 44px; padding-inline: 0; }
  .admin-action-reason { grid-column: 2; }
  .admin-account-dialog .modal-actions button,
  .admin-copy-credential { min-height: 44px; }
  .admin-permission-grid { grid-template-columns: 1fr; }
  .admin-permission-grid article { border-right: 0; border-bottom: 1px solid #cdd3cf; }
  .admin-permission-grid article:last-child { border-bottom: 0; }
  .admin-data-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-data-ledger div:nth-child(3n) { border-right: 1px solid #cdd3cf; }
  .admin-data-ledger div:nth-child(2n) { border-right: 0; }
  .student-import-form { grid-template-columns: 1fr; }
  .student-import-form label:nth-of-type(1),
  .student-import-form label:nth-of-type(2),
  .student-import-form input[name="schoolName"],
  .student-import-form input[type="file"],
  .student-import-form button { grid-column: 1; grid-row: auto; }
  .student-import-form label:nth-of-type(1) { order: 1; }
  .student-import-form input[name="schoolName"] { order: 2; }
  .student-import-form label:nth-of-type(2) { order: 3; }
  .student-import-form input[type="file"] { order: 4; }
  .student-import-form button { order: 5; }
  .student-roster-heading { display: none; }
  .student-roster-row { grid-template-columns: 1fr; gap: 0; padding: 0; }
  .student-roster-row > span,
  .student-roster-row > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 44px; padding: 6px 16px; border-bottom: 1px solid #e1e5e2; }
  .student-roster-row > :last-child { border-bottom: 0; }
  .student-roster-row > span::before,
  .student-roster-row > div::before { content: attr(data-label); color: #58635f; font-size: 12px; font-weight: 600; }
  .student-roster-row .admin-account-actions::before { grid-row: auto; }
  .student-school-tools form { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
  .admin-page-intro h1 { font-size: 24px; }
  .admin-section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .admin-section-heading .text-button { width: 100%; text-align: left; }
  .admin-account-summary { grid-template-columns: 1fr; }
  .admin-account-summary div { border-right: 0; border-bottom: 1px solid #cdd3cf; }
  .admin-account-summary div:last-child { border-bottom: 0; }
  .admin-account-cell { grid-template-columns: 96px minmax(0, 1fr); }
  .admin-account-actions { grid-template-columns: 96px minmax(0, 1fr); }
  .admin-permission-section { padding: 16px; }
  .admin-data-ledger,
  .admin-config-ledger { grid-template-columns: 1fr; }
  .admin-data-ledger div,
  .admin-data-ledger div:nth-child(2n),
  .admin-data-ledger div:nth-child(3n),
  .admin-config-ledger div,
  .admin-config-ledger div:nth-child(2n) { border-right: 0; }
  .admin-link-list > button { min-height: 72px; }
  .admin-account-modal { align-items: stretch; padding: 12px; }
  .admin-account-dialog { width: 100%; min-height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); padding: 20px; }
  .admin-credential-ledger div,
  .admin-impact-ledger div { grid-template-columns: 1fr; gap: 2px; padding-block: 10px; }
  .auth-login-mode button { font-size: 12px; }
  .student-setup-identity { grid-template-columns: 1fr; }
  .student-setup-identity div + div { border-left: 0; border-top: 1px solid #cdd3cf; }
  .admin-account-tabs { gap: 16px; }
  .admin-account-tabs button { flex: 1; font-size: 13px; }
  .student-template-link { width: 100%; justify-content: center; }
  .student-import-form { padding-inline: 16px; }
  .student-import-rule { padding-inline: 16px; }
  .student-import-counts { grid-template-columns: 1fr 1fr; }
  .student-import-counts span:nth-child(2n) { border-right: 0; }
  .student-import-counts span:nth-child(-n+4) { border-bottom: 1px solid #cdd3cf; }
  .student-import-counts span:last-child { grid-column: 1 / -1; }
  .student-import-actions { align-items: stretch; flex-direction: column-reverse; padding-inline: 16px; }
  .student-import-actions button { width: 100%; min-height: 44px; }
  .student-roster-filters { grid-template-columns: 1fr; padding-inline: 16px; }
  .student-roster-row > span,
  .student-roster-row > div { grid-template-columns: 96px minmax(0, 1fr); }
  .student-school-tools form { padding-inline: 16px; }
}

/* Personal strategy ledger: immutable user snapshots with visible provenance. */
.saved-strategy-intro { align-items: end; }
.saved-strategy-intro h1 {
  margin-top: 0;
  font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -.02em;
}
.saved-strategy-intro .secondary-button,
.saved-strategy-workspace button,
.saved-strategy-modal button,
.saved-strategy-modal input,
.saved-strategy-modal textarea { border-radius: 4px; box-shadow: none; }
.saved-strategy-workspace { overflow: hidden; border-color: #cdd3cf; border-radius: 4px; box-shadow: none; }
.saved-strategy-workspace__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px;
  border-bottom: 1px solid #cdd3cf;
  background: #f7f8f4;
}
.saved-strategy-workspace__header h2 { margin: 0; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; font-weight: 600; }
.saved-strategy-workspace__header span { color: #58635f; font-size: 12px; font-variant-numeric: tabular-nums; }
.strategy-history-toolbar { border-bottom: 1px solid #cdd3cf; background: #fbfaf7; }
.strategy-history-search { display: grid; gap: 5px; padding: 16px 24px; color: #43504c; font-size: 11px; }
.strategy-history-search input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #aeb8b3; border-radius: 4px; background: #fff; font: inherit; }
.strategy-history-batch { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 10px 24px; border-top: 1px solid #dce1dc; background: #f7f8f4; }
.strategy-history-batch > span { margin-right: auto; color: #43504c; font-size: 12px; }
.history-select-button { min-width: 64px; min-height: 44px; padding: 7px 12px; color: #235f52; border: 1px solid #8ca99f; border-radius: 4px; background: #fff; font: inherit; font-size: 12px; }
.history-select-button[aria-pressed="true"] { color: #fff; border-color: #235f52; background: #235f52; }
.danger-button { color: #783c2f; border-color: #b98c7e; background: #fff8f4; }
.danger-button:hover:not(:disabled) { color: #fff; border-color: #783c2f; background: #783c2f; }
.danger-button:disabled { opacity: .48; cursor: not-allowed; }
.saved-strategy-list { display: grid; }
.saved-strategy-pagination { display: flex; justify-content: center; padding: 22px; border-top: 1px solid #cdd3cf; }
.saved-strategy-row { padding: 22px 24px; border-bottom: 1px solid #cdd3cf; }
.saved-strategy-row:last-child { border-bottom: 0; }
.saved-strategy-row__heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 16px; }
.saved-strategy-row__heading h3 { margin: 0 0 7px; font-size: 17px; }
.saved-strategy-row__heading time { flex: none; color: #58635f; font-size: 11px; font-variant-numeric: tabular-nums; }
.saved-strategy-meta { display: flex; flex-wrap: wrap; gap: 0; margin: 0; color: #43504c; font-size: 11px; }
.saved-strategy-meta span { display: inline-flex; align-items: center; }
.saved-strategy-meta span:not(:last-child)::after { margin: 0 8px; color: #98a19d; content: "·"; }
.saved-strategy-concept { margin: 16px 0 8px; color: #43504c; font-size: 12px; font-weight: 700; }
.saved-strategy-code {
  max-height: 260px;
  margin: 0 !important;
  padding: 14px 16px !important;
  overflow: auto;
  color: #18201d;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere;
  border: 1px solid #d8ddd4;
  border-radius: 4px !important;
  background: #f5f6f1 !important;
}
.saved-strategy-code code { font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 12px; line-height: 1.7; }
.saved-strategy-group { overflow: hidden; border: 1px solid #d8ddd4; background: #f5f6f1; }
.saved-strategy-group-title { margin: 0; padding: 10px 16px; color: #235f52; border-top: 1px solid #cdd3cf; background: #eef3ef; font-size: 13px; }
.saved-strategy-group-title:first-child { border-top: 0; }
.saved-strategy-database + .saved-strategy-database { border-top: 1px solid #cdd3cf; }
.saved-strategy-database__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; padding: 6px 16px; background: #fbfaf7; }
.saved-strategy-database__header h4 { margin: 0; color: #18201d; font-size: 12px; font-weight: 700; }
.saved-strategy-database__header .text-button { min-height: 44px; padding: 4px 0; font-size: 11px; }
.saved-strategy-database .saved-strategy-code { max-height: none; border: 0; border-top: 1px solid #e2e6e1; border-radius: 0 !important; }
.saved-strategy-provenance { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; color: #58635f; font-size: 11px; }
.saved-strategy-provenance span:first-child { color: #235f52; font-weight: 700; }
.strategy-history-progress { margin-top: 16px; padding: 16px; border: 1px solid #d5c28c; background: #fff8e5; }
.strategy-history-progress strong { color: #665017; font-size: 13px; }
.strategy-history-progress p { margin: 5px 0 0; color: #665017; font-size: 12px; }
.strategy-history-progress--action { display: block; width: 100%; min-height: 44px; color: #665017; text-align: left; transition: background-color 120ms cubic-bezier(.2, 0, 0, 1), border-color 120ms cubic-bezier(.2, 0, 0, 1); }
.strategy-history-progress--action:hover { border-color: #a98a3c; background: #fff2cf; }
.strategy-history-progress--action:active { background: #f9e7b8; }
.strategy-history-progress__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.strategy-history-progress__heading > span { color: #235f52; font-size: 12px; font-weight: 700; }
.strategy-history-progress__message { display: block; margin-top: 5px; color: #665017; font-size: 12px; }
.saved-strategy-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #e2e6e1; }
.saved-strategy-actions .small-button { min-height: 36px; padding: 7px 12px; font-size: 12px; }
.saved-strategy-state { display: grid; justify-items: center; min-height: 260px; place-content: center; padding: 32px; text-align: center; }
.saved-strategy-state h2 { margin: 0 0 6px; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; font-weight: 600; }
.saved-strategy-state p { max-width: 48ch; margin: 0 0 18px; color: #58635f; }
.saved-strategy-state--error { color: #783c2f; background: #f8efea; }
.loading-spinner { width: 24px; height: 24px; margin-bottom: 12px; border: 2px solid #cdd3cf; border-top-color: #235f52; border-radius: 50%; animation: saved-strategy-spin .8s linear infinite; }
@keyframes saved-strategy-spin { to { transform: rotate(360deg); } }

.saved-strategy-modal { width: min(640px, 100%); border-color: #cdd3cf; border-radius: 6px; box-shadow: 0 22px 60px rgba(24,32,29,.22); }
.saved-strategy-modal__header { padding-right: 30px; }
.saved-strategy-modal__header h2 { margin: 0 0 7px; font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 25px; font-weight: 600; }
.saved-strategy-modal__header p { margin: 0; color: #58635f; font-size: 12px; }
.saved-strategy-form { gap: 8px !important; }
.saved-strategy-form input { min-height: 44px; padding: 9px 11px; }
.saved-strategy-form textarea { min-height: 170px; font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 12px; background: #f5f6f1; resize: vertical; }
.saved-strategy-source-summary { display: grid; grid-template-columns: .7fr 1.3fr; margin: 10px 0; border: 1px solid #d8ddd4; }
.saved-strategy-source-summary div { padding: 10px 12px; }
.saved-strategy-source-summary div + div { border-left: 1px solid #d8ddd4; }
.saved-strategy-source-summary dt { color: #58635f; font-size: 10px; }
.saved-strategy-source-summary dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
.saved-strategy-form .field-help { margin: 0; color: #58635f; font-size: 11px; }
.saved-strategy-preview { max-height: 320px; overflow: auto; border: 1px solid #d8ddd4; background: #f5f6f1; }
.saved-strategy-preview__item + .saved-strategy-preview__item { border-top: 1px solid #cdd3cf; }
.saved-strategy-preview__item header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 8px 12px; background: #fbfaf7; }
.saved-strategy-preview__item header strong { font-size: 12px; }
.saved-strategy-preview__item header span { color: #58635f; font-size: 10px; font-variant-numeric: tabular-nums; }
.saved-strategy-preview__item pre { margin: 0; padding: 10px 12px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
.saved-strategy-preview__item code { font-family: "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace; font-size: 11px; line-height: 1.7; }

@media (max-width: 820px) {
  .saved-strategy-intro { align-items: stretch; }
  .saved-strategy-intro .secondary-button { width: 100%; min-height: 44px; }
  .strategy-history-batch { flex-wrap: wrap; justify-content: flex-start; }
  .strategy-history-batch > span { width: 100%; }
  .saved-strategy-row__heading { grid-template-columns: auto minmax(0, 1fr); gap: 8px 12px; }
  .saved-strategy-row__heading time { grid-column: 2; }
  .saved-strategy-actions .small-button { min-height: 44px; }
  .strategy-toolbar-actions { align-items: stretch; justify-content: flex-start; width: 100%; }
}

@media (max-width: 540px) {
  .saved-strategy-intro h1 { font-size: 28px; }
  .strategy-history-search { padding-right: 16px; padding-left: 16px; }
  .strategy-history-batch { align-items: stretch; flex-direction: column; padding-right: 16px; padding-left: 16px; }
  .strategy-history-batch button { width: 100%; min-height: 44px; }
  .saved-strategy-workspace__header,
  .saved-strategy-row { padding-right: 16px; padding-left: 16px; }
  .saved-strategy-row__heading { grid-template-columns: 1fr; }
  .saved-strategy-row__heading time { grid-column: auto; }
  .history-select-button { width: 100%; }
  .saved-strategy-actions { align-items: stretch; flex-direction: column; }
  .saved-strategy-actions button { width: 100%; min-height: 44px !important; }
  .saved-strategy-source-summary { grid-template-columns: 1fr; }
  .saved-strategy-source-summary div + div { border-top: 1px solid #d8ddd4; border-left: 0; }
  .strategy-toolbar-actions .strategy-count,
  .strategy-toolbar-actions button { width: 100%; min-height: 44px; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .loading-spinner { animation: none; }
}

/* Concept review keeps the incumbent evidence-dossier surface flat and dense. */
.concept-workspace { border-radius: 0; box-shadow: none; }
.concept-workspace .workspace-header { padding: 24px; }
.concept-workspace .workspace-header .secondary-button { min-height: 44px; border-radius: 4px; box-shadow: none; }
.concept-list { gap: 0; padding: 0 24px; }
.concept-card { min-width: 0; padding: 24px 0; border: 0; border-bottom: 1px solid #cdd3cf; border-radius: 0; background: #fbfaf7; box-shadow: none; }
.concept-card:first-child { border-top: 1px solid #cdd3cf; }
.concept-main { min-width: 0; }
.concept-title-row { flex-wrap: wrap; }
.concept-title-row h3 { font-family: "Source Han Serif SC", "Noto Serif SC", STSong, serif; font-size: 20px; font-weight: 600; line-height: 1.5; }
.concept-workspace .type-pill,
.concept-workspace .source-pill { border-radius: 2px; }
.concept-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 16px 0 0; border-top: 1px solid #cdd3cf; border-left: 1px solid #cdd3cf; }
.concept-facts div { display: grid; grid-template-columns: minmax(84px, .36fr) minmax(0, 1fr); gap: 8px; min-width: 0; padding: 8px 12px; border-right: 1px solid #cdd3cf; border-bottom: 1px solid #cdd3cf; }
.concept-facts dt { color: #58635f; font-size: 12px; font-weight: 500; }
.concept-facts dd { min-width: 0; margin: 0; color: #18201d; font-size: 14px; }
.concept-evidence-text,
.analysis-traceability dd { overflow-wrap: anywhere; }
.concept-evidence-details p { border-radius: 0; background: #f5f3ee; }
.concept-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.concept-actions button { min-height: 44px; padding: 8px 12px; color: #58635f; font-size: 12px; border: 1px solid #cdd3cf; border-radius: 4px; background: #fbfaf7; }
.concept-actions button:hover { color: #235f52; border-color: #9fa9a4; background: #e4ece8; }
.concept-actions .danger-text:hover { color: #783c2f; border-color: #c79582; background: #f3e7e1; }
.analysis-traceability { margin: 24px; padding: 16px 0; border-top: 1px solid #9fa9a4; border-bottom: 1px solid #9fa9a4; }
.analysis-traceability summary { min-height: 44px; padding: 10px 0; font-size: 14px; }
.analysis-traceability dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 8px 0 0; border-top: 1px solid #cdd3cf; border-left: 1px solid #cdd3cf; }
.analysis-traceability dl div { min-width: 0; padding: 8px 12px; border-right: 1px solid #cdd3cf; border-bottom: 1px solid #cdd3cf; }
.analysis-traceability dt { color: #58635f; font-size: 12px; }
.analysis-traceability dd { margin: 4px 0 0; font-size: 14px; }
.analysis-traceability > p { margin: 8px 0 0; padding: 0; color: #58635f; font-size: 12px; background: transparent; }
.analysis-warning-list { margin: 24px; padding: 16px; border: 1px solid #c79582; border-radius: 0; background: #f3e7e1; }
.analysis-warning-list > div h3 { margin-bottom: 4px; color: #783c2f; font-size: 16px; }
.analysis-warning-list > div p { margin: 0; color: #774b3b; font-size: 12px; }
.analysis-warning-list ul { margin: 16px 0 0; padding: 0; list-style: none; border-top: 1px solid #c79582; }
.analysis-warning-list li { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; padding: 12px 0; border-bottom: 1px solid #c79582; }
.analysis-warning-list li > div { min-width: 0; }
.analysis-warning-list li strong,
.analysis-warning-list li p { overflow-wrap: anywhere; }
.analysis-warning-list li p { margin: 4px 0 0; color: #774b3b; font-size: 12px; }
.analysis-warning-list li > span { color: #58635f; font-size: 12px; }
.analysis-warning-list button { flex: none; min-height: 44px; border-radius: 4px; box-shadow: none; }
.analysis-warning-list .is-resolved { border-color: #9fa9a4; }
.generation-submit-group { display: grid; justify-items: end; gap: 8px; min-width: min(100%, 360px); }
.generation-submit-group p { max-width: 44ch; margin: 0; color: #783c2f; font-size: 12px; text-align: right; overflow-wrap: anywhere; }
.generation-submit-group .primary-button { min-height: 44px; border-radius: 4px; box-shadow: none; }
.concept-workspace .generation-submit-group .primary-button:not(:disabled):hover { transform: none; box-shadow: none; }
.concept-edit-dialog,
.concept-delete-dialog { border-color: #9fa9a4; border-radius: 4px; box-shadow: none; }
.concept-edit-dialog .modal-close,
.concept-delete-dialog .modal-close { width: 44px; height: 44px; border-radius: 4px; box-shadow: none; }
.concept-edit-dialog .modal-actions button,
.concept-delete-dialog .modal-actions button { min-height: 44px; border-radius: 4px; box-shadow: none; }
.concept-edit-dialog .modal-actions button:hover,
.concept-delete-dialog .modal-actions button:hover { transform: none; box-shadow: none; }
.concept-delete-dialog .danger-confirm-button:hover:not(:disabled) { transform: none; box-shadow: none; }
.concept-edit-dialog input,
.concept-edit-dialog select,
.concept-edit-dialog textarea,
.concept-delete-dialog textarea { min-height: 44px; border: 1px solid #9fa9a4; border-radius: 4px; }
.concept-modal-error { margin: 4px 0 0; padding: 8px 12px; color: #783c2f; font-size: 12px; border: 1px solid #c79582; border-radius: 0; background: #f3e7e1; }
.concept-workspace .empty-state { border-radius: 4px; box-shadow: none; }
.combination-future-note { display: flex; align-items: center; gap: 16px; margin: 24px; padding: 16px 0; border-top: 1px solid #cdd3cf; }
.combination-future-note button { flex: none; min-height: 40px; padding: 8px 16px; color: #58635f; border: 1px solid #cdd3cf; border-radius: 4px; background: #f5f3ee; box-shadow: none; cursor: not-allowed; }
.combination-future-note p { max-width: 56ch; margin: 0; color: #58635f; font-size: 14px; line-height: 1.57; overflow-wrap: anywhere; }

@media (max-width: 700px) {
  .concept-facts,
  .analysis-traceability dl { grid-template-columns: 1fr; }
  .analysis-warning-list li { align-items: stretch; flex-direction: column; }
  .analysis-warning-list button { width: 100%; }
}

@media (max-width: 540px) {
  .concept-list { padding: 0 16px; }
  .concept-card { grid-template-columns: 1fr; padding: 16px 0; }
  .concept-actions { grid-column: 1; flex-wrap: wrap; width: 100%; }
  .concept-actions button { flex: 1 1 calc(50% - 8px); min-width: 96px; }
  .concept-facts div { grid-template-columns: 1fr; gap: 4px; }
  .analysis-traceability,
  .analysis-warning-list { margin: 16px; }
  .generation-submit-group { justify-items: stretch; width: 100%; min-width: 0; }
  .generation-submit-group p { max-width: none; text-align: left; }
  .generation-submit-group button { width: 100%; }
  .combination-future-note { align-items: stretch; flex-direction: column; margin: 16px; }
  .combination-future-note button { width: 100%; min-height: 44px; }
}
