.training-workspace-screen { height: 100dvh; min-height: 0; overflow: hidden; }
.training-workspace-screen .app-shell { height: 100dvh; min-height: 0; overflow: hidden; }
.training-workspace-screen .app-workspace { height: 100dvh; min-height: 0; overflow: hidden; }
.training-workspace-screen .workspace-header { flex: 0 0 68px; }
.training-workspace-screen .app-content { flex: 0 0 calc(100dvh - 68px); height: calc(100dvh - 68px); min-height: 0; max-width: none; overflow: hidden; padding: 20px clamp(18px, 2.5vw, 36px) 24px; }
.training-workspace-screen .app-footer { display: none; }

.training-workspace { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.training-workspace-heading { display: flex; flex: 0 0 auto; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.training-workspace-heading > div:first-child { min-width: 0; }
.training-workspace-heading > div:first-child > span { display: block; margin-bottom: 3px; color: #89857e; font-size: .62rem; font-weight: 760; letter-spacing: .1em; text-transform: uppercase; }
.training-workspace-heading h1 { margin: 0; overflow: hidden; font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 790; letter-spacing: -.04em; text-overflow: ellipsis; white-space: nowrap; }
.training-workspace-heading p { margin: 4px 0 0; color: var(--cd-muted); font-size: .72rem; }
.training-heading-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.training-action { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; gap: 7px; padding: 8px 12px; border: 1px solid transparent; border-radius: 9px; font-family: inherit; font-size: .7rem; font-weight: 740; line-height: 1; text-decoration: none; cursor: pointer; }
.training-action.primary { background: var(--cd-orange); color: #fff; }
.training-action.primary:hover { background: var(--cd-orange-dark); color: #fff; }
.training-action.secondary { border-color: var(--cd-border); background: var(--cd-surface); color: #665f57; }
.training-action.approve { background: var(--cd-green); color: #fff; }
.training-action.full { width: 100%; }
.training-action:disabled { cursor: not-allowed; opacity: .48; }
.training-text-link { color: var(--cd-orange-dark); font-size: .67rem; font-weight: 720; text-decoration: none; }
.training-readiness, .session-status { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 999px; background: #eee7dd; color: #716960; font-size: .63rem; font-weight: 720; }
.training-readiness.ready, .session-status.approved { background: var(--cd-green-soft); color: #4d6b50; }
.session-status.review_ready { background: #fff0e4; color: #81491f; }
.training-back { display: block; width: max-content; margin-bottom: 7px; color: #6d6a63; font-size: .67rem; font-weight: 710; text-decoration: none; }

.training-panel, .composer-pane { min-height: 0; overflow: hidden; border: 1px solid var(--cd-border); border-radius: var(--cd-radius); background: var(--cd-surface); box-shadow: 0 3px 14px rgba(76, 58, 36, .035); }
.library-panel { display: flex; flex: 1; flex-direction: column; }
.library-filters { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid #eee5da; }
.library-filters input, .library-filters select, .composer-library-controls input, .composer-library-controls select, .session-details input, .session-details select, .session-details textarea { width: 100%; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; color: var(--cd-text); font: inherit; }
.library-filters input, .library-filters select { min-height: 38px; padding: 7px 10px; font-size: .7rem; }
.library-search { position: relative; flex: 1; max-width: 460px; }
.library-search i { position: absolute; top: 50%; left: 11px; color: #928a80; transform: translateY(-50%); }
.library-search input { padding-left: 32px; }
.library-count { margin-left: auto; color: var(--cd-muted); font-size: .65rem; white-space: nowrap; }
.library-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 15px; scrollbar-gutter: stable; }
.library-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); gap: 11px; }
.library-card { min-width: 0; padding: 14px; border: 1px solid #e9dfd3; border-radius: 12px; background: #fffdf9; }
.library-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #8d857c; font-size: .56rem; font-weight: 720; text-transform: uppercase; }
.library-type { color: var(--cd-orange-dark); }
.library-card h2 { margin: 9px 0 5px; font-size: .78rem; font-weight: 760; }
.library-card p { display: -webkit-box; min-height: 2.8em; margin: 0; overflow: hidden; color: var(--cd-muted); font-size: .65rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.library-card dl { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.library-card dl div { padding: 5px 7px; border-radius: 7px; background: #f3ece3; }
.library-card dt { color: var(--cd-muted); font-size: .5rem; text-transform: uppercase; }
.library-card dd { margin: 1px 0 0; font-size: .59rem; font-weight: 680; }
.training-empty, .selected-empty { display: grid; height: 100%; place-content: center; justify-items: center; gap: 7px; color: var(--cd-muted); text-align: center; }
.training-empty i, .selected-empty i { color: var(--cd-green); font-size: 1.5rem; }
.training-empty strong, .selected-empty strong { color: #5d615c; font-size: .74rem; }
.training-empty span, .selected-empty span { font-size: .63rem; }

.composer-heading { margin-bottom: 10px; }
.composer-message { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin-bottom: 9px; padding: 9px 12px; border-radius: 9px; font-size: .67rem; }
.composer-message.error { border: 1px solid #dfb6b8; background: var(--cd-red-soft); color: #7f3035; }
.composer-message.success { border: 1px solid #b9ceb5; background: var(--cd-green-soft); color: #416044; }
.program-quickstart { display: grid; flex: 0 0 auto; grid-template-columns: minmax(220px, .65fr) minmax(0, 2fr) auto; gap: 12px; align-items: center; margin-bottom: 11px; padding: 12px 14px; border: 1px solid #ead8c7; border-radius: var(--cd-radius); background: linear-gradient(120deg, #fffaf4, #f7f1e9); }
.program-quickstart-intro { min-width: 0; }
.program-quickstart-intro > span { color: var(--cd-orange-dark); font-size: .52rem; font-weight: 800; letter-spacing: .1em; }
.program-quickstart-intro h2 { margin: 3px 0 2px; font-size: .78rem; }
.program-quickstart-intro p, .program-preset-card p { margin: 0; color: var(--cd-muted); font-size: .58rem; line-height: 1.35; }
.program-preset-list { display: grid; grid-template-columns: repeat(3, minmax(155px, 1fr)); gap: 8px; }
.program-preset-card { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; align-items: center; padding: 9px 10px; border: 1px solid #e6d9ca; border-radius: 10px; background: #fffdf9; }
.program-preset-card > div { display: grid; min-width: 0; gap: 2px; }
.program-preset-card strong { overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.program-preset-card span { color: var(--cd-orange-dark); font-size: .51rem; font-weight: 680; }
.program-preset-card p { grid-column: 1 / -1; min-height: 2.7em; }
.program-preset-card .training-action { grid-column: 2; grid-row: 1; white-space: nowrap; }
.program-quickstart-actions { display: grid; gap: 7px; justify-items: stretch; }
.generated-program-brief { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid #d9e5d5; border-radius: var(--cd-radius); background: var(--cd-green-soft); }
.generated-program-brief > div { display: grid; gap: 2px; padding-right: 12px; border-right: 1px solid rgba(71, 99, 73, .16); }
.generated-program-brief > div:last-child { border-right: 0; }
.generated-program-brief .notes, .generated-program-brief .constraint { flex: 1 1 340px; }
.generated-program-brief span { color: #6a806a; font-size: .5rem; font-weight: 780; letter-spacing: .06em; text-transform: uppercase; }
.generated-program-brief strong { max-width: 620px; color: #455d48; font-size: .62rem; line-height: 1.35; }
.program-generation-layout { display: grid; flex: 1; grid-template-columns: minmax(250px, .72fr) minmax(390px, 1.08fr) minmax(270px, .72fr); min-height: 0; gap: 11px; overflow: hidden; }
.program-source-pane, .program-input-pane, .program-generation-summary { display: flex; flex-direction: column; }
.planner-source-scroll { display: grid; gap: 10px; }
.planner-source-card { padding: 11px; border: 1px solid #e9dfd3; border-radius: 10px; background: #fffdf9; }
.planner-source-card header { display: flex; align-items: center; gap: 8px; }
.planner-source-card header > i { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 8px; background: var(--cd-orange-soft); color: var(--cd-orange-dark); }
.planner-source-card header > div { display: grid; flex: 1; gap: 1px; }
.planner-source-card header strong { font-size: .68rem; }
.planner-source-card header span, .planner-source-card header em { color: var(--cd-muted); font-size: .54rem; font-style: normal; }
.planner-source-card.ready header em { color: var(--cd-green); font-weight: 740; }
.planner-source-card.attention header em { color: #98601f; font-weight: 740; }
.planner-source-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 10px 0 0; }
.planner-source-card dl div { min-width: 0; padding: 7px; border-radius: 7px; background: #f5efe7; }
.planner-source-card dl .wide { grid-column: 1 / -1; }
.planner-source-card dt { color: var(--cd-muted); font-size: .49rem; text-transform: uppercase; }
.planner-source-card dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: .59rem; font-weight: 680; }
.planner-source-card p { margin: 9px 0 0; color: var(--cd-muted); font-size: .59rem; line-height: 1.45; }
.planner-form-grid { grid-template-columns: 1fr 1fr; }
.planner-form-grid > label { display: grid; gap: 5px; }
.planner-form-grid > label.wide, .planner-days.wide { grid-column: 1 / -1; }
.planner-form-grid label > span, .planner-days legend { color: #6e6962; font-size: .59rem; font-weight: 720; }
.planner-form-grid input, .planner-form-grid select, .planner-form-grid textarea { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; color: var(--cd-text); font: inherit; font-size: .66rem; }
.planner-form-grid input[readonly] { background: #f3ece3; }
.planner-form-grid textarea { resize: vertical; }
.planner-form-grid > label > small, .planner-libraries > small { color: #817b73; font-size: .54rem; line-height: 1.4; }
.planner-days { min-width: 0; margin: 0; padding: 0; border: 0; }
.planner-days > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.planner-days label { display: flex; align-items: center; gap: 5px; padding: 7px; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; }
.planner-days input { width: auto; min-height: 0; }
.planner-days label span { overflow: hidden; font-size: .56rem; text-overflow: ellipsis; }
.planner-cycle > div { grid-template-columns: 1fr; }
.planner-cycle label span { display: grid; gap: 2px; }
.planner-cycle label strong { font-size: .61rem; }
.planner-cycle label small { color: #817b73; font-size: .54rem; font-weight: 500; }
.planner-warning { border: 1px solid #edd5ad; background: #fff7e8; color: #7d5b27; }
.planner-warning span { line-height: 1.4; }
.planner-warning strong { margin-right: 5px; }
.planner-result-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.planner-result-list li { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 8px; }
.planner-result-list i { color: var(--cd-orange-dark); font-size: 1rem; }
.planner-result-list div { display: grid; gap: 3px; }
.planner-result-list strong { font-size: .65rem; }
.planner-result-list span { color: var(--cd-muted); font-size: .58rem; line-height: 1.4; }
.process-note.neutral { background: #f3ece3; color: #6b645d; }
.planner-replace { margin: 0; border: 1px solid #edd5ad; background: #fff7e8; color: #7d5b27; line-height: 1.4; }
.planner-replace strong { display: block; }
.planner-submit { display: grid; flex: 0 0 auto; grid-template-columns: .75fr 1.25fr; gap: 7px; padding: 11px 13px; border-top: 1px solid #eee5da; }
.composer-layout { display: grid; flex: 1; grid-template-columns: minmax(260px, .9fr) minmax(300px, 1.1fr) minmax(270px, .78fr); min-height: 0; gap: 11px; overflow: hidden; }
.composer-pane { display: flex; flex-direction: column; }
.composer-pane-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; min-height: 58px; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #eee5da; }
.composer-pane-header span { display: block; margin-bottom: 2px; color: #968e84; font-size: .52rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.composer-pane-header h2 { margin: 0; font-size: .8rem; font-weight: 760; }
.composer-pane-header > strong { display: grid; min-width: 27px; height: 27px; place-items: center; border-radius: 999px; background: #f1e9df; color: #71685e; font-size: .63rem; }
.composer-library-controls { display: grid; flex: 0 0 auto; grid-template-columns: 1fr 1fr; gap: 7px; padding: 10px 12px; border-bottom: 1px solid #eee5da; }
.composer-library-controls label { position: relative; grid-column: 1 / -1; }
.composer-library-controls i { position: absolute; top: 50%; left: 10px; color: #948b80; transform: translateY(-50%); }
.composer-library-controls input, .composer-library-controls select { min-height: 34px; padding: 6px 8px; font-size: .63rem; }
.composer-library-controls input { padding-left: 30px; }
.composer-library-list, .selected-items, .details-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.composer-library-list { padding: 0 12px 8px; }
.picker-card { display: grid; grid-template-columns: minmax(0, 1fr) 30px; gap: 9px; align-items: center; padding: 11px 0; border-top: 1px solid #eee5da; }
.picker-card:first-child { border-top: 0; }
.picker-card[hidden] { display: none; }
.picker-card > div { display: grid; min-width: 0; gap: 2px; }
.picker-card span { color: var(--cd-orange-dark); font-size: .52rem; font-weight: 730; text-transform: uppercase; }
.picker-card strong { overflow: hidden; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.picker-card small { overflow: hidden; color: var(--cd-muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.picker-card button, .selected-actions button { display: grid; width: 28px; height: 28px; place-items: center; border: 0; border-radius: 8px; background: var(--cd-orange-soft); color: #7e411a; cursor: pointer; }
.picker-card.added { opacity: .5; }
.picker-card.added button { background: var(--cd-green-soft); color: #4d6b50; pointer-events: none; }
.selected-items { position: relative; padding: 0 13px 8px; }
.selected-item { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 12px 0; border-top: 1px solid #eee5da; }
.selected-item:first-of-type { border-top: 0; }
.drag-handle { color: #aaa197; }
.selected-item > div:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.selected-item small { color: var(--cd-orange-dark); font-size: .51rem; font-weight: 720; text-transform: uppercase; }
.selected-item strong { overflow: hidden; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.selected-item span:not(.drag-handle) { overflow: hidden; color: var(--cd-muted); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.selected-phase-list { display: grid; gap: 3px; margin: 7px 0 0; padding-left: 17px; color: #665f57; font-size: .55rem; line-height: 1.35; }
.selected-actions { display: flex; gap: 4px; }
.selected-actions button { width: 25px; height: 25px; background: #f1e9df; color: #756c62; font-size: .6rem; }
.selected-actions button:last-child { color: #8a4448; }
.selected-empty { position: absolute; inset: 0; padding: 20px; }
.selected-empty[hidden] { display: none; }
.session-details label { display: grid; gap: 5px; }
.session-details label > span { color: #6e6962; font-size: .59rem; font-weight: 720; }
.session-details label small { color: #989188; font-weight: 570; }
.details-scroll { display: grid; align-content: start; gap: 11px; padding: 13px 14px; }
.session-details input, .session-details select, .session-details textarea { min-height: 36px; padding: 7px 9px; font-size: .66rem; }
.session-details textarea { resize: vertical; }
.details-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.process-note { display: flex; gap: 8px; padding: 10px; border-radius: 9px; background: var(--cd-green-soft); color: #4d6550; }
.process-note i { flex: 0 0 auto; }
.process-note span { font-size: .59rem; line-height: 1.4; }
.process-note strong { display: block; margin-bottom: 2px; }
.composer-actions { display: grid; flex: 0 0 auto; grid-template-columns: 1fr 1.25fr; gap: 7px; padding: 11px 13px; border-top: 1px solid #eee5da; }

.session-status.active { background: var(--cd-green-soft); color: #456349; }
.session-status.completed { background: #e8efec; color: #45645b; }
.training-action.compact { min-height: 32px; padding: 6px 9px; font-size: .63rem; }
.program-builder-layout { display: grid; flex: 1; grid-template-columns: minmax(255px, .65fr) minmax(390px, 1fr) minmax(340px, .9fr); min-height: 0; gap: 11px; overflow: hidden; }
.program-details-pane, .program-blocks-pane, .program-schedule-pane { display: flex; flex-direction: column; }
.program-details-scroll { gap: 12px; }
.program-details-pane label { display: grid; gap: 5px; }
.program-details-pane label > span { color: #6e6962; font-size: .59rem; font-weight: 720; }
.program-details-pane label small { color: #989188; font-weight: 570; }
.program-details-pane input, .program-details-pane select, .program-details-pane textarea { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; color: var(--cd-text); font: inherit; font-size: .66rem; }
.program-details-pane textarea { resize: vertical; }
.program-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.program-summary > div { display: grid; gap: 3px; padding: 10px 6px; border-radius: 9px; background: #f3ece3; text-align: center; }
.program-summary strong { font-size: .82rem; }
.program-summary span { color: var(--cd-muted); font-size: .52rem; }
.program-block-list { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 13px 10px; scrollbar-gutter: stable; }
.program-block-card { display: grid; grid-template-columns: 30px minmax(0, 1fr) 92px 28px; gap: 9px; align-items: end; padding: 12px 0; border-top: 1px solid #eee5da; }
.program-block-card:first-child { border-top: 0; }
.program-block-number { display: grid; width: 28px; height: 28px; place-items: center; align-self: center; border-radius: 9px; background: var(--cd-green-soft); color: #4d6b50; font-size: .66rem; font-weight: 760; }
.program-block-fields { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(140px, 1.2fr); gap: 8px; }
.program-block-card label { display: grid; gap: 5px; }
.program-block-card label > span { color: #706a63; font-size: .55rem; font-weight: 720; }
.program-block-card input, .program-block-card select { width: 100%; min-height: 34px; padding: 6px 8px; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; color: var(--cd-text); font: inherit; font-size: .63rem; }
.program-block-dates { display: flex; grid-column: 2 / 4; align-items: center; justify-content: center; min-height: 30px; gap: 6px; padding: 5px 8px; border-radius: 8px; background: #f3ece3; color: #6d675f; font-size: .56rem; white-space: nowrap; }
.program-block-dates i { color: var(--cd-orange-dark); font-size: .55rem; }
.program-block-remove { display: grid; width: 27px; height: 27px; place-items: center; align-self: center; border: 0; border-radius: 8px; background: var(--cd-red-soft); color: #8a4448; cursor: pointer; }
.program-schedule-list { position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 13px 10px; scrollbar-gutter: stable; }
.program-schedule-card { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 12px 0; border-top: 1px solid #eee5da; }
.program-schedule-card:first-of-type { border-top: 0; }
.program-schedule-card label { display: grid; min-width: 0; gap: 5px; }
.program-schedule-card label > span { color: #706a63; font-size: .55rem; font-weight: 720; }
.program-schedule-card select { width: 100%; min-height: 34px; padding: 6px 8px; border: 1px solid var(--cd-border); border-radius: 8px; background: #fffdf9; color: var(--cd-text); font: inherit; font-size: .62rem; }
.program-schedule-card > label:nth-child(2) { grid-column: 1 / -1; grid-row: 1; padding-right: 87px; }
.program-schedule-card > label:first-child { grid-column: 1 / -1; grid-row: 2; }
.session-template-edit-link { grid-column: 1 / -1; width: max-content; color: var(--cd-orange-dark); font-size: .54rem; font-weight: 700; text-decoration: none; }
.program-schedule-row { display: grid; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; gap: 8px; }
.program-schedule-remove { position: absolute; top: 16px; right: 0; display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border: 0; border-radius: 7px; background: var(--cd-red-soft); color: #8a4448; font: inherit; font-size: .53rem; font-weight: 700; cursor: pointer; }
.program-schedule-empty { display: grid; min-height: 100%; place-content: center; justify-items: center; gap: 7px; padding: 22px; color: var(--cd-muted); text-align: center; }
.program-schedule-empty[hidden] { display: none; }
.program-schedule-empty i { color: var(--cd-green); font-size: 1.5rem; }
.program-schedule-empty strong { color: #5d615c; font-size: .74rem; }
.program-schedule-empty span { max-width: 280px; font-size: .62rem; line-height: 1.45; }
.program-schedule-empty .training-action { margin-top: 5px; }
.program-schedule-note { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 9px 13px; border-top: 1px solid #eee5da; background: var(--cd-green-soft); color: #4d6550; font-size: .57rem; line-height: 1.35; }
.program-builder-actions { display: flex; flex: 0 0 auto; justify-content: flex-end; gap: 8px; padding: 11px 13px; border-top: 1px solid #eee5da; }
.readonly-select { pointer-events: none; background: #f3ece3 !important; color: #67635d; }

.session-library-summary { justify-content: space-between; color: var(--cd-muted); font-size: .64rem; }
.session-library-summary strong { color: var(--cd-text); }
.session-template-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 11px; }
.session-template-card { display: flex; min-height: 230px; flex-direction: column; padding: 14px; border: 1px solid #e9dfd3; border-radius: 12px; background: #fffdf9; color: var(--cd-text); text-decoration: none; }
.session-template-card > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.session-template-card em { color: var(--cd-orange-dark); font-size: .56rem; font-style: normal; font-weight: 720; text-transform: uppercase; }
.session-template-card h2 { margin: 12px 0 5px; font-size: .8rem; }
.session-template-card p { margin: 0; color: var(--cd-muted); font-size: .63rem; }
.session-template-card ol { flex: 1; margin: 12px 0; padding-left: 19px; color: #665f57; font-size: .61rem; line-height: 1.55; }
.session-template-card footer { display: flex; align-items: center; justify-content: space-between; padding-top: 9px; border-top: 1px solid #eee5da; color: var(--cd-muted); font-size: .58rem; }

@media (max-width: 1120px) {
    .program-generation-layout { grid-template-columns: minmax(230px, .65fr) minmax(370px, 1fr); }
    .program-generation-summary { grid-column: 1 / -1; min-height: 330px; }
    .program-builder-layout { grid-template-columns: minmax(240px, .6fr) minmax(340px, .9fr) minmax(310px, .85fr); }
    .program-block-fields { grid-template-columns: 1fr; }
}

@media (max-width: 1050px) {
    .program-quickstart { grid-template-columns: 1fr; }
    .program-preset-list { grid-template-columns: repeat(3, 1fr); }
    .program-quickstart-actions { grid-template-columns: auto auto; align-items: center; justify-content: start; }
    .composer-layout { grid-template-columns: minmax(240px, .85fr) minmax(280px, 1fr); }
    .session-details { grid-column: 1 / -1; max-height: 300px; }
    .details-scroll { grid-template-columns: repeat(2, 1fr); }
    .process-note { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .training-workspace-screen { height: auto; overflow: auto; }
    .training-workspace-screen .app-shell, .training-workspace-screen .app-workspace { height: auto; overflow: visible; }
    .training-workspace-screen .app-content { height: auto; overflow: visible; }
    .training-workspace-heading { align-items: flex-start; flex-direction: column; }
    .composer-layout { display: flex; overflow: visible; flex-direction: column; }
    .composer-pane { min-height: 430px; }
    .session-details { max-height: none; }
    .details-scroll { grid-template-columns: 1fr; }
    .library-filters { align-items: stretch; flex-direction: column; }
    .library-search { max-width: none; }
    .library-count { margin-left: 0; }
    .program-builder-layout { display: flex; overflow: visible; flex-direction: column; }
    .program-generation-layout { display: flex; overflow: visible; flex-direction: column; }
    .program-source-pane, .program-input-pane, .program-generation-summary { min-height: 420px; }
    .planner-form-grid { grid-template-columns: 1fr; }
    .planner-form-grid > label.wide, .planner-days.wide { grid-column: auto; }
    .planner-days > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .program-quickstart-actions { grid-template-columns: 1fr; }
    .program-preset-list { grid-template-columns: 1fr; }
    .program-preset-card p { min-height: 0; }
    .program-details-pane, .program-blocks-pane, .program-schedule-pane { min-height: 440px; }
    .program-block-card { grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: start; }
    .program-block-fields, .block-duration, .program-block-dates { grid-column: 2; }
    .program-block-fields { grid-template-columns: 1fr; }
    .program-block-remove { grid-column: 3; grid-row: 1; }
}
