/* KAIMo_Reference/styles.css is retained verbatim. These rules cover the new learning workflow. */
:root { color-scheme: light; }
button, input, select, textarea { font: inherit; }
button, summary, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:not(:disabled),summary { cursor:pointer; }
button:disabled { opacity:.5; cursor:not-allowed; }
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
textarea { width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:#f8fafc; color:#334155; resize:vertical; line-height:1.5; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); flex-shrink:0; }
a { color:#4f46e5; }
small { line-height:1.5; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus { position:fixed; z-index:100; padding:12px; background:white; }
.loading-screen { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:30px; }
.auth-page { overflow:auto; min-height:100svh; display:grid; place-items:center; }
.auth-shell { width:min(100%,500px); padding:32px 20px; }
.auth-brand { display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.auth-brand-mark { display:flex; align-items:center; justify-content:center; width:56px; height:56px; flex-shrink:0; background:var(--accent); color:#f8fafc; }
.auth-brand-mark .rail-logo { width:40px; }
.auth-brand strong { font-size:1.2rem; }
.auth-brand p { margin:5px 0 0; font-size:.83rem; color:var(--muted); line-height:1.5; }
.auth-card { padding:28px; }
.auth-card h1 { font-size:1.5rem; line-height:1.3; margin:0 0 10px; }
.auth-intro { margin:0 0 24px; }
.auth-submit,.auth-course-button { width:100%; min-height:44px; margin-top:20px; }
.auth-account-help { margin:16px 0 0; font-size:.83rem; }
.auth-status { padding:14px; border:1px solid #bbf7d0; border-radius:10px; background:#f0fdf4; color:#166534; line-height:1.6; }
.auth-course { border-top:1px solid var(--line); margin-top:28px; padding-top:24px; }
.auth-course h2 { margin:0 0 10px; font-size:1rem; }
.auth-course p { font-size:.87rem; }
.auth-course-button { border:1px solid var(--line); border-radius:8px; padding:10px 14px; background:var(--bg); color:var(--ink); font-weight:500; }
.auth-course-button:hover { border-color:var(--accent); color:var(--accent-strong); }
@media(max-width:500px) { .auth-shell { padding:24px 16px; } .auth-card { padding:24px 20px; } }
.workspace-header { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:78px; }
.workspace-header h1 { font-size:1rem; }
.workspace-header p { margin:3px 0 0; font-size:.9rem; }
.workspace-meta { display:flex; align-items:center; gap:16px; flex-shrink:0; font-size:.8rem; }
.learning-mode { font-size:.83rem; color:#64748b; padding:4px; }
.save-status { color:#64748b; white-space:nowrap; }
.save-status.is-error { color:#b91c1c; }
.heading-with-info { display:flex; gap:8px; align-items:center; }
.heading-with-info h2 { margin:0; }
.info-button { flex:0 0 auto; width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; background:#eef2ff; color:#4f46e5; border:1px solid #c7d2fe; border-radius:50%; font-size:.73rem; font-weight:700; padding:0; vertical-align:middle; }
.muted,.case-footnote,.overview-footnote { color:#64748b; line-height:1.5; }
.learning-notice,.save-error { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 20px; background:#eff6ff; color:#1e3a8a; font-size:.9rem; flex:0 0 auto; }
.learning-notice.is-success { background:#ecfdf5; color:#166534; }
.learning-notice.is-error,.save-error { background:#fff1f2; color:#9f1239; }
.busy-indicator { background:#eef2ff; padding:7px 20px; color:#4338ca; font-size:.83rem; }
.case-toolbar { --case-danger:#9f3452; --case-danger-soft:#fff1f3; --case-danger-line:#f6d9df; display:flex; flex-wrap:wrap; gap:16px 24px; padding:16px 20px; }
.case-toolbar .toolbar-search { flex:1 1 180px; max-width:430px; }
.case-toolbar .toolbar-search input { min-height:44px; font-size:.875rem; }
.case-toolbar .toolbar-groups { gap:14px; margin-right:auto; }
.case-toolbar .toolbar-reset { font-size:.875rem; color:var(--muted); }
.case-toolbar .toolbar-reset:hover { color:var(--accent-strong); }
.case-toolbar .toolbar-side-controls { flex:0 0 auto; align-self:center; align-items:center; flex-wrap:nowrap; gap:8px; }
.case-toolbar .case-selector { display:flex; align-items:center; gap:10px; width:182px; min-width:0; min-height:44px; margin:0; padding-left:12px; border:1px solid var(--line); border-radius:8px; background:var(--bg); }
.case-toolbar .case-selector>span { padding-right:10px; border-right:1px solid var(--line); font-size:.75rem; font-weight:600; }
.case-toolbar .case-selector>select { flex:1; min-width:0; width:auto; min-height:42px; padding:8px 10px 8px 0; border:0; border-radius:0 8px 8px 0; background:transparent; color:var(--ink); font-size:.875rem; font-weight:500; cursor:pointer; }
.case-toolbar .case-selector:has(select:focus-visible) { outline:2px solid var(--accent); outline-offset:3px; }
.case-toolbar .case-selector>select:focus-visible { outline:none; }
.case-toolbar .case-selector>select:disabled { color:var(--muted); cursor:not-allowed; }
.case-toolbar .case-info-button,.case-toolbar .import-control,.case-toolbar .case-reset-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--ink); font-size:.875rem; font-weight:500; line-height:1.4; white-space:nowrap; transition:background-color 160ms ease-out,border-color 160ms ease-out,color 160ms ease-out; }
.case-toolbar .case-info-icon { flex:0 0 auto; background:var(--bg); color:var(--muted); }
.case-toolbar .case-info-button::after { content:""; width:6px; height:6px; margin-left:2px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.case-toolbar .case-info-button:hover { background:var(--bg); }
.case-toolbar .case-info-dropdown[open] .case-info-button { background:var(--accent-soft); border-color:color-mix(in srgb,var(--accent) 30%,var(--line)); color:var(--accent-strong); }
.case-toolbar .case-info-dropdown[open] .case-info-button::after { transform:translateY(2px) rotate(225deg); }
.case-toolbar .case-info-panel { left:0; right:auto; max-height:60dvh; overflow:auto; }
.case-toolbar .import-control { background:var(--accent-soft); border-color:color-mix(in srgb,var(--accent) 22%,var(--line)); color:var(--accent-strong); }
.case-toolbar .import-control:hover { background:color-mix(in srgb,var(--accent) 14%,var(--panel)); border-color:var(--accent); }
.case-toolbar .case-reset-button { margin-left:8px; border-color:transparent; color:var(--case-danger); }
.case-toolbar .case-reset-button:hover { background:var(--case-danger-soft); border-color:var(--case-danger-line); }
.case-toolbar .case-reset-button:active { background:var(--case-danger-line); }
.case-action-icon { flex:0 0 auto; width:16px; height:16px; }
.results-panel { overflow:auto; }
.results-panel-inner>.panel-header { margin-bottom:12px; }
.prepare-actions { display:flex; align-items:center; gap:8px; }
.block-select { border:0; background:transparent; color:inherit; width:100%; text-align:left; padding:0; display:block; }
.block-text { display:block; line-height:1.55; margin:10px 0; overflow-wrap:anywhere; }
.block-select small { color:var(--muted); }
.source-detail { margin-top:10px; font-size:.78rem; color:#64748b; }
.source-detail summary { color:#4f46e5; }
.source-detail p { padding-top:8px; color:#475569; }
.case-footnote { font-size:.84rem; }
.dimension-badge { display:inline-flex; align-items:center; font-size:.75rem; padding:3px 8px; border-radius:5px; }
.dimension-badge.is-risk { background:#fff1f2; color:#9f1239; }
.dimension-badge.is-protection { background:#ecfdf5; color:#065f46; }
.dimension-badge.is-clarify { background:#fef3c7; color:#92400e; }
.dimension-badge.is-irrelevant { background:#f1f5f9; color:#475569; }



.overview-footnote { font-size:.84rem; padding-top:12px; }
.transition-note { padding:12px 16px; border:1px solid #bbf7d0; background:#ecfdf5; color:#166534; display:flex; align-items:center; gap:12px; border-radius:10px; }
.signals-overview-card { width:min(31%,340px); }


.signals-legacy-detail { --assignment-peek:48px; }
.signals-analysis-column { grid-template-rows:minmax(220px,.9fr) minmax(220px,1.1fr); overflow:auto; }
.signals-analysis-column>.llm-card { overflow:auto; }
.signals-analysis-column h4 { flex:1; }
.llm-card-head { margin-bottom:12px; }
.assignment-editor { min-height:0; line-height:1.5; }
.assignment-editor .selected-excerpt { font-size:.86rem; margin:0; color:#64748b; }
.assignment-editor .field { margin-top:10px; }
.assignment-editor .field>span { font-size:.82rem; }
.assignment-editor select { padding:7px 10px; }
.classification-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.card-footer { margin-top:auto; padding-top:12px; }
.assist-link { padding-top:16px; }
.assignment-zone-head { width:100%; border:0; text-align:left; }
.assignment-zone-risk .assignment-zone-head { background:#f43f5e; }
.assignment-zone-head h4 { font-size:.83rem; }
.assignment-zone-inner { pointer-events:auto; }
.assignment-zone { min-height:250px; }
.without-dock { padding-bottom:0; }
.category-map { position:relative; flex:1 0 auto; min-height:240px; margin:4px 0; }
.category-map-center { position:absolute; top:46%; left:50%; transform:translate(-50%,-50%); border-radius:50%; width:70px; height:70px; background:#f8fafc; border:1px solid #cbd5e1; display:flex; align-items:center; justify-content:center; color:#64748b; }
.map-item { position:absolute; width:40%; display:flex; align-items:center; gap:5px; z-index:1; }
.map-button { padding:11px 12px; border:1px solid #dbe3eb; background:white; color:#475569; border-radius:8px; width:100%; font-size:.84rem; box-shadow:0 2px 6px #0f172a08; }
.map-button:hover,.map-button.is-active { border-color:#818cf8; background:#eef2ff; color:#4338ca; }
.map-item-1 { top:0; left:1%; }
.map-item-2 { top:0; right:1%; }
.map-item-3 { bottom:24%; left:1%; }
.map-item-4 { bottom:24%; right:1%; }
.map-item-5 { bottom:0; left:30%; }
.category-map-3 .map-item-1 { left:30%; }
.category-map-3 .map-item-2 { top:auto; bottom:10%; left:1%; }
.category-map-3 .map-item-3 { bottom:10%; left:auto; right:1%; }
.genogram-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.45fr); gap:18px; min-height:0; overflow:auto; }
.genogram-panel,.genogram-editor { padding:18px; min-width:0; overflow:auto; }
.genogram-canvas { position:relative; width:100%; aspect-ratio:1000/640; background:#fbfcfe; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; }
.genogram-canvas>svg { width:100%; height:100%; }
.genogram-canvas line { stroke:#94a3b8; stroke-width:2; }
.genogram-canvas text { font-family:inherit; font-size:17px; fill:#64748b; paint-order:stroke; stroke:#fbfcfe; stroke-width:6px; stroke-linejoin:round; }
.genogram-canvas .relation-support line { stroke:#10b981; stroke-width:3; }
.genogram-canvas .relation-conflict line { stroke:#f43f5e; stroke-width:3; }
.genogram-canvas .relation-uncertain line { stroke-dasharray:7; }
.person-node { position:absolute; transform:translate(-50%,-35%); min-width:80px; max-width:155px; display:flex; flex-direction:column; align-items:center; gap:6px; border:0; background:none; color:#334155; font-size:.8rem; }
.person-shape { width:40px; height:40px; border:2px solid #94a3b8; background:white; }
.shape-circle .person-shape { border-radius:50%; }
.shape-diamond .person-shape { transform:rotate(45deg); width:32px; height:32px; margin:4px; }
.person-node.is-selected .person-shape { border-color:#6366f1; background:#eef2ff; }
.person-node strong,.person-node small { background:#fbfcfe; }
.person-node small { font-size:.72rem; }
.diagram-legend { font-size:.78rem; color:#64748b; line-height:1.6; }
.genogram-editor .field { font-size:.84rem; }
.genogram-editor h3 { font-size:1rem; }
.relation-head { margin-top:24px; }
.relation-editor { border-top:1px solid var(--line); padding:12px 0; }
.relation-editor .field { margin-top:6px; }
.potentials-layout { display:grid; grid-template-columns:1fr 1fr; gap:18px; overflow:auto; min-height:0; }
.potentials-panel { padding:18px; overflow:auto; }
.potential-entry { padding:14px 0; border-bottom:1px solid var(--line); }
.potential-block { margin-top:14px; }
.danger-text { color:#b91c1c; }
.evaluation-toolbar { justify-content:space-between; }
.assessment-tabs { display:flex; gap:10px; padding:16px 20px; flex-shrink:0; overflow-x:auto; border-bottom:1px solid var(--line); background:#fff; }
.assessment-tabs .signals-subcategory-tab { display:flex; align-items:center; color:#475569; font-size:.85rem; max-width:none; }
.step-number { width:22px; height:22px; border-radius:50%; background:#eef2ff; color:#4f46e5; display:inline-flex; align-items:center; justify-content:center; font-size:.76rem; flex-shrink:0; }
.assessment-body { display:grid; grid-template-columns:minmax(0,1fr); min-height:0; flex:1; }
.assessment-body.has-overview { grid-template-columns:300px minmax(0,1fr); }
.assessment-overview { padding:20px; overflow:auto; border-right:1px solid var(--line); background:#fff; }
.assessment-overview details { margin-top:18px; }
.assessment-overview article { margin-top:10px; padding:10px; background:#f8fafc; border-radius:8px; font-size:.82rem; }
.assessment-overview p { line-height:1.5; }
.assessment-main { padding:24px; min-width:0; overflow:auto; }
.assessment-main h2 { font-size:1.25rem; }
.section-intro { line-height:1.6; color:#64748b; margin:0 0 24px; max-width:1100px; }
.comparison-layout { display:grid; grid-template-columns:1fr 40px 1fr; gap:16px; align-items:start; }
.comparison-column { padding:18px; }
.comparison-column h3 { font-size:1rem; margin-bottom:18px; }
.comparison-arrow { align-self:center; text-align:center; font-size:1.8rem; color:#94a3b8; }
.comparison-risk,.comparison-protection { border:1px solid var(--line); border-radius:10px; padding:12px; margin-top:10px; background:#fff; }
.comparison-risk.is-selected { border-color:#818cf8; box-shadow:0 0 0 1px #818cf8; background:#f8faff; }
.protection-choice { display:flex; gap:10px; align-items:flex-start; font-size:.9rem; cursor:pointer; }
.protection-choice>input { margin-top:6px; }
.comparison-protection>small { color:#64748b; }
.rating-table-wrap,.actions-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:#fff; }
.rating-table,.actions-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.rating-table { min-width:770px; }
.rating-table th,.rating-table td,.actions-table th,.actions-table td { padding:16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:.87rem; }
.rating-table thead th,.actions-table thead th { background:#f1f5f9; color:#475569; font-weight:600; }
.rating-table th:first-child { width:34%; }
.rating-table tbody th { font-weight:400; }
.rating-table tbody th p { line-height:1.6; }
.question-row td { font-size:.78rem; color:#64748b; line-height:1.4; }
.rating-cell fieldset { padding:0; margin:0; border:0; }
.rating-cell label { display:flex; align-items:flex-start; gap:4px; margin-bottom:16px; line-height:1.5; }
.rating-cell.is-negative { background:#fff1f2; }
.rating-cell.is-unknown { background:#fffbeb; }
.rating-cell.is-positive { background:#f0fdf4; }
.rating-note { font-size:.78rem; color:#64748b; }
.validation-message { background:#fff1f2; border:1px solid #fecdd3; padding:14px; color:#9f1239; border-radius:10px; margin-bottom:16px; line-height:1.6; }
.rating-summary { margin-top:24px; }
.rating-summary h3 { margin:24px 0 12px; }
.red-summary-item,.unknown-summary-item { padding:12px 16px; margin-top:8px; border:1px solid #fecdd3; background:#fff1f2; border-radius:8px; color:#9f1239; line-height:1.6; }
.unknown-summary-item { background:#fffbeb; border-color:#fde68a; color:#92400e; }
.conclusion-layout { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.conclusion-panel { padding:22px; }
.conclusion-panel h3 { margin-bottom:18px; }
.conclusion-options { padding:0; margin:0; border:0; display:grid; gap:10px; }
.conclusion-options label { display:flex; align-items:flex-start; gap:10px; }
.conclusion-options .is-selected { background:#eef2ff; border-color:#818cf8; }
.harm-forms { margin:24px 0 0; padding:18px 0 0; border:0; border-top:1px solid var(--line); }
.harm-forms legend { font-size:1rem; padding-top:20px; }
.harm-forms label { display:flex; gap:8px; align-items:flex-start; font-size:.84rem; line-height:1.5; margin-bottom:10px; }
.harm-forms:disabled { opacity:.45; }
.reflection-prompt { padding:18px; background:#f8fafc; border:1px solid var(--line); border-radius:10px; margin-top:20px; color:#475569; line-height:1.6; }
.reflection-prompt h4 { margin-top:0; }
.actions-table { min-width:700px; }
.actions-table th:last-child { width:40px; }
.actions-table td:last-child { padding:12px 4px; }
.actions-table textarea { border-color:transparent; background:#f8fafc; padding:10px; font-size:.88rem; }
.assessment-bottom { display:flex; justify-content:space-between; gap:14px; margin-top:30px; font-size:.8rem; color:#64748b; border-top:1px solid var(--line); padding-top:20px; }
.library-panel h3 { margin:24px 0 16px; }
.library-controls { display:flex; align-items:center; gap:20px; }
.library-controls .toolbar-search { flex:1; }
.library-controls input { padding-left:12px; }
.library-controls .field { margin-top:0; }
.glossary-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.glossary-entry { border:1px solid var(--line); border-radius:10px; padding:14px 16px; align-self:start; }
.glossary-entry summary { color:#334155; font-size:.9rem; }
.glossary-entry p { color:#475569; line-height:1.65; }
.room-current { padding:20px; border:1px solid #c7d2fe; background:#f8faff; border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.room-current p { line-height:1.5; }
.room-code { display:flex; flex-direction:column; gap:5px; }
.room-code strong { font-size:1.5rem; letter-spacing:.15em; color:#4338ca; }
.room-code small { color:#64748b; }
.classroom-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.classroom-section { padding:24px; }
.room-steps { border:0; padding:0; margin:24px 0; }
.room-steps legend { margin-bottom:12px; font-size:.9rem; color:#64748b; }
.room-steps label,.checkbox-row { display:flex; gap:8px; align-items:center; margin-bottom:12px; font-size:.9rem; line-height:1.5; }
.classroom-section form .primary-button { margin-top:16px; }
.classroom-section .settings-mode-note { margin-top:30px; }
.code-input { text-transform:uppercase; letter-spacing:.18em; }
.owned-room-heading { margin-top:32px!important; }
.owned-room { border-bottom:1px solid var(--line); padding:16px 0; display:flex; justify-content:space-between; gap:10px; }
.owned-room small { display:block; color:#64748b; }
.course-directory { margin-bottom:32px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.course-directory>.panel-header { align-items:start; flex-wrap:wrap; gap:12px; }
.course-directory h3 { margin:0; }
.course-directory>.panel-header p { margin:8px 0 0; font-size:.85rem; }
.course-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-top:20px; }
.course-filters .field { flex:1 1 260px; margin:0; max-width:540px; }
.course-filters>.primary-button { min-height:44px; }
.course-result-count { margin:18px 0 8px; font-size:.85rem; }
.course-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.85rem; }
.course-table th,.course-table td { text-align:left; padding:14px 12px; border-bottom:1px solid var(--line); vertical-align:top; overflow-wrap:anywhere; line-height:1.5; }
.course-table th { color:var(--muted); font-size:.75rem; font-weight:500; }
.course-table th:first-child { width:28%; }
.course-table tr.is-current { background:var(--accent-soft); }
.course-title { font-weight:500; }
.course-title small { display:block; color:var(--muted); font-weight:400; }
.course-number { letter-spacing:.05em; white-space:nowrap; }
.course-row-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 16px; }
.course-row-actions .link-button { padding:0; text-decoration:none; font-size:.82rem; text-align:left; }
.course-owner-cell { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; min-width:0; }
.course-owner-cell .link-button { padding:0; font-size:.82rem; }
.course-owner-setting { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin:20px 0; overflow-wrap:anywhere; }
.course-owner-setting strong { font-weight:500; }
.participants-panel>.panel-header { flex-wrap:wrap; align-items:start; }
.participants-panel>.panel-header p { margin:8px 0 0; overflow-wrap:anywhere; }
.participant-table th:first-child { width:40%; }
.participant-identity,.participant-access { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.participant-identity strong { font-weight:500; }
.participant-identity>span { color:var(--muted); }
.course-cell-label { display:none; }
.course-pagination { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:20px; font-size:.85rem; }
@media(max-width:800px) {
 .course-table,.course-table tbody { display:block; }
 .course-table thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
 .course-table tr { display:block; padding:14px 0; border-bottom:1px solid var(--line); }
 .course-table td { display:flex; gap:12px; padding:5px 12px; border:0; }
 .course-table td>span:last-child,.course-title { min-width:0; }
 .course-cell-label { display:block; flex:0 0 84px; color:var(--muted); font-size:.75rem; padding-top:2px; }
 .course-row-actions { justify-content:flex-start; padding:6px 0; gap:12px 20px; }
 .course-filters .field { max-width:none; }
 .course-directory>.panel-header>.link-button { padding-left:0; }
}
.learning-modal { display:flex; flex-direction:column; max-height:calc(100dvh - 48px); }
.learning-modal .modal-body { overflow:auto; line-height:1.6; }
.learning-modal>.panel-header,.learning-modal>.decision-actions { flex-shrink:0; }
.learning-modal .danger-button { background:#b91c1c; }
.learning-modal .danger-button:hover:not(:disabled) { background:#991b1b; }
.delete-course-target,.course-owner-target { overflow-wrap:anywhere; }
.delete-course-target strong,.delete-course-target span,.course-owner-target strong,.course-owner-target span { display:block; }
.delete-course-target span,.course-owner-target span,#course-delete-code-help { color:var(--muted); font-size:.85rem; }
.course-owner-modal .modal-body { display:block; }
.course-owner-modal .modal-body>p { margin:0 0 12px; }
.course-owner-modal .course-filters { margin:20px 0 12px; }
.course-owner-modal .field { min-width:0; }
.wide-modal { width:min(850px,100%); }
.proposal-list { display:grid; gap:12px; }
.proposal-entry { border:1px solid var(--line); border-radius:10px; padding:16px; }
.proposal-choice { display:flex; align-items:flex-start; gap:10px; }
.proposal-choice>input { margin-top:6px; }
.proposal-choice strong { font-weight:500; }
.proposal-choice .hint-meta { margin-top:10px; }
.proposal-entry p { color:#64748b; font-size:.88rem; }
.proposal-entry small { color:#64748b; }
.potential-proposal { display:flex; align-items:flex-start; gap:10px; padding:14px; border:1px solid var(--line); border-radius:8px; margin-top:10px; }
.potential-proposal small { display:block; color:#64748b; margin-top:8px; }
.reflection-list { padding-left:24px; }
.reflection-list li { padding:8px 0 8px 8px; color:#475569; }
.learning-modal pre { padding:14px; background:#f8fafc; overflow:auto; font-size:.8rem; }
.import-preview { padding:14px; border:1px solid var(--line); border-radius:10px; }
@media(max-width:1100px) {
 .workspace-header { min-height:74px; }
 .workspace-meta { flex-direction:column; align-items:flex-end; gap:4px; }
 .toolbar { gap:14px; padding:14px 20px; }
 .case-toolbar .toolbar-side-controls { flex:1 0 100%; flex-direction:row; justify-content:flex-start; flex-wrap:wrap; padding-top:12px; border-top:1px solid var(--line); }
 .workspace-stage { display:block; overflow:auto; }
 .workspace-stage:not(.workspace-stage-single)>.results-panel { max-height:270px; margin-bottom:12px; }
 .workspace-stage-single>.stage-main { min-height:100%; height:auto; margin:0; }
 .stage-main { height:auto; }
 .signals-panel { overflow:visible; }
 .signals-legacy-detail { overflow:visible; padding-bottom:0; display:flex; flex-direction:column; }
 .signals-workspace { display:grid; grid-template-columns:minmax(220px,.43fr) minmax(0,.57fr); height:auto; overflow:visible; }
 .signals-source-column { max-height:700px; }
 .signals-analysis-column { display:flex; flex-direction:column; overflow:visible; }
 .signals-analysis-column>.llm-card { height:auto; min-height:230px; }
 .assignment-dock { position:static; pointer-events:auto; overflow:visible; }
 .assignment-bar { grid-template-columns:repeat(4,minmax(0,1fr)); pointer-events:auto; }
 .assignment-zone { min-height:50px; overflow:visible; pointer-events:auto; }
 .assignment-zone-inner { position:static; transform:none; }
 .assignment-zone-body { display:none; }
 .assignment-zone:focus-within .assignment-zone-body { display:block; }
 .signals-legacy-overview { min-height:auto; }
 .signals-overview-card { width:auto; }
 .signals-overview-core { font-size:1.5rem; margin:16px 0; }
 .genogram-layout { grid-template-columns:1fr; overflow:visible; }
 .genogram-editor { overflow:visible; }
 .potentials-layout { overflow:visible; }
 .assessment-body.has-overview { grid-template-columns:240px minmax(0,1fr); }
 .assessment-main { padding:18px; }
 .comparison-layout { grid-template-columns:1fr 24px 1fr; gap:10px; }
 .conclusion-layout,.classroom-columns { grid-template-columns:1fr; }
 .room-current { flex-wrap:wrap; }
}
@media(max-width:650px) {
 .rail-brand { width:60px; }
 .rail-logo { width:34px; }
 .nav-item { padding:6px; }
 .nav-item span { width:36px; height:36px; }
 .rail-footer { padding:0; }
 .workspace-header { padding:12px; flex-wrap:wrap; }
 .workspace-meta { flex-direction:row; justify-content:space-between; width:100%; }
 .workspace-header p { font-size:.8rem; }
 .toolbar { padding:12px; }
 .toolbar-groups { gap:14px; }
 .filter-dropdown-panel { min-width:260px; max-width:calc(100vw - 36px); max-height:50vh; overflow:auto; }
 .case-toolbar .toolbar-search { flex-basis:100%; max-width:none; }
 .case-toolbar .toolbar-side-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:8px; }
 .case-toolbar .case-selector { width:100%; }
 .case-toolbar .case-info-button,.case-toolbar .import-control,.case-toolbar .case-reset-button { width:100%; white-space:normal; }
 .case-toolbar .case-reset-button { margin-left:0; }
 .case-toolbar .case-info-panel { left:auto; right:0; width:min(360px,calc(100vw - 40px)); }
 .panel-header { flex-wrap:wrap; }
 .panel-header h2 { font-size:1.25rem; }
 .signals-detail-head { flex-wrap:wrap; gap:8px; }
 .signals-detail-actions { width:100%; justify-content:space-between; }
 .signals-subcategory-tabs { gap:8px; }
 .signals-subcategory-tab { max-width:220px; }
 .signals-workspace { grid-template-columns:1fr; }
 .signals-source-column { max-height:330px; }
 .signals-analysis-column { height:auto; }
 .classification-row { grid-template-columns:1fr; }
 .assignment-bar { grid-template-columns:1fr 1fr; gap:5px; border-radius:8px; }
 .assignment-zone-head { padding:12px; min-height:54px; }
 .assignment-zone-head h4 { font-size:.8rem; }
 .potentials-layout { grid-template-columns:1fr; }
 .genogram-panel { padding:12px; }
 .person-node { max-width:100px; min-width:65px; font-size:.66rem; }
 .person-node small { font-size:.58rem; }
 .person-shape { width:28px; height:28px; }
 .shape-diamond .person-shape { width:23px; height:23px; }
 .genogram-canvas text { font-size:21px; }
 .assessment-tabs { padding:12px; }
 .evaluation-toolbar { padding:12px; align-items:flex-start; flex-wrap:wrap; }
 .evaluation-toolbar h1 { font-size:1rem; }
 .assessment-body.has-overview { display:block; overflow:auto; }
 .assessment-overview { max-height:280px; }
 .assessment-main { padding:14px; }
 .comparison-layout { grid-template-columns:1fr; }
 .comparison-arrow { transform:rotate(90deg); }
 .comparison-column { padding:14px; }
 .assessment-bottom { flex-direction:column; }
 .glossary-list { grid-template-columns:1fr; }
 .library-controls { flex-direction:column; align-items:stretch; gap:12px; }
 .classroom-section { padding:16px; }
 .room-code strong { font-size:1.2rem; }
 .learning-modal { max-height:calc(100dvh - 24px); padding:18px; }
 .modal-backdrop { padding:12px; }
 .decision-actions { flex-wrap:wrap; }
 .learning-notice,.save-error { padding:10px 12px; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

@media(min-width:1101px) { .signals-analysis-column:has(.category-map) { grid-template-rows:350px minmax(300px,1fr); } }
@media(max-width:1100px) {
 .rail { min-height:72px; flex-shrink:0; }
 .rail-brand { width:72px; min-width:72px; }
 .rail-body { flex-direction:row; align-items:center; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; }
 .rail-nav { display:flex; flex-direction:row; flex:1; width:auto; padding:0; }
 .rail-footer { display:flex; flex-direction:row; width:auto; margin-top:0; padding:0; }
 .rail .nav-item { width:auto; padding:8px; flex-shrink:0; }
 .rail .nav-item span { width:40px; height:40px; }
 .workspace-stage-single>.stage-main { min-height:0; }
 .signals-legacy-overview { display:block; min-height:0; flex:0 0 auto; }
 .signals-overview-core { text-align:center; margin:24px 0; }
 .signals-overview-cards { width:100%; }
 .signals-overview-card { width:100%; }
}
@media(max-width:650px) {
 .rail { min-height:60px; }
 .rail-brand { width:60px; min-width:60px; }
 .rail .nav-item { padding:4px; }
 .rail .nav-item span { width:36px; height:36px; }
}
@media(max-width:650px) {
 .signals-detail-actions { flex-wrap:wrap; }
 .toolbar-groups { position:relative; }
 .toolbar-groups .filter-dropdown { position:static; }
 .toolbar-groups .filter-dropdown-panel { left:0; right:0; top:calc(100% + 8px); width:auto; min-width:0; max-width:none; }
}

.account-settings { padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid var(--line); }
.account-settings h4 { margin-top:0; }
.account-identity { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.account-identity p { margin:4px 0 0; overflow-wrap:anywhere; }
.usage-summary { display:flex; flex-wrap:wrap; gap:16px 40px; margin:20px 0 12px; }
.usage-summary dt { color:#64748b; font-size:.85rem; margin-bottom:5px; }
.usage-summary dd { margin:0; font-weight:600; }
.usage-summary dd span { font-weight:400; color:#64748b; }
#account-login-form { max-width:420px; }
#account-login-form .primary-button { margin-top:8px; }

.admin-panel { overflow-y:auto; }
.admin-panel>.panel-header { align-items:start; flex-wrap:wrap; gap:16px; margin-bottom:24px; }
.admin-panel>.panel-header p { margin:8px 0 0; max-width:650px; }
.admin-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:32px; align-items:start; }
.admin-directory,.admin-editor { min-width:0; }
.admin-editor { border-left:1px solid var(--line); padding-left:32px; }
.admin-editor h3 { margin:0 0 20px; }
.admin-editor-empty { padding:36px 0; }
.admin-filters>.field { margin-top:0; }
.admin-filter-selects { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-filters .decision-actions { margin:12px 0; justify-content:flex-start; }
.admin-result-count { font-size:.85rem; padding-bottom:10px; border-bottom:1px solid var(--line); }
.admin-user-item { display:flex; justify-content:space-between; align-items:start; gap:16px; width:100%; min-height:88px; padding:16px 12px; text-align:left; background:transparent; color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:8px; }
.admin-user-item:hover,.admin-user-item.is-selected { background:var(--accent-soft); }
.admin-user-identity { display:flex; flex-direction:column; gap:6px; min-width:0; overflow-wrap:anywhere; }
.admin-user-identity>span { color:var(--muted); font-size:.85rem; }
.admin-user-identity strong>small { font-weight:400; }
.admin-user-meta { display:flex; flex-direction:column; align-items:end; gap:8px; flex-shrink:0; font-size:.78rem; max-width:45%; text-align:right; }
.admin-inactive { background:#f1f5f9; color:#475569; }
.admin-roles { border:0; border-top:1px solid var(--line); margin:24px 0 0; padding:16px 0 0; min-width:0; }
.admin-roles legend { font-weight:600; padding:0 8px 0 0; }
.admin-roles .checkbox-row { align-items:start; margin:12px 0; }
.admin-roles .checkbox-row input { margin-top:5px; }
.admin-roles .checkbox-row small { display:block; color:var(--muted); font-size:.83rem; font-weight:400; margin-top:4px; }
.admin-roles p,#admin-password-help { font-size:.85rem; }
.admin-pagination { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:24px 0 8px; font-size:.85rem; }
@media(max-width:1000px) {
 .admin-layout { grid-template-columns:1fr; gap:28px; }
 .admin-editor { border-left:0; border-top:1px solid var(--line); padding:24px 0 0; }
 .admin-user-item { flex-wrap:wrap; }
 .admin-user-meta { align-items:start; text-align:left; max-width:100%; flex-direction:row; flex-wrap:wrap; }
}

.tools-panel{overflow-y:auto}.tools-tabs{margin:20px 0 28px;flex-wrap:wrap}.configuration-fields{border:0;padding:0;margin:0;min-width:0}.configuration-fields:disabled{opacity:.8}.configuration-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.configuration-section{padding:18px 0;border-bottom:1px solid var(--border-color,#e2e8f0);margin-bottom:16px}.configuration-section>.field{max-width:620px}.configuration-row{display:flex;gap:16px;align-items:end;margin:10px 0}.configuration-row .field{flex:1;min-width:0;margin:0}.configuration-row>.link-button{flex:none;min-height:44px}.configuration-types{margin:16px 0}.configuration-type{padding:14px 0;border-top:1px solid #e2e8f0}.configuration-type>summary{cursor:pointer;display:list-item;font-weight:600;line-height:1.8}.configuration-type>summary .badge{margin-left:12px}.configuration-save{position:sticky;bottom:0;display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--panel-bg,#fff);padding:20px 0 8px;border-top:1px solid #e2e8f0;margin-top:28px}.configuration-save>span{margin-right:auto}.knowledge-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.8fr);gap:32px}.knowledge-list{border-right:1px solid #e2e8f0;padding-right:24px}.knowledge-item{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;padding:16px 12px;background:transparent;border:0;border-bottom:1px solid #e2e8f0;color:inherit;border-radius:8px;cursor:pointer;overflow-wrap:anywhere}.knowledge-item span{font-size:.85em;color:#64748b}.knowledge-item.is-selected,.knowledge-item:hover{background:#eef2ff}.knowledge-edit{min-width:0}.knowledge-edit textarea{min-height:260px;resize:vertical}.knowledge-edit .checkbox-row{margin:16px 0;align-items:flex-start}.assistant-review{margin-top:36px;padding-top:28px;border-top:1px solid #dbe3f0}.review-observation{padding:22px 0;border-bottom:1px solid #e2e8f0}.review-observation h4{font-size:1rem;margin:10px 0}.review-observation p{line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.review-question{font-weight:500;color:#475569}.category-map-flex{display:flex!important;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;min-height:0;padding:24px}.category-map-flex .category-map-center,.category-map-flex .map-item{position:static!important;transform:none!important;flex:0 1 210px}.category-map-flex .category-map-center{flex-basis:100%;text-align:center;margin-bottom:12px}
@media(max-width:900px){.configuration-groups,.knowledge-layout{grid-template-columns:1fr;gap:20px}.knowledge-list{border-right:0;border-bottom:1px solid #e2e8f0;padding:0 0 20px}.knowledge-item{padding:14px 8px}.configuration-save{position:static}.tools-panel{padding:20px}.configuration-row{gap:8px}.configuration-row>.link-button{font-size:.85rem}.assistant-review .panel-header{flex-wrap:wrap;gap:12px}}

@media(max-width:900px){.room-code .link-button{white-space:normal}.room-current>div{min-width:0}.room-current h3{overflow-wrap:anywhere}}
