@font-face {
  font-family: "Idealist Sans";
  src: url("/fonts/IdealistSans-Regular.otf") format("opentype");
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: "Idealist Sans";
  src: url("/fonts/IdealistSans-Light.otf") format("opentype");
  font-weight: 300;
  font-display: swap;
}

:root {
  font-family: "Idealist Sans", "Helvetica Neue", Arial, sans-serif;
  color: #25292e;
  background: #f7f8f8;
  font-size: 16px;
  line-height: 1.45;
  --accent: #ff5670;
  --accent-soft: #fff1f3;
  --line: #e3e6e8;
  --muted: #667085;
  --surface: #fff;
}
body { min-width: 0; }
button, input, textarea, select { font-family: inherit; }
button, .button { font-weight: 400; transition: border-color .15s, background-color .15s, color .15s, transform .15s; }
button:hover, .button:hover { background: var(--accent-soft); border-color: #efb8c3; }
button:active, .button:active { transform: translateY(1px); }
button:disabled { transform: none; }
.primary { background: #ff5670; border-color: #ff5670; color: #fff; box-shadow: 0 7px 16px rgb(255 86 112 / 14%); }
.primary:hover { background: #ed435f; border-color: #ed435f; }
:focus-visible { outline: 3px solid #ff5670; outline-offset: 3px; }
a { color: #e34360; }
h1, h2, h3 { color: #25292e; overflow-wrap: anywhere; }
h1 { font-size: clamp(30px, 2.5vw, 39px); font-weight: 300; line-height: 1.12; letter-spacing: -.035em; }
h2 { font-size: clamp(22px, 1.7vw, 27px); font-weight: 400; line-height: 1.2; letter-spacing: -.02em; }
h3 { font-size: 19px; font-weight: 400; line-height: 1.25; }
p { overflow-wrap: anywhere; }
small, .muted { color: var(--muted); }
input:not([type=checkbox]), textarea, select { border-color: #d5dce0; border-radius: 10px; min-height: 48px; font-size: 16px; font-weight: 400; }
input:focus, textarea:focus, select:focus { border-color: #ff5670; outline: 3px solid rgb(255 86 112 / 13%); outline-offset: 0; }
input[type=checkbox] { accent-color: #ff5670; }
label { font-size: 15px; font-weight: 400; color: #343a40; min-width: 0; }
label small { font-size: 13px; line-height: 1.4; }
fieldset legend { font-size: 17px; font-weight: 400; }

.layout { grid-template-columns: 258px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; min-height: 640px; padding: 26px 17px 22px; gap: 32px; border-color: var(--line); box-shadow: 4px 0 28px rgb(26 34 42 / 2%); z-index: 5; }
.sidebar-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { display: flex; align-items: center; gap: 11px; color: #ff5670; font-size: 26px; font-weight: 400; letter-spacing: -.04em; line-height: 1; white-space: nowrap; }
.brand small { display: block; margin-top: 5px; color: #667085; font-family: "Idealist Sans", Arial, sans-serif; font-size: 12px; line-height: 1.1; letter-spacing: 0; }
.brand-mark { display: block; flex: none; width: 37px; height: 37px; object-fit: contain; }
.sidebar-toggle { display: none; }
.sidebar nav { gap: 4px; }
.sidebar nav button { min-height: 48px; justify-content: flex-start; text-align: left; padding: 11px 15px; color: #4e5660; border-radius: 10px; font-size: 16px; font-weight: 400; line-height: 1.2; }
.sidebar nav button:hover { background: #fff9fa; color: #25292e; }
.sidebar nav button.active { background: #fff1f3; color: #d43f5b; box-shadow: inset 3px 0 #ff5670; }
.side-note { margin-top: auto; padding: 16px 12px 0; border-top: 1px solid var(--line); color: #4d5964; font-size: 13px; line-height: 1.4; }
.side-note small { display: block; margin: 4px 0 0 15px; font-size: 12px; }
.status-dot { display: inline-block; flex: none; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: #ff5670; vertical-align: middle; }
.workspace { min-width: 0; }
.topbar { min-height: 78px; padding: 13px clamp(24px, 3vw, 48px); gap: 24px; border-color: var(--line); }
.topbar-context { display: grid; gap: 1px; min-width: 0; }
.topbar-context strong { font-size: 18px; font-weight: 400; overflow-wrap: anywhere; }
.eyebrow { font-size: 12px; color: #df405e; letter-spacing: .06em; text-transform: uppercase; }
.topbar-account { display: flex; align-items: center; gap: 18px; min-width: 0; }
.topbar-account p { text-align: right; line-height: 1.2; min-width: 0; }
.topbar-account strong { display: block; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-account small { display: block; margin-top: 4px; font-size: 12px; }
.topbar-account button { min-height: 40px; }
.content { max-width: 1620px; padding: 28px clamp(24px, 3vw, 48px) 64px; gap: 24px; }
.content > * { min-width: 0; }
.notice { display: flex; align-items: flex-start; gap: 3px; padding: 11px 16px; border: 1px solid #f3d5db; border-radius: 10px; background: #fff4f6; color: #784554; font-size: 14px; line-height: 1.4; }
.notice .status-dot { margin-top: 6px; }
.message:not(:empty) { border: 1px solid #f1bdc8; border-left: 4px solid #ff5670; border-radius: 10px; background: #fff6f8; padding: 13px 16px; }
.heading { gap: 20px; align-items: flex-end; min-width: 0; }
.heading > div { min-width: 0; }
.heading p { max-width: 74ch; margin-top: 7px; font-size: 15px; line-height: 1.45; }
.heading .actions { justify-content: flex-end; }
.actions { min-width: 0; gap: 9px; }
.actions > * { max-width: 100%; }
.panel { gap: 20px; padding: clamp(20px, 2vw, 30px); border-color: var(--line); border-radius: 16px; box-shadow: 0 5px 18px rgb(27 38 48 / 2.5%); }
.panel .panel { background: #fafbfb; box-shadow: none; }
.grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 255px), 1fr)); gap: 18px; }
.speaker-card { border-radius: 16px; border-color: var(--line); box-shadow: 0 5px 18px rgb(27 38 48 / 3%); min-width: 0; }
.card-photo { height: 195px; background: linear-gradient(180deg, #fff2f4 0%, #f7f8f8 100%); }
.card-photo img { padding: 10px 12px 0; object-position: center bottom; }
.card-body { display: flex; flex-direction: column; align-items: flex-start; padding: 18px 20px 20px; gap: 10px; }
.card-body h2 { font-size: 21px; font-weight: 400; }
.card-body p { flex: 1; color: #64707c; font-size: 14px; line-height: 1.42; }
.card-body button { width: 100%; margin-top: 8px; }
.badge { display: inline-flex; flex: none; align-self: flex-start; width: auto; max-width: 100%; border-radius: 20px; background: #fff1f3; padding: 5px 10px; color: #cf405b; font-size: 12px; line-height: 1.2; white-space: normal; }
.edit-grid { grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); gap: 24px; }
.edit-grid > * { min-width: 0; }
.edit-grid aside { position: sticky; top: 24px; gap: 12px; }
.portrait { width: 100%; height: 250px; max-height: none; background: #fff0f3; border-radius: 12px; object-position: center bottom; }
.tabs { display: flex; flex-wrap: wrap; gap: 7px; overflow: visible; padding-bottom: 2px; }
.tabs button { min-height: 44px; border: 0; border-bottom: 2px solid transparent; border-radius: 8px 8px 0 0; background: transparent; color: #5f6872; white-space: normal; }
.tabs button.active { border-color: #ff5670; background: #fff1f3; color: #d43f5b; }
.tabs button:hover { background: #fff0f3; }
.fields { gap: 18px 22px; }
.speaker-list-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,280px); gap:18px 22px; align-items:start; }
@media(max-width:760px) { .speaker-list-filters { grid-template-columns:minmax(0,1fr); } }
.check { display: flex; width: fit-content; max-width: 100%; align-items: center; gap: 9px; padding: 6px 0; }
.check input { flex: none; }
.checks { gap: 9px 18px; }
.user-row { gap: 32px; }
.user-row > div { min-width: 0; }
.user-row .stack { flex: 1; max-width: 680px; }
.user-row .checks { margin-top: 4px; }
.table-scroll { overflow: auto; }
.table-scroll table { min-width: 620px; font-size: 15px; }
.table-scroll th { color: #59636f; background: #fafbfb; font-weight: 400; white-space: nowrap; }
.table-scroll td, .table-scroll th { padding: 14px 16px; vertical-align: top; }
.login { width: calc(100% - 32px); max-width: 490px; margin: min(10vh, 90px) auto; padding: clamp(24px, 4vw, 40px); gap: 20px; box-shadow: 0 24px 55px rgb(27 38 48 / 7%); }
.login .brand { display: block; }
.login h1 { font-size: 36px; }

/* Product workspace: short overview first, detailed fields only inside named sections. */
.site-sections { display: flex; flex-wrap: wrap; gap: 5px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: #fff; width: fit-content; max-width: 100%; }
.site-sections button { border: 0; min-height: 42px; padding: 9px 14px; color: #59636f; white-space: nowrap; }
.site-sections button.active { background: #fff1f3; color: #d43f5b; }
.site-sections button:not(.active):hover { background: #f7f8f8; }
.site-list { display: grid; gap: 20px; }
.site-list-toolbar { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 14px; }
.site-list-toolbar label { width: min(100%, 420px); }
.site-list-toolbar p { color: var(--muted); font-size: 14px; }
.product-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-width: 0; padding: 21px; }
.product-card h3 { font-size: 21px; }
.product-card p { color: #667085; font-size: 14px; line-height: 1.4; }
.product-card .product-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; }
.product-card button { margin-top: auto; }
.product-head { display: flex; justify-content: space-between; align-items: start; gap: 10px; width: 100%; }
.product-head code { font-size: 12px; color: #667085; background: #f5f6f7; border-radius: 6px; padding: 4px 6px; white-space: nowrap; }
.editor-form { gap: 0; padding: 0; overflow: hidden; }
.editor-form > .editor-intro { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 24px 28px; border-bottom: 1px solid var(--line); }
.editor-form > .editor-intro p { margin-top: 7px; color: var(--muted); }
.editor-form > fieldset { display: grid; gap: 0; }
.editor-section { border-bottom: 1px solid var(--line); background: #fff; min-width: 0; }
.editor-section:last-of-type { border-bottom: 0; }
.editor-section summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; padding: 20px 28px; list-style: none; font-size: 20px; line-height: 1.25; }
.editor-section summary::-webkit-details-marker { display: none; }
.editor-section summary::after { content: "⌄"; color: #ff5670; font-size: 25px; line-height: 1; transform: rotate(0deg); transition: transform .15s; }
.editor-section[open] summary::after { transform: rotate(180deg); }
.editor-section summary:hover { background: #fff9fa; }
.editor-section summary small { margin-left: auto; font-size: 13px; white-space: nowrap; }
.editor-section-content { display: grid; gap: 18px; padding: 0 28px 28px; }
.editor-section-content > p { color: var(--muted); font-size: 14px; }
.editor-section-content .panel { padding: 18px; }
.editor-section-content .fields { margin: 0; }
.editor-form .save-bar { position: sticky; bottom: 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 15px 28px; border-top: 1px solid var(--line); background: rgb(255 255 255 / 96%); backdrop-filter: blur(8px); z-index: 2; }
.save-bar p { color: var(--muted); font-size: 14px; }
.speaker-picker { display: grid; gap: 12px; }
.speaker-picker-tools { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; }
.speaker-picker-tools label { flex: 1 1 270px; max-width: 460px; }
.speaker-picker-count { color: #59636f; font-size: 14px; }
.speaker-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; max-height: 270px; overflow: auto; padding: 8px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbfb; }
.speaker-choice-list .check { width: 100%; min-width: 0; padding: 8px 2px; font-size: 14px; line-height: 1.3; }
.speaker-choice-list .check span { min-width: 0; overflow-wrap: anywhere; }
.speaker-choice-list .check small { display: block; margin-top: 1px; font-size: 12px; }
.speaker-choice-list .check:has(input:checked) { color: #d43f5b; }
.speaker-choice-list .check:hover { background: #fff0f3; border-radius: 6px; }
.speaker-picker-empty { display: none; color: var(--muted); font-size: 14px; }
.speaker-picker-empty.is-visible { display: block; }
.builder-form { overflow: visible; background: transparent; border: 0; box-shadow: none; }
.builder-form > .editor-intro { margin-bottom: 20px; padding: 0; border: 0; }
.archival-import-notice{margin-bottom:20px;overflow-wrap:anywhere}
.builder-form > fieldset { display: block; }
.builder-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); align-items: start; gap: 24px; }
.builder-nav { position: sticky; top: 96px; display: grid; gap: 5px; }
.builder-nav button { display: flex; justify-content: flex-start; gap: 12px; padding: 12px; min-height: 48px; border: 0; text-align: left; color: #59636f; background: transparent; }
.builder-nav button span { display: grid; flex: none; place-items: center; width: 25px; height: 25px; border: 1px solid #d5dce0; border-radius: 50%; font-size: 12px; font-variant-numeric: tabular-nums; }
.builder-nav button.active { color: #d43f5b; background: #fff1f3; }
.builder-nav button.active span { color: #fff; background: #ff5670; border-color: #ff5670; }
.builder-nav > p { padding: 14px; margin-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.5; }
.builder-main { min-width: 0; }
.builder-step { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 14px; scroll-margin-top: 20px; }
.builder-step-head { padding-bottom: 20px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.builder-step-head h2 { margin: 5px 0 8px; }
.builder-step-head p { color: var(--muted); }
.builder-step-content { display: grid; gap: 18px; }
.builder-step-content > p { color: var(--muted); font-size: 14px; }
.builder-step-content > .panel { background: #fafbfb; padding: 18px; }
.builder-step-content .checks { margin-top: 4px; }
.builder-footer { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0; }
.builder-form .save-bar { position: sticky; bottom: 0; margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 22px rgb(37 41 46 / 8%); }
.builder-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.builder-check-grid > div { display: grid; gap: 3px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.builder-check-grid strong { font-size: 17px; font-weight: 400; overflow-wrap: anywhere; }
.builder-check-grid small { font-size: 12px; }
.builder-check-warning { color: #9d4d35; }
.builder-check-success { color: #3b6b58; }
#builder-check-issues ul { margin: 4px 0 0; padding-left: 22px; color: #70535b; line-height: 1.65; }

@media (max-width: 1180px) {
  .layout { grid-template-columns: 222px minmax(0, 1fr); }
  .sidebar { padding-inline: 12px; }
  .edit-grid { grid-template-columns: minmax(0, 1fr) 245px; gap: 16px; }
  .content { padding-inline: 24px; }
}
@media (max-width: 900px) {
  .builder-layout { grid-template-columns: 180px minmax(0,1fr); gap: 16px; }
  .edit-grid { grid-template-columns: 1fr; }
  .edit-grid aside { position: static; display: grid; grid-template-columns: 130px 1fr; align-items: start; }
  .edit-grid aside .portrait { grid-row: span 4; height: 150px; }
  .edit-grid aside p { margin: 0; }
  .speaker-choice-list { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .builder-layout { display: block; }
  .builder-nav { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; gap: 6px; margin-bottom: 16px; padding-bottom: 5px; }
  .builder-nav button { white-space: normal; padding: 9px 11px; font-size: 13px; line-height: 1.25; }
  .builder-nav > p { display: none; }
  .builder-step { padding: 19px; }
  .builder-form .save-bar { position: static; }
  .builder-form > .editor-intro { padding: 0; }
  .layout { display: block; }
  .sidebar { position: relative; top: auto; height: auto; min-height: 0; padding: 14px 16px; gap: 10px; }
  .brand { font-size: 23px; }
  .brand-mark { width: 34px; height: 34px; font-size: 20px; }
  .sidebar-toggle { display: inline-flex; min-height: 42px; padding: 8px 12px; font-size: 14px; }
  .sidebar nav { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding-top: 8px; }
  .sidebar.is-open nav { display: grid; }
  .sidebar nav button { min-height: 44px; padding: 9px 11px; font-size: 14px; }
  .side-note { display: none; }
  .topbar { min-height: 60px; padding: 10px 16px; }
  .topbar-context .eyebrow { display: none; }
  .topbar-context strong { font-size: 15px; }
  .topbar-account { gap: 8px; }
  .topbar-account p { display: none; }
  .topbar-account button { min-height: 38px; padding: 7px 11px; }
  .content { padding: 18px 16px 48px; gap: 20px; }
  .heading { align-items: flex-start; flex-direction: column; }
  .heading .actions { justify-content: flex-start; }
  .panel { padding: 18px; }
  .notice { font-size: 13px; }
  .fields { grid-template-columns: 1fr; }
  .edit-grid aside { display: grid; }
  .tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tabs button { padding: 8px; min-height: 43px; text-align: center; }
  .site-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .site-sections button { white-space: normal; padding: 8px; }
  .site-sections button:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .editor-form > .editor-intro { flex-direction: column; padding: 20px 18px; }
  .editor-form > .editor-intro .heading { width: 100%; }
  .editor-section summary { padding: 17px 18px; font-size: 18px; }
  .editor-section summary small { display: none; }
  .editor-section-content { padding: 0 18px 22px; }
  .editor-form .save-bar { padding: 12px 18px; }
  .table-scroll { margin-inline: 0; }
  .user-row { flex-direction: column; }
  .user-row .stack { max-width: 100%; width: 100%; }
  .login { margin: 24px auto; }
}
@media (max-width: 420px) {
  .topbar-context strong { max-width: 155px; }
  .actions button, .actions .button { min-height: 42px; }
  .edit-grid aside { grid-template-columns: 90px 1fr; }
  .edit-grid aside .portrait { height: 105px; }
  .product-head { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  button, .button, .editor-section summary::after { transition: none; }
}
.speaker-card .speaker-status{background:#f4f5f6;color:#68727c;margin-top:auto;margin-bottom:12px;font-size:12px;white-space:normal}.speaker-card .speaker-direction-label{display:block;margin:0 0 10px;line-height:1.4}.speaker-card .card-body>p{margin-bottom:18px}
.edit-grid .fields{align-items:start}.edit-grid label{align-content:start}.edit-grid .tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:5px;scrollbar-width:thin}.edit-grid .tabs button{flex-shrink:0;white-space:nowrap}
.speaker-product-list{display:grid;gap:16px}.speaker-product{min-width:0;border:1px solid #e3e6e8;border-radius:14px;padding:20px}.speaker-product h3,.speaker-product code{overflow-wrap:anywhere}.speaker-product .heading{margin-bottom:12px;flex-wrap:wrap}.speaker-product[hidden]{display:none}.speaker-product .actions{flex-wrap:wrap}@media(max-width:600px){.speaker-product{padding:14px}.speaker-product .actions>*{width:100%}}
.field-help{display:block;margin-top:7px;color:var(--muted,#667085);line-height:1.5}.field-label{display:block;margin-bottom:10px}.attached-photo{position:relative;display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #e3e6e8;border-radius:14px;background:#fafbfb;margin-bottom:8px;flex-wrap:wrap}.attached-photo img{width:76px;height:90px;object-fit:contain;background:#fff1f4;border-radius:9px}.attached-photo>div{flex:1;min-width:140px;overflow-wrap:anywhere}.attached-photo strong,.attached-photo small{display:block}.attached-photo a{font-size:14px;color:#ff5670}.upload-button{cursor:pointer;white-space:nowrap}.upload-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0;overflow:hidden;clip-path:inset(50%)}.attached-photo:focus-within{outline:2px solid #ff5670;outline-offset:3px}.credential-list{display:grid;gap:12px;margin:20px 0}.credential-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;border:1px solid #e3e6e8;padding:16px;border-radius:12px}.credential-row>span{padding-top:30px;color:#ff5670}.credential-actions{grid-column:2;display:flex;gap:8px;flex-wrap:wrap}.credential-input textarea{min-height:80px}.speaker-custom-editor{padding:20px;border:1px solid #e3e6e8;border-radius:14px;margin:16px 0;display:grid;gap:14px}.speaker-review{padding:22px 0;border-bottom:1px solid #e3e6e8}.speaker-review p{white-space:pre-wrap;overflow-wrap:anywhere}.speaker-direction-label{color:#ff5670!important;font-size:15px}.seo-preview{padding:20px;border:1px solid #e3e6e8;border-radius:12px}.seo-preview strong{display:block;color:#35448c;font-size:20px;margin:8px 0}.seo-preview p{margin:0;color:#667085}.fields>div{min-width:0}.speaker-custom-editor .heading{margin:0}@media(max-width:600px){.credential-row{padding:12px;grid-template-columns:20px minmax(0,1fr)}.attached-photo{padding:12px}.speaker-custom-editor{padding:14px}}
/* Structured product content and shared asset bank. */
/* Linked lessons retain the approved builder controls and mobile column. */
.product-speaker-mode {border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:20px;display:grid;gap:12px;background:#fff3f6}
.product-speaker-mode .check {font-size:17px}
.product-speaker-mode p,.product-speaker-mode small {font-size:14px;line-height:1.5;color:var(--muted)}
#product-speaker-settings {display:grid;gap:10px}
.speaker-choice-list input[type=radio] {width:18px;height:18px;min-height:0;padding:0;accent-color:#ff5670}
.lesson-link-picker {margin:18px 0 24px;min-width:0}
.lesson-link-state {padding:16px;background:#fff3f6;border-radius:14px;overflow-wrap:anywhere}
.lesson-link-state strong,.lesson-link-state small {display:block;line-height:1.5}
.lesson-link-state small {margin-top:6px}
.lesson-link-state code {display:block;color:var(--muted);font-size:12px;margin-top:6px}
.lesson-picker {margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.lesson-picker > summary {cursor:pointer;color:#ff5670;font-weight:600;overflow-wrap:anywhere}
.lesson-filter-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.lesson-query {grid-column:1/-1}
.lesson-filter-summary {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0}
.lesson-filter-summary p {margin:0;font-size:14px}
.lesson-options {display:grid;gap:10px;max-height:380px;overflow-y:auto;overscroll-behavior:contain}
.lesson-options button {height:auto;display:block;text-align:left;padding:16px;white-space:normal;overflow-wrap:anywhere}
.lesson-options button[aria-pressed=true] {border-color:#ff5670;background:#fff3f6}
.lesson-options button strong,.lesson-options button span,.lesson-options button small,.lesson-options button code {display:block;line-height:1.5}
.lesson-options button strong {font-size:16px;font-weight:500;margin-bottom:4px}
.lesson-options button small,.lesson-options button code {font-size:12px;color:var(--muted)}
.lesson-options [hidden],.lesson-tariff[hidden],.lesson-picker [data-lesson-empty][hidden] {display:none!important}
.lesson-link-actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
[data-program] input[readonly],[data-program] textarea[readonly] {background:#f5f6f7;color:#525d68}
@media(max-width:600px){.lesson-filter-grid {grid-template-columns:minmax(0,1fr)}.lesson-link-actions button {width:100%;white-space:normal}.lesson-picker,.lesson-link-state {padding:12px}}
.builder-block {border-top:1px solid #e2e5e8;padding-top:24px;margin-top:28px;min-width:0}
.builder-block > summary {cursor:pointer;color:#25292e;padding-bottom:12px;font-weight:600}
.builder-block > summary h3 {display:inline;font-size:20px}
.builder-row {background:#fafafb;border:1px solid #e2e5e8;border-radius:18px;padding:20px;margin:16px 0;min-width:0}
.builder-row .heading {align-items:center;gap:12px;margin-bottom:16px}
.builder-row textarea {margin-bottom:8px}
.asset-picker {border:1px solid #e2e5e8;border-radius:14px;padding:14px;margin:14px 0;background:white;min-width:0}
.asset-picker summary {cursor:pointer;font-weight:600;color:#ff5075;overflow-wrap:anywhere}
.asset-picker label {margin-top:14px}
.picker-options {max-height:310px;overflow:auto;margin-top:14px;display:grid;gap:8px}
.picker-options button {text-align:left;height:auto;white-space:normal;overflow-wrap:anywhere;display:block;padding:14px}
.picker-options small,.selected-asset small,.library-card small {display:block;line-height:1.5}
.picker-options .check {flex-wrap:wrap;align-items:flex-start;padding:12px;margin:0;background:#fafafb;border-radius:12px}
.picker-options .check small {width:100%;margin-left:28px}
.selected-asset {display:flex;align-items:center;gap:16px;padding:14px;background:#fff3f6;border-radius:14px;min-width:0}
.selected-asset img {width:80px;height:80px;object-fit:contain;border-radius:10px;background:white}
.selected-asset > div {min-width:0;overflow-wrap:anywhere}
.selected-asset code,.library-card code {font-size:12px;overflow-wrap:anywhere;white-space:normal}
.product-address {overflow-wrap:anywhere;word-break:break-word}
.recommendation-chips {display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.recommendation-chips span {background:#fff3f6;border-radius:10px;padding:10px;font-size:14px;overflow-wrap:anywhere}
.library-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:18px;margin:24px 0}
.library-card {display:flex;flex-direction:column;gap:12px;min-width:0}
.library-card h3 {font-size:18px;margin:0}
.library-card img {height:160px;width:100%;object-fit:contain;background:#fff3f6;border-radius:14px}
.library-card video {width:100%;max-height:180px}
.video-icon {display:grid;place-items:center;background:#fff3f6;color:#ff5075;height:160px;border-radius:14px}
.library-upload {max-width:720px;padding-top:24px;border-top:1px solid #e2e5e8}
.library-upload label {display:block;margin:16px 0}
.media-upload-button {position:relative;overflow:hidden;text-align:center;border:1px dashed #ff5075;border-radius:14px;padding:20px;color:#ff5075;cursor:pointer}
.media-upload-button input {position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.library-dialog {width:min(720px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid #e2e5e8;border-radius:24px;padding:24px}
.library-dialog::backdrop {background:rgba(35,40,45,.45)}
input[type="datetime-local"] {min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:600px){.builder-row {padding:14px}.selected-asset {align-items:flex-start;gap:10px}.selected-asset img {width:56px;height:56px}.library-dialog {padding:18px}.builder-row .heading {flex-wrap:wrap}}
.dependency-editor,.catalog-dependency-map{min-width:0;overflow-wrap:anywhere}
.dependency-editor{margin-bottom:26px;background:#fff8fa;border:1px solid var(--line);border-radius:16px;padding:20px}
.dependency-editor h3,.dependency-detail-head h3{font-size:21px;line-height:1.35;margin:12px 0}
.dependency-editor p,.catalog-dependency-map p{font-size:15px;line-height:1.6}
.dependency-editor small{display:block;color:var(--muted);font-size:13px;line-height:1.55}
.dependency-editor summary,.dependency-indirect summary{cursor:pointer;padding:12px 0;font-weight:600}
.dependency-map-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:28px;margin-top:24px;align-items:start}
.dependency-picker,.dependency-editor-detail,#catalog-dependency-detail{min-width:0}
.dependency-search-tools{display:grid;gap:14px}
.dependency-results{max-height:560px;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:8px;padding:2px}
.dependency-results article{display:grid;gap:5px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;min-width:0}
.dependency-results button{display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:6px;width:100%;min-width:0;white-space:normal;border:0;background:transparent;padding:8px}
.dependency-results button strong{font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.dependency-results small{font-size:13px;line-height:1.5;color:var(--muted)}
.dependency-results [data-dependency-action=choose]{background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:14px}
.dependency-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.dependency-columns h4,.dependency-notes h4{font-size:17px;line-height:1.4;margin:18px 0 12px}
.dependency-items{padding:0;margin:0;list-style:none;display:grid;gap:10px}
.dependency-item{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;min-width:0}
.dependency-item>div{flex:1;min-width:0}
.dependency-item [data-dependency-action=view]{border:0;background:transparent;padding:0;text-align:left;font-size:15px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.dependency-item small{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:6px}
.dependency-item [data-site=edit]{padding:8px;font-size:13px;flex:none;min-height:36px}
.dependency-notes{border-left:3px solid var(--accent);padding-left:16px;margin:20px 0}
.dependency-notes li{font-size:14px;line-height:1.6;margin:10px 0;overflow-wrap:anywhere}
.product-dependency-summary{color:var(--muted);font-size:13px!important;line-height:1.5!important}
@media(max-width:1000px){.dependency-map-layout{grid-template-columns:1fr}.dependency-results{max-height:300px}}
@media(max-width:700px){.dependency-columns{grid-template-columns:1fr;gap:12px}.dependency-editor{padding:16px}.dependency-item{flex-wrap:wrap}.dependency-item>div{flex-basis:100%}.dependency-editor h3,.dependency-detail-head h3{font-size:19px}}

/* Builder forms: independent field heights, deliberate spacing and stable rows. */
.fields{align-items:start}
label{align-content:start;align-self:start}
.builder-form input:not([type=checkbox]):not([type=radio]),.builder-form select{height:48px;min-height:48px;line-height:1.3}
.builder-form textarea{min-height:112px;line-height:1.55}
.builder-form .fields>label{margin:0;gap:9px}
.builder-form .fields>label small{margin:0}
.builder-form [name=summary]{min-height:132px}
.builder-step-content>*,.builder-step-content label,.builder-row,.offer-includes-editor{min-width:0}
.builder-form .builder-block,.builder-form #builder-content,.seo-group,.paid-participation-settings{display:grid;gap:18px;align-content:start}
.builder-form #builder-content{background:#fff;border:0;padding:22px 0 0;border-top:1px solid var(--line);box-shadow:none}
.builder-form #builder-content>.field-help{margin-top:-10px;font-size:13px;line-height:1.6}
.builder-form details.builder-block{display:block;padding:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.builder-form details.builder-block>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;list-style:none;cursor:pointer;background:#fafbfc;margin:0}
.builder-form details.builder-block>summary::-webkit-details-marker{display:none}
.builder-form details.builder-block>summary:before{content:'+';font-size:22px;color:var(--accent);flex:none;width:20px;text-align:center}
.builder-form details.builder-block[open]>summary:before{content:'−'}
.builder-form details.builder-block>summary h3{margin:0;font-size:19px;line-height:1.4}
.builder-form details.builder-block>summary~*{margin:18px 20px;max-width:calc(100% - 40px)}
.builder-form details.builder-block small{display:block;line-height:1.6}
.builder-form details.builder-block>button{margin-top:4px;margin-bottom:18px}
#builder-extras{display:grid;gap:18px}
.builder-row{display:grid;gap:16px;padding:18px;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.builder-row .heading{align-items:center;flex-wrap:wrap;gap:12px}
.builder-row .heading>button{flex:none}
.builder-row .heading>strong{font-size:16px}
.asset-selection{display:grid;gap:16px;align-content:start}
.asset-selection>button{justify-self:start}
.asset-picker{display:grid;gap:14px;min-width:0}
.asset-picker>summary{padding:14px!important;line-height:1.5!important}
.asset-picker[open]>label,.asset-picker[open]>.picker-filter-grid,.asset-picker[open]>.picker-options{margin-top:16px}
.picker-options label.check{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:8px 12px;padding:14px;line-height:1.5}
.picker-options label.check small{grid-column:2}
.picker-options label.check input{margin-top:3px}
.picker-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.access-settings{display:grid;gap:14px;align-content:start;align-self:start;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff8fa}
.access-settings h3{font-size:16px}
.builder-form .check{align-items:flex-start;line-height:1.5;gap:10px}
.builder-form .check input{flex:none;margin:3px 0 0}
#site-program{display:grid;gap:18px}
.program-editor-card{display:grid!important;gap:18px!important;margin:0!important;padding:20px!important;border:1px solid var(--line);background:#fafbfc!important}
.program-editor-card>strong{font-size:19px}
.program-editor-card .lesson-link-picker{min-width:0;display:grid;gap:14px}
.program-editor-card .lesson-link-state{margin:0}
.program-editor-card>button{justify-self:start}
.lesson-link-actions{display:flex;gap:12px;flex-wrap:wrap}
.lesson-filter-grid{align-items:start}
.lesson-options button{white-space:normal;text-align:left;min-width:0}
.lesson-options code,.dependency-item code{white-space:nowrap;flex:none}
.builder-form [data-offer]{display:grid;gap:20px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.offer-includes-editor{display:grid;gap:14px}
.offer-includes-editor h3{font-size:17px}
.offer-include-rows{display:grid;gap:14px}
.offer-include-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.offer-include-row>button{height:48px;margin:0}
.offer-includes-editor>button,.builder-form .subtle-button{justify-self:start}
.technical-field{font-size:13px;color:var(--muted)}
.technical-field>summary{cursor:pointer;padding:8px 0}
.technical-field>label{margin-top:12px}
.paid-participation-settings{padding:20px;border:1px solid #f1d4dc;border-radius:12px;background:#fff8fa}
[data-paid-settings],.paid-offer-list{display:grid;gap:20px}
[data-paid-settings]>button{justify-self:start}
.faq-intro{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:24px}
.faq-intro>button{justify-self:start}
.builder-form [data-faq]{background:#fafbfc;border:1px solid var(--line);padding:20px;gap:18px}
.seo-group{padding-top:24px;border-top:1px solid var(--line)}
.seo-group h3{font-size:20px}
.seo-preview{display:grid;gap:10px;padding:20px;background:#fafbfc;border:1px solid var(--line);border-radius:12px;overflow-wrap:anywhere}
.seo-preview>strong{font-size:20px;color:#35365b}
.seo-preview>button{justify-self:start;margin-top:8px}
.product-filter-toolbar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px!important;align-items:start!important}
.product-filter-toolbar label{width:100%;max-width:none}
.product-filter-toolbar>*{min-width:0}
.product-speaker-filter{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;align-content:start}
.product-speaker-filter>label:first-child{grid-column:1;grid-row:1}
.product-speaker-filter>input{grid-column:1;grid-row:2}
.product-speaker-filter>label[for=product-speaker-filter]{grid-column:2;grid-row:1}
.product-speaker-filter>select{grid-column:2;grid-row:2}
.product-speaker-filter>p{grid-column:1/-1;margin:0;font-size:13px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.product-filter-toolbar input,.product-filter-toolbar select{width:100%;min-width:0}
.product-filter-toolbar>button{justify-self:start}
.product-filter-toolbar>p{justify-self:end;align-self:center}
@media(min-width:1500px){.builder-layout{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:900px){.builder-form .fields,.picker-filter-grid{grid-template-columns:1fr}.builder-form .wide{grid-column:auto}}
@media(max-width:600px){.product-filter-toolbar{grid-template-columns:1fr}.product-filter-toolbar>p{justify-self:start}.builder-step{padding:18px 16px}.program-editor-card,.builder-form [data-offer]{padding:16px!important}.builder-form details.builder-block>summary{padding:16px}.builder-form details.builder-block>summary~*{margin:16px;max-width:calc(100% - 32px)}.offer-include-row{grid-template-columns:1fr}.offer-include-row>button{justify-self:start;height:auto;min-height:38px}.asset-selection>button{width:100%}.paid-participation-settings{padding:16px}}
@media(max-width:600px){.product-speaker-filter{grid-template-columns:1fr}.product-speaker-filter>*{grid-column:1!important;grid-row:auto!important}.product-speaker-filter>label[for=product-speaker-filter]{margin-top:4px}}
