:root {
  --ink: #10231d;
  --muted: #5f6f69;
  --paper: #f5f7f3;
  --surface: #ffffff;
  --surface-soft: #edf3ee;
  --line: #d6e0d9;
  --line-strong: #afc0b6;
  --green: #12654d;
  --green-dark: #0a4937;
  --lime: #d9ef91;
  --gold: #c78d24;
  --danger: #a43d3d;
  --warning: #8a5a00;
  --shadow: 0 14px 40px rgba(16, 35, 29, 0.07);
  --shadow-small: 0 6px 20px rgba(16, 35, 29, 0.06);
  --radius: 16px;
}

/* Library filters and file detail workspace */
.library-table-controls {
  flex-wrap: wrap;
  align-items: end;
}
.library-table-filter {
  display: grid;
  gap: .28rem;
  min-width: 10.5rem;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 750;
}
.library-table-filter .input { min-height: 2.65rem; }
.file-material-page .container { max-width: 1180px; }
.file-material-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.4rem;
  margin: 1rem 0 1.5rem;
  padding: clamp(1.35rem, 3vw, 2.2rem);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(135deg, var(--surface), var(--surface-soft));
}
.file-material-hero-icon {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border-radius: 18px;
  background: #dfeee5;
  color: var(--green);
}
.file-material-hero h1 { max-width: 22ch; margin: .2rem 0 .45rem; overflow-wrap: break-word; font-size: clamp(2.25rem, 5vw, 4.4rem); line-height: .98; text-wrap: balance; }
.file-material-hero p { max-width: 68ch; color: var(--muted); }
.file-material-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin: 1rem 0 .7rem; color: var(--muted); font-size: .88rem; }
.file-material-workspace { display: grid; gap: 1.25rem; }
.file-material-downloads, .file-material-editor { border-radius: 20px; }
.file-material-editor { position: static; }
.file-material-editor form { display: grid; gap: 1rem; }
.file-material-editor .danger-zone { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.file-material-editor .danger-zone summary { cursor: pointer; color: var(--muted); font-weight: 750; }
.file-material-editor .danger-zone form { margin-top: .8rem; }
@media (max-width: 850px) {
  .file-material-workspace { grid-template-columns: 1fr; }
  .file-material-editor { position: static; }
}
@media (max-width: 620px) {
  .file-material-hero { grid-template-columns: 1fr; border-radius: 18px; }
  .file-material-download { align-items: start; flex-wrap: wrap; }
  .file-material-download .actions { width: 100%; }
}
.course-content-preview-dialog { width: min(900px, calc(100vw - 2rem)); height: min(760px, calc(100vh - 2rem)); padding: 0; overflow: hidden; border: 0; border-radius: 20px; background: var(--surface); box-shadow: 0 28px 90px rgba(5, 34, 26, .28); }
.course-content-preview-dialog::backdrop { background: rgba(6, 29, 23, .58); }
.course-content-preview-dialog > header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); }
.course-content-preview-dialog > header h2 { margin: .15rem 0 0; }
.course-content-preview-dialog > header button { width: 2.5rem; height: 2.5rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); cursor: pointer; }
.course-content-preview-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.course-content-preview-dialog iframe { display: block; width: 100%; height: 100%; min-height: 0; border: 0; background: var(--paper); }
.embedded-exercise-preview { min-height: 100vh; padding: clamp(1rem, 4vw, 2.5rem); background: var(--paper); }
.embedded-exercise-preview main { max-width: 760px; margin: 0 auto; }
.embedded-exercise-preview header { margin-bottom: 1rem; }
.embedded-exercise-preview header > span { margin-right: .55rem; }
.embedded-exercise-preview h1 { margin: .65rem 0 0; }
.embedded-exercise-prompt { margin: .8rem 0 1.25rem; font-size: 1.05rem; line-height: 1.65; }
.embedded-answer-area { display: grid; gap: .7rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.embedded-answer-area > label { display: flex; gap: .7rem; padding: .85rem; border: 1px solid var(--border); border-radius: 12px; }
.embedded-answer-placeholder { padding: 1.2rem; border: 1px dashed var(--border-strong); border-radius: 12px; color: var(--muted); }
.embedded-booking-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: .55rem; }
.embedded-exercise-preview main > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; color: var(--muted); }

@media (max-width: 720px) {
  .rich-sum-fields { grid-template-columns: 1fr 2.5rem 1fr; }
  .rich-sum-expression { grid-column: 1 / -1; }
  .rich-image-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rich-formula-element { grid-template-columns: 1fr auto; }
  .rich-formula-element-label { grid-column: 1 / -1; }
  .rich-editor-block.is-image .rich-editor-block-body { grid-template-columns: 1fr; }
  .rich-editor-block.is-image .rich-editor-field-row,
  .rich-editor-block.is-image .rich-image-settings,
  .rich-editor-block.is-image .rich-image-editor-preview,
  .rich-editor-block.is-image .rich-editor-wide-field { grid-column: 1; grid-row: auto; }
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: auto; }
body { display: flex; min-height: 100vh; min-height: 100dvh; margin: 0; flex-direction: column; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; line-height: 1.6; }
main { flex: 1 0 auto; }
a { color: var(--green); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
h1, h2, h3 { margin: 0.3em 0; font-family: Georgia, "Times New Roman", serif; line-height: 1.13; }
h1 { font-size: clamp(2.25rem, 5vw, 4.6rem); letter-spacing: -0.04em; }
h2 { font-size: clamp(1.55rem, 3vw, 2.35rem); }
h3 { font-size: 1.25rem; }
pre { max-width: 100%; overflow: auto; padding: 12px; border-radius: 10px; background: #10231d; color: #e6f4eb; white-space: pre-wrap; }
code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
small, .fine-print { display: block; color: var(--muted); }

.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.narrow-content { max-width: 820px; }
.page, .section { padding: 54px 0; }
.section + .section { padding-top: 10px; }
.skip-link { position: absolute; top: -100px; left: 20px; z-index: 100; padding: 10px; background: #fff; }
.skip-link:focus { top: 10px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

.site-announcements { display: grid; position: relative; z-index: 21; }
.site-announcement { display: flex; min-height: 2.8rem; align-items: center; justify-content: center; gap: .65rem; padding: .65rem 1rem; border: 1px solid transparent; color: #44340c; text-align: center; }
.site-announcement strong { font-size: .84rem; line-height: 1.35; }
.site-announcement-marker { display: grid; flex: 0 0 1.35rem; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; background: var(--announcement-accent, #634c0d); color: #fff; font-size: .75rem; font-weight: 900; }
.site-announcement.is-warning { --announcement-accent: #634c0d; border-color: #e3c65f; background: #fff0ad; color: #634c0d; }
.site-announcement.is-danger { --announcement-accent: #872c2c; border-color: #df9d9d; background: #ffe1df; color: #872c2c; }
.site-announcement.is-info { --announcement-accent: #245a78; border-color: #9bbfd7; background: #e2f2fc; color: #245a78; }
.site-announcement.is-success { --announcement-accent: #236441; border-color: #9bc7aa; background: #def1e4; color: #236441; }
.site-header { position: sticky; top: 0; z-index: 20; height: 76px; border-bottom: 1px solid var(--line); background: rgba(247, 250, 246, 0.94); backdrop-filter: blur(12px); }
.nav { display: flex; height: 100%; align-items: center; justify-content: space-between; }
.brand { color: var(--ink); font: 700 1.5rem Georgia, serif; }
.brand:hover { text-decoration: none; }
.brand-mark { display: inline-grid; width: 36px; height: 36px; margin-right: 8px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; }
.nav-links { display: flex; align-items: center; gap: 20px; }
.nav-links > a, .link-button { color: var(--ink); font-weight: 700; }
.nav-toggle { display: none; }
.inline-form { display: inline; }
.link-button { padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.link-button:hover { color: var(--green); text-decoration: underline; }
.badge { padding: 1px 7px; border-radius: 99px; background: var(--lime); }

.hero { padding: 90px 0 80px; background: radial-gradient(circle at 75% 10%, #e8f3c7 0, transparent 35%), linear-gradient(155deg, #f7faf1, #eaf3ec); }
.hero-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; align-items: center; gap: 70px; }
.hero h1 em { color: var(--green); font-style: normal; }
.lead { max-width: 760px; color: var(--muted); font-size: 1.18rem; }
.eyebrow { color: var(--green); font-size: 0.76rem; font-weight: 850; letter-spacing: 0.14em; text-transform: uppercase; }
.trust-row, .meta-row, .quick-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; color: var(--muted); }
.quick-links { margin: 18px 0 30px; }
.quick-links a { font-weight: 700; }
.actions, .editor-actions, .secondary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 22px 0; }
.page-heading, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.section-heading.small { margin-top: 32px; margin-bottom: 14px; }

.button { display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid var(--green); border-radius: 12px; background: var(--green); color: #fff; font: inherit; font-weight: 780; cursor: pointer; }
.button:hover { background: var(--green-dark); text-decoration: none; }
.button.ghost { background: transparent; color: var(--green); }
.button.ghost:hover { background: #e9f3ed; }
.button.small { padding: 8px 13px; border-radius: 9px; }
.button.large { padding: 15px 24px; }
.button.danger { border-color: var(--danger); background: var(--danger); }
.icon-button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 8px; background: #e9efeb; font-size: 1.35rem; cursor: pointer; }

.panel, .card, .hero-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.panel, .card { padding: 24px; }
.panel.subtle { background: var(--surface-soft); box-shadow: none; }
.hero-card { padding: 28px; transform: rotate(1deg); }
.card-label { color: var(--muted); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.booking-line { display: flex; justify-content: space-between; gap: 18px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.validation-ok { display: grid; gap: 2px; margin-top: 18px; padding: 13px 15px; border-radius: 12px; background: #daf0e2; color: var(--green-dark); }
.validation-ok span { color: #42695a; font-size: 0.87rem; }
.product-status-notice { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: .85rem; align-items: start; margin: 0 0 1.25rem; padding: 1rem 1.1rem; border: 1px solid; border-radius: 14px; }
.product-status-notice > span { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: 50%; background: var(--notice-accent, #654e0f); color: #fff; font-weight: 900; }
.product-status-notice strong { display: block; margin: .05rem 0 .25rem; }
.product-status-notice p { margin: 0; line-height: 1.55; }
.product-status-notice.is-warning { --notice-accent: #654e0f; border-color: #dfc363; background: #fff6cf; color: #654e0f; }
.product-status-notice.is-danger { --notice-accent: #842f2f; border-color: #dda2a2; background: #fff0ef; color: #842f2f; }
.pricing-preliminary-notice { margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.section.tinted { background: #edf4ef; }
.feature-number { color: var(--green); font: 700 1rem Georgia, serif; }
.card-grid, .feature-grid, .report-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card { transition: transform 0.18s ease, box-shadow 0.18s ease; }
.card:hover { transform: translateY(-3px); box-shadow: 0 22px 58px rgba(24, 55, 44, 0.13); }
.two-columns, .auth-layout, .editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.editor-grid { grid-template-columns: minmax(0, 1.5fr) 340px; }
.stack { display: grid; gap: 12px; }
.list-card { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--ink); }
a.list-card:hover { border-color: #a8c8b7; text-decoration: none; }
.empty-inline { padding: 20px; border: 1px dashed #b7c7bd; border-radius: 13px; color: var(--muted); text-align: center; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.span-2 { grid-column: span 2; }
.field { display: grid; align-content: start; gap: 6px; margin-bottom: 14px; }
.field label, label { font-weight: 720; }
.input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #becdc4; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; }
.input.compact { min-width: 8rem; padding: .45rem .6rem; }
.compact-actions { gap: .35rem; align-items: flex-end; }
.danger-text { color: #a43232; }
.code-block { max-height: 32rem; overflow: auto; padding: 1rem; border-radius: .75rem; background: #13251f; color: #e8f4ed; }
textarea.input, .input.tall { min-height: 150px; resize: vertical; }
.input:focus { outline: 3px solid rgba(20, 107, 82, 0.16); border-color: var(--green); }
.field-error { color: var(--danger); font-size: 0.88rem; font-weight: 650; }
.filter-bar, .search-large { display: flex; align-items: end; gap: 10px; margin: 22px 0 30px; }
.filter-bar .input { max-width: 260px; }
.search-filters { margin: 22px 0 38px; }
.copy-field { margin: 18px 0; }

.alerts { padding-top: 14px; }
.alert { padding: 13px 16px; border: 1px solid #bad7ca; border-radius: 11px; background: #e7f4ed; }
.alert.danger { border-color: #e2baba; background: #fae5e5; color: var(--danger); }
.alert.warning { border-color: #ead19c; background: #fff3d5; color: var(--warning); }
.pill, .tag, .status { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 99px; background: #e5eee8; color: #365449; font-size: 0.78rem; font-weight: 760; }
.pill.soft { background: #f0f2e4; }
.tag { margin: 2px; }
.status.complete { background: #d9f1e3; color: #176243; }
.status.partial { background: #fff0cb; color: #805b00; }
.status.unclassified { background: #f6dddd; color: #8f3535; }

.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.stats > div { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.stats strong { display: block; color: var(--green-dark); font: 700 1.75rem Georgia, serif; }
.stats span { color: var(--muted); }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: #eef4ef; color: #425b51; font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.report-row { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.report-row.total { margin-top: 5px; border-top: 2px solid var(--ink); font-weight: 800; }
.legend dt { margin-top: 12px; font-weight: 800; }
.legend dd { margin-left: 0; color: var(--muted); }

.line-editor { display: grid; gap: 9px; }
.line-row { display: grid; grid-template-columns: minmax(220px, 1.2fr) repeat(2, minmax(100px, 0.55fr)) repeat(5, minmax(120px, 0.7fr)) 40px; gap: 8px; align-items: center; }
.line-row.header { color: var(--muted); font-size: 0.74rem; font-weight: 750; text-transform: uppercase; }
.amount { text-align: right; }
.solution-form { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.editor-actions { justify-content: space-between; }
.exercise-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) 340px; gap: 34px; }
.case-text { margin: 26px 0; padding: 24px; border-left: 5px solid var(--gold); background: #fff; font: 1.22rem/1.65 Georgia, serif; }
.sticky { position: sticky; top: 100px; }

.t-account-form { display: grid; gap: 22px; }
.t-account-intro { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.t-account-intro h2 { font-size: 1.55rem; }
.t-account-intro p { max-width: 390px; margin: 0; color: var(--muted); }
.t-account-workflow { display: flex; flex-wrap: wrap; gap: 8px; }
.t-account-workflow span { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 99px; background: var(--surface-soft); color: #425b51; font-size: 0.78rem; font-weight: 700; }
.t-account-workflow b { display: inline-grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: 0.7rem; }
.t-account-message { min-height: 1.5em; margin: -10px 0 0; color: var(--green-dark); font-size: 0.86rem; font-weight: 700; }
.t-account-message.error { color: var(--danger); }
.t-account-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.t-account { display: flex; min-width: 0; margin: 0; padding: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); box-shadow: 0 9px 28px rgba(24, 55, 44, 0.06); }
.t-account-heading { display: grid; grid-template-columns: minmax(0, 1fr) 38px; align-items: start; gap: 9px; padding: 12px; background: linear-gradient(180deg, #fff, #fbfdfb); }
.t-account-select { display: grid; min-width: 0; gap: 5px; }
.t-account-index { color: var(--muted); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.t-account-select .input { width: 100%; font-weight: 750; }
.t-account-select .input:disabled { opacity: 1; background: #f3f7f4; color: var(--ink); cursor: default; }
.t-account-lock { color: var(--green); font-size: 0.7rem; font-weight: 750; }
.t-account-lock::before { content: "•"; margin-right: 5px; }
.t-account-lock[hidden] { display: none; }
.t-account-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); flex: 1; border-top: 3px solid var(--ink); }
.t-account-side { display: flex; min-width: 0; min-height: 220px; padding: 10px; flex-direction: column; gap: 9px; }
.t-account-credit { border-left: 2px solid var(--ink); }
.t-account-side-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.t-account-side-label { color: var(--muted); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.t-account-side-heading output { color: var(--muted); font-size: 0.7rem; font-weight: 750; white-space: nowrap; }
.t-account-side.has-postings .t-account-side-heading output { color: var(--ink); }
.t-posting-list { display: grid; align-content: start; gap: 8px; flex: 1; }
.t-posting-empty { margin: 12px 0; color: #86958f; font-size: 0.74rem; text-align: center; }
.t-posting-row { display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 7px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.t-posting-row.is-origin { box-shadow: 0 5px 16px rgba(24, 55, 44, 0.05); }
.t-posting-row.is-mirror { background: var(--surface-soft); }
.t-posting-counter { grid-column: 1 / -1; min-width: 0; }
.t-posting-counter .input { width: 100%; min-width: 0; padding: 8px; font-size: 0.76rem; }
.t-posting-amount { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px; color: var(--muted); }
.t-posting-amount .input { width: 100%; min-width: 0; padding: 8px; font-size: 0.82rem; }
.t-posting-row .icon-button { width: 32px; height: 36px; align-self: end; }
.t-posting-mirror-account { grid-column: 1 / -1; overflow: hidden; font-size: 0.76rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.t-posting-mirror-value { align-self: center; font-size: 0.82rem; }
.t-posting-mirror-note { grid-column: 1 / -1; color: var(--green); font-size: 0.66rem; font-weight: 750; }
.t-account-add-entry { min-height: 38px; padding: 6px 8px; border: 1px dashed #9eb4a7; border-radius: 9px; background: transparent; color: var(--green); font: inherit; font-size: 0.76rem; font-weight: 800; cursor: pointer; }
.t-account-add-entry:hover:not(:disabled) { border-color: var(--green); background: #f0f7f2; }
.t-account-add-entry:disabled { opacity: 0.48; cursor: not-allowed; }
.t-account-actions { margin-bottom: 0; }

.account-picker-control { position: relative; min-width: 0; width: 100%; }
.account-picker-native {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  margin: -1px;
  padding: 0;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}
.account-picker-trigger {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 56px;
  grid-template-columns: 34px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid #aebfb5;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.account-picker-trigger:hover:not(:disabled) { border-color: var(--green); background: #f7fbf8; }
.account-picker-trigger:focus-visible,
.account-picker-native:focus-visible + .account-picker-trigger { outline: 3px solid rgba(20, 107, 82, 0.16); border-color: var(--green); }
.account-picker-trigger:disabled { opacity: 1; background: #f3f7f4; cursor: default; }
.account-picker-trigger-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--surface-soft); color: var(--green); font-size: 1.1rem; font-weight: 900; }
.account-picker-trigger.has-value .account-picker-trigger-icon { background: var(--green); color: #fff; }
.account-picker-trigger-copy { min-width: 0; }
.account-picker-trigger-copy strong,
.account-picker-trigger-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-picker-trigger-copy strong { font-size: .94rem; line-height: 1.3; }
.account-picker-trigger-copy small { margin-top: 2px; font-size: .7rem; }
.account-picker-chevron { color: var(--muted); font-size: 1rem; text-align: center; }
.t-posting-counter .account-picker-trigger { min-height: 48px; grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 7px; padding: 7px 8px; }
.t-posting-counter .account-picker-trigger-icon { width: 28px; height: 28px; }
.t-posting-counter .account-picker-trigger-copy strong { font-size: .76rem; }
.t-posting-counter .account-picker-trigger-copy small { font-size: .62rem; }

.account-picker-dialog { width: min(720px, calc(100% - 32px)); max-width: none; max-height: min(820px, calc(100dvh - 32px)); padding: 0; overflow: hidden; border: 0; border-radius: 18px; background: #fff; color: var(--ink); box-shadow: 0 28px 90px rgba(10, 35, 27, .28); }
.account-picker-dialog::backdrop { background: rgba(9, 29, 23, .58); backdrop-filter: blur(3px); }
.account-picker-shell { display: grid; max-height: min(820px, calc(100dvh - 32px)); grid-template-rows: auto auto minmax(0, 1fr) auto; }
.account-picker-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px 17px; border-bottom: 1px solid var(--line); }
.account-picker-header h2 { margin: 2px 0 4px; font-size: 1.8rem; }
.account-picker-header p { margin: 0; color: var(--muted); font-size: .86rem; }
.account-picker-search { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 14px 20px; background: #f6f9f6; border-bottom: 1px solid var(--line); }
.account-picker-search > span { color: var(--green); font-size: 1.35rem; font-weight: 900; text-align: center; }
.account-picker-search .input { min-height: 48px; font-size: 1rem; }
.account-picker-search small { min-width: 68px; text-align: right; }
.account-picker-results { overflow: auto; padding: 8px 20px 22px; overscroll-behavior: contain; }
.account-picker-group { padding-top: 15px; }
.account-picker-group h3 { position: sticky; top: -8px; z-index: 1; margin: 0; padding: 8px 4px 7px; background: rgba(255,255,255,.96); color: var(--green-dark); font: 850 .72rem/1.3 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.account-picker-options { display: grid; gap: 6px; }
.account-picker-option { display: grid; width: 100%; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid transparent; border-radius: 11px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.account-picker-option:hover:not(:disabled), .account-picker-option:focus-visible { border-color: #a9c8b8; background: #f1f7f3; outline: none; }
.account-picker-option.selected { border-color: var(--green); background: #edf7f1; }
.account-picker-option:disabled { opacity: .56; cursor: not-allowed; }
.account-picker-number { color: var(--green-dark); font: 800 .82rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.account-picker-option-copy { min-width: 0; }
.account-picker-option-copy strong, .account-picker-option-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-picker-option-copy strong { font-size: .94rem; }
.account-picker-option-copy small { font-size: .69rem; }
.account-picker-option-state { padding: 3px 7px; border-radius: 99px; background: #f3eee2; color: #77591c; font-size: .63rem; font-weight: 800; white-space: nowrap; }
.account-picker-option-state.selected { background: #d9eee2; color: var(--green-dark); }
.account-picker-empty { display: grid; gap: 4px; margin-top: 18px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: 13px; color: var(--muted); text-align: center; }
.account-picker-empty strong { color: var(--ink); }
.account-picker-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--line); background: #fbfcfb; }
.account-picker-footer [hidden] { display: none; }

.result-hero { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; padding: 24px; border-radius: var(--radius); }
.result-hero.success { background: #dff2e7; }
.result-hero.needs-work { background: #fff0c9; }
.result-icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: #fff; font-size: 2rem; }
.rule-list, .rule-list ul, .account-tree { padding-left: 0; list-style: none; }
.rule-result { display: flex; gap: 12px; padding: 12px 0; }
.rule-result > span { display: grid; flex: 0 0 27px; height: 27px; place-items: center; border-radius: 50%; background: #e7eee9; }
.rule-result.pass > span { background: #d8f0e1; color: var(--green); }
.rule-result.fail > span { background: #fae0e0; color: var(--danger); }

.editor-tabs { display: flex; overflow-x: auto; gap: 4px; border-bottom: 1px solid var(--line); }
.editor-tabs button { padding: 13px 16px; border: 0; background: none; font: inherit; font-weight: 750; white-space: nowrap; cursor: pointer; }
.editor-tabs button.active { border-bottom: 3px solid var(--green); color: var(--green); }
.editor-form { border-top-left-radius: 0; }
[data-tab-panel][hidden] { display: none; }
.variable-row { display: grid; grid-template-columns: minmax(100px, 0.8fr) minmax(130px, 1fr) repeat(3, minmax(100px, 1fr)) 40px; gap: 8px; margin: 10px 0; }
.rule-row { display: grid; grid-template-columns: minmax(115px, 0.8fr) minmax(110px, 0.8fr) minmax(110px, 0.9fr) minmax(90px, 0.6fr) minmax(100px, 0.75fr) minmax(75px, 0.55fr) minmax(70px, 0.45fr) 40px; gap: 8px; margin: 10px 0; }
.review-box { padding: 22px; border-radius: 14px; background: #f0f5f1; }
.bulk-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.account-tree ul { margin-left: 24px; padding-left: 18px; border-left: 1px solid var(--line); }
.account-tree li { padding: 6px; }

.learning-path { display: grid; gap: 12px; margin: 25px 0 45px; }
.path-unit { display: grid; grid-template-columns: 42px 1fr; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.path-unit.nested { margin-left: 44px; }
.path-unit.locked { opacity: 0.68; background: #eef1ee; }
.path-marker { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 800; }
.organization-heading { display: flex; align-items: center; gap: 20px; }
.organization-logo { width: 74px; height: 74px; border: 1px solid var(--line); border-radius: 16px; object-fit: contain; background: #fff; }
.management-section { margin-top: 36px; }
.audit-event { padding: 15px 20px; }
.audit-event summary { cursor: pointer; }
.pagination { display: flex; justify-content: center; gap: 24px; margin: 25px 0; }

.exam-bar { position: sticky; top: 76px; z-index: 10; display: flex; justify-content: space-between; padding: 14px 20px; border-radius: 0 0 14px 14px; background: var(--ink); color: #fff; }
.exam-paper { max-width: 900px; margin: 30px auto; }
.exam-question { margin: 20px 0; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.empty-state { max-width: 680px; margin: 10vh auto; padding: 36px; text-align: center; }
.error-code { color: var(--green); font: 700 5rem Georgia, serif; }

footer { margin-top: auto; padding: 50px 0; background: var(--ink); color: #dfe8e2; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 30px; }
.footer-grid > div { display: flex; flex-direction: column; gap: 7px; }
.footer-grid a { color: #dfe8e2; }
hr { margin: 24px 0; border: 0; border-top: 1px solid var(--line); }

@media (max-width: 980px) {
  .text-editor-layout { grid-template-columns: 1fr; }
  .text-live-preview { position: static; order: -1; }
  .line-row { grid-template-columns: minmax(200px, 1fr) repeat(2, 110px) 40px; }
  .line-row > :nth-child(n + 5):not(:last-child) { grid-column: span 2; }
  .rule-row, .variable-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rule-row .icon-button, .variable-row .icon-button { grid-column: 2; justify-self: end; }
  .t-account-editor { grid-template-columns: 1fr; }
}

@media (max-width: 850px) {
  .nav-toggle { display: block; border: 0; background: none; font-size: 1.5rem; }
  .nav-links { position: absolute; top: 76px; right: 0; left: 0; display: none; flex-direction: column; align-items: flex-start; padding: 20px; border-bottom: 1px solid var(--line); background: #fff; }
  .nav-links.open { display: flex; }
  .hero-grid, .auth-layout, .two-columns, .editor-grid, .exercise-layout, .report-grid { grid-template-columns: 1fr; }
  .hero { padding: 55px 0; }
  .hero-card { transform: none; }
  .card-grid, .feature-grid { grid-template-columns: 1fr; }
  .sticky { position: static; }
  .footer-grid { grid-template-columns: 1fr; }
  .page-heading, .section-heading { align-items: flex-start; flex-direction: column; }
  .t-account-intro { align-items: flex-start; flex-direction: column; }
  .t-account-intro p { max-width: none; }
}

@media (max-width: 600px) {
  .container { width: min(100% - 24px, 1180px); }
  .page { padding: 34px 0; }
  .form-grid, .stats { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .filter-bar, .search-large { align-items: stretch; flex-direction: column; }
  .filter-bar .input { max-width: none; }
  .line-row { grid-template-columns: 1fr 1fr 36px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
  .line-row.header { display: none; }
  .line-row select { grid-column: span 3; }
  .line-row > :nth-child(n + 4):not(:last-child) { grid-column: span 3; }
  .solution-form { padding: 16px; }
  .t-account-form { gap: 18px; }
  .t-account-workflow { display: grid; grid-template-columns: 1fr; }
  .t-account-workflow span { border-radius: 10px; }
  .t-account-heading { padding: 10px; }
  .t-account-side { min-height: 205px; padding: 8px; }
  .t-posting-row { padding: 7px; }
  .t-account-actions { align-items: stretch; flex-direction: column-reverse; }
  .t-account-actions .button { justify-content: center; width: 100%; }
  .variable-row, .rule-row { grid-template-columns: 1fr; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
  .variable-row .icon-button, .rule-row .icon-button { grid-column: 1; }
  .path-unit.nested { margin-left: 18px; }
  .panel, .card { padding: 18px; }
  .exam-bar { align-items: flex-start; flex-direction: column; }
}

/* Goal-based onboarding */
.onboarding-choice { width: min(720px, calc(100vw - 28px)); padding: 0; border: 0; border-radius: 20px; color: var(--ink); box-shadow: 0 30px 90px rgba(8, 31, 24, .3); }
.onboarding-choice::backdrop { background: rgba(8, 25, 20, .72); backdrop-filter: blur(2px); }
.onboarding-choice-card { padding: clamp(1.3rem, 4vw, 2.3rem); }
.onboarding-choice-card h2 { margin: .35rem 0 .55rem; font-size: clamp(1.65rem, 4vw, 2.35rem); }
.onboarding-choice-card > p { margin: 0; color: var(--muted); }
.onboarding-role-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin: 1.5rem 0 1rem; }
.onboarding-role-grid button { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.onboarding-role-grid button:hover, .onboarding-role-grid button:focus-visible { border-color: var(--green); background: #f1f8f4; box-shadow: 0 0 0 3px rgba(15, 116, 88, .12); outline: 0; }
.onboarding-role-grid button > span:nth-child(2) { display: grid; gap: .2rem; }
.onboarding-role-grid small { color: var(--muted); line-height: 1.35; }
.onboarding-role-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .8rem; background: #e4f2ea; color: var(--green-dark); font-weight: 900; }
.onboarding-role-icon.is-teacher { background: #efeafb; color: #60479a; }
.onboarding-later { display: block; margin: .5rem auto 0; }
.onboarding-tour { position: fixed; z-index: 10000; inset: 0; }
.onboarding-mask { position: fixed; z-index: 1; background: rgba(7, 25, 19, .76); }
.onboarding-spotlight { position: fixed; z-index: 2; border: 3px solid #fff; border-radius: 14px; box-shadow: 0 0 0 4px rgba(56, 174, 128, .86), 0 0 0 9999px rgba(7, 25, 19, .76), 0 12px 35px rgba(0, 0, 0, .22); pointer-events: none; transition: inset .2s ease, width .2s ease, height .2s ease, border-radius .2s ease; }
.onboarding-popover { position: fixed; z-index: 3; width: min(390px, calc(100vw - 24px)); padding: 1.15rem; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .3); }
.onboarding-popover:focus { outline: 0; }
.onboarding-popover-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; color: var(--muted); font-size: .78rem; font-weight: 750; }
.onboarding-popover-top button { display: grid; place-items: center; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #edf2ef; color: var(--ink); font-size: 1.25rem; cursor: pointer; }
.onboarding-popover h2 { margin: .35rem 0 .45rem; font-size: 1.4rem; }
.onboarding-popover p { margin: 0; color: var(--muted); line-height: 1.55; }
.onboarding-popover-actions { display: flex; justify-content: space-between; gap: .7rem; margin-top: 1rem; }
.onboarding-popover-actions .button:last-child { margin-left: auto; }
.onboarding-popover-actions [hidden] { display: none; }
body.onboarding-active { overflow: hidden; }
.context-tour-help {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 84; display: inline-flex; align-items: center; gap: .45rem;
  border: 1px solid var(--line); border-radius: 999px; padding: .58rem .85rem; background: #fff; color: var(--ink);
  box-shadow: 0 10px 28px rgba(10, 52, 40, .14); font: inherit; font-size: .84rem; font-weight: 800; cursor: pointer;
}
.scroll-to-top {
  position: fixed; left: max(1.25rem, env(safe-area-inset-left)); bottom: max(1.25rem, env(safe-area-inset-bottom)); z-index: 82;
  display: grid; width: 2.85rem; height: 2.85rem; place-items: center; border: 1px solid #aec4b7; border-radius: 50%;
  background: rgba(255,255,255,.96); color: var(--green-dark); box-shadow: 0 10px 28px rgba(10,52,40,.16);
  font: inherit; font-size: 1.35rem; font-weight: 850; cursor: pointer; backdrop-filter: blur(10px);
}
.scroll-to-top:hover, .scroll-to-top:focus-visible { border-color: var(--green); background: var(--green); color: #fff; outline: 0; }
.scroll-to-top:focus-visible { box-shadow: 0 0 0 4px rgba(15,116,88,.2), 0 10px 28px rgba(10,52,40,.16); }
.scroll-to-top[hidden], body.onboarding-active .scroll-to-top { display: none; }
.context-tour-help span { display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: var(--brand); color: #fff; }
.context-tour-offer {
  position: fixed; right: 1.25rem; bottom: 4.8rem; z-index: 85; width: min(390px, calc(100vw - 2rem)); padding: 1.2rem;
  border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 18px 48px rgba(10, 52, 40, .18);
}
.context-tour-offer > strong { display: block; margin: .3rem 2rem .35rem 0; font-family: var(--font-heading); font-size: 1.25rem; line-height: 1.2; }
.context-tour-offer > p { margin: 0; color: var(--muted); line-height: 1.5; }
.context-tour-offer-close { position: absolute; top: .7rem; right: .75rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: var(--surface); font-size: 1.25rem; cursor: pointer; }
.context-tour-offer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1rem; }
.context-tour-offer-actions .link-button { margin-left: auto; font-size: .78rem; }
.context-tour-stage .onboarding-popover-actions [hidden] { display: none; }
.course-import-promo { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin-bottom: 1.25rem; padding: 1.15rem 1.25rem; border: 1px solid #a9d6c7; border-radius: 18px; background: linear-gradient(135deg, #edf8f3, #fff); box-shadow: 0 10px 28px rgba(15, 116, 88, .08); }
.course-import-promo-icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 14px; background: var(--brand); color: #fff; font-weight: 900; }
.course-import-promo strong { display: block; margin: .2rem 0; font-family: var(--font-heading); font-size: 1.25rem; }
.course-import-promo p { margin: 0; color: var(--muted); line-height: 1.45; }
.locked-group-notice { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border: 1px solid #b5d7ca; border-radius: .8rem; background: #f0f8f4; }
.locked-group-notice div { display: grid; gap: .15rem; }
.locked-group-notice small, .locked-branding-field small { color: var(--muted); }
.locked-group-notice a { flex: 0 0 auto; color: var(--green-dark); font-weight: 800; }
@media (max-width: 640px) {
  .context-tour-help { right: .75rem; bottom: .75rem; }
  .scroll-to-top { left: max(.75rem, env(safe-area-inset-left)); bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .context-tour-offer { right: 1rem; bottom: 4.25rem; }
  .context-tour-offer-actions .link-button { width: 100%; margin-left: 0; text-align: left; }
  .course-import-promo { grid-template-columns: auto 1fr; }
  .course-import-promo .button { grid-column: 1 / -1; }
  .locked-group-notice { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
  .onboarding-role-grid { grid-template-columns: 1fr; }
  .onboarding-choice-card { max-height: 90vh; overflow: auto; }
  .onboarding-popover { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .onboarding-spotlight { transition: none; }
}

/* Context-aware creation entry points */
.narrow-container { max-width: 900px; }
.creation-context-card { display: grid; gap: 1.2rem; padding: clamp(1.2rem, 3vw, 1.8rem); }
.creation-context-card > div:first-child { display: flex; gap: .9rem; align-items: flex-start; }
.creation-context-card h2, .creation-context-card p { margin: 0; }
.creation-context-card p { margin-top: .25rem; color: var(--muted); }
.creation-context-icon { display: grid; flex: 0 0 2.6rem; height: 2.6rem; place-items: center; border-radius: .75rem; background: #e3f1e9; color: var(--green-dark); font-weight: 900; }
.creation-context-list { display: grid; gap: .55rem; }
.creation-context-list a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; color: inherit; text-decoration: none; }
.creation-context-list a:hover { border-color: var(--green); background: #f2f8f5; }
.creation-context-list a > span:nth-child(2) { display: grid; gap: .1rem; }
.creation-context-list small, .creation-context-limit-list span { color: var(--muted); }
.creation-context-limit-list { display: grid; gap: .55rem; }
.creation-context-limit-list > div { display: grid; gap: .15rem; padding: .75rem; border-radius: .7rem; background: #fff5eb; }
.creation-context-note { margin-top: 1rem; padding: 1rem 1.15rem; border-left: 3px solid var(--green); background: #f2f7f4; }
.creation-context-note p { margin: .25rem 0 0; color: var(--muted); }
.exercise-type-entry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.exercise-type-entry-grid a { display: grid; gap: .35rem; padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; color: inherit; text-decoration: none; }
.exercise-type-entry-grid a:hover { border-color: var(--green); background: #f2f8f5; }
.exercise-type-entry-grid small { color: var(--muted); }
.exercise-type-entry-grid b { margin-top: .35rem; color: var(--green-dark); }
.dashboard-heading-actions { display: flex; gap: .8rem; align-items: center; }
@media (max-width: 700px) {
  .exercise-type-entry-grid { grid-template-columns: 1fr; }
  .dashboard-heading-actions { align-items: flex-end; flex-direction: column; }
}

/* Calcoria interface refresh */

body {
  overflow-x: hidden;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.nav-open { overflow: hidden; }

::selection { background: var(--lime); color: var(--ink); }

a { text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 1px; }

h1, h2, h3 {
  color: var(--ink);
  overflow-wrap: anywhere;
  hyphens: auto;
  text-wrap: balance;
}

h1 {
  max-width: 18ch;
  font-size: clamp(2.4rem, 5vw, 4.25rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

h2 {
  font-size: clamp(1.65rem, 2.7vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -0.025em;
}

h3 { line-height: 1.25; letter-spacing: -0.012em; }

p { margin: 0.7em 0; }

.container { width: min(1240px, calc(100% - 64px)); }
.narrow-content { max-width: 860px; }
.page, .section { padding: 64px 0; }
.section + .section { padding-top: 64px; }
.lead { max-width: 720px; font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.65; }
.eyebrow { font-size: 0.72rem; letter-spacing: 0.16em; }

.skip-link {
  left: 16px;
  z-index: 200;
  border-radius: 0 0 10px 10px;
  background: var(--ink);
  color: #fff;
}

.site-header {
  height: 72px;
  border-bottom-color: rgba(16, 35, 29, 0.1);
  background: rgba(245, 247, 243, 0.92);
  box-shadow: 0 1px 0 rgba(16, 35, 29, 0.03);
}

.nav { position: relative; gap: 28px; }

.brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  font-size: 1.45rem;
  letter-spacing: -0.025em;
}

.brand-mark {
  width: 34px;
  height: 34px;
  margin-right: 0;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
}

.brand > span + span { margin-left: 9px; }

.nav-primary {
  display: flex;
  align-items: center;
  gap: 3px;
  margin-right: auto;
}

.nav-hover-menu { position: relative; }
.nav-hover-panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 8px);
  left: 0;
  display: grid;
  width: min(330px, calc(100vw - 32px));
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(14, 48, 38, .15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.nav-hover-menu:hover .nav-hover-panel,
.nav-hover-menu:focus-within .nav-hover-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-hover-panel > strong { padding: 7px 9px 5px; color: var(--muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.nav-primary .nav-hover-panel > a { display: grid; gap: 2px; padding: 9px; }
.nav-hover-panel a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-hover-panel a small { overflow: hidden; color: var(--muted); font-size: .72rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.nav-primary .nav-hover-panel .nav-hover-overview { margin-top: 4px; border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; color: var(--green-dark); }

.nav-primary a,
.nav-dashboard,
.nav-login {
  position: relative;
  padding: 9px 12px;
  border-radius: 9px;
  color: #31473f;
  font-size: 0.9rem;
  font-weight: 650;
  text-decoration: none;
}

.nav-primary a:hover,
.nav-dashboard:hover,
.nav-login:hover { background: rgba(18, 101, 77, 0.07); color: var(--green-dark); }

.nav-primary a[aria-current="page"],
.nav-dashboard[aria-current="page"] { background: #e3eee7; color: var(--green-dark); }

.nav-utilities { display: flex; align-items: center; gap: 7px; }

.notification-link {
  position: relative;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255,255,255,.72);
  color: var(--ink);
}

.notification-link:hover { border-color: var(--line-strong); background: #fff; }
.notification-link svg { width: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.notification-link .badge { position: absolute; top: -5px; right: -5px; min-width: 20px; text-align: center; }

.account-menu { position: relative; }
.account-menu summary {
  min-width: 118px;
  padding: 9px 34px 9px 13px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255,255,255,.72);
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
}

.account-menu summary::-webkit-details-marker { display: none; }
.account-menu summary::after {
  position: absolute;
  top: 50%;
  right: 13px;
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
}
.account-menu[open] summary { border-color: var(--line-strong); background: #fff; }
.account-menu[open] summary::after { transform: translateY(-30%) rotate(225deg); }

.account-menu-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  min-width: 220px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
}

.account-menu-label {
  padding: 8px 10px 5px;
  color: var(--muted);
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.account-menu-panel a,
.account-menu-panel .link-button {
  display: block;
  width: 100%;
  padding: 10px;
  border-radius: 8px;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 650;
  text-align: left;
  text-decoration: none;
}
.account-menu-panel a:hover,
.account-menu-panel .link-button:hover { background: var(--surface-soft); color: var(--green-dark); }

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
}
.nav-toggle span { display: block; width: 100%; height: 2px; margin: 4px 0; border-radius: 2px; background: var(--ink); transition: transform .18s ease, opacity .18s ease; }
.nav-toggle.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.nav-links {
  position: fixed;
  inset: 72px 0 auto;
  display: none;
  height: calc(100dvh - 72px);
  max-height: calc(100dvh - 72px);
  overflow-y: auto;
  border-bottom: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 20px 50px rgba(16,35,29,.13);
}
.nav-links.open { display: block; }
.nav-drawer-content { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding-block: 24px 32px; }
.nav-drawer-group { display: grid; align-content: start; gap: 3px; }
.nav-drawer-label { margin-bottom: 5px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.nav-drawer-group a, .nav-drawer-group .link-button { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 11px 0; color: var(--ink); font-weight: 700; text-decoration: none; }
.nav-drawer-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; grid-column: 1 / -1; }

.button {
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 11px;
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
  font-weight: 720;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.button:hover { box-shadow: 0 7px 18px rgba(12,77,58,.14); transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button.ghost { border-color: var(--line-strong); background: #fff; color: var(--green-dark); box-shadow: none; }
.button.ghost:hover { border-color: var(--green); background: #f3f8f5; box-shadow: none; }
.button.small { min-height: 38px; padding: 7px 12px; }
.button.large { min-height: 50px; padding: 13px 22px; }
.button:focus-visible, .input:focus-visible, .icon-button:focus-visible, .link-button:focus-visible, summary:focus-visible, a:focus-visible, .nav-toggle:focus-visible {
  outline: 3px solid rgba(18,101,77,.2);
  outline-offset: 2px;
}

.hero {
  padding: 88px 0 82px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 88% 2%, rgba(217,239,145,.38), transparent 29%),
    linear-gradient(150deg, #f7f9f4 0%, #edf4ee 100%);
}
.hero-grid { grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr); gap: 72px; }
.hero-copy { max-width: 700px; }
.hero h1 { margin: 14px 0 22px; }
.hero h1 em { display: block; color: var(--green); }
.hero-actions { margin: 30px 0 28px; }
.trust-row { gap: 10px 22px; color: #4e625a; font-size: .88rem; }
.trust-row span { display: inline-flex; align-items: center; gap: 7px; }
.trust-row b { color: var(--green); font-size: .68rem; letter-spacing: .08em; }

.ledger-preview {
  padding: 24px;
  border: 1px solid rgba(16,35,29,.13);
  border-radius: 20px;
  background: rgba(255,255,255,.93);
  box-shadow: 0 24px 70px rgba(16,35,29,.12);
}
.ledger-preview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.ledger-preview-head > div { display: grid; gap: 4px; }
.ledger-preview-head strong { font: 700 1.25rem Georgia, serif; }
.preview-case { margin: 16px 0; padding: 12px 14px; border-left: 3px solid var(--gold); background: #f8f8f3; font-size: .92rem; }
.preview-accounts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mini-account { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.mini-account.wide { grid-column: 1 / -1; }
.mini-account h3 { margin: 0; padding: 9px 11px 7px; font: 700 .82rem Inter, ui-sans-serif, system-ui, sans-serif; }
.mini-account-body { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); }
.mini-account-body span { display: grid; gap: 4px; min-height: 56px; padding: 8px 10px; color: var(--ink); font-size: .78rem; text-align: right; }
.mini-account-body span + span { border-left: 1px solid var(--ink); }
.mini-account-body b { color: var(--muted); font-size: .62rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }

.page-heading, .section-heading { margin-bottom: 32px; }
.page-heading > div, .section-heading > div { max-width: 760px; }
.page-heading h1 { margin: 8px 0 14px; }
.section-heading h2 { margin: 6px 0 10px; }
.section-heading p { color: var(--muted); }
.compact-heading { margin-bottom: 24px; }
.section-heading.small { margin-top: 38px; margin-bottom: 15px; }
.section-heading.small h2 { font-size: 1.35rem; }

.panel, .card, .hero-card {
  border-color: var(--line);
  box-shadow: var(--shadow-small);
}
.panel, .card { padding: 24px; }
.panel { box-shadow: none; }
.panel.subtle { border-color: #d7e3da; background: var(--surface-soft); }
.card { position: relative; overflow: hidden; transition: none; }
.card:hover { box-shadow: var(--shadow-small); transform: none; }
.card-link { min-height: 210px; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.card-link:hover { border-color: #a6bdb0; box-shadow: var(--shadow); transform: translateY(-3px); }
.card-link h2, .card-link h3 { max-width: 90%; margin: 18px 0 10px; font-size: 1.3rem; }
.card-link h2 a, .card-link h3 a { color: var(--ink); }
.card-link h2 a::after, .card-link h3 a::after { position: absolute; inset: 0; content: ""; }
.card-link p { color: var(--muted); }
.card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: var(--muted); font-size: .8rem; }
.card-arrow { position: absolute; right: 20px; bottom: 18px; color: var(--green); font-size: 1.35rem; transition: transform .16s ease; }
.card-link:hover .card-arrow { transform: translateX(3px); }
.feature-card { padding: 25px 0 6px; border-top: 2px solid var(--line); }
.feature-card h3 { margin: 14px 0 8px; font-size: 1.18rem; }
.feature-card p { color: var(--muted); }
.discovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 56px; }

.list-card { min-height: 62px; padding: 15px 17px; border-color: var(--line); border-radius: 12px; transition: border-color .15s ease, background .15s ease; }
a.list-card:hover { border-color: #a7bdb1; background: #fbfdfb; }
.list-card > span:first-child { min-width: 0; }
.list-card strong { line-height: 1.3; }
.list-card small { margin-top: 3px; }
.empty-inline { background: rgba(255,255,255,.45); }
.empty-state.compact-empty { grid-column: 1 / -1; margin: 24px auto; }

.field { gap: 7px; margin-bottom: 16px; }
.field label, label { color: #263d35; font-size: .88rem; font-weight: 700; }
.input {
  min-height: 46px;
  padding: 10px 13px;
  border-color: #b8c8be;
  border-radius: 9px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.input:hover { border-color: #94ab9e; }
.input:focus { outline: 0; border-color: var(--green); box-shadow: 0 0 0 3px rgba(18,101,77,.14); }
.check-field { margin: 4px 0 18px; }
.checkbox-label { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; line-height: 1.45; cursor: pointer; }
.checkbox-label input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); }
.field.invalid .input { border-color: var(--danger); }
.field-error { padding-left: 2px; }
.filter-panel { padding: 16px; border-radius: 14px; box-shadow: none; }
.filter-bar { align-items: flex-end; margin: 28px 0 34px; }
.filter-bar .field { min-width: 190px; margin: 0; }
.filter-bar .filter-grow { min-width: 260px; flex: 1; }
.filter-bar .input { max-width: none; }

.alerts { padding-top: 12px; }
.alert { display: grid; gap: 4px; border-radius: 10px; }
.alert p { margin: 0; }
.pill, .tag, .status { padding: 4px 9px; font-size: .72rem; letter-spacing: .01em; }
.status.complete { background: #dcefe4; }

.stats { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 30px 0 38px; }
.stats > div { display: flex; min-height: 110px; padding: 19px; flex-direction: column; justify-content: space-between; border-radius: 13px; }
.stats strong { order: 2; font-size: 2rem; line-height: 1; }
.stats span { order: 1; font-size: .82rem; font-weight: 650; }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 48px; }

.table-wrap {
  scrollbar-gutter: stable;
  border-color: var(--line);
  border-radius: 13px;
  box-shadow: 0 1px 0 rgba(16,35,29,.02);
}
table { font-variant-numeric: tabular-nums; }
th, td { padding: 13px 15px; }
th { background: #eaf0eb; color: #3c554b; font-size: .7rem; letter-spacing: .07em; }
tbody tr { transition: background .12s ease; }
tbody tr:hover { background: #fafcf9; }

.back-link { display: inline-block; margin-bottom: 20px; color: var(--muted); font-size: .88rem; font-weight: 650; }
.breadcrumbs { min-width: 0; margin: 0 0 1.25rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
.breadcrumbs ol { display: flex; min-width: 0; align-items: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { min-width: 0; }
.breadcrumbs li + li { display: flex; min-width: 0; align-items: center; gap: .5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.breadcrumbs li + li::before { content: '/'; flex: 0 0 auto; color: #9baca4; font-weight: 500; }
.breadcrumb-link { color: var(--green-dark); text-decoration: none; }
.breadcrumb-link:hover { text-decoration: underline; text-underline-offset: .2rem; }
.breadcrumbs [aria-current="page"] { color: var(--muted); font-weight: 600; }
@media (max-width: 600px) {
  .breadcrumbs [aria-current="page"] { max-width: 58vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.exercise-intro { background: radial-gradient(circle at 80% 0, rgba(217,239,145,.24), transparent 30%); }
.exercise-start-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 34px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.exercise-start-card > div:first-child { display: grid; max-width: 460px; gap: 4px; }
.exercise-start-card span { color: var(--muted); }

.exercise-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; }
.exercise-layout article > h1 { margin: 10px 0 0; font-size: clamp(2.25rem, 4vw, 3.6rem); }
.case-text {
  display: grid;
  gap: 7px;
  margin: 24px 0;
  padding: 21px 23px;
  border-left-width: 4px;
  border-radius: 0 12px 12px 0;
  box-shadow: 0 4px 18px rgba(16,35,29,.04);
  font-size: 1.12rem;
  line-height: 1.6;
}
.case-label { color: var(--muted); font: 800 .68rem Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.solution-form { padding: 22px; border-radius: 16px; }
.t-account-form { gap: 20px; }
.t-account-intro { align-items: flex-start; }
.t-account-intro h2 { margin-top: 5px; }
.t-account-workflow { gap: 7px; }
.t-account-workflow span { border: 1px solid #e1e8e3; background: #f3f6f3; }
.t-account-message { margin-top: -5px; }
.t-account { border-radius: 13px; box-shadow: 0 5px 18px rgba(16,35,29,.05); }
.t-account-heading { padding: 13px; background: #fbfcfa; }
.t-account-body { border-top-color: var(--ink); }
.t-account-mobile-tabs { display: none; }
.t-account-side { min-height: 230px; padding: 11px; }
.t-account-side-label { color: #3d554c; }
.t-posting-row { border-radius: 9px; box-shadow: none; }
.t-posting-row.is-origin { border-color: #c7d5cc; }
.t-posting-row.is-mirror { border-style: dashed; background: #eef4ef; }
.t-posting-mirror-note { color: #4f6c61; }
.t-account-add-entry { border-radius: 8px; }
.t-account-actions { padding-top: 3px; border-top: 1px solid var(--line); }
.hint-panel details { margin-top: 9px; border-top: 1px solid #cfdbd3; }
.hint-panel summary { padding: 13px 2px; color: var(--ink); font-weight: 720; cursor: pointer; }
.hint-panel details p { margin: 0 0 14px; color: #425a50; font-size: .92rem; }
.hint-panel.is-empty { background: #f3f6f3; }
.hint-empty-state { display: grid; justify-items: start; }
.hint-empty-icon { display: grid; width: 42px; height: 42px; margin-bottom: 14px; place-items: center; border-radius: 50%; background: #dcebe1; color: var(--green); font-size: 1.25rem; font-weight: 900; }
.hint-empty-state h2 { margin: 4px 0 8px; font-size: 1.45rem; }
.hint-empty-state p { margin: 0; color: var(--muted); font-size: .9rem; }

.auth-section { display: flex; min-height: calc(100dvh - 72px); align-items: center; padding: 72px 0; background: radial-gradient(circle at 10% 10%, rgba(217,239,145,.27), transparent 27%); }
.auth-layout { width: min(100%, 1000px); grid-template-columns: 1fr minmax(360px, .8fr); gap: 84px; align-items: center; }
.auth-copy h1 { margin: 10px 0 20px; font-size: clamp(2.6rem, 5vw, 4.4rem); }
.auth-copy > p { max-width: 570px; color: var(--muted); font-size: 1.08rem; }
.auth-panel { padding: 30px; border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); }
.auth-panel h2 { margin-top: 0; }
.panel-intro { margin-bottom: 22px; color: var(--muted); }
.check-list { display: grid; gap: 11px; margin: 28px 0 0; padding: 0; list-style: none; }
.check-list li { display: flex; gap: 10px; color: #365047; }
.check-list li::before { content: "✓"; color: var(--green); font-weight: 900; }

.registration-form .registration-field { position: relative; }
.registration-form .field > small { color: var(--muted); font-size: .8rem; line-height: 1.45; }
.input-state-wrap,
.password-input-wrap { position: relative; }
.input-state-wrap .input,
.password-input-wrap .input { padding-right: 48px; }
.input-state-icon {
  position: absolute;
  top: 50%;
  right: 14px;
  display: none;
  width: 20px;
  height: 20px;
  align-items: center;
  justify-content: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: .7rem;
  font-weight: 900;
  line-height: 1;
  transform: translateY(-50%);
}
.registration-field[data-state="valid"] .input-state-icon,
.registration-field[data-state="invalid"] .input-state-icon { display: flex; }
.registration-field[data-state="valid"] .input-state-icon { color: var(--green); }
.registration-field[data-state="valid"] .input-state-icon::before { content: "✓"; }
.registration-field[data-state="invalid"] .input-state-icon { color: var(--danger); }
.registration-field[data-state="invalid"] .input-state-icon::before { content: "!"; }
.registration-field[data-state="valid"] .input { border-color: var(--green); box-shadow: 0 0 0 1px rgba(18,101,77,.08); }
.registration-field[data-state="invalid"] .input { border-color: var(--danger); box-shadow: 0 0 0 1px rgba(164,61,61,.08); }
.registration-field[data-state="invalid"] .input:focus { box-shadow: 0 0 0 3px rgba(164,61,61,.14); }
.field-feedback {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.4;
}
.field-feedback[hidden] { display: none; }
.registration-field[data-state="valid"] .field-feedback { color: var(--green); }
.registration-field[data-state="invalid"] .field-feedback { color: var(--danger); }
.registration-field[data-state="valid"] .field-feedback::before { content: "✓"; }
.registration-field[data-state="invalid"] .field-feedback::before { content: "!"; }

.password-toggle {
  position: absolute;
  top: 50%;
  right: 5px;
  display: grid;
  width: 38px;
  height: 38px;
  padding: 8px;
  place-items: center;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #456057;
  cursor: pointer;
  transform: translateY(-50%);
}
.password-toggle:hover { background: var(--surface-soft); color: var(--green-dark); }
.password-toggle:focus-visible { outline: 3px solid rgba(18,101,77,.2); outline-offset: 1px; }
.password-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .icon-eye-closed { display: none; }
.password-toggle[aria-pressed="true"] .icon-eye-open { display: none; }
.password-toggle[aria-pressed="true"] .icon-eye-closed { display: block; }

.password-guidance {
  display: grid;
  gap: 10px;
  margin-top: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f7faf7;
}
.password-strength-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--muted); font-size: .76rem; }
.password-strength-row strong { color: var(--ink); font-size: .76rem; }
.password-strength-meter { --strength-color: #9aaaa2; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.password-strength-meter span { height: 5px; border-radius: 99px; background: #dbe3de; transition: background .18s ease; }
.password-strength-meter[data-level="weak"] { --strength-color: var(--danger); }
.password-strength-meter[data-level="fair"] { --strength-color: var(--gold); }
.password-strength-meter[data-level="almost"] { --strength-color: #5f8d45; }
.password-strength-meter[data-level="strong"] { --strength-color: var(--green); }
.password-strength-meter span.is-active { background: var(--strength-color); }
.password-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; margin: 2px 0 0; padding: 0; list-style: none; }
.password-rules li { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .78rem; line-height: 1.35; }
.password-rules li::before {
  display: grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border: 1px solid #b7c5bd;
  border-radius: 50%;
  content: "";
  color: #fff;
  font-size: .67rem;
  font-weight: 900;
  transition: background .16s ease, border-color .16s ease;
}
.password-rules li.is-met { color: #245c48; font-weight: 650; }
.password-rules li.is-met::before { border-color: var(--green); background: var(--green); content: "✓"; }
.registration-form .check-field[data-state="invalid"] .checkbox-label { color: var(--danger); }
.registration-form .check-field[data-state="invalid"] input { outline: 2px solid rgba(164,61,61,.35); outline-offset: 2px; }
.registration-submit { width: 100%; margin-top: 2px; }

.profile-container { max-width: 1140px; }
.profile-heading { align-items: flex-end; }
.profile-heading h1 { margin: 8px 0 10px; font-size: clamp(2.5rem, 5vw, 4rem); }
.profile-heading .lead { margin: 0; }
.profile-identity { display: flex; min-width: 250px; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.7); }
.profile-identity > span:last-child { min-width: 0; }
.profile-identity strong,
.profile-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font: 700 1.2rem Georgia, serif; }
.profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.profile-settings-form { display: grid; gap: 18px; }
.settings-section { padding: 26px; }
.settings-section-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 24px; }
.settings-section-heading h2 { margin: 0 0 4px; font-size: 1.45rem; }
.settings-section-heading p { margin: 0; color: var(--muted); font-size: .9rem; }
.settings-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 9px; background: var(--surface-soft); color: var(--green-dark); font-size: .68rem; font-weight: 850; letter-spacing: .04em; }
.settings-options { display: grid; gap: 0; border-top: 1px solid var(--line); }
.setting-option { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.setting-option strong { display: block; color: var(--ink); font-size: .9rem; }
.setting-option small { margin-top: 3px; font-weight: 450; line-height: 1.4; }
.toggle-input { position: absolute; right: 0; width: 44px; height: 26px; opacity: 0; cursor: pointer; }
.toggle-switch { position: relative; width: 44px; height: 26px; border: 1px solid #aebeb5; border-radius: 99px; background: #dce4df; transition: background .16s ease, border-color .16s ease; }
.toggle-switch::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(16,35,29,.2); content: ""; transition: transform .16s ease; }
.toggle-input:checked + .toggle-switch { border-color: var(--green); background: var(--green); }
.toggle-input:checked + .toggle-switch::after { transform: translateX(18px); }
.toggle-input:focus-visible + .toggle-switch { outline: 3px solid rgba(18,101,77,.2); outline-offset: 2px; }
.notification-channels { display: grid; gap: 18px; }
.notification-channel { border: 1px solid var(--line); border-radius: 16px; padding: 0 18px; background: rgba(255,255,255,.56); }
.notification-channel-master { padding-block: 18px; }
.notification-channel-options { padding-left: 18px; border-left: 2px solid var(--mint); transition: opacity .18s ease; }
.notification-channel-options .setting-option:last-child { border-bottom: 0; }
.notification-channel-options.is-disabled { opacity: .48; }
.notification-channel-options.is-disabled .setting-option { cursor: not-allowed; }
.settings-save-bar { position: sticky; bottom: 14px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.96); box-shadow: var(--shadow-small); backdrop-filter: blur(12px); }
.settings-save-bar span { color: var(--muted); font-size: .8rem; }
.profile-sidebar { position: sticky; top: 94px; display: grid; gap: 16px; }
.account-summary-card h2,
.profile-action-card h2 { margin: 6px 0 4px; font-size: 1.25rem; }
.account-summary-card p,
.profile-action-card p { color: var(--muted); font-size: .88rem; }
.profile-action-card { display: grid; gap: 12px; box-shadow: none; }
.profile-action-card .button { width: 100%; }
.profile-action-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--surface-soft); color: var(--green-dark); font-weight: 850; }
.account-summary-card .button { width: 100%; margin-top: 12px; }

.account-security-container { max-width: 1080px; }
.account-security-layout { display: grid; grid-template-columns: minmax(0,.82fr) minmax(420px,1fr); gap: clamp(2rem,6vw,5.5rem); align-items: center; margin-top: clamp(2rem,5vw,4rem); }
.account-security-copy h1 { max-width: 11ch; margin: .6rem 0 1.2rem; font-size: clamp(2.7rem,5vw,4.8rem); line-height: .98; letter-spacing: -.045em; }
.account-security-copy > p { max-width: 35rem; color: var(--muted); line-height: 1.7; }
.security-check-list { display: grid; gap: .75rem; margin: 1.7rem 0 0; padding: 0; list-style: none; }
.security-check-list li { display: flex; align-items: center; gap: .7rem; color: var(--ink); font-size: .88rem; font-weight: 750; }
.security-check-list li::before { display: grid; width: 1.45rem; height: 1.45rem; flex: 0 0 1.45rem; place-items: center; border-radius: 50%; background: #dff1e7; color: var(--green-dark); content: "✓"; font-size: .7rem; font-weight: 900; }
.account-security-form { display: grid; gap: 1.15rem; padding: clamp(1.35rem,3vw,2.2rem); border-top: 4px solid var(--green); box-shadow: 0 24px 65px rgba(12,66,47,.12); }
.account-security-form-heading { display: flex; align-items: center; gap: .9rem; margin-bottom: .3rem; }
.account-security-form-heading > span { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 2.8rem; place-items: center; border-radius: .85rem; background: var(--green-dark); color: #fff; font-weight: 900; }
.account-security-form-heading h2 { margin: 0 0 .15rem; font-size: 1.6rem; }
.account-security-form-heading p { margin: 0; color: var(--muted); font-size: .82rem; }
.account-security-form .field { margin: 0; }
.account-security-form .password-guidance { margin-top: .75rem; }
.danger-zone { margin-top: 48px; overflow: hidden; border: 1px solid #d77a7a; border-radius: 14px; background: #fff; }
.danger-zone-heading { padding: 18px 22px; border-bottom: 1px solid #ecc2c2; background: #fff8f8; }
.danger-zone-heading .eyebrow { color: var(--danger); }
.danger-zone-heading h2 { margin: 2px 0 0; font-size: 1.5rem; }
.danger-zone-row { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 22px; }
.danger-zone-row strong { display: block; font-size: 1rem; }
.danger-zone-row p { margin: 4px 0 0; color: var(--muted); font-size: .88rem; }
.button.danger-outline { border-color: var(--danger); background: #fff; color: var(--danger); box-shadow: none; white-space: nowrap; }
.button.danger-outline:hover { background: var(--danger); color: #fff; box-shadow: none; }

.delete-account-container { max-width: 720px; }
.delete-account-panel { position: relative; padding: 34px; border-color: #e2aaaa; }
.delete-account-panel h1 { margin: 8px 0 12px; font-size: clamp(2.25rem, 7vw, 3.6rem); }
.delete-account-panel > .eyebrow { color: var(--danger); }
.danger-symbol { display: grid; width: 44px; height: 44px; margin-bottom: 20px; place-items: center; border-radius: 50%; background: #f9dede; color: var(--danger); font-size: 1.4rem; font-weight: 900; }
.deletion-consequences { margin: 26px 0; padding: 18px 20px; border: 1px solid #ecd0d0; border-radius: 11px; background: #fff8f8; }
.deletion-consequences ul { margin: 10px 0; padding-left: 20px; }
.deletion-consequences p { color: var(--muted); font-size: .88rem; }
.delete-account-form { padding-top: 8px; border-top: 1px solid var(--line); }
.delete-account-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }

.editor-page-container { max-width: 1320px; }
.editor-page-heading h1 { margin: 8px 0 12px; }
.editor-tabs {
  position: sticky;
  top: 72px;
  z-index: 12;
  display: flex;
  gap: 5px;
  margin-bottom: 18px;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(245,247,243,.96);
  box-shadow: var(--shadow-small);
  backdrop-filter: blur(12px);
}
.editor-tabs button { min-height: 40px; padding: 9px 15px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font-size: .85rem; font-weight: 750; }
.editor-tabs button.active { border: 0; background: #fff; color: var(--green-dark); box-shadow: 0 1px 6px rgba(16,35,29,.1); }
.exercise-editor-form { display: block; border: 0; background: transparent; box-shadow: none; }
.exercise-builder-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 24px; align-items: start; }
.exercise-skeleton { display: grid; gap: 18px; }
.builder-step { padding: 26px; box-shadow: var(--shadow-small); }
.builder-step-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 24px; }
.builder-step-heading > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 9px; background: var(--green); color: #fff; font-size: .78rem; font-weight: 850; }
.builder-step-heading h2 { margin: 0 0 3px; font-size: 1.45rem; }
.builder-step-heading p { margin: 0; color: var(--muted); font-size: .88rem; }
.field-label-row,
.heading-with-help { display: flex; align-items: center; gap: 7px; }
.heading-with-help h2 { margin: 0; }
.tooltip-trigger {
  position: relative;
  display: inline-grid;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  padding: 0;
  place-items: center;
  border: 1px solid #afc0b6;
  border-radius: 50%;
  background: #fff;
  color: #526960;
  font: 800 .72rem/1 Inter, ui-sans-serif, system-ui, sans-serif;
  cursor: help;
}
.tooltip-trigger::after {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  z-index: 40;
  width: min(260px, 70vw);
  padding: 10px 12px;
  border-radius: 9px;
  background: var(--ink);
  color: #fff;
  content: attr(data-tooltip);
  font-size: .75rem;
  font-weight: 500;
  line-height: 1.45;
  opacity: 0;
  pointer-events: none;
  text-align: left;
  transform: translate(-50%, 4px);
  transition: opacity .14s ease, transform .14s ease;
}
.tooltip-trigger:hover::after,
.tooltip-trigger:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.tooltip-trigger:focus-visible { outline: 3px solid rgba(18,101,77,.2); outline-offset: 2px; }
.prompt-input { min-height: 170px; font: 500 1.02rem/1.65 Georgia, "Times New Roman", serif; }
.compact-tall { min-height: 115px !important; }
.source-mode-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 0 0 20px; }
.source-mode-card { position: relative; display: grid; grid-template-columns: 42px 1fr; gap: 12px; min-height: 92px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; }
.source-mode-card > input { position: absolute; opacity: 0; pointer-events: none; }
.source-mode-card:has(input:checked) { border-color: var(--green); background: #edf6f1; box-shadow: 0 0 0 2px rgba(18,101,77,.1); }
.source-mode-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--green-dark); font: 850 1rem/1 Inter,ui-sans-serif,sans-serif; }
.source-mode-card strong,.source-mode-card small { display: block; }
.source-mode-card small { margin-top: 4px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.source-document-intro { display: flex; gap: 14px; margin-bottom: 18px; padding: 16px; border-left: 3px solid var(--green); border-radius: 0 11px 11px 0; background: #edf6f1; }
.source-document-intro-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 9px; background: #fff; color: var(--green-dark); font-weight: 900; }
.source-document-intro p { margin: 4px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.document-advanced-settings { margin-top: 18px; overflow: visible; border: 1px solid var(--line); border-radius: 12px; background: #fafcfa; }
.source-document-warning { margin: 0 0 18px; }
.source-document-warning span { display: block; margin-top: 3px; }
.document-advanced-settings summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 17px; cursor: pointer; list-style: none; }
.document-advanced-settings summary::-webkit-details-marker { display: none; }
.document-advanced-settings summary strong,.document-advanced-settings summary small { display: block; }
.document-advanced-settings summary small { margin-top: 2px; color: var(--muted); font-size: .75rem; }
.document-advanced-settings[open] summary { border-bottom: 1px solid var(--line); }
.document-advanced-settings > .form-grid { padding: 17px; }
.document-override-fields > .form-grid { margin: 0; }
.builder-details { padding: 0; box-shadow: none; }
.builder-details summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; cursor: pointer; list-style: none; }
.builder-details summary::-webkit-details-marker { display: none; }
.builder-details summary strong,
.builder-details summary small { display: block; }
.builder-details summary small { margin-top: 3px; }
.builder-details[open] summary { border-bottom: 1px solid var(--line); }
.builder-details[open] summary > span:last-child { transform: rotate(180deg); }
.builder-details-content { padding: 24px; }
.publish-field { align-self: end; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
.publish-field small { font-weight: 450; }

.exercise-live-preview { position: sticky; top: 145px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); }
.preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 15px; border-bottom: 1px solid var(--line); background: #f1f5f1; color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .07em; }
.preview-toolbar > span { display: flex; align-items: center; gap: 7px; }
.preview-toolbar i { width: 8px; height: 8px; border-radius: 50%; background: #2aaa71; box-shadow: 0 0 0 4px rgba(42,170,113,.13); }
.preview-toolbar strong { color: var(--green-dark); font-size: .68rem; }
.preview-sheet { padding: 22px; }
.preview-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; color: var(--muted); font-size: .78rem; }
.preview-sheet h2 { margin: 13px 0 4px; font-size: 1.75rem; }
.preview-case { margin: 18px 0; padding: 16px; font-size: .95rem; }
.preview-case p { margin: 0; white-space: pre-line; }
.preview-source-document { margin: 18px 0; overflow: hidden; border: 1px solid #c5d5cb; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(12,66,47,.07); }
.preview-source-document > div:first-child { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #edf3ef; }
.preview-source-document > div:first-child span { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.preview-source-document > div:first-child strong { max-width: 58%; text-align: right; }
.preview-source-document dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 12px 14px; }
.preview-source-document dt { color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.preview-source-document dd { margin: 2px 0 0; font-size: .76rem; font-weight: 750; }
.preview-source-document > p { margin: 0; padding: 4px 14px 13px; font-size: .82rem; }
.preview-source-document > strong { display: block; padding: 11px 14px; border-top: 1px solid var(--line); text-align: right; }
.preview-context { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.preview-context div { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fafcfa; }
.preview-context dt { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.preview-context dd { overflow: hidden; margin: 2px 0 0; font-size: .78rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.preview-answer-skeleton { margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.preview-answer-skeleton > span { display: block; padding: 9px 11px; background: #f4f7f4; font-weight: 750; }
.preview-answer-skeleton > p { margin: 0; padding: 14px 12px; line-height: 1.45; }
.preview-answer-skeleton > div { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); }
.preview-answer-skeleton b { min-height: 64px; padding: 8px; font-size: .7rem; }
.preview-answer-skeleton b + b { border-left: 1px solid var(--ink); }
.preview-explanation { margin-top: 15px; padding: 12px; border-radius: 9px; background: var(--surface-soft); }
.preview-explanation p { display: -webkit-box; overflow: hidden; margin: 4px 0 0; color: var(--muted); font-size: .78rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.source-document { margin: 22px 0; overflow: hidden; border: 1px solid #b9ccc0; border-radius: 14px; background: #fff; box-shadow: 0 12px 36px rgba(12,66,47,.08); color: #17352c; }
.source-document-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 26px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,#f7faf7,#edf5f0); }
.source-document-header h2 { margin: 4px 0; font-size: clamp(1.45rem,3vw,2.15rem); }
.source-document-header p { margin: 0; color: var(--muted); font-size: .8rem; }
.source-document-kind { display: grid; gap: 4px; min-width: 185px; padding: 12px 14px; border: 1px solid #b9ccc0; border-radius: 9px; background: #fff; text-align: right; }
.source-document-kind strong { font-size: 1rem; }
.source-document-kind span { color: var(--muted); font-size: .74rem; }
.source-document-parties { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(260px,.7fr); gap: 30px; padding: 22px 26px; }
.source-document-parties > div > span,.source-document-parties small { display: block; color: var(--muted); font-size: .75rem; }
.source-document-parties > div > strong { display: block; margin: 5px 0; }
.source-document-parties dl { display: grid; gap: 6px; margin: 0; }
.source-document-parties dl div { display: flex; justify-content: space-between; gap: 16px; }
.source-document-parties dt { color: var(--muted); font-size: .73rem; }
.source-document-parties dd { margin: 0; font-size: .78rem; font-weight: 750; }
.source-document-table { margin: 0 26px 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }
.source-document-row { display: grid; grid-template-columns: minmax(220px,1.8fr) minmax(90px,.6fr) minmax(110px,.7fr) minmax(120px,.7fr); gap: 12px; align-items: center; min-height: 56px; padding: 11px 14px; }
.source-document-row--head { min-height: auto; background: #edf3ef; color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.source-document-row:not(.source-document-row--head) { border-top: 1px solid var(--line); }
.source-document-row > :last-child { text-align: right; }
.source-document-totals { display: grid; justify-content: end; gap: 7px; margin: 0 26px 24px; }
.source-document-totals div { display: grid; grid-template-columns: 150px 120px; gap: 20px; }
.source-document-totals dt { color: var(--muted); }
.source-document-totals dd { margin: 0; text-align: right; font-weight: 750; }
.source-document-totals div:last-child { padding-top: 8px; border-top: 2px solid var(--ink); font-size: 1.05rem; }
.source-document-receipt { max-width: 570px; margin: 28px auto; padding: 28px; border: 2px solid #263d36; box-shadow: 6px 6px 0 #e9efeb; }
.source-document-receipt > span { display: block; font: 800 2rem/1 Georgia,serif; }
.source-document-receipt > strong { display: block; margin: 22px 0; font-size: 1.05rem; }
.source-document-receipt dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.source-document-receipt dl div { padding: 9px; border: 1px solid var(--line); }
.source-document-receipt dt { color: var(--muted); font-size: .66rem; text-transform: uppercase; }
.source-document-receipt dd { margin: 3px 0 0; font-weight: 750; }
.source-document-amount { display: flex; justify-content: space-between; gap: 20px; margin: 24px 0; padding: 14px 0; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); font-size: 1.05rem; }
.source-bank-heading,.source-material-meta { display: grid; grid-template-columns: 1fr auto auto; gap: 24px; padding: 17px 26px; background: #f4f1e7; }
.source-document--bank_statement .source-document-header { background: linear-gradient(135deg,#faf6e6,#fff); }
.source-bank-note { margin: -8px 26px 22px; color: var(--muted); font-size: .8rem; }
.source-document--material_issue .source-document-header { background: linear-gradient(135deg,#f3f3f3,#fff); }
.source-document--internal_booking .source-document-header { background: linear-gradient(135deg,#edf5f0,#fff); }
.source-document--layout-compact .source-document-header { padding: 17px 20px; }
.source-document--layout-compact .source-document-parties,
.source-document--layout-compact .source-special-document { padding: 20px; }
.source-document--layout-note .source-document-header { background: linear-gradient(135deg,#f4f1e7,#fff); }
.source-document--accent-blue .source-document-header { background: linear-gradient(135deg,#edf4fa,#fff); }
.source-document--accent-blue .source-document-kind { border-color: #a8bfd2; }
.source-document--accent-sand .source-document-header { background: linear-gradient(135deg,#f7f0df,#fff); }
.source-document--accent-sand .source-document-kind { border-color: #d1bd91; }
.source-document--accent-graphite .source-document-header { background: linear-gradient(135deg,#ecefed,#fff); }
.source-document--accent-graphite .source-document-kind { border-color: #aeb7b2; }
.source-material-signoff { display: flex; justify-content: space-between; gap: 20px; margin: 0 26px 22px; padding-top: 16px; border-top: 1px dashed #8ca195; color: var(--muted); font-size: .8rem; }
.source-internal-booking { padding: 26px; }
.source-internal-booking-heading { display: flex; justify-content: space-between; gap: 28px; padding-bottom: 20px; border-bottom: 2px solid var(--ink); }
.source-internal-booking-heading h3 { margin: 5px 0 0; font-family: var(--display); font-size: 1.6rem; }
.source-internal-booking-heading dl,.source-internal-booking-meta { margin: 0; }
.source-internal-booking-heading dl div { display: grid; grid-template-columns: auto auto; gap: 18px; }
.source-internal-booking-heading dt,.source-internal-booking-meta dt { color: var(--muted); }
.source-internal-booking-heading dd,.source-internal-booking-meta dd { margin: 0; font-weight: 800; }
.source-internal-booking-reason { margin: 22px 0; padding: 20px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 0 10px 10px 0; background: #f7faf8; }
.source-internal-booking-reason span,.source-internal-booking-reason strong { display: block; }
.source-internal-booking-reason span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.source-internal-booking-reason strong { margin-top: 6px; font-size: 1.08rem; }
.source-internal-booking-reason p { margin: 7px 0 0; }
.source-internal-booking-meta { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.source-internal-booking-meta div { padding: 14px; border: 1px solid var(--line); border-radius: 9px; }
.source-internal-booking-meta dt,.source-internal-booking-meta dd { display: block; }
.source-internal-booking-signoff { display: grid; grid-template-columns: repeat(2,1fr); gap: 30px; margin-top: 32px; color: var(--muted); font-size: .78rem; }
.source-internal-booking-signoff span { padding-top: 20px; border-top: 1px solid var(--ink); }
.source-special-document { padding: 26px; }
.source-special-document-heading { display: flex; justify-content: space-between; gap: 28px; padding-bottom: 20px; border-bottom: 2px solid var(--ink); }
.source-special-document-heading h3 { margin: 5px 0 0; font-family: var(--display); font-size: 1.6rem; }
.source-special-document-heading dl { margin: 0; }
.source-special-document-heading dl div { display: grid; grid-template-columns: auto auto; gap: 18px; }
.source-special-document-heading dt { color: var(--muted); }
.source-special-document-heading dd { margin: 0; font-weight: 800; }
.source-special-document-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 22px 0; }
.source-special-document-details div { padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fafcfb; }
.source-special-document-details dt { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; }
.source-special-document-details dd { margin: 6px 0 0; font-weight: 800; }
.source-special-document-note { display: grid; gap: 5px; padding: 18px 20px; border-left: 4px solid var(--green); background: #eef6f1; }
.source-special-document-note span { color: var(--muted); }
.source-document-footer { display: flex; justify-content: space-between; gap: 20px; padding: 13px 26px; border-top: 1px solid var(--line); background: #f7faf7; color: var(--muted); font-size: .72rem; }
.source-document-footer strong { color: var(--green-dark); text-transform: uppercase; letter-spacing: .06em; }
.source-document-task { margin: 0 0 14px; color: var(--ink); font-size: 1rem; }
.result-source-document { margin-bottom: 20px; padding: 0; }
.result-source-document summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; cursor: pointer; list-style: none; }
.result-source-document summary::-webkit-details-marker { display: none; }
.result-source-document summary strong,.result-source-document summary small { display: block; }
.result-source-document summary small { color: var(--muted); font-size: .76rem; }
.result-source-document[open] summary { border-bottom: 1px solid var(--line); }
.result-source-document > div { padding: 0 20px 4px; }
.result-source-document .source-document { box-shadow: none; }
@media (max-width: 760px) {
  .source-mode-grid { grid-template-columns: 1fr; }
  .source-document-header,.source-document-parties { grid-template-columns: 1fr; display: grid; }
  .source-document-kind { width: 100%; min-width: 0; text-align: left; }
  .source-document-table { overflow-x: auto; }
  .source-document-row { min-width: 660px; }
  .source-document-receipt { margin: 20px; }
  .source-document-receipt dl { grid-template-columns: 1fr; }
  .source-bank-heading,.source-material-meta { grid-template-columns: 1fr; gap: 5px; }
  .source-document-footer,.source-material-signoff { flex-direction: column; }
  .source-special-document-heading { display: grid; }
  .source-special-document-details { grid-template-columns: 1fr; }
}
.editor-panel-section { padding: 28px; }
.editor-panel-section .builder-table { overflow-x: auto; }
.builder-settings { display: grid; grid-template-columns: minmax(220px, 1fr) 150px minmax(240px, 1fr); gap: 16px; align-items: end; margin: 22px 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.builder-settings label { display: grid; gap: 6px; }
.builder-settings .check-field { display: flex; align-items: center; align-self: end; min-height: 46px; padding-bottom: 0; }
.builder-settings .check-field input { flex: 0 0 auto; margin: 0; }
.review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.review-box { border: 1px solid var(--line); background: #fff; }
.editor-save-bar { position: sticky; bottom: 12px; z-index: 10; display: flex; justify-content: space-between; margin: 18px 0 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.editor-save-bar > span { color: var(--muted); font-size: .78rem; }
.editor-save-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; }
.editor-actions:not(.t-account-actions):has(> button[type="submit"]) { justify-content: flex-end; }

.result-container { max-width: 1000px; }
.result-hero { position: relative; min-height: 210px; margin-bottom: 20px; padding: 34px; border: 1px solid transparent; }
.result-hero.success { border-color: #c9e5d5; background: #e4f3e9; }
.result-hero.needs-work { border-color: #ead39e; background: #fff4d8; }
.result-hero h1 { margin: 5px 0 9px; font-size: clamp(2.5rem, 6vw, 4.2rem); }
.result-hero p { margin: 0; }
.result-hint-count { position: absolute; right: 26px; bottom: 22px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.result-section { margin-top: 20px; padding: 28px; }
.result-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.result-section-heading h2 { margin: 4px 0 0; }
.balance-status { padding: 7px 10px; border-radius: 99px; background: var(--surface-soft); color: var(--green-dark); font-size: .74rem; font-weight: 750; white-space: nowrap; }
.balance-status.unbalanced { background: #fff0cb; color: var(--warning); }
.booking-review { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }
.booking-review-header,
.booking-review-row,
.booking-review-total { display: grid; grid-template-columns: minmax(0, 1.8fr) 130px 130px; align-items: center; }
.booking-review-header { padding: 9px 14px; background: #eef3ef; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.booking-review-row { min-height: 56px; padding: 11px 14px; border-top: 1px solid var(--line); }
.booking-review-row strong { font-size: .9rem; }
.booking-review-row span { font-variant-numeric: tabular-nums; text-align: right; }
.booking-review-total { padding: 11px 14px; border-top: 2px solid var(--ink); background: #fafcfa; font-variant-numeric: tabular-nums; }
.booking-review-total strong:not(:first-child) { text-align: right; }
.feedback-checklist { display: grid; gap: 10px; }
.feedback-item { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfb; }
.feedback-item.pass { border-color: #cde2d6; background: #f7fbf8; }
.feedback-item.fail { border-color: #e8c5c5; background: #fff8f8; }
.feedback-item-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #d8eee1; color: var(--green); font-weight: 900; }
.feedback-item.fail .feedback-item-icon { background: #f5dada; color: var(--danger); }
.feedback-item strong { display: block; margin-top: 2px; }
.feedback-item p { margin: 4px 0 0; color: var(--muted); font-size: .86rem; }
.feedback-points { align-self: center; color: var(--muted); font-size: .73rem; font-weight: 700; white-space: nowrap; }
.explanation-panel { margin-top: 20px; border-color: #cadbd1; background: #eef5f0; box-shadow: none; }
.explanation-panel h2 { margin: 5px 0 8px; }
.result-actions { justify-content: center; margin-top: 24px; }

.legal-layout { max-width: 940px; }
.legal-intro { margin-bottom: 34px; }
.legal-intro h1 { margin: 8px 0 13px; }
.legal-notice { margin-bottom: 22px; }
.legal-content { display: grid; gap: 14px; }
.legal-content .panel { padding: 26px; }
.legal-content h2 { margin-top: 0; font-size: 1.4rem; }
.legal-content ul { display: grid; gap: 9px; padding-left: 20px; }
.legal-content address { display: grid; gap: 3px; font-style: normal; }
.legal-definition-list { display: grid; gap: 10px; margin: 0; }
.legal-definition-list > div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.legal-definition-list > div:last-child { border-bottom: 0; }
.legal-definition-list dt { color: var(--muted); font-weight: 650; }
.legal-definition-list dd { margin: 0; }

.course-hero { padding: 64px 0; border-bottom: 1px solid var(--line); background: #edf3ee; }
.management-section { margin-top: 48px; }

.site-footer, footer {
  margin-top: auto;
  padding: 0;
  background: var(--ink);
  color: #dbe5df;
}
.footer-grid { grid-template-columns: minmax(260px, 2fr) 1fr 1fr; gap: 64px; padding-block: 42px 34px; }
.footer-grid > div, .footer-grid nav { display: grid; align-content: start; gap: 8px; }
.footer-grid strong { color: #fff; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-grid a { color: #dbe5df; font-size: .9rem; }
.footer-brand p { max-width: 320px; color: #aebfb6; font-size: .9rem; }
.footer-logo { width: fit-content; color: #fff !important; }
.footer-logo .brand-mark { background: #1a7a5e; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-block: 16px 22px; border-top: 1px solid rgba(255,255,255,.1); color: #8fa49a; font-size: .78rem; }

@media (max-width: 1100px) {
  .nav { gap: 16px; }
  .nav-primary a { padding-inline: 9px; }
  .nav-dashboard { display: none; }
  .hero-grid { gap: 42px; }
  .t-account-editor { grid-template-columns: 1fr; }
  .exercise-builder-layout { grid-template-columns: 1fr; }
  .exercise-live-preview { position: static; order: -1; }
}

@media (max-width: 900px) {
  .import-task-type-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .container { width: min(100% - 48px, 1240px); }
  .nav-primary, .nav-utilities { display: none; }
  .nav-toggle { display: block; margin-left: auto; }
  .hero { padding: 64px 0; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { max-width: 760px; }
  .ledger-preview { max-width: 650px; }
  .exercise-layout, .editor-grid { grid-template-columns: 1fr; }
  .sticky { position: static; }
  .hint-panel { order: 2; }
  .auth-section { min-height: auto; padding: 56px 0; }
  .auth-layout { grid-template-columns: 1fr; gap: 38px; }
  .auth-copy h1 { max-width: 14ch; }
  .profile-layout { grid-template-columns: 1fr; }
  .profile-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-summary-card { grid-column: 1 / -1; }
  .profile-heading { align-items: flex-start; }
  .builder-settings { grid-template-columns: 1fr; align-items: stretch; }
  .dashboard-grid, .discovery-grid { grid-template-columns: 1fr; gap: 24px; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; gap: 32px; }
  .page-heading, .section-heading { align-items: flex-start; }
}

@media (max-width: 680px) {
  .container { width: min(100% - 32px, 1240px); }
  .page, .section { padding: 44px 0; }
  .section + .section { padding-top: 44px; }
  h1 { font-size: clamp(2.25rem, 12vw, 3.25rem); }
  h2 { font-size: 1.75rem; }
  .hero { padding: 50px 0 46px; }
  .hero h1 em { display: inline; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .trust-row { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .ledger-preview { padding: 17px; border-radius: 16px; }
  .preview-accounts { grid-template-columns: 1fr; }
  .mini-account.wide { grid-column: auto; }
  .card-grid, .feature-grid { grid-template-columns: 1fr; }
  .card { padding: 20px; }
  .card-link { min-height: 190px; }
  .filter-bar { align-items: stretch; flex-direction: column; padding: 15px; }
  .filter-bar .field { width: 100%; min-width: 0; }
  .filter-bar .button { width: 100%; }
  .page-heading, .section-heading { gap: 16px; margin-bottom: 24px; }
  .page-heading .button, .section-heading > .text-link { width: 100%; }
  .exercise-start-card { align-items: stretch; flex-direction: column; }
  .exercise-start-card .actions, .exercise-start-card form, .exercise-start-card .button { width: 100%; }
  .solution-form { padding: 16px; }
  .case-text { padding: 18px; font-size: 1.04rem; }
  .t-account-intro { gap: 8px; }
  .t-account-workflow { grid-template-columns: 1fr; }
  .t-account-workflow span { border-radius: 9px; }
  .t-account-actions {
    position: sticky;
    bottom: 0;
    z-index: 8;
    margin: 0 -16px -16px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    flex-direction: column-reverse;
    border-top: 1px solid var(--line);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
  }
  .t-account-actions .button { width: 100%; }
  .auth-panel { padding: 23px; }
  .profile-heading { display: grid; }
  .profile-identity { width: 100%; min-width: 0; }
  .profile-sidebar { grid-template-columns: 1fr; }
  .account-summary-card { grid-column: auto; }
  .settings-section { padding: 21px; }
  .settings-save-bar { position: static; align-items: stretch; flex-direction: column; }
  .settings-save-bar .button { width: 100%; }
  .danger-zone-row { align-items: stretch; flex-direction: column; }
  .danger-zone-row .button { width: 100%; }
  .delete-account-panel { padding: 24px; }
  .delete-account-actions { flex-direction: column-reverse; }
  .delete-account-actions .button { width: 100%; }
  .editor-tabs { position: relative; top: auto; width: 100%; max-width: 100%; margin-inline: 0; contain: layout paint; border-radius: 12px; }
  .builder-step { padding: 21px; }
  .builder-details-content { padding: 20px; }
  .preview-sheet { padding: 18px; }
  .tooltip-trigger::after { position: fixed; left: 16px; right: 16px; bottom: 18px; width: auto; transform: translateY(4px); }
  .tooltip-trigger:hover::after,
  .tooltip-trigger:focus-visible::after { transform: translateY(0); }
  .review-grid { grid-template-columns: 1fr; }
  .editor-save-bar { position: static; align-items: stretch; flex-direction: column; }
  .editor-save-actions { width: 100%; margin-left: 0; }
  .editor-save-bar .button { width: 100%; }
  .result-hero { min-height: 0; align-items: flex-start; padding: 24px 20px 52px; }
  .result-icon { width: 46px; height: 46px; flex: 0 0 46px; }
  .result-section { padding: 20px; }
  .result-section-heading { align-items: flex-start; flex-direction: column; }
  .balance-status { white-space: normal; }
  .booking-review-header { display: none; }
  .booking-review-row { grid-template-columns: 1fr 1fr; gap: 7px 12px; padding: 14px; }
  .booking-review-row strong { grid-column: 1 / -1; }
  .booking-review-row span { display: flex; justify-content: space-between; text-align: left; }
  .booking-review-row span::before { content: attr(data-label); color: var(--muted); font-size: .7rem; font-weight: 750; text-transform: uppercase; }
  .booking-review-total { grid-template-columns: 1fr 1fr; gap: 6px 12px; }
  .booking-review-total strong:first-child { grid-column: 1 / -1; }
  .feedback-item { grid-template-columns: 32px minmax(0, 1fr); }
  .feedback-points { grid-column: 2; justify-self: start; }
  .result-actions { align-items: stretch; flex-direction: column; }
  .result-actions .button { width: 100%; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stats > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .list-card { align-items: flex-start; }
  .table-wrap { position: relative; margin-right: -16px; border-radius: 12px 0 0 12px; }
  .table-wrap table { min-width: 720px; }
  .table-wrap::after { position: sticky; right: 0; display: block; width: 28px; height: 1px; content: ""; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 24px; padding-block: 34px 28px; }
  .footer-brand { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 4px; }
  .legal-content .panel { padding: 21px; }
  .legal-definition-list > div { grid-template-columns: 1fr; gap: 3px; }
}

/* Course workspace and dashboard */
.course-workspace-hero {
  position: relative;
  z-index: 10;
  padding: 42px 0 36px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 88% 16%, rgba(217,239,145,.38), transparent 24%),
    linear-gradient(145deg, #f2f7f2, #e9f1eb);
}
.course-workspace-hero:has(.course-more-menu[open]) { z-index: 30; }
.course-workspace-hero .back-link { margin-bottom: 30px; }
.course-workspace-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px;
  align-items: end;
}
.course-workspace-heading h1 {
  max-width: 930px;
  margin: 12px 0 13px;
  overflow-wrap: normal;
  hyphens: none;
  font-size: clamp(3rem, 6.4vw, 5.8rem);
  line-height: .92;
}
.course-workspace-heading .lead { max-width: 760px; margin: 0; }
.course-visibility { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: .82rem; }
.course-visibility i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.course-inline-join { display: grid; min-width: 280px; gap: 7px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.78); }
.course-inline-join label { font-size: .72rem; font-weight: 800; }

.course-command-bar {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin-top: 42px;
}
.course-command-primary { display: grid; min-width: 0; flex: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.course-command-card {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
  padding: 14px 16px;
  border: 1px solid #bfd0c5;
  border-radius: 13px;
  background: rgba(255,255,255,.78);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.course-command-card:hover { border-color: var(--green); box-shadow: 0 9px 24px rgba(18,50,39,.08); transform: translateY(-2px); }
.course-command-card.is-primary { border-color: var(--green); background: var(--green); color: #fff; }
.course-command-card.is-primary small { color: #c8ddd4; }
.course-command-icon { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: #e5efe8; color: var(--green-dark); font-weight: 900; }
.course-command-card.is-primary .course-command-icon { background: rgba(255,255,255,.14); color: #fff; }
.course-command-card > span:last-child { display: grid; min-width: 0; gap: 2px; }
.course-command-card strong { font-size: .82rem; }
.course-command-card small { overflow: hidden; color: var(--muted); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.course-more-menu { position: relative; flex: 0 0 auto; }
.course-more-menu > summary { height: 100%; list-style: none; }
.course-more-menu > summary::-webkit-details-marker { display: none; }
.course-more-panel {
  position: absolute;
  z-index: 60;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: 315px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(12,42,31,.17);
}
.course-more-panel a { display: grid; gap: 2px; padding: 11px 12px; border-radius: 9px; color: var(--ink); text-decoration: none; }
.course-more-panel a:hover { background: var(--surface-soft); }
.course-more-panel strong { font-size: .78rem; }
.course-more-panel small { color: var(--muted); font-size: .67rem; }
.course-more-menu[open] { z-index: 61; }
.community-source { margin: -.1rem 0 .65rem !important; color: var(--muted); font-size: .72rem; }
.community-source strong { color: var(--green-dark); }
.email-chip-picker { display: grid; gap: .5rem; }
.email-chip-enhanced { display: grid; gap: .45rem; min-height: 7.2rem; padding: .55rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.email-chip-list { display: flex; flex-wrap: wrap; align-content: flex-start; gap: .38rem; }
.email-chip { display: inline-flex; align-items: center; gap: .35rem; max-width: 100%; padding: .35rem .42rem .35rem .6rem; border-radius: 999px; background: #e6f2eb; color: var(--green-dark); font-size: .72rem; font-weight: 800; overflow-wrap: anywhere; }
.email-chip button { display: grid; width: 1.55rem; min-height: 1.55rem; padding: 0; place-items: center; border: 0; border-radius: 50%; background: rgba(15,96,72,.1); color: inherit; cursor: pointer; }
.email-chip-enhanced > .input { margin-top: auto; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; }

.course-section-nav {
  position: sticky;
  z-index: 8;
  top: 71px;
  border-bottom: 1px solid var(--line);
  background: rgba(250,251,247,.94);
  backdrop-filter: blur(12px);
}
.course-section-nav .container { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.course-section-nav a { padding: 15px 16px 13px; border-bottom: 2px solid transparent; color: var(--muted); font-size: .76rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.course-section-nav a:hover { border-color: var(--green); color: var(--green-dark); }
.course-plan-section, .course-library-section, .course-people-section { scroll-margin-top: 132px; }
.course-plan-section { padding-top: 74px; }
.course-library-section { border-top: 1px solid var(--line); background: #f0f5f1; }
.course-people-section { border-top: 1px solid var(--line); }
.course-section-heading { align-items: end; }
.course-section-heading h2 { max-width: 820px; margin: 5px 0 9px; }
.course-section-heading p { max-width: 720px; margin: 0; color: var(--muted); }
.course-section-summary { display: grid; min-width: 104px; justify-items: end; }
.course-section-summary strong { color: var(--green); font: 700 2rem Georgia, serif; }
.course-section-summary span { color: var(--muted); font-size: .7rem; }

.course-outline { display: grid; gap: 10px; margin-top: 32px; }
.course-outline-item {
  --outline-indent: calc(var(--unit-depth) * 38px);
  display: grid;
  width: calc(100% - var(--outline-indent));
  margin-left: var(--outline-indent);
  grid-template-columns: 66px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(12,48,34,.035);
}
.course-outline-item.is-activity { border-left: 4px solid #8eb5a5; }
.course-outline-item.is-locked { background: #f2f4f1; opacity: .78; }
.course-outline-rail { display: flex; justify-content: center; padding-top: 22px; background: #f0f5f1; }
.course-outline-rail span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .72rem; font-weight: 900; }
.course-outline-body { min-width: 0; padding: 19px 21px 20px; }
.course-outline-topline { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.course-outline-topline .meta-row { gap: 8px; }
.course-optional, .course-linked-label { color: var(--muted); font-size: .66rem; }
.course-linked-label::before { content: "•"; margin-right: 6px; color: var(--green); }
.course-outline-body h3 { margin: 7px 0 10px; overflow-wrap: normal; hyphens: none; font-size: clamp(1.25rem, 2vw, 1.7rem); }
.course-outline-body h3 a { color: inherit; text-decoration: none; }
.course-outline-body h3 a:hover { color: var(--green); }
.course-outline-footer { display: flex; align-items: center; gap: 15px; min-height: 36px; }
.course-outline-footer .fine-print { margin: 0; }
.course-unit-actions { display: flex; align-items: center; gap: 5px; }
.course-unit-actions form { margin: 0; }
.course-unit-actions .icon-button { width: 34px; height: 34px; border: 1px solid transparent; color: var(--green-dark); font-size: .88rem; text-decoration: none; }
.course-unit-actions .icon-button:hover { border-color: #bdd0c4; background: #fff; }
.icon-button.is-danger { color: var(--danger); }
.course-locked-note { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; color: var(--muted); font-size: .77rem; }
.course-empty-state {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 28px;
  border: 1px dashed #b8cabf;
  border-radius: 16px;
  background: #f7faf7;
}
.course-empty-state > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 13px; background: #e3eee7; color: var(--green); font-size: 1.5rem; }
.course-empty-state h3, .course-empty-state p { margin: 0; }
.course-empty-state p { margin-top: 4px; color: var(--muted); font-size: .78rem; }

.course-library-group { margin-top: 42px; }
.course-library-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.course-library-heading > div { display: flex; align-items: center; gap: 10px; }
.course-library-heading h3 { margin: 0; font-size: 1.48rem; }
.course-library-heading > span { display: grid; min-width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #dfe9e2; color: var(--green-dark); font-size: .72rem; font-weight: 900; }
.course-kind-icon { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #bfd0c5; border-radius: 9px; color: var(--green); font: 700 .83rem Georgia, serif; }
.course-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.course-content-card {
  display: flex;
  min-width: 0;
  min-height: 255px;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15,52,38,.035);
}
.course-content-meta { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.course-assignment-state { color: var(--muted); font-size: .64rem; font-weight: 800; }
.course-assignment-state::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #b8c4bd; }
.course-assignment-state.is-assigned { color: var(--green); }
.course-assignment-state.is-assigned::before { background: var(--green); }
.course-content-card h4 { margin: 18px 0 7px; overflow-wrap: normal; hyphens: none; font: 700 1.28rem/1.12 Georgia, serif; }
.course-content-card h4 a { color: var(--green-dark); text-decoration: none; }
.course-content-card > p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.course-content-actions { display: flex; gap: 14px; margin-top: 14px; font-size: .73rem; }
.course-assignment-form { display: grid; gap: 6px; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line); }
.course-assignment-form label { color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.course-assignment-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.course-assignment-form .input { min-width: 0; }

.course-people-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 20px; margin-top: 30px; }
.course-member-pool { overflow: hidden; margin-top: 28px; border: 1px solid #9fc5b2; border-radius: 18px; background: linear-gradient(145deg, #edf6f0, #fff 70%); scroll-margin-top: 112px; box-shadow: 0 12px 30px rgba(15, 52, 38, .06); }
.course-member-pool-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid rgba(96, 139, 118, .23); }
.course-member-pool-heading h3 { margin: 4px 0 5px; font-size: 1.55rem; }
.course-member-pool-heading p { max-width: 720px; margin: 0; color: var(--muted); font-size: .78rem; }
.course-member-pool > form { display: grid; gap: 16px; padding: 20px 24px 22px; }
.course-member-pool-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr); gap: 12px; }
.course-member-pool-toolbar label { display: grid; gap: 6px; }
.course-member-pool-toolbar label > span { font-size: .69rem; font-weight: 850; }
.course-member-pool-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; max-height: 330px; overflow-y: auto; padding: 2px; }
.course-member-option { position: relative; display: grid; grid-template-columns: 20px 40px minmax(0, 1fr) 24px; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.course-member-option:hover { border-color: #8bb09e; }
.course-member-option:has(input:checked) { border-color: var(--green); background: #f0f8f3; box-shadow: inset 0 0 0 1px var(--green); }
.course-member-option[hidden] { display: none; }
.course-member-option > input { width: 18px; height: 18px; accent-color: var(--green); }
.course-member-option > span:nth-of-type(2) { display: grid; min-width: 0; gap: 2px; }
.course-member-option strong, .course-member-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.course-member-option small { color: var(--muted); font-size: .65rem; }
.course-member-option > b { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #dfeae3; color: transparent; font-size: .68rem; }
.course-member-option:has(input:checked) > b { background: var(--green); color: #fff; }
.course-member-pool-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; padding-top: 4px; }
.course-member-pool-actions > span { margin-right: auto; color: var(--muted); font-size: .72rem; font-weight: 750; }
.course-member-pool-empty { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px 24px; }
.course-member-pool-empty p { margin: 3px 0 0; color: var(--muted); font-size: .76rem; }
.course-management-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.course-management-heading { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px; border-bottom: 1px solid var(--line); background: #f5f8f5; }
.course-management-heading h3, .course-management-heading p { margin: 0; }
.course-management-heading h3 { font-size: 1.35rem; }
.course-management-heading p { margin-top: 3px; color: var(--muted); font-size: .69rem; }
.course-person-list, .course-group-list { display: grid; }
.course-person-card {
  display: grid;
  grid-template-columns: 42px minmax(150px, 1fr) minmax(240px, auto) auto;
  gap: 12px;
  align-items: center;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
}
.course-person-card:last-child { border-bottom: 0; }
.course-avatar, .dashboard-list-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: #e2eee6; color: var(--green-dark); font-weight: 900; }
.dashboard-list-avatar.is-logo { object-fit: contain; padding: 3px; background: #fff; }
.course-person-name { display: grid; min-width: 0; gap: 2px; }
.course-person-name small { overflow: hidden; color: var(--muted); font-size: .68rem; text-overflow: ellipsis; }
.course-role-form { display: grid; grid-template-columns: minmax(140px, 1fr) auto; gap: 7px; }
.course-lead-badge { padding: 6px 9px; border-radius: 999px; background: #e2eee6; color: var(--green-dark); font-size: .62rem; font-weight: 900; }
.course-group-card { display: grid; gap: 12px; padding: 18px; border-bottom: 1px solid var(--line); scroll-margin-top: 92px; }
.course-group-card:target { background: #f7fbf8; box-shadow: inset 3px 0 0 var(--green); }
.course-group-card:last-child { border-bottom: 0; }
.course-group-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.course-group-topline > div { display: grid; }
.course-group-topline small { color: var(--muted); font-size: .68rem; }
.course-group-topline > span { color: var(--muted); font-size: .65rem; }
.course-group-topline .course-group-meta { display: flex; align-items: center; gap: 8px; }
.course-group-meta > span { color: var(--muted); font-size: .65rem; white-space: nowrap; }
.course-group-members { display: flex; flex-wrap: wrap; gap: 6px; }
.course-group-member-chip { display: inline-flex; align-items: center; overflow: hidden; border-radius: 999px; background: #eef4f0; color: var(--green-dark); }
.course-group-member-chip span { padding: 5px 5px 5px 9px; font-size: .63rem; }
.course-group-member-chip button { display: grid; width: 27px; min-height: 27px; padding: 0; place-items: center; border: 0; background: transparent; color: #678074; font: inherit; font-size: .72rem; font-weight: 850; cursor: pointer; }
.course-group-member-chip button:hover { background: #feeceb; color: var(--danger); }
.course-group-member-chip button:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
.course-group-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.course-empty-mini { padding: 22px; }
.course-empty-mini p { margin: 0 0 6px; color: var(--muted); }
.course-grants-section { padding-top: 0; }
.course-grant-list { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.course-grant-list article { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.course-grant-list article:last-child { border-bottom: 0; }
.course-grant-list article > div { display: grid; }
.course-grant-list small { color: var(--muted); font-size: .67rem; }

.dashboard-page {
  min-height: calc(100vh - 72px);
  padding: 66px 0 92px;
  background:
    radial-gradient(circle at 92% 2%, rgba(217,239,145,.25), transparent 20%),
    #f6f8f4;
}
.dashboard-welcome { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.dashboard-welcome h1 { max-width: 800px; margin: 8px 0 10px; overflow-wrap: normal; hyphens: none; font-size: clamp(3rem, 5.2vw, 5rem); line-height: .94; }
.dashboard-welcome p { margin: 0; color: var(--muted); font-size: 1rem; }
.dashboard-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 36px; }
.dashboard-metrics article { display: flex; align-items: center; gap: 13px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.82); }
.dashboard-metric-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: #e3eee7; color: var(--green); font: 700 .9rem Georgia, serif; }
.dashboard-metrics article > div { display: grid; }
.dashboard-metrics strong { font: 700 1.42rem Georgia, serif; }
.dashboard-metrics article > div span { color: var(--muted); font-size: .68rem; }
.dashboard-continue-card {
  position: relative;
  display: grid;
  min-height: 345px;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 40px;
  align-items: center;
  margin-top: 24px;
  overflow: hidden;
  padding: clamp(30px, 4vw, 54px);
  border-radius: 22px;
  background: var(--ink);
  color: #fff;
  box-shadow: 0 22px 55px rgba(12,42,31,.14);
}
.dashboard-continue-card::after { position: absolute; right: -130px; bottom: -200px; width: 460px; height: 460px; border: 1px solid rgba(217,239,145,.13); border-radius: 50%; content: ""; }
.dashboard-continue-copy { position: relative; z-index: 1; }
.dashboard-continue-copy .eyebrow { color: var(--lime); }
.dashboard-continue-copy h2 { max-width: 680px; margin: 8px 0 12px; color: #fff; overflow-wrap: normal; hyphens: none; font-size: clamp(2.4rem, 4.2vw, 4rem); line-height: .96; }
.dashboard-continue-copy p { max-width: 650px; margin: 0 0 24px; color: #b9cbc3; }
.dashboard-continue-copy .button.ghost { border-color: rgba(255,255,255,.35); background: transparent; color: #fff; }
.dashboard-continue-copy .button.ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.dashboard-continue-visual {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1px 38px 38px;
  gap: 10px 20px;
  padding: 30px;
  border: 1px solid rgba(255,255,255,.16);
  border-top: 3px solid var(--lime);
  border-radius: 15px;
  background: rgba(255,255,255,.055);
}
.dashboard-continue-visual span { color: var(--lime); font-size: .64rem; font-weight: 900; letter-spacing: .1em; }
.dashboard-continue-visual i { height: 1px; background: rgba(255,255,255,.22); }
.dashboard-continue-visual i:nth-of-type(n+3) { height: 38px; border-radius: 7px; background: rgba(255,255,255,.08); }
.dashboard-continue-visual strong { position: absolute; top: 53%; left: 50%; display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--lime); color: var(--ink); font: italic 700 .8rem Georgia, serif; transform: translate(-50%,-50%); }
.dashboard-onboarding-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 18px; align-items: center; margin-top: 24px; padding: 28px; border: 1px dashed #b8cabf; border-radius: 18px; background: #fff; }
.dashboard-onboarding-card > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; background: #e2eee6; color: var(--green); font-size: 1.4rem; }
.dashboard-onboarding-card h2, .dashboard-onboarding-card p { margin: 0; }
.dashboard-onboarding-card p { margin-top: 4px; color: var(--muted); }
.dashboard-workspace-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 42px; }
.dashboard-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.dashboard-courses-panel { grid-row: span 2; }
.dashboard-panel-heading { display: flex; min-height: 92px; align-items: end; justify-content: space-between; gap: 18px; padding: 21px 23px 17px; border-bottom: 1px solid var(--line); background: #f9fbf8; }
.dashboard-panel-heading h2 { margin: 3px 0 0; font-size: 1.7rem; }
.dashboard-panel-heading .text-link { font-size: .7rem; }
.dashboard-course-list, .dashboard-exam-list, .dashboard-simple-list { display: grid; }
.dashboard-course-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto 22px; gap: 13px; align-items: center; padding: 19px 22px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.dashboard-course-card:last-child { border-bottom: 0; }
.dashboard-course-card:hover, .dashboard-exam-list > a:hover, .dashboard-simple-list > a:hover { background: #f3f7f4; }
.dashboard-course-mark { color: #8da398; font: 700 .72rem Georgia, serif; }
.dashboard-course-card > span:nth-child(2), .dashboard-exam-list > a > span:nth-child(2), .dashboard-simple-list > a > span:nth-child(2) { display: grid; min-width: 0; }
.dashboard-course-card small, .dashboard-exam-list small, .dashboard-simple-list small { overflow: hidden; color: var(--muted); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-course-card > i, .dashboard-exam-list > a > i { color: var(--green); font-style: normal; }
.dashboard-exam-list > a { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.dashboard-date { display: grid; width: 48px; min-height: 48px; place-content: center; justify-items: center; border-radius: 10px; background: #e7f0e9; }
.dashboard-date strong { color: var(--green-dark); font: 700 .95rem Georgia, serif; }
.dashboard-date small { font-size: .55rem; }
.dashboard-simple-list > a { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px 20px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.dashboard-list-avatar.is-company { background: var(--green); color: #fff; }
.dashboard-empty { padding: 24px; }
.dashboard-empty p, .dashboard-empty small { margin: 0; color: var(--muted); }
.dashboard-empty small { font-size: .68rem; }

@media (max-width: 1050px) {
  .course-command-bar { align-items: stretch; flex-direction: column; }
  .course-more-menu > summary { min-height: 48px; }
  .course-more-panel { right: auto; left: 0; }
  .course-content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-people-grid { grid-template-columns: 1fr; }
  .dashboard-continue-card { grid-template-columns: 1fr minmax(280px, .65fr); }
}

@media (max-width: 760px) {
  .course-workspace-hero { padding: 28px 0 24px; }
  .course-workspace-hero .back-link { margin-bottom: 24px; }
  .course-workspace-heading { grid-template-columns: 1fr; }
  .course-workspace-heading h1 { font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .course-command-bar { margin-top: 30px; }
  .course-command-primary { grid-template-columns: 1fr; }
  .course-command-card small { white-space: normal; }
  .course-more-menu, .course-more-menu > summary { width: 100%; }
  .course-more-panel { position: static; width: 100%; margin-top: 7px; box-shadow: none; }
  .course-section-nav { top: 61px; }
  .course-section-nav .container { width: 100%; padding-inline: 16px; }
  .course-section-heading { align-items: stretch; flex-direction: column; }
  .course-section-summary { justify-items: start; }
  .course-outline-item { --outline-indent: calc(var(--unit-depth) * 14px); grid-template-columns: 44px minmax(0, 1fr); }
  .course-outline-rail { padding-top: 18px; }
  .course-outline-rail span { width: 28px; height: 28px; font-size: .62rem; }
  .course-outline-body { padding: 16px 14px 17px; }
  .course-outline-topline { align-items: flex-start; flex-direction: column; }
  .course-unit-actions { width: 100%; justify-content: flex-end; }
  .course-outline-footer { align-items: flex-start; flex-direction: column; }
  .course-empty-state { grid-template-columns: 46px minmax(0, 1fr); }
  .course-empty-state .button { grid-column: 1 / -1; width: 100%; }
  .course-content-grid { grid-template-columns: 1fr; }
  .course-content-card { min-height: 230px; }
  .course-section-heading .actions { width: 100%; }
  .course-section-heading .actions .button { flex: 1; }
  .course-member-pool-heading, .course-member-pool-empty { align-items: stretch; flex-direction: column; }
  .course-member-pool-toolbar, .course-member-pool-list { grid-template-columns: 1fr; }
  .course-member-pool-empty .button { width: 100%; }
  .course-person-card { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .course-role-form { grid-column: 1 / -1; }
  .course-person-card > form:last-child, .course-person-card > .course-lead-badge { grid-column: 3; grid-row: 1; }
  .course-group-add { grid-template-columns: 1fr; }
  .course-grant-list article { grid-template-columns: 1fr; gap: 9px; }
  .dashboard-page { padding: 42px 0 70px; }
  .dashboard-welcome { align-items: stretch; flex-direction: column; }
  .dashboard-welcome .button { width: 100%; }
  .dashboard-metrics { grid-template-columns: 1fr; }
  .dashboard-continue-card { min-height: 0; grid-template-columns: 1fr; padding: 28px 22px; }
  .dashboard-continue-visual { min-height: 210px; }
  .dashboard-onboarding-card { grid-template-columns: 46px minmax(0, 1fr); }
  .dashboard-onboarding-card .actions { grid-column: 1 / -1; }
  .dashboard-workspace-grid { grid-template-columns: 1fr; }
  .dashboard-courses-panel { grid-row: auto; }
}

/* Focused UI/UX refinements: explicit work areas, compact administration and mobile-first editors */
[data-library-panel][hidden], [data-course-management-panel][hidden] { display: none !important; }
[data-creator-only][hidden], [data-learner-creator-bridge][hidden] { display: none !important; }

.creator-mode-bridge { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: 1rem 1.1rem; border: 1px dashed #a8c6b6; border-radius: .9rem; background: #f7faf8; }
.creator-mode-bridge > div { display: grid; gap: .2rem; }
.creator-mode-bridge span { color: var(--muted); font-size: .84rem; }
.exercise-creator-bridge { margin-top: 2rem; }

.course-management-tabs { position: sticky; z-index: 8; top: 72px; border-bottom: 1px solid var(--line); background: rgba(247,250,248,.96); backdrop-filter: blur(12px); }
.course-management-tabs > .container { display: flex; gap: 1.55rem; overflow-x: auto; padding-block: .25rem 0; scrollbar-width: thin; }
.course-management-tabs button { position: relative; min-height: 50px; flex: 0 0 auto; padding: .7rem .05rem .8rem; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
.course-management-tabs button:hover { color: var(--green-dark); }
.course-management-tabs button::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: transparent; content: ""; }
.course-management-tabs button.is-active { color: var(--green-dark); }
.course-management-tabs button.is-active::after { background: var(--green); }
.course-library-initial-empty { max-width: none; }
.course-library-initial-empty .actions { justify-content: center; }

.library-overview-strip { position: sticky; z-index: 15; top: 72px; padding: .65rem; border: 1px solid var(--line); border-radius: 1rem; background: rgba(247,250,248,.96); backdrop-filter: blur(12px); }
.library-overview-strip a { min-height: 58px; }
.library-overview-strip a.is-active { border-color: var(--green); background: #e7f3ed; box-shadow: inset 0 0 0 1px var(--green); }
.library-section-empty { min-height: 240px; align-content: center; }

.material-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .8rem; }
.material-active-filters > span { color: var(--muted); font-size: .75rem; font-weight: 800; }
.material-active-filters a { display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; padding: .4rem .65rem; border: 1px solid #b7d1c4; border-radius: 999px; background: #e7f3ed; color: var(--green-dark); font-size: .76rem; font-weight: 800; text-decoration: none; }

.organization-create-card { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 4vw, 2rem); }
.organization-create-actions { display: flex; justify-content: flex-end; gap: .7rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.organization-create-next { display: grid; gap: .25rem; margin-top: 1rem; padding: 1rem 1.2rem; border-radius: .85rem; background: #edf5f1; }
.organization-create-next span { color: var(--muted); font-size: .85rem; }
.organization-setup-checklist { display: grid; gap: 1.2rem; margin: 1rem 0 2rem; padding: clamp(1.2rem, 3vw, 1.75rem); border: 1px solid #a9cabb; border-radius: 1.1rem; background: linear-gradient(135deg, #edf8f2, #fff); box-shadow: var(--shadow-small); }
.organization-setup-checklist h2, .organization-setup-checklist p { margin: 0; }
.organization-setup-checklist ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .65rem; margin: 0; padding: 0; list-style: none; }
.organization-setup-checklist li a { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .15rem .6rem; min-height: 100%; padding: .85rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; color: inherit; text-decoration: none; }
.organization-setup-checklist li a > span { grid-row: 1 / 3; display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .6rem; background: var(--green-dark); color: #fff; font-weight: 900; }
.organization-setup-checklist small { color: var(--muted); }
.organization-setup-checklist li.is-complete a { border-color: #8dc6ab; background: #f0faf5; }
.organization-setup-checklist li.is-complete a > span { background: #e0f2e8; color: var(--green-dark); }
.organization-setup-checklist li.is-optional a { border-style: dashed; }
.organization-setup-checklist li.is-optional a > span { background: var(--surface-soft); color: var(--green-dark); }

.billing-free-note { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding: 1.5rem; background: #edf7f1; }
.billing-free-note h2, .billing-free-note p { margin: .25rem 0 0; }
.billing-plan-meta.is-free { grid-template-columns: repeat(2,minmax(0,1fr)); }

.owned-organization-transfer { display: grid; gap: .45rem; margin-top: .9rem; padding: .85rem; border: 1px solid #e2b3b3; border-radius: .75rem; background: #fff7f7; }
.owned-organization-transfer a { color: var(--danger); font-weight: 750; }
.mc-title-compact { display: none; }

@media (max-width: 1080px) {
  .mc-live-preview, .exam-live-preview, .text-live-preview, .structured-live-preview, .course-live-preview, .framework-live-preview, .account-live-preview, .domain-live-preview, .chart-live-preview { order: 2 !important; }
  .organization-setup-checklist ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .dashboard-welcome h1 { max-width: 100%; overflow-wrap: anywhere; font-size: clamp(2.35rem, 12vw, 3rem); }
  .guided-form-page h1, .organization-library-page h1, .mc-editor-page h1 { overflow-wrap: anywhere; font-size: clamp(2.25rem, 11vw, 3.1rem); }
  .mc-title-full { display: none; }
  .mc-title-compact { display: inline; }
  .creator-mode-bridge, .billing-free-note { align-items: stretch; flex-direction: column; }
  .creator-mode-bridge .button, .billing-free-note .button { width: 100%; }
  .library-overview-strip { top: 62px; display: flex; overflow-x: auto; padding: .5rem; }
  .library-overview-strip a { flex: 0 0 min(78vw, 250px); }
  .library-overview-strip a i { flex: 0 0 auto; }
  .course-management-tabs { top: 62px; }
  .organization-setup-checklist ol { grid-template-columns: 1fr; }
  .organization-create-actions { display: grid; grid-template-columns: 1fr; }
  .organization-create-actions .button { width: 100%; }
  .material-filter-actions { position: sticky; bottom: 0; z-index: 2; margin: 0 -.8rem -.8rem; padding: .8rem; border-top: 1px solid var(--line); background: rgba(255,255,255,.96); }
  .exam-question-navigation { gap: .4rem; padding: .55rem; }
  .exam-question-navigation button { min-width: 3.4rem; width: 3.4rem; grid-template-columns: 2rem .55rem; gap: .25rem; padding: .55rem; }
  .exam-question-navigation button > span:nth-child(2) { display: none; }
  .exam-player-sidebar-heading { padding-bottom: .8rem; }
}

/* Import task rehearsal uses the same visual language as a saved course result. */
.import-preview-question { display: grid; gap: 1.25rem; }
.import-preview-result { display: grid; gap: 1.1rem; }
.import-preview-result:focus:not(:focus-visible) { outline: none; }
.import-preview-result[hidden], .import-preview-question[hidden] { display: none; }
.import-preview-result .result-hero { margin: 0; }
.import-preview-result .result-hero h2 { margin: .15rem 0; font-size: clamp(1.8rem, 4vw, 3.25rem); }
.import-preview-result-detail { display: grid; gap: .55rem; }
.import-preview-result-line { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .7rem; align-items: start; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; }
.import-preview-result-line > span { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 999px; background: #edf3f0; font-weight: 850; }
.import-preview-result-line > div { display: grid; gap: .15rem; }
.import-preview-result-line small { color: var(--muted); }
.import-preview-result-line.is-correct { border-color: #a8d3b9; background: #edf8f1; }
.import-preview-result-line.is-correct > span { background: var(--green); color: #fff; }
.import-preview-result-line.needs-correction { border-color: #edbeb8; background: #fff3f1; }
.import-preview-result-line.needs-correction > span { background: #b23a32; color: #fff; }

/* Public contact hub. */
.contact-page { overflow: hidden; }
.contact-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 13rem; gap: 2rem; align-items: center; min-height: 18rem; padding: clamp(1.75rem, 5vw, 4rem); overflow: hidden; border: 1px solid #9fc9b3; border-radius: 1.4rem; background: radial-gradient(circle at 85% 10%, rgba(190, 238, 209, .85), transparent 34%), linear-gradient(135deg, #f4fbf7, #fff); }
.contact-hero h1 { max-width: 12ch; margin: .35rem 0 0; font-size: clamp(2.6rem, 5.2vw, 5rem); line-height: .96; text-wrap: balance; }
.contact-hero p { max-width: 65ch; margin: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.65; }
.contact-hero-orbit { position: relative; display: grid; width: 11rem; height: 11rem; place-items: center; justify-self: center; border: 1px solid rgba(15, 116, 88, .22); border-radius: 50%; }
.contact-hero-orbit::before, .contact-hero-orbit::after { position: absolute; inset: 1.35rem; border: 1px dashed rgba(15, 116, 88, .28); border-radius: inherit; content: ""; }
.contact-hero-orbit::after { inset: 3rem; border-style: solid; }
.contact-hero-orbit > span { z-index: 1; display: grid; width: 4rem; height: 4rem; place-items: center; border-radius: 1.15rem; background: var(--green); color: #fff; box-shadow: 0 15px 35px rgba(15, 116, 88, .28); font: 800 2.3rem/1 Georgia, serif; }
.contact-hero-orbit i { position: absolute; width: .7rem; height: .7rem; border: 3px solid #fff; border-radius: 50%; background: #d49422; box-shadow: 0 3px 10px rgba(16, 40, 32, .18); }
.contact-hero-orbit i:nth-of-type(1) { top: .7rem; left: 5rem; }.contact-hero-orbit i:nth-of-type(2) { right: .8rem; bottom: 2.2rem; }.contact-hero-orbit i:nth-of-type(3) { bottom: 1.2rem; left: 1.6rem; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(17rem, .38fr); gap: 1.25rem; align-items: start; margin-top: 1.25rem; }
.contact-form { display: grid; gap: 1.2rem; padding: clamp(1.25rem, 3vw, 2.25rem); }
.contact-private-note { padding: .45rem .7rem; border-radius: 999px; background: #e5f2eb; color: var(--green-dark); font-size: .68rem; font-weight: 780; }
.contact-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.contact-form-footer p { max-width: 52ch; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.contact-paths { display: grid; gap: .75rem; }
.contact-paths > div { display: grid; gap: .45rem; padding: 1.15rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: var(--shadow-small); }
.contact-paths h2 { margin: 0; font-size: 1.15rem; }.contact-paths p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }.contact-paths a { margin-top: .25rem; color: var(--green-dark); font-size: .74rem; font-weight: 800; overflow-wrap: anywhere; }
.contact-path-icon { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; border-radius: .7rem; background: #e7f3ec; color: var(--green); }.contact-path-icon .ui-icon { width: 1.2rem; height: 1.2rem; }
.contact-success { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; margin-top: 1.25rem; padding: 1.15rem 1.3rem; border: 1px solid #8dc2a6; border-radius: 1rem; background: #eaf7ef; }
.contact-success > span { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: 1.3rem; }.contact-success h2, .contact-success p { margin: 0; }.contact-success p { color: var(--muted); font-size: .8rem; }
.cloze-grading-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .85rem; }
.cloze-grading-options .checkbox-row { min-height: 100%; align-items: flex-start; padding: .85rem; border: 1px solid var(--line); border-radius: .85rem; background: #f8fbf9; }
.typo-tolerance-note { display: grid; gap: .2rem; }.typo-tolerance-note span { color: var(--muted); }

/* A calm but memorable recovery page for unexpected server errors. */
.system-error-page { position: relative; display: grid; min-height: 72vh; place-items: center; overflow: hidden; background: linear-gradient(155deg, #f4f9f6 0 58%, #edf5f0 58%); }
.system-error-glow { position: absolute; width: 42rem; height: 42rem; border-radius: 50%; background: radial-gradient(circle, rgba(46, 175, 124, .18), transparent 67%); transform: translate(36vw, -18rem); }
.system-error-layout { position: relative; display: grid; grid-template-columns: minmax(12rem, .55fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-block: clamp(3rem, 9vw, 7rem); }
.system-error-signal { position: relative; display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 18rem; color: var(--green-dark); }
.system-error-signal > span { z-index: 1; font: 800 clamp(4.5rem, 9vw, 8rem)/1 Georgia, serif; text-shadow: 0 8px 28px rgba(15, 116, 88, .18); }.system-error-signal > i { width: .65rem; height: .65rem; border-radius: 50%; background: #d49422; box-shadow: 0 0 0 .45rem rgba(212, 148, 34, .12); }
.system-error-signal > b { position: absolute; border: 1px solid rgba(15, 116, 88, .18); border-radius: 50%; }.system-error-signal > b:nth-of-type(1) { width: 15rem; height: 15rem; }.system-error-signal > b:nth-of-type(2) { width: 20rem; height: 20rem; border-style: dashed; }.system-error-signal > b:nth-of-type(3) { width: 8rem; height: 8rem; }
.system-error-copy h1 { max-width: 12ch; margin: .4rem 0 .8rem; font-size: clamp(2.7rem, 6vw, 5.6rem); line-height: .94; }.system-error-copy > p { max-width: 60ch; color: var(--muted); line-height: 1.65; }
.system-error-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.35rem; }.button.warning { border-color: #c58a1d; background: #fff3d8; color: #724c00; }.button.warning:hover { background: #ffe8ae; }
.system-error-fallback { display: inline-block; margin-top: 1rem; color: var(--green-dark); font-size: .75rem; font-weight: 780; }
.system-error-status { grid-column: 2; display: grid; gap: .25rem; max-width: 28rem; padding: .9rem 1rem; border: 1px solid #aec9bb; border-radius: .85rem; background: rgba(255,255,255,.72); }.system-error-status > span { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .68rem; font-weight: 780; text-transform: uppercase; }.system-error-status i { width: .55rem; height: .55rem; border-radius: 50%; background: #d49422; }.system-error-status p { margin: 0; color: var(--muted); font-size: .72rem; }

@media (max-width: 800px) {
  .contact-hero, .contact-layout, .system-error-layout { grid-template-columns: 1fr; }
  .contact-hero-orbit { position: absolute; right: -3rem; bottom: -4rem; opacity: .35; }
  .contact-form-footer, .contact-success { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .contact-form-footer .button, .contact-success .button { width: 100%; }
  .system-error-signal { min-height: 10rem; }.system-error-signal > b:nth-of-type(2) { width: 17rem; height: 17rem; }
  .system-error-status { grid-column: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .contact-hero-orbit::before, .system-error-signal > b:nth-of-type(2) { animation: calcoria-orbit 24s linear infinite; }
  .system-error-signal > i { animation: calcoria-pulse 2.6s ease-in-out infinite; }
}
@keyframes calcoria-orbit { to { transform: rotate(360deg); } }
@keyframes calcoria-pulse { 50% { transform: scale(.72); opacity: .6; } }

@media (prefers-reduced-motion: reduce) {
  .course-management-tabs, .library-overview-strip { scroll-behavior: auto; }
}

/* Clear learning/management workspaces */
[data-workspace-section][hidden], .table-scroll-hint[hidden], .lost-secret[hidden] { display: none !important; }
.workspace-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  width: min(100%, 46rem);
  margin: 1.35rem 0 2rem;
  padding: .4rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 30px rgba(18,52,40,.07);
}
.workspace-mode-switch.is-compact { margin-bottom: 1rem; }
.workspace-mode-switch button {
  display: grid;
  grid-template-columns: 2rem minmax(0,1fr);
  gap: 0 .65rem;
  align-items: center;
  min-height: 4.4rem;
  padding: .7rem .85rem;
  border: 0;
  border-radius: .75rem;
  background: transparent;
  color: var(--muted);
  text-align: left;
  cursor: pointer;
}
.workspace-mode-switch button > span { grid-row: 1 / 3; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .65rem; background: #edf3f0; color: var(--green-dark); }
.workspace-mode-switch button strong { color: var(--ink); font-size: .95rem; }
.workspace-mode-switch button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace-mode-switch button.is-active { background: var(--green-dark); color: rgba(255,255,255,.78); box-shadow: 0 8px 20px rgba(15,75,55,.2); }
.workspace-mode-switch button.is-active strong { color: #fff; }
.workspace-mode-switch button.is-active small { color: #d9f0e4; }
.workspace-mode-switch button.is-active > span { background: rgba(255,255,255,.14); color: #fff; }
.workspace-mode-switch button:focus-visible { outline: 3px solid rgba(55,139,102,.35); outline-offset: 2px; }
[data-workspace-root="course"][data-workspace-current="learn"] .course-plan-commandbar,
[data-workspace-root="course"][data-workspace-current="learn"] .course-editor-guide,
[data-workspace-root="course"][data-workspace-current="learn"] .course-unit-actions,
[data-workspace-root="course"][data-workspace-current="learn"] .course-content-picker,
[data-workspace-root="course"][data-workspace-current="learn"] .course-drop-hint,
[data-workspace-root="course"][data-workspace-current="learn"] .course-root-drop-hint,
[data-workspace-root="course"][data-workspace-current="learn"] .course-manage-only,
[data-workspace-root="course"][data-workspace-current="learn"] .course-plan-save-state,
[data-workspace-root="course"][data-workspace-current="learn"] .course-inline-editor,
[data-workspace-root="course"][data-workspace-current="learn"] .course-module-nav a { display: none !important; }

.public-course-card.is-enrolled { border-color: #75ad91; background: linear-gradient(145deg, #fff, #eef8f2); }
.public-course-card.is-enrolled .eyebrow { color: var(--green-dark); }
.form-error-summary { display: grid; gap: .2rem; margin-bottom: .8rem; padding: .8rem .9rem; border: 1px solid #d89595; border-radius: .75rem; background: #fff5f5; color: #7b2424; }
.form-error-summary span { font-size: .84rem; }
.form-error-summary:focus { outline: 3px solid rgba(174,52,52,.18); }

/* Searchable material catalog */
.material-catalog-heading { margin-bottom: 1.4rem; }
.material-catalog-filters { display: grid; gap: .7rem; max-width: 1040px; }
.material-search-bar { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .55rem .55rem .55rem 1.05rem; border: 1px solid #b8cdc2; border-radius: 1.15rem; background: #fff; box-shadow: 0 15px 45px rgba(11,67,47,.11); transition: border-color .18s, box-shadow .18s; }
.material-search-bar:focus-within { border-color: var(--green); box-shadow: 0 0 0 4px rgba(15,116,88,.1), 0 18px 50px rgba(11,67,47,.13); }
.material-search-mark { position: relative; width: 1.15rem; height: 1.15rem; border: 2px solid var(--green); border-radius: 50%; }
.material-search-mark::after { position: absolute; right: -.38rem; bottom: -.25rem; width: .48rem; height: 2px; border-radius: 2px; background: var(--green); content: ""; transform: rotate(45deg); }
.material-search-bar input { width: 100%; min-width: 0; padding: .55rem .35rem; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 1rem; }
.material-search-bar input::placeholder { color: #72827a; }
.material-search-hint { margin: 0 .35rem .15rem; color: var(--muted); font-size: .73rem; }
.material-filter-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: rgba(255,255,255,.72); }
.material-filter-panel > summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: .75rem; padding: .8rem 1rem; cursor: pointer; list-style: none; }
.material-filter-panel > summary::-webkit-details-marker { display: none; }
.material-filter-panel > summary:hover { background: #f5f9f6; }
.material-filter-panel > summary > span:nth-child(2) { display: grid; }
.material-filter-title-mobile { display: none; }
.material-filter-panel > summary strong { color: var(--ink); font-size: .82rem; }
.material-filter-panel > summary small { color: var(--muted); font-size: .68rem; font-weight: 500; }
.material-filter-panel > summary b { padding: .25rem .5rem; border-radius: 999px; background: #dff1e7; color: var(--green-dark); font-size: .65rem; }
.material-filter-panel > summary > i { width: .55rem; height: .55rem; border-right: 2px solid var(--green-dark); border-bottom: 2px solid var(--green-dark); transform: rotate(45deg); transition: transform .18s; }
.material-filter-panel[open] > summary > i { transform: rotate(225deg); }
.material-filter-summary-icon { position: relative; width: 1.4rem; height: 1.4rem; background: linear-gradient(var(--green),var(--green)) 2px 4px/18px 2px no-repeat, linear-gradient(var(--green),var(--green)) 2px 11px/18px 2px no-repeat, linear-gradient(var(--green),var(--green)) 2px 18px/18px 2px no-repeat; }
.material-filter-summary-icon::after { position: absolute; inset: 1px auto auto 7px; width: 4px; height: 4px; border: 2px solid #fff; border-radius: 50%; background: var(--green); box-shadow: 7px 7px 0 -2px var(--green), 7px 7px 0 0 #fff, -2px 14px 0 -2px var(--green), -2px 14px 0 0 #fff; content: ""; }
.material-filter-body { padding: .9rem 1rem 1rem; border-top: 1px solid var(--line); background: #fff; }
.material-filter-panel:not([open]) > .material-filter-body { display: none; }
.material-filter-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.material-filter-grid label { display: grid; gap: .35rem; min-width: 0; }
.material-filter-grid label > span { color: #50645a; font-size: .68rem; font-weight: 850; letter-spacing: .025em; text-transform: uppercase; }
.material-filter-grid select { width: 100%; min-width: 0; height: 2.75rem; padding: 0 2.2rem 0 .8rem; border: 1px solid #c7d5cd; border-radius: .7rem; background-color: #f8faf8; color: var(--ink); font: inherit; font-size: .82rem; font-weight: 700; }
.material-filter-grid select:focus { border-color: var(--green); outline: 3px solid rgba(15,116,88,.1); }
.material-filter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .9rem; margin-top: .9rem; }
.material-result-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 2rem 0 1rem; }
.material-result-heading > div { display: flex; align-items: baseline; gap: .55rem; }
.material-result-heading strong { color: var(--green-dark); font-size: 1.6rem; }
.material-result-heading span, .material-result-heading p { color: var(--muted); }
.material-result-heading p { margin: 0; }
.material-catalog-grid { align-items: stretch; }
.material-catalog-card { display: flex; flex-direction: column; min-height: 17.5rem; }
.material-catalog-card h2 { margin: .8rem 2rem .45rem 0; }
.material-catalog-card > p { flex: 1; }
.material-topic-list { display: flex; flex-wrap: wrap; gap: .35rem; margin: .75rem 0; }
.material-topic-list span { padding: .28rem .5rem; border-radius: 999px; background: #edf4f0; color: var(--green-dark); font-size: .7rem; font-weight: 750; }
.material-catalog-card footer { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: auto; padding: .75rem 2rem 0 0; border-top: 1px solid var(--line); background: transparent; color: var(--muted); font-size: .72rem; }
.material-card-visibility { color: var(--green-dark); font-weight: 750; }
.material-catalog-card footer time { margin-left: auto; }
.material-catalog-empty { grid-column: 1 / -1; }
.material-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }
.material-pagination > span { color: var(--muted); font-size: .85rem; font-weight: 750; }
.material-pagination .is-disabled { pointer-events: none; opacity: .45; }

/* Tables stay usable on phones and tablets */
[data-responsive-table] { position: relative; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
[data-responsive-table].is-scrollable { border-inline-end: 1px solid rgba(24,70,53,.13); box-shadow: inset -14px 0 14px -16px rgba(5,35,25,.55); }
[data-responsive-table]:focus-visible { outline: 3px solid rgba(55,139,102,.28); outline-offset: 3px; }
.table-scroll-hint { margin: 0 0 .45rem; color: var(--muted); font-size: .78rem; font-weight: 700; }
.table-scroll-hint::before { content: "↔ "; color: var(--green-dark); }
.pricing-comparison-scroll th:first-child { position: sticky; left: 0; z-index: 2; background: #fff; box-shadow: 8px 0 14px -14px rgba(4,34,24,.65); }
.pricing-comparison-scroll thead th:first-child { z-index: 3; background: #f4f8f6; }

/* 404 with a small balancing Easter egg */
.lost-page { position: relative; isolation: isolate; min-height: min(760px, calc(100vh - 7rem)); display: grid; align-items: center; overflow: hidden; padding: clamp(3rem,8vw,7rem) 0; background: radial-gradient(circle at 72% 42%, #dff4e8 0, transparent 35%), linear-gradient(135deg,#f8fbf9 0%,#eef6f1 100%); }
.lost-page-glow { position: absolute; z-index: -1; inset: auto -8rem -11rem auto; width: 34rem; height: 34rem; border: 1px solid rgba(47,119,87,.15); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.22), 0 0 0 8rem rgba(57,134,100,.04); }
.lost-page-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.85fr); gap: clamp(2rem,7vw,7rem); align-items: center; }
.lost-page-copy h1 { margin: .5rem 0 1.1rem; font-size: clamp(2.6rem,6vw,5.7rem); line-height: .96; letter-spacing: -.055em; }
.lost-page-copy h1 em { color: var(--green); font-style: normal; }
.lost-page-copy > p { max-width: 39rem; color: var(--muted); font-size: clamp(1rem,2vw,1.2rem); line-height: 1.65; }
.lost-page-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.7rem 0 .8rem; }
.lost-page-copy > small { color: var(--muted); }
.lost-balance { position: relative; min-height: 31rem; display: grid; place-items: center; }
.lost-ledger { position: relative; z-index: 2; width: min(100%,25rem); overflow: hidden; border: 1px solid rgba(26,89,62,.22); border-radius: 1.4rem; background: rgba(255,255,255,.9); box-shadow: 0 30px 80px rgba(7,53,35,.18); backdrop-filter: blur(14px); transform: rotate(2deg); transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s; }
.lost-ledger header { display: flex; justify-content: space-between; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line); background: #123f31; color: #fff; }
.lost-ledger header span { opacity: .72; }
.lost-ledger-columns { display: grid; grid-template-columns: 1fr 1fr; }
.lost-ledger-columns > div { min-height: 9rem; display: grid; place-items: center; padding: 1.2rem; }
.lost-ledger-columns > div + div { border-left: 2px solid #224e3f; }
.lost-ledger-columns span { color: var(--muted); font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.lost-ledger-columns strong { font-size: 3rem; font-variant-numeric: tabular-nums; }
.lost-ledger-line { height: .55rem; margin: 0 1.25rem 1.25rem; overflow: hidden; border-radius: 1rem; background: #e6eee9; }
.lost-ledger-line i { display: block; width: 50%; height: 100%; border-radius: inherit; background: var(--green); transition: width .55s; }
.lost-ledger button { width: 100%; display: flex; justify-content: space-between; padding: 1rem 1.25rem; border: 0; background: #e7f3ec; color: var(--green-dark); font: inherit; font-weight: 900; cursor: pointer; }
.lost-orbit { position: absolute; inset: 1rem; border: 1px dashed rgba(36,112,78,.27); border-radius: 50%; animation: lost-orbit 18s linear infinite; }
.lost-orbit i { position: absolute; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 1rem; background: #fff; color: var(--green-dark); box-shadow: 0 12px 30px rgba(7,53,35,.13); font-size: 1.45rem; font-style: normal; font-weight: 900; }
.lost-orbit i:nth-child(1) { top: 3%; left: 18%; }.lost-orbit i:nth-child(2) { right: -1%; top: 43%; }.lost-orbit i:nth-child(3) { bottom: 3%; left: 28%; }
.lost-secret { position: absolute; z-index: 4; inset: auto 0 -.5rem; display: grid; grid-template-columns: auto 1fr; gap: 0 .6rem; align-items: center; padding: .9rem 1rem; border: 1px solid #8fbd9f; border-radius: .9rem; background: #fff; box-shadow: 0 16px 45px rgba(9,56,38,.18); color: var(--muted); font-size: .83rem; animation: lost-secret .35s ease-out; }
.lost-secret span { grid-row: 1 / 3; font-size: 1.5rem; }.lost-secret strong { color: var(--ink); }
.lost-page.is-balanced .lost-ledger { transform: rotate(-1deg) scale(1.025); box-shadow: 0 35px 90px rgba(7,74,46,.24); }
.lost-page.is-balanced .lost-ledger-line i { width: 100%; }
@keyframes lost-orbit { to { transform: rotate(360deg); } }
@keyframes lost-secret { from { opacity: 0; transform: translateY(12px) scale(.97); } }

@media (max-width: 1024px) {
  .account-security-layout { grid-template-columns: minmax(0,.75fr) minmax(390px,1fr); gap: 2rem; }
  .library-table, .audit-table, .pricing-comparison-scroll table { min-width: 760px; }
  .table-wrap table { min-width: 680px; }
  .lost-page-layout { grid-template-columns: 1fr minmax(300px,.72fr); gap: 2rem; }
  .material-filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .material-catalog-filters { position: static; }
}
@media (max-width: 760px) {
  .account-security-layout { grid-template-columns: 1fr; margin-top: 2rem; }
  .account-security-copy h1 { max-width: 15ch; font-size: clamp(2.45rem,10vw,3.8rem); }
  .workspace-mode-switch { width: 100%; margin: 1rem 0 1.4rem; }
  .workspace-mode-switch button { grid-template-columns: 1.75rem minmax(0,1fr); min-height: 3.7rem; padding: .55rem .65rem; }
  .workspace-mode-switch button > span { width: 1.75rem; height: 1.75rem; }
  .workspace-mode-switch button small { display: none; }
  .lost-page { min-height: auto; padding: 3.5rem 0 5rem; }
  .lost-page-layout { grid-template-columns: 1fr; }
  .lost-page-copy h1 { font-size: clamp(2.7rem,14vw,4.4rem); }
  .lost-balance { min-height: 25rem; }
  .lost-orbit { inset: .5rem 1.3rem; }
  .lost-ledger { width: min(88vw,23rem); }
  .material-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .material-result-heading { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 430px) {
  .account-security-form { padding: 1.15rem; }
  .password-rules { grid-template-columns: 1fr; }
  .workspace-mode-switch { grid-template-columns: 1fr; }
  .workspace-mode-switch button { min-height: 3.2rem; }
  .lost-page-actions .button { width: 100%; }
  .material-filter-grid { grid-template-columns: 1fr; }
  .material-filter-actions .button { width: 100%; }
  .material-pagination { justify-content: space-between; gap: .35rem; }
  .material-pagination > span { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .lost-orbit { animation: none; }
  .lost-ledger, .lost-ledger-line i { transition: none; }
}

@media (max-width: 470px) {
  .course-inline-join { min-width: 0; }
  .course-plan-section, .course-library-section, .course-people-section { scroll-margin-top: 118px; }
  .course-outline-item { width: 100%; margin-left: 0; }
  .course-outline-item[style*="--unit-depth: 1"] { width: calc(100% - 9px); margin-left: 9px; }
  .course-outline-item[style*="--unit-depth: 2"], .course-outline-item[style*="--unit-depth: 3"] { width: calc(100% - 18px); margin-left: 18px; }
  .course-outline-body h3 { font-size: 1.2rem; }
  .course-assignment-form > div { grid-template-columns: 1fr; }
  .course-assignment-form .button { width: 100%; }
  .course-library-heading h3 { font-size: 1.3rem; }
  .course-section-heading .actions { flex-direction: column; }
  .course-member-pool-heading, .course-member-pool > form, .course-member-pool-empty { padding-right: 16px; padding-left: 16px; }
  .course-member-option { grid-template-columns: 18px 36px minmax(0, 1fr); }
  .course-member-option > b { display: none; }
  .course-member-pool-actions { align-items: stretch; flex-direction: column; }
  .course-member-pool-actions .button { width: 100%; }
  .course-person-card { grid-template-columns: 38px minmax(0, 1fr); }
  .course-person-card > form:last-child, .course-person-card > .course-lead-badge { grid-column: 2; grid-row: 1; justify-self: end; }
  .course-role-form { grid-template-columns: 1fr; }
  .course-role-form .button { width: 100%; }
  .course-group-topline { flex-direction: column; }
  .dashboard-welcome h1 { font-size: clamp(2.7rem, 13vw, 3.65rem); }
  .dashboard-continue-visual { display: none; }
  .dashboard-course-card { grid-template-columns: 34px minmax(0, 1fr) 20px; }
  .dashboard-course-card .pill { display: none; }
  .dashboard-panel-heading { align-items: flex-start; flex-direction: column; }
  .dashboard-onboarding-card .actions { flex-direction: column; }
}

@media (max-width: 540px) {
  .site-header { height: 64px; }
  .brand { font-size: 1.32rem; }
  .brand-mark { width: 32px; height: 32px; }
  .nav-links { inset-block-start: 64px; height: calc(100dvh - 64px); max-height: calc(100dvh - 64px); }
  .nav-drawer-content { grid-template-columns: 1fr; gap: 22px; padding-block: 20px 28px; }
  .nav-drawer-actions { grid-template-columns: 1fr; }
  .legal-intro h1 { font-size: clamp(2rem, 12vw, 2.6rem); }
  .password-rules { grid-template-columns: 1fr; }
  .password-guidance { padding: 13px; }
  .t-account-mobile-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 8px; border-top: 1px solid var(--line); background: #f5f7f4; }
  .t-account-mobile-tabs button { min-height: 40px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
  .t-account-mobile-tabs button[aria-selected="true"] { background: #fff; color: var(--green-dark); box-shadow: 0 1px 5px rgba(16,35,29,.1); }
  .t-account-body { display: block; border-top: 2px solid var(--ink); }
  .t-account-side { min-height: 230px; }
  .t-account-credit { border-left: 0; }
  .t-account[data-mobile-side="debit"] .t-account-credit { display: none; }
  .t-account[data-mobile-side="credit"] .t-account-debit { display: none; }
  .t-posting-counter .input, .t-posting-amount .input { font-size: .88rem; }
  .stats { grid-template-columns: 1fr; }
  .stats > div:last-child:nth-child(odd) { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
}

/* Organization workspace */
.organization-page-heading {
  --organization-brand: #0f7458;
  --organization-brand-soft: rgba(15, 116, 88, .11);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 360px);
  gap: 36px;
  align-items: start;
  overflow: hidden;
  margin-bottom: 34px;
  padding: 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--organization-brand);
  border-radius: 20px;
  background: linear-gradient(135deg, var(--organization-brand-soft), #fff 64%);
}
.page-heading > .organization-profile { display: grid; gap: 22px; max-width: none; }
.organization-management { position: relative; z-index: 1; display: grid; gap: 14px; padding: 18px; border: 1px solid color-mix(in srgb, var(--organization-brand) 24%, var(--line)); border-radius: 16px; background: rgba(255,255,255,.86); box-shadow: 0 12px 30px rgba(16,35,29,.07); }
.organization-management-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.organization-management-heading > div { display: grid; gap: 3px; }
.organization-management-heading .eyebrow { font-size: .65rem; }
.organization-management-heading strong { font: 700 1.08rem/1.2 Georgia, serif; }
.organization-management-heading .pill { flex: 0 0 auto; }
.organization-management-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.organization-plan-summary { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #f5f8f5; color: var(--ink); }
.organization-plan-summary:hover { border-color: var(--organization-brand); text-decoration: none; }
.organization-plan-summary > span:first-child { display: grid; gap: 2px; }
.organization-plan-summary > span:first-child small { color: var(--green-dark); font-size: .65rem; font-weight: 750; }
.organization-plan-usage { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 8px; }
.organization-plan-usage small { color: var(--muted); font-size: .61rem; }
.organization-plan-usage b { color: var(--ink); }
.organization-primary-action { display: grid; width: 100%; gap: 2px; padding-block: 12px; text-align: left; }
.organization-primary-action small { color: rgba(255,255,255,.78); font-size: .67rem; font-weight: 650; }
.organization-primary-action.ghost small { color: var(--muted); }
.organization-management-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 7px; padding-top: 2px; }
.organization-management-links a { display: grid; min-width: 0; gap: 3px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.organization-management-links a:hover { border-color: color-mix(in srgb, var(--organization-brand) 52%, var(--line)); background: color-mix(in srgb, var(--organization-brand-soft) 50%, #fff); text-decoration: none; transform: translateY(-1px); }
.organization-management-links a:focus-visible { outline: 3px solid color-mix(in srgb, var(--organization-brand) 28%, transparent); outline-offset: 2px; }
.organization-management-links strong { overflow-wrap: anywhere; font-size: .76rem; line-height: 1.2; }
.organization-management-links small { color: var(--muted); font-size: .65rem; line-height: 1.35; }
.organization-join-state { position: relative; z-index: 1; display: grid; min-width: 260px; max-width: 320px; gap: 5px; padding: 16px; border: 1px solid color-mix(in srgb, var(--organization-brand) 32%, var(--line)); border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 8px 24px rgba(16,35,29,.06); }
.organization-join-state > strong { font: 700 1.08rem/1.25 Georgia, serif; }
.organization-join-state > small { color: var(--muted); line-height: 1.45; }
.organization-join-state form { margin-top: 8px; }
.organization-join-state .button { width: 100%; }
.organization-heading { position: relative; z-index: 1; align-items: flex-start; }
.organization-heading > div { min-width: 0; }
.organization-heading h1 { max-width: 780px; margin-bottom: 9px; overflow-wrap: normal; hyphens: none; text-wrap: balance; }
.organization-logo { width: 88px; height: 88px; flex: 0 0 88px; border-color: color-mix(in srgb, var(--organization-brand) 35%, #d4ddd7); border-radius: 20px; box-shadow: 0 8px 24px rgba(16, 35, 29, .08); }
.organization-logo-stack { position: relative; width: 88px; flex: 0 0 88px; }
.organization-plan-icon { position: absolute; right: -8px; bottom: -8px; display: block; padding: 3px; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(16,35,29,.14); }
.organization-plan-icon .plan-icon { width: 34px; height: 34px; border-radius: 9px; }
.organization-logo-placeholder { display: grid; place-items: center; background: var(--organization-brand); color: #fff; font: 800 2.25rem/1 Georgia, serif; }
.organization-tagline { margin: -2px 0 8px; color: var(--organization-brand); font-weight: 800; }
.organization-heading .lead { max-width: 700px; margin: 0; font-size: 1rem; }
.organization-contact-strip { position: relative; z-index: 1; display: flex; flex-wrap: wrap; row-gap: 14px; padding-top: 17px; border-top: 1px solid color-mix(in srgb, var(--organization-brand) 18%, var(--line)); }
.organization-contact-strip > * { position: relative; display: grid; max-width: 100%; gap: 2px; padding: 0 22px; color: var(--ink); }
.organization-contact-strip > :first-child { padding-left: 0; }
.organization-contact-strip > :not(:last-child)::after { position: absolute; top: 3px; right: 0; width: 1px; height: calc(100% - 6px); background: color-mix(in srgb, var(--organization-brand) 18%, var(--line)); content: ""; }
.organization-contact-strip a:hover { color: var(--organization-brand); text-decoration: none; }
.organization-contact-strip small { color: var(--organization-brand); font-size: .58rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.organization-contact-strip strong { overflow-wrap: anywhere; font-size: .78rem; }
.workspace-launcher { margin-bottom: 46px; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, #edf5ef, #f8faf7); }
.workspace-launcher-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 20px; }
.workspace-launcher-heading h2 { margin: 4px 0 0; font-size: 1.85rem; }
.workspace-launcher-heading p { max-width: 390px; margin: 0; color: var(--muted); }
.workspace-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.workspace-action { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 92px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.workspace-action:hover { border-color: #9cbcac; box-shadow: 0 10px 25px rgba(16,35,29,.07); text-decoration: none; transform: translateY(-2px); }
.workspace-action.is-plan-locked { border-style: dashed; background: #faf8f0; }
.workspace-action.is-plan-locked .workspace-action-icon { background: #f3ead0; color: #81651e; }
.workspace-action-icon, .admin-tool-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: var(--green-100, #e3f1e9); color: var(--green-dark); font: 800 1.05rem/1 Georgia, serif; }
.workspace-action strong, .workspace-action small { display: block; }
.workspace-action small { margin-top: 2px; font-size: .78rem; }
.workspace-action > b { color: var(--green); }
.organization-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
.organization-course-list { gap: 12px; }
.organization-course-card { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.organization-course-main { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; color: var(--ink); }
.organization-course-main:hover { background: var(--surface-soft); text-decoration: none; }
.organization-course-main strong, .organization-course-main small { display: block; }
.organization-course-main small { margin-top: 3px; color: var(--muted); }
.organization-course-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 11px 12px; border-top: 1px solid var(--line); background: #f7faf7; }
.organization-course-controls form { display: grid; flex: 1 1 300px; grid-template-columns: minmax(180px, 1fr) auto; align-items: end; gap: 8px; }
.organization-course-controls label { flex: 1 1 180px; }
.organization-course-controls form > .button[type="submit"] { grid-column: 2; grid-row: 1; }
.organization-course-code { display: grid; grid-template-columns: minmax(190px, 1fr) auto; grid-column: 1 / -1; align-items: end; gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.organization-course-code label { display: grid; gap: 4px; }
.organization-course-code label > span { font-size: .66rem; font-weight: 850; }
[data-course-code-field][hidden] { display: none; }
.organization-chart-default { display: grid; gap: 12px; margin-top: 18px; padding: 18px; border: 1px solid #a9c3b4; border-radius: 14px; background: #eff6f1; }
.organization-chart-default > div strong, .organization-chart-default > div small { display: block; }
.organization-chart-default > div small { margin-top: 3px; color: var(--muted); }
.organization-chart-default label { display: grid; gap: 6px; }
.organization-chart-default label > span { font-size: .78rem; font-weight: 800; }
.organization-chart-default .button { justify-self: start; }
.organization-empty { display: grid; gap: 6px; }
.organization-empty strong { color: var(--ink); }
.organization-empty span { font-size: .88rem; }
.organization-subheading { margin-top: 28px !important; }
.organization-admin-section { margin-top: 52px; padding-top: 42px; border-top: 1px solid var(--line); }
.organization-admin-section .section-heading p { max-width: 650px; margin: 4px 0 0; color: var(--muted); }
.organization-admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, .92fr); gap: 24px; align-items: start; }

/* Roles and invoice billing */
.role-guide-heading, .billing-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 36px; }
.role-current-card, .billing-status-card { display: grid; min-width: 230px; gap: 5px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.role-current-card span, .billing-status-card span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.role-current-card strong, .billing-status-card strong { font: 700 1.45rem/1.2 Georgia, serif; }
.billing-status-card small { color: var(--green-dark); font-weight: 750; }
.role-scope-note { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 15px; margin-bottom: 52px; padding: 19px; border: 1px solid #a8c5b5; border-radius: 14px; background: #eef6f0; }
.role-scope-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; background: var(--green); color: #fff; font-size: 1.2rem; font-weight: 850; }
.role-scope-note strong { display: block; margin-bottom: 4px; }
.role-scope-note p { margin: 0; color: var(--muted); }
.role-guide-section + .role-guide-section { margin-top: 60px; }
.role-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.role-explainer-card { display: flex; min-height: 330px; padding: 20px; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.role-explainer-card.is-current { border-color: var(--green); box-shadow: 0 0 0 3px rgba(18,101,77,.1); }
.role-explainer-topline { display: flex; align-items: center; justify-content: space-between; min-height: 32px; }
.role-code { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: var(--surface-soft); color: var(--green-dark); font-weight: 850; }
.role-explainer-card h3 { margin: 18px 0 8px; }
.role-explainer-card > p { min-height: 58px; color: var(--muted); font-size: .86rem; }
.role-explainer-card ul, .billing-help-panel ul { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
.role-explainer-card li, .billing-help-panel li { position: relative; padding-left: 20px; color: #3b5048; font-size: .82rem; line-height: 1.4; }
.role-explainer-card li::before, .billing-help-panel li::before { position: absolute; left: 0; color: var(--green); content: "✓"; font-weight: 900; }
.role-matrix-wrap { overflow-x: auto; }
.role-matrix { min-width: 820px; }
.role-matrix th:first-child { width: 31%; }
.role-matrix tbody th { text-align: left; }
.role-matrix tbody th strong, .role-matrix tbody th small { display: block; }
.role-matrix tbody th small { margin-top: 3px; color: var(--muted); font-weight: 500; }
.role-matrix td { color: var(--green-dark); font-size: 1rem; font-weight: 850; text-align: center; }
.role-guest-note { margin-top: 16px; padding: 17px 19px; border-left: 4px solid var(--gold); border-radius: 0 12px 12px 0; background: #faf8f0; }
.role-guest-note p { margin: 4px 0 0; color: var(--muted); }
.billing-invoice-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-bottom: 28px; border: 1px solid var(--line); border-radius: 15px; background: var(--line); }
.billing-invoice-flow > div { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 2px 10px; padding: 17px; background: #fff; }
.billing-invoice-flow span { display: grid; width: 34px; height: 34px; grid-row: 1 / span 2; place-items: center; border-radius: 10px; background: var(--green); color: #fff; font-weight: 850; }
.billing-invoice-flow strong, .billing-invoice-flow small { grid-column: 2; }
.billing-invoice-flow small { color: var(--muted); }
.billing-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 24px; align-items: start; }
.billing-form-panel { padding: 26px; }
.billing-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.billing-panel-heading h2 { margin: 5px 0; }
.billing-panel-heading p { margin: 0; color: var(--muted); }
.billing-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.billing-form-actions > div { display: grid; gap: 3px; }
.billing-form-actions small { color: var(--muted); }
.billing-help-panel { padding: 25px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, #edf5ef, #fff); }
.billing-help-panel h2 { margin: 8px 0 10px; font-size: 1.55rem; }
.billing-help-panel > p { color: var(--muted); }
.billing-help-note { margin-top: 24px; padding: 16px; border: 1px solid rgba(18,101,77,.18); border-radius: 12px; background: rgba(255,255,255,.76); }
.billing-help-note p { margin: 4px 0 0; color: var(--muted); font-size: .82rem; }
.founding-inline-badge { width: fit-content; margin-top: 5px; padding: 5px 8px; border-radius: 99px; background: #f2e8c9; color: #705716; font-size: .66rem; letter-spacing: .04em; text-transform: uppercase; }
.billing-plan-overview { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 1px; overflow: hidden; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 17px; background: var(--line); }
.billing-plan-main, .billing-plan-action { padding: 24px; background: #fff; }
.billing-plan-main h2 { margin: 5px 0 4px; font-size: 2rem; }
.billing-plan-main > p { margin: 0; color: var(--muted); }
.billing-plan-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 20px; }
.billing-plan-meta > span { display: grid; gap: 4px; padding: 12px; border-radius: 10px; background: #f3f7f4; }
.billing-plan-meta small { color: var(--muted); font-size: .64rem; font-weight: 750; }
.billing-plan-meta strong { font-size: .76rem; }
.billing-plan-action { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; background: linear-gradient(145deg, #e9f4ed, #f8fbf9); }
.billing-plan-action > span { color: var(--muted); font-size: .76rem; line-height: 1.45; }
.billing-plan-action > strong { margin: 8px 0 16px; font: 700 1.1rem/1.25 Georgia, serif; }
.billing-plan-management { display: grid; gap: 1rem; margin: 1rem 0 1.4rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.billing-plan-management h2 { margin: .2rem 0; }
.billing-plan-management > div:first-child > p { margin: 0; color: var(--muted); }
.billing-plan-choice-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(12rem,1fr)); gap: .7rem; }
.billing-plan-choice-grid form { display: grid; gap: .35rem; padding: .9rem; border: 1px solid var(--line); border-radius: .75rem; background: #f8fbf9; }
.billing-plan-choice-grid form > span { color: var(--green-dark); font-size: .65rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.billing-plan-choice-grid form > small { min-height: 2.5rem; color: var(--muted); }
.billing-change-pending, .billing-cancel-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-radius: .8rem; }
.billing-change-pending { border: 1px solid #d6b969; background: #fff8e6; }
.billing-cancel-card { border: 1px solid #e1aca6; background: #fff7f5; }
.billing-change-pending p, .billing-cancel-card p { margin: .2rem 0 0; color: var(--muted); }
.organization-settings-danger { margin-top: 2rem; }
.organization-preservation-choice { margin: 1rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; }
.organization-preservation-choice > p, .organization-preservation-choice > small { color: var(--muted); }
.organization-preservation-choice > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; margin: .8rem 0; }
.organization-preservation-choice label { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: .55rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; cursor: pointer; }
.organization-preservation-choice label:has(input:checked) { border-color: var(--green); background: #eaf5ef; }
.organization-preservation-choice label span { display: grid; gap: .15rem; }
.organization-preservation-choice label small { color: var(--muted); }
@media (max-width:700px) { .billing-change-pending, .billing-cancel-card { align-items: stretch; flex-direction: column; } .organization-preservation-choice > div { grid-template-columns: 1fr; } }
.billing-history-panel { padding: 25px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, #edf5ef, #fff); }
.billing-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.billing-panel-heading h2 { margin: 5px 0 0; font-size: 1.55rem; }
.billing-panel-heading p { margin: 4px 0 0; color: var(--muted); }
.billing-panel-heading > span { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.billing-period-list { display: grid; gap: 8px; }
.billing-period-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.billing-period-list article > div { display: grid; gap: 4px; }
.billing-period-list article > div:last-child { justify-items: end; }
.billing-period-list small { color: var(--muted); font-size: .65rem; }
.billing-period-list article > div:last-child > strong { font-size: .76rem; }
.billing-period-status-paid { background: #e0f2e6; color: #0e654a; }
.billing-period-status-overdue { background: #fae4df; color: #9b2e21; }
.billing-period-status-invoiced, .billing-period-status-planned { background: #f5edda; color: #725919; }
.billing-empty-history { padding: 24px 14px; border: 1px dashed var(--line); border-radius: 11px; text-align: center; }
.billing-empty-history p { margin: 5px auto 0; color: var(--muted); font-size: .76rem; }
.members-panel, .admin-toolbox { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.admin-panel-heading h3 { margin: 0; font-size: 1.32rem; }
.admin-panel-heading p { margin: 2px 0 0; color: var(--muted); font-size: .82rem; }
.member-list { display: grid; }
.member-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 76px; padding: 13px 20px; border-bottom: 1px solid var(--line); }
.member-row:last-child { border-bottom: 0; }
.member-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: #e6efe9; color: var(--green-dark); font-weight: 850; }
.member-identity { min-width: 0; }
.member-identity strong, .member-identity small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.member-role .input { max-width: 160px; }
.admin-toolbox { background: #f4f8f5; }
.admin-tool-list { display: grid; gap: 10px; padding: 14px; }
.admin-tool-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 13px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.admin-tool-card p { margin: 3px 0 12px; color: var(--muted); font-size: .82rem; }
.admin-tool-details { display: block; }
.admin-tool-details > summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 13px; cursor: pointer; list-style: none; }
.admin-tool-details > summary::-webkit-details-marker { display: none; }
.admin-tool-details > summary strong, .admin-tool-details > summary small { display: block; }
.admin-tool-details > summary b { transition: transform .18s ease; }
.admin-tool-details[open] > summary b { transform: rotate(180deg); }
.admin-tool-details form { display: grid; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.admin-tool-link { grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; color: var(--ink); }
.admin-tool-link:hover { border-color: #9cbcac; text-decoration: none; }
.admin-tool-link strong, .admin-tool-link small { display: block; }
.file-picker { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 70px; padding: 11px; border: 1px dashed #9eb4a7; border-radius: 11px; background: #fbfdfb; cursor: pointer; }
.file-picker:hover, .file-picker:focus-within, .file-picker.has-file { border-color: var(--green); background: #f1f8f3; }
.file-picker input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.file-picker > span:first-of-type { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; background: #e3f1e9; color: var(--green); font-size: 1.15rem; }
.file-picker strong, .file-picker small { display: block; }
.file-picker small { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }

/* Domain overview and guided editors */
.domain-page-heading .lead { max-width: 780px; }
.domain-explainer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 8px 0 44px; }
.domain-explainer { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.domain-explainer-icon { display: grid; width: 62px; height: 62px; place-items: center; border-radius: 15px; background: #e3f1e9; color: var(--green-dark); font: 800 1.12rem Georgia, serif; }
.domain-explainer-icon.accounting-icon { grid-template-columns: 1fr 1fr; overflow: hidden; border-top: 3px solid var(--ink); border-radius: 8px; background: #f4f7f4; }
.domain-explainer-icon.accounting-icon i { display: grid; height: 100%; place-items: center; font-style: normal; }
.domain-explainer-icon.accounting-icon i + i { border-left: 2px solid var(--ink); }
.domain-explainer h2 { margin: 0 0 6px; font-size: 1.35rem; }
.domain-explainer p { margin: 0; color: var(--muted); font-size: .91rem; }
.domain-explainer .domain-example { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink); }
.domain-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.domain-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.domain-section-heading h2 { margin: 3px 0 0; }
.domain-section-heading p { margin: 2px 0 0; color: var(--muted); font-size: .85rem; }
.domain-card-list { display: grid; gap: 12px; }
.domain-rule-card { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.domain-rule-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.domain-rule-title h3 { margin: 0; font-family: inherit; font-size: 1rem; }
.domain-rule-main > p { margin: 6px 0 10px; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.domain-rule-facts { display: flex; flex-wrap: wrap; gap: 5px 13px; color: var(--muted); font-size: .76rem; }
.domain-rule-facts span + span::before { margin-right: 13px; color: #b4c2ba; content: "·"; }
.friendly-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.friendly-tags > span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 8px; background: #edf3ef; color: #365449; font-size: .74rem; font-weight: 750; }
.friendly-tags > span.debit { border-left: 3px solid var(--green); }
.friendly-tags > span.credit { border-left: 3px solid var(--gold); }
.friendly-tags small { color: inherit; font-size: .66rem; font-weight: 600; }
.domain-rule-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.technical-meta { position: relative; margin-left: auto; color: var(--muted); font-size: .72rem; }
.technical-meta summary { cursor: pointer; }
.technical-meta code { display: block; margin-top: 5px; color: var(--ink); text-align: right; }
.domain-builder-layout, .course-builder-layout { align-items: start; }
.choice-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.choice-card { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }
.choice-card:has(input:checked) { border-color: #82aa97; background: #eef7f1; box-shadow: inset 0 0 0 1px #82aa97; }
.choice-card input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { margin-top: 2px; font-size: .72rem; font-weight: 450; }
.domain-live-preview .preview-sheet, .course-live-preview .preview-sheet { display: grid; gap: 16px; }
.domain-live-preview h2, .course-live-preview h2 { margin: 0; }
.domain-preview-description, .course-preview-description { margin: 0; color: var(--muted); font-size: .88rem; }
.tax-preview-rate { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 18px; border-radius: 12px; background: #eef6f0; }
.tax-preview-rate strong { color: var(--green-dark); font: 800 2.2rem Georgia, serif; }
.tax-preview-rate span { color: var(--muted); font-size: .78rem; }
.domain-preview-section { display: grid; gap: 8px; padding-top: 13px; border-top: 1px solid var(--line); }
.domain-preview-section > span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.domain-preview-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.domain-preview-tags span { padding: 5px 8px; border-radius: 8px; background: #e8f1eb; color: var(--green-dark); font-size: .74rem; font-weight: 750; }
.domain-preview-tags em, .domain-preview-booking em { color: var(--muted); font-size: .8rem; }
.role-composer-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-bottom: 12px; }
.role-composer-add label { display: grid; gap: 6px; }
.role-composer { display: grid; gap: 9px; }
.role-composer-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 38px; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fbfdfb; }
.role-composer-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.role-composer-identity > span { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 8px; background: var(--green); color: #fff; font-size: .75rem; font-weight: 850; }
.role-composer-identity strong, .role-composer-identity small { display: block; }
.role-composer-identity small { font-size: .7rem; }
.role-composer-row label { display: grid; gap: 3px; color: var(--muted); font-size: .68rem; }
.role-composer-empty[hidden] { display: none; }
.domain-preview-booking { display: grid; gap: 7px; }
.domain-preview-booking > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 9px; border-radius: 8px; background: #f4f7f4; font-size: .76rem; }
.domain-preview-booking span { color: var(--green-dark); font-weight: 800; }
.course-preview-dates { padding: 10px 12px; border-radius: 9px; background: #f1f5f1; color: var(--muted); font-size: .78rem; }
.course-path-preview { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.course-path-preview > span { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 8px; }
.course-path-preview b { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: #e4efe8; color: var(--green-dark); font-size: .68rem; }
.course-path-preview i { height: 9px; border-radius: 5px; background: #edf2ee; }
.course-path-preview small { margin-top: 4px; }

/* Clickable exercise solution composer */
.solution-builder-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 16px; }
.solution-builder-heading h2 { margin: 3px 0 0; }
.solution-builder-heading p { margin: 4px 0 0; color: var(--muted); }
.solution-builder-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.solution-builder-guide span { display: flex; align-items: center; gap: 8px; padding: 9px 11px; border-radius: 10px; background: #edf4ef; color: #365047; font-size: .77rem; font-weight: 700; }
.solution-builder-guide b { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .68rem; }
.solution-composer { display: grid; gap: 12px; }
.solution-composer-empty[hidden] { display: none; }
.solution-rule-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; overflow: hidden; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.solution-rule-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #f5f8f5; }
.solution-rule-heading > div { display: flex; align-items: center; gap: 10px; }
.solution-rule-heading [data-solution-line-number] { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: var(--green); color: #fff; font-size: .75rem; font-weight: 850; }
.solution-rule-heading strong, .solution-rule-heading small { display: block; }
.solution-rule-heading small { font-size: .68rem; }
.solution-rule-fields { display: grid; grid-template-columns: minmax(230px, 1.2fr) minmax(170px, .7fr) minmax(210px, .9fr); gap: 13px; padding: 16px; }
.solution-rule-fields label, .solution-rule-advanced label { display: grid; gap: 5px; }
.solution-rule-fields label > span, .solution-rule-advanced label > span { color: #365047; font-size: .75rem; font-weight: 750; }
.solution-rule-advanced { border-top: 1px solid var(--line); }
.solution-rule-advanced summary { padding: 9px 16px; color: var(--muted); font-size: .73rem; cursor: pointer; }
.solution-rule-advanced summary span { float: right; }
.solution-rule-advanced > div { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; padding: 0 16px 16px; }
.solution-sentence-preview { margin-top: 16px; padding: 14px 16px; border-left: 4px solid var(--gold); border-radius: 0 11px 11px 0; background: #faf8f0; }
.solution-sentence-preview > span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.solution-sentence-preview p { margin: 3px 0 0; font-family: Georgia, serif; }
.solution-builder-settings { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafcfa; }
.solution-builder-settings > summary { display: flex; justify-content: space-between; gap: 16px; padding: 13px 15px; cursor: pointer; list-style: none; }
.solution-builder-settings > summary::-webkit-details-marker { display: none; }
.solution-builder-settings summary strong, .solution-builder-settings summary small { display: block; }
.solution-builder-settings .builder-settings { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; }

@media (max-width: 1000px) {
  .admin-billing-columns { grid-template-columns: 1fr; }
  .admin-period-history-list article { grid-template-columns: 1fr auto; }
  .admin-period-history-list form { grid-column: 1 / -1; }
  .organization-page-heading { grid-template-columns: 1fr; }
  .organization-management { width: 100%; }
  .organization-join-state { width: 100%; max-width: none; }
  .workspace-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organization-admin-grid, .domain-columns { grid-template-columns: 1fr; }
  .organization-admin-grid { align-items: stretch; }
  .role-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-layout, .billing-plan-overview { grid-template-columns: 1fr; }
  .billing-plan-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-toolbox { order: 2; }
  .solution-rule-fields { grid-template-columns: 1fr 1fr; }
  .solution-rule-fields label:first-child { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .organization-page-heading { padding: 22px; }
  .organization-management { padding: 15px; }
  .organization-management-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organization-heading { align-items: flex-start; flex-direction: column; }
  .organization-logo { width: 74px; height: 74px; flex-basis: 74px; }
  .organization-contact-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
  .organization-contact-strip > * { padding: 0 0 0 11px; border-left: 2px solid color-mix(in srgb, var(--organization-brand) 30%, var(--line)); }
  .organization-contact-strip > :first-child { padding-left: 11px; }
  .organization-contact-strip > :not(:last-child)::after { display: none; }
  .role-guide-heading, .billing-heading, .billing-form-actions { align-items: stretch; flex-direction: column; }
  .role-current-card, .billing-status-card { width: 100%; }
  .role-card-grid, .billing-invoice-flow { grid-template-columns: 1fr; }
  .role-explainer-card { min-height: 0; }
  .billing-form-actions .button { width: 100%; }
  .workspace-launcher { padding: 20px; }
  .workspace-launcher-heading, .solution-builder-heading { align-items: stretch; flex-direction: column; }
  .workspace-action-grid, .organization-content-grid, .domain-explainer-grid, .choice-card-grid { grid-template-columns: 1fr; }
  .organization-admin-grid { grid-template-columns: minmax(0, 1fr); }
  .organization-course-main { align-items: flex-start; }
  .organization-course-controls { align-items: stretch; flex-direction: column; }
  .organization-course-controls form { grid-template-columns: 1fr; align-items: stretch; }
  .organization-course-controls form > .button[type="submit"] { grid-row: auto; grid-column: 1; }
  .organization-course-code, .course-access-code-row { grid-template-columns: 1fr; }
  .organization-course-controls .button { width: 100%; }
  .member-row { grid-template-columns: 40px minmax(0, 1fr); }
  .member-row > .pill, .member-role { grid-column: 2; justify-self: start; }
  .member-role .input { max-width: 100%; }
  .domain-explainer { grid-template-columns: 50px minmax(0, 1fr); padding: 18px; }
  .domain-explainer-icon { width: 50px; height: 50px; font-size: .9rem; }
  .domain-section-heading { align-items: flex-start; }
  .role-composer-add, .role-composer-row { grid-template-columns: 1fr; }
  .role-composer-row .icon-button { justify-self: end; }
  .solution-builder-guide, .solution-rule-fields, .solution-rule-advanced > div { grid-template-columns: 1fr; }
  .solution-rule-fields label:first-child { grid-column: auto; }
  .solution-builder-heading .button { width: 100%; }
}

@media (max-width: 480px) {
  .organization-management-heading { align-items: flex-start; }
  .organization-management-links { grid-template-columns: 1fr; }
  .organization-contact-strip { grid-template-columns: 1fr; }
  .workspace-action { grid-template-columns: 38px minmax(0, 1fr) auto; padding: 12px; }
  .workspace-action-icon, .admin-tool-icon { width: 38px; height: 38px; }
  .organization-admin-section { margin-top: 38px; padding-top: 32px; }
  .admin-panel-heading { align-items: flex-start; flex-direction: column; }
  .admin-panel-heading .button { width: 100%; }
  .domain-explainer { grid-template-columns: 1fr; }
  .domain-rule-title, .domain-rule-actions { align-items: flex-start; flex-direction: column; }
  .technical-meta { margin-left: 0; }
  .technical-meta code { text-align: left; }
  .editor-panel-section.rule-builder { padding: 18px; }
}

/* Organization pricing */
.pricing-page { background: linear-gradient(180deg, #f6faf7 0, #fff 720px); }
.pricing-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 44px; align-items: end; margin-bottom: 70px; }
.pricing-hero h1 { max-width: 880px; margin: 8px 0 18px; font-size: clamp(3.3rem, 7vw, 6.5rem); line-height: .91; }
.pricing-hero .lead { max-width: 850px; }
.pricing-free-promise { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; width: fit-content; margin-top: 22px; padding: 10px 13px; border: 1px solid #b7d0c0; border-radius: 11px; background: rgba(255,255,255,.72); font-size: .74rem; }
.pricing-free-promise > span:first-child { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.pricing-free-promise > span:last-child { color: var(--muted); }
.pricing-principle { display: grid; gap: 9px; padding: 25px; border: 1px solid #a8c6b6; border-radius: 18px; background: #edf6f0; }
.pricing-principle strong { font: 700 1.35rem/1.2 Georgia, serif; }
.pricing-principle p { margin: 0; color: var(--muted); }
.plan-icon { position: relative; display: grid; width: 50px; height: 50px; flex: 0 0 50px; place-items: center; border: 1px solid rgba(16,82,62,.14); border-radius: 14px; background: #e3f0e7; color: var(--green-dark); }
.plan-icon i, .plan-icon i::before, .plan-icon i::after { box-sizing: border-box; }
.plan-icon-free i { position: relative; width: 25px; height: 19px; border: 2px solid currentColor; border-radius: 3px 3px 6px 6px; }
.plan-icon-free i::before { position: absolute; top: -2px; bottom: -2px; left: 50%; width: 2px; background: currentColor; content: ""; transform: translateX(-50%); }
.plan-icon-free i::after { position: absolute; top: 3px; right: 3px; left: 14px; height: 2px; background: currentColor; box-shadow: 0 5px currentColor; content: ""; opacity: .55; }
.plan-icon-starter { background: #e8f1e9; color: #225e4b; }
.plan-icon-starter i { position: relative; width: 24px; height: 20px; margin-top: 5px; border: 2px solid currentColor; border-radius: 2px; background: repeating-linear-gradient(90deg, transparent 0 4px, currentColor 4px 6px, transparent 6px 10px); }
.plan-icon-starter i::before { position: absolute; right: -5px; bottom: 18px; left: -5px; height: 9px; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); content: ""; }
.plan-icon-starter i::after { position: absolute; bottom: -2px; left: 8px; width: 6px; height: 9px; background: currentColor; content: ""; }
.plan-icon-professional { border-color: rgba(19,111,83,.25); background: var(--green); color: #fff; }
.plan-icon-professional i { width: 26px; height: 26px; background: currentColor; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 94%, 50% 72%, 21% 94%, 32% 57%, 2% 35%, 39% 35%); }
.plan-icon-enterprise { background: #ece9f2; color: #5d4c78; }
.plan-icon-enterprise i { position: relative; width: 23px; height: 27px; border: 2px solid currentColor; border-radius: 2px 2px 0 0; background: repeating-linear-gradient(0deg, transparent 0 5px, currentColor 5px 7px, transparent 7px 10px); }
.plan-icon-enterprise i::before { position: absolute; top: -6px; right: 4px; left: 4px; height: 5px; border: 2px solid currentColor; border-bottom: 0; content: ""; }
.plan-icon-enterprise i::after { position: absolute; right: 7px; bottom: -2px; width: 6px; height: 8px; background: currentColor; content: ""; }
.pricing-benefits { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 18px 48px rgba(16,35,29,.06); }
.pricing-benefits-heading { margin-bottom: 30px; }
.pricing-benefits-heading .eyebrow { display: block; }
.pricing-benefits-heading h2 { max-width: 920px; margin: 7px 0 0; font-size: clamp(2.2rem, 4.5vw, 4.1rem); line-height: .98; }
.pricing-benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pricing-benefit-grid article { display: grid; gap: 14px; align-content: start; padding: 18px; border-radius: 14px; background: #f3f7f4; }
.pricing-benefit-grid strong { font: 700 1.08rem/1.25 Georgia, serif; }
.pricing-benefit-grid p { margin: 6px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.benefit-icon { position: relative; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: #dfeee4; color: var(--green-dark); isolation: isolate; }
.benefit-icon > i { z-index: 1; }
.benefit-icon i, .benefit-icon i::before, .benefit-icon i::after { box-sizing: border-box; }
.benefit-icon-time i { position: relative; width: 22px; height: 22px; border: 2px solid currentColor; border-radius: 50%; }
.benefit-icon-time i::before { position: absolute; top: 4px; left: 9px; width: 2px; height: 7px; background: currentColor; content: ""; }
.benefit-icon-time i::after { position: absolute; top: 10px; left: 9px; width: 6px; height: 2px; background: currentColor; content: ""; transform: rotate(28deg); transform-origin: left center; }
.benefit-icon-knowledge i { position: relative; width: 21px; height: 24px; border: 2px solid currentColor; border-radius: 2px; background: #dfeee4; }
.benefit-icon-knowledge i::before, .benefit-icon-knowledge i::after { position: absolute; width: 17px; height: 21px; border: 2px solid currentColor; border-radius: 2px; background: #dfeee4; content: ""; z-index: -1; }
.benefit-icon-knowledge i::before { top: -5px; left: 2px; }
.benefit-icon-knowledge i::after { top: -8px; left: 5px; }
.benefit-icon-guidance i { position: relative; width: 24px; height: 18px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; }
.benefit-icon-guidance i::before { position: absolute; top: 7px; left: 3px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; content: ""; transform: rotate(-40deg); }
.benefit-icon-guidance i::after { position: absolute; top: 1px; right: -1px; width: 10px; height: 2px; background: currentColor; content: ""; transform: rotate(-44deg); }
.benefit-icon-practice i { position: relative; width: 24px; height: 24px; border: 2px solid currentColor; border-radius: 4px; background: radial-gradient(circle, currentColor 0 1.5px, transparent 2px) 3px 3px / 8px 8px; }
.benefit-icon-practice i::after { position: absolute; right: 3px; bottom: 3px; width: 7px; height: 2px; background: currentColor; content: ""; box-shadow: 0 -4px currentColor; }
.pricing-offers { margin-top: 82px; }
.pricing-offers-heading { display: flex; align-items: end; justify-content: space-between; gap: 36px; margin-bottom: 25px; }
.pricing-offers-heading h2 { margin: 5px 0 0; font-size: clamp(2.2rem, 4.4vw, 4rem); }
.pricing-offers-heading > p { max-width: 480px; margin: 0; color: var(--muted); }
.pricing-cycle { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; width: fit-content; margin: 0 auto 26px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: #eaf0eb; }
.pricing-cycle button { min-height: 42px; padding: 9px 15px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font: inherit; font-weight: 800; cursor: pointer; }
.pricing-cycle button.active { background: #fff; color: var(--green-dark); box-shadow: var(--shadow-small); }
.pricing-cycle button span { margin-left: 5px; padding: 3px 6px; border-radius: 99px; background: #e0f0e6; color: var(--green-dark); font-size: .64rem; }
.pricing-cycle > small { padding-inline: 10px; color: var(--muted); }
.pricing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.pricing-card { position: relative; display: flex; min-width: 0; padding: 23px; flex-direction: column; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(16,35,29,.05); }
.pricing-card.is-featured { padding: 22px; border: 2px solid var(--green); box-shadow: 0 18px 44px rgba(16,86,65,.13); }
.pricing-recommendation { position: absolute; top: -14px; left: 50%; padding: 6px 11px; border-radius: 99px; background: var(--green); color: #fff; font-size: .68rem; font-weight: 850; white-space: nowrap; transform: translateX(-50%); }
.pricing-card-heading { height: 240px; }
.pricing-card-icon { margin-bottom: 14px; }
.pricing-card h2 { margin: 5px 0 8px; font-size: 2rem; }
.pricing-card-heading p { margin: 0; color: var(--muted); font-size: .82rem; }
.pricing-amount { display: grid; min-height: 78px; align-content: center; margin: 11px 0 2px; }
.pricing-amount strong { font: 750 2.45rem/1 Georgia, serif; white-space: nowrap; }
.pricing-from { font-size: .58em; font-weight: 750; }
.pricing-amount > span { margin-top: 5px; color: var(--muted); font-size: .72rem; }
.pricing-year-total { min-height: 24px; color: var(--green-dark); font-weight: 750; }
.pricing-card > .button { width: 100%; margin: 16px 0 20px; }
.pricing-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pricing-card li { position: relative; padding-left: 20px; color: #355047; font-size: .78rem; line-height: 1.4; }
.pricing-card li::before { position: absolute; left: 0; color: var(--green); content: "✓"; font-weight: 900; }
.pricing-free-note { display: grid; gap: 3px; margin-top: auto; padding-top: 18px; color: var(--muted); font-size: .7rem; }
.pricing-free-note strong { color: var(--green-dark); }
.pricing-enterprise-note { margin: auto 0 0; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; line-height: 1.45; }
.pricing-comparison { margin-top: 74px; }
.pricing-comparison-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 20px; }
.pricing-comparison-heading h2 { margin: 5px 0 0; font-size: clamp(2rem, 4vw, 3.5rem); }
.pricing-comparison-heading > p { max-width: 430px; margin: 0; color: var(--muted); }
.pricing-comparison-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow-small); }
.pricing-comparison table { width: 100%; min-width: 840px; border-collapse: collapse; }
.pricing-comparison th, .pricing-comparison td { padding: 15px 18px; border-bottom: 1px solid var(--line); text-align: center; }
.pricing-comparison thead th { background: #edf3ee; color: #3a574b; font-size: .72rem; }
.pricing-comparison thead th.is-primary { background: var(--green); color: #fff; }
.pricing-comparison tbody tr:last-child th, .pricing-comparison tbody tr:last-child td { border-bottom: 0; }
.pricing-comparison tbody th { width: 25%; color: var(--ink); font-size: .75rem; text-align: left; }
.pricing-comparison td { color: #3e574e; font-size: .73rem; }
.comparison-check { color: var(--green-dark); font-weight: 800; }
.comparison-check::before { margin-right: 6px; color: var(--green); content: "✓"; }
.comparison-empty { color: #a6b1ac; }
.founding-section { margin-top: 88px; padding: clamp(26px, 5vw, 52px); border-radius: 24px; background: #102f26; color: #fff; }
.founding-heading { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.founding-heading h2 { margin: 6px 0 10px; color: #fff; font-size: clamp(2.5rem, 5vw, 4.8rem); }
.founding-heading p { max-width: 740px; margin: 0; color: #bfd0c9; }
.founding-heading .eyebrow { color: #78d3af; }
.founding-badge { display: grid; width: 112px; height: 112px; flex: 0 0 112px; place-items: center; border: 1px solid #75b99e; border-radius: 50%; color: #bfe6d4; font: 700 1rem/1.15 Georgia, serif; text-align: center; transform: rotate(7deg); }
.founding-prices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 34px; }
.founding-prices article { display: grid; gap: 4px; padding: 19px; border: 1px solid rgba(255,255,255,.15); border-radius: 14px; background: rgba(255,255,255,.05); }
.founding-prices article.is-primary { border-color: #78d3af; background: rgba(120,211,175,.12); }
.founding-prices span, .founding-prices small { color: #bcd0c8; }
.founding-prices strong { font: 700 1.8rem/1.1 Georgia, serif; }
.founding-benefits { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); gap: 30px; margin-top: 25px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.15); }
.founding-benefits ul { display: flex; flex-wrap: wrap; gap: 9px 24px; margin: 0; padding: 0; list-style: none; }
.founding-benefits li::before { margin-right: 7px; color: #78d3af; content: "✓"; }
.founding-benefits p { margin: 0; color: #a9bdb5; font-size: .78rem; }
.pricing-invoice-note { display: grid; gap: 24px; margin-top: 34px; padding: 32px; border: 1px solid var(--line); border-radius: 20px; background: #f3f7f4; }
.pricing-invoice-note h2 { margin: 5px 0 0; }
.pricing-invoice-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.pricing-invoice-steps span { display: flex; align-items: center; gap: 9px; padding: 12px; border-radius: 11px; background: #fff; font-size: .78rem; font-weight: 750; }
.pricing-invoice-steps b { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 8px; background: var(--green); color: #fff; }
.pricing-invoice-note > p { margin: 0; color: var(--muted); }
.locked-form-field { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 13px; border: 1px dashed #aebdb5; border-radius: 10px; background: #f5f7f5; }
.locked-form-field > div { display: grid; gap: 2px; }
.locked-form-field small { color: var(--muted); }
.locked-form-field a { color: var(--green-dark); font-size: .72rem; font-weight: 800; white-space: nowrap; }
@media (max-width: 1100px) {
  .pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-card.is-featured { transform: none; }
}
@media (max-width: 760px) {
  .pricing-hero, .founding-benefits { grid-template-columns: 1fr; }
  .pricing-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .pricing-free-promise { align-items: flex-start; }
  .pricing-free-promise > span:last-child { width: 100%; padding-left: 33px; }
  .pricing-offers-heading, .pricing-comparison-heading { align-items: flex-start; flex-direction: column; }
  .pricing-cycle { width: 100%; }
  .pricing-cycle button { flex: 1; }
  .pricing-cycle > small { width: 100%; padding: 7px; text-align: center; }
  .pricing-grid, .pricing-benefit-grid, .founding-prices, .pricing-invoice-steps { grid-template-columns: 1fr; }
  .pricing-card-heading { height: auto; }
  .founding-heading { align-items: flex-start; }
  .founding-badge { width: 86px; height: 86px; flex-basis: 86px; font-size: .78rem; }
}

/* Guided chart editor and useful framework detail */
.chart-editor-heading .lead { max-width: 760px; }
.chart-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.chart-editor-skeleton { display: grid; gap: 18px; }
.chart-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.chart-template-card { position: relative; display: grid; align-content: start; gap: 7px; min-height: 210px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.chart-template-card:hover { border-color: #94b7a4; transform: translateY(-1px); }
.chart-template-card:has(input:checked) { border-color: var(--green); background: #f2f8f4; box-shadow: inset 0 0 0 1px var(--green); }
.chart-template-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.chart-template-card > .pill { width: fit-content; margin-bottom: 5px; }
.chart-template-card > strong { padding-right: 30px; font: 700 1.08rem Georgia, serif; }
.chart-template-card > small { line-height: 1.45; }
.chart-template-check { position: absolute; top: 16px; right: 16px; display: none; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.chart-template-card:has(input:checked) .chart-template-check { display: grid; }
.chart-template-facts { align-self: end; margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }
.chart-template-facts b { color: var(--green-dark); }
.chart-framework-choice { margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fafcfa; }
.chart-framework-choice summary { display: flex; justify-content: space-between; gap: 16px; padding: 14px 16px; cursor: pointer; list-style: none; }
.chart-framework-choice summary::-webkit-details-marker { display: none; }
.chart-framework-choice summary strong, .chart-framework-choice summary small { display: block; }
.chart-framework-choice[open] summary { border-bottom: 1px solid var(--line); }
.chart-framework-choice[open] summary > span:last-child { transform: rotate(180deg); }
.chart-framework-choice .field { margin: 0; padding: 16px; }
.optional-label { color: var(--muted); font-size: .72rem; font-weight: 500; }
.chart-next-steps { box-shadow: none; }
.chart-next-step-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.chart-next-step-list span { display: flex; align-items: center; gap: 8px; padding: 11px; border-radius: 10px; background: var(--surface-soft); color: #365047; font-size: .78rem; font-weight: 700; }
.chart-next-step-list b { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .66rem; }
.chart-live-preview { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow); }
.chart-preview-sheet { display: grid; gap: 15px; padding: 23px; }
.chart-preview-sheet > .pill { width: fit-content; }
.chart-preview-sheet h2 { margin: 0; }
.chart-preview-sheet > p { margin: -7px 0 0; color: var(--muted); font-size: .88rem; }
.chart-preview-source { display: grid; gap: 2px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #f7faf7; }
.chart-preview-source > span { color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.chart-preview-source small { font-size: .72rem; }
.chart-preview-count { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 11px; background: #e7f3eb; }
.chart-preview-count strong { color: var(--green-dark); font: 800 2rem Georgia, serif; }
.chart-preview-count span { color: #426154; font-size: .8rem; font-weight: 700; }
.chart-preview-benefits { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.chart-preview-benefits li { position: relative; padding-left: 22px; color: var(--muted); font-size: .79rem; }
.chart-preview-benefits li::before { position: absolute; left: 0; color: var(--green); content: "✓"; font-weight: 900; }
.chart-submit-note { text-align: center; }

.framework-hero { display: flex; align-items: end; justify-content: space-between; gap: 38px; margin: 26px 0 34px; padding: 34px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, #edf5ef, #fafbf8); }
.framework-hero h1 { margin: 5px 0 10px; }
.framework-hero .lead { max-width: 760px; margin-bottom: 0; }
.framework-create-menu { position: relative; flex: 0 0 auto; }
.framework-create-menu > summary { list-style: none; }
.framework-create-menu > summary::-webkit-details-marker { display: none; }
.framework-create-menu > div { position: absolute; right: 0; z-index: 5; display: grid; min-width: 240px; margin-top: 8px; padding: 7px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow); }
.framework-create-menu a { padding: 9px 11px; border-radius: 7px; color: var(--ink); font-size: .84rem; font-weight: 700; }
.framework-create-menu a:hover { background: var(--surface-soft); text-decoration: none; }
.framework-value-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.framework-explainer { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 16px; box-shadow: none; }
.framework-card-icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 12px; background: #e3f1e9; color: var(--green-dark); font: 800 .78rem Georgia, serif; }
.framework-explainer h2 { margin: 1px 0 6px; font-size: 1.3rem; }
.framework-explainer p { margin: 0; color: var(--muted); font-size: .88rem; }
.framework-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.framework-facts, .framework-versions { box-shadow: none; }
.framework-facts .section-heading, .framework-versions .section-heading { margin-top: 0; }
.framework-versions .list-card.is-current { border-color: #8ab19c; background: #f0f7f2; }
.framework-versions .list-card strong, .framework-versions .list-card small { display: block; }
.framework-derived-section { margin-top: 46px; }
.framework-derived-section .section-heading p { max-width: 700px; margin: 4px 0 0; color: var(--muted); }
.framework-chart-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.framework-chart-card { display: flex; align-items: flex-start; flex-direction: column; }
.framework-chart-card > p { color: var(--muted); font-size: .86rem; }
.framework-chart-card .text-link { margin-top: auto; font-weight: 750; }
.framework-empty, .audit-empty { display: grid; gap: 4px; }
.framework-empty strong, .audit-empty strong { color: var(--ink); }
.technical-details { padding: 0; box-shadow: none; }
.technical-details > summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 21px; cursor: pointer; list-style: none; }
.technical-details > summary::-webkit-details-marker { display: none; }
.technical-details summary strong, .technical-details summary small { display: block; }
.technical-details[open] > summary { border-bottom: 1px solid var(--line); }
.technical-details[open] > summary > span:last-child { transform: rotate(180deg); }
.technical-details-body { display: grid; gap: 14px; padding: 20px; }
.technical-details-body .button { width: fit-content; }
.framework-technical { margin-top: 26px; }

/* Understandable values, useful presets and expert guidance */
.domain-suggestion { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 15px; margin-top: 12px; padding: 15px; border: 1px solid #b9d6c5; border-radius: 13px; background: #eef7f1; }
.booking-start-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.booking-start-options button { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.booking-start-options button:hover, .booking-start-options button.is-active { border-color: var(--brand); background: #edf7f2; box-shadow: 0 0 0 2px rgba(15, 116, 88, .08); }
.booking-start-options small { color: var(--muted); line-height: 1.4; }
.domain-suggestion[hidden] { display: none; }
.domain-suggestion-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 11px; background: var(--green); color: #fff; font-size: 1.1rem; }
.domain-suggestion h3 { margin: 1px 0 3px; font: 750 1rem Inter, ui-sans-serif, system-ui, sans-serif; }
.domain-suggestion p { margin: 0; color: var(--muted); font-size: .8rem; }
.domain-suggestion .friendly-tags { margin-top: 8px; }
.domain-suggestion-action { display: grid; justify-items: end; gap: 5px; }
.domain-suggestion-action small { max-width: 190px; color: var(--muted); font-size: .7rem; text-align: right; }
.exercise-editor-form [data-presentation-content][hidden],
.exercise-editor-form [data-source-document-warning][hidden],
.exercise-editor-form [data-custom-document-options][hidden] { display: none !important; }
.custom-source-document-options { display: grid; gap: 14px; padding: 17px; border: 1px solid #bfd2c6; border-radius: 12px; background: #f3f8f5; }
.custom-source-document-heading strong,.custom-source-document-heading span { display: block; }
.custom-source-document-heading span { margin-top: 3px; color: var(--muted); font-size: .78rem; }
.custom-source-document-options .form-grid { margin: 0; }
.variable-builder-intro { display: flex; align-items: end; justify-content: space-between; gap: 22px; }
.variable-builder-intro h2 { margin: 3px 0 0; }
.variable-builder-intro p { margin: 5px 0 0; color: var(--muted); }
.variable-preset-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 22px 0 14px; }
.variable-preset-grid > * { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-content: center; align-items: center; gap: 0 10px; min-height: 90px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); text-align: left; }
.variable-preset-grid button { font: inherit; cursor: pointer; }
.variable-preset-grid button:hover { border-color: #90b19f; background: #f4f9f5; }
.variable-preset-grid > * > span { grid-row: span 2; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #e5f1e9; color: var(--green-dark); font: 800 1rem Georgia, serif; }
.variable-preset-grid strong, .variable-preset-grid small { display: block; }
.variable-preset-grid strong { font-size: .84rem; }
.variable-preset-grid small { font-size: .7rem; }
.variable-help-example { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 18px; padding: 11px 13px; border-radius: 10px; background: #f4f6f4; color: var(--muted); font-size: .77rem; }
.variable-help-example code { color: var(--ink); }
.variable-card-list { display: grid; gap: 12px; }
.variable-list-empty[hidden] { display: none; }
.variable-card { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.variable-card-heading { display: grid; grid-template-columns: 34px minmax(0, 1fr) 38px; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #f5f8f5; }
.variable-card-marker { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--green); color: #fff; font: 800 .72rem ui-monospace, monospace; }
.variable-card-heading strong, .variable-card-heading small { display: block; }
.variable-card-heading small { font-size: .68rem; }
.variable-card-main { display: grid; grid-template-columns: minmax(210px, .75fr) minmax(260px, 1.25fr); gap: 13px; padding: 15px 15px 0; }
.variable-card-main > label, .variable-parameter-grid > label { display: grid; gap: 5px; }
.variable-card-main label > span, .variable-parameter-grid label > span { color: #365047; font-size: .74rem; font-weight: 750; }
.variable-name-input { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 5px; }
.variable-name-input b { color: var(--green); font-family: ui-monospace, monospace; }
.variable-parameter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; padding: 13px 15px 16px; }
.variable-parameter-grid.is-single { grid-template-columns: minmax(0, 1fr); }
.variable-parameter-grid.is-double { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.variable-parameter-grid > label[hidden] { display: none; }
.validation-mode-help { margin-top: 7px; padding: 10px 12px; border-left: 3px solid var(--green); border-radius: 0 9px 9px 0; background: #f1f7f3; }
.validation-mode-help p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.validation-mode-help strong { color: var(--ink); }
.validation-mode-help [hidden] { display: none; }
.field.is-disabled { opacity: .62; }
.field.is-disabled .input { background: #f1f4f2; cursor: not-allowed; }
.select-context-guide { grid-column: 1 / -1; padding: 12px 14px; border-left: 3px solid var(--green); border-radius: 0 10px 10px 0; background: #eef5f1; }
.select-context-guide p { margin: 0; color: #52685f; font-size: .72rem; line-height: 1.55; }
.select-context-guide strong { color: var(--ink); }
.structured-list-editor { display: grid; gap: 9px; }
.structured-list-items { display: grid; gap: 7px; }
.structured-list-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) 40px; align-items: center; overflow: hidden; border: 1px solid #afc2b7; border-radius: 11px; background: #fff; }
.structured-list-row:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(15, 116, 88, .11); }
.structured-list-row > span { color: var(--green); font-size: 1.15rem; text-align: center; }
.structured-list-row input { min-width: 0; min-height: 43px; padding: 9px 5px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; }
.structured-list-row button { min-height: 43px; border: 0; border-left: 1px solid var(--line); background: #f5f8f6; color: var(--danger); font: inherit; font-size: 1rem; font-weight: 800; line-height: 1; cursor: pointer; }
.structured-list-row button:hover { background: #fff0ef; }
.structured-list-add { width: fit-content; min-height: 39px; padding: 8px 12px; border: 1px dashed #91ad9d; border-radius: 10px; background: #f7faf8; color: var(--green); font: inherit; font-size: .7rem; font-weight: 800; cursor: pointer; }
.structured-list-add:hover { border-style: solid; background: #e9f3ed; }
.text-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 24px; align-items: start; }
.text-live-preview { top: 96px; }
.text-preview-question { padding: 15px; border-left: 3px solid #d09a24; border-radius: 0 10px 10px 0; background: #fbfaf6; line-height: 1.6; }
.text-preview-answer { display: grid; gap: 7px; margin-top: 18px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.text-preview-answer span { min-height: 110px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fafcfb; color: #83938c; font-weight: 500; }
.expert-workbench { display: grid; gap: 18px; }
.expert-heading { display: flex; align-items: start; justify-content: space-between; gap: 24px; }
.expert-heading h2 { margin: 3px 0; }
.expert-heading p { max-width: 780px; margin: 0; color: var(--muted); }
.expert-template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.expert-template-grid button { display: grid; gap: 4px; min-height: 110px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.expert-template-grid button:hover, .expert-template-grid button.is-applied { border-color: #82aa97; background: #eff7f2; }
.expert-template-grid strong, .expert-template-grid small { display: block; }
.expert-template-grid small { font-size: .75rem; }
.expert-guide, .expert-code-fields { border: 1px solid var(--line); border-radius: 12px; background: #fafcfa; }
.expert-guide > summary, .expert-code-fields > summary { display: flex; justify-content: space-between; gap: 16px; padding: 14px 16px; cursor: pointer; list-style: none; }
.expert-guide > summary::-webkit-details-marker, .expert-code-fields > summary::-webkit-details-marker { display: none; }
.expert-guide summary strong, .expert-guide summary small, .expert-code-fields summary strong, .expert-code-fields summary small { display: block; }
.expert-guide[open] > summary, .expert-code-fields[open] > summary { border-bottom: 1px solid var(--line); }
.expert-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; padding: 15px; }
.expert-guide-grid article { padding: 14px; border-radius: 10px; background: #fff; }
.expert-guide-grid code { display: block; width: fit-content; margin-bottom: 8px; padding: 3px 6px; border-radius: 5px; background: #e7f0ea; color: var(--green-dark); font-size: .72rem; }
.expert-guide-grid strong { display: block; font-size: .86rem; }
.expert-guide-grid p { margin: 4px 0 0; color: var(--muted); font-size: .75rem; }
.expert-code-body { display: grid; gap: 14px; padding: 16px; }

/* Human-readable audit timeline */
.audit-container { max-width: 1040px; }
.audit-page-heading .lead { max-width: 800px; }
.audit-explainer { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding: 13px 15px; border: 1px solid #bdd7c8; border-radius: 11px; background: #eef7f1; }
.audit-explainer > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font: 800 .78rem Georgia, serif; }
.audit-explainer p { margin: 0; color: #365047; font-size: .83rem; }
.audit-timeline { display: grid; }
.audit-card { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; }
.audit-marker { position: relative; display: flex; justify-content: center; }
.audit-marker::after { position: absolute; top: 28px; bottom: 0; width: 2px; background: #d6e2da; content: ""; }
.audit-card:last-child .audit-marker::after { display: none; }
.audit-marker span { position: relative; z-index: 1; width: 14px; height: 14px; margin-top: 25px; border: 4px solid #d9ede1; border-radius: 50%; background: var(--green); box-sizing: content-box; }
.audit-card-content { overflow: hidden; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.audit-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 22px; padding: 18px 20px; }
.audit-card-heading h2 { margin: 0; font: 750 1rem Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: 0; }
.audit-card-heading p { margin: 4px 0 0; color: var(--muted); font-size: .79rem; }
.audit-card-heading time { display: grid; color: var(--muted); font-size: .76rem; text-align: right; white-space: nowrap; }
.audit-card-heading time span { font-size: .68rem; }
.audit-summary { margin: -4px 20px 17px; color: var(--muted); font-size: .82rem; }
.audit-change-list { display: grid; margin: 0 20px 17px; border: 1px solid var(--line); border-radius: 9px; }
.audit-change-list > div { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; min-height: 46px; padding: 8px 11px; border-bottom: 1px solid var(--line); font-size: .78rem; }
.audit-change-list > div:last-child { border-bottom: 0; }
.audit-change-list span { color: var(--muted); font-weight: 700; }
.audit-change-list del { color: #86615d; text-decoration-color: #c99a94; }
.audit-change-list ins { color: var(--green-dark); font-weight: 700; text-decoration: none; }
.audit-change-list b { color: #9bad9f; }
.audit-technical { border-top: 1px solid var(--line); background: #fafcfa; }
.audit-technical > summary { padding: 10px 20px; color: var(--muted); font-size: .72rem; cursor: pointer; }
.audit-technical-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 6px 20px 12px; }
.audit-technical-grid > div { min-width: 0; }
.audit-technical-grid span { display: block; color: var(--muted); font-size: .67rem; font-weight: 750; }
.audit-technical-grid code { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.audit-raw-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 20px 20px; }
.audit-raw-grid pre { max-height: 280px; font-size: .7rem; }
.audit-page .audit-container { max-width: 1320px; }
.audit-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.audit-result-summary { display: grid; min-width: 7rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; text-align: right; }
.audit-result-summary strong { color: var(--green-dark); font: 800 1.7rem Georgia, serif; }
.audit-result-summary span { color: var(--muted); font-size: .72rem; }
.audit-filter-panel { display: grid; grid-template-columns: minmax(15rem, 1.45fr) repeat(2, minmax(9rem, 1fr)) repeat(2, minmax(10.5rem, 1fr)) minmax(6.5rem,.55fr); gap: .75rem; align-items: end; margin: 1.25rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.audit-filter-panel label { display: grid; gap: .3rem; min-width: 0; color: var(--muted); font-size: .74rem; font-weight: 750; }
.audit-filter-panel .input { width: 100%; min-width: 0; min-height: 2.65rem; }
.audit-filter-panel input[type="date"] { padding-right: .45rem; }
.audit-filter-actions { display: flex; grid-column: 1 / -1; gap: .55rem; justify-content: flex-end; }
.audit-search-input { position: relative; display: block; }
.audit-search-input > .ui-icon { position: absolute; z-index: 1; top: 50%; left: .8rem; width: 1rem; height: 1rem; color: var(--muted); transform: translateY(-50%); }
.audit-search-input > .input { padding-left: 2.35rem; }
.audit-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.audit-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.audit-table th { padding: .75rem .9rem; background: #f3f7f4; color: var(--muted); font-size: .7rem; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
.audit-sort-link { display: inline-flex; align-items: center; gap: .3rem; color: inherit; text-decoration: none; }
.audit-sort-link .ui-icon { width: .85rem; height: .85rem; }
.audit-sort-link.is-active { color: var(--green-dark); }
.audit-table td { position: relative; padding: .8rem .9rem; border-top: 1px solid var(--line); vertical-align: middle; font-size: .82rem; }
.audit-table td:first-child { width: 8.5rem; }
.audit-table td:last-child { width: 3rem; }
.audit-table td strong, .audit-table td small, .audit-table time { display: block; }
.audit-table td small { margin-top: .15rem; color: var(--muted); }
.audit-actor { display: flex; align-items: center; gap: .55rem; min-width: 9rem; }
.audit-actor i { display: grid; flex: 0 0 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #e5f0e9; color: var(--green-dark); font-style: normal; font-weight: 850; }
.audit-row-details > summary { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .55rem; color: var(--green-dark); cursor: pointer; list-style: none; }
.audit-row-details > summary::-webkit-details-marker { display: none; }
.audit-row-details[open] > summary { background: #e7f1eb; transform: rotate(180deg); }
.audit-row-detail-panel { position: relative; display: grid; gap: .8rem; width: 100%; min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: #f9fbfa; box-shadow: none; }
.audit-row-detail-panel .audit-change-list { margin: 0; background: #fff; }
.audit-row-detail-panel .audit-technical-grid { padding: 0; }
.audit-row-detail-panel .audit-technical { border: 1px solid var(--line); border-radius: .65rem; }
.audit-detail-toggle { display: grid; width: 2rem; height: 2rem; place-items: center; border: 0; border-radius: .55rem; background: transparent; color: var(--green-dark); cursor: pointer; }
.audit-detail-toggle:hover, .audit-detail-toggle[aria-expanded="true"] { background: #e7f1eb; }
.audit-detail-toggle .ui-icon { width: .95rem; height: .95rem; transition: transform .15s ease; }
.audit-detail-toggle[aria-expanded="true"] .ui-icon { transform: rotate(180deg); }
.audit-detail-row > td { padding: .75rem !important; background: #f7faf8; }
.audit-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.audit-pagination > span { display: flex; align-items: center; gap: .3rem; }
.audit-pagination form label { display: flex; align-items: center; gap: .45rem; margin-left: .4rem; color: var(--muted); font-size: .75rem; }
.audit-pagination input { width: 4.5rem; }
.audit-pagination .is-disabled { opacity: .35; pointer-events: none; }
@media (max-width: 1180px) { .audit-filter-panel { grid-template-columns: repeat(3, minmax(0, 1fr)); } .audit-filter-actions { grid-column: 1 / -1; } }
@media (max-width: 700px) { .audit-page-heading { align-items: stretch; flex-direction: column; } .audit-result-summary { text-align: left; } .audit-filter-panel { grid-template-columns: 1fr; } .audit-date-range, .audit-filter-actions { grid-column: 1; } .audit-filter-actions { justify-content: stretch; } .audit-filter-actions > * { flex: 1; } }

@media (max-width: 960px) {
  .chart-editor-layout { grid-template-columns: 1fr; }
  .chart-live-preview { position: static; }
  .chart-preview-sheet { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-preview-sheet > .pill, .chart-preview-sheet > h2, .chart-preview-sheet > p, .chart-preview-benefits, .chart-preview-sheet > .button, .chart-submit-note { grid-column: 1 / -1; }
  .framework-chart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .domain-suggestion { grid-template-columns: 44px minmax(0, 1fr); }
  .domain-suggestion-action { grid-column: 2; justify-items: start; }
  .domain-suggestion-action small { text-align: left; }
  .variable-preset-grid, .expert-template-grid, .expert-guide-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .unit-editor-savebar { position: static; align-items: stretch; flex-direction: column; }
  .unit-editor-savebar .actions { display: grid; grid-template-columns: 1fr; }
  .unit-editor-savebar .button { width: 100%; }
  .chart-template-grid, .framework-value-grid, .framework-content-grid, .framework-chart-grid { grid-template-columns: 1fr; }
  .chart-next-step-list { grid-template-columns: 1fr; }
  .framework-hero { align-items: flex-start; flex-direction: column; padding: 24px; }
  .framework-hero > .button, .framework-create-menu, .framework-create-menu > summary { width: 100%; }
  .framework-create-menu > div { position: static; min-width: 0; }
  .variable-builder-intro, .expert-heading { align-items: stretch; flex-direction: column; }
  .variable-builder-intro .button { width: 100%; }
  .variable-card-main, .variable-parameter-grid { grid-template-columns: 1fr; }
  .audit-change-list > div { grid-template-columns: 1fr auto 1fr; }
  .audit-change-list span { grid-column: 1 / -1; }
  .audit-raw-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .chart-preview-sheet { grid-template-columns: 1fr; }
  .chart-preview-source, .chart-preview-count { grid-column: 1; }
  .domain-suggestion { grid-template-columns: 1fr; }
  .domain-suggestion-action { grid-column: 1; width: 100%; }
  .domain-suggestion-action .button { width: 100%; }
  .variable-preset-grid > * { grid-template-columns: 34px minmax(0, 1fr); }
  .audit-card { grid-template-columns: 24px minmax(0, 1fr); gap: 5px; }
  .audit-card-heading { align-items: flex-start; flex-direction: column; gap: 8px; padding: 15px; }
  .audit-card-heading time { display: flex; gap: 5px; text-align: left; }
  .audit-summary, .audit-change-list { margin-right: 15px; margin-left: 15px; }
  .audit-technical-grid { grid-template-columns: 1fr; padding-inline: 15px; }
  .audit-raw-grid { padding-inline: 15px; }
}

/* Solution modes, booking sentences and guided review */
.solution-delivery { display: grid; gap: 18px; margin-bottom: 18px; box-shadow: none; }
.solution-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.solution-mode-card { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 112px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; cursor: pointer; }
.solution-mode-card:hover { border-color: #8eb29f; background: #f7faf7; }
.solution-mode-card:has(input:checked) { border-color: var(--green); background: #edf6f0; box-shadow: inset 0 0 0 1px var(--green); }
.solution-mode-card > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.solution-mode-symbol { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: #e5efe8; color: var(--green-dark); font: 800 1rem Georgia, serif; }
.solution-mode-card:has(input:checked) .solution-mode-symbol { background: var(--green); color: #fff; }
.solution-mode-card strong, .solution-mode-card small { display: block; }
.solution-mode-card small { margin-top: 3px; font-size: .72rem; line-height: 1.45; }
.auto-mirror-setting { display: flex; align-items: flex-start; gap: 11px; padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf8; cursor: pointer; }
.auto-mirror-setting input { width: 19px; height: 19px; flex: 0 0 19px; margin-top: 2px; accent-color: var(--green); }
.auto-mirror-setting strong, .auto-mirror-setting small { display: block; }
.auto-mirror-setting small { margin-top: 2px; font-size: .74rem; }
.solution-method-picker { display: grid; justify-items: center; gap: 12px; margin: 18px 0 30px; padding: 4px 0 0; }
.solution-method-eyebrow { text-align: center; }
.solution-method-options { display: grid; width: min(100%, 620px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.solution-method-option { display: grid; min-height: 86px; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; padding: 15px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.solution-method-option:hover, .solution-method-option.selected { border-color: var(--green); background: #eef6f1; }
.solution-method-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #e6efe9; color: var(--green-dark); font: 800 .88rem Georgia, serif; }
.solution-method-option.selected .solution-method-icon { background: var(--green); color: #fff; }
.solution-method-option strong, .solution-method-option small { display: block; }
.solution-method-option small { margin-top: 3px; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.solution-method-help { max-width: 680px; margin: 0; color: var(--muted); font-size: .85rem; text-align: center; }
[data-method-panel][hidden] { display: none; }
.inline-guidance { margin: 12px 0; padding: 11px 13px; border-left: 3px solid var(--gold); border-radius: 0 9px 9px 0; background: #faf7ed; color: #5f5439; font-size: .8rem; }
.booking-entry-panel { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.booking-sentence-builder { display: grid; grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr); align-items: stretch; gap: 12px; margin-top: 20px; }
.booking-sentence-side { display: flex; min-width: 0; flex-direction: column; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fafcfa; }
.booking-sentence-heading { padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.booking-sentence-heading span, .booking-sentence-heading small { display: block; }
.booking-sentence-heading span { color: var(--green-dark); font-size: .75rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.booking-sentence-heading small { margin-top: 3px; font-size: .78rem; line-height: 1.45; }
.booking-sentence-side > [data-booking-list] { display: grid; gap: 8px; margin: 13px 0; }
.booking-sentence-connector { display: grid; place-items: center; color: var(--green-dark); font: italic 800 1.25rem Georgia, serif; }
.booking-sentence-row { display: grid; grid-template-columns: minmax(0, 1fr) 38px; align-items: end; gap: 8px; padding: 10px; border: 1px solid #dbe4de; border-radius: 11px; background: #fff; }
.booking-sentence-side-badge { display: none; }
.booking-sentence-row .input { min-width: 0; }
.booking-sentence-row > .account-picker-control,
.booking-sentence-row > select[data-booking-account] { grid-column: 1 / -1; }
.booking-sentence-row > .icon-button { grid-column: 2; width: 38px; height: 44px; color: var(--danger); }
.booking-sentence-row > .icon-button:disabled { opacity: .35; cursor: not-allowed; }
.booking-sentence-amount { position: relative; display: grid; grid-column: 1; grid-template-columns: auto minmax(90px, 1fr) auto; align-items: center; gap: 8px; }
.booking-sentence-amount-label { color: var(--ink); font-size: .78rem; font-weight: 780; }
.booking-sentence-amount .input { min-width: 100px; padding-right: 28px; font-size: 1rem; font-weight: 720; }
.booking-sentence-amount > span:last-child { position: absolute; top: 50%; right: 10px; color: var(--muted); transform: translateY(-50%); }
.button.compact { padding: 8px 12px; font-size: .76rem; }
.review-dashboard { display: grid; gap: 23px; padding: 30px; }
.review-dashboard-heading, .analytics-section-heading, .admin-workspace-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.review-dashboard-heading h2 { margin: 2px 0; }
.review-dashboard-heading p { margin: 3px 0 0; color: var(--muted); }
.review-readiness { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.review-readiness article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 14px; border: 1px solid #ead9be; border-radius: 12px; background: #fcf8ef; }
.review-readiness article > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #f0d9a8; color: #6e4a05; font-weight: 900; }
.review-readiness article.complete { border-color: #bddac8; background: #eef7f1; }
.review-readiness article.complete > span { background: var(--green); color: #fff; }
.review-readiness strong, .review-readiness small { display: block; }
.review-readiness strong { font-size: .8rem; line-height: 1.35; }
.review-readiness small { margin-top: 3px; font-size: .68rem; line-height: 1.4; }
.review-suggestions { display: grid; grid-template-columns: minmax(160px, .7fr) repeat(3, minmax(0, 1fr)); gap: 10px; padding-top: 20px; border-top: 1px solid var(--line); }
.review-suggestions h3 { margin: 1px 0; }
.review-suggestions > button { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.review-suggestions > button:hover { border-color: #8eb29f; background: #f1f7f3; }
.review-suggestions button strong, .review-suggestions button small { display: block; }
.review-suggestions button strong, .review-suggestions button small { grid-column: 1; }
.review-suggestions button strong { grid-row: 1; font-size: .78rem; }
.review-suggestions button small { grid-row: 2; font-size: .67rem; }
.review-suggestions button > span { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--green); font-weight: 900; }
.ambiguity-results { display: grid; gap: 9px; }
.ambiguity-results:empty { display: none; }
.ambiguity-heading strong, .ambiguity-heading span { display: block; }
.ambiguity-heading span { color: var(--muted); font-size: .75rem; }
.ambiguity-card { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid #ead9be; border-radius: 11px; background: #fcf9f1; }
.ambiguity-card > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #f0d9a8; color: #6e4a05; font-weight: 900; }
.ambiguity-card strong, .ambiguity-card small { display: block; }
.ambiguity-card strong { font-size: .8rem; }
.ambiguity-card small { font-size: .68rem; }
.review-success { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 11px; padding: 14px; border-radius: 11px; background: #e8f4ec; }
.review-success > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.review-success strong, .review-success small { display: block; }
.review-version-note { display: flex; align-items: center; gap: 9px; margin-top: 12px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); font-size: .76rem; }
.review-version-note strong { color: var(--ink); }

/* Multiple-choice workbench and learner view */
.mc-editor-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr); align-items: start; gap: 22px; }
.exam-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 348px; align-items: start; gap: 24px; }
.exam-editor-layout > .exercise-skeleton { min-width: 0; max-width: 100%; }
.mc-option-builder { display: grid; gap: 11px; margin-bottom: 13px; }
.mc-option-card { display: grid; grid-template-columns: 34px minmax(0, 1fr) 36px; align-items: start; gap: 11px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fafcfa; }
.mc-option-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--green); color: #fff; font-weight: 850; }
.mc-option-fields { display: grid; gap: 9px; min-width: 0; }
.mc-option-fields label > span { display: block; margin-bottom: 4px; color: #365047; font-size: .72rem; font-weight: 750; }
.mc-option-fields textarea { min-height: 68px; resize: vertical; }
.mc-correct-toggle { display: flex; align-items: center; gap: 9px; width: fit-content; padding: 8px 10px; border-radius: 9px; background: #edf3ee; cursor: pointer; }
.mc-correct-toggle input { width: 18px; height: 18px; accent-color: var(--green); }
.mc-correct-toggle strong, .mc-correct-toggle small { display: block; }
.mc-correct-toggle strong { font-size: .72rem; }
.mc-correct-toggle small { font-size: .64rem; }
.mc-option-fields details { border-top: 1px solid var(--line); }
.mc-option-fields summary { padding-top: 8px; color: var(--green); font-size: .72rem; font-weight: 750; cursor: pointer; }
.mc-option-fields details label { display: block; padding-top: 8px; }
.mc-option-actions { display: grid; gap: 5px; }
.mc-option-actions .icon-button { width: 34px; height: 34px; font-size: .9rem; }
.mc-options-error { margin: 9px 0; }
.mc-live-preview { position: sticky; top: 96px; }
.mc-preview-question { margin: 16px 0; padding: 16px; border-left: 3px solid var(--gold); border-radius: 0 10px 10px 0; background: #faf8f1; font: 700 1rem Georgia, serif; }
.mc-preview-options { display: grid; gap: 8px; }
.mc-preview-option { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
.mc-preview-option span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #e8eeea; color: #416053; font-size: .72rem; }
.mc-preview-option strong { font-size: .75rem; }
.mc-preview-option.correct { border-color: #90baa1; background: #eef7f1; }
.mc-preview-option.correct span { background: var(--green); color: #fff; }
.mc-preview-note { margin: 13px 0 0; color: var(--muted); font-size: .68rem; }
.narrow { max-width: 880px; }
.mc-attempt-card { padding: 0; overflow: hidden; }
.mc-attempt-heading { padding: 26px 28px 20px; border-bottom: 1px solid var(--line); background: #fafcfa; }
.mc-attempt-heading h2 { max-width: 900px; margin: 8px 0; font-family: inherit; font-size: clamp(1.05rem, 1.5vw, 1.3rem); font-weight: 650; line-height: 1.5; letter-spacing: 0; overflow-wrap: anywhere; hyphens: auto; }
.mc-attempt-heading p { margin: 0; color: var(--muted); }
.mc-answer-list { display: grid; gap: 10px; padding: 22px 28px; }
.mc-answer-option { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.mc-answer-option:hover { border-color: #8eb29f; background: #f7faf7; }
.mc-answer-option:has(input:checked) { border-color: var(--green); background: #edf6f0; box-shadow: inset 0 0 0 1px var(--green); }
.mc-answer-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.mc-answer-marker { display: grid; width: 24px; height: 24px; place-items: center; border: 2px solid #aebdb4; border-radius: 50%; }
.mc-answer-option:has(input[type="checkbox"]) .mc-answer-marker { border-radius: 6px; }
.mc-answer-option:has(input:checked) .mc-answer-marker { border-color: var(--green); background: var(--green); box-shadow: inset 0 0 0 5px #edf6f0; }
.mc-attempt-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 28px; border-top: 1px solid var(--line); background: #fafcfa; }
.mc-attempt-actions > span { color: var(--muted); font-size: .75rem; }
.mc-result-list { display: grid; gap: 9px; }
.mc-result-option { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: start; gap: 11px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; }
.mc-result-option > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #e7ede9; font-weight: 850; }
.mc-result-option.correct { border-color: #afd3bd; background: #eef8f1; }
.mc-result-option.correct > span { background: var(--green); color: #fff; }
.mc-result-option.incorrect { border-color: #e2b7b3; background: #fff4f3; }
.mc-result-option.incorrect > span { background: var(--danger); color: #fff; }
.mc-result-option strong, .mc-result-option small { display: block; }
.mc-result-option p { margin: 6px 0 0; color: var(--muted); font-size: .78rem; }
.mc-result-option em { color: var(--green); font-size: .7rem; font-style: normal; font-weight: 800; }
.exercise-prompt-copy { max-width: 880px; font-family: Inter, ui-sans-serif, system-ui, sans-serif !important; font-size: clamp(1.05rem, 1.45vw, 1.3rem) !important; font-weight: 450 !important; line-height: 1.55 !important; letter-spacing: 0 !important; overflow-wrap: anywhere; hyphens: auto; white-space: pre-line; }
.result-section-heading .exercise-prompt-copy { margin-top: .45rem; }

/* Exam workbench */
.exam-live-preview { position: static; width: 100%; max-width: 348px; justify-self: end; }
.selection-mode-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.selection-mode-cards label { position: relative; display: block; padding: 15px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.selection-mode-cards label:has(input:checked) { border-color: var(--green); background: #eef6f1; box-shadow: inset 0 0 0 1px var(--green); }
.selection-mode-cards input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.selection-mode-cards strong, .selection-mode-cards small { display: block; }
.selection-mode-cards strong { font-size: .84rem; }
.selection-mode-cards small { margin-top: 3px; font-size: .7rem; }
.exam-preview-timeline { display: grid; grid-template-columns: 12px minmax(0, 1fr); align-items: center; gap: 10px; margin: 14px 0; padding: 13px; border-radius: 10px; background: #eef5f0; }
.exam-preview-timeline > span { width: 10px; height: 10px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px #cfe4d6; }
.exam-preview-timeline strong, .exam-preview-timeline small { display: block; }
.exam-preview-timeline strong { font-size: .76rem; }
.exam-preview-timeline small { font-size: .65rem; }
.exam-timing-fieldset { margin: 0 0 14px; padding: 0; border: 0; }
.exam-timing-fieldset legend { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; font-size: .68rem; font-weight: 800; }
.exam-range-window { margin-bottom: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.exam-range-window[hidden] { display: none; }
.exam-range-window .validity-picker { margin: 0; }
.exam-task-builder { min-width: 0; max-width: 100%; overflow: hidden; }
.exam-task-selection, .exam-task-library, .exam-task-list, .exam-task-card { min-width: 0; max-width: 100%; }
.exam-task-selection, .exam-task-library { padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfb; }
.exam-task-library { margin-top: 14px; }
.exam-task-selection > header, .exam-task-library-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.exam-task-selection > header > div, .exam-task-library-heading > div { display: grid; gap: 2px; }
.exam-task-selection > header strong, .exam-task-library-heading strong { font-size: .72rem; }
.exam-task-selection > header small, .exam-task-library-heading small { color: var(--muted); font-size: .62rem; }
.exam-task-library-heading > strong { color: var(--green-dark); white-space: nowrap; }
.exam-selected-empty { display: grid; gap: 3px; padding: 18px; border: 1px dashed #abc3b6; border-radius: 11px; color: var(--muted); text-align: center; }
.exam-selected-empty[hidden] { display: none; }
.exam-selected-empty strong { color: var(--ink); font-size: .7rem; }
.exam-selected-empty small { font-size: .62rem; }
.exam-task-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(145px, .42fr) minmax(145px, .42fr); gap: 10px; align-items: end; margin-bottom: 12px; }
.exam-task-search { position: relative; display: block; }
.exam-task-search > span { position: absolute; top: 50%; left: 13px; z-index: 1; color: var(--green-dark); font-size: 1rem; transform: translateY(-50%); }
.exam-task-search .input { padding-left: 38px; }
.exam-task-filter-field { display: grid; gap: 4px; color: var(--muted); font-size: .58rem; font-weight: 800; }
.exam-task-filter-field .input { min-height: 42px; }
.exam-task-count { color: var(--green-dark); font-size: .68rem; white-space: nowrap; }
.exam-task-list { display: grid; gap: 9px; }
.exam-task-pagination { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); }
.exam-task-pagination[hidden] { display: none; }
.exam-task-pagination span { color: var(--muted); font-size: .66rem; font-weight: 800; }
.exam-task-pagination button:disabled { opacity: .42; cursor: default; }
.exam-task-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.exam-task-card[hidden] { display: none; }
.exam-task-card:hover { border-color: #a4c5b4; }
.exam-task-card.is-selected { border-color: #76ae93; background: #f1f8f3; box-shadow: 0 8px 20px rgba(8, 63, 47, .06); }
.is-library-list .exam-task-card { grid-template-columns: minmax(0, 1fr); padding: 11px 12px; }
.is-library-list .exam-task-facts, .is-library-list .exam-text-task-note, .is-library-list .exam-task-settings { display: none; }
.exam-task-choice { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 11px; align-items: center; min-width: 0; cursor: pointer; }
.exam-task-choice > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.exam-task-check { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #b8ccc1; border-radius: 9px; background: #fff; color: transparent; font-size: .75rem; font-weight: 900; }
.exam-task-choice > input:focus-visible + .exam-task-check { outline: 3px solid rgba(0, 108, 77, .22); outline-offset: 2px; }
.exam-task-card.is-selected .exam-task-check { border-color: var(--green); background: var(--green-dark); color: #fff; }
.exam-task-choice > span:last-child { display: grid; min-width: 0; gap: 2px; }
.exam-task-choice small { color: var(--green-dark); font-size: .58rem; font-weight: 820; text-transform: uppercase; letter-spacing: .06em; }
.exam-task-choice strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.exam-task-choice em { color: var(--muted); font-size: .62rem; font-style: normal; }
.exam-task-settings { display: none; grid-template-columns: 108px auto auto; gap: 7px; align-items: end; }
.exam-task-card.is-selected .exam-task-settings { display: grid; }
.exam-task-settings label { display: grid; gap: 4px; }
.exam-task-settings label > span { display: flex; gap: 5px; align-items: center; color: var(--muted); font-size: .58rem; font-weight: 750; }
.exam-task-settings .input { min-height: 38px; padding: 7px 9px; }
.exam-task-order-actions { display: flex; gap: 4px; }
.exam-task-order-actions button, .exam-task-remove { min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--green-dark); font: inherit; font-size: .64rem; font-weight: 800; cursor: pointer; }
.exam-task-order-actions button:hover, .exam-task-order-actions button:focus-visible { border-color: var(--green); background: var(--surface-soft); outline: 2px solid rgba(0, 108, 77, .12); }
.exam-task-remove { color: var(--danger); }
.exam-task-remove:hover, .exam-task-remove:focus-visible { border-color: #d9a9a4; background: #fff5f3; outline: 2px solid rgba(158, 46, 36, .1); }
.exam-task-empty { padding: 24px; border: 1px dashed #a9c2b5; border-radius: 12px; background: var(--surface-soft); text-align: center; }
.exam-task-empty strong { display: block; }
.exam-task-empty p { margin: 6px auto 14px; max-width: 520px; color: var(--muted); font-size: .7rem; }
.exam-task-empty .actions { justify-content: center; }
.exam-task-no-results { margin: 12px 0 0; padding: 14px; border-radius: 10px; background: var(--surface-soft); color: var(--muted); text-align: center; font-size: .68rem; }
.grading-mode-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.grading-mode-cards label { cursor: pointer; }
.grading-mode-cards input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.grading-mode-cards span { display: grid; min-height: 88px; align-content: center; gap: 4px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.grading-mode-cards strong { font-size: .72rem; }
.grading-mode-cards small { color: var(--muted); font-size: .62rem; line-height: 1.4; }
.grading-mode-cards input:checked + span { border-color: var(--green); background: #eff8f2; box-shadow: inset 0 0 0 1px var(--green); }
.grading-mode-cards input:focus-visible + span { outline: 3px solid rgba(0, 108, 77, .2); outline-offset: 2px; }
.exam-grade-scale { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.exam-grade-scale[hidden], [data-threshold-grading][hidden] { display: none; }
.exam-grade-scale-heading { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.exam-grade-scale-heading strong { font-size: .72rem; }
.exam-grade-scale-heading span { color: var(--muted); font-size: .62rem; }
.exam-grade-grid { display: grid; gap: 6px; }
.exam-grade-row { display: grid; grid-template-columns: 82px 24px minmax(80px, 120px) 16px; gap: 7px; align-items: center; }
.exam-grade-row .input { min-height: 38px; padding: 7px 9px; }
.exam-grade-row > span:not(.exam-grade-badge) { color: var(--muted); font-size: .62rem; }
.exam-grade-badge { padding: 7px 9px; border-radius: 8px; background: #fff; font-size: .66rem; font-weight: 800; }
.exam-grade-row.is-fallback { grid-template-columns: 82px 1fr; padding-top: 3px; }
.exam-grade-row .field-error { grid-column: 1 / -1; }

.exam-detail-page { padding-top: 46px; }
.exam-detail-heading { margin-top: 22px; }
.exam-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 26px 0 18px; }
.exam-summary-grid article { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.exam-summary-grid article > span { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; background: #e7f2eb; color: var(--green-dark); font-size: .8rem; font-weight: 900; }
.exam-summary-grid div { display: grid; gap: 2px; }
.exam-summary-grid small { color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.exam-summary-grid strong { font-family: Georgia, serif; font-size: 1.35rem; line-height: 1; }
.exam-summary-grid p { margin: 2px 0 0; color: var(--muted); font-size: .62rem; }
.exam-grade-summary { display: flex; gap: 18px; align-items: center; justify-content: space-between; margin-bottom: 16px; padding: 13px 16px; border: 1px solid #acd0bb; border-radius: 12px; background: #eef8f1; }
.exam-grade-summary > strong { font-size: .7rem; }
.exam-grade-summary > div { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.exam-grade-summary span { display: flex; gap: 6px; align-items: center; padding: 6px 8px; border-radius: 8px; background: #fff; color: var(--muted); font-size: .6rem; }
.exam-grade-summary b { color: var(--green-dark); font-size: .72rem; }
.exam-management-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 20px; align-items: start; margin-top: 28px; }
.exam-section-heading { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; margin-bottom: 15px; }
.exam-section-heading h2 { margin: 3px 0 4px; font-size: 1.75rem; }
.exam-section-heading p { margin: 0; color: var(--muted); font-size: .68rem; }
.exam-detail-task-list { display: grid; gap: 7px; }
.exam-detail-task-list article { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.exam-detail-task-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--green-dark); color: #fff; font-size: .68rem; font-weight: 850; }
.exam-detail-task-list article > div { display: grid; gap: 2px; min-width: 0; }
.exam-detail-task-list .pill { width: fit-content; font-size: .54rem; }
.exam-detail-task-list article > div > strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.exam-detail-task-list article small { color: var(--muted); font-size: .6rem; }
.exam-detail-task-list article > b { font-size: .66rem; white-space: nowrap; }
.exam-monitor { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.exam-monitor-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.exam-monitor-stats div { display: grid; gap: 2px; padding: 12px; border-radius: 10px; background: var(--surface-soft); }
.exam-monitor-stats strong { font-family: Georgia, serif; font-size: 1.4rem; }
.exam-monitor-stats span { color: var(--muted); font-size: .58rem; }
.exam-attempt-list { display: grid; gap: 7px; }
.exam-attempt-list > a { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 10px; color: inherit; text-decoration: none; }
.exam-attempt-list > a:hover { border-color: #91bba5; background: var(--surface-soft); }
.exam-attempt-list > a > span:nth-child(2) { display: grid; }
.exam-attempt-list strong { font-size: .67rem; }
.exam-attempt-list small { color: var(--muted); font-size: .58rem; }
.exam-taking-page { background: linear-gradient(#f5f7f3, #eef3ef); }
.exam-question-prompt { max-width: 820px; font-size: 1.02rem; }
.exam-choice-list { max-width: 820px; padding: 10px 0 0; }
.exam-submit-bar { position: sticky; bottom: 12px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.exam-submit-bar span { color: var(--muted); font-size: .76rem; }
.answer-result > summary > span strong, .answer-result > summary > span small { display: block; }
.exam-result-selections { display: flex; flex-wrap: wrap; gap: 7px; padding: 14px 0; }
.exam-result-selections > strong { width: 100%; font-size: .76rem; }
.exam-result-selections > span { padding: 6px 9px; border-radius: 8px; background: #edf3ee; font-size: .76rem; }

/* Course analytics */
.analytics-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 18px; }
.analytics-kpis article { padding: 17px 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.analytics-kpis article.attention { border-color: #e3c895; background: #fffaf0; }
.analytics-kpis span, .analytics-kpis strong, .analytics-kpis small { display: block; }
.analytics-kpis > article > span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.analytics-kpis strong { margin: 5px 0 1px; font: 800 2rem Georgia, serif; }
.analytics-kpis small { font-size: .68rem; }
.analytics-overview-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .4fr); gap: 16px; margin-bottom: 18px; }
.analytics-distribution, .analytics-next-step { box-shadow: var(--shadow-small); }
.analytics-section-heading h2, .admin-workspace-heading h2 { margin: 2px 0; }
.analytics-section-heading > span, .analytics-section-heading > small, .admin-workspace-heading > span { color: var(--muted); font-size: .73rem; }
.distribution-chart { display: grid; gap: 14px; margin-top: 20px; }
.distribution-row { display: grid; grid-template-columns: minmax(170px, .7fr) minmax(120px, 1.3fr) 42px; align-items: center; gap: 12px; }
.distribution-row strong, .distribution-row span { display: block; }
.distribution-row strong { font-size: .75rem; }
.distribution-row > div:first-child span { color: var(--muted); font-size: .67rem; }
.distribution-track, .learner-rate progress, .scope-progress progress { overflow: hidden; width: 100%; height: 10px; border: 0; border-radius: 99px; background: #e7ece8; appearance: none; }
.distribution-track::-webkit-progress-bar, .learner-rate progress::-webkit-progress-bar, .scope-progress progress::-webkit-progress-bar { border-radius: 99px; background: #e7ece8; }
.distribution-track::-webkit-progress-value, .learner-rate progress::-webkit-progress-value, .scope-progress progress::-webkit-progress-value { border-radius: 99px; background: var(--green); }
.distribution-track::-moz-progress-bar, .learner-rate progress::-moz-progress-bar, .scope-progress progress::-moz-progress-bar { border-radius: 99px; background: var(--green); }
.distribution-row.develop .distribution-track::-webkit-progress-value { background: var(--gold); }
.distribution-row.develop .distribution-track::-moz-progress-bar { background: var(--gold); }
.distribution-row.support .distribution-track::-webkit-progress-value { background: #b76557; }
.distribution-row.support .distribution-track::-moz-progress-bar { background: #b76557; }
.distribution-row b { font-size: .72rem; text-align: right; }
.analytics-next-step { display: flex; align-items: flex-start; flex-direction: column; background: linear-gradient(145deg, #e9f3ed, #f9fbf8); }
.analytics-next-step h2 { font-size: 1.45rem; }
.analytics-next-step p { color: var(--muted); font-size: .8rem; }
.analytics-next-step .button { margin-top: auto; }
.learner-analysis { padding: 0; overflow: hidden; box-shadow: var(--shadow-small); }
.learner-analysis > .analytics-section-heading { padding: 22px 24px 13px; }
.analytics-filters { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(160px, .4fr) minmax(140px, .35fr) auto; align-items: end; gap: 10px; padding: 13px 24px 18px; border-bottom: 1px solid var(--line); }
.analytics-filters label { display: grid; gap: 4px; }
.analytics-filters label > span { color: #3b564a; font-size: .7rem; font-weight: 750; }
.learner-table-head, .learner-row { display: grid; grid-template-columns: minmax(210px, 1.1fr) minmax(170px, .8fr) 110px 100px minmax(220px, 1.1fr); align-items: center; gap: 14px; }
.learner-table-head { padding: 10px 24px; background: #edf3ee; color: #3a574b; font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.learner-row { min-height: 94px; padding: 14px 24px; border-bottom: 1px solid var(--line); }
.learner-row[hidden] { display: none; }
.learner-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.learner-identity > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; background: #dfece4; color: var(--green-dark); font-weight: 850; }
.learner-identity strong, .learner-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.learner-identity strong { font-size: .8rem; }
.learner-identity small { font-size: .67rem; }
.learner-rate { display: grid; grid-template-columns: minmax(80px, 1fr) auto; align-items: center; gap: 4px 8px; }
.learner-rate progress { height: 8px; }
.learner-rate > strong { font-size: .76rem; }
.learner-rate > small { grid-column: 1 / -1; font-size: .63rem; }
.learner-row > div > strong, .learner-row > div > small { display: block; }
.learner-row > div > strong { font-size: .78rem; }
.learner-row > div > small { font-size: .64rem; }
.learner-table.is-basic .learner-table-head, .learner-table.is-basic .learner-row { grid-template-columns: minmax(220px, 1fr) minmax(180px, .7fr) 120px; }
.analytics-upgrade-note { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 14px 0; padding: 19px 22px; border: 1px dashed #98bbaa; border-radius: 14px; background: #f1f7f3; }
.analytics-upgrade-note > div { display: grid; gap: 4px; }
.analytics-upgrade-note strong { font: 700 1.08rem/1.3 Georgia, serif; }
.analytics-upgrade-note p { margin: 0; color: var(--muted); font-size: .74rem; }
.learner-errors { display: flex; flex-wrap: wrap; gap: 5px; }
.learner-errors span { padding: 4px 7px; border-radius: 7px; background: #f6eee3; color: #654e2c; font-size: .64rem; }
.learner-errors span.positive { background: #e6f2ea; color: var(--green-dark); }
.learner-errors b { margin-left: 2px; }
.learning-area-section { margin-top: 34px; }
.learning-area-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.learning-area-card { box-shadow: var(--shadow-small); }
.learning-area-card > div:first-child { min-height: 92px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.learning-area-card h3 { font-size: 1.35rem; }
.learning-area-card p { margin: 4px 0; color: var(--muted); font-size: .73rem; }
.scope-progress { display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 5px 8px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.scope-progress > div:first-child { grid-column: 1 / -1; }
.scope-progress strong, .scope-progress span { display: block; }
.scope-progress strong { font-size: .75rem; }
.scope-progress > div:first-child span { color: var(--muted); font-size: .63rem; }
.scope-progress progress { height: 7px; }
.scope-progress b { font-size: .68rem; text-align: right; }

/* System administration */
.admin-section-nav { display: flex; gap: 4px; margin-bottom: 18px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: #eaf0eb; overflow-x: auto; }
.admin-section-nav button { padding: 9px 14px; border: 0; border-radius: 9px; background: transparent; color: #4a6258; font: inherit; font-size: .76rem; font-weight: 780; white-space: nowrap; cursor: pointer; }
.admin-section-nav button.active { background: #fff; color: var(--green-dark); box-shadow: var(--shadow-small); }
[data-admin-panel][hidden] { display: none; }
.admin-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.admin-kpis article { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.admin-kpi-icon, .admin-content-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: #e5f1e9; color: var(--green-dark); font: 800 1rem Georgia, serif; }
.admin-kpis strong, .admin-kpis span, .admin-kpis small { display: block; }
.admin-kpis strong { font: 800 1.8rem Georgia, serif; line-height: 1; }
.admin-kpis article div > span { margin-top: 3px; font-size: .74rem; font-weight: 750; }
.admin-kpis small { font-size: .64rem; }
.admin-overview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 13px; margin-top: 15px; }
.admin-overview-card { display: flex; align-items: flex-start; flex-direction: column; min-height: 220px; box-shadow: var(--shadow-small); }
.admin-overview-card h2 { font-size: 1.45rem; }
.admin-overview-card p { color: var(--muted); font-size: .78rem; }
.admin-overview-card .button { margin-top: auto; }
.admin-workspace { box-shadow: var(--shadow-small); }
.admin-workspace-heading { margin-bottom: 18px; }
.admin-workspace-heading p { margin: 3px 0 0; color: var(--muted); font-size: .8rem; }
.admin-filters { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(160px, .4fr)); gap: 10px; margin-bottom: 14px; padding: 13px; border-radius: 11px; background: #edf3ee; }
.admin-filters label { display: grid; gap: 4px; }
.admin-filters label > span { color: #3b564a; font-size: .69rem; font-weight: 750; }
.admin-user-list { display: grid; gap: 9px; }
.admin-user-card { display: grid; grid-template-columns: minmax(210px, .8fr) minmax(320px, 1.2fr) minmax(180px, .6fr); align-items: center; gap: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.admin-user-card[hidden] { display: none; }
.admin-user-card > form { display: flex; align-items: end; gap: 8px; }
.admin-user-card > form label { display: grid; flex: 1; gap: 3px; }
.admin-user-card > form label > span { color: var(--muted); font-size: .65rem; font-weight: 750; }
.admin-user-status { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.admin-user-status form { margin: 0; }
.admin-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-content-grid > .panel { padding: 0; overflow: hidden; box-shadow: var(--shadow-small); }
.admin-content-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #f7faf7; }
.admin-content-heading h3 { margin: 0; }
.admin-content-heading span { color: var(--muted); font-size: .68rem; }
.admin-content-list { display: grid; }
.admin-content-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.admin-content-list article:last-child { border-bottom: 0; }
.admin-content-list strong, .admin-content-list small { display: block; }
.admin-content-list strong { font-size: .78rem; }
.admin-content-list small { max-width: 360px; overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.content-status-form { display: flex; align-items: center; gap: 7px; }
.admin-activity-list { position: relative; display: grid; }
.admin-activity-list article { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 12px; min-height: 70px; }
.activity-marker { position: relative; width: 12px; height: 12px; margin-top: 7px; border: 3px solid #cce3d4; border-radius: 50%; background: var(--green); box-sizing: content-box; }
.activity-marker::after { position: absolute; top: 15px; left: 4px; width: 2px; height: 58px; background: #dae4dd; content: ""; }
.admin-activity-list article:last-child .activity-marker::after { display: none; }
.admin-activity-list strong { font-size: .8rem; }
.admin-activity-list p { margin: 2px 0 0; color: var(--muted); font-size: .72rem; }
.admin-activity-list time { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.admin-subscriptions-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; }
.admin-subscriptions-heading .lead { max-width: 880px; }
.admin-plan-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.admin-plan-kpis article { display: grid; gap: 2px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-small); }
.admin-plan-kpis article.is-primary { border-color: #88bba6; background: #eef7f1; }
.admin-plan-kpis span, .admin-plan-kpis small { color: var(--muted); font-size: .7rem; }
.admin-plan-kpis strong { font: 800 1.8rem/1 Georgia, serif; }
.admin-subscription-intro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin: 14px 0 22px; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.admin-subscription-intro > div { display: grid; gap: 3px; padding: 14px 16px; background: #f6f9f6; }
.admin-subscription-intro strong { font-size: .76rem; }
.admin-subscription-intro span { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.admin-organization-list { display: grid; gap: 11px; }
.admin-organization-billing { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-small); }
.admin-organization-billing > summary { display: grid; grid-template-columns: 42px minmax(230px, 1fr) auto auto 22px; align-items: center; gap: 13px; padding: 16px 18px; cursor: pointer; list-style: none; }
.admin-organization-billing > summary::-webkit-details-marker { display: none; }
.admin-organization-billing[open] > summary { border-bottom: 1px solid var(--line); background: #f6f9f6; }
.admin-organization-mark { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: var(--green); color: #fff; font: 800 1rem Georgia, serif; }
.admin-organization-billing summary > span:nth-child(2) { min-width: 0; }
.admin-organization-billing summary strong, .admin-organization-billing summary small { display: block; }
.admin-organization-billing summary small { overflow: hidden; color: var(--muted); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-plan-chip { padding: 6px 9px; border-radius: 99px; background: #edf2ee; color: #3c564c; font-size: .68rem; font-weight: 800; }
.admin-plan-chip.plan-professional { background: #dcefe3; color: var(--green-dark); }
.admin-plan-chip.plan-enterprise { background: #e7e2f2; color: #59427c; }
.admin-organization-chevron { font-size: 1.2rem; transition: transform .2s ease; }
.admin-organization-billing[open] .admin-organization-chevron { transform: rotate(180deg); }
.admin-organization-billing-body { padding: 20px; }
.admin-plan-usage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.admin-plan-usage > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border-radius: 9px; background: #edf3ee; }
.admin-plan-usage span { color: var(--muted); font-size: .67rem; }
.admin-plan-usage strong { font-size: .75rem; }
.admin-billing-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.admin-contract-editor, .admin-period-editor, .admin-period-history { padding: 19px; border: 1px solid var(--line); border-radius: 13px; }
.admin-billing-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 13px; margin-bottom: 15px; }
.admin-billing-section-heading h2 { margin: 4px 0 0; font-size: 1.35rem; }
.admin-billing-section-heading > span { color: var(--muted); font-size: .68rem; }
.admin-contract-grid, .admin-period-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 13px; }
.admin-contract-grid label, .admin-period-grid label { display: grid; gap: 4px; }
.admin-contract-grid label > span, .admin-period-grid label > span { color: #3e594e; font-size: .68rem; font-weight: 750; }
.admin-contract-grid .admin-founding-toggle { display: flex; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; }
.admin-founding-toggle > span { display: grid; }
.admin-founding-toggle small { color: var(--muted); font-size: .6rem; font-weight: 500; }
.admin-period-grid .span-2 { grid-column: 1 / -1; }
.admin-period-history { margin-top: 13px; }
.admin-period-history-list { display: grid; gap: 7px; }
.admin-period-history-list article { display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(480px, 1.5fr); align-items: center; gap: 14px; padding: 11px; border-radius: 10px; background: #f5f8f5; }
.admin-period-history-list article > div strong, .admin-period-history-list article > div small { display: block; }
.admin-period-history-list article > div small { color: var(--muted); font-size: .65rem; }
.admin-period-history-list article > strong { font-size: .75rem; white-space: nowrap; }
.admin-period-history-list form { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(150px, 1fr) 145px auto; gap: 6px; }

/* Guided chart of accounts and financial statements */
.button.danger { border-color: var(--danger); background: var(--danger); color: #fff; }
.button.danger.ghost { background: #fff; color: var(--danger); }
.button.danger:hover { border-color: #913e3e; background: #913e3e; color: #fff; }
.eyebrow.danger, .danger-text { color: var(--danger); }
.date-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.framework-catalog-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 34px; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg, #edf5ef, #fbfcf9); }
.framework-catalog-hero h1 { max-width: none; margin: 5px 0 10px; font-size: clamp(2.65rem,5vw,4.6rem); line-height: .98; text-wrap: balance; }
.framework-catalog-hero .lead { max-width: 790px; margin-bottom: 0; }
.framework-guide-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin: 18px 0 42px; border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
.framework-guide-strip > span { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 1px 10px; padding: 16px; background: #fff; }
.framework-guide-strip b { display: grid; grid-row: 1 / 3; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: #e3f1e9; color: var(--green-dark); font-size: .72rem; }
.framework-guide-strip strong { font-size: .82rem; }
.framework-guide-strip small { font-size: .68rem; }
.framework-catalog-heading { margin-top: 0; }
.framework-catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.framework-catalog-card { display: flex; align-items: stretch; flex-direction: column; min-height: 310px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-small); }
.framework-catalog-card h3 { margin: 16px 0 8px; font-size: 1.45rem; }
.framework-catalog-card > p { color: var(--muted); font-size: .82rem; line-height: 1.55; }
.framework-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: auto 0 18px; padding-top: 18px; }
.framework-card-facts span { padding: 10px 8px; border-radius: 9px; background: var(--surface-soft); text-align: center; }
.framework-card-facts strong, .framework-card-facts small { display: block; }
.framework-card-facts strong { color: var(--green-dark); font: 800 1.2rem Georgia, serif; }
.framework-card-facts small { margin-top: 2px; font-size: .6rem; }
.framework-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line); }
.owner-chip { padding: 4px 7px; border-radius: 99px; background: #e7f3eb; color: var(--green-dark); font-size: .6rem; font-weight: 800; }

.framework-editor-layout, .account-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 24px; align-items: start; }
.framework-editor-skeleton, .account-editor-skeleton { display: grid; gap: 18px; }
.framework-live-preview, .account-live-preview { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow); }
.framework-preview-sheet, .account-preview-sheet { display: grid; gap: 16px; padding: 24px; }
.framework-preview-sheet h2, .account-preview-sheet h2 { margin: 0; }
.framework-preview-sheet > p, .account-preview-sheet > p { margin: -7px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.framework-preview-facts, .account-preview-facts { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--line); }
.framework-preview-facts > span, .account-preview-facts > span { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: 8px; padding: 11px 12px; background: #fafcfa; }
.framework-preview-facts small, .account-preview-facts small { color: var(--muted); font-size: .66rem; }
.framework-preview-facts strong, .account-preview-facts strong { font-size: .7rem; text-align: right; }
.framework-class-section { margin: 18px 0; box-shadow: none; }
.framework-class-section .section-heading p { margin: 3px 0 0; color: var(--muted); font-size: .78rem; }
.framework-class-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.framework-class-grid article { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 66px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fafcfa; }
.framework-class-grid article > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: #dfeee5; color: var(--green-dark); font: 800 .85rem Georgia, serif; }
.framework-class-grid strong { font-size: .66rem; line-height: 1.3; }
.framework-source-note { display: grid; gap: 2px; margin-top: 14px; padding: 12px; border-radius: 9px; background: #edf5ef; }
.framework-source-note span { color: var(--muted); font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.framework-source-note a { font-size: .72rem; font-weight: 750; }

.account-identity-grid { grid-template-columns: minmax(120px, .3fr) minmax(260px, 1fr); }
.compact-step .builder-step-heading { margin-bottom: 16px; }
.requirement-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.check-card { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; align-content: center; gap: 9px; min-height: 76px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafcfa; cursor: pointer; }
.check-card:has(input:checked) { border-color: #79aa8f; background: #edf7f0; box-shadow: inset 0 0 0 1px #79aa8f; }
.check-card input { margin: 0; }
.check-card strong, .check-card small { display: block; }
.check-card strong { font-size: .76rem; }
.check-card small { margin-top: 2px; font-size: .64rem; line-height: 1.35; }
.account-preview-title { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; }
.account-preview-title code { padding: 7px 9px; border-radius: 8px; background: #e4efe8; color: var(--green-dark); font-weight: 850; }
.mini-t-account { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--ink); border-radius: 10px; overflow: hidden; }
.mini-t-head { grid-column: 1 / -1; padding: 10px; border-bottom: 2px solid var(--ink); background: #f8faf7; text-align: center; }
.mini-t-head span { font-size: .72rem; font-weight: 800; }
.mini-t-side { display: grid; align-content: start; min-height: 105px; padding: 10px; }
.mini-t-side.credit { border-left: 2px solid var(--ink); }
.mini-t-side strong { color: var(--green-dark); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.mini-t-side span { align-self: center; color: var(--muted); font-size: .66rem; text-align: center; }
.mini-t-account[data-normal-side="debit"] .mini-t-side.debit, .mini-t-account[data-normal-side="credit"] .mini-t-side.credit { background: #eef7f1; }

.chart-detail-hero, .reports-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 22px 0; }
.chart-detail-hero h1, .reports-hero h1 { margin: 4px 0 8px; }
.chart-detail-hero .lead, .reports-hero .lead { max-width: 760px; margin-bottom: 0; }
.chart-overview-stats, .report-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.chart-overview-stats > div, .report-kpis > div { padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-small); }
.chart-overview-stats strong, .chart-overview-stats span, .report-kpis strong, .report-kpis span { display: block; }
.chart-overview-stats strong, .report-kpis strong { font: 800 1.7rem Georgia, serif; }
.chart-overview-stats span, .report-kpis span { margin-top: 2px; color: var(--muted); font-size: .68rem; }
.report-kpis .positive { border-color: #acd3ba; background: #f1f9f4; }
.report-kpis .negative { border-color: #e0adad; background: #fff7f7; }
.chart-filter-panel { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .45fr) minmax(180px, .45fr) auto; align-items: end; gap: 10px; margin-bottom: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #edf3ee; }
.chart-filter-panel .field { margin: 0; }
.chart-filter-panel label { font-size: .68rem; }
.account-table-wrap { overflow: visible; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.account-table { width: 100%; }
.account-table th { font-size: .62rem; }
.account-table td { vertical-align: middle; }
.account-table td > strong, .account-table td > small { display: block; }
.account-table td > strong { font-size: .75rem; }
.account-table td > small { max-width: 260px; margin-top: 3px; font-size: .62rem; }
.account-name-cell { display: grid; grid-template-columns: 54px minmax(160px, 1fr); align-items: start; gap: 10px; }
.account-name-cell code { padding: 5px 6px; border-radius: 6px; background: #edf3ee; color: var(--green-dark); font-weight: 800; text-align: center; }
.account-name-cell strong, .account-name-cell small { display: block; }
.account-name-cell strong { font-size: .78rem; }
.account-name-cell small { margin-top: 3px; font-size: .62rem; }
.account-role-list { display: flex; flex-wrap: wrap; gap: 4px; max-width: 300px; }
.account-role-list .tag { font-size: .58rem; }
.muted-label { color: var(--muted); font-size: .65rem; }
.account-row-actions { width: 54px; }
.row-action-menu { position: relative; }
.row-action-menu > summary { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: var(--surface-soft); font-weight: 900; list-style: none; cursor: pointer; }
.row-action-menu > summary::-webkit-details-marker { display: none; }
.row-action-menu > div { position: absolute; top: 39px; right: 0; z-index: 9; display: grid; min-width: 230px; padding: 7px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.row-action-menu > div > a, .row-action-menu > div > form > button, .row-action-menu > div > details > summary { width: 100%; padding: 9px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); font: inherit; font-size: .72rem; font-weight: 720; text-align: left; list-style: none; cursor: pointer; }
.row-action-menu > div > a:hover, .row-action-menu > div > form > button:hover, .row-action-menu > div > details > summary:hover { background: var(--surface-soft); text-decoration: none; }
.row-action-menu details form { display: grid; gap: 7px; padding: 8px; border-radius: 8px; background: var(--surface-soft); }
.row-action-menu details label { font-size: .62rem; }
.modern-account-tree { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.tree-account { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(130px, .5fr) minmax(180px, .7fr) auto auto; align-items: center; gap: 12px; }
.tree-account-title { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 2px 8px; }
.tree-account-title small { grid-column: 2; font-size: .62rem; }
.tree-account-purpose strong, .tree-account-purpose small { display: block; }
.tree-account-purpose { font-size: .68rem; }
.bulk-account-panel { margin-top: 14px; padding: 0; box-shadow: none; }
.bulk-account-panel > summary, .report-detail-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; list-style: none; cursor: pointer; }
.bulk-account-panel > summary::-webkit-details-marker, .report-detail-section > summary::-webkit-details-marker { display: none; }
.bulk-account-panel > summary strong, .bulk-account-panel > summary small, .report-detail-section > summary strong, .report-detail-section > summary small { display: block; }
.bulk-account-panel > form { padding: 17px; border-top: 1px solid var(--line); }
.bulk-account-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; }
.bulk-account-grid .field { margin: 0; }
.chart-data-tools { margin-top: 44px; }
.chart-data-tools .section-heading p { max-width: 720px; margin: 4px 0 0; color: var(--muted); }
.chart-tools-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 14px; }
.chart-tools-grid > .panel { box-shadow: var(--shadow-small); }
.chart-tools-grid h3 { margin: 10px 0 4px; }
.chart-tools-grid p { color: var(--muted); font-size: .76rem; }
.tool-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: #e3f1e9; color: var(--green-dark); font-weight: 900; }
.import-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.import-stack form { display: grid; gap: 8px; }

.delete-confirm-card { position: relative; overflow: hidden; padding: 34px; border: 1px solid #dda3a3; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.delete-confirm-card::before { position: absolute; inset: 0 0 auto; height: 7px; background: var(--danger); content: ""; }
.delete-confirm-icon { display: grid; width: 50px; height: 50px; margin-bottom: 18px; place-items: center; border-radius: 50%; background: #fff0f0; color: var(--danger); font: 900 1.4rem Georgia, serif; }
.delete-confirm-card h1 { margin: 5px 0 8px; }
.delete-impact-list { display: grid; gap: 1px; overflow: hidden; margin: 24px 0; border: 1px solid var(--line); border-radius: 11px; background: var(--line); }
.delete-impact-list > div { display: grid; grid-template-columns: minmax(140px, .4fr) minmax(0, 1fr); gap: 12px; padding: 12px 14px; background: #fff; }
.delete-impact-list strong { font-size: .75rem; }
.delete-impact-list span { color: var(--muted); font-size: .72rem; }
.delete-confirm-form { padding-top: 20px; border-top: 1px solid var(--line); }

.financial-statement-section { margin-top: 42px; }
.financial-statement-section .section-heading p { max-width: 760px; margin: 4px 0 0; color: var(--muted); }
.balance-sheet, .income-statement { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 2px solid var(--ink); border-radius: 4px; background: #fff; box-shadow: var(--shadow-small); }
.statement-title { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; border-bottom: 3px double var(--ink); background: #f7f9f6; }
.statement-title strong { font: 800 1rem Georgia, serif; }
.statement-title span { color: var(--muted); font-size: .66rem; }
.balance-column { display: flex; flex-direction: column; min-height: 330px; }
.balance-column + .balance-column { border-left: 2px solid var(--ink); }
.statement-side-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--ink); background: #edf3ee; }
.statement-side-title span { font: 800 1rem Georgia, serif; }
.statement-side-title small { color: var(--muted); font-size: .62rem; }
.statement-subheading { padding: 9px 13px 5px; color: #4a6258; font-size: .61rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.statement-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 7px 13px; border-bottom: 1px dotted #cbd4cd; font-size: .7rem; }
.statement-row > span { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.statement-row code { flex: 0 0 38px; color: var(--muted); font-size: .62rem; }
.statement-row strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.result-row { margin-top: auto; background: #eef7f1; font-weight: 800; }
.result-row.negative { background: #fff0f0; color: #913e3e; }
.statement-empty { padding: 24px 13px; color: var(--muted); font-size: .7rem; text-align: center; }
.statement-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding: 11px 13px; border-top: 3px double var(--ink); background: #f8faf8; font-size: .76rem; font-weight: 850; }
.statement-warning { display: flex; justify-content: space-between; gap: 14px; padding: 11px 14px; border: 1px solid #e1c27b; border-top: 0; background: #fff9e8; font-size: .7rem; }
.income-statement .balance-column { min-height: 310px; }
.report-support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 32px; }
.report-support-grid > .panel { box-shadow: var(--shadow-small); }
.report-detail-section { margin-top: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.report-detail-section[open] > summary { border-bottom: 1px solid var(--line); }
.report-dimension-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; padding: 18px; }
.report-dimension-grid h3 { font-size: 1rem; }

.linked-accounting-fields { margin-bottom: 7px; }
.course-access-code-field { display: grid; gap: 7px; margin: 14px 0 16px; padding: 16px; border: 1px solid #a8c5b5; border-radius: 12px; background: #f1f8f3; }
.course-access-code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.course-access-code-field > small { color: var(--muted); font-size: .7rem; }
.linked-field-status { display: flex; align-items: center; min-height: 36px; padding: 9px 11px; border-radius: 9px; background: var(--surface-soft); color: var(--muted); font-size: .68rem; font-weight: 700; }
.linked-field-status::before { display: inline-grid; width: 20px; height: 20px; margin-right: 8px; place-items: center; border-radius: 50%; background: #dfe9e2; content: "↔"; font-size: .62rem; }
.linked-field-status.success { background: #e9f6ed; color: var(--green-dark); }
.linked-field-status.success::before { background: var(--green); color: #fff; content: "✓"; }
.linked-field-status.warning { background: #fff7df; color: #745a19; }
.linked-field-status.warning::before { background: #f1d784; color: #614a12; content: "!"; }
.small-link { display: inline-flex; margin-top: 6px; font-size: .68rem; }

.guided-form { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; align-items: start; }
.guided-form-steps { display: grid; gap: 18px; }
.guided-form-step .form-grid { margin-top: 4px; }
.guided-form-step textarea { min-height: 120px; }
.guided-form-step input[type="file"] { padding: 10px; background: #fafcfa; }
.guided-form-step input[type="color"] { min-height: 52px; padding: 5px; cursor: pointer; }
.guided-form-overview { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-small); }
.guided-form-overview-body { padding: 20px; }
.guided-form-overview ol { display: grid; gap: 11px; margin: 0 0 20px; padding: 0; list-style: none; }
.guided-form-overview li a { display: grid; grid-template-columns: 28px minmax(0, 1fr) 12px; align-items: center; gap: 9px; padding: .25rem; border-radius: 9px; color: inherit; text-decoration: none; }
.guided-form-overview li a:hover, .guided-form-overview li a:focus-visible, .guided-form-overview li.is-active a { background: #eef7f2; outline: 0; }
.guided-form-overview li span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: #e3f1e9; color: var(--green-dark); font-size: .68rem; font-weight: 850; }
.guided-form-overview li strong { font-size: .7rem; line-height: 1.35; }
.guided-form-overview li i::before { content: '›'; color: #7b8d84; font-style: normal; }
.guided-form-overview li.is-complete span { background: var(--green); color: #fff; }
.guided-form-overview li.is-complete i::before { content: '✓'; color: var(--green); }
.guided-form-overview li.has-errors a { background: #fff1f1; color: #8b2424; }
.guided-form-overview li.has-errors span { background: #b73939; color: #fff; }
.guided-form-step { scroll-margin-top: 105px; }
.guided-form-step:focus { outline: 3px solid rgba(15, 116, 88, .22); outline-offset: 3px; }
.required-marker { margin-left: .22rem; color: #c92b2b; font-weight: 900; }
.guided-form-overview p { margin: 0 0 18px; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.guided-form-overview .button { width: 100%; }
.compact-form-panel { max-width: 680px; margin: 0 auto; }
.compact-form-panel > p { margin-top: -8px; color: var(--muted); font-size: .76rem; }
.compact-form-panel form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.compact-form-panel form > .field { margin: 0; }
.compact-form-panel form > .field:has(textarea), .compact-form-panel form > .field.check-field, .compact-form-panel form > .button { grid-column: 1 / -1; }

.management-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 24px; align-items: start; }
.management-inputs { display: grid; gap: 18px; }
.management-results { position: sticky; top: 92px; display: grid; gap: 12px; }
.management-results .panel { box-shadow: var(--shadow-small); }
.primary-result { border-color: #a8cbb5; background: #f3faf5; }
.result-card h2 { margin: 4px 0 13px; }
.management-save { position: sticky; bottom: 10px; z-index: 3; justify-content: flex-end; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, .95); box-shadow: var(--shadow); backdrop-filter: blur(8px); }
.code-input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .68rem; line-height: 1.5; }
.management-detail-tables { margin-top: 44px; }
.management-dimension-report { margin-top: 34px; }

.booking-workspace-form { display: grid; gap: 18px; }
.booking-core-fields { grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr); }
.booking-document-details, .line-dimension-details { margin-top: 14px; border-top: 1px solid var(--line); }
.booking-document-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0 0; list-style: none; cursor: pointer; }
.booking-document-details > summary::-webkit-details-marker, .line-dimension-details > summary::-webkit-details-marker { display: none; }
.booking-document-details > summary strong, .booking-document-details > summary small { display: block; }
.booking-document-details > summary strong { font-size: .72rem; }
.booking-document-details > summary small { margin-top: 2px; color: var(--muted); font-size: .64rem; }
.booking-document-details > .form-grid { margin-top: 14px; padding: 14px; border-radius: 10px; background: var(--surface-soft); }
.line-dimension-details { margin-top: 5px; }
.line-dimension-details > summary { padding: 7px 10px; color: var(--green-dark); font-size: .64rem; font-weight: 750; cursor: pointer; }
.line-dimension-details > summary::before { margin-right: 5px; content: "＋"; }
.line-dimension-details[open] > summary::before { content: "−"; }
.line-dimension-details .line-dimensions { padding: 8px 10px 11px; }
.booking-save-actions { justify-content: space-between; margin-top: 18px; }

.button.full { width: 100%; }
.invite-hub { padding: 52px 0 84px; }
.invite-hub-heading { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 42px; align-items: end; margin: 28px 0 34px; }
.invite-hub-heading h1 { max-width: 900px; margin: 9px 0 13px; font-size: clamp(2.7rem, 5vw, 4.6rem); line-height: .94; hyphens: none; overflow-wrap: normal; }
.invite-hub-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.65; }
.invite-course-summary { display: grid; gap: 5px; padding: 20px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.invite-course-summary span, .invite-course-summary small { color: var(--muted); font-size: .67rem; }
.invite-course-summary strong { font-size: 1rem; }
.invite-created { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr); gap: 24px; align-items: center; margin-bottom: 28px; padding: 26px; border: 1px solid #9fc9b3; border-radius: 18px; background: #eef8f1; box-shadow: var(--shadow-small); }
.invite-created h2 { margin: 6px 0 9px; }
.invite-created p { margin: 0; color: var(--muted); }
.invite-created-classroom { grid-template-columns: minmax(0, 1fr) 280px; border-color: var(--green); background: linear-gradient(135deg, #eef8f1, #fff 72%); }
.invite-created-copy { display: grid; gap: 16px; }
.classroom-credentials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.classroom-credentials > div { display: grid; gap: 4px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.classroom-credentials span { color: var(--muted); font-size: .66rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.classroom-credentials strong { font-size: 1.25rem; letter-spacing: .06em; }
.classroom-credentials small { color: var(--muted); }
.invite-created-actions, .invite-access-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.invite-qr-card { display: grid; place-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-small); }
.invite-qr-card img { width: min(100%, 240px); aspect-ratio: 1; }
.invite-qr-card strong { margin-top: 6px; font-size: 1.15rem; letter-spacing: .1em; }
.invite-qr-card span { color: var(--muted); font-size: .66rem; }
.invite-created.is-presenting { position: fixed; inset: 0; z-index: 1000; grid-template-columns: minmax(0, 1fr) minmax(360px, 42vw); margin: 0; padding: clamp(34px, 7vw, 100px); border: 0; border-radius: 0; background: #f7faf7; }
body.invite-presenting { overflow: hidden; }
.invite-created.is-presenting .invite-created-copy h2 { font-size: clamp(2.5rem, 5vw, 5rem); }
.invite-created.is-presenting .invite-created-copy > p, .invite-created.is-presenting .fine-print { font-size: 1.1rem; }
.invite-created.is-presenting .invite-qr-card img { width: min(100%, 520px); }
.invite-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.invite-method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.invite-method-card { padding: 24px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow-small); }
.invite-method-card.recommended { border-color: #9fc9b3; box-shadow: 0 14px 36px rgba(7, 48, 37, .09); }
.invite-method-heading { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: start; }
.invite-method-heading h2 { margin: 5px 0 0; font-size: 1.7rem; }
.invite-method-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; background: var(--green-dark); color: #fff; font-size: 1.15rem; font-weight: 850; }
.invite-method-card > p { min-height: 70px; margin: 15px 0 20px; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.invite-method-card form { display: grid; gap: 9px; }
.invite-method-card form label { margin-top: 4px; }
.invite-method-card form label small { color: var(--muted); font-weight: 500; }
.invite-method-card textarea { min-height: 142px; resize: vertical; }
.invite-password-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.invite-advanced { margin: 6px 0 2px; border-top: 1px solid var(--line); }
.invite-advanced summary { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0 7px; color: var(--green-dark); font-size: .69rem; font-weight: 750; cursor: pointer; list-style: none; }
.invite-advanced summary::-webkit-details-marker { display: none; }
.invite-advanced[open] { padding-bottom: 8px; }
.invite-role-warning { display: grid; gap: 2px; margin-top: 9px; padding: 11px 12px; border: 1px solid #dfbf75; border-radius: 10px; background: #fff8e6; color: #684600; }
.invite-role-warning[hidden] { display: none; }
.invite-role-warning strong { font-size: .68rem; }
.invite-role-warning span { font-size: .64rem; line-height: 1.45; }
.invite-role-warning-dialog .course-dialog-header { background: linear-gradient(135deg, #fff8e6, #fff); }
.invite-role-dialog-notice { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1px solid #dfbf75; border-radius: 12px; background: #fff8e6; color: #684600; }
.invite-role-dialog-notice > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: #efc45c; color: #4b3300; font-weight: 900; }
.invite-role-dialog-notice strong { font-size: .74rem; }
.invite-role-dialog-notice p { margin: 2px 0 0; font-size: .68rem; line-height: 1.5; }
.invite-role-capabilities-heading { display: block; margin-bottom: 7px; font-size: .72rem; }
.invite-role-capabilities { display: grid; gap: 6px; margin: 0; padding-left: 1.2rem; color: var(--muted); font-size: .7rem; }
.invite-access-list { margin-top: 42px; padding-top: 34px; border-top: 1px solid var(--line); }
.invite-access-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.invite-access-row.is-closed { opacity: .66; }
.invite-access-kind { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: var(--surface-soft); color: var(--green-dark); font-weight: 850; }
.invite-access-copy { min-width: 0; }
.invite-access-copy .meta-row { justify-content: flex-start; }
.invite-access-copy > small { display: block; margin-top: 4px; color: var(--muted); }
.invite-validity-copy { width: fit-content; padding: 7px 10px; border-radius: 8px; background: #fff; color: var(--green-dark) !important; font-size: .7rem; font-weight: 750; }
.invite-capacity-grid { align-items: end; }
.validity-picker { position: relative; min-width: 0; }
.custom-date-field { min-width: 0; }
.custom-date-field > input[type="hidden"] { display: none; }
.validity-picker.invalid .validity-trigger { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(164, 61, 61, .12); }
body.range-picker-open { overflow: hidden; }
body.range-picker-open::after { position: fixed; inset: 0; z-index: 1190; background: rgba(6, 31, 24, .28); content: ""; backdrop-filter: blur(2px); }
.validity-picker .form-label { display: block; margin-bottom: 8px; color: #263d35; font-size: .88rem; font-weight: 700; line-height: 1.35; }
.validity-trigger { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.validity-trigger:hover { border-color: #8eb9a5; background: #fbfdfb; }
.validity-trigger:focus-visible { outline: 3px solid rgba(0, 108, 77, .22); outline-offset: 2px; border-color: var(--green); }
.validity-trigger > span:first-child { display: grid; gap: 2px; min-width: 0; }
.validity-trigger strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.validity-trigger small { overflow: hidden; color: var(--muted); font-size: .66rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.validity-trigger-icon { color: var(--green-dark); font-weight: 900; transition: transform .18s ease; }
.validity-trigger[aria-expanded="true"] .validity-trigger-icon { transform: rotate(180deg); }
.validity-popover { position: fixed; top: 50%; left: 50%; z-index: 1200; display: grid; width: min(1160px, calc(100vw - 40px)); max-height: calc(100dvh - 40px); grid-template-columns: 170px minmax(0, 1fr); overflow: auto; border: 1px solid #a9c2b5; border-radius: 18px; background: #fff; box-shadow: 0 30px 90px rgba(7, 35, 28, .28); transform: translate(-50%, -50%); }
.validity-popover[hidden] { display: none; }
.validity-presets { min-width: 0; padding: 24px 16px; border-right: 1px solid var(--line); background: var(--surface-soft); }
.validity-presets > strong { display: block; padding: 0 9px 12px; color: var(--muted); font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; }
.validity-preset-list { display: grid; gap: 4px; }
.validity-preset-list button { width: 100%; padding: 10px 9px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; font-size: .72rem; font-weight: 700; text-align: left; cursor: pointer; }
.validity-preset-list button:hover, .validity-preset-list button:focus-visible { background: #fff; color: var(--green-dark); outline: 2px solid rgba(0, 108, 77, .15); }
.validity-preset-list button.is-active { background: var(--green-dark); color: #fff; }
.validity-calendar { min-width: 0; padding: 22px; }
.validity-calendar-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 19px; }
.validity-calendar-header > div:first-child { display: grid; gap: 3px; }
.validity-calendar-header strong { font-size: .88rem; }
.validity-calendar-nav { display: flex; gap: 6px; }
.validity-calendar-nav button { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--green-dark); font: inherit; cursor: pointer; }
.validity-calendar-nav button:hover:not(:disabled), .validity-calendar-nav button:focus-visible { border-color: var(--green); background: var(--surface-soft); outline: 2px solid rgba(0, 108, 77, .15); }
.validity-calendar-nav button:disabled { opacity: .35; cursor: not-allowed; }
.validity-months { display: grid; grid-template-columns: repeat(var(--visible-months, 2), minmax(0, 1fr)); gap: 22px; }
.validity-month { min-width: 0; }
.validity-month h3 { margin: 0 0 12px; font-family: inherit; font-size: .76rem; text-align: center; text-transform: capitalize; }
.validity-weekdays, .validity-days { display: grid; grid-template-columns: repeat(7, minmax(30px, 1fr)); gap: 3px; }
.validity-weekdays { margin-bottom: 5px; }
.validity-weekdays span { color: var(--muted); font-size: .58rem; font-weight: 750; text-align: center; }
.validity-day, .validity-day-spacer { min-width: 0; aspect-ratio: 1; }
.validity-day { position: relative; display: grid; place-items: center; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; font-size: .68rem; font-weight: 680; cursor: pointer; touch-action: none; }
.validity-day:hover:not(:disabled), .validity-day:focus-visible { z-index: 2; background: #e2f1e8; outline: 2px solid var(--green); outline-offset: 0; }
.validity-day.is-in-range { border-radius: 4px; background: #d9eee3; color: var(--green-dark); }
.validity-day.is-start, .validity-day.is-end { border-radius: 8px; background: var(--green-dark); color: #fff; box-shadow: 0 4px 12px rgba(0, 82, 59, .18); }
.validity-day.is-start::after, .validity-day.is-end::after { position: absolute; bottom: 2px; width: 9px; height: 2px; border-radius: 2px; background: currentColor; content: ""; opacity: .75; }
.validity-day.is-today::before { position: absolute; top: 3px; right: 3px; width: 5px; height: 5px; border-radius: 50%; background: var(--amber); content: ""; }
.validity-day.is-today:not(.is-start):not(.is-end) { box-shadow: inset 0 0 0 1px var(--green); color: var(--green-dark); font-weight: 850; }
.validity-day.is-past { color: #aeb7b2; text-decoration: line-through; cursor: not-allowed; opacity: .58; }
.validity-picker.is-refining .validity-day:not(:disabled) { cursor: ew-resize; }
.validity-instruction { min-height: 20px; margin: 17px 0 0; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.validity-time-grid { display: grid; grid-template-columns: minmax(130px, 1fr) auto minmax(130px, 1fr); gap: 10px; align-items: end; margin-top: 13px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.validity-time-grid label { display: grid; gap: 5px; }
.validity-time-grid label > span { color: var(--muted); font-size: .62rem; font-weight: 760; }
.validity-time-grid > span { padding-bottom: 11px; color: var(--muted); font-size: .64rem; }
.validity-time-grid .input { min-height: 42px; background: #fff; }
.validity-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.validity-actions .button:disabled { opacity: .45; cursor: not-allowed; }
.audit-date-range { grid-column: span 2; }
.compact-date-picker .validity-picker .form-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.compact-date-picker .validity-trigger { min-height: 2.4rem; padding: .4rem .55rem; }
.compact-date-picker .validity-trigger small { display: none; }
.course-join-page { min-height: calc(100vh - 74px); padding: 76px 0 100px; background: radial-gradient(circle at 15% 10%, #edf8f1, transparent 42%); }
.course-join-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); gap: clamp(42px, 8vw, 110px); align-items: center; max-width: 1120px; }
.course-join-copy h1 { max-width: 690px; margin: 10px 0 18px; font-size: clamp(3rem, 6vw, 5.6rem); line-height: .92; }
.course-join-copy > p { max-width: 620px; color: var(--muted); font-size: 1.03rem; line-height: 1.65; }
.join-steps { display: grid; gap: 14px; margin: 32px 0 0; padding: 0; list-style: none; }
.join-steps li { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: center; }
.join-steps li > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: var(--green-dark); color: #fff; font-size: .74rem; font-weight: 850; }
.join-steps strong, .join-steps small { display: block; }
.join-steps small { margin-top: 2px; color: var(--muted); }
.course-join-card { padding: 28px; box-shadow: var(--shadow); }
.course-join-card form { display: grid; gap: 10px; }
.course-join-card .button { margin-top: 10px; }
.course-join-preview { display: grid; gap: 4px; margin: -8px -8px 22px; padding: 18px; border-radius: 12px; background: var(--surface-soft); }
.course-join-preview span, .course-join-preview small { color: var(--muted); font-size: .66rem; }
.course-join-preview strong { font-size: 1rem; }
.course-code-input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1.08rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1080px) {
  .admin-billing-columns { grid-template-columns: 1fr; }
  .admin-period-history-list article { grid-template-columns: 1fr auto; }
  .admin-period-history-list form { grid-column: 1 / -1; }
  .review-readiness { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-suggestions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .review-suggestions > div { grid-column: 1 / -1; }
  .mc-editor-layout, .exam-editor-layout { grid-template-columns: 1fr; }
  .mc-live-preview, .exam-live-preview { position: static; }
  .exam-live-preview { order: 0; }
  .analytics-kpis, .admin-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics-overview-grid { grid-template-columns: 1fr; }
  .learner-table-head, .learner-row { grid-template-columns: minmax(190px, 1fr) minmax(150px, .7fr) 90px minmax(190px, 1fr); }
  .learner-table-head > span:nth-child(4), .learner-row > div:nth-child(4) { display: none; }
  .admin-user-card { grid-template-columns: minmax(190px, .7fr) minmax(300px, 1.3fr); }
  .admin-user-status { grid-column: 1 / -1; justify-content: flex-start; padding-top: 9px; border-top: 1px solid var(--line); }
  .framework-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .framework-editor-layout, .account-editor-layout { grid-template-columns: 1fr; }
  .framework-live-preview, .account-live-preview { position: static; }
  .framework-class-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bulk-account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guided-form, .management-layout { grid-template-columns: 1fr; }
  .guided-form-overview, .management-results { position: static; }
  .invite-method-grid { grid-template-columns: 1fr 1fr; }
  .invite-method-card.recommended { grid-column: 1 / -1; }
  .exam-task-toolbar { grid-template-columns: 1fr auto; }
  .exam-task-count { grid-column: 1 / -1; }
  .exam-management-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .solution-mode-grid, .learning-area-grid, .admin-overview-grid { grid-template-columns: 1fr; }
  .booking-sentence-builder { grid-template-columns: 1fr; }
  .booking-sentence-connector { min-height: 34px; }
  .review-suggestions { grid-template-columns: 1fr; }
  .review-suggestions > div { grid-column: 1; }
  .analytics-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .learner-table-head { display: none; }
  .learner-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .learner-row > div:nth-child(4) { display: block; }
  .learner-identity, .learner-errors { grid-column: 1 / -1; }
  .learner-row > div[data-label]::before { display: block; margin-bottom: 2px; color: var(--muted); content: attr(data-label); font-size: .62rem; font-weight: 750; }
  .admin-content-grid { grid-template-columns: 1fr; }
  .framework-catalog-hero, .chart-detail-hero, .reports-hero { align-items: stretch; flex-direction: column; }
  .framework-catalog-hero .button, .chart-detail-hero .button { width: 100%; }
  .framework-guide-strip, .framework-catalog-grid, .chart-tools-grid, .report-support-grid, .report-dimension-grid { grid-template-columns: 1fr; }
  .chart-overview-stats, .report-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .account-table, .account-table tbody { display: block; }
  .account-table thead { display: none; }
  .account-table tr { display: grid; gap: 11px; margin-bottom: 10px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-small); }
  .account-table td { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; padding: 0; border: 0; }
  .account-table td::before { color: var(--muted); content: attr(data-label); font-size: .62rem; font-weight: 800; }
  .account-table td.account-row-actions { display: block; width: auto; padding-top: 7px; border-top: 1px solid var(--line); }
  .account-table td.account-row-actions::before { display: none; }
  .row-action-menu > summary { width: 100%; }
  .row-action-menu > div { position: static; min-width: 0; margin-top: 6px; }
  .balance-sheet, .income-statement { grid-template-columns: 1fr; }
  .balance-column + .balance-column { border-top: 2px solid var(--ink); border-left: 0; }
  .statement-title { align-items: flex-start; flex-direction: column; }
  .guided-form-overview { order: -1; }
  .guided-form-overview-body ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .invite-hub-heading, .invite-created, .invite-created-classroom, .course-join-layout { grid-template-columns: 1fr; }
  .invite-hub-heading { align-items: stretch; }
  .invite-course-summary { max-width: none; }
  .invite-created.is-presenting { grid-template-columns: 1fr 300px; padding: 34px; }
  .validity-popover { grid-template-columns: 150px minmax(0, 1fr); }
  .validity-calendar { padding: 18px; }
  .exam-task-card { grid-template-columns: 1fr; }
  .exam-task-settings { grid-template-columns: minmax(100px, 1fr) auto auto; padding-left: 41px; }
  .exam-summary-grid { grid-template-columns: 1fr; }
  .exam-grade-summary { align-items: flex-start; flex-direction: column; }
  .exam-grade-summary > div { justify-content: flex-start; }
}

@media (max-width: 620px) {
  .material-filter-title-desktop { display: none; }
  .material-filter-title-mobile { display: inline; }
  .learner-table.is-basic .learner-row { grid-template-columns: 1fr; }
  .analytics-upgrade-note { align-items: stretch; flex-direction: column; }
  .admin-subscriptions-heading { align-items: stretch; flex-direction: column; }
  .admin-plan-kpis, .admin-subscription-intro, .admin-plan-usage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-organization-billing > summary { grid-template-columns: 42px minmax(0, 1fr) 22px; }
  .admin-organization-billing summary .admin-plan-chip, .admin-organization-billing summary .status { grid-column: 2; width: fit-content; }
  .admin-organization-billing summary .admin-organization-chevron { grid-column: 3; grid-row: 1; }
  .admin-organization-billing-body { padding: 12px; }
  .admin-contract-grid, .admin-period-grid, .admin-period-history-list article, .admin-period-history-list form { grid-template-columns: 1fr; }
  .admin-period-grid .span-2, .admin-period-history-list form { grid-column: 1; }
  .billing-plan-meta { grid-template-columns: 1fr; }
  .billing-period-list article { grid-template-columns: 1fr; }
  .billing-period-list article > div:last-child { justify-items: start; }
  .review-dashboard, .booking-entry-panel { padding: 18px; }
  .review-dashboard-heading, .analytics-section-heading, .admin-workspace-heading { align-items: stretch; flex-direction: column; }
  .review-dashboard-heading .button { width: 100%; }
  .review-readiness { grid-template-columns: 1fr; }
  .solution-method-options, .selection-mode-cards { grid-template-columns: 1fr; }
  .grading-mode-cards { grid-template-columns: 1fr; }
  .exam-task-toolbar { grid-template-columns: 1fr; }
  .exam-task-filters { overflow-x: auto; }
  .exam-task-count { grid-column: auto; }
  .exam-task-selection > header, .exam-task-library-heading { align-items: stretch; flex-direction: column; }
  .exam-task-library-heading > strong { white-space: normal; }
  .exam-task-selection, .exam-task-library, .exam-range-window { padding: 12px; }
  .exam-task-settings { grid-template-columns: 1fr auto; padding-left: 0; }
  .exam-task-settings label { grid-column: 1 / -1; }
  .exam-task-remove { width: 100%; }
  .exam-grade-scale-heading { align-items: flex-start; flex-direction: column; }
  .exam-grade-row { grid-template-columns: 74px 20px minmax(70px, 1fr) 13px; }
  .exam-section-heading { align-items: stretch; flex-direction: column; }
  .exam-section-heading .button { width: 100%; }
  .exam-detail-task-list article { grid-template-columns: 34px minmax(0, 1fr); }
  .exam-detail-task-list article > b { grid-column: 2; }
  .exam-monitor-stats { grid-template-columns: 1fr; }
  .exam-attempt-list > a { grid-template-columns: 36px minmax(0, 1fr); }
  .exam-attempt-list .status { grid-column: 2; width: fit-content; }
  .booking-sentence-row { grid-template-columns: minmax(0, 1fr) 38px; }
  .booking-sentence-side-badge { display: none; }
  .account-picker-dialog { width: 100%; max-height: calc(100dvh - 20px); margin: 20px 0 0; border-radius: 18px 18px 0 0; }
  .account-picker-shell { max-height: calc(100dvh - 20px); }
  .account-picker-header { padding: 20px 18px 14px; }
  .account-picker-header h2 { font-size: 1.5rem; }
  .account-picker-header p { font-size: .78rem; }
  .account-picker-search { grid-template-columns: 22px minmax(0, 1fr); padding: 12px 14px; }
  .account-picker-search small { grid-column: 2; min-width: 0; text-align: left; }
  .account-picker-results { padding: 5px 12px 18px; }
  .account-picker-option { grid-template-columns: 58px minmax(0, 1fr); gap: 9px; padding: 10px; }
  .account-picker-option-state { grid-column: 2; justify-self: start; }
  .account-picker-footer { padding: 12px 14px; }
  .mc-option-card { grid-template-columns: 30px minmax(0, 1fr); }
  .mc-option-actions { grid-column: 2; display: flex; }
  .mc-attempt-heading, .mc-answer-list, .mc-attempt-actions { padding-right: 18px; padding-left: 18px; }
  .mc-attempt-actions, .exam-submit-bar { align-items: stretch; flex-direction: column; }
  .mc-attempt-actions .button, .exam-submit-bar .button { width: 100%; }
  .analytics-kpis, .admin-kpis, .analytics-filters { grid-template-columns: 1fr; }
  .distribution-row { grid-template-columns: 1fr 42px; }
  .distribution-row > div:first-child { grid-column: 1 / -1; }
  .learner-row { grid-template-columns: 1fr; }
  .learner-identity, .learner-errors { grid-column: 1; }
  .admin-user-card { grid-template-columns: 1fr; }
  .admin-user-card > form { align-items: stretch; flex-direction: column; }
  .admin-user-card > form .button { width: 100%; }
  .admin-user-status { grid-column: 1; align-items: stretch; flex-direction: column; }
  .admin-content-list article { grid-template-columns: 1fr; }
  .content-status-form { align-items: stretch; flex-direction: column; }
  .admin-activity-list article { grid-template-columns: 18px minmax(0, 1fr); }
  .admin-activity-list time { grid-column: 2; margin-top: -20px; }
  .framework-catalog-hero { padding: 22px; }
  .framework-card-facts, .requirement-grid, .import-stack { grid-template-columns: 1fr; }
  .framework-class-grid, .chart-overview-stats, .report-kpis, .chart-filter-panel, .bulk-account-grid { grid-template-columns: 1fr; }
  .account-identity-grid, .date-pair { grid-template-columns: 1fr; }
  .account-table td { grid-template-columns: 1fr; }
  .delete-confirm-card { padding: 24px 18px; }
  .delete-impact-list > div { grid-template-columns: 1fr; }
  .delete-confirm-form .actions { align-items: stretch; flex-direction: column; }
  .delete-confirm-form .button { width: 100%; }
  .statement-row { gap: 8px; padding-right: 9px; padding-left: 9px; font-size: .64rem; }
  .statement-row code { flex-basis: 34px; }
  .guided-form-overview-body ol, .compact-form-panel form { grid-template-columns: 1fr; }
  .compact-form-panel form > .field, .compact-form-panel form > .button { grid-column: 1; }
  .management-save { position: static; }
  .booking-core-fields { grid-template-columns: 1fr; }
  .booking-core-fields .span-2 { grid-column: 1; }
  .booking-save-actions { align-items: stretch; flex-direction: column; }
  .booking-save-actions .button { width: 100%; }
  .invite-hub { padding-top: 28px; }
  .invite-hub-heading h1 { font-size: 2.8rem; }
  .invite-method-grid { grid-template-columns: 1fr; }
  .invite-method-card.recommended { grid-column: 1; }
  .invite-method-card { padding: 20px; }
  .invite-method-card > p { min-height: 0; }
  .invite-password-row, .invite-copy-row, .classroom-credentials { grid-template-columns: 1fr; }
  .invite-password-row .button, .invite-copy-row .button { width: 100%; }
  .invite-access-row { grid-template-columns: 38px minmax(0, 1fr); }
  .invite-access-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .invite-created.is-presenting { grid-template-columns: 1fr; overflow-y: auto; padding: 24px 18px; }
  .validity-popover { top: auto; bottom: 0; width: 100%; max-width: 100vw; max-height: calc(100dvh - 12px); grid-template-columns: minmax(0, 1fr); overflow-x: hidden; border-radius: 18px 18px 0 0; transform: translateX(-50%); }
  .validity-presets { max-width: 100vw; overflow: hidden; padding: 16px 14px 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .validity-presets > strong { padding-bottom: 8px; }
  .validity-preset-list { display: flex; overflow-x: auto; padding: 2px; scrollbar-width: thin; }
  .validity-preset-list { scrollbar-width: none; }
  .validity-preset-list::-webkit-scrollbar { display: none; }
  .validity-preset-list button { width: auto; flex: 0 0 auto; padding: 8px 11px; white-space: nowrap; }
  .validity-calendar { width: 100%; overflow: hidden; padding: 17px 14px max(18px, env(safe-area-inset-bottom)); }
  .validity-time-grid { grid-template-columns: 1fr; }
  .validity-time-grid > span { display: none; }
  .validity-calendar-header { margin-bottom: 12px; }
  .validity-months { gap: 0; }
  .validity-weekdays, .validity-days { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .validity-actions .button { width: auto; }
  .course-join-page { padding: 42px 0 70px; }
  .course-join-copy h1 { font-size: 3.1rem; }
  .course-join-card { padding: 22px 18px; }
}

/* Account recovery */
.password-recovery-page { min-height: calc(100dvh - 76px); padding: clamp(48px, 8vw, 96px) 0; background: radial-gradient(circle at 12% 12%, rgba(217,239,145,.28), transparent 30%), linear-gradient(145deg, #f7faf5, #eef5f0); }
.password-recovery-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .75fr); gap: clamp(44px, 8vw, 100px); align-items: center; max-width: 1080px; }
.password-recovery-copy .back-link { display: block; margin-bottom: clamp(42px, 8vh, 90px); }
.password-recovery-copy h1 { max-width: 650px; margin: 12px 0 18px; font-size: clamp(3.2rem, 6vw, 5.6rem); line-height: .93; }
.password-recovery-copy > p { max-width: 650px; color: var(--muted); font-size: 1.05rem; }
.password-recovery-note { display: flex; align-items: center; gap: 13px; max-width: 560px; margin-top: 28px; padding: 14px 16px; border: 1px solid #c9d9cf; border-radius: 13px; background: rgba(255,255,255,.55); }
.password-recovery-note small { margin-top: 2px; }
.recovery-note-icon { position: relative; width: 38px; height: 38px; flex: 0 0 auto; border: 2px solid var(--green); border-radius: 50%; }
.recovery-note-icon::before { content: ""; position: absolute; top: 8px; left: 16px; width: 3px; height: 10px; border-radius: 2px; background: var(--green); box-shadow: 0 14px 0 var(--green); }
.recovery-note-icon.is-lock::before { top: 15px; left: 10px; width: 14px; height: 11px; border-radius: 3px; box-shadow: none; }
.recovery-note-icon.is-lock::after { content: ""; position: absolute; top: 7px; left: 12px; width: 10px; height: 11px; border: 2px solid var(--green); border-bottom: 0; border-radius: 8px 8px 0 0; }
.password-recovery-card { padding: 30px; box-shadow: 0 24px 70px rgba(16,35,29,.12); }
.password-recovery-card h2 { margin: 8px 0 22px; font-size: 1.8rem; }
.password-recovery-card form { display: grid; gap: 4px; }
.password-recovery-card .button { margin-top: 6px; }
.password-recovery-card > .fine-print { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); }
.password-recovery-card-icon { position: relative; display: grid; width: 52px; height: 52px; margin-bottom: 18px; place-items: center; border-radius: 14px; background: #e3f0e8; }
.password-recovery-card-icon span { position: relative; width: 25px; height: 17px; border: 2px solid var(--green); border-radius: 3px; }
.password-recovery-card-icon span::before, .password-recovery-card-icon span::after { content: ""; position: absolute; top: 2px; width: 14px; height: 2px; background: var(--green); }
.password-recovery-card-icon span::before { left: 0; transform: rotate(32deg); }
.password-recovery-card-icon span::after { right: 0; transform: rotate(-32deg); }
.password-guidance[hidden] { display: none !important; }

/* First steps and compact line icons */
.first-step-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.step-icon, .quick-action-icon, .organization-action-icon, .course-action-icon { position: relative; display: inline-grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 12px; background: #e8f2ec; }
.first-step-card.primary .step-icon { background: rgba(255,255,255,.14); }
.step-icon.is-practice::before { content: ""; width: 18px; height: 18px; border: 2px solid currentColor; border-radius: 4px; }
.step-icon.is-practice::after { content: ""; position: absolute; width: 8px; height: 4px; border: solid currentColor; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.step-icon.is-course::before, .quick-action-icon.is-search::before, .organization-action-icon.is-search::before { content: ""; width: 15px; height: 15px; border: 2px solid var(--green); border-radius: 50%; transform: translate(-2px,-2px); }
.step-icon.is-course::after, .quick-action-icon.is-search::after, .organization-action-icon.is-search::after { content: ""; position: absolute; width: 9px; height: 2px; background: var(--green); transform: translate(9px,9px) rotate(45deg); }
.step-icon.is-organization::before, .quick-action-icon.is-create::before, .organization-action-icon.is-create::before { content: ""; width: 20px; height: 21px; border: 2px solid var(--green); border-radius: 3px; box-shadow: inset 0 5px #e8f2ec, inset 0 7px var(--green), inset 0 12px #e8f2ec, inset 0 14px var(--green); }
.first-step-card.primary .step-icon::before, .first-step-card.primary .step-icon::after { border-color: #fff; color: #fff; }

/* Dashboard actions and disabled previews */
.dashboard-quick-actions { display: grid; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.dashboard-quick-actions > a { display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; padding: 10px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.dashboard-quick-actions > a:hover { background: var(--surface-soft); }
.dashboard-quick-actions small { margin-top: 1px; font-size: .73rem; }
.dashboard-quick-actions b { color: var(--green); }
.quick-action-icon { width: 36px; height: 36px; border-radius: 9px; }
.quick-action-icon.is-create::before { transform: scale(.78); }
.dashboard-coming-soon, .coming-soon-panel { display: flex; align-items: center; gap: 15px; margin: 18px 0 28px; padding: 17px 19px; border: 1px dashed #afc7b9; border-radius: 15px; background: linear-gradient(100deg, #eef5f0, #f9fbf8); }
.dashboard-coming-soon > div, .coming-soon-panel > div { flex: 1; }
.dashboard-coming-soon strong, .coming-soon-panel strong { display: block; font: 700 1.2rem Georgia, serif; }
.dashboard-coming-soon p, .coming-soon-panel p { margin: 2px 0 0; color: var(--muted); }
.coming-soon-icon { position: relative; display: inline-block; width: 40px; height: 40px; flex: 0 0 auto; border: 2px solid var(--green); border-radius: 50%; }
.coming-soon-icon::before { content: ""; position: absolute; top: 9px; left: 18px; width: 2px; height: 11px; background: var(--green); transform-origin: bottom; transform: rotate(-18deg); }
.coming-soon-icon::after { content: ""; position: absolute; top: 19px; left: 18px; width: 9px; height: 2px; background: var(--green); transform-origin: left; transform: rotate(18deg); }
.workspace-action.is-coming-soon { cursor: default; opacity: .82; }

/* Organization hub */
.organization-hub-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .6fr); gap: 48px; align-items: center; padding: 10px 0 52px; }
.organization-hub-hero h1 { max-width: 780px; }
.organization-hub-actions { display: grid; gap: 10px; }
.organization-action-card { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; padding: 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: var(--shadow-small); }
.organization-action-card:hover { border-color: var(--green); text-decoration: none; transform: translateY(-1px); }
.organization-action-card.is-primary { border-color: var(--green); background: var(--green); color: #fff; }
.organization-action-card small { margin-top: 2px; }
.organization-action-card.is-primary small { color: rgba(255,255,255,.76); }
.organization-action-card.is-primary .organization-action-icon { background: rgba(255,255,255,.14); }
.organization-action-card.is-primary .organization-action-icon::before, .organization-action-card.is-primary .organization-action-icon::after { border-color: #fff; background-color: transparent; }
.organization-memberships { padding: 32px 0 54px; border-top: 1px solid var(--line); }
.organization-discovery { padding: 48px 0 12px; border-top: 1px solid var(--line); }
.organization-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.organization-profile-card { display: grid; grid-template-columns: auto 1fr auto; gap: 15px; align-items: start; color: var(--ink); text-decoration: none; box-shadow: var(--shadow-small); }
.organization-profile-card:hover { border-color: #9fc2af; text-decoration: none; }
.organization-profile-card h3 { margin: 3px 0 7px; }
.organization-profile-card p { margin: 0 0 10px; color: var(--muted); }
.organization-profile-card > b { align-self: center; color: var(--green); font-size: 1.2rem; }
.organization-profile-mark { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; background: var(--green); color: #fff; font: 700 1.35rem Georgia, serif; }
.organization-profile-mark.is-logo { object-fit: contain; padding: 4px; background: #fff; }
.organization-profile-card.is-member { background: linear-gradient(135deg, #fff, #f2f7f4); }
.organization-empty-state { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 24px; border: 1px dashed #abc1b4; border-radius: 16px; background: #f8faf8; }
.organization-empty-state h3 { margin: 0 0 4px; }
.organization-empty-state p { max-width: 700px; margin: 0; color: var(--muted); }
.organization-empty-icon { position: relative; width: 50px; height: 50px; border-radius: 14px; background: #e3efe8; }
.organization-empty-icon::before { content: ""; position: absolute; inset: 13px; border: 2px solid var(--green); border-radius: 50%; }
.organization-empty-icon::after { content: "+"; position: absolute; right: 4px; bottom: 3px; display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 800; }
.organization-search-bar, .public-course-search { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; margin-bottom: 20px; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.organization-search-bar input, .public-course-search input { min-width: 0; padding: 8px 4px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; }
.organization-search-icon { position: relative; width: 34px; height: 34px; }
.organization-search-icon::before { content: ""; position: absolute; top: 7px; left: 7px; width: 13px; height: 13px; border: 2px solid var(--green); border-radius: 50%; }
.organization-search-icon::after { content: ""; position: absolute; top: 21px; left: 21px; width: 8px; height: 2px; background: var(--green); transform: rotate(45deg); }
.organization-discovery-footer { margin-top: 20px; text-align: right; }

/* Course access and learner view */
.course-action-panel { min-width: 290px; padding: 17px; border: 1px solid #bfd0c5; border-radius: 15px; background: rgba(255,255,255,.82); box-shadow: var(--shadow-small); }
.course-action-panel-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 13px; }
.course-action-panel-heading small { font-size: .7rem; }
.course-action-panel-heading strong { display: block; }
.course-action-icon { width: 38px; height: 38px; border-radius: 10px; }
.course-action-icon.is-join::before { content: ""; width: 17px; height: 13px; border: 2px solid var(--green); border-left: 0; border-radius: 0 3px 3px 0; }
.course-action-icon.is-join::after { content: "→"; position: absolute; left: 7px; color: var(--green); font-weight: 900; }
.course-action-icon.is-member::before { content: ""; position: absolute; top: 8px; width: 9px; height: 9px; border: 2px solid var(--green); border-radius: 50%; }
.course-action-icon.is-member::after { content: ""; position: absolute; bottom: 7px; width: 19px; height: 10px; border: 2px solid var(--green); border-radius: 12px 12px 4px 4px; }
.course-action-panel form { display: grid; gap: 7px; margin: 0; }
.course-action-buttons { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.course-action-buttons form { display: contents; }
.course-action-buttons .button { gap: 8px; padding: 10px 12px; }
.button-icon { position: relative; display: inline-block; width: 18px; height: 18px; flex: 0 0 auto; }
.button-icon.is-enter::before { content: "→"; font-weight: 900; }
.button-icon.is-share::before { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border: 2px solid currentColor; border-radius: 3px; }
.button-icon.is-share::after { content: "↗"; position: absolute; top: -7px; right: -3px; padding-left: 2px; background: inherit; font-weight: 900; }
.button-icon.is-leave::before { content: ""; position: absolute; top: 2px; left: 1px; width: 10px; height: 13px; border: 2px solid currentColor; border-right: 0; border-radius: 3px 0 0 3px; }
.button-icon.is-leave::after { content: "→"; position: absolute; top: -4px; right: -1px; font-weight: 900; }
.button.is-subtle-danger { border-color: #d8b8b8; color: var(--danger); }
.button.is-subtle-danger:hover { background: #faeeee; }
.course-share-compact { display: inline-flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid var(--line-strong); border-radius: 11px; background: rgba(255,255,255,.72); color: var(--green); font-weight: 750; cursor: pointer; text-decoration: none; }
.course-personal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.course-personal-actions form { margin: 0; }
.course-share-compact.is-danger { border-color: #e8b7b3; color: var(--danger); }
.course-share-compact.is-danger:hover { background: #fff2f1; }
.course-learner-orientation { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.course-orientation-icon { position: relative; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 10px; background: #e5f0e9; }
.course-orientation-icon::before { content: ""; position: absolute; top: 9px; left: 10px; width: 16px; height: 16px; border: 2px solid var(--green); border-radius: 50%; }
.course-orientation-icon::after { content: "→"; position: absolute; top: 6px; left: 11px; color: var(--green); font-weight: 900; transform: rotate(35deg); }
.course-feedback-thanks { display: flex; align-items: center; gap: 16px; margin-top: 1rem; background: #edf7f1; }
.feedback-thanks-icon { position: relative; width: 46px; height: 46px; flex: 0 0 auto; border-radius: 50%; background: var(--green); }
.feedback-thanks-icon::after { content: ""; position: absolute; top: 13px; left: 12px; width: 18px; height: 9px; border: solid #fff; border-width: 0 0 3px 3px; transform: rotate(-45deg); }

/* Public courses below the join form */
.public-course-discovery { margin-top: 72px; padding-top: 54px; border-top: 1px solid var(--line); }
.public-course-discovery-heading { display: grid; grid-template-columns: 1fr minmax(330px, .7fr); gap: 32px; align-items: end; margin-bottom: 22px; }
.public-course-discovery-heading h2 { margin-bottom: 5px; }
.public-course-discovery-heading p { margin: 0; color: var(--muted); }
.public-course-search { margin: 0; }
.public-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.public-course-card { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: start; color: var(--ink); text-decoration: none; box-shadow: var(--shadow-small); }
.public-course-card:hover { border-color: #9fc2af; text-decoration: none; }
.public-course-card h3 { margin: 3px 0 7px; }
.public-course-card p { margin: 0 0 8px; color: var(--muted); }
.public-course-card > b { align-self: center; color: var(--green); }
.public-course-icon { position: relative; width: 43px; height: 43px; border-radius: 11px; background: #e5f0e9; }
.public-course-icon::before { content: ""; position: absolute; top: 10px; left: 11px; width: 17px; height: 20px; border: 2px solid var(--green); border-radius: 2px 5px 5px 2px; }
.public-course-icon::after { content: ""; position: absolute; top: 14px; left: 16px; width: 9px; height: 2px; background: var(--green); box-shadow: 0 6px var(--green); }

@media (max-width: 900px) {
  .password-recovery-layout, .organization-hub-hero, .public-course-discovery-heading { grid-template-columns: 1fr; }
  .password-recovery-copy .back-link { margin-bottom: 40px; }
  .organization-profile-grid, .public-course-grid { grid-template-columns: 1fr; }
  .organization-hub-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .organization-hub-actions { grid-template-columns: 1fr; }
  .organization-empty-state { grid-template-columns: auto 1fr; }
  .organization-empty-state .button { grid-column: 1 / -1; }
  .organization-search-bar, .public-course-search { grid-template-columns: auto 1fr; }
  .organization-search-bar .button, .public-course-search .button { grid-column: 1 / -1; }
  .course-action-panel { min-width: 0; width: 100%; }
  .dashboard-coming-soon { align-items: flex-start; flex-wrap: wrap; }
}

.rich-editor {
  display: grid;
  gap: 1rem;
}

.rich-link-dialog {
  width: min(560px, calc(100% - 28px));
  max-width: none;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 1.15rem;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 28px 90px rgba(10, 35, 27, .28);
}

.rich-link-dialog::backdrop {
  background: rgba(9, 29, 23, .58);
  backdrop-filter: blur(3px);
}

.rich-link-dialog-shell > header,
.rich-link-dialog-shell > footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
}

.rich-link-dialog-shell > header {
  border-bottom: 1px solid var(--line);
}

.rich-link-dialog-shell > header h2,
.rich-link-dialog-shell > header p {
  margin: 0;
}

.rich-link-dialog-shell > header h2 {
  margin-top: .15rem;
  font-size: 1.8rem;
}

.rich-link-dialog-shell > header p {
  margin-top: .25rem;
  color: var(--muted);
}

.rich-link-dialog-body {
  padding: 1.25rem;
}

.rich-link-dialog-shell > footer {
  justify-content: flex-end;
  border-top: 1px solid var(--line);
  background: var(--surface-soft);
}

@media (max-width: 540px) {
  .rich-link-dialog-shell > footer {
    flex-direction: column-reverse;
  }

  .rich-link-dialog-shell > footer .button {
    width: 100%;
  }
}

.rich-editor-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.rich-editor-heading > div {
  display: grid;
  gap: .15rem;
}

.rich-editor-heading > span {
  padding: .35rem .65rem;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: .8rem;
  font-weight: 750;
}

.rich-editor-heading-actions {
  display: flex;
  align-items: center;
  gap: .65rem;
}

.rich-editor-heading-actions > span {
  padding: .35rem .65rem;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: .8rem;
  font-weight: 750;
}
.rich-editor-save-status { background: transparent !important; color: var(--muted) !important; white-space: nowrap; }
.rich-editor-history { display: flex; gap: .25rem; }
.rich-editor-history button { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface); color: var(--green-dark); font: inherit; font-size: 1.05rem; cursor: pointer; }
.rich-editor-history button:disabled { opacity: .35; cursor: default; }

.rich-block-picker { position: relative; width: min(100%, 30rem); }
.rich-block-picker > summary { display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem; border: 1px solid var(--line-strong); border-radius: .8rem; background: var(--surface); color: var(--ink); cursor: pointer; list-style: none; }
.rich-block-picker > summary::-webkit-details-marker { display: none; }
.rich-block-picker > summary > span:first-child { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .55rem; background: #e4f2e9; color: var(--green); font-size: 1.1rem; }
.rich-block-picker > summary > span:last-child { display: grid; }
.rich-block-picker > summary small { color: var(--muted); font-size: .7rem; }
.rich-block-picker[open] > summary { border-color: var(--green); box-shadow: 0 0 0 3px rgba(18, 101, 77, .1); }
.rich-block-picker-menu { position: absolute; z-index: 20; top: calc(100% + .45rem); left: 0; display: grid; width: min(42rem, calc(100vw - 3rem)); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; padding: .55rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--surface); box-shadow: 0 18px 48px rgba(14, 50, 39, .16); }
.rich-block-picker-menu button { display: grid; grid-template-columns: 2rem minmax(0, 1fr); align-items: center; gap: .65rem; min-height: 3.4rem; padding: .45rem .55rem; border: 0; border-radius: .65rem; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rich-block-picker-menu button:hover, .rich-block-picker-menu button:focus-visible { background: #edf6f1; outline: 0; }
.rich-block-picker-menu button > span:first-child { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .5rem; background: #e5f2ea; color: var(--green-dark); font-size: .78rem; font-weight: 850; }
.rich-block-picker-menu button > span:last-child { display: grid; }
.rich-block-picker-menu button small { color: var(--muted); font-size: .64rem; }
.rich-editor-draft-recovery { display: flex; align-items: center; gap: .65rem; padding: .75rem; border: 1px solid #d5ad57; border-radius: .8rem; background: #fff8e7; }
.rich-editor-draft-recovery[hidden] { display: none; }
.rich-editor-draft-recovery > div { display: grid; flex: 1; }
.rich-editor-draft-recovery small { color: #725d2c; }
.rich-editor-draft-recovery button { min-height: 2.5rem; padding: .4rem .65rem; border: 1px solid #c9a655; border-radius: .6rem; background: #fff; color: #594514; font: inherit; font-weight: 750; cursor: pointer; }

.rich-editor-view-toggle {
  display: flex;
  gap: .2rem;
  padding: .2rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: var(--surface-soft);
}

.rich-editor-view-toggle button {
  min-height: 2rem;
  padding: .35rem .65rem;
  border: 0;
  border-radius: .5rem;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .78rem;
  font-weight: 750;
  cursor: pointer;
}

.rich-editor-view-toggle button.is-active {
  background: var(--surface);
  color: var(--green-dark);
  box-shadow: var(--shadow-small);
}

[data-rich-edit-view] {
  display: grid;
  gap: 1rem;
}

[data-rich-edit-view][hidden] {
  display: none;
}

.rich-editor-add {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.rich-editor-add button,
.rich-editor-inline-actions button,
.rich-text-toolbar button,
.rich-t-editor header button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.5rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: .65rem;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: .85rem;
  font-weight: 750;
  cursor: pointer;
}

.rich-editor-add button:hover,
.rich-editor-inline-actions button:hover,
.rich-text-toolbar button:hover {
  border-color: var(--green);
  background: var(--surface-soft);
}

.rich-editor-add button > span {
  display: grid;
  place-items: center;
  min-width: 1.65rem;
  height: 1.65rem;
  border-radius: .45rem;
  background: var(--surface-soft);
  color: var(--green);
  font-family: Georgia, serif;
}

.rich-editor-media-picker {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .8rem;
  border: 1px dashed var(--line-strong);
  border-radius: .85rem;
  background: var(--surface-soft);
  cursor: pointer;
}

.rich-editor-media-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.rich-editor-media-picker > span:first-of-type {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: .65rem;
  background: var(--surface);
  color: var(--green);
  font-size: 1.25rem;
}

.rich-editor-media-picker > span:last-child {
  display: grid;
}

.rich-editor-blocks {
  display: grid;
  gap: .25rem;
}
.rich-editor-insert-point { position: relative; display: flex; min-height: 1.2rem; align-items: center; justify-content: center; }
.rich-editor-insert-point::before { position: absolute; right: 0; left: 0; height: 1px; background: var(--line); content: ''; opacity: 0; transition: opacity .15s; }
.rich-editor-insert-point:hover::before, .rich-editor-insert-point:focus-within::before { opacity: 1; }
.rich-editor-insert-point > button { position: relative; z-index: 1; display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--green); font: inherit; cursor: pointer; opacity: .35; transition: opacity .15s, transform .15s; }
.rich-editor-insert-point:hover > button, .rich-editor-insert-point:focus-within > button { opacity: 1; transform: scale(1.05); }
.rich-editor-insert-point > div { position: absolute; z-index: 16; top: 2rem; display: flex; width: min(42rem, calc(100vw - 3rem)); flex-wrap: wrap; justify-content: center; gap: .3rem; padding: .5rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); box-shadow: var(--shadow); }
.rich-editor-insert-point > div[hidden] { display: none; }
.rich-editor-insert-point > div button { min-height: 2.5rem; padding: .4rem .65rem; border: 0; border-radius: .55rem; background: var(--surface-soft); color: var(--ink); font: inherit; font-size: .72rem; font-weight: 750; cursor: pointer; }
.rich-editor-insert-point > div button:hover, .rich-editor-insert-point > div button:focus-visible { background: #dceee4; outline: 0; }

.rich-editor-block {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.rich-editor-block-heading {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  padding: .7rem .85rem;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
}

.rich-editor-block-heading > span {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: .55rem;
  background: var(--green);
  color: #fff;
  font-weight: 800;
}

.rich-editor-block-heading > div:nth-child(2) {
  display: grid;
}
.rich-editor-block-heading strong { font-size: .78rem; line-height: 1.25; }
.rich-editor-block-heading small { margin-top: 2px; color: var(--muted); font-size: .64rem; line-height: 1.35; }

.rich-editor-block-actions {
  display: flex;
  gap: .3rem;
}

.rich-editor-block-actions button,
.rich-t-editor-entry button {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: .5rem;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

.rich-editor-block-actions button:disabled {
  opacity: .35;
  cursor: default;
}

.rich-editor-block-body {
  display: grid;
  gap: .85rem;
  padding: .9rem;
}

.rich-text-toolbar {
  display: none;
  flex-wrap: wrap;
  align-items: end;
  gap: .35rem;
  padding: .55rem;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: var(--surface-soft);
}
.rich-editor-block.has-text-selection .rich-text-toolbar { display: flex; animation: rich-toolbar-in .15s ease-out; }
@keyframes rich-toolbar-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .rich-editor-block.has-text-selection .rich-text-toolbar { animation: none; } }

.rich-text-toolbar button {
  min-height: 2.1rem;
  padding: .3rem .55rem;
}
.rich-text-toolbar button.is-active { border-color: var(--green); background: #dceee4; color: var(--green-dark); }

.rich-toolbar-group {
  display: inline-flex;
  gap: .2rem;
}

.rich-toolbar-select {
  display: grid;
  gap: .18rem;
}

.rich-toolbar-select > span {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 750;
}

.rich-toolbar-select select {
  min-height: 2.1rem;
  padding: .25rem 1.8rem .25rem .55rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
}

.rich-color-control {
  position: relative;
  display: grid;
  width: 2.25rem;
  height: 2.1rem;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--surface);
  font-family: Georgia, serif;
  font-weight: 800;
  cursor: pointer;
}

.rich-color-control > span {
  text-decoration: underline;
  text-decoration-color: #102a22;
  text-decoration-thickness: .2rem;
  text-underline-offset: .2rem;
}

.rich-color-control.is-background > span {
  padding: .05rem .2rem;
  background: #fff1a8;
  text-decoration: none;
}

.rich-color-control input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.rich-text-surface {
  min-height: 10rem;
  padding: 1rem;
  border: 1px solid var(--line-strong);
  border-radius: .75rem;
  background: #fff;
  outline: none;
}

.rich-text-surface:empty::before {
  color: var(--muted);
  content: attr(data-placeholder);
  pointer-events: none;
}
.rich-semantic-surface { min-height: 6.5rem; padding: .9rem; border: 1px solid var(--line-strong); border-radius: .75rem; background: #fff; font-size: 1rem; line-height: 1.65; outline: 0; }
.rich-semantic-surface:empty::before { color: var(--muted); content: attr(data-placeholder); pointer-events: none; }
.rich-semantic-surface:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(18, 101, 77, .12); }
.rich-semantic-help, .rich-divider-help { color: var(--muted); font-size: .7rem; }
.rich-editor-block-error { margin: 0; padding: .65rem .9rem; border-top: 1px solid #ebc1c1; background: #fff3f3; color: #8b2424; font-size: .72rem; font-weight: 700; }
.rich-editor-block-error[hidden] { display: none; }
.rich-editor-block.has-error { border-color: #d48787; }
.rich-text-surface.is-showing-formatting-marks p::after,
.rich-text-surface.is-showing-formatting-marks h2::after,
.rich-text-surface.is-showing-formatting-marks h3::after,
.rich-text-surface.is-showing-formatting-marks h4::after,
.rich-text-surface.is-showing-formatting-marks blockquote::after,
.rich-text-surface.is-showing-formatting-marks li::after,
.rich-text-surface.is-showing-formatting-marks div::after {
  margin-left: .2em;
  color: #6d8b7e;
  content: "¶";
  font-family: Arial, sans-serif;
  font-size: .75em;
  font-weight: 600;
  opacity: .78;
  pointer-events: none;
}
.rich-text-surface.is-showing-formatting-marks br::after { color: #6d8b7e; content: "↵"; }
.rich-text-surface.is-showing-formatting-marks:empty::before { color: #6d8b7e; content: "¶"; }

.rich-text-surface h2,
.rich-content-text h2 {
  margin: .8em 0 .35em;
  font-size: clamp(1.7rem, 3vw, 2.25rem);
  line-height: 1.12;
}

.rich-text-surface h3,
.rich-content-text h3 {
  margin: .8em 0 .35em;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  line-height: 1.2;
}

.rich-text-surface h4,
.rich-content-text h4 {
  margin: .75em 0 .3em;
  font-size: 1.18rem;
  line-height: 1.3;
}

.rich-text-surface p,
.rich-text-surface li {
  font-size: 1rem;
  line-height: 1.65;
}

.rich-text-surface font[size="2"],
.rich-content-text .text-size-2 { font-size: .82em; }
.rich-text-surface font[size="3"],
.rich-content-text .text-size-3 { font-size: 1em; }
.rich-text-surface font[size="4"],
.rich-content-text .text-size-4 { font-size: 1.2em; }
.rich-text-surface font[size="5"],
.rich-content-text .text-size-5 { font-size: 1.45em; }

.rich-editor-preview {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
  box-shadow: var(--shadow-small);
}

.rich-editor-preview[hidden] { display: none; }

.rich-editor-preview-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
}
.rich-preview-size { display: flex; gap: .2rem; padding: .2rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface); }
.rich-preview-size button { min-height: 2rem; padding: .3rem .55rem; border: 0; border-radius: .45rem; background: transparent; color: var(--muted); font: inherit; font-size: .7rem; font-weight: 750; cursor: pointer; }
.rich-preview-size button.is-active { background: var(--green); color: #fff; }

.rich-editor-preview-heading h3 {
  margin: .2rem 0;
  font-size: 1.35rem;
}

.rich-editor-preview-heading p {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
}

.rich-editor-preview-content {
  min-height: 14rem;
  padding: clamp(1rem, 4vw, 2rem);
}
.rich-editor-preview-content[data-preview-size="tablet"] { width: min(100%, 48rem); margin-inline: auto; border-inline: 1px dashed var(--line); }
.rich-editor-preview-content[data-preview-size="mobile"] { width: min(100%, 24rem); margin-inline: auto; border-inline: 1px dashed var(--line); }

.rich-editor-preview-empty {
  display: grid;
  gap: .25rem;
  padding: 2rem;
  border: 1px dashed var(--line-strong);
  border-radius: .8rem;
  color: var(--muted);
  text-align: center;
}

.rich-editor-image-placeholder {
  display: grid;
  min-height: 12rem;
  place-items: center;
  border: 1px dashed var(--line-strong);
  border-radius: .8rem;
  background: var(--surface-soft);
  color: var(--muted);
}

.rich-text-surface:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(18, 101, 77, .12);
}

.rich-editor-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
  align-items: start;
}

.rich-editor-field-row label,
.rich-editor-wide-field {
  display: grid;
  gap: .3rem;
  font-size: .74rem;
  font-weight: 800;
}
.rich-editor-block .input { font-size: .78rem; font-weight: 650; }
.rich-editor-field-row > label { align-self: start; }
.rich-editor-field-row > label > .input { width: 100%; height: 3rem; min-height: 3rem; }

.rich-editor-field-row em,
.rich-editor-wide-field em {
  color: var(--muted);
  font-style: normal;
  font-weight: 500;
}

.rich-editor-check {
  grid-template-columns: auto 1fr !important;
  align-items: center;
  align-self: end;
  min-height: 3rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
}

.rich-table-editor-grid {
  overflow-x: auto;
  border: 1px solid #aebfb7;
  border-radius: .75rem;
  background: #fff;
}
.rich-table-sheet { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.rich-table-sheet th { height: 2rem; background: #edf3ef; color: #526b61; font-size: .66rem; font-weight: 850; text-align: center; }
.rich-table-sheet thead th { position: sticky; top: 0; z-index: 1; border-bottom: 1px solid #aebfb7; }
.rich-table-sheet tbody th { position: sticky; left: 0; width: 2.5rem; border-right: 1px solid #aebfb7; }
.rich-table-sheet td { position: relative; width: 13rem; min-width: 13rem; padding: 0; border-right: 1px solid #cbd6d0; border-bottom: 1px solid #cbd6d0; background: #fff; }
.rich-table-sheet tr:last-child td, .rich-table-sheet tr:last-child th { border-bottom: 0; }
.rich-table-sheet tr td:last-child, .rich-table-sheet thead th:last-child { border-right: 0; }
.rich-table-sheet textarea { display: block; width: 100%; min-height: 3.3rem; padding: .7rem .75rem; resize: vertical; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; line-height: 1.4; }
.rich-table-sheet td.is-selected { z-index: 1; box-shadow: inset 0 0 0 2px var(--green); }
.rich-table-sheet td:focus-within { background: #f8fcf9; }
.rich-table-toolbar { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; padding: .6rem; border: 1px solid var(--line); border-bottom: 0; border-radius: .75rem .75rem 0 0; background: #f4f7f5; }
.rich-table-toolbar > strong { min-width: 5.5rem; color: var(--green-dark); font-size: .7rem; }
.rich-table-toolbar > span { width: 1px; height: 1.5rem; background: var(--line); }
.rich-table-toolbar label { display: grid; gap: .15rem; color: var(--muted); font-size: .6rem; font-weight: 750; }
.rich-table-toolbar select { min-height: 2.2rem; padding: .25rem 1.6rem .25rem .45rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: #fff; color: var(--ink); font: inherit; font-size: .68rem; font-weight: 750; }
.rich-table-toolbar button, .rich-editor-inline-actions button { min-height: 2.2rem; padding: .35rem .6rem; border: 1px solid var(--line-strong); border-radius: .5rem; background: #fff; color: var(--green-dark); font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
.rich-table-toolbar button:hover, .rich-editor-inline-actions button:hover { border-color: var(--green); background: #edf6f1; }
.rich-table-toolbar button.is-danger { margin-left: auto; color: var(--danger); }
.rich-table-toolbar button.is-danger + button.is-danger { margin-left: 0; }
.rich-table-help { margin: .45rem 0 0; color: var(--muted); font-size: .68rem; }

.rich-image-editor-source { display: grid; gap: .45rem; }
.rich-image-editor-source label { display: grid; gap: .3rem; }
.rich-image-editor-source .button { width: fit-content; }
.rich-image-settings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: .9rem; border: 1px solid var(--line); border-radius: .85rem; background: #f6f9f7; }
.rich-image-settings label { display: grid; gap: .38rem; color: var(--ink); font-size: .74rem; font-weight: 800; }
.rich-image-settings .input,
.rich-image-editor-source .input { min-height: 3rem; border-color: #a9beb2; border-radius: .72rem; background-color: #fff; box-shadow: 0 1px 0 rgba(10, 45, 34, .03); }
.rich-image-settings .input:focus,
.rich-image-editor-source .input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(15, 116, 88, .12); }
.rich-image-editor-preview {
  display: grid;
  min-height: 9rem;
  place-items: center;
  overflow: hidden;
  border: 1px dashed var(--line-strong);
  border-radius: .8rem;
  background: var(--surface-soft);
  color: var(--muted);
}
.rich-image-editor-preview img { display: block; width: auto; max-width: 100%; height: auto; max-height: 320px; object-fit: contain; }
.rich-text-surface hr,
.rich-content-text hr { height: 1px; margin: 1.6rem 0; border: 0; background: #afc3b7; }

.rich-editor-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.rich-t-editor {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 3px solid var(--ink);
}

.rich-t-editor > section {
  min-width: 0;
  padding: .75rem;
}

.rich-t-editor > section + section {
  border-left: 2px solid var(--ink);
}

.rich-t-editor header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .5rem;
}

.rich-t-editor header button {
  min-height: 2rem;
  padding: .25rem .5rem;
}

.rich-t-editor-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(5rem, .5fr) auto;
  gap: .35rem;
  margin-top: .35rem;
}

.rich-editor-empty {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem;
  border: 1px dashed var(--line-strong);
  border-radius: .85rem;
  background: var(--surface-soft);
}

.rich-editor-empty[hidden] { display: none; }

.rich-editor-empty > span {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .65rem;
  background: var(--surface);
  color: var(--green);
  font-size: 1.3rem;
}

.rich-editor-empty > div {
  display: grid;
  flex: 1;
}

.rich-content {
  display: grid;
  gap: 1.5rem;
}

.rich-content-text {
  font-size: 1.05rem;
  line-height: 1.75;
}

.rich-content-text > :first-child { margin-top: 0; }
.rich-content-text > :last-child { margin-bottom: 0; }
.rich-content-callout { --callout-accent: #176d55; --callout-bg: #edf7f2; display: grid; grid-template-columns: 2.35rem minmax(0, 1fr); gap: .8rem; padding: 1rem; border: 1px solid color-mix(in srgb, var(--callout-accent) 30%, white); border-left: 4px solid var(--callout-accent); border-radius: .85rem; background: var(--callout-bg); }
.rich-content-callout-icon { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .65rem; background: #fff; color: var(--callout-accent); font-weight: 900; }
.rich-content-callout h3 { margin: 0 0 .25rem; font-family: inherit; font-size: 1rem; line-height: 1.35; }
.rich-content-callout p { margin: .25rem 0; line-height: 1.65; }
.rich-content-callout.is-definition .rich-content-callout-icon::before { content: '≔'; font-size: 1.15rem; }
.rich-content-callout.is-key_point .rich-content-callout-icon::before { content: '★'; }
.rich-content-callout.is-example .rich-content-callout-icon::before { content: '→'; font-size: 1.1rem; }
.rich-content-callout.is-note .rich-content-callout-icon::before { content: 'ⓘ'; font-size: 1rem; }
.rich-content-callout.is-warning { --callout-accent: #9a6211; --callout-bg: #fff8e8; }
.rich-content-callout.is-warning .rich-content-callout-icon::before { content: '!'; }
.rich-content-callout.is-formula { --callout-accent: #644a91; --callout-bg: #f6f1fc; }
.rich-content-callout.is-formula .rich-content-callout-icon::before { content: 'fx'; font-size: .75rem; }
.rich-content-callout.is-source { --callout-accent: #526b61; --callout-bg: #f3f6f4; }
.rich-content-callout.is-source .rich-content-callout-icon::before { content: '↗'; font-size: 1.05rem; }
.rich-content-divider { width: 100%; height: 1px; margin: .75rem 0; border: 0; background: var(--line-strong); }

.rich-content-table {
  margin: 0;
}

.rich-content-table figcaption,
.rich-content-t-account figcaption,
.rich-content-image figcaption {
  margin-bottom: .5rem;
  color: var(--muted);
  font-size: .85rem;
}

.rich-content-table > div {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: .8rem;
}

.rich-content-table table {
  width: 100%;
  border-collapse: collapse;
}

.rich-content-table th,
.rich-content-table td {
  min-width: 8rem;
  padding: .7rem .8rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.rich-content-table .is-align-center { text-align: center; }
.rich-content-table .is-align-right { text-align: right; }
.rich-content-table .is-width-compact { min-width: 6rem; width: 8rem; }
.rich-content-table .is-width-standard { min-width: 9rem; }
.rich-content-table .is-width-wide { min-width: 15rem; }

.rich-content-table th {
  background: var(--surface-soft);
}

.rich-content-t-account {
  max-width: 46rem;
  margin: 0 auto;
}

.rich-content-t-head,
.rich-content-t-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.rich-content-t-head {
  border-top: 3px solid var(--ink);
  font-weight: 800;
}

.rich-content-t-head span,
.rich-content-t-body > div {
  padding: .65rem;
}

.rich-content-t-head span + span,
.rich-content-t-body > div + div {
  border-left: 2px solid var(--ink);
}

.rich-content-t-body {
  min-height: 8rem;
  border-bottom: 1px solid var(--line);
}

.rich-content-t-body p {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin: .3rem 0;
}

.rich-content-t-body p.is-empty {
  color: var(--muted);
  font-style: italic;
}

.rich-content-image { width: 100%; margin-block: 0; }
.rich-content-image.is-size-small { max-width: 22rem; }
.rich-content-image.is-size-medium { max-width: 40rem; }
.rich-content-image.is-size-large { max-width: 58rem; }
.rich-content-image.is-size-full { max-width: none; }
.rich-content-image.is-align-left { margin-right: auto; text-align: left; }
.rich-content-image.is-align-center { margin-right: auto; margin-left: auto; text-align: center; }
.rich-content-image.is-align-right { margin-left: auto; text-align: right; }
.rich-content-image img { display: block; width: auto; max-width: 100%; height: auto; max-height: 48rem; margin-inline: auto; object-fit: contain; border-radius: .85rem; }
.rich-content-image.is-ratio-landscape img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rich-content-image.is-ratio-square img { width: 100%; aspect-ratio: 1; object-fit: cover; }

@media (max-width: 700px) {
  .rich-editor-field-row,
  .rich-t-editor {
    grid-template-columns: 1fr;
  }

  .rich-t-editor > section + section {
    border-top: 2px solid var(--ink);
    border-left: 0;
  }

  .rich-editor-block-heading {
    grid-template-columns: 2rem minmax(0, 1fr);
  }

  .rich-editor-block-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .rich-editor-heading,
  .rich-editor-heading-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .rich-editor-save-status { white-space: normal; }
  .rich-block-picker, .rich-block-picker-menu { width: 100%; }
  .rich-block-picker-menu { position: static; margin-top: .4rem; grid-template-columns: 1fr; }
  .rich-editor-draft-recovery, .rich-editor-preview-heading { align-items: stretch; flex-direction: column; }
  .rich-editor-insert-point > div { right: 0; left: 0; width: 100%; }
  .rich-preview-size button { flex: 1; }

  .rich-editor-view-toggle button {
    flex: 1;
  }

  .rich-text-toolbar {
    align-items: stretch;
  }

  .rich-toolbar-select {
    flex: 1 1 9rem;
  }

  .rich-toolbar-select select {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Landing page */
:where(.landing-hero, .landing-definition, .landing-flow, .landing-audience, .landing-exercises, .landing-discovery, .landing-final) :is(h1, h2, h3) {
  overflow-wrap: normal;
  hyphens: none;
}

.landing-hero {
  position: relative;
  isolation: isolate;
  min-height: calc(100svh - 76px);
  overflow: clip;
  padding: clamp(72px, 8vw, 126px) 0;
  border-bottom: 1px solid #cddbd1;
  background:
    radial-gradient(circle at 8% 12%, rgba(217,239,145,.55), transparent 25%),
    radial-gradient(circle at 92% 88%, rgba(18,101,77,.12), transparent 30%),
    linear-gradient(145deg, #f8faf3 0%, #eef4ee 58%, #e7f0e8 100%);
}
.landing-orbit {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(18,101,77,.13);
  border-radius: 50%;
  pointer-events: none;
}
.landing-orbit::after {
  position: absolute;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 8px rgba(199,141,36,.1);
  content: "";
}
.landing-orbit-one { top: -330px; right: -270px; width: 780px; height: 780px; }
.landing-orbit-one::after { bottom: 135px; left: 95px; }
.landing-orbit-two { bottom: -420px; left: -310px; width: 720px; height: 720px; }
.landing-orbit-two::after { top: 110px; right: 105px; background: var(--green); }
.landing-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(560px, 1.08fr);
  gap: clamp(54px, 7vw, 104px);
  align-items: center;
}
.landing-hero-copy { position: relative; z-index: 2; max-width: 720px; }
.landing-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 13px 8px 9px;
  border: 1px solid #c9dbcf;
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: var(--green-dark);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .04em;
  backdrop-filter: blur(8px);
}
.landing-kicker span {
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-size: .7rem;
}
.landing-hero h1 {
  max-width: 9.8ch;
  margin: 24px 0 26px;
  font-size: clamp(4rem, 6.6vw, 7.1rem);
  line-height: .9;
  letter-spacing: -.065em;
}
.landing-hero h1 em { display: block; color: var(--green); font-style: normal; }
.landing-lead {
  max-width: 650px;
  margin: 0;
  color: #435a51;
  font-size: clamp(1.05rem, 1.45vw, 1.25rem);
  line-height: 1.7;
}
.landing-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin: 34px 0 28px; }
.landing-primary-cta { gap: 18px; box-shadow: 0 12px 28px rgba(10,73,55,.18); }
.landing-primary-cta span { font-size: 1.2rem; transition: transform .18s ease; }
.landing-primary-cta:hover span { transform: translateX(3px); }
.landing-assurances { display: flex; flex-wrap: wrap; gap: 10px 20px; color: #53685f; font-size: .73rem; font-weight: 650; }
.landing-assurances span { display: inline-flex; align-items: center; gap: 7px; }
.landing-assurances i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(18,101,77,.1); }

.landing-stage { position: relative; z-index: 1; min-width: 0; padding: 40px 12px 44px; }
.landing-stage-glow {
  position: absolute;
  inset: 5% -8% -2%;
  z-index: -1;
  border-radius: 48%;
  background: radial-gradient(circle, rgba(18,101,77,.19), transparent 67%);
  filter: blur(16px);
}
.landing-demo {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(10,73,55,.19);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 36px 90px rgba(10,49,38,.19), 0 8px 24px rgba(10,49,38,.08);
  transform: rotate(-.7deg);
  transition: transform .25s ease, box-shadow .25s ease;
}
.landing-demo:hover { box-shadow: 0 42px 100px rgba(10,49,38,.23), 0 10px 28px rgba(10,49,38,.1); transform: rotate(0); }
.landing-demo-toolbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--line);
  background: #f7faf7;
  color: var(--muted);
  font-size: .66rem;
  font-weight: 750;
}
.landing-demo-toolbar > span:nth-child(2) { color: var(--ink); text-align: center; }
.landing-window-dots { display: flex; gap: 5px; }
.landing-window-dots span { width: 8px; height: 8px; border-radius: 50%; background: #b8c8be; }
.landing-window-dots span:first-child { background: #d7a34b; }
.landing-window-dots span:last-child { background: #68a88f; }
.landing-demo-status { justify-self: end; padding: 4px 8px; border-radius: 99px; background: #e8f1eb; color: var(--green-dark); }
.landing-demo-body { padding: 24px; }
.landing-demo-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.landing-demo-heading h2 { margin: 3px 0 0; font-size: 1.6rem; letter-spacing: -.035em; }
.landing-points { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; background: #f2f4ec; color: #617068; font-size: .62rem; font-weight: 750; }
.landing-demo-case {
  margin: 17px 0;
  padding: 13px 14px;
  border-left: 3px solid var(--gold);
  border-radius: 0 9px 9px 0;
  background: #f8f7f0;
  color: #344940;
  font: 1rem/1.55 Georgia, serif;
}
.landing-demo-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 15px; }
.landing-demo-steps button {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: #5b6c65;
  font: inherit;
  font-size: .62rem;
  font-weight: 750;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.landing-demo-steps button span { display: grid; width: 20px; height: 20px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #edf2ee; font-size: .58rem; }
.landing-demo-steps button:hover, .landing-demo-steps button:focus-visible { border-color: #87aa99; outline: 2px solid rgba(18,101,77,.12); }
.landing-demo-steps button.is-active { border-color: var(--green); background: #edf6f1; color: var(--green-dark); }
.landing-demo-steps button.is-active span { background: var(--green); color: #fff; }
.landing-demo-steps button.is-done { border-color: #c3d9cd; color: var(--green); }
.landing-demo-steps button.is-done span { background: #dceee4; color: var(--green-dark); }
.landing-t-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.landing-t-account { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fff; opacity: .26; transform: translateY(4px); transition: opacity .25s ease, transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.landing-t-account.is-visible { border-color: #a7c1b4; opacity: 1; transform: translateY(0); }
.landing-t-account.is-new { box-shadow: 0 0 0 3px rgba(217,239,145,.5); }
.landing-t-wide { grid-column: 1 / -1; }
.landing-t-account h3 { display: flex; align-items: center; gap: 7px; margin: 0; padding: 8px 10px 7px; font: 750 .74rem/1.2 Inter, sans-serif; }
.landing-t-account h3 small { display: inline; color: var(--green); font: 750 .55rem/1 ui-monospace, monospace; }
.landing-t-columns { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); }
.landing-t-columns > div { display: grid; min-height: 52px; align-content: space-between; gap: 3px; padding: 7px 9px; text-align: right; }
.landing-t-columns > div + div { border-left: 1px solid var(--ink); }
.landing-t-columns strong { color: var(--muted); font-size: .53rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.landing-t-columns span { font-size: .68rem; font-weight: 750; }
.landing-t-columns .is-empty { color: #a7b2ad; }
.landing-demo-result {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-top: 13px;
  padding: 11px 12px;
  border: 1px solid #e5d4ae;
  border-radius: 10px;
  background: #fcf7e9;
  color: #614917;
  transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}
.landing-result-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #f2dfb6; font-size: .8rem; font-weight: 850; }
.landing-demo-result strong, .landing-demo-result small { display: block; }
.landing-demo-result strong { font-size: .68rem; }
.landing-demo-result small { margin-top: 1px; color: inherit; font-size: .58rem; opacity: .78; }
.landing-demo-totals { display: flex; gap: 8px; color: #665b42; font-size: .55rem; }
.landing-demo-totals span { display: grid; gap: 1px; }
.landing-demo-totals b { color: inherit; }
.landing-demo-result.is-complete { border-color: #9dc9b4; background: #e6f5ec; color: var(--green-dark); transform: scale(1.01); }
.landing-demo-result.is-complete .landing-result-icon { background: var(--green); color: #fff; }
.landing-float-card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1px solid rgba(10,73,55,.15);
  border-radius: 12px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 16px 35px rgba(10,49,38,.14);
  backdrop-filter: blur(10px);
}
.landing-float-card > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: var(--green); color: #fff; font: 750 .75rem Georgia, serif; }
.landing-float-card strong, .landing-float-card small { display: block; white-space: nowrap; }
.landing-float-card strong { font-size: .65rem; }
.landing-float-card small { margin-top: 1px; font-size: .54rem; }
.landing-float-feedback { right: -35px; bottom: 5px; }
.landing-float-methods { top: 6px; left: -34px; }

.landing-definition { padding: clamp(76px, 8vw, 116px) 0; background: var(--ink); color: #fff; }
.landing-definition .eyebrow, .landing-final .eyebrow { color: var(--lime); }
.landing-definition-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .55fr); gap: 32px 80px; align-items: end; }
.landing-definition-intro .eyebrow { grid-column: 1 / -1; }
.landing-definition-intro h2 { max-width: 850px; margin: 0; color: #fff; overflow-wrap: normal; hyphens: none; font-size: clamp(2.6rem, 4.3vw, 4.7rem); line-height: .98; letter-spacing: -.05em; }
.landing-definition, .landing-flow, .landing-audience, .landing-final { scroll-margin-top: 76px; }
.landing-definition-intro p { margin: 0; color: #b9cac2; font-size: 1rem; line-height: 1.7; }
.landing-capability-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 66px; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; background: rgba(255,255,255,.13); overflow: hidden; }
.landing-capability-grid article { min-height: 250px; padding: 25px; background: #132b23; }
.landing-capability-grid article:nth-child(even) { background: #10271f; }
.landing-capability-icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(217,239,145,.35); border-radius: 11px; color: var(--lime); font: 700 1rem Georgia, serif; }
.landing-capability-grid h3 { margin: 38px 0 10px; color: #fff; font-size: 1.35rem; }
.landing-capability-grid p { margin: 0; color: #aebfb7; font-size: .83rem; line-height: 1.65; }

.landing-flow { padding: clamp(78px, 8vw, 112px) 0; background: #f5f7f3; }
.landing-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 42px; }
.landing-section-heading > div { max-width: 800px; }
.landing-section-heading h2 { margin: 7px 0 0; font-size: clamp(2.7rem, 4.7vw, 4.8rem); line-height: .98; letter-spacing: -.05em; }
.landing-section-heading > p { max-width: 390px; margin: 0 0 4px; color: var(--muted); }
.landing-flow-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.landing-flow-card { position: relative; min-height: 450px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.landing-flow-card-featured { border-color: #9bb9aa; box-shadow: 0 20px 55px rgba(16,35,29,.09); transform: translateY(-10px); }
.landing-flow-number { display: block; color: var(--green); font-size: .68rem; font-weight: 850; letter-spacing: .12em; }
.landing-flow-visual { min-height: 205px; margin: 22px 0 24px; border-radius: 13px; }
.landing-flow-card h3 { margin: 0 0 9px; font-size: 1.48rem; }
.landing-flow-card > p { margin: 0; color: var(--muted); font-size: .88rem; }
.landing-flow-case { position: relative; display: grid; align-content: center; padding: 28px; overflow: hidden; background: #f3f4ec; }
.landing-flow-case > span { color: var(--green); font-size: .57rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.landing-flow-case p { position: relative; z-index: 1; margin: 10px 0 0; font: 1.13rem/1.45 Georgia, serif; }
.landing-flow-case > div { position: absolute; right: -20px; bottom: -24px; display: flex; gap: 6px; align-items: end; transform: rotate(-11deg); }
.landing-flow-case i { width: 35px; height: 100px; border: 1px solid #bfd2c7; border-radius: 6px; background: rgba(255,255,255,.6); }
.landing-flow-case i:nth-child(2) { height: 135px; }
.landing-flow-case i:nth-child(3) { height: 80px; background: rgba(217,239,145,.6); }
.landing-flow-book { display: grid; grid-template-columns: 1fr 32px 1fr; gap: 8px; align-items: center; padding: 20px; background: var(--green-dark); color: #fff; }
.landing-flow-book > div { display: grid; min-height: 140px; align-content: start; gap: 7px; padding: 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; }
.landing-flow-book > div strong { padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.3); color: var(--lime); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.landing-flow-book > div span { padding: 4px 5px; border-radius: 5px; background: rgba(255,255,255,.08); font-size: .67rem; text-align: right; }
.landing-flow-book > span { color: var(--lime); font: italic 1rem Georgia, serif; text-align: center; }
.landing-flow-check { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 24px; background: #e6f4eb; color: var(--green-dark); }
.landing-flow-check > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: #fff; font-size: 1.25rem; box-shadow: var(--shadow-small); }
.landing-flow-check strong, .landing-flow-check small { display: block; }
.landing-flow-check strong { font: 700 1.15rem Georgia, serif; }
.landing-flow-check small { margin-top: 3px; font-size: .65rem; }

.landing-audience { padding: clamp(78px, 8vw, 110px) 0; background: #ebf1ec; }
.landing-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.landing-audience-card { position: relative; overflow: hidden; padding: clamp(28px, 4vw, 48px); border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.landing-audience-card::after { position: absolute; right: -80px; bottom: -90px; width: 250px; height: 250px; border: 1px solid rgba(18,101,77,.12); border-radius: 50%; content: ""; }
.landing-audience-teach { background: var(--green-dark); color: #fff; }
.landing-audience-teach .eyebrow { color: var(--lime); }
.landing-audience-teach h2 { color: #fff; }
.landing-audience-card h2 { max-width: 11ch; margin: 14px 0 15px; font-size: clamp(2.25rem, 3.4vw, 3.8rem); line-height: .98; letter-spacing: -.045em; }
.landing-audience-card > p { max-width: 560px; color: var(--muted); }
.landing-audience-teach > p { color: #bdd0c6; }
.landing-audience-card ul { display: grid; gap: 10px; margin: 26px 0 30px; padding: 0; list-style: none; }
.landing-audience-card li { display: flex; gap: 9px; align-items: flex-start; font-size: .84rem; }
.landing-audience-card li span { color: var(--green); font-weight: 850; }
.landing-audience-teach li { color: #d9e5df; }
.landing-audience-teach li span { color: var(--lime); }
.landing-audience-card .button { position: relative; z-index: 1; gap: 12px; }
.landing-audience-teach .button.ghost { border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.06); color: #fff; }
.landing-audience-teach .button.ghost:hover { border-color: var(--lime); background: rgba(217,239,145,.08); }

.landing-exercises, .landing-discovery { padding: clamp(76px, 7vw, 104px) 0; background: #f8faf7; }
.landing-exercise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.landing-exercise-card { position: relative; min-height: 250px; overflow: hidden; padding: 25px; border: 1px solid var(--line); border-radius: 17px; background: #fff; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.landing-exercise-card:hover { border-color: #94b3a4; box-shadow: 0 18px 45px rgba(16,35,29,.09); transform: translateY(-4px); }
.landing-exercise-card h3 { max-width: 90%; margin: 32px 0 11px; font-size: 1.5rem; }
.landing-exercise-card h3 a { color: var(--ink); }
.landing-exercise-card h3 a::after { position: absolute; inset: 0; content: ""; }
.landing-exercise-card p { color: var(--muted); font-size: .82rem; }
.landing-exercise-arrow { position: absolute; right: 22px; bottom: 19px; display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--surface-soft); color: var(--green); transition: background .18s ease, color .18s ease; }
.landing-exercise-card:hover .landing-exercise-arrow { background: var(--green); color: #fff; }
.landing-discovery { padding-top: 24px; }
.landing-discovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.landing-discovery-grid > article { padding: 24px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.landing-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 11px; padding-bottom: 13px; border-bottom: 1px solid var(--line); font-weight: 800; }
.landing-list-heading a { font-size: .75rem; }
.landing-resource { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 2px; border-bottom: 1px solid #e7ece8; color: var(--ink); }
.landing-resource:last-child { border-bottom: 0; }
.landing-resource:hover { color: var(--green); text-decoration: none; }
.landing-resource strong, .landing-resource small { display: block; }
.landing-resource strong { font-size: .83rem; }
.landing-resource small { max-width: 520px; margin-top: 2px; font-size: .66rem; }

.landing-final { padding: 22px 0 clamp(76px, 8vw, 110px); background: #f8faf7; }
.landing-final-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 50px;
  align-items: center;
  overflow: hidden;
  padding: clamp(36px, 5vw, 68px);
  border-radius: 24px;
  background:
    radial-gradient(circle at 85% 130%, rgba(217,239,145,.24), transparent 32%),
    var(--ink);
  color: #fff;
}
.landing-final-inner::after { position: absolute; top: -150px; right: -80px; width: 400px; height: 400px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; }
.landing-final h2 { max-width: 780px; margin: 10px 0 13px; color: #fff; font-size: clamp(2.7rem, 4.4vw, 4.8rem); line-height: .98; letter-spacing: -.05em; }
.landing-final p { max-width: 650px; margin: 0; color: #b9cbc2; }
.landing-final-actions { position: relative; z-index: 1; display: grid; gap: 13px; min-width: 220px; justify-items: stretch; text-align: center; }
.landing-final-actions .button { border-color: var(--lime); background: var(--lime); color: var(--ink); }
.landing-final-actions .button:hover { border-color: #e5f6aa; background: #e5f6aa; }
.landing-final-actions > a:not(.button) { color: #cedbd4; font-size: .75rem; }

@media (max-width: 1180px) {
  .landing-hero-grid { grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr); gap: 40px; }
  .landing-hero h1 { font-size: clamp(3.7rem, 6vw, 5.7rem); }
  .landing-float-feedback { right: -10px; }
  .landing-float-methods { left: -12px; }
  .landing-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-capability-grid article { min-height: 220px; }
}

@media (max-width: 960px) {
  .landing-hero { min-height: auto; padding-top: 76px; }
  .landing-hero-grid { grid-template-columns: 1fr; }
  .landing-hero-copy { max-width: 780px; }
  .landing-hero h1 { max-width: 11ch; font-size: clamp(4.4rem, 9.5vw, 6.6rem); }
  .landing-stage { width: min(100%, 700px); margin: 0 auto; }
  .landing-definition-intro { grid-template-columns: 1fr; }
  .landing-definition-intro .eyebrow { grid-column: auto; }
  .landing-definition-intro p { max-width: 680px; }
  .landing-section-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .landing-flow-grid { grid-template-columns: 1fr; }
  .landing-flow-card { display: grid; min-height: 0; grid-template-columns: 56px minmax(280px, .85fr) minmax(0, 1fr); gap: 10px 24px; align-items: center; }
  .landing-flow-card-featured { transform: none; }
  .landing-flow-number { align-self: start; padding-top: 22px; }
  .landing-flow-visual { grid-row: span 2; margin: 0; }
  .landing-flow-card h3, .landing-flow-card > p { grid-column: 3; }
  .landing-audience-grid { grid-template-columns: 1fr; }
  .landing-exercise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-exercise-card:last-child { grid-column: 1 / -1; }
  .landing-final-inner { grid-template-columns: 1fr; }
  .landing-final-actions { width: fit-content; min-width: 250px; }
}

@media (max-width: 680px) {
  .landing-hero { padding: 54px 0 62px; }
  .landing-orbit-one { top: -190px; right: -250px; width: 530px; height: 530px; }
  .landing-orbit-two { display: none; }
  .landing-kicker { font-size: .66rem; }
  .landing-hero h1 { max-width: 10ch; margin-top: 20px; font-size: clamp(3.35rem, 16vw, 4.6rem); }
  .landing-lead { font-size: 1rem; line-height: 1.62; }
  .landing-hero-actions { align-items: stretch; flex-direction: column; margin-top: 28px; }
  .landing-hero-actions .button { width: 100%; }
  .landing-assurances { display: grid; grid-template-columns: 1fr; gap: 8px; padding-left: 4px; }
  .landing-stage { margin-top: 14px; padding: 30px 0 26px; }
  .landing-demo { border-radius: 17px; transform: none; }
  .landing-demo-toolbar { grid-template-columns: 1fr auto; padding-inline: 12px; }
  .landing-demo-toolbar > span:nth-child(2) { display: none; }
  .landing-demo-body { padding: 16px; }
  .landing-demo-heading h2 { font-size: 1.32rem; }
  .landing-demo-case { font-size: .9rem; }
  .landing-demo-steps { display: flex; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .landing-demo-steps::-webkit-scrollbar { display: none; }
  .landing-demo-steps button { flex: 0 0 auto; }
  .landing-t-grid { grid-template-columns: 1fr; }
  .landing-t-wide { grid-column: auto; }
  .landing-demo-result { grid-template-columns: 28px minmax(0, 1fr); }
  .landing-demo-totals { grid-column: 1 / -1; justify-content: flex-end; padding-top: 7px; border-top: 1px solid rgba(0,0,0,.08); }
  .landing-float-card { display: none; }
  .landing-definition { padding: 70px 0; }
  .landing-definition-intro h2, .landing-section-heading h2 { font-size: clamp(2.55rem, 12vw, 3.45rem); }
  .landing-capability-grid { grid-template-columns: 1fr; margin-top: 42px; }
  .landing-capability-grid article { min-height: 0; padding: 23px; }
  .landing-capability-grid h3 { margin-top: 24px; }
  .landing-flow { padding-block: 70px; }
  .landing-flow-card { display: block; padding: 18px; }
  .landing-flow-number { padding: 0; }
  .landing-flow-visual { min-height: 180px; margin: 17px 0 21px; }
  .landing-audience { padding: 70px 0; }
  .landing-audience-card { padding: 26px 22px; border-radius: 18px; }
  .landing-audience-card h2 { font-size: 2.65rem; }
  .landing-audience-card .button { width: 100%; }
  .landing-exercise-grid, .landing-discovery-grid { grid-template-columns: 1fr; }
  .landing-exercise-card:last-child { grid-column: auto; }
  .landing-exercise-card { min-height: 225px; }
  .landing-section-heading > .text-link { width: auto; }
  .landing-final { padding-bottom: 70px; }
  .landing-final-inner { gap: 28px; padding: 30px 22px; border-radius: 18px; }
  .landing-final h2 { font-size: 2.8rem; }
  .landing-final-actions { width: 100%; min-width: 0; }
}

/* Course plan workshop */
.course-editor-guide { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 26px; padding: 15px 17px; border: 1px solid #b8cec1; border-radius: 14px; background: #edf6f1; }
.course-editor-guide-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--green); color: #fff; font-weight: 900; }
.course-editor-guide > div { display: grid; gap: 3px; }
.course-editor-guide-actions { display: flex !important; align-items: center; justify-content: flex-end; gap: 8px !important; }
.course-editor-guide strong { font-size: .78rem; }
.course-editor-guide small { color: var(--muted); font-size: .67rem; line-height: 1.45; }
.course-builder-layout.is-manager { display: grid; grid-template-columns: minmax(210px, 250px) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 18px; }
.course-builder-layout.is-manager .course-module-nav { position: sticky; top: 13rem; display: grid; gap: 7px; margin: 0; padding: 12px; overflow: visible; border: 1px solid var(--line); border-radius: 14px; background: #f7faf8; }
.course-builder-layout.is-manager .course-module-nav-label { padding: 3px 4px 7px; color: var(--muted); font-size: .61rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.course-builder-layout.is-manager .course-module-nav button,
.course-builder-layout.is-manager .course-module-nav a { width: 100%; min-width: 0; justify-content: flex-start; text-align: left; }
.course-builder-layout.is-manager .course-module-list { margin-top: 0; }
.course-unit-actions { position: relative; }
.course-unit-menu { position: relative; }
.course-unit-menu > summary { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: #f0f5f2; color: var(--green-dark); font-size: .85rem; font-weight: 900; letter-spacing: .08em; list-style: none; cursor: pointer; }
.course-unit-menu > summary::-webkit-details-marker { display: none; }
.course-unit-menu[open] > summary { border-color: var(--green); background: #e5f1e9; }
.course-unit-menu[open] { z-index: 80; }
.course-unit-menu-panel { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; display: grid; width: 210px; padding: 6px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: 0 16px 36px rgba(12, 45, 34, .16); }
.course-unit-menu-panel form { display: block; }
.course-unit-menu-panel button { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 6px; width: 100%; min-height: 35px; align-items: center; padding: 7px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); font: inherit; font-size: .68rem; font-weight: 750; text-align: left; cursor: pointer; }
.course-unit-menu-panel button:hover { background: #edf5f0; }
.course-unit-menu-panel button.is-danger { color: var(--danger); }
.course-unit-menu-panel button.is-danger:hover { background: #fff0ef; }
.course-create-menu { position: relative; }
.course-create-menu > summary { list-style: none; cursor: pointer; }
.course-create-menu > summary::-webkit-details-marker { display: none; }
.course-create-menu > div { position: absolute; z-index: 25; top: calc(100% + 7px); right: 0; display: grid; width: 250px; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 16px 36px rgba(12,45,34,.16); }
.course-create-menu > div a { display: grid; gap: 2px; padding: 10px 11px; border-radius: 8px; color: var(--ink); text-decoration: none; }
.course-create-menu > div a:hover { background: #edf6f1; }
.course-create-menu > div strong { font-size: .72rem; }
.course-create-menu > div small { color: var(--muted); font-size: .62rem; }
.course-plan-legend {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 30px;
  padding: 15px 18px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  scrollbar-width: none;
}
.course-plan-legend::-webkit-scrollbar { display: none; }
.course-plan-legend > div { display: flex; min-width: max-content; align-items: center; gap: 9px; }
.course-plan-legend > div > b {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 8px;
  background: #e3eee7;
  color: var(--green-dark);
  font: 800 .72rem Georgia, serif;
}
.course-plan-legend > div > span { display: grid; line-height: 1.25; }
.course-plan-legend strong { font-size: .72rem; }
.course-plan-legend small { color: var(--muted); font-size: .61rem; }
.course-plan-legend > span { color: #9bad9f; }

.course-module-nav {
  display: flex;
  gap: 8px;
  margin-top: 18px;
  padding-bottom: 3px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.course-module-nav button,
.course-module-nav a {
  display: flex;
  min-height: 42px;
  min-width: max-content;
  align-items: center;
  gap: 9px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: .71rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.course-module-nav button:hover,
.course-module-nav button.is-active { border-color: var(--green); background: #eaf3ed; color: var(--green-dark); }
.course-module-nav button span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 6px; background: var(--green); color: #fff; font-size: .62rem; }
.course-module-nav a { border-style: dashed; color: var(--green); }

.course-module-list { position: relative; display: grid; gap: 14px; margin-top: 16px; }
.course-plan-save-state { min-height: 18px; margin: 0; color: var(--muted); font-size: .67rem; text-align: right; }
.course-plan-save-state.is-saving { color: #8a6600; }
.course-plan-save-state.is-saved { color: var(--green); }
.course-plan-save-state.is-error { color: var(--danger); }
.course-module-card {
  overflow: hidden;
  border: 1px solid #c5d3c9;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(14,51,37,.045);
}
.course-module-card[open] { overflow: visible; border-color: #9eb9aa; box-shadow: 0 15px 38px rgba(14,51,37,.08); }
.course-module-card > summary {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 34px;
  gap: 15px;
  align-items: center;
  padding: 19px 22px;
  list-style: none;
  cursor: pointer;
}
.course-module-card > summary::-webkit-details-marker { display: none; }
.course-module-card > summary:hover { background: #f6f9f6; }
.course-module-number { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--green); color: #fff; font: 800 1rem Georgia, serif; }
.course-module-summary-copy { display: grid; min-width: 0; gap: 3px; }
.course-module-summary-copy small { color: var(--green); font-size: .61rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.course-module-summary-copy strong { overflow: hidden; font: 700 clamp(1.35rem, 2.5vw, 1.9rem)/1.08 Georgia, serif; text-overflow: ellipsis; white-space: nowrap; }
.course-module-summary-copy em { color: var(--muted); font-size: .65rem; font-style: normal; }
.course-module-toggle { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: #edf3ef; transition: transform .18s ease; }
.course-module-card[open] .course-module-toggle { transform: rotate(180deg); }
.course-module-body { padding: 0 22px 22px; border-top: 1px solid var(--line); background: #fafcf9; }
.course-module-toolbar { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0; }
.course-module-toolbar p { max-width: 680px; margin: 0; color: var(--muted); font-size: .68rem; }
.course-module-toolbar .course-unit-actions { flex: 0 0 auto; }
.course-drag-handle {
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #5f776c;
  font: inherit;
  font-size: 1rem;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.course-drag-handle:hover { background: #e8f0eb; }
.course-drag-handle:active,
.course-drag-handle.is-active { background: #dcebe2; color: var(--green); cursor: grabbing; }

.course-tree-dropzone { position: relative; display: grid; min-height: 18px; gap: 9px; }
.course-tree-branch { position: relative; }
.course-tree-branch.is-dragging,
.course-module-card.is-dragging { opacity: .45; }
.course-tree-dropzone.is-drag-over { padding: 8px; border: 2px dashed #80a893; border-radius: 12px; background: #edf6f0; }
.course-tree-item {
  position: relative;
  display: grid;
  min-height: 88px;
  grid-template-columns: 28px minmax(0, 1fr);
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
.course-tree-item.is-content { border-left: 4px solid #84ae9a; }
.course-tree-item.is-locked { background: #f1f4f1; opacity: .78; }
.course-tree-connector { position: relative; background: #edf3ef; }
.course-tree-connector::before { position: absolute; top: 0; bottom: 50%; left: 50%; width: 1px; background: #a8beb1; content: ""; }
.course-tree-connector::after { position: absolute; top: 50%; left: 50%; width: 12px; height: 1px; background: #a8beb1; content: ""; }
.course-tree-copy { min-width: 0; padding: 14px 15px 15px; }
.course-tree-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.course-tree-topline .meta-row { gap: 7px; }
.course-kind-explanation { color: var(--muted); font-size: .62rem; }
.course-tree-copy h4 { margin: 7px 0; overflow-wrap: normal; hyphens: none; font: 700 1.22rem/1.14 Georgia, serif; }
.course-tree-copy h4 a { color: inherit; text-decoration: none; }
.course-tree-copy h4 a:hover { color: var(--green); }
.course-tree-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; min-height: 27px; font-size: .69rem; }
.course-tree-footer .fine-print { margin: 0; }
.course-tree-branch > .course-tree-dropzone { margin: 9px 0 0 clamp(16px, calc(var(--tree-depth, 1) * 14px), 46px); }
.course-inline-editor {
  display: grid;
  grid-template-columns: minmax(155px, .55fr) minmax(220px, .9fr) minmax(280px, 1.35fr);
  gap: 15px;
  align-items: start;
  margin: 9px 0 12px;
  padding: 18px;
  border: 1px solid #9eb9aa;
  border-radius: 13px;
  background: linear-gradient(135deg, #f0f7f2, #fff);
  box-shadow: 0 9px 24px rgba(14, 51, 37, .07);
}
.course-inline-editor[hidden] { display: none; }
.course-tree-branch > .course-inline-editor {
  margin-left: clamp(16px, calc(var(--tree-depth, 1) * 14px), 46px);
}
.course-inline-editor-heading { display: grid; grid-column: 1; grid-row: 1 / span 2; align-content: center; gap: 2px; align-self: stretch; }
.course-inline-editor-heading { padding: 12px; border-radius: 11px; background: #e4f0e8; }
.course-inline-editor-heading .eyebrow { font-size: .62rem; }
.course-inline-editor-heading strong { font-size: .82rem; }
.course-inline-editor-heading small { color: var(--muted); font-size: .66rem; line-height: 1.4; }
.course-inline-editor-field { display: grid; min-width: 0; gap: 5px; }
.course-inline-editor-field > span { font-size: .72rem; font-weight: 850; }
.course-inline-editor-field > small { color: var(--muted); font-size: .64rem; }
.course-inline-editor-field .input { min-width: 0; height: 42px; }
.course-inline-editor-field textarea.input { height: auto; min-height: 94px; resize: vertical; line-height: 1.5; }
.course-inline-editor-field { grid-column: 2; grid-row: 1; }
.course-inline-editor-copy { grid-column: 3; grid-row: 1 / span 2; }
.course-inline-position-note {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid #c6d6cc;
  border-radius: 9px;
  background: #fff;
}
.course-inline-position-note > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: #e5f0e8; color: var(--green); }
.course-inline-position-note p,
.course-inline-position-note small { margin: 0; }
.course-inline-position-note p { display: grid; gap: 1px; font-size: .64rem; }
.course-inline-position-note small { color: var(--muted); font-size: .56rem; font-weight: 500; }
.course-inline-editor-check {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 11px 12px;
  border: 1px solid #c6d6cc;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  grid-column: 2;
  grid-row: 2;
}
.course-inline-editor-check input { width: 17px; height: 17px; accent-color: var(--green); }
.course-inline-editor-check span { display: grid; gap: 1px; }
.course-inline-editor-check strong { font-size: .75rem; line-height: 1.3; }
.course-inline-editor-check small { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.course-inline-editor-actions {
  display: flex;
  grid-column: 2 / -1;
  gap: 7px;
  align-items: center;
  justify-content: flex-end;
  grid-row: 3;
}
.course-inline-editor-actions .button { min-height: 42px; }
.course-drop-hint {
  display: none;
  min-height: 44px;
  place-items: center;
  border: 2px dashed #9eb8aa;
  border-radius: 10px;
  color: var(--green);
  font-size: .66rem;
  font-weight: 800;
}
body.is-course-dragging .course-drop-hint { display: grid; }
.course-drop-indicator {
  display: grid;
  min-height: 46px;
  place-items: center;
  margin: 3px 0;
  border: 2px solid var(--green);
  border-radius: 11px;
  background: #e4f4e9;
  color: var(--green-dark);
  box-shadow: 0 8px 22px rgba(19, 112, 80, .13);
  pointer-events: none;
}
.course-drop-indicator span {
  padding: 5px 10px;
  border-radius: 999px;
  background: #fff;
  font-size: .64rem;
  font-weight: 850;
}

.course-content-picker-trigger { display: grid; width: 100%; grid-template-columns: 28px minmax(0, 1fr) 20px; gap: 10px; align-items: center; margin-top: 14px; padding: 11px 13px; border: 1px solid #bfd0c6; border-radius: 11px; background: #f7faf8; color: var(--green-dark); text-align: left; cursor: pointer; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.course-content-picker-trigger:hover { border-color: #78a28d; background: #eef6f1; transform: translateY(-1px); }
.course-content-picker-trigger > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: #dfeee5; font-size: 1rem; font-weight: 850; }
.course-content-picker-trigger > span:nth-child(2) { display: grid; min-width: 0; gap: 1px; }
.course-content-picker-trigger strong { font-size: .72rem; }
.course-content-picker-trigger small { color: var(--muted); font-size: .61rem; font-weight: 600; }
.course-content-picker-trigger > b { color: #759184; font-size: 1.1rem; text-align: right; }
.course-dialog.course-content-dialog { width: min(820px, calc(100% - 32px)); }
.course-content-dialog .course-dialog-header h2 { margin: 0; font: 700 clamp(1.55rem, 4vw, 2.15rem)/1.04 Georgia, serif; }
.course-content-create-section,
.course-content-existing-section { display: grid; gap: 13px; }
.course-content-existing-section { padding-top: 3px; }
.course-content-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.course-content-section-heading h3 { margin: 0; font-size: .86rem; }
.course-content-section-heading p { margin: 3px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }
.course-content-section-heading > span { flex: 0 0 auto; color: var(--muted); font-size: .65rem; font-weight: 750; }
.course-content-create-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.course-content-create-grid > a { display: grid; grid-template-columns: 34px minmax(0, 1fr) 14px; gap: 9px; align-items: center; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); text-decoration: none; }
.course-content-create-grid > a:hover { border-color: #76a08a; background: #f3f8f5; }
.course-content-create-grid > a.is-featured { border-color: #6e9f86; background: linear-gradient(135deg, #e7f4ed, #f8fbf9); box-shadow: 0 .35rem 1rem rgba(20,86,62,.08); }
.course-content-create-grid > a.is-featured strong { font-size: .76rem; }
.course-content-create-grid i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: #e3f1e9; color: var(--green-dark); font-size: .68rem; font-style: normal; font-weight: 900; }
.course-content-create-grid span { display: grid; min-width: 0; gap: 2px; }
.course-content-create-grid strong { font-size: .7rem; }
.course-content-create-grid small { overflow: hidden; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.course-content-create-grid b { color: #789287; font-size: 1rem; }
.course-content-existing-section { display: block; overflow: hidden; padding: 0; border: 1px solid var(--line); border-radius: 13px; background: #f8faf8; }
.course-content-existing-section > summary { padding: 14px 16px; cursor: pointer; list-style: none; }
.course-content-existing-section > summary::-webkit-details-marker { display: none; }
.course-content-existing-section > summary > span { display: flex; align-items: center; gap: 9px; }
.course-content-existing-section > summary i { color: var(--green); font-size: 1rem; font-style: normal; transition: transform .16s ease; }
.course-content-existing-section[open] > summary { border-bottom: 1px solid var(--line); background: #f2f7f4; }
.course-content-existing-section[open] > summary i { transform: rotate(180deg); }
.course-content-existing-body { display: grid; gap: 13px; padding: 14px; }
.course-content-picker-toolbar { display: grid; grid-template-columns: minmax(230px, 1fr) auto; gap: 10px; align-items: center; }
.course-content-search { display: grid; grid-template-columns: 35px minmax(0, 1fr); align-items: center; overflow: hidden; border: 1px solid #aebfb5; border-radius: 10px; background: #fff; }
.course-content-search > span { text-align: center; }
.course-content-search input { min-width: 0; padding: 11px 11px 11px 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: .75rem; }
.course-content-kind-filters { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.course-content-kind-filters button { min-height: 34px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--muted); font: inherit; font-size: .61rem; font-weight: 750; cursor: pointer; }
.course-content-kind-filters button span { margin-left: 3px; color: #789087; }
.course-content-kind-filters button:hover,
.course-content-kind-filters button.is-active { border-color: #78a28d; background: #e7f2eb; color: var(--green-dark); }
.course-content-picker-list { display: grid; max-height: 330px; gap: 5px; overflow: auto; padding: 5px; border: 1px solid var(--line); border-radius: 12px; background: #f6f8f6; }
.course-content-task-type-filter { display: grid; grid-column: 1 / -1; grid-template-columns: auto minmax(180px, 260px); gap: 9px; align-items: center; justify-content: end; color: var(--muted); font-size: .62rem; font-weight: 800; }
.course-content-task-type-filter .input { min-height: 36px; }
.course-content-preview { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; gap: 11px; align-items: start; padding: 13px; border: 1px solid #9fc2af; border-radius: 12px; background: #eef7f2; }
.course-content-preview[hidden] { display: none; }
.course-content-preview > i { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: #dceee4; color: var(--green-dark); font-size: .67rem; font-style: normal; font-weight: 900; }
.course-content-preview > div { display: grid; gap: 2px; }
.course-content-preview > div > span { color: var(--green); font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.course-content-preview strong { font-size: .76rem; }
.course-content-preview p { margin: 3px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.45; }
.course-content-preview > button { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px; background: rgba(255,255,255,.75); color: var(--muted); font-size: 1rem; cursor: pointer; }
.course-content-choice { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 6px 8px 6px 0; border: 1px solid transparent; border-radius: 9px; background: #fff; }
.course-content-choice:hover { border-color: #b7ccbf; background: #fafdFB; }
.course-content-choice[hidden] { display: none; }
.course-content-choice-main { display: grid; grid-template-columns: 18px 34px minmax(0, 1fr) 20px; gap: 9px; align-items: center; min-width: 0; padding: 3px 5px 3px 11px; cursor: pointer; }
.course-content-choice input { width: 17px; height: 17px; accent-color: var(--green); }
.course-content-choice-main > i { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: #e8f0eb; color: var(--green-dark); font-size: .62rem; font-style: normal; font-weight: 900; }
.course-content-choice-main > span { display: grid; min-width: 0; gap: 1px; }
.course-content-choice strong { overflow: hidden; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.course-content-choice small { color: var(--muted); font-size: .59rem; }
.course-content-choice-main > b { visibility: hidden; color: var(--green); font-size: .8rem; }
.course-content-choice > button { padding: 6px 8px; border: 0; border-radius: 7px; background: transparent; color: var(--green); font: inherit; font-size: .59rem; font-weight: 800; cursor: pointer; }
.course-content-choice > button:hover { background: #e8f2ec; }
.course-content-choice:has(input:checked) { border-color: #7eac94; background: #e8f4ed; }
.course-content-choice:has(input:checked) .course-content-choice-main > b { visibility: visible; }
.course-content-picker-empty { display: grid; gap: 3px; place-items: center; padding: 34px 18px; color: var(--muted); text-align: center; }
.course-content-picker-empty strong { color: var(--ink); font-size: .75rem; }
.course-content-picker-empty span { font-size: .65rem; }
.course-content-picker-more { justify-self: center; }
.course-content-picker-actions > span { margin-right: auto; color: var(--muted); font-size: .65rem; }

.course-inline-create-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.course-inline-create-actions .button { min-height: 34px; padding: 7px 11px; }

.course-dialog {
  width: min(620px, calc(100% - 32px));
  max-width: none;
  max-height: min(820px, calc(100dvh - 32px));
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 28px 90px rgba(10, 35, 27, .28);
}
.course-dialog::backdrop { background: rgba(9, 29, 23, .56); backdrop-filter: blur(3px); }
.course-dialog [hidden] { display: none !important; }
.course-dialog > form { display: flex; max-height: min(820px, calc(100dvh - 32px)); flex-direction: column; }
.course-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 27px 20px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f4faf6, #fff);
}
.course-dialog-header > div { display: grid; gap: 6px; }
.course-dialog-header h3 { margin: 0; font: 700 clamp(1.55rem, 4vw, 2.15rem)/1.04 Georgia, serif; }
.course-dialog-header p { max-width: 540px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.course-dialog-close {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--muted);
  font: inherit;
  font-size: 1.1rem;
  cursor: pointer;
}
.course-dialog-close:hover { border-color: #89a696; color: var(--ink); }
.course-dialog-body { display: grid; gap: 18px; padding: 23px 27px; overflow: auto; }
.course-dialog-field { display: grid; min-width: 0; gap: 7px; margin: 0; padding: 0; border: 0; }
.course-dialog-field > span,
.course-dialog-field > legend { color: var(--ink); font-size: .72rem; font-weight: 850; }
.course-dialog-field > span em { color: var(--muted); font-size: .63rem; font-style: normal; font-weight: 600; }
.course-dialog-field > span b,
.course-dialog-field > legend b {
  display: inline-grid;
  width: 22px;
  height: 22px;
  margin-right: 5px;
  place-items: center;
  border-radius: 6px;
  background: #e2eee6;
  color: var(--green);
  font-size: .61rem;
}
.course-dialog-field small { color: var(--muted); font-size: .66rem; line-height: 1.45; }
.course-dialog-field textarea { min-height: 100px; resize: vertical; }
.course-dialog-check {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 13px;
  border: 1px solid #cbd9d0;
  border-radius: 12px;
  background: #f7faf8;
  cursor: pointer;
}
.course-dialog-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); }
.course-dialog-check > span { display: grid; gap: 2px; }
.course-dialog-check strong { font-size: .7rem; }
.course-dialog-check small { color: var(--muted); font-size: .63rem; }
.course-dialog-explainer {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px;
  border: 1px solid #cbd9d0;
  border-radius: 12px;
  background: #f3f8f5;
}
.course-dialog-explainer > b { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--green); color: #fff; font: 800 .8rem Georgia, serif; }
.course-dialog-explainer > span { display: grid; gap: 2px; }
.course-dialog-explainer strong { font-size: .69rem; }
.course-dialog-explainer small { color: var(--muted); font-size: .65rem; }
.course-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; padding: 17px 27px; border-top: 1px solid var(--line); background: #f8faf8; }
.course-delete-dialog { width: min(560px, calc(100% - 32px)); }
.course-delete-dialog .course-dialog-header {
  background: linear-gradient(135deg, #fff6f4, #fff);
}
.course-delete-warning {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 15px;
  border: 1px solid #e3b8b3;
  border-radius: 12px;
  background: #fff7f5;
}
.course-delete-warning > b {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  background: var(--danger);
  color: #fff;
  font-size: .84rem;
}
.course-delete-warning > span { display: grid; gap: 3px; }
.course-delete-warning strong { font-size: .72rem; }
.course-delete-warning small { color: #76514d; font-size: .65rem; line-height: 1.45; }
.course-grant-steps { gap: 20px; }
.course-timing-options { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.course-timing-options > label { cursor: pointer; }
.course-timing-options input { position: absolute; opacity: 0; pointer-events: none; }
.course-timing-options label > span { display: grid; gap: 2px; padding: 12px 13px; border: 1px solid #bdcec3; border-radius: 11px; background: #fff; }
.course-timing-options label > span strong { font-size: .71rem; }
.course-timing-options label > span small { color: var(--muted); font-size: .61rem; }
.course-timing-options label:has(input:checked) > span { border: 2px solid var(--green); padding: 11px 12px; background: #edf6f0; }
.course-grant-window { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf8; }
.course-grant-window[hidden] { display: none; }
.course-grant-window .validity-picker { grid-column: 1 / -1; }

.course-root-drop-hint {
  display: none;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px dashed #7ca58f;
  border-radius: 12px;
  background: #edf7f1;
  color: var(--green-dark);
  font-size: .67rem;
}
.course-root-drop-hint span { color: var(--muted); font-weight: 500; }
.course-module-list.is-root-dragging .course-root-drop-hint { display: flex; }
.course-tree-dropzone.is-valid-dropzone {
  min-height: 54px;
  padding: 6px;
  border-radius: 12px;
  outline: 1px dashed #9db9aa;
  outline-offset: 2px;
  background: rgba(233, 245, 237, .42);
}
.course-tree-branch:has(> .course-tree-dropzone.is-valid-dropzone) > .course-tree-item {
  border-color: #8fb09d;
  box-shadow: 0 0 0 2px rgba(19, 112, 80, .07);
}
.course-module-body:has(> .course-tree-dropzone.is-valid-dropzone) {
  box-shadow: inset 0 0 0 2px rgba(19, 112, 80, .08);
}
.course-tree-dropzone.is-valid-dropzone > .course-drop-hint { display: grid; }
.course-tree-dropzone.is-valid-dropzone.is-drag-over {
  padding: 8px;
  outline: 0;
  border: 2px solid var(--green);
  background: #e5f4ea;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.75);
}
.course-tree-branch.is-dragging,
.course-module-card.is-dragging {
  opacity: .82;
  filter: none;
  transform: scale(.995);
  box-shadow: 0 14px 32px rgba(10, 54, 38, .16);
}
.course-drop-hint { align-content: center; gap: 2px; text-align: center; }
.course-drop-hint strong { font-size: .68rem; }
.course-drop-hint span { color: var(--muted); font-size: .58rem; font-weight: 600; }
body.is-course-dragging .course-drop-hint { display: none; }
body.is-course-dragging .course-tree-dropzone.is-valid-dropzone > .course-drop-hint { display: grid; }
.course-unassigned-section {
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px dashed #d0a85c;
  border-radius: 15px;
  background: #fffaf0;
}
.course-unassigned-section > div:first-child { display: grid; gap: 3px; }
.course-unassigned-section h3 { margin: 0; font-size: 1rem; }
.course-unassigned-section p { margin: 0; color: var(--muted); font-size: .67rem; }
.course-grant-empty {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  border: 1px dashed #afc3b7;
  border-radius: 14px;
  background: #fff;
}
.course-grant-empty > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; background: #e6f0e9; color: var(--green); }
.course-grant-empty strong { font-size: .76rem; }
.course-grant-empty p { margin: 3px 0 0; color: var(--muted); font-size: .66rem; }

.course-unit-editor-heading { max-width: 900px; }
.course-unit-editor { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 22px; align-items: start; }
.course-unit-editor-main { display: grid; gap: 17px; }
.course-unit-type-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.course-unit-type-card { position: relative; display: grid; min-height: 205px; align-content: start; gap: 13px; padding: 17px; border: 1px solid #bdcec3; border-radius: 14px; background: #fbfcfa; cursor: pointer; }
.course-unit-type-card:hover { border-color: var(--green); transform: translateY(-1px); }
.course-unit-type-card:has(input:checked) { border: 2px solid var(--green); padding: 16px; background: #edf6f0; box-shadow: 0 9px 24px rgba(14,70,50,.09); }
.course-unit-type-card input { position: absolute; opacity: 0; pointer-events: none; }
.course-unit-type-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: #e2eee6; color: var(--green); font: 800 .78rem Georgia, serif; }
.course-unit-type-card > span:nth-of-type(2) { display: grid; gap: 7px; }
.course-unit-type-card strong { font: 700 1.27rem Georgia, serif; }
.course-unit-type-card small { color: var(--muted); font-size: .68rem; line-height: 1.5; }
.course-unit-type-card em { color: var(--green-dark); font-size: .62rem; font-style: normal; }
.course-unit-type-card > i { position: absolute; top: 13px; right: 13px; display: none; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .65rem; font-style: normal; }
.course-unit-type-card:has(input:checked) > i { display: grid; }
.course-unit-kind-note { display: grid; grid-template-columns: 39px minmax(0, 1fr); gap: 12px; align-items: start; padding: 17px; border-radius: 13px; background: #edf6f0; }
.course-unit-kind-note > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: var(--green); color: #fff; }
.course-unit-kind-note p { margin: 3px 0 0; color: var(--muted); font-size: .72rem; }
.course-unit-availability { padding: 0; overflow: hidden; }
.course-unit-availability > summary { display: grid; grid-template-columns: 35px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 19px 22px; list-style: none; cursor: pointer; }
.course-unit-availability > summary::-webkit-details-marker { display: none; }
.course-unit-availability > summary > span:nth-child(2) { display: grid; gap: 2px; }
.course-unit-availability > summary small { color: var(--muted); font-size: .65rem; }
.course-unit-availability-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: #e6efea; }
.course-unit-availability-body { padding: 0 22px 22px; border-top: 1px solid var(--line); }
.course-unit-availability-body > .field { margin-top: 19px; }
.course-unit-editor-aside { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-small); }
.course-unit-editor-aside > p { margin: 0; padding: 0 20px 18px; color: var(--muted); font-size: .68rem; }
.course-unit-editor-aside > .button { width: calc(100% - 40px); margin: 0 20px 20px; }
.course-unit-next-steps { display: grid; gap: 12px; padding: 20px; }
.course-unit-next-steps > span { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 9px; align-items: center; }
.course-unit-next-steps b { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: #e3f1e9; color: var(--green); font-size: .68rem; }
.course-unit-next-steps strong { font-size: .7rem; }

.unit-editor-savebar {
  position: sticky;
  bottom: 14px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
  padding: 14px 16px;
  border: 1px solid #aec4b7;
  border-radius: 15px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 16px 40px rgba(14, 51, 37, .13);
  backdrop-filter: blur(12px);
}
.unit-editor-save-note { display: flex; align-items: center; gap: 11px; }
.unit-editor-save-note > i { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: #e3f1e9; color: var(--green); font-style: normal; font-weight: 900; }
.unit-editor-save-note > span { display: grid; gap: 2px; }
.unit-editor-save-note strong { font-size: .75rem; }
.unit-editor-save-note small { color: var(--muted); font-size: .65rem; }
.unit-editor-savebar .actions { display: flex; gap: 9px; }
.unit-editor-savebar .button { min-height: 46px; }

@media (max-width: 980px) {
  .course-builder-layout.is-manager { grid-template-columns: 1fr; }
  .course-builder-layout.is-manager .course-module-nav { position: static; display: block; overflow: visible; }
  .course-builder-layout.is-manager .course-module-nav-label { display: block; }
  .course-builder-layout.is-manager .course-module-nav-items { display: flex; overflow-x: auto; }
  .course-builder-layout.is-manager .course-module-nav button,
  .course-builder-layout.is-manager .course-module-nav a { width: auto; min-width: max-content; }
  .course-unit-editor { grid-template-columns: 1fr; }
  .course-unit-editor-aside { position: static; }
  .course-inline-editor { grid-template-columns: 1fr 1fr; }
  .course-inline-editor-copy { grid-column: 2; grid-row: 2; }
  .course-inline-editor-check,
  .course-inline-position-note { grid-column: 2; grid-row: 3; }
  .course-inline-editor-actions { grid-column: 1 / -1; grid-row: 4; }
}

@media (max-width: 720px) {
  .course-editor-guide { grid-template-columns: 40px minmax(0, 1fr); }
  .course-editor-guide-actions { grid-column: 1 / -1; align-items: stretch; flex-direction: column; }
  .course-editor-guide .button { width: 100%; }
  .course-unit-menu-panel { position: fixed; top: auto; right: 12px; bottom: 12px; left: 12px; width: auto; }
  .rich-image-settings { grid-template-columns: 1fr; }
  .rich-table-toolbar > span { display: none; }
  .rich-table-toolbar button.is-danger { margin-left: 0; }
  .course-plan-legend { margin-inline: -2px; padding: 12px; }
  .course-module-card > summary { grid-template-columns: 38px minmax(0, 1fr) 30px; gap: 10px; padding: 15px; }
  .course-module-number { width: 36px; height: 36px; }
  .course-module-summary-copy strong { font-size: 1.26rem; white-space: normal; }
  .course-module-body { padding: 0 12px 14px; }
  .course-module-toolbar { align-items: flex-start; flex-direction: column; }
  .course-module-toolbar .course-unit-actions { width: 100%; justify-content: flex-end; }
  .course-drag-handle { width: 44px; height: 44px; }
  .course-tree-item { grid-template-columns: 18px minmax(0, 1fr); }
  .course-tree-copy { padding: 12px; }
  .course-tree-topline { align-items: flex-start; flex-direction: column; }
  .course-tree-topline .course-unit-actions { width: 100%; justify-content: flex-end; }
  .course-tree-branch > .course-tree-dropzone { margin-left: 10px; }
  .course-inline-editor,
  .course-tree-branch > .course-inline-editor { grid-template-columns: 1fr; margin-left: 10px; }
  .course-inline-editor-heading,
  .course-inline-editor-field,
  .course-inline-editor-copy,
  .course-inline-editor-check,
  .course-inline-position-note,
  .course-inline-editor-actions { grid-column: auto; grid-row: auto; }
  .course-inline-editor-actions .button { flex: 1; }
  .course-content-create-grid { grid-template-columns: 1fr; }
  .course-content-picker-toolbar { grid-template-columns: 1fr; }
  .course-content-kind-filters { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
  .course-content-kind-filters button { flex: 0 0 auto; }
  .course-content-picker-list { max-height: 430px; }
  .course-content-picker-actions { align-items: stretch; flex-direction: column; }
  .course-content-picker-actions > span { margin-right: 0; }
  .course-content-picker-actions .button { width: 100%; }
  .course-inline-create-actions { width: 100%; }
  .course-inline-create-actions .button { flex: 1 1 130px; }
  .course-dialog { width: 100%; max-height: calc(100dvh - 16px); margin: auto 0 0; border-radius: 20px 20px 0 0; }
  .course-dialog > form { max-height: calc(100dvh - 16px); }
  .course-dialog-header { padding: 20px 18px 16px; }
  .course-dialog-body { padding: 19px 18px; }
  .course-dialog-actions { padding: 14px 18px; }
  .course-dialog-actions .button { flex: 1; }
  .course-grant-window { grid-template-columns: 1fr; }
  .course-grant-empty { grid-template-columns: 40px minmax(0, 1fr); }
  .course-grant-empty .button { grid-column: 1 / -1; width: 100%; }
  .course-root-drop-hint { align-items: flex-start; flex-direction: column; padding: 11px; }
  .course-unit-type-grid { grid-template-columns: 1fr; }
  .course-unit-type-card { min-height: 0; grid-template-columns: 42px minmax(0, 1fr); }
  .course-unit-type-card > i { top: 50%; transform: translateY(-50%); }
  .course-unit-availability > summary { grid-template-columns: 32px minmax(0, 1fr); padding: 17px; }
  .course-unit-availability > summary .pill { grid-column: 2; justify-self: start; }
  .course-unit-availability-body { padding-inline: 17px; }
}

/* Learning material reading view */
.material-detail-page { background: linear-gradient(180deg, #f1f6f2 0, var(--surface) 420px); }
.material-detail-page .back-link { margin-bottom: 30px; }
.material-detail-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: start; }
.material-detail-hero h1 { max-width: 980px; margin: 10px 0 14px; overflow-wrap: normal; hyphens: none; font-size: clamp(3.4rem, 6.4vw, 6rem); line-height: .93; }
.material-detail-hero .lead { max-width: 820px; margin: 0; }
.material-topic-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.material-topic-list span { padding: 7px 10px; border-radius: 999px; background: #e2eee6; color: var(--green-dark); font-size: .67rem; font-weight: 800; }
.material-detail-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 20px; align-items: start; margin-top: 44px; }
.material-reading-card { min-height: 440px; padding: clamp(25px, 4vw, 50px); }
.material-reading-card .prose { margin-top: 25px; font-size: 1rem; line-height: 1.78; }
.material-detail-aside { display: grid; gap: 15px; }
.material-detail-aside .panel { padding: 24px; }
.material-detail-aside h2 { margin: 5px 0 17px; font-size: 1.65rem; }
.material-goals { border-color: #acc7b8; background: #edf6f0; }
.material-goals ul, .material-prerequisites ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.material-goals li { display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 9px; align-items: center; font-size: .76rem; line-height: 1.45; }
.material-goals li > span { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .65rem; }
.material-prerequisites li { padding-left: 15px; border-left: 2px solid #b7c9bf; color: var(--muted); font-size: .74rem; }
.material-attachments .list-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 12px 0;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
}
.material-attachments .list-card > span:first-child {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.material-attachments .list-card strong {
  overflow-wrap: anywhere;
}
.material-attachments .list-card > span:last-child {
  color: var(--green);
  font-weight: 750;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .material-detail-layout { grid-template-columns: 1fr; }
  .material-detail-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .material-detail-aside > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .material-detail-hero { grid-template-columns: 1fr; }
  .material-detail-hero h1 { font-size: clamp(3rem, 14vw, 4.5rem); }
  .material-detail-hero .button { width: 100%; }
  .material-detail-layout { margin-top: 30px; }
  .material-detail-aside { grid-template-columns: 1fr; }
  .material-detail-aside > :last-child:nth-child(odd) { grid-column: auto; }
  .material-reading-card { min-height: 0; padding: 23px; }
  .material-attachments .list-card {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 9px;
  }
}

/* Course reader and course-unit copy */
.course-tree-description {
  max-width: 780px;
  margin: -2px 0 9px;
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.5;
}
.course-module-description {
  max-width: 680px;
  margin-top: 3px;
  color: var(--muted);
  font-size: .64rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.4;
}
.course-inline-editor-copy .input {
  min-height: 74px;
  height: auto;
  resize: vertical;
}
.course-reader-navigation {
  display: grid;
  grid-template-columns: minmax(240px, .7fr) minmax(420px, 1.3fr);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 34px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  box-shadow: var(--shadow-small);
}
.course-reader-navigation-container { width: min(1240px, calc(100% - 64px)); }
.course-reader-navigation-container .course-reader-navigation { width: 100%; }
.course-reader-progress {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
  padding: 9px 12px;
}
.course-reader-progress > a {
  flex: 0 0 auto;
  color: var(--green);
  font-size: .68rem;
  font-weight: 850;
  text-decoration: none;
}
.course-reader-progress > span { display: grid; min-width: 0; gap: 2px; }
.course-reader-progress strong {
  overflow: hidden;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.course-reader-progress small { color: var(--muted); font-size: .61rem; }
.course-reader-pages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.course-reader-pages > a,
.course-reader-pages > span {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--ink);
  text-decoration: none;
}
.course-reader-pages > :nth-child(2) { grid-template-columns: minmax(0, 1fr) auto; text-align: right; }
.course-reader-pages > a:hover { border-color: #8fac9d; background: #f1f7f3; }
.course-reader-pages > a > span:not(:only-child),
.course-reader-pages > span > span:not(:only-child) { display: grid; min-width: 0; gap: 1px; }
.course-reader-pages small { color: var(--muted); font-size: .56rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.course-reader-pages strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.course-reader-pages .is-disabled { opacity: .42; }
.course-unit-reading-page,
.exam-preview-page { background: linear-gradient(180deg, #f1f6f2 0, var(--surface) 440px); }
.course-unit-reading-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: start;
}
.course-unit-reading-hero h1,
.exam-preview-header h1 {
  max-width: 950px;
  margin: 9px 0 12px;
  overflow-wrap: normal;
  hyphens: none;
  font-size: clamp(3rem, 5.8vw, 5.4rem);
  line-height: .94;
}
.course-unit-reading-hero .lead { max-width: 820px; margin: 0; }
.course-unit-reading-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: 18px;
  align-items: start;
  margin-top: 38px;
}
.course-unit-reading-copy { min-height: 330px; padding: clamp(25px, 4vw, 44px); }
.course-unit-reading-copy .prose { margin-top: 24px; font-size: .96rem; line-height: 1.75; }
.course-unit-empty-copy { display: grid; gap: 5px; margin-top: 28px; padding: 20px; border-radius: 12px; background: #f3f6f3; }
.course-unit-empty-copy p { margin: 0; color: var(--muted); }
.course-unit-child-list { padding: 25px; }
.course-unit-child-list h2 { margin: 5px 0 17px; font-size: 1.8rem; }
.course-unit-child-list > div { display: grid; }
.course-unit-child-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 12px;
  padding: 13px 0;
  border-top: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.course-unit-child-list a span { grid-column: 1; color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.course-unit-child-list a strong { grid-column: 1; font-size: .72rem; }
.course-unit-child-list a i { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--green); font-style: normal; }
.course-unit-child-list a:hover strong { color: var(--green); }

/* Material workshop and multiple attachments */
.material-editor-page { background: #f5f8f4; }
.material-editor-heading { max-width: 920px; }
.material-editor-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 22px;
  align-items: start;
}
.material-editor-main { display: grid; gap: 18px; }
.material-editor-aside { position: sticky; top: 96px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-small); }
.material-editor-aside-actions { display: grid; gap: 10px; margin-top: 18px; }
.material-editor-aside-actions .button { width: 100%; margin: 0; }
.material-editor-aside .guided-form-overview-body > ol > li { display: block; padding: 0; }
.material-editor-aside .guided-form-overview-body > ol > li > a { width: 100%; }
.material-editor-aside .guided-form-overview-body > ol > li > a > strong { min-width: 0; line-height: 1.35; }
.builder-step:focus { outline: 0; box-shadow: 0 0 0 3px rgba(18, 101, 77, .13), var(--shadow-small); }
[data-custom-material-type][hidden] { display: none; }
.material-existing-files { display: grid; gap: 8px; margin: 4px 0 20px; }
.material-existing-files-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.material-existing-files-heading span { color: var(--muted); font-size: .65rem; }
.material-existing-file {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfcfb;
}
.material-file-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: #e3f1e9; color: var(--green); font-size: .57rem; font-weight: 900; }
.material-file-copy { display: grid; min-width: 0; gap: 2px; }
.material-file-copy strong,
.material-file-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.material-file-copy strong { font-size: .72rem; }
.material-file-copy small { color: var(--muted); font-size: .59rem; }
.material-file-replace,
.material-file-remove {
  position: relative;
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 0 12px;
  border: 1px solid #afc3b7;
  border-radius: 9px;
  color: var(--green-dark);
  font-size: .64rem;
  font-weight: 850;
  cursor: pointer;
}
.material-file-replace:hover { border-color: var(--green); background: #eef6f1; }
.material-file-replace input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.material-file-remove { gap: 7px; border-color: #e0c4c1; color: #9a3c34; }
.material-file-remove:has(input:checked) { border-color: #b94d43; background: #fff0ee; }
.material-file-remove input { width: 16px; height: 16px; accent-color: #b94d43; }
.material-multi-file { min-height: 92px; }
.exam-preview-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 24px;
}
.exam-preview-header > div { min-width: 0; }
.exam-preview-header h1 {
  overflow-wrap: anywhere;
  hyphens: auto;
}
.exam-preview-header p { max-width: 760px; margin: 0; color: var(--muted); }
.exam-preview-notice {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-bottom: 20px;
  padding: 14px 16px;
  border: 1px solid #a7c4b4;
  border-radius: 13px;
  background: #eaf5ee;
}
.exam-preview-notice > span { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 10px; background: var(--green); color: #fff; }
.exam-preview-notice > div { display: grid; gap: 2px; }
.exam-preview-notice small { color: var(--muted); font-size: .65rem; }
.exam-preview-paper { padding-bottom: 24px; }

@media (max-width: 980px) {
  .course-reader-navigation { grid-template-columns: 1fr; }
  .material-editor-form { grid-template-columns: 1fr; }
  .material-editor-aside { position: static; }
}

@media (max-width: 720px) {
  .course-reader-navigation-container { width: min(100% - 28px, 1240px); }
  .course-inline-editor-copy { grid-column: auto; }
  .course-reader-navigation { padding: 8px; }
  .course-reader-progress { padding: 7px 8px; }
  .course-reader-pages { grid-template-columns: 1fr; }
  .course-reader-pages > :nth-child(2) { text-align: left; }
  .course-reader-pages strong { white-space: normal; }
  .course-unit-reading-hero,
  .course-unit-reading-layout { grid-template-columns: 1fr; }
  .course-unit-reading-hero .button { width: 100%; }
  .material-existing-file { grid-template-columns: 40px minmax(0, 1fr); }
  .material-file-replace,
  .material-file-remove { justify-content: center; }
  .material-file-replace { grid-column: 1 / 2; }
  .material-file-remove { grid-column: 2 / 3; }
  .exam-preview-header { align-items: stretch; flex-direction: column; }
  .exam-preview-header .actions { display: grid; grid-template-columns: 1fr; }
  .exam-preview-header .button { width: 100%; }
}
.exam-player {
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
  margin-top: 1.5rem;
}

.exam-player-sidebar {
  position: sticky;
  top: 5.5rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: var(--surface);
  overflow: hidden;
  box-shadow: var(--shadow-small);
}

.exam-player-sidebar-heading {
  padding: 1.25rem;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
}

.exam-player-sidebar-heading h2 {
  margin: .25rem 0;
  font-size: 1.55rem;
}

.exam-player-sidebar-heading p {
  margin: 0;
  color: var(--muted);
}

.exam-question-navigation {
  display: grid;
  padding: .65rem;
  gap: .35rem;
}

.exam-question-navigation button {
  width: 100%;
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) .65rem;
  align-items: center;
  gap: .75rem;
  padding: .75rem;
  border: 1px solid transparent;
  border-radius: .85rem;
  background: transparent;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
}

.exam-question-navigation button > span:first-child {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: .65rem;
  background: var(--surface-soft);
  font-weight: 800;
}

.exam-question-navigation button > span:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: .1rem;
}

.exam-question-navigation strong,
.exam-question-navigation small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exam-question-navigation small {
  color: var(--muted);
}

.exam-question-navigation button > i {
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: var(--line-strong);
}

.exam-question-navigation button.is-current {
  border-color: var(--green);
  background: var(--surface-soft);
}

.exam-question-navigation button.is-started > i {
  background: var(--gold);
}

.exam-question-navigation button.is-answered > i {
  background: var(--green);
}

.exam-player-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  padding: .85rem 1.25rem 1.15rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .76rem;
}

.exam-player-legend span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

.exam-player-legend i {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--line-strong);
}

.exam-player-legend i.started { background: var(--gold); }
.exam-player-legend i.answered { background: var(--green); }

.exam-player-main {
  min-width: 0;
}

.exam-player-progress {
  height: .35rem;
  margin-bottom: .75rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-soft);
}

.exam-player-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
  transition: width .25s ease;
}

.exam-player-question {
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--surface);
  box-shadow: var(--shadow-small);
}

.exam-question-heading h2 {
  margin: .45rem 0 .15rem;
  font-size: clamp(2rem, 4vw, 3.4rem);
}

.exam-question-subject {
  margin: 0;
  color: var(--muted);
}

.exam-player-question .case-text {
  margin: 1.5rem 0;
}

.exam-booking-workspace,
.exam-mc-workspace {
  border-top: 1px solid var(--line);
  padding-top: 1.4rem;
}

.exam-player-actions {
  position: sticky;
  bottom: .75rem;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-top: 1rem;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}

.exam-player-actions > span {
  color: var(--muted);
  font-weight: 700;
  text-align: center;
}

.exam-task-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  align-items: center;
  justify-content: flex-end;
  padding: 0;
}

.exam-task-fact {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 2rem;
  padding: .3rem .5rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font: inherit;
  font-size: .75rem;
  font-style: normal;
  white-space: nowrap;
}

.exam-task-fact.is-mode {
  border-color: #b8d8ce;
  background: #eaf6f1;
  color: #0b614a;
}

.exam-task-fact.is-dynamic {
  border-color: #e6cf8d;
  background: #fff6da;
  color: #745400;
}

.exam-task-fact.is-mirror.is-enabled {
  border-color: #9fcfb4;
  background: #e4f5e9;
  color: #11613d;
}

.exam-task-fact.is-mirror.is-disabled {
  border-color: #c7bedf;
  background: #f1edfa;
  color: #57437f;
}
.exam-task-fact.is-typo-tolerance.is-enabled { border-color: #91c6aa; background: #e4f5eb; color: #075d44; }
.exam-task-fact.is-typo-tolerance.is-disabled { border-color: #d1d9d5; background: #f4f6f5; color: #52635b; }

.exam-task-fact.is-interactive {
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.exam-task-fact.is-interactive:hover,
.exam-task-fact.is-interactive:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(8, 63, 47, .1);
  outline: 2px solid rgba(0, 108, 77, .18);
  outline-offset: 1px;
}

.exam-task-fact.is-interactive i {
  font-size: .72rem;
  font-style: normal;
  opacity: .7;
}

/* Calm learning-content workspace */
.rich-editor-heading { align-items: flex-start; }
.rich-editor-heading > div:first-child { min-width: 0; }
.rich-editor-save-status { display: block; margin-top: .2rem; font-size: .68rem; line-height: 1.35; white-space: normal; }
.rich-editor-heading-actions { flex: 0 0 auto; }
.rich-editor-commandbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rich-editor-document-tools { display: flex; align-items: center; gap: .65rem; }
.rich-editor-block-count { padding: .35rem .65rem; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: .72rem; font-weight: 750; white-space: nowrap; }
.rich-editor-history { padding-left: .65rem; border-left: 1px solid var(--line); }
.rich-editor-history button { display: inline-flex; width: auto; min-width: 2.4rem; gap: .35rem; padding: 0 .65rem; font-size: .7rem; font-weight: 780; }
.rich-editor-history button > span:first-child { font-size: 1.05rem; }
.rich-editor-hidden-file { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

.rich-text-toolbar {
  position: sticky;
  top: 5rem;
  z-index: 8;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto -.15rem;
  padding: .4rem;
  border-color: #b8ccc1;
  border-radius: .75rem;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 10px 28px rgba(8, 63, 47, .13);
}
.rich-text-toolbar button { min-height: 2.25rem; padding: .35rem .55rem; border-color: transparent; background: transparent; font-size: .72rem; }
.rich-text-toolbar button:hover, .rich-text-toolbar button:focus-visible { border-color: #b8d4c5; background: #edf6f1; outline: 0; }
.rich-toolbar-select { display: flex; align-items: center; gap: .4rem; }
.rich-toolbar-select > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.rich-toolbar-select select { min-width: 9.8rem; border-color: transparent; background-color: #f1f7f4; }
.rich-toolbar-divider { width: 1px; height: 1.7rem; background: var(--line); }
.rich-toolbar-group { align-items: center; }
.rich-text-surface { min-height: 9rem; font-size: 1rem; line-height: 1.7; }

.rich-formula-editor { display: grid; gap: .75rem; padding: .85rem; border: 1px solid #c9d9d1; border-radius: .8rem; background: #f8fbf9; }
.rich-formula-editor label { display: grid; gap: .35rem; color: var(--ink); font-size: .7rem; font-weight: 780; }
.rich-formula-editor label em { color: var(--muted); font-style: normal; font-weight: 500; }
.rich-formula-symbols { display: flex; flex-wrap: wrap; gap: .3rem; }
.rich-formula-symbols button { display: grid; min-width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--line); border-radius: .55rem; background: #fff; color: var(--green-dark); font: 750 1rem Georgia, serif; cursor: pointer; }
.rich-formula-symbols button:hover, .rich-formula-symbols button:focus-visible { border-color: var(--green); background: #eaf5ef; outline: 2px solid rgba(0, 108, 77, .12); }
.rich-formula-input { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 1rem; }
.rich-formula-preview, .rich-content-formula { margin: 0; padding: .85rem 1rem; border-left: 4px solid var(--green); border-radius: 0 .65rem .65rem 0; background: #fff; color: var(--ink); font: 700 clamp(1.05rem, 2vw, 1.35rem)/1.5 ui-monospace, "Cascadia Code", Consolas, monospace; overflow-wrap: anywhere; }
.rich-formula-preview.is-empty { color: var(--muted); font-family: inherit; font-size: .75rem; font-weight: 500; }
.rich-toolbar-colors { position: relative; flex-wrap: nowrap; }
.rich-color-split { --selected-color: #0f7458; display: inline-grid; grid-template-columns: 2.25rem 1.05rem; flex: 0 0 auto; overflow: visible; border: 1px solid transparent; border-radius: .6rem; }
.rich-color-split.is-highlight { --selected-color: #fff1a8; }
.rich-color-split:hover, .rich-color-split:focus-within, .rich-color-split.is-active { border-color: #b8d4c5; background: #edf6f1; }
.rich-color-split.is-mixed { border-color: #9ebcae; background: repeating-linear-gradient(135deg, #fff 0 5px, #edf6f1 5px 10px); }
.rich-text-toolbar button.rich-color-apply { position: relative; display: grid; width: 2.25rem; min-width: 2.25rem; height: 2.25rem; min-height: 2.25rem; grid-template-rows: 1fr .24rem; place-items: center; padding: .24rem .32rem .18rem; overflow: hidden; border: 0; border-radius: .52rem 0 0 .52rem; background: transparent; }
.rich-color-menu { position: static; min-width: 0; --selected-color: #0f7458; }
.rich-color-menu > summary { position: relative; display: grid; width: 1.05rem; height: 2.25rem; place-items: center; padding: 0; overflow: hidden; border: 0; border-left: 1px solid rgba(16, 40, 32, .12); border-radius: 0 .52rem .52rem 0; cursor: pointer; font-size: .55rem; font-weight: 850; list-style: none; }
.rich-color-menu > summary::-webkit-details-marker { display: none; }
.rich-color-menu > summary:hover, .rich-color-menu > summary:focus-visible, .rich-color-menu[open] > summary { background: #deeee5; outline: 2px solid rgba(0, 108, 77, .12); outline-offset: -2px; }
.rich-color-letter { grid-row: 1; align-self: end; line-height: 1; }
.rich-color-current { display: block; width: 1.45rem; height: .2rem; grid-row: 2; align-self: start; border: 0; border-radius: 999px; background: var(--selected-color); box-shadow: none; }
.rich-color-split.is-mixed .rich-color-current { background: linear-gradient(90deg, var(--selected-color) 0 46%, #fff 46% 56%, #8ca096 56% 100%) !important; }
.rich-color-menu > .rich-color-popover { position: fixed; z-index: 600; top: var(--rich-color-top, 4rem); left: var(--rich-color-left, 1rem); display: grid; box-sizing: border-box; width: var(--rich-color-width, 15.25rem); max-width: calc(100vw - 1rem); gap: .55rem; padding: .75rem; border: 1px solid #afc8ba; border-radius: .85rem; background: #fff; box-shadow: 0 16px 38px rgba(16, 40, 32, .18); }
.rich-color-popover > strong { color: var(--ink); font-size: .7rem; }
.rich-color-palette { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: .24rem; min-width: 0; }
.rich-color-swatch { position: relative; display: grid; width: 100%; min-width: 0; max-width: 1.65rem; height: auto; aspect-ratio: 1; place-items: center; padding: 0; border: 1px solid rgba(16, 40, 32, .2); border-radius: .28rem; background: var(--swatch); cursor: pointer; }
.rich-color-swatch.is-none { background: linear-gradient(135deg, transparent 46%, #b42318 47%, #b42318 53%, transparent 54%), #fff; }
.rich-color-swatch.is-selected::after { display: grid; width: .9rem; height: .9rem; place-items: center; border-radius: 999px; background: #fff; color: var(--ink); box-shadow: 0 1px 4px rgba(16, 40, 32, .28); content: "✓"; font-size: .62rem; font-weight: 900; }
.rich-color-swatch:hover, .rich-color-swatch:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.rich-color-custom { position: relative; display: flex; min-height: 2.2rem; align-items: center; justify-content: space-between; padding: .45rem .6rem; overflow: hidden; border: 1px solid var(--line); border-radius: .55rem; background: #f7faf8; color: var(--green-dark); cursor: pointer; font-size: .68rem; font-weight: 760; }
.rich-color-custom::after { width: 1.2rem; height: 1.2rem; border: 1px solid #9eb8aa; border-radius: .3rem; background: conic-gradient(#e5534b, #f2ca52, #56b870, #4f8fd8, #9a64cf, #e5534b); content: ""; }
.rich-color-custom:hover, .rich-color-custom:focus-within { border-color: var(--green); outline: 2px solid rgba(0, 108, 77, .12); }
.rich-color-custom input { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; opacity: 0; cursor: pointer; }
.rich-color-highlight { padding: 0 .18rem; border-radius: .12rem; background: linear-gradient(transparent 58%, var(--selected-color) 58%); }
.file-picker[data-file-dropzone].is-dragover { border-color: var(--green); background: #e7f6ed; box-shadow: 0 0 0 4px rgba(15, 116, 88, .1); }
.material-topic-list > span, .metadata-overflow span { overflow-wrap: anywhere; }
.metadata-overflow { display: inline-block; }
.metadata-overflow > summary, .metadata-list-overflow > summary { cursor: pointer; color: var(--green-dark); font-size: .72rem; font-weight: 780; list-style: none; }
.metadata-overflow > summary::-webkit-details-marker, .metadata-list-overflow > summary::-webkit-details-marker { display: none; }
.metadata-overflow > summary { padding: .42rem .7rem; border: 1px solid #b7d0c2; border-radius: 999px; background: #fff; }
.metadata-overflow[open] { display: block; width: 100%; }
.metadata-overflow > div { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.metadata-overflow > div > span { padding: .42rem .65rem; border-radius: 999px; background: #e4f1e9; color: var(--green-dark); font-size: .68rem; font-weight: 760; }
.metadata-list-overflow { margin-top: .65rem; padding-top: .65rem; border-top: 1px solid var(--line); }
.metadata-list-overflow > ul { margin-top: .65rem; }
.dashboard-exam-list > a.is-urgent { border-left: 4px solid #b56d00; background: #fff9ec; }
.dashboard-exam-list > a.is-action { border-left: 4px solid var(--green); background: #f2f9f5; }
.dashboard-action-count { display: grid; min-width: 3.2rem; place-items: center; padding: .4rem; border-radius: .7rem; background: #dfeee6; color: var(--green-dark); }
.dashboard-action-count strong { font-size: 1.15rem; line-height: 1; }
.dashboard-action-count small { font-size: .58rem; }
.import-preview-attempt { display: grid; gap: 1.25rem; }
.import-preview-draft-warning { display: grid; gap: .2rem; border-color: #e3b45d; background: #fff7df; color: #654600; }
.import-preview-feedback { margin: 0; padding: .8rem 1rem; border-radius: .7rem; font-weight: 700; }
.import-preview-feedback.is-success { background: #e6f5eb; color: #11613d; }
.import-preview-feedback.is-error { background: #fff0ee; color: #9f2d26; }
.import-preview-feedback.is-info { background: #edf3f0; color: var(--ink); }
.rich-formula-structures { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.rich-formula-structures > span { margin-right: .2rem; color: var(--muted); font-size: .7rem; font-weight: 750; }
.rich-formula-structures button, .rich-formula-element > button { display: inline-flex; min-height: 2.35rem; align-items: center; gap: .45rem; padding: .35rem .65rem; border: 1px solid var(--line); border-radius: .6rem; background: #fff; color: var(--green-dark); font: inherit; font-size: .72rem; font-weight: 750; cursor: pointer; }
.rich-mini-fraction { display: grid; width: 1rem; line-height: .68rem; text-align: center; }
.rich-mini-fraction i:first-child { border-bottom: 1px solid currentColor; }
.rich-mini-fraction i { font-style: normal; }
.rich-formula-elements { display: grid; gap: .5rem; }
.rich-formula-element { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .65rem; border: 1px solid #c9d9d1; border-radius: .7rem; background: #fff; }
.rich-formula-element-label { color: var(--green-dark); font-size: .7rem; font-weight: 850; }
.rich-formula-element > button { width: 2.25rem; justify-content: center; padding: 0; color: #9c2d2d; }
.rich-fraction-fields { display: grid; grid-template-rows: auto 1px auto; gap: .2rem; max-width: 22rem; }
.rich-fraction-fields label { grid-template-columns: 4rem minmax(0, 1fr); align-items: center; }
.rich-fraction-line { margin-left: 4.35rem; background: var(--ink); }
.rich-sum-fields { display: grid; grid-template-columns: minmax(5rem, .7fr) 2.8rem minmax(5rem, .7fr) minmax(8rem, 1.6fr); align-items: end; gap: .45rem; }
.rich-sum-symbol { align-self: center; color: var(--ink); font: 700 2.4rem/1 Georgia, serif; text-align: center; }
.rich-formula-preview, .rich-content-formula { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
.rich-math-fraction { display: inline-grid; min-width: 3rem; grid-template-rows: auto auto; text-align: center; vertical-align: middle; }
.rich-math-fraction > span:first-child { padding: 0 .3rem .12rem; border-bottom: 2px solid currentColor; }
.rich-math-fraction > span:last-child { padding: .12rem .3rem 0; }
.rich-math-sum { position: relative; display: inline-grid; grid-template-columns: 2.6rem auto; grid-template-rows: .75rem 2rem .75rem; align-items: center; min-width: 5rem; vertical-align: middle; }
.rich-math-sum b { grid-column: 1; grid-row: 2; font: 700 2.4rem/1 Georgia, serif; text-align: center; }
.rich-math-sum-upper { grid-column: 1; grid-row: 1; font-size: .65rem; text-align: center; }
.rich-math-sum-lower { grid-column: 1; grid-row: 3; font-size: .65rem; text-align: center; }
.rich-math-sum > span:last-child { grid-column: 2; grid-row: 2; padding-left: .25rem; }
.rich-image-open { display: flex; width: min(100%, 28rem); min-height: 2.75rem; align-items: center; justify-content: space-between; }
.rich-editor-block.is-image .rich-editor-block-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .68fr); align-items: start; gap: .65rem; }
.rich-editor-block.is-image .rich-editor-field-row { grid-column: 1 / -1; }
.rich-editor-block.is-image .rich-image-settings { grid-column: 1; }
.rich-editor-block.is-image .rich-image-editor-preview { grid-column: 2; grid-row: 2 / span 2; }
.rich-editor-block.is-image .rich-editor-wide-field { grid-column: 1; }
.rich-image-settings { gap: .5rem; padding: .55rem .65rem; }
.rich-image-settings .input, .rich-image-editor-source .input { min-height: 2.55rem; }
.rich-image-editor-preview { min-height: 0; padding: .55rem; }
.rich-image-editor-preview:has(> span) { min-height: 4.5rem; }
.rich-image-editor-preview img { max-height: 170px; }
.rich-image-library-dialog { width: min(60rem, calc(100vw - 2rem)); }
.rich-image-library-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.rich-image-library-item { display: grid; min-width: 0; grid-template-rows: 8rem auto; gap: .45rem; padding: .5rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.rich-image-library-item:hover, .rich-image-library-item:focus-visible { border-color: var(--green); outline: 3px solid rgba(15, 116, 88, .12); }
.rich-image-library-item > img, .rich-image-library-placeholder { width: 100%; height: 8rem; border-radius: .5rem; background: var(--surface-soft); object-fit: cover; }
.rich-image-library-placeholder { display: grid; place-items: center; color: var(--green-dark); font-size: .72rem; font-weight: 900; }
.rich-image-library-item > span:last-child { display: grid; min-width: 0; }
.rich-image-library-item strong, .rich-image-library-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rich-image-library-item strong { font-size: .72rem; }
.rich-image-library-item small { color: var(--muted); font-size: .62rem; }
.rich-content-formula-steps { display: grid; gap: .35rem; margin: .7rem 0; padding-left: 1.5rem; }
.rich-formula-steps-editor { display: grid; gap: .55rem; padding: .7rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; }
.rich-formula-steps-editor > header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.rich-formula-steps-editor > header > div { display: grid; gap: .1rem; }
.rich-formula-steps-editor > header small { color: var(--muted); font-size: .68rem; font-weight: 500; }
.rich-formula-steps-editor > header button { min-height: 2.25rem; padding: .35rem .65rem; border: 1px solid var(--line-strong); border-radius: .55rem; background: #fff; color: var(--green-dark); font: inherit; font-size: .7rem; font-weight: 780; cursor: pointer; }
.rich-formula-steps-editor ol { display: grid; gap: .45rem; margin: 0; padding-left: 2rem; counter-reset: calculation-step; }
.rich-formula-steps-editor li { display: grid; grid-template-columns: minmax(0, 1fr) 2.35rem; align-items: center; gap: .4rem; counter-increment: calculation-step; }
.rich-formula-steps-editor li::marker { color: var(--green-dark); font-weight: 800; }
.rich-formula-steps-editor li > button { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid #e7c4c4; border-radius: .55rem; background: #fff7f7; color: #9c2d2d; font: inherit; cursor: pointer; }
.rich-content-source-link { display: inline-flex; gap: .3rem; margin-top: .65rem; color: var(--green-dark); font-size: .75rem; font-weight: 800; }

.rich-empty-block-dialog { border-color: #d4a62d; box-shadow: 0 25px 80px rgba(76, 52, 7, .24), inset 0 4px 0 #e0ad31; }
.rich-empty-block-dialog .eyebrow { color: #855900; }
.rich-empty-block-dialog ul { display: grid; gap: .35rem; max-height: 13rem; margin: .9rem 0 0; padding: .75rem .75rem .75rem 1.8rem; overflow: auto; border-radius: .7rem; background: #fff8e6; color: #5f4710; font-size: .72rem; }

.exam-task-card.is-selected .exam-task-facts { grid-column: 1 / -1; justify-content: flex-start; padding-left: 41px; }

@media (max-width: 760px) {
  .rich-editor-heading { gap: .7rem; }
  .rich-editor-commandbar { align-items: stretch; flex-direction: column; }
  .rich-editor-document-tools { justify-content: space-between; }
  .rich-editor-history button > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .rich-editor-history button { width: 2.4rem; padding: 0; justify-content: center; }
  .rich-text-toolbar { position: static; width: 100%; margin: 0; overflow: visible; flex-wrap: wrap; justify-content: flex-start; row-gap: .2rem; }
  .rich-toolbar-select { flex: 1 1 100%; }
  .rich-toolbar-select select { width: 100%; min-width: 0; }
  .rich-toolbar-divider { display: none; }
  .rich-toolbar-group { flex-wrap: wrap; }
  .exam-task-card.is-selected .exam-task-facts { padding-left: 0; }
}

.exam-task-settings {
  grid-column: 1 / -1;
  justify-content: start;
  padding-left: 41px;
}

/* Refined block tools and formula composer */
html.has-open-modal,
html.has-open-modal body { overflow: hidden; overscroll-behavior: none; }

.rich-text-toolbar button.is-active,
.rich-text-toolbar button[aria-pressed="true"] {
  border-color: #7fb39a;
  background: #dff1e7;
  color: var(--green-dark);
  box-shadow: inset 0 0 0 1px rgba(15, 116, 88, .08);
}
.rich-text-toolbar button.is-mixed,
.rich-text-toolbar button[aria-pressed="mixed"] {
  border-color: #9ab8a8;
  background: linear-gradient(135deg, #dff1e7 0 50%, #fff 50% 100%);
  color: var(--green-dark);
  box-shadow: inset 0 0 0 1px rgba(15, 116, 88, .08);
}

/* Word-like compact colour palettes. Attribute selectors deliberately provide
   the visible colour without relying on inline custom properties. */
.rich-text-toolbar button.rich-color-swatch { width: 100%; min-width: 0; max-width: 1.65rem; height: auto; min-height: 0; aspect-ratio: 1; padding: 0; border-color: rgba(16, 40, 32, .26); }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#102820"] { background: #102820; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#0f7458"] { background: #0f7458; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#1f4e79"] { background: #1f4e79; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#6f42c1"] { background: #6f42c1; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#b42318"] { background: #b42318; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#9a6700"] { background: #9a6700; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#4b5563"] { background: #4b5563; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#000000"] { background: #000; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#fff1a8"] { background: #fff1a8; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#dff3e8"] { background: #dff3e8; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#dceeff"] { background: #dceeff; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#f1e5f5"] { background: #f1e5f5; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#ffe1dc"] { background: #ffe1dc; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#ffe8bd"] { background: #ffe8bd; }
.rich-text-toolbar button.rich-color-swatch[data-rich-color-value="#e5e7eb"] { background: #e5e7eb; }
.rich-text-toolbar button.rich-color-swatch.is-none { background: linear-gradient(135deg, transparent 46%, #b42318 47%, #b42318 53%, transparent 54%), #fff; }
.rich-formula-editor { gap: 1rem; padding: 0; overflow: hidden; border-color: #b8cbbf; background: #fff; }
.rich-formula-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--line); background: #f2f7f4; }
.rich-formula-heading > div { display: grid; gap: .2rem; }
.rich-formula-heading strong { font-size: .85rem; }
.rich-formula-heading small { max-width: 37rem; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.rich-formula-heading > span { padding: .32rem .55rem; border-radius: 999px; background: #fff; color: var(--green-dark); font-size: .64rem; font-weight: 800; white-space: nowrap; }
.rich-formula-palette { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; padding: 0 1rem; }
.rich-formula-palette button { display: grid; min-height: 3.2rem; grid-template-columns: 2.1rem minmax(0, 1fr); place-items: center start; gap: .55rem; padding: .5rem .7rem; border: 1px solid #b9cdc2; border-radius: .7rem; background: #f8fbf9; color: var(--ink); font: inherit; cursor: pointer; }
.rich-formula-palette button:hover, .rich-formula-palette button:focus-visible { border-color: var(--green); background: #eaf5ef; outline: 3px solid rgba(15, 116, 88, .1); }
.rich-formula-palette button > span { display: grid; min-height: 1.8rem; place-items: center; color: var(--green-dark); font: 750 1.25rem/1 Georgia, serif; }
.rich-formula-palette button strong { font-size: .72rem; }
.rich-formula-symbols { align-items: center; padding: .65rem 1rem; border-block: 1px solid #e1e8e4; background: #fafcfb; }
.rich-formula-symbols > span { margin-right: .25rem; color: var(--muted); font-size: .63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.rich-formula-symbols button { min-width: 2rem; height: 2rem; border-radius: .45rem; font-size: .88rem; }
.rich-formula-canvas { display: grid; gap: .35rem; padding: 0 1rem; }
.rich-formula-canvas > span { color: var(--muted); font-size: .63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.rich-formula-preview { min-height: 5.5rem; justify-content: flex-start; gap: .45rem; padding: 1rem 1.2rem; border: 1px solid #aac3b5; border-left: 4px solid var(--green); border-radius: .7rem; background: #fbfdfc; font-family: Georgia, serif; font-size: clamp(1.2rem, 2.6vw, 1.65rem); }
.rich-formula-sequence { display: flex; align-items: stretch; gap: .6rem; padding: .2rem 1rem .4rem; overflow-x: auto; scroll-snap-type: x proximity; }
.rich-formula-sequence:empty::before { display: block; width: 100%; padding: 1.1rem; border: 1px dashed #b8cbbf; border-radius: .7rem; color: var(--muted); content: "Noch keine Bausteine. Starte mit Text, Bruch oder Summe."; font-size: .7rem; text-align: center; }
.rich-formula-element { position: relative; display: grid; flex: 0 0 min(22rem, 82vw); grid-template-columns: minmax(0, 1fr) auto; align-content: start; gap: .55rem; padding: .7rem; border: 1px solid #c8d6ce; border-radius: .75rem; background: #fff; scroll-snap-align: start; cursor: grab; }
.rich-formula-element.is-text { flex-basis: min(13rem, 72vw); }
.rich-formula-element.is-fraction { flex-basis: min(18rem, 78vw); }
.rich-formula-element.is-sum { flex-basis: min(27rem, 86vw); }
.rich-formula-element.is-selected { border-color: var(--green); box-shadow: 0 0 0 3px rgba(15, 116, 88, .1); }
.rich-formula-element.is-dragging { opacity: .5; }
.rich-formula-element-label { align-self: center; font-size: .68rem; }
.rich-formula-element-actions { display: flex; gap: .2rem; }
.rich-formula-element-actions button { display: grid; width: 2rem; height: 2rem; place-items: center; padding: 0; border: 0; border-radius: .45rem; background: #f0f5f2; color: var(--green-dark); font: inherit; cursor: pointer; }
.rich-formula-element-actions button:hover:not(:disabled), .rich-formula-element-actions button:focus-visible { background: #dfeee6; outline: 2px solid rgba(15, 116, 88, .12); }
.rich-formula-element-actions button:last-child { color: var(--danger); }
.rich-formula-element-actions button:disabled { opacity: .32; cursor: default; }
.rich-formula-element > .rich-formula-text-field,
.rich-formula-element > .rich-fraction-fields,
.rich-formula-element > .rich-sum-fields { grid-column: 1 / -1; }
.rich-formula-text-field { display: grid; gap: .25rem; }
.rich-formula-text-field > span { color: var(--muted); font-size: .61rem; font-weight: 750; }
.rich-fraction-fields { max-width: none; }
.rich-sum-fields { grid-template-columns: minmax(4.5rem, .8fr) 2.6rem minmax(4.5rem, .8fr) minmax(6.5rem, 1.25fr); }
.rich-formula-element,
.rich-sum-fields > *,
.rich-sum-fields input { min-width: 0; }
.rich-sum-fields input { width: 100%; }
.rich-sum-expression { min-width: 0; overflow: hidden; }
.rich-math-sum { grid-template-rows: minmax(1rem, auto) 3.2rem minmax(1rem, auto); row-gap: .18rem; }
.rich-math-sum b { align-self: center; font-size: 2.3rem; line-height: 1; }
.rich-math-sum-upper,
.rich-math-sum-lower { align-self: center; line-height: 1.1; }
.rich-math-sum > span:last-child { align-self: center; }
.rich-formula-editor > label:last-of-type { margin: 0 1rem 1rem; }

.rich-editor-block.is-table { overflow: visible; }
.rich-editor-block.is-table > .rich-editor-block-heading { border-radius: .95rem .95rem 0 0; }
.rich-editor-block.is-table > .rich-editor-block-body { border-radius: 0 0 .95rem .95rem; background: var(--surface); }
.rich-editor-field-row > .rich-editor-check { align-self: end; }
.rich-table-toolbar { position: relative; z-index: 3; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; padding: .65rem .75rem; overflow: visible; border: 1px solid #b9c9c0; border-radius: .75rem .75rem 0 0; background: #f4f8f5; }
.rich-table-selection { display: grid; min-width: 5.5rem; align-content: center; gap: .08rem; padding-right: .75rem; border-right: 1px solid var(--line); }
.rich-table-selection small { color: var(--muted); font-size: .56rem; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.rich-table-selection strong { color: var(--green-dark); font-size: .72rem; }
.rich-table-properties { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.rich-table-properties label { display: grid; gap: .15rem; color: var(--muted); font-size: .59rem; font-weight: 750; }
.rich-table-toolbar select { min-width: 7.4rem; }
.rich-table-actions-menu { position: relative; align-self: center; }
.rich-table-actions-menu[open] { z-index: 20; }
.rich-table-actions-menu > summary { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid #b8c9bf; border-radius: .55rem; background: #fff; color: var(--green-dark); cursor: pointer; font-weight: 900; letter-spacing: .08em; list-style: none; }
.rich-table-actions-menu > summary::-webkit-details-marker { display: none; }
.rich-table-actions-menu[open] > summary { border-color: var(--green); background: #e8f3ed; }
.rich-table-actions-menu > div { position: absolute; z-index: 14; top: calc(100% + .35rem); right: 0; display: grid; width: 13rem; gap: .15rem; padding: .45rem; border: 1px solid #b9c9c0; border-radius: .7rem; background: #fff; box-shadow: 0 14px 34px rgba(8, 44, 33, .18); }
.rich-table-actions-menu.opens-up > div { top: auto; bottom: calc(100% + .35rem); }
.rich-table-actions-menu > div > span { padding: .35rem .45rem .2rem; color: var(--muted); font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.rich-table-actions-menu > div button { justify-content: flex-start; width: 100%; border-color: transparent; text-align: left; }
.rich-table-actions-menu > div button.is-danger { margin: 0; color: var(--danger); }
.rich-table-actions-menu hr { width: 100%; height: 1px; margin: .25rem 0; border: 0; background: var(--line); }
.rich-table-editor-grid { position: relative; z-index: 1; border-radius: 0 0 .75rem .75rem; border-top: 0; }
.rich-table-footer { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: .6rem; }
.rich-table-footer .rich-table-help { margin: 0; }
.rich-table-footer .rich-editor-inline-actions { flex: 0 0 auto; }

.rich-editor-block.is-image .rich-editor-block-body { display: block; }
.rich-image-workspace { display: grid; grid-template-columns: 1fr; align-items: start; gap: 1rem; }
.rich-image-editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.rich-image-editor-source > span,
.rich-image-field > span { color: var(--ink); font-size: .7rem; font-weight: 650; }
.rich-image-field { display: grid; gap: .3rem; }
.rich-editor-block.is-image .input { font-size: .78rem; font-weight: 500; }
.rich-image-open { min-height: 2.7rem; font-weight: 650; }
.rich-image-settings { position: relative; width: min(100%, 34rem); grid-template-columns: repeat(3, minmax(0, 1fr)); justify-self: center; gap: .5rem; padding: 1rem .65rem .6rem; border-color: #d4ded8; background: #fafcfb; }
.rich-image-settings legend { position: absolute; top: -.48rem; left: 50%; padding: 0 .38rem; background: #fff; color: var(--muted); font-size: .59rem; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; transform: translateX(-50%); }
.rich-image-settings label { gap: .22rem; font-size: .65rem; font-weight: 650; }
.rich-image-dropzone { display: grid; min-height: 18rem; place-items: center; gap: .75rem; padding: 1rem; border: 1px dashed #9ebbad; border-radius: .9rem; background: #f7fbf8; text-align: center; transition: border-color .15s, background .15s, box-shadow .15s; }
.rich-image-dropzone.is-dragover { border-color: var(--green); background: #e9f5ee; box-shadow: 0 0 0 4px rgba(15, 116, 88, .1); }
.rich-image-editor-preview { width: 100%; min-height: 11.5rem; padding: .65rem; border: 0; background: transparent; }
.rich-image-editor-preview:has(> span) { min-height: 11.5rem; }
.rich-image-editor-preview img { max-height: 17rem; }
.rich-image-source-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.rich-image-selected { max-width: 100%; overflow: hidden; color: var(--ink); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.rich-image-dropzone > small { color: var(--muted); font-size: .65rem; }

.organization-course-card { position: relative; overflow: visible; }
.organization-course-card.has-course-menu .organization-course-main { padding-right: 4.5rem; }
.organization-course-card.has-course-menu .organization-course-main > b { margin-right: .15rem; }
.organization-course-menu { position: absolute; z-index: 5; top: 50%; right: .85rem; transform: translateY(-50%); }
.organization-course-menu > summary { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; border: 1px solid #b6c8be; border-radius: .65rem; background: #fff; color: var(--green-dark); cursor: pointer; list-style: none; box-shadow: 0 2px 8px rgba(12, 50, 38, .06); }
.organization-course-menu > summary::-webkit-details-marker { display: none; }
.organization-course-menu > summary .ui-icon { width: 1.1rem; height: 1.1rem; }
.organization-course-menu[open] > summary { border-color: var(--green); background: #eaf4ee; }
.organization-course-menu > div { position: absolute; top: calc(100% + .35rem); right: 0; display: flex; gap: .3rem; padding: .4rem; border: 1px solid #b9c9c0; border-radius: .7rem; background: #fff; box-shadow: 0 14px 34px rgba(8, 44, 33, .18); }
.organization-course-menu a,
.organization-course-menu button { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; padding: 0; border: 0; border-radius: .5rem; background: #f0f5f2; color: var(--green-dark); cursor: pointer; }
.organization-course-menu button { color: var(--danger); }
.organization-course-menu a:hover,
.organization-course-menu button:hover { background: #e1eee7; text-decoration: none; }
.organization-course-menu .ui-icon { width: 1.05rem; height: 1.05rem; }

@media (max-width: 760px) {
  .rich-formula-heading, .rich-table-footer { align-items: stretch; flex-direction: column; }
  .rich-formula-heading > span { align-self: flex-start; }
  .rich-formula-palette { grid-template-columns: 1fr; }
  .rich-formula-sequence { padding-inline: .75rem; }
  .rich-formula-element { flex-basis: min(19rem, 88vw); }
  .rich-sum-fields { grid-template-columns: minmax(4.5rem, 1fr) 2.2rem minmax(4.5rem, 1fr); }
  .rich-sum-expression { grid-column: 1 / -1; }
  .rich-table-toolbar { grid-template-columns: 1fr auto; }
  .rich-table-selection { grid-column: 1; border-right: 0; }
  .rich-table-properties { grid-column: 1 / -1; grid-row: 2; }
  .rich-table-actions-menu { grid-column: 2; grid-row: 1; }
  .rich-table-footer .rich-editor-inline-actions { align-self: flex-start; }
  .rich-image-editor-preview { min-height: 8rem; }
  .rich-image-editor-preview:has(> span) { min-height: 8rem; }
  .rich-image-settings { grid-template-columns: 1fr; }
  .rich-image-editor-fields { grid-template-columns: 1fr; }
  .rich-image-dropzone { min-height: 14rem; }
}

@media (max-width: 900px) {
  .exam-player {
    grid-template-columns: 1fr;
  }

  .exam-player-sidebar {
    position: static;
  }

  .exam-question-navigation {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .exam-question-navigation button {
    min-width: 12rem;
    scroll-snap-align: start;
  }

  .exam-player-legend { display: none; }
}

@media (max-width: 620px) {
  .exam-player-question {
    padding: 1rem;
    border-radius: 1rem;
  }

  .exam-player-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .exam-player-actions > span {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .exam-player-actions .button {
    width: 100%;
  }

  .exam-task-facts {
    justify-content: flex-start;
    padding-left: 41px;
  }
}

@media (max-width: 620px) {
  .exam-task-facts,
  .exam-task-settings {
    padding-left: 0;
  }

  .exam-task-facts {
    grid-column: 1;
  }

  .exam-task-fact {
    max-width: 100%;
    white-space: normal;
  }
}

/* Search workspace */
.search-page { padding-top: clamp(34px, 5vw, 72px); }
.search-hero { display: grid; grid-template-columns: 1fr; align-items: start; gap: clamp(16px, 2.2vw, 24px); margin-bottom: clamp(24px, 3vw, 38px); padding: clamp(28px, 5vw, 58px); border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(135deg, #f1f8f4 0%, #fff 62%); box-shadow: 0 22px 55px rgba(8, 63, 47, .07); }
.search-hero > div { max-width: 54rem; }
.search-hero h1 { max-width: 18ch; margin: 7px 0 10px; font-size: clamp(2.45rem, 4.6vw, 4.45rem); line-height: .98; text-wrap: balance; }
.search-hero .lead { max-width: 700px; margin: 0; }
.search-command { width: 100%; }
.search-command { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px; border: 1px solid #a8c6b7; border-radius: 17px; background: #fff; box-shadow: 0 16px 36px rgba(8, 63, 47, .11); }
.search-command:focus-within { border-color: var(--green); box-shadow: 0 0 0 4px rgba(0, 108, 77, .12), 0 16px 36px rgba(8, 63, 47, .11); }
.search-command-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--surface-soft); color: var(--green-dark); font-size: 1.5rem; }
.search-command input { min-width: 0; min-height: 48px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 1rem; }
.search-command input::placeholder { color: #708079; }
.search-command .button { min-height: 48px; }
.search-advanced { width: 100%; margin: 0; padding: 0; overflow: hidden; border-radius: 14px; background: rgba(255,255,255,.78); box-shadow: none; }
.search-advanced.is-presearch { width: 100%; max-width: 100%; margin: 0; border-radius: 13px; box-shadow: none; }
.search-advanced.is-presearch > summary { min-width: 0; padding: 10px 14px; }
.search-advanced.is-presearch > summary small { display: none; }
.search-advanced.is-presearch[open] { width: 100%; margin-left: 0; }
.search-advanced.is-presearch[open] > summary small { display: block; }
.search-advanced > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 20px; cursor: pointer; list-style: none; }
.search-advanced > summary::-webkit-details-marker { display: none; }
.search-advanced > summary:hover { background: var(--surface-soft); }
.search-advanced > summary > span:first-child { display: grid; gap: 2px; }
.search-advanced > summary strong { font-size: .82rem; }
.search-advanced > summary small { color: var(--muted); font-size: .7rem; }
.search-advanced > summary > span:last-child { transition: transform .18s ease; }
.search-advanced[open] > summary > span:last-child { transform: rotate(180deg); }
.search-filter-form { padding: 20px; border-top: 1px solid var(--line); background: #fbfcfb; }
.search-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.search-filter-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.search-result-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 0 22px; }
.search-result-heading h2 { margin: 4px 0 0; font-size: clamp(1.8rem, 3.2vw, 3rem); }
.search-result-heading > a { color: var(--green-dark); font-size: .76rem; font-weight: 750; }
.search-results-layout { display: grid; grid-template-columns: 215px minmax(0, 1fr); align-items: start; gap: 26px; }
.search-type-nav { position: sticky; top: 92px; display: grid; gap: 5px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.search-type-nav > strong { padding: 5px 8px 10px; color: var(--muted); font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; }
.search-type-nav a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 9px; border-radius: 9px; color: var(--ink); font-size: .73rem; font-weight: 730; text-decoration: none; }
.search-type-nav a:hover, .search-type-nav a:focus-visible { background: var(--surface-soft); color: var(--green-dark); outline: 2px solid rgba(0, 108, 77, .12); }
.search-type-nav b { display: grid; min-width: 25px; height: 25px; place-items: center; border-radius: 8px; background: #e5f1e9; color: var(--green-dark); font-size: .62rem; }
.search-result-groups { display: grid; gap: 34px; min-width: 0; }
.search-result-group { scroll-margin-top: 100px; }
.search-result-group > header { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.search-result-group > header h2, .search-result-group > header p { margin: 0; }
.search-result-group > header h2 { font-size: 1.25rem; }
.search-result-group > header p { color: var(--muted); font-size: .67rem; }
.search-kind-icon, .search-result-card-icon { display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; background: #e4f1e9; color: var(--green-dark); font-weight: 850; }
.search-kind-icon { width: 40px; height: 40px; }
.search-result-list { display: grid; gap: 9px; }
.search-result-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; align-items: center; gap: 14px; min-width: 0; padding: 15px 16px; border: 1px solid var(--line); border-radius: 15px; background: #fff; color: inherit; text-decoration: none; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.search-result-card:hover, .search-result-card:focus-visible { transform: translateY(-2px); border-color: #86b49d; box-shadow: 0 13px 28px rgba(8, 63, 47, .08); outline: none; }
.search-result-card-icon { width: 42px; height: 42px; }
.search-result-card-body { display: grid; min-width: 0; gap: 4px; }
.search-result-card-body > strong { overflow: hidden; font: 700 1.08rem Georgia, serif; text-overflow: ellipsis; white-space: nowrap; }
.search-result-card-body p { margin: 0; overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.search-result-card-meta { display: flex; flex-wrap: wrap; gap: 7px 12px; color: var(--green-dark); font-size: .6rem; font-weight: 760; text-transform: uppercase; letter-spacing: .045em; }
.search-result-card-meta time { color: var(--muted); font-weight: 600; text-transform: none; letter-spacing: 0; }
.search-result-arrow { color: var(--green-dark); font-size: 1.15rem; transition: transform .16s ease; }
.search-result-card:hover .search-result-arrow { transform: translateX(3px); }
.search-empty { display: flex; align-items: center; gap: 20px; padding: clamp(22px, 4vw, 38px); }
.search-empty h2, .search-empty p { margin: 0; }
.search-empty p { margin-top: 4px; color: var(--muted); }
.search-empty .button { margin-left: auto; }
.search-empty-icon { display: grid; width: 56px; height: 56px; place-items: center; flex: 0 0 auto; border-radius: 16px; background: var(--surface-soft); color: var(--green-dark); font-size: 1.7rem; }
.search-start { display: grid; grid-template-columns: minmax(230px, .65fr) minmax(0, 1.35fr); gap: 35px; padding: 0 0 10px; }
.search-start h2 { margin: 6px 0; }
.search-start p { margin: 0; color: var(--muted); }
.search-start-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.search-start-grid a { display: grid; align-content: start; gap: 7px; min-height: 170px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: inherit; text-decoration: none; }
.search-start-grid a:hover, .search-start-grid a:focus-visible { border-color: var(--green); box-shadow: 0 12px 25px rgba(8, 63, 47, .07); outline: none; }
.search-start-grid a > span { display: grid; width: 38px; height: 38px; margin-bottom: 12px; place-items: center; border-radius: 10px; background: #e4f1e9; color: var(--green-dark); font-weight: 850; }
.search-start-grid small { color: var(--muted); line-height: 1.5; }

/* Legal information */
.legal-page { padding-top: clamp(35px, 6vw, 80px); }
.legal-layout { max-width: 1120px; }
.legal-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 30px; margin-bottom: 26px; }
.legal-hero h1 { margin: 5px 0 10px; font-size: clamp(3.2rem, 7vw, 6.4rem); line-height: .9; }
.legal-hero .lead { max-width: 660px; margin: 0; }
.legal-contact-card { display: flex; align-items: center; gap: 13px; min-width: 270px; padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow-small); }
.legal-contact-mark { display: grid; width: 48px; height: 48px; place-items: center; flex: 0 0 auto; border-radius: 14px; background: var(--green-dark); color: #fff; font: 700 1.35rem Georgia, serif; }
.legal-contact-card div { display: grid; gap: 2px; }
.legal-contact-card small { color: var(--muted); font-size: .61rem; text-transform: uppercase; letter-spacing: .08em; }
.legal-contact-card a { color: var(--green-dark); font-size: .72rem; font-weight: 720; }
.legal-summary-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface-soft); overflow: hidden; }
.legal-summary-strip > div { display: flex; align-items: center; gap: 13px; padding: 16px 18px; }
.legal-summary-strip > div + div { border-left: 1px solid var(--line); }
.legal-summary-strip span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; background: #fff; color: var(--green-dark); font-size: .62rem; font-weight: 850; }
.legal-summary-strip p { display: grid; gap: 2px; margin: 0; }
.legal-summary-strip strong { font-size: .72rem; }
.legal-summary-strip small { color: var(--muted); font-size: .64rem; }
.legal-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.legal-card { display: grid; align-content: start; gap: 20px; min-height: 255px; padding: 23px; }
.legal-card-primary { background: linear-gradient(145deg, #f0f7f2, #fff); }
.legal-card-heading { display: flex; align-items: center; gap: 12px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.legal-card-heading > span { display: grid; width: 35px; height: 35px; place-items: center; flex: 0 0 auto; border-radius: 10px; background: var(--green-dark); color: #fff; font-size: .62rem; font-weight: 850; }
.legal-card-heading small { color: var(--green-dark); font-size: .58rem; font-weight: 790; text-transform: uppercase; letter-spacing: .08em; }
.legal-card-heading h2 { margin: 2px 0 0; font-size: 1.25rem; }
.legal-address { display: grid; gap: 5px; font-style: normal; }
.legal-address strong { margin-bottom: 4px; font: 700 1.2rem Georgia, serif; }
.legal-card > p { margin: 0; line-height: 1.7; }
.legal-definition-list { display: grid; gap: 0; margin: 0; }
.legal-definition-list > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.legal-definition-list > div:last-child { border-bottom: 0; }
.legal-definition-list dt { color: var(--muted); font-size: .69rem; }
.legal-definition-list dd { margin: 0; font-size: .75rem; font-weight: 720; }
.legal-definition-list a { color: var(--green-dark); }
.legal-dispute-note { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 14px; margin-top: 16px; padding: 20px 22px; border-radius: 16px; background: #102d25; color: #fff; }
.legal-dispute-note > span { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; font: italic 700 1rem Georgia, serif; }
.legal-dispute-note h2 { margin: 0 0 5px; color: #fff; font-size: 1rem; }
.legal-dispute-note p { margin: 0; color: #d9e7e1; font-size: .72rem; line-height: 1.65; }
.exercise-updated { display: flex; align-items: center; gap: 7px; margin-top: 12px; color: var(--muted); font-size: .65rem; }
.exercise-updated > span { color: var(--green-dark); font-weight: 850; }

@media (max-width: 980px) {
  .search-hero { grid-template-columns: 1fr; align-items: start; }
  .search-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-start { grid-template-columns: 1fr; }
  .search-results-layout { grid-template-columns: 1fr; }
  .search-type-nav { position: static; display: flex; overflow-x: auto; }
  .search-type-nav > strong { display: none; }
  .search-type-nav a { flex: 0 0 auto; }
}

@media (max-width: 720px) {
  .search-hero { padding: 22px; border-radius: 20px; }
  .search-command { grid-template-columns: auto minmax(0, 1fr); }
  .search-command .button { grid-column: 1 / -1; width: 100%; }
  .search-filter-grid, .search-start-grid, .legal-content-grid, .legal-summary-strip { grid-template-columns: 1fr; }
  .cloze-grading-options { grid-template-columns: 1fr; }
  .search-filter-actions, .search-result-heading, .search-empty { align-items: stretch; flex-direction: column; }
  .search-filter-actions .button, .search-empty .button { width: 100%; margin-left: 0; }
  .search-result-card { grid-template-columns: 38px minmax(0, 1fr); }
  .search-result-card-icon { width: 38px; height: 38px; }
  .search-result-arrow { display: none; }
  .search-result-card-body > strong, .search-result-card-body p { white-space: normal; }
  .legal-hero { grid-template-columns: 1fr; align-items: start; }
  .legal-contact-card { min-width: 0; }
  .legal-summary-strip > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .legal-card { min-height: 0; }
  .legal-definition-list > div { grid-template-columns: 1fr; gap: 3px; }
}
/* Guided dashboard, discovery and lightweight trust surfaces */
.dashboard-first-steps { margin: 1rem 0 2rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(135deg, #f3f8f5, #fff); }
.first-step-grid, .dashboard-domain-grid, .directory-grid, .profile-stat-grid { display: grid; gap: 1rem; }
.first-step-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.first-step-card { min-height: 225px; display: flex; flex-direction: column; justify-content: space-between; gap: 1.25rem; padding: 1.35rem; color: inherit; border: 1px solid var(--line); border-radius: 18px; background: #fff; text-decoration: none; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.first-step-card:hover { transform: translateY(-3px); border-color: var(--green); box-shadow: 0 15px 35px rgba(10, 48, 37, .09); }
.first-step-card.primary { color: #fff; background: var(--green); border-color: var(--green); }
.first-step-card strong { display: block; margin-bottom: .4rem; font: 700 1.35rem/1.15 Georgia, "Times New Roman", serif; }
.first-step-card small { line-height: 1.55; opacity: .82; }
.first-step-card.primary small { color: rgba(255,255,255,.84); opacity: 1; }
.first-step-card.primary b { color: #fff; }
.step-number { width: fit-content; padding: .35rem .55rem; border-radius: 8px; background: rgba(15, 116, 88, .1); font-weight: 800; letter-spacing: .08em; }
.first-step-card.primary .step-number { background: rgba(255,255,255,.15); }
.dashboard-domain-grid { grid-template-columns: 1.35fr 1fr; margin: 2rem 0; align-items: start; }
.dashboard-panel-heading p { margin: .35rem 0 0; color: var(--muted); font-size: .92rem; }
.dashboard-panel-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.dashboard-exams-compact { margin-top: 1.25rem; }
.directory-search { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: end; margin-bottom: 1.5rem; }
.directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.directory-card { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: start; color: inherit; text-decoration: none; }
.directory-card h2 { margin: .25rem 0 .5rem; }
.directory-card p { color: var(--muted); }
.public-profile-hero { display: flex; align-items: center; gap: 1.5rem; }
.profile-avatar.large { width: 88px; height: 88px; font-size: 2.2rem; flex: 0 0 auto; }
.profile-stat-grid { grid-template-columns: repeat(3, 1fr); margin: 1rem 0; }
.profile-stat-grid article { display: flex; flex-direction: column; padding: 1.1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.profile-stat-grid strong { font: 700 1.7rem/1 Georgia, "Times New Roman", serif; }
.profile-stat-grid span { margin-top: .45rem; color: var(--muted); }
.achievement-intro { margin: .35rem 0 0; color: var(--muted); }
.achievement-groups { display: grid; gap: 1.6rem; margin-top: 1.35rem; }
.achievement-group { display: block; min-width: 0; }
.achievement-group-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .45rem 1rem; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: .85rem; background: #f7faf8; cursor: pointer; list-style: none; }
.achievement-group-heading::-webkit-details-marker { display: none; }
.achievement-group-title { display: flex; align-items: center; gap: .65rem; color: inherit; }
.achievement-group-title > i { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border-radius: 50%; background: #e4f1eb; color: var(--green); font-style: normal; transition: transform .18s ease; }
.achievement-group[open] .achievement-group-title > i { transform: rotate(180deg); }
.achievement-group[open] .achievement-group-heading { border-color: #a9cabe; background: #eef7f2; }
.achievement-group-heading h3 { margin: 0; font-size: 1.05rem; }
.achievement-group-heading span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.achievement-group-title h3 { color: var(--ink); font-size: 1.05rem; }
.achievement-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr)); gap: .75rem; padding-top: .75rem; }
.achievement-list article { position: relative; display: grid; overflow: hidden; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-items: start; gap: .55rem .9rem; min-height: 7rem; padding: .9rem; border: 1px solid #b9d7cb; border-radius: 16px; background: linear-gradient(145deg, #f4fbf7, #fff); box-shadow: 0 8px 20px rgba(11, 70, 52, .06); }
.achievement-list article > * { position: relative; z-index: 1; }
.achievement-list article.is-achieved::after { position: absolute; top: -70%; right: -22%; width: 12rem; height: 12rem; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.78), rgba(255,255,255,0) 68%); content: ''; pointer-events: none; }
.achievement-badge { position: relative; display: block; box-sizing: border-box; width: 5.2rem; height: 5.1rem; grid-row: 1 / span 2; border: 2px solid rgba(255,255,255,.8); border-radius: 1.25rem 1.25rem 1.55rem 1.55rem; color: #fff; clip-path: polygon(50% 0, 94% 17%, 88% 76%, 50% 100%, 12% 76%, 6% 17%); filter: drop-shadow(0 5px 7px rgba(7,38,28,.2)); }
.achievement-badge::before { position: absolute; content: ''; inset: .32rem; border: 1px solid rgba(255,255,255,.42); clip-path: inherit; }
.achievement-badge i { position: absolute; z-index: 1; top: 1rem; left: 50%; display: flex; width: 2.25rem; height: 2.25rem; align-items: center; justify-content: center; overflow: visible; font: normal 900 1.5rem/1 "Segoe UI Symbol", "Segoe UI Emoji", system-ui, sans-serif; text-align: center; text-shadow: 0 2px 3px rgba(0,0,0,.22); transform: translateX(-50%); }
.achievement-badge.is-compact-icon i { font-size: .82rem; letter-spacing: -.04em; white-space: nowrap; }
.achievement-badge small { position: absolute; z-index: 1; bottom: .82rem; left: 50%; display: flex; box-sizing: border-box; width: 6rem; min-height: 1.12rem; align-items: center; justify-content: center; padding: .12rem .2rem; border-radius: 999px; background: rgba(5,45,34,.38); color: #fff; font-size: .8rem; font-weight: 900; letter-spacing: 0; line-height: 1; text-align: center; text-transform: uppercase; white-space: nowrap; transform: translateX(-50%) scale(.7); transform-origin: center; }
.achievement-badge.has-long-tier small { letter-spacing: -.015em; }
.achievement-badge.tone-mint { background: linear-gradient(145deg,#2db987,#087153); }
.achievement-badge.tone-amber { background: linear-gradient(145deg,#ffbd4a,#d16b12); }
.achievement-badge.tone-gold { background: linear-gradient(145deg,#ffe16b,#bd7b00); }
.achievement-badge.tone-blue { background: linear-gradient(145deg,#58a9ef,#295ca8); }
.achievement-badge.tone-violet { background: linear-gradient(145deg,#a27bea,#5b3994); }
.achievement-badge.tone-teal { background: linear-gradient(145deg,#48c3c2,#137474); }
.achievement-badge.tone-rose { background: linear-gradient(145deg,#ef7d9d,#a93261); }
.achievement-copy { display: grid; min-width: 0; gap: .22rem; }
.achievement-copy > strong, .achievement-copy > small { overflow-wrap: anywhere; }
.achievement-copy > small { color: var(--muted); line-height: 1.35; }
.achievement-copy > b { color: var(--muted); font-size: .62rem; }
.achievement-secret-progress { width: fit-content; margin-top: .35rem; padding: .3rem .55rem; border: 1px dashed #aebbb4; border-radius: 999px; color: #596760; font-size: .62rem; font-weight: 800; }
.achievement-progress { display: block; width: 100%; height: .48rem; margin-top: .25rem; overflow: hidden; appearance: none; border: 1px solid #cedbd4; border-radius: 999px; background: #e8eeea; }
.achievement-progress::-webkit-progress-bar { border-radius: inherit; background: #e8eeea; }
.achievement-progress::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, #0d7759, #36a77c); }
.achievement-progress::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, #0d7759, #36a77c); }
.course-learner-actions { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; }
.course-learner-actions form { margin: 0; }
.course-completion-card { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; border-left: 5px solid var(--green); }
.course-completion-card.is-complete { background: #eef8f2; }
.course-feedback-card { display: grid; gap: 1rem; margin-top: 1rem; }
.feedback-rating-options { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; }
.feedback-rating-options label { display: flex; align-items: center; gap: .45rem; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.feedback-comment-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.feedback-average { font: 700 1.7rem/1 var(--font-serif); color: var(--green); }
.confirm-dialog { width: min(92vw, 480px); padding: 0; border: 1px solid #c8d5ce; border-radius: 18px; box-shadow: 0 25px 80px rgba(5, 34, 26, .25); }
.confirm-dialog::backdrop { background: rgba(4, 27, 20, .5); backdrop-filter: blur(2px); }
.confirm-dialog form, .confirm-dialog > div { padding: 1.5rem; }
.confirm-dialog.import-task-type-dialog { border-color: #d9a72d; box-shadow: 0 25px 80px rgba(76, 52, 7, .28), inset 0 4px 0 #e1ad2e; }
.confirm-dialog.import-task-type-dialog .eyebrow { color: #8a5a00; }
.confirm-dialog.import-task-type-dialog [data-import-task-type-continue] { border-color: #b77a00; background: #b77a00; }
.confirm-dialog h2 { margin: .5rem 0; }
.confirm-dialog p { color: var(--muted); white-space: pre-line; }
.confirm-dialog .actions { justify-content: flex-end; margin-top: 1.3rem; }

/* Shared line icons replace platform-dependent text glyphs. */
.ui-icon { display: inline-block; width: 1.15rem; height: 1.15rem; flex: 0 0 auto; vertical-align: -.18em; }
.button > .ui-icon, .file-preview-link > .ui-icon { margin-right: .35rem; }
.library-icon-button .ui-icon { width: 1.05rem; height: 1.05rem; margin: 0; }
.library-table th button [data-sort-icon] { display: inline-grid; width: 1rem; height: 1rem; place-items: center; margin-left: .2rem; color: #9aa9a0; }
.library-table th button [data-sort-icon] .ui-icon { width: .8rem; height: .8rem; }
.library-table th button.is-active [data-sort-icon] .ui-icon { display: none; }
.library-table th button.is-active [data-sort-icon]::after { color: var(--green-dark); font-size: .8rem; font-weight: 900; content: "↓"; }
.library-table th button.is-active[data-sort-direction="asc"] [data-sort-icon]::after { content: "↑"; }

/* Document workspace */
.file-dms { overflow: visible; }
.file-dms-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0; }
.file-dms-toolbar .library-table-search { flex: 1 1 24rem; max-width: 38rem; }
.file-dms-toolbar .actions { display: flex; gap: .55rem; }
.file-folder-create { display: flex; align-items: end; gap: .65rem; margin: 0 0 1rem; padding: .85rem; border: 1px solid var(--line); border-radius: .8rem; background: #f7faf8; }
.file-folder-create[hidden] { display: none; }
.file-folder-create .field { flex: 1; margin: 0; }
.file-dms-breadcrumbs { display: flex; min-height: 2.5rem; align-items: center; flex-wrap: wrap; gap: .45rem; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; font-size: .72rem; }
.file-dms-breadcrumbs a[aria-current="page"] { color: var(--ink); font-weight: 800; pointer-events: none; }
.file-dms-breadcrumbs span { color: var(--muted); }
.file-dms-layout { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 1rem; margin-top: 1rem; }
.file-folder-navigation { align-self: start; display: grid; gap: .25rem; padding: .75rem; border: 1px solid var(--line); border-radius: .9rem; background: #f8faf9; }
.file-folder-navigation > strong { margin: .15rem .45rem .45rem; color: var(--muted); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }
.file-folder-link { display: grid; grid-template-columns: 1.15rem minmax(0, 1fr); align-items: center; gap: .5rem; min-height: 2.35rem; padding: .45rem .55rem .45rem calc(.55rem + var(--folder-depth, 0) * .7rem); border-radius: .6rem; color: var(--ink); font-size: .7rem; text-decoration: none; }
.file-folder-link:hover, .file-folder-link.is-active { background: #e6f1eb; color: var(--green-dark); }
.file-folder-link.is-active { font-weight: 850; }
.file-folder-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-dms-content { min-width: 0; }
.file-dms.is-loading { cursor: progress; opacity: .72; pointer-events: none; transition: opacity .12s ease; }
.file-dms-selection { position: sticky; top: 5.25rem; z-index: 5; display: flex; align-items: center; gap: .45rem; min-height: 3.25rem; margin-bottom: .8rem; padding: .55rem .7rem; border: 1px solid #9fc3b0; border-radius: .8rem; background: #edf6f1; box-shadow: 0 .5rem 1.5rem rgba(16,52,41,.09); }
.file-dms-selection[hidden] { display: none; }
.file-dms-selection > strong { margin-right: auto; font-size: .72rem; }
.file-dms-move { display: inline-flex; align-items: center; gap: .3rem; }
.file-dms-move select { width: 9.5rem; }
.file-dms-move > .library-icon-button { align-self: center; width: 2.35rem; min-width: 2.35rem; height: 2.35rem; min-height: 2.35rem; padding: 0; }
.library-asset-picker { overflow: hidden; margin: .8rem 0; border: 1px solid var(--line); border-radius: .8rem; background: #f8fbf9; }
.library-asset-picker > summary { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .85rem 1rem; cursor: pointer; list-style: none; }
.library-asset-picker > summary::-webkit-details-marker { display: none; }
.library-asset-picker > summary > span:first-child { display: grid; gap: .15rem; }
.library-asset-picker > summary small { color: var(--muted); }
.library-asset-picker[open] > summary { border-bottom: 1px solid var(--line); background: #eef6f1; }
.library-asset-picker-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; max-height: 18rem; overflow-y: auto; padding: .8rem; }
.library-asset-picker-list label { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: .65rem; padding: .65rem; border: 1px solid var(--line); border-radius: .65rem; background: #fff; cursor: pointer; }
.library-asset-picker-list label:has(input:checked) { border-color: var(--green); background: #eaf5ef; }
.library-asset-picker-list label span { display: grid; min-width: 0; gap: .1rem; }
.library-asset-picker-list label strong, .library-asset-picker-list label small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.library-asset-picker-list label small { color: var(--muted); }
.file-library-save-choice { margin-top: .75rem; }
@media (max-width: 700px) { .library-asset-picker-list { grid-template-columns: 1fr; } }
.library-file-browser { margin: .8rem 0; }
.library-file-browser-summary { display: grid; grid-template-columns: 2.65rem minmax(0,1fr) auto; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: #f8fbf9; }
.library-file-browser-summary > span:nth-child(2) { display: grid; min-width: 0; gap: .18rem; }
.library-file-browser-summary small { overflow: hidden; color: var(--muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.library-browser-dialog { width: min(67rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: hidden; }
.library-browser-dialog .course-dialog-body { min-height: 0; max-height: calc(100dvh - 14rem); overflow-y: auto; }
.library-browser-toolbar { position: sticky; z-index: 3; top: -.1rem; display: grid; grid-template-columns: minmax(16rem,1fr) 12rem 12rem; gap: .65rem; padding: .2rem 0 .75rem; background: #fff; }
.library-browser-toolbar > label:not(.library-table-search) { display: grid; gap: .25rem; color: var(--muted); font-size: .62rem; font-weight: 800; }
.library-browser-toolbar .library-table-search { align-self: end; width: 100%; }
.library-browser-resultbar { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .65rem; color: var(--muted); font-size: .68rem; }
.library-browser-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.library-browser-file { position: relative; display: grid; grid-template-columns: 2.65rem minmax(0,1fr) 1.5rem; align-items: center; gap: .7rem; min-height: 5.6rem; padding: .72rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; cursor: pointer; }
.library-browser-file:hover { border-color: #92b3a1; }
.library-browser-file.is-selected { border-color: var(--green); box-shadow: 0 0 0 2px rgba(15,116,88,.1); }
.library-browser-file[hidden] { display: none; }
.library-browser-file > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.library-browser-file > span:nth-of-type(2) { display: grid; min-width: 0; gap: .12rem; }
.library-browser-file strong, .library-browser-file small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.library-browser-file small { color: var(--muted); font-size: .59rem; }
.library-browser-file > i { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; border: 1px solid #a9beb2; border-radius: 50%; color: transparent; font-style: normal; font-weight: 900; }
.library-browser-file.is-selected > i { border-color: var(--green); background: var(--green); color: #fff; }
.assignment-library-pickers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
@media (max-width: 760px) { .library-browser-toolbar, .library-browser-grid, .assignment-library-pickers { grid-template-columns: 1fr; } .library-file-browser-summary { grid-template-columns: 2.65rem minmax(0,1fr); } .library-file-browser-summary .button { grid-column: 1 / -1; width: 100%; } }
.file-folder-grid, .file-material-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .75rem; }
.file-folder-grid { position: relative; z-index: 2; margin-bottom: .85rem; }
.file-folder-grid:has(.file-folder-menu[open]) { z-index: 50; }
.file-folder-grid:has(.file-folder-menu[open]) { padding-bottom: 6.25rem; margin-bottom: .85rem; }
.file-material-grid { position: relative; z-index: 1; isolation: isolate; }
.file-folder-card { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; min-height: 4.6rem; border: 1px solid var(--line); border-radius: .85rem; background: #f8fbf9; color: var(--ink); transition: border-color .15s ease, transform .15s ease; }
.file-folder-card:has(.file-folder-menu[open]) { z-index: 25; }
.file-folder-card:has(.file-folder-rename:not([hidden])) { grid-template-columns: minmax(0,1fr); }
.file-folder-card:has(.file-folder-rename:not([hidden])) > .file-folder-menu { display: none; }
.file-folder-card:hover { border-color: var(--green); transform: translateY(-1px); }
.file-folder-open { display: grid; grid-template-columns: 2.5rem minmax(0,1fr); align-items: center; gap: .7rem; min-width: 0; padding: .85rem; color: inherit; text-decoration: none; }
[data-folder-display][hidden] { display: none !important; }
.file-folder-open > .ui-icon { width: 2.1rem; height: 2.1rem; color: #c58b21; fill: #fff5d8; }
.file-folder-card span { display: grid; min-width: 0; gap: .2rem; }
.file-folder-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-folder-card small { color: var(--muted); }
.file-folder-menu { position: relative; margin-right: .55rem; }
.file-folder-menu > summary { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--line); border-radius: .65rem; background: #fff; color: var(--green-dark); cursor: pointer; list-style: none; }
.file-folder-menu > summary::-webkit-details-marker { display: none; }
.file-folder-menu > div { position: absolute; z-index: 60; top: calc(100% + .35rem); right: 0; display: grid; width: 11.5rem; padding: .35rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; box-shadow: 0 12px 28px rgba(6,31,24,.2); isolation: isolate; }
.file-folder-menu button { display: flex; width: 100%; align-items: center; gap: .5rem; padding: .55rem .65rem; border: 0; border-radius: .45rem; background: transparent; color: var(--ink); font: inherit; font-size: .76rem; font-weight: 750; cursor: pointer; }
.file-folder-menu button:hover { background: #f0f6f3; }
.file-folder-menu button.is-danger { color: var(--danger); }
.file-folder-rename { position: relative; z-index: 30; grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: .4rem; align-items: center; width: 100%; padding: .65rem; background: #f8fbf9; }
.file-folder-rename[hidden] { display: none !important; }
.folder-rename-icon { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; border: 1px solid var(--line); border-radius: .62rem; background: #fff; color: var(--green-dark); cursor: pointer; }
.folder-rename-icon:hover { border-color: var(--green); background: #f0f7f3; }
.folder-rename-icon.is-save { border-color: var(--green); background: var(--green); color: #fff; }
.folder-rename-icon .ui-icon { width: 1rem; height: 1rem; }
.file-current-folder { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .55rem; align-items: center; margin-top: .55rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .75rem; background: #f8fbf9; }
.file-current-folder-name { display: grid; min-width: 0; gap: .1rem; }
.file-current-folder .file-folder-rename { padding: .2rem 0 0; }
.file-current-folder:has(.file-folder-rename:not([hidden])) > .file-folder-menu { display: none; }
.file-material-card { position: relative; display: grid; grid-template-rows: auto 1fr auto auto; min-width: 0; min-height: 13.5rem; padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: #fff; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.file-material-card:hover { border-color: #9ab9a7; box-shadow: 0 .7rem 1.8rem rgba(16,52,41,.07); transform: translateY(-1px); }
.file-material-card.is-selected { border-color: var(--green); box-shadow: 0 0 0 2px rgba(13,117,86,.12); }
.file-material-card.is-deleted { display: none !important; }
.file-material-select { position: absolute; top: .65rem; right: .65rem; z-index: 1; display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: .5rem; background: rgba(255,255,255,.92); }
.file-material-select input { width: 1rem; height: 1rem; accent-color: var(--green); }
.file-material-main { display: grid; grid-template-columns: 2.75rem minmax(0,1fr); align-items: center; gap: .7rem; padding-right: 1.55rem; color: var(--ink); text-decoration: none; }
.file-material-main > span:last-child { display: grid; min-width: 0; gap: .25rem; }
.file-material-main strong { overflow: hidden; font-size: .82rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.file-material-main small { color: var(--muted); font-size: .62rem; }
.file-type-icon { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: .7rem; background: #e8f3ed; color: var(--green-dark); }
.file-type-icon .ui-icon { width: 1.45rem; height: 1.45rem; }
.file-material-card > p { display: -webkit-box; overflow: hidden; margin: .75rem 0; color: var(--muted); font-size: .68rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.file-material-card footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .75rem; padding: .65rem 0 0; border-top: 1px solid var(--line); background: transparent; color: var(--muted); font-size: .62rem; }
.file-preview-link { display: inline-flex; align-items: center; color: var(--green-dark); font-weight: 800; }
.file-dms-empty { display: grid; justify-items: center; gap: .45rem; padding: 2.5rem 1rem; border: 1px dashed var(--line); border-radius: .9rem; color: var(--muted); text-align: center; }
.file-dms-empty[hidden] { display: none; }
.file-dms-empty p { margin: 0; }
.library-data-section { scroll-margin-top: 1.5rem; }
@media (max-width: 840px) { .file-dms-layout { grid-template-columns: 1fr; } .file-folder-navigation { display: flex; overflow-x: auto; } .file-folder-link { min-width: max-content; padding: .45rem .6rem; } .file-dms-toolbar { align-items: stretch; flex-direction: column; } .file-dms-toolbar .library-table-search { max-width: none; } }
.recipient-count-note { margin: -.2rem 0 .25rem; padding: .55rem .7rem; border-radius: .55rem; background: #edf6f1; color: var(--green-dark); font-size: .7rem; font-weight: 750; }
.organization-danger-section { padding-top: 1rem; }
.organization-danger-zone { display: grid; gap: 1rem; width: min(100%, 58rem); padding: 1.25rem; border: 1px solid #dfaaa6; border-radius: 1rem; background: #fffafa; }
.organization-settings-danger { width: min(100%, 58rem); margin-right: auto; }
.organization-danger-zone > .button,
.organization-danger-zone > [data-organization-delete-open] { justify-self: start; width: auto; min-width: 0; padding-inline: 1rem; }
.organization-danger-heading { display: flex; align-items: flex-start; gap: .9rem; }
.organization-danger-heading h2 { margin: .15rem 0 .35rem; }
.organization-danger-heading p { max-width: 55rem; margin: 0; color: var(--muted); }
.organization-danger-icon { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; place-items: center; border-radius: .75rem; background: #fdebea; color: var(--danger); }
.organization-deletion-banner { display: grid; grid-template-columns: 1.4rem minmax(0,1fr) auto; align-items: center; gap: .8rem; margin: 1rem 0; padding: .85rem 1rem; border: 1px solid #dfaaa6; border-radius: .8rem; background: #fff4f2; color: #7f2d29; }
.organization-deletion-banner > div { display: grid; gap: .15rem; }
.organization-deletion-banner span { font-size: .7rem; }
.organization-deletion-pending { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #dfaaa6; border-radius: .75rem; background: #fff; }
.organization-deletion-pending p { margin: .25rem 0 0; color: var(--muted); }
.admin-organization-quicklinks { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.admin-organization-shortcut { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1.25rem; }
.admin-organization-shortcut > div { display: grid; gap: .2rem; }
.admin-organization-toolbar { display: grid; grid-template-columns: minmax(18rem,1fr) repeat(3,minmax(9rem,.55fr)) auto; align-items: end; gap: .65rem; margin: 1.1rem 0; padding: .9rem; border: 1px solid var(--line); border-radius: .9rem; background: #fff; }

/* Verwaltung: kompakte, durchgängige Arbeitsoberfläche */
.admin-console-nav { display: grid; grid-template-columns: repeat(auto-fit,minmax(10rem,1fr)); gap: .45rem; margin: 0 0 1.25rem; padding: .4rem; border: 1px solid var(--line); border-radius: .9rem; background: #eaf2ed; }
.admin-console-nav a { display: grid; gap: .12rem; min-width: 0; padding: .7rem .8rem; border-radius: .65rem; color: var(--muted); text-decoration: none; }
.admin-console-nav a:hover, .admin-console-nav a.is-active { background: #fff; color: var(--green-dark); box-shadow: 0 .25rem .9rem rgba(9,48,36,.07); }
.admin-console-nav span { font-weight: 850; }
.admin-console-nav small { overflow: hidden; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-page .admin-heading, .admin-console-page .page-heading { align-items: end; margin-bottom: 1.25rem; }
.admin-page .admin-heading h1, .admin-console-page .page-heading h1 { max-width: 14ch; margin-bottom: .35rem; font-size: clamp(2.65rem,5vw,4.6rem); line-height: .94; }
.admin-page .admin-heading .lead, .admin-console-page .page-heading .lead { max-width: 48rem; }
.admin-section-nav { position: sticky; z-index: 8; top: .5rem; padding: .35rem; border: 1px solid var(--line); border-radius: .75rem; background: rgba(235,244,239,.94); backdrop-filter: blur(9px); }
.admin-kpis { gap: .65rem; }
.admin-kpis article { min-height: 6.2rem; padding: .9rem; border-radius: .82rem; box-shadow: none; }
.admin-kpis article strong { font-size: 1.75rem; }
.admin-overview-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.admin-overview-card { min-height: 14rem; padding: 1rem; }
.admin-overview-card h2 { font-size: 1.5rem; }
.admin-overview-card p { margin-bottom: auto; }
.admin-plan-kpis { gap: .65rem; }
.admin-plan-kpis article { min-height: 6.2rem; padding: .85rem 1rem; }
.admin-subscription-intro { border-radius: .8rem; overflow: hidden; }
.admin-organization-toolbar { position: sticky; z-index: 7; top: .5rem; grid-template-columns: minmax(17rem,1.4fr) repeat(3,minmax(8rem,.65fr)) auto; background: rgba(255,255,255,.96); box-shadow: 0 .6rem 1.5rem rgba(9,48,36,.07); backdrop-filter: blur(10px); }
.admin-organization-billing { overflow: clip; border-radius: .86rem; box-shadow: 0 .3rem 1.1rem rgba(9,48,36,.05); }
.admin-organization-billing > summary { min-height: 4.7rem; }
.admin-organization-billing[open] { border-color: #9bb9aa; box-shadow: 0 .8rem 2.2rem rgba(9,48,36,.09); }
.admin-support-heading > strong { display: grid; min-width: 7rem; justify-items: center; padding: .75rem 1rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; color: var(--muted); font-size: .65rem; }
.admin-support-heading > strong span { color: var(--green-dark); font-family: var(--font-display); font-size: 2rem; line-height: 1; }
.admin-support-toolbar { position: sticky; z-index: 7; top: .5rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .8rem; padding: .55rem; border: 1px solid var(--line); border-radius: .78rem; background: rgba(255,255,255,.96); backdrop-filter: blur(9px); }
.admin-support-toolbar .library-table-search { flex: 1; max-width: 32rem; }
.admin-support-toolbar .filter-pills { margin: 0; }
.report-list { display: grid; gap: .7rem; }
.report-card { margin: 0; padding: 1rem; border-radius: .82rem; box-shadow: none; }
.report-card[hidden] { display: none; }
.report-card > header h2 { font-size: 1.45rem; }
@media (max-width: 960px) { .admin-console-nav, .admin-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .admin-organization-toolbar { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .admin-console-nav, .admin-overview-grid, .admin-organization-toolbar { grid-template-columns: 1fr; } .admin-console-nav small { white-space: normal; } .admin-support-toolbar { position: static; align-items: stretch; flex-direction: column; } .admin-support-toolbar .library-table-search { max-width: none; } }
.import-analysis-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.import-analysis-heading h1 { margin: .25rem 0 .5rem; }
.import-analysis-heading p { max-width: 42rem; margin: 0; color: var(--muted); line-height: 1.55; }
.import-analysis-heading > .pill { display: inline-flex; flex: 0 0 auto; min-width: max-content; align-items: center; justify-content: center; margin-top: .15rem; white-space: nowrap; }
.admin-organization-toolbar > label:not(.library-table-search) { display: grid; gap: .25rem; color: var(--muted); font-size: .64rem; font-weight: 800; }
.admin-organization-toolbar > strong { align-self: center; color: var(--green-dark); white-space: nowrap; }
.admin-organization-system-status { display: grid; grid-template-columns: minmax(0,1fr) minmax(20rem,.8fr); align-items: start; gap: 1rem; padding: 1rem; border: 1px solid #d9c9a7; border-radius: .8rem; background: #fffdf7; }
.admin-organization-system-status h2 { margin: .15rem 0 .25rem; font-size: 1.25rem; }
.admin-organization-system-status p { margin: 0; color: var(--muted); font-size: .72rem; }
.admin-system-status-actions { display: grid; gap: .65rem; }
.admin-system-status-actions > form:first-of-type { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.admin-organization-delete-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .55rem; padding-top: .65rem; border-top: 1px solid #eadfc8; }
.admin-organization-delete-form label { display: grid; gap: .25rem; color: var(--muted); font-size: .62rem; font-weight: 800; }
.admin-organization-empty { grid-column: 1 / -1; }
@media (max-width: 700px) { .admin-organization-shortcut { align-items: stretch; flex-direction: column; } }
@media (max-width: 980px) { .admin-organization-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); } .admin-organization-toolbar > .library-table-search { grid-column: 1 / -1; } .admin-organization-system-status { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .admin-organization-toolbar, .admin-organization-delete-form { grid-template-columns: 1fr; } }
.course-announcement-panel { margin: 0 0 1rem; border: 1px solid var(--line); border-radius: .9rem; background: #fff; }
.course-announcement-panel > summary { display: grid; grid-template-columns: 2.5rem minmax(0,1fr) 1.2rem; align-items: center; gap: .75rem; padding: .85rem 1rem; cursor: pointer; list-style: none; }
.course-announcement-panel > summary::-webkit-details-marker { display: none; }
.course-announcement-panel > summary > span:nth-child(2) { display: grid; gap: .15rem; }
.course-announcement-panel > summary small { color: var(--muted); }
.course-announcement-panel > summary > .ui-icon { transition: transform .15s ease; }
.course-announcement-panel[open] > summary > .ui-icon { transform: rotate(180deg); }
.course-announcement-panel > form { padding: 1rem; border-top: 1px solid var(--line); }
.recipient-count-card { display: flex; min-height: 4.5rem; align-items: center; justify-content: center; gap: .5rem; border: 1px solid var(--line); border-radius: .7rem; background: #f5f9f6; color: var(--green-dark); }
.recipient-count-card strong { font: 800 1.5rem Georgia, serif; }

/* Cleaner large-course workspace */
.course-plan-section { position: relative; background: linear-gradient(180deg, rgba(232,243,237,.7), rgba(247,249,245,0) 17rem); }
.course-plan-commandbar { position: sticky; z-index: 7; top: 8.9rem; display: flex; align-items: center; gap: .65rem; margin-top: 1.25rem; padding: .6rem; border: 1px solid #adc7b8; border-radius: .9rem; background: rgba(255,255,255,.94); box-shadow: 0 .65rem 1.8rem rgba(16,52,41,.08); backdrop-filter: blur(10px); }
.course-plan-search { position: relative; flex: 1 1 25rem; }
.course-plan-search .ui-icon { position: absolute; top: 50%; left: .85rem; z-index: 1; color: var(--muted); transform: translateY(-50%); }
.course-plan-search input { width: 100%; min-height: 2.55rem; padding: .6rem .8rem .6rem 2.45rem; border: 0; border-radius: .65rem; background: #f3f7f4; font: inherit; }
.course-plan-search input:focus { outline: 2px solid var(--green); outline-offset: 1px; }
.course-plan-mode { display: flex; gap: .2rem; padding: .22rem; border-radius: .65rem; background: #eaf0ec; }
.course-plan-mode button { min-height: 2.15rem; padding: .4rem .75rem; border: 0; border-radius: .5rem; background: transparent; color: var(--muted); font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
.course-plan-mode button.is-active { background: #fff; color: var(--green-dark); box-shadow: 0 .15rem .55rem rgba(16,52,41,.1); }
.course-plan-section[data-plan-mode="overview"] .course-editor-guide,
.course-plan-section[data-plan-mode="overview"] .course-unit-actions,
.course-plan-section[data-plan-mode="overview"] .course-content-picker,
.course-plan-section[data-plan-mode="overview"] .course-plan-save-state,
.course-plan-section[data-plan-mode="overview"] .course-root-drop-hint,
.course-plan-section[data-plan-mode="overview"] .course-module-overview-actions a[href*="bearbeiten"],
.course-plan-section[data-plan-mode="overview"] .course-module-overview-actions a + a,
.course-plan-section[data-plan-mode="overview"] .course-tree-actions a[href*="bearbeiten"],
.course-plan-section[data-plan-mode="overview"] .course-tree-footer a[href*="bearbeiten"],
.course-plan-section[data-plan-mode="overview"] .course-unit-auto-progress { display: none !important; }
.import-community-choice { margin: 0; padding: 1rem; border: 1px solid #b4cbbc; border-radius: .9rem; background: #f5faf7; }
.import-community-choice legend { padding: 0 .35rem; font-weight: 850; }
.import-community-choice > p { margin: 0 0 .75rem; color: var(--muted); font-size: .72rem; }
.import-community-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.import-community-options label { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 1.65rem; align-items: center; gap: .55rem; min-height: 5.4rem; padding: .85rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.import-community-options input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.import-community-options label::after { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border: 1px solid #a9beb2; border-radius: 50%; color: transparent; content: "✓"; font-weight: 900; }
.import-community-options label:has(input:checked) { border-color: var(--green); background: #fff; box-shadow: 0 0 0 2px rgba(15,116,88,.11); }
.import-community-options label:has(input:checked)::after { border-color: var(--green); background: var(--green); color: #fff; }
.import-community-options label:focus-within { outline: 3px solid rgba(15,116,88,.2); outline-offset: 2px; }
.import-community-options span { display: grid; gap: .2rem; }
.import-community-options small, .import-community-privacy { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.import-community-privacy { display: block; margin-top: .7rem; }
@media (max-width: 700px) { .import-community-options { grid-template-columns: 1fr; } }
.import-community-review { display: grid; gap: 1rem; margin-top: 1.25rem; }
.import-community-review > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.import-community-review > header h2 { margin: .2rem 0 .35rem; }
.import-community-review > header p { max-width: 52rem; margin: 0; color: var(--muted); }
.community-recommendation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.community-recommendation-card { position: relative; display: grid; gap: .45rem; min-height: 6.8rem; padding: .65rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }
.community-recommendation-card > label { position: relative; display: grid; grid-template-columns: 2.55rem minmax(0,1fr) 1.5rem; align-items: center; gap: .7rem; padding: .2rem; cursor: pointer; }
.community-recommendation-card input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.community-recommendation-card:has(input:checked) { border-color: var(--green); box-shadow: 0 0 0 2px rgba(15,116,88,.11); }
.community-recommendation-card label > span:nth-of-type(2) { display: grid; min-width: 0; gap: .2rem; }
.community-recommendation-card label > span:nth-of-type(2) > small { color: var(--green-dark); font-size: .57rem; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.community-recommendation-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: .65rem; background: #e8f3ed; color: var(--green-dark); }
.community-recommendation-card label > b { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; border: 1px solid #a9beb2; border-radius: 50%; color: transparent; }
.community-recommendation-card:has(input:checked) label > b { border-color: var(--green); background: var(--green); color: #fff; }
.community-recommendation-edit { display: flex; align-items: center; justify-content: center; gap: .35rem; padding: .48rem; border-top: 1px solid var(--line); color: var(--green-dark); font-size: .66rem; font-weight: 800; text-decoration: none; }
.teacher-reviewed { background: #dff3e7 !important; color: #075f46 !important; }
.import-assessment-preview { display: grid; gap: 1rem; margin-top: 1.25rem; }
.import-assessment-preview h2 { margin: .2rem 0 .35rem; }
.import-assessment-preview header p { margin: 0; color: var(--muted); }
.import-assessment-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(15rem,1fr)); gap: .7rem; }
.import-assessment-grid article { display: grid; align-content: start; gap: .4rem; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: #f8fbf9; }
.import-assessment-grid h3, .import-assessment-grid p { margin: 0; }
.import-assessment-grid small { color: var(--muted); }
.import-preview-shortcut { display: flex; align-items: center; gap: 1rem; margin: .85rem 0 1rem; padding: .8rem 1rem; border: 1px solid #a9cdbc; border-radius: .8rem; background: #eff8f3; }
.import-preview-shortcut span { color: var(--muted); font-size: .82rem; }
.import-assessment-editor { display: grid; gap: 1.5rem; }
.import-assessment-task-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.import-assessment-task-list label { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .65rem; align-items: start; padding: .8rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; cursor: pointer; }
.import-assessment-task-list label:has(input:checked) { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); }
.import-assessment-task-list span { display: grid; gap: .2rem; }
.import-assessment-task-list small { color: var(--muted); }
.import-course-preview-hero { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin: 1.5rem 0; }
.import-course-preview-hero h1 { margin: .25rem 0; }
.import-course-preview-hero p { max-width: 46rem; color: var(--muted); }
.import-preview-course-start { display: grid; grid-template-columns: 3rem minmax(0,1fr) auto; align-items: center; gap: 1rem; margin: 1.25rem 0; padding: 1.1rem 1.25rem; border: 1px solid #8fb8a1; border-radius: 1rem; background: linear-gradient(110deg,#edf7f1,#f8fbf9); color: var(--ink); text-decoration: none; }
.import-preview-course-start > span { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .75rem; background: var(--green); color: #fff; }
.import-preview-course-start > span .ui-icon { width: 1.35rem; height: 1.35rem; }
.import-preview-course-start > div { display: grid; gap: .1rem; }
.import-preview-course-start small { color: var(--green-dark); font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.import-preview-course-start strong { font: 800 1.45rem Georgia,serif; }
.import-preview-course-start em { color: var(--muted); font-size: .68rem; font-style: normal; }
.import-preview-course-start > b { color: var(--green-dark); }
.import-preview-course-outline { display: grid; grid-template-columns: minmax(15rem,.5fr) minmax(0,1fr); gap: 2rem; margin-top: 2rem; padding: 1.35rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.import-preview-course-outline h2 { margin: .25rem 0; }
.import-preview-course-outline ol { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.import-preview-course-outline li { display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: center; gap: .65rem; padding: .7rem; border-bottom: 1px solid var(--line); }
.import-preview-course-outline li > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .55rem; background: #e8f3ed; color: var(--green-dark); font-weight: 900; }
.import-preview-course-outline li > div { display: grid; gap: .1rem; }
.import-preview-course-outline small { color: var(--muted); }
.import-course-reader-preview .course-reader-navigation { margin: 1rem 0 2rem; }
.import-preview-reader-content { width: min(62rem,100%); margin: 0 auto; }
.import-preview-reader-content > h1, .import-preview-reader-heading h1 { margin: .25rem 0 1rem; font-size: clamp(2.2rem,6vw,4.6rem); }
.import-preview-next-card { display: grid; grid-template-columns: 3rem minmax(0,1fr); align-items: center; gap: 1rem; margin-top: 1.5rem; padding: 1.2rem; color: var(--ink); text-decoration: none; }
.import-preview-next-card > span { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .75rem; background: #e8f3ed; color: var(--green-dark); }
.import-preview-next-card h2, .import-preview-next-card p { margin: .1rem 0; }
.import-preview-next-card small { color: var(--green-dark); font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.import-preview-reader-heading > div { display: flex; align-items: center; gap: .75rem; color: var(--muted); }
.import-preview-reader-card { padding: clamp(1.25rem,3vw,2.5rem); }
.import-preview-prose { margin-top: 1rem; font-size: clamp(1rem,1.6vw,1.2rem); line-height: 1.75; }
.import-preview-answer-placeholder { display: grid; gap: .25rem; margin-top: 1.5rem; padding: 1rem; border: 1px dashed #9bb7a7; border-radius: .75rem; background: #f7faf8; color: var(--muted); }
.import-preview-course-layout { display: grid; grid-template-columns: minmax(13rem,17rem) minmax(0,1fr); gap: 1rem; align-items: start; }
.import-preview-course-layout > nav { position: sticky; top: 1rem; display: grid; gap: .35rem; padding: .7rem; border: 1px solid var(--line); border-radius: .9rem; background: #fff; }
.import-preview-course-layout > nav a { display: grid; grid-template-columns: 1.8rem minmax(0,1fr); gap: .5rem; align-items: center; padding: .55rem; border-radius: .6rem; color: inherit; font-size: .8rem; font-weight: 750; text-decoration: none; }
.import-preview-course-layout > nav a:hover { background: #edf6f1; }
.import-preview-course-layout > nav span, .import-preview-module > header > span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: .55rem; background: var(--green-dark); color: #fff; font-weight: 850; }
.import-preview-course-layout > main { display: grid; gap: 1rem; }
.import-preview-module { scroll-margin-top: 1rem; }
.import-preview-module > header { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .8rem; border-bottom: 1px solid var(--line); }
.import-preview-module h2, .import-preview-module p { margin: 0; }
.import-preview-module > div { display: grid; gap: .55rem; margin-top: .8rem; }
.import-preview-module article { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .7rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; }
.import-preview-module article > i { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: .6rem; background: #e8f3ed; color: var(--green-dark); }
.import-preview-module article > span { display: grid; gap: .15rem; }
.import-preview-module article p { color: var(--muted); font-size: .8rem; }
@media (max-width: 780px) { .import-preview-shortcut, .import-course-preview-hero { align-items: stretch; flex-direction: column; } .import-assessment-task-list, .import-preview-course-layout, .import-preview-course-outline { grid-template-columns: 1fr; } .import-preview-course-layout > nav { position: static; } .import-preview-course-start { grid-template-columns: 3rem minmax(0,1fr); } .import-preview-course-start > b { grid-column: 2; } }
.community-additional-sharing { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.community-additional-sharing > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; width: 100%; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: .8rem; background: #f7faf8; color: var(--green-dark); cursor: pointer; list-style: none; }
.community-additional-sharing > summary::-webkit-details-marker { display: none; }
.community-additional-sharing > summary > span { display: grid; gap: .12rem; }
.community-additional-sharing > summary small { color: var(--muted); font-size: .75rem; font-weight: 600; }
.community-additional-sharing > summary em { padding: .35rem .55rem; border-radius: .5rem; background: #e7f2ec; font-size: .75rem; font-style: normal; font-weight: 800; }
.community-additional-sharing > summary b { font-size: 1.2rem; transition: transform .18s ease; }
.community-additional-sharing[open] > summary b { transform: rotate(180deg); }
.community-additional-sharing > p { color: var(--muted); }
.community-recommendation-grid.is-additional { margin-top: .8rem; }
.community-recommendation-card em { color: #8a5a16; font-size: .72rem; font-style: normal; line-height: 1.35; }
.quality-signal-list { display: flex; flex-wrap: wrap; gap: .25rem; }
.quality-signal-list i { padding: .18rem .38rem; border-radius: 999px; background: #f0f4f1; color: var(--muted); font-size: .55rem; font-style: normal; }
.community-license-grid { display: grid; grid-template-columns: minmax(15rem,.8fr) minmax(18rem,1.2fr); gap: .75rem; margin-top: .9rem; }
.community-license-guide { display: block; margin-top: .55rem; padding: .7rem .8rem; border-left: 3px solid var(--green); border-radius: 0 .55rem .55rem 0; background: #edf6f1; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.community-license-guide strong { color: var(--green-dark); }
.community-source-card { display: grid; align-content: center; gap: .3rem; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: .72rem; background: #f8fbf9; }
.community-source-card > span { color: var(--muted); font-size: .63rem; font-weight: 800; }
.community-source-card > strong { color: var(--ink); }
.community-source-card > small { color: var(--muted); line-height: 1.45; }
.community-rights-dialog { width: min(42rem, calc(100% - 2rem)); padding: 0; border: 0; border-radius: 1rem; background: #fff; box-shadow: 0 2rem 5rem rgba(4,30,22,.25); }
.community-rights-dialog::backdrop { background: rgba(10,29,24,.58); backdrop-filter: blur(3px); }
.community-rights-dialog > div { display: grid; gap: 1rem; padding: 1.35rem; }
.community-rights-dialog h2 { margin: .25rem 0 .45rem; }
.community-rights-dialog header p { margin: 0; color: var(--muted); line-height: 1.55; }
.community-rights-dialog label { display: grid; grid-template-columns: 1.1rem minmax(0,1fr); gap: .7rem; padding: .9rem; border: 1px solid #d8b06a; border-radius: .72rem; background: #fff8e8; line-height: 1.45; }
.community-rights-dialog label input { width: 1.05rem; height: 1.05rem; margin-top: .15rem; accent-color: var(--green); }
.community-rights-dialog footer { display: flex; justify-content: flex-end; gap: .6rem; padding: 0; border: 0; background: transparent; }
.community-review-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .3rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.community-review-footer p { max-width: 48rem; margin: 0; color: var(--muted); font-size: .68rem; }
@media (max-width: 760px) { .community-recommendation-grid, .community-license-grid { grid-template-columns: 1fr; } .community-review-footer, .import-community-review > header { align-items: stretch; flex-direction: column; } }
.course-builder-layout.is-manager.is-nav-collapsed { grid-template-columns: minmax(0,1fr); }
.course-builder-layout.is-manager.is-nav-collapsed .course-module-nav { display: none; }
.course-builder-layout.is-manager .course-module-nav { grid-template-rows: auto minmax(0,1fr); max-height: calc(100vh - 13.75rem); overflow: hidden; box-shadow: 0 .5rem 1.5rem rgba(16,52,41,.04); }
.course-builder-layout.is-manager .course-module-nav-label {
  margin: -12px -12px 0;
  padding: 15px 16px 10px;
  border-bottom: 1px solid var(--line);
  background: #f7faf8;
}
.course-builder-layout.is-manager .course-module-nav-items { display: grid; min-height: 0; gap: 7px; padding-top: 7px; overflow-y: auto; }
@media (max-width: 980px) {
  .course-builder-layout.is-manager .course-module-nav { display: block; max-height: none; overflow: visible; }
  .course-builder-layout.is-manager .course-module-nav-items { display: flex; overflow-x: auto; overflow-y: hidden; }
}
.course-builder-layout.is-manager .course-module-nav button { display: grid; grid-template-columns: 1.55rem minmax(0,1fr); line-height: 1.35; }
.course-builder-layout.is-manager .course-module-nav button span { grid-row: 1; }
.course-module-card { border-color: #d2ddd6; border-radius: 1rem; box-shadow: 0 .35rem 1.2rem rgba(16,52,41,.035); }
.course-module-card[open] { border-color: #a9c2b3; box-shadow: 0 .8rem 2.2rem rgba(16,52,41,.065); }
.course-module-card > summary { padding: 1.05rem 1.2rem; }
.course-module-summary-copy strong { font-family: inherit; font-size: clamp(1.05rem,2vw,1.35rem); line-height: 1.2; }
.course-module-number { border-radius: .7rem; font-family: inherit; font-size: .82rem; }
.course-module-body { background: #fff; }
.course-learning-step-list .course-tree-item { border: 1px solid #d9e2dc; border-left: 3px solid #92b8a4; border-radius: .8rem; box-shadow: none; }
.course-learning-step-list .course-tree-copy h4, .course-learning-step-list .course-tree-copy strong { font-family: inherit; }
@media (max-width: 850px) { .course-plan-commandbar { position: static; align-items: stretch; flex-direction: column; } .course-plan-search { width: 100%; flex: 0 0 auto; } .course-plan-mode { width: 100%; } .course-plan-mode button { flex: 1; } .course-plan-commandbar > .button { width: 100%; } }
.report-list { display: grid; gap: 1rem; }
.report-card header { display: flex; justify-content: space-between; gap: 1rem; }
.report-card form { display: flex; gap: .5rem; }
.filter-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.filter-pills a { padding: .55rem .9rem; border: 1px solid var(--line); border-radius: 999px; color: inherit; text-decoration: none; }
.filter-pills a.active { color: #fff; background: var(--green); border-color: var(--green); }
.exercise-community-signals { display: flex; flex-wrap: wrap; gap: .3rem; margin: .25rem 0 .75rem; }
.exercise-community-signals span { padding: .2rem .42rem; border-radius: 999px; background: #eef4f0; color: var(--green-dark); font-size: .58rem; font-weight: 750; }

@media (max-width: 900px) {
  .first-step-grid, .dashboard-domain-grid, .directory-grid { grid-template-columns: 1fr; }
  .feedback-comment-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .profile-stat-grid, .feedback-rating-options, .feedback-comment-list { grid-template-columns: 1fr; }
  .directory-search { grid-template-columns: 1fr; }
  .course-completion-card, .public-profile-hero { align-items: flex-start; flex-direction: column; }
}

/* Refined reports, organization discovery and dashboard course states */
.password-guidance {
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  border-color: transparent;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-7px);
  transition:
    max-height .36s cubic-bezier(.2,.75,.25,1),
    margin .3s ease,
    padding .3s ease,
    border-color .25s ease,
    opacity .24s ease,
    transform .3s ease,
    visibility 0s linear .36s;
}
.password-guidance.is-visible {
  max-height: 320px;
  margin-top: 4px;
  padding-top: 14px;
  padding-bottom: 14px;
  border-color: var(--line);
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}

.problem-report-container { max-width: 1000px; }
.report-form-actions { display: flex; justify-content: flex-end; gap: .65rem; padding-top: .6rem; }

/* Admin support workflow */
.admin-report-hero { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin: 2rem 0 1.25rem; }
.admin-report-hero h1 { margin: .35rem 0 .5rem; font-size: clamp(2.8rem,6vw,5rem); line-height: .95; letter-spacing: -.045em; }
.admin-report-hero p { max-width: 48rem; margin: 0; color: var(--muted); }
.admin-report-total { display: grid; min-width: 9rem; justify-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 12px 30px rgba(13,60,44,.07); }
.admin-report-total strong { color: var(--green-dark); font: 750 2.3rem/1 Georgia,serif; }
.admin-report-total span { margin-top: .3rem; color: var(--muted); font-size: .68rem; font-weight: 750; }
.admin-report-status-overview { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .55rem; margin-bottom: 1rem; }
.admin-report-status-overview a { position: relative; display: grid; gap: .12rem; padding: .8rem .9rem .8rem 1rem; overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; background: #fff; color: var(--muted); text-decoration: none; }
.admin-report-status-overview a::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: #9aa9a1; content: ""; }
.admin-report-status-overview a:hover,.admin-report-status-overview a.is-active { border-color: #91b7a4; box-shadow: 0 8px 22px rgba(12,62,44,.08); transform: translateY(-1px); }
.admin-report-status-overview strong { color: var(--ink); font-size: 1.2rem; }
.admin-report-status-overview span { font-size: .68rem; font-weight: 750; }
.admin-report-status-overview .status-new::before { background: #2785a5; }.admin-report-status-overview .status-reviewing::before { background: #cc9326; }.admin-report-status-overview .status-planned::before { background: #7654a5; }.admin-report-status-overview .status-waiting_user::before { background: #ba7044; }.admin-report-status-overview .status-resolved::before { background: var(--green); }.admin-report-status-overview .status-closed::before { background: #718079; }
.admin-report-page .admin-support-toolbar { display: grid; grid-template-columns: minmax(280px,1fr) minmax(190px,auto) auto auto; }
.admin-report-search { position: relative; display: block; }
.admin-report-search i { position: absolute; top: 50%; left: .9rem; width: .85rem; height: .85rem; border: 2px solid var(--green); border-radius: 50%; transform: translateY(-58%); }
.admin-report-search i::after { position: absolute; right: -.35rem; bottom: -.2rem; width: .4rem; height: 2px; background: var(--green); content: ""; transform: rotate(45deg); }
.admin-report-search input { width: 100%; height: 2.7rem; padding: 0 .8rem 0 2.5rem; border: 1px solid var(--line); border-radius: .65rem; background: #fff; color: var(--ink); font: inherit; }
.admin-report-category { display: flex; align-items: center; gap: .45rem; color: var(--muted); font-size: .7rem; font-weight: 750; }
.admin-report-visible-count { color: var(--muted); font-size: .7rem; white-space: nowrap; }.admin-report-visible-count strong { color: var(--ink); }
.admin-report-list { display: grid; gap: 1rem; }
.admin-report-case { overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 12px 35px rgba(12,58,43,.06); }
.admin-report-case[hidden] { display: none; }
.admin-report-case-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--line); background: linear-gradient(110deg,#f8faf8,#fff); }
.admin-report-case-title { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; }.admin-report-case-title h2 { flex-basis: 100%; margin: .25rem 0 0; font-size: 1.45rem; }
.admin-report-category-badge { color: var(--green-dark); font-size: .63rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.admin-report-case-id { color: var(--muted); font-size: .62rem; }
.admin-report-status { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .6rem; border-radius: 999px; background: #eef2ef; color: #53625a; font-size: .67rem; font-weight: 850; white-space: nowrap; }.admin-report-status i { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.admin-report-status.status-new { background: #e3f2f7; color: #176b87; }.admin-report-status.status-reviewing { background: #fcf0d7; color: #8a5c0b; }.admin-report-status.status-planned { background: #eee8f7; color: #65428d; }.admin-report-status.status-waiting_user { background: #fae9df; color: #934a25; }.admin-report-status.status-resolved { background: #e1f1e7; color: #176849; }.admin-report-status.status-closed { background: #e9edeb; color: #52615a; }
.admin-report-case-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,340px); }
.admin-report-case-content { min-width: 0; padding: 1.25rem; }.admin-report-description { color: var(--ink); line-height: 1.65; white-space: pre-wrap; }
.admin-report-meta { display: flex; flex-wrap: wrap; gap: .8rem 1.7rem; margin: 1.2rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--line); }.admin-report-meta div { display: grid; gap: .12rem; }.admin-report-meta dt { color: var(--muted); font-size: .59rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.admin-report-meta dd { margin: 0; font-size: .75rem; font-weight: 700; }
.admin-report-response { display: grid; align-content: start; gap: .9rem; padding: 1.15rem; border-left: 1px solid var(--line); background: #f4f8f5; }.admin-report-response-heading { display: flex; align-items: center; gap: .65rem; }.admin-report-response-heading > span { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: .65rem; background: var(--green-dark); color: #fff; font-weight: 900; }.admin-report-response-heading > div { display: grid; }.admin-report-response-heading small { color: var(--muted); font-size: .65rem; }.admin-report-response .field { margin: 0; }.admin-report-response textarea { resize: vertical; }.admin-report-response .button { width: 100%; }
.admin-report-notify-option { display: flex; align-items: flex-start; gap: .65rem; padding: .75rem; border: 1px solid #c8d9cf; border-radius: .7rem; background: #fff; cursor: pointer; }.admin-report-notify-option input { flex: 0 0 auto; width: 1.05rem; height: 1.05rem; margin-top: .1rem; accent-color: var(--green); }.admin-report-notify-option span { display: grid; gap: .15rem; }.admin-report-notify-option strong { font-size: .72rem; }.admin-report-notify-option small { color: var(--muted); font-size: .61rem; line-height: 1.45; }
.admin-report-history { margin-top: 1.2rem; }.admin-report-history h3 { margin: 0 0 .6rem; font-size: .86rem; }.admin-report-history article { display: grid; grid-template-columns: minmax(95px,auto) minmax(0,1fr) auto; gap: .6rem; padding: .75rem .7rem; border-top: 1px solid var(--line); }.admin-report-history article.is-user { margin-left: 1rem; border-left: 3px solid #ba7044; background: #fff8f4; }.admin-report-history article span { display: grid; gap: .12rem; }.admin-report-history article span strong { color: var(--ink); font-size: .64rem; }.admin-report-history article span,.admin-report-history article time { color: var(--muted); font-size: .62rem; }.admin-report-history article p { margin: 0; font-size: .78rem; white-space: pre-wrap; }
@media(max-width:1024px){.admin-report-status-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-report-page .admin-support-toolbar{grid-template-columns:minmax(0,1fr) auto}.admin-report-category,.admin-report-visible-count{grid-row:2}.admin-report-case-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:760px){.admin-report-hero{align-items:stretch;flex-direction:column}.admin-report-total{justify-items:start}.admin-report-status-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-report-page .admin-support-toolbar{position:static;grid-template-columns:1fr}.admin-report-category,.admin-report-visible-count{grid-row:auto}.admin-report-category .input{flex:1}.admin-report-case-layout{grid-template-columns:1fr}.admin-report-response{border-top:1px solid var(--line);border-left:0}.admin-report-history article{grid-template-columns:1fr}.admin-report-case-header{align-items:flex-start;flex-direction:column}}
@media(max-width:430px){.report-form-actions{align-items:stretch;flex-direction:column-reverse}.report-form-actions .button{width:100%}.admin-report-status-overview{grid-template-columns:1fr 1fr}}

/* User-facing support case and inline conversation */
.user-report-page { min-height: calc(100vh - 76px); background: #f5f7f3; }
.user-report-container { max-width: 1160px; }
.user-report-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin: 1.8rem 0 1.4rem; }
.user-report-hero h1 { max-width: 820px; margin: .35rem 0 .55rem; font-size: clamp(2.55rem, 6vw, 4.8rem); line-height: .98; letter-spacing: -.04em; overflow-wrap: anywhere; }
.user-report-hero p { max-width: 680px; margin: 0; color: var(--muted); }
.user-report-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(285px, 355px); gap: 1.25rem; align-items: start; }
.user-report-conversation { display: grid; gap: .9rem; }
.user-report-message { position: relative; padding: 1.15rem 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 10px 28px rgba(12,58,43,.055); }
.user-report-message.is-support { margin-right: 2.5rem; border-color: #9fc8b4; background: #f2f9f5; box-shadow: inset 4px 0 0 var(--green), 0 10px 28px rgba(12,58,43,.055); }
.user-report-message.is-user:not(.is-original) { margin-left: 2.5rem; border-color: #e1c3b1; background: #fff9f5; box-shadow: inset -4px 0 0 #ba7044, 0 10px 28px rgba(12,58,43,.055); }
.user-report-message header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.user-report-message header > div { display: flex; align-items: center; gap: .65rem; }
.user-report-avatar { display: grid; min-width: 2rem; height: 2rem; padding: 0 .4rem; place-items: center; border-radius: .55rem; background: var(--green-dark); color: #fff; font-size: .65rem; font-weight: 900; }
.user-report-message.is-user .user-report-avatar { background: #f0dfd4; color: #773a1e; }
.user-report-message header strong { font-size: .76rem; }
.user-report-message time,.user-report-message > small { color: var(--muted); font-size: .63rem; }
.user-report-message p { margin: 0 0 .65rem; line-height: 1.65; white-space: pre-wrap; }
.user-report-sidebar { display: grid; gap: .9rem; position: sticky; top: 90px; }
.user-report-reply,.user-report-summary { padding: 1.2rem; border: 1px solid #9fc8b4; border-radius: 1rem; background: #fff; box-shadow: 0 14px 34px rgba(12,58,43,.08); }
.user-report-reply { border-top: 5px solid #ba7044; }
.user-report-reply h2,.user-report-summary h2 { margin: .35rem 0 .5rem; font-size: 1.55rem; }
.user-report-reply > p,.user-report-summary > p { margin: 0 0 1rem; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.user-report-reply .field { margin: 0 0 .85rem; }
.user-report-reply textarea { resize: vertical; }
.user-report-reply .button { width: 100%; }
.user-report-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .85rem; background: #fff; }
.user-report-facts div { display: grid; gap: .2rem; padding: .8rem; }.user-report-facts div + div { border-left: 1px solid var(--line); }.user-report-facts dt { color: var(--muted); font-size: .58rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.user-report-facts dd { margin: 0; font-size: .72rem; font-weight: 750; }
.user-report-waiting { display: flex; align-items: center; gap: .8rem; padding: 1rem; border: 1px dashed #a9bdb2; border-radius: .9rem; color: var(--muted); }.user-report-waiting > span { display: grid; width: 2.1rem; height: 2.1rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #e2f0e7; color: var(--green-dark); font-weight: 900; }.user-report-waiting strong { color: var(--ink); font-size: .75rem; }.user-report-waiting p { margin: .15rem 0 0; font-size: .7rem; }
@media(max-width:900px){.user-report-layout{grid-template-columns:1fr}.user-report-sidebar{position:static;grid-row:1}.user-report-message.is-support{margin-right:1.25rem}.user-report-message.is-user:not(.is-original){margin-left:1.25rem}}
@media(max-width:620px){.user-report-hero{align-items:flex-start;flex-direction:column;gap:1rem}.user-report-message.is-support,.user-report-message.is-user:not(.is-original){margin-right:0;margin-left:0}.user-report-message header{align-items:flex-start;flex-direction:column}.user-report-facts{grid-template-columns:1fr}.user-report-facts div + div{border-top:1px solid var(--line);border-left:0}}
.problem-report-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(28px, 6vw, 72px);
  align-items: end;
  padding: 40px 0 34px;
}
.problem-report-hero h1 { max-width: 680px; margin: 8px 0 0; font-size: clamp(3rem, 7vw, 5.8rem); line-height: .94; }
.problem-report-hero .lead { margin: 0 0 8px; }
.problem-report-form { padding: clamp(22px, 4vw, 34px); }
.report-image-picker {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 88px;
  padding: 16px;
  border: 1px dashed #a9beb2;
  border-radius: 14px;
  background: #f7faf8;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.report-image-picker:hover { border-color: var(--green); background: #f1f7f3; }
.report-image-picker strong, .report-image-picker small { display: block; }
.report-image-picker small { margin-top: 3px; color: var(--muted); font-weight: 450; }
.report-image-icon {
  position: relative;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: #e3efe8;
}
.report-image-icon::before {
  position: absolute;
  inset: 10px;
  border: 2px solid var(--green);
  border-radius: 3px;
  content: "";
}
.report-image-icon::after {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 13px;
  height: 13px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--green);
  box-shadow: inset 0 0 0 3px var(--green);
  content: "+";
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  line-height: 10px;
  text-align: center;
}
.report-image-selection { color: var(--muted); font-size: .8rem; }
.report-image-selection.has-files { color: var(--green-dark); font-weight: 700; }
.report-attachment-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 16px 0; }
.report-attachment-grid a { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #f7faf8; color: var(--ink); text-decoration: none; }
.report-attachment-grid img { display: block; width: 100%; height: 120px; object-fit: cover; }
.report-attachment-grid span { display: block; overflow: hidden; padding: 8px 10px; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-import-feedback-documents { margin-top: 1.2rem; }
.admin-import-feedback-documents h3 { margin-bottom: .55rem; }
.admin-import-feedback-documents .report-attachment-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 0; }
.admin-import-feedback-documents .report-attachment-grid a { display: grid; gap: .18rem; padding: .8rem .9rem; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.admin-import-feedback-documents .report-attachment-grid a:hover { border-color: var(--green); background: var(--mint); transform: translateY(-1px); }
.admin-import-feedback-documents .report-attachment-grid span { padding: 0; font-size: .84rem; font-weight: 800; }
.admin-import-feedback-documents .report-attachment-grid small { color: var(--muted); font-size: .72rem; }
.admin-import-cache-total { min-width: 180px; display: grid; gap: .1rem; padding: 1rem 1.2rem; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.admin-import-cache-total strong { font: 800 2rem/1 Georgia, serif; color: var(--green); }
.admin-import-cache-total span { font-weight: 800; }
.admin-import-cache-total small { color: var(--muted); }
.admin-import-log-list { display: grid; gap: 1rem; margin-top: 1.25rem; }
.admin-import-log-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow-small); }
.admin-import-log-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.admin-import-log-card h2 { margin: .5rem 0 .2rem; font-size: 1.15rem; overflow-wrap: anywhere; }
.admin-import-log-card header p { margin: 0; color: var(--muted); font-size: .82rem; }
.admin-import-log-summary { display: grid; grid-template-columns: repeat(4, minmax(105px, 1fr)); gap: .65rem; margin: 1rem 0; }
.admin-import-log-summary div { padding: .7rem .75rem; border-radius: 12px; background: var(--mint); }
.admin-import-log-summary dt { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.admin-import-log-summary dd { margin: .2rem 0 0; font-weight: 900; }
.admin-import-document-cache { margin: 0 0 .9rem; padding: .7rem .8rem; border-left: 3px solid var(--green); background: var(--cream); color: var(--muted); font-size: .82rem; }
.admin-import-log-details { border-top: 1px solid var(--line); padding-top: .8rem; }
.admin-import-log-details summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 850; }
.admin-import-log-details summary span { color: var(--muted); font-size: .75rem; }
.admin-import-files { display: grid; grid-template-columns: minmax(12rem, .4fr) minmax(0, 1.6fr); gap: 1rem; align-items: start; margin: 1rem 0; padding: .9rem; border: 1px solid var(--line); border-radius: 14px; background: #f8faf9; }
.admin-import-files h3 { margin: .3rem 0 0; font-size: 1rem; }
.admin-import-file-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .55rem; }
.admin-import-file-list a { display: grid; grid-template-columns: 2.7rem minmax(0, 1fr) auto; gap: .65rem; align-items: center; min-width: 0; padding: .7rem; border: 1px solid #c5d5cc; border-radius: 11px; background: #fff; color: inherit; text-decoration: none; }
.admin-import-file-list a:hover { border-color: var(--green); background: #f1f8f4; }
.admin-import-file-list a > span:first-child { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .65rem; background: #e4f0e9; color: var(--green-dark); font-size: .62rem; font-weight: 900; }
.admin-import-file-list a > span:nth-child(2) { display: grid; min-width: 0; gap: .12rem; }
.admin-import-file-list strong, .admin-import-file-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-import-file-list small { color: var(--muted); font-size: .67rem; }
.admin-ai-packet-list { display: grid; gap: .8rem; margin-top: 1rem; }
.admin-ai-packet { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.admin-ai-packet > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .9rem; background: #f7faf8; }
.admin-ai-packet > header > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .55rem; align-items: center; min-width: 0; }
.admin-ai-packet > header h3 { overflow-wrap: anywhere; margin: 0; font-size: .95rem; }
.admin-ai-packet > header small { grid-column: 1 / -1; color: var(--muted); }
.admin-ai-packet > header > strong { color: var(--muted); font-size: .72rem; text-align: right; }
.admin-ai-packet > dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--line); }
.admin-ai-packet > dl div { padding: .7rem .8rem; background: #fff; }
.admin-ai-packet dt { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.admin-ai-packet dd { margin: .15rem 0 0; font-weight: 850; }
.admin-ai-diagnostics { display: grid; gap: .5rem; padding: .8rem; border-top: 1px solid var(--line); }
.admin-ai-diagnostics details { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.admin-ai-diagnostics summary { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; background: #f6f9f7; cursor: pointer; font-size: .76rem; font-weight: 850; }
.admin-ai-diagnostics pre { max-height: 32rem; margin: 0; padding: .85rem; overflow: auto; border-top: 1px solid var(--line); background: #13251f; color: #e8f4ed; font: 500 .72rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-ai-diagnostics-missing { margin: .8rem; padding: .75rem; border-radius: 9px; background: #f4f7f5; color: var(--muted); font-size: .76rem; }
.admin-import-phase-list { padding: 1rem 0 .2rem; }
.admin-import-phase-list h3 { margin: 0 0 .65rem; font-size: .95rem; }
.admin-import-phase-list ol { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.admin-import-phase-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: center; padding: .65rem .75rem; border-radius: 10px; background: #f7f9f8; }
.admin-import-phase-list li div { display: grid; gap: .1rem; }
.admin-import-phase-list small { color: var(--muted); font-size: .68rem; }
.admin-import-log-table-wrap { overflow-x: auto; margin-top: .8rem; }
.admin-import-log-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .78rem; }
.admin-import-log-table th, .admin-import-log-table td { padding: .65rem .55rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.admin-import-log-table th { color: var(--muted); font-size: .66rem; text-transform: uppercase; letter-spacing: .04em; }
.admin-import-log-table td small { display: block; margin-top: .12rem; color: var(--muted); }
.admin-log-state { display: inline-flex; padding: .2rem .45rem; border-radius: 999px; background: var(--cream); font-weight: 850; }
.admin-log-state.is-completed, .admin-log-state.is-cache_hit { color: var(--green); background: var(--mint); }
.admin-log-state.is-failed { color: var(--danger); background: #fff1ef; }
.admin-import-log-table tr.is-phase-event { color: var(--muted); }
@media (max-width: 900px) {
  .admin-import-log-summary { grid-template-columns: repeat(2, minmax(90px, 1fr)); }
  .admin-import-files { grid-template-columns: 1fr; }
  .admin-ai-packet > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .admin-import-log-card > header, .admin-report-hero { align-items: stretch; flex-direction: column; }
  .admin-import-cache-total { width: 100%; }
  .admin-import-log-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-ai-packet > header { flex-direction: column; }
  .admin-ai-packet > header > strong { text-align: left; }
  .admin-ai-packet > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.course-feedback-receipt { display: grid; width: 100%; gap: 18px; }
.course-feedback-receipt dl { display: grid; grid-template-columns: 180px minmax(0, 1fr); margin: 0; overflow: hidden; border: 1px solid #c8ddd1; border-radius: 13px; background: rgba(255,255,255,.6); }
.course-feedback-receipt dl > div { display: contents; }
.course-feedback-receipt dt, .course-feedback-receipt dd { margin: 0; padding: 13px 15px; border-bottom: 1px solid #d7e5dc; }
.course-feedback-receipt dl > div:last-child dt, .course-feedback-receipt dl > div:last-child dd { border-bottom: 0; }
.course-feedback-receipt dt { color: var(--muted); font-size: .78rem; font-weight: 750; }
.course-feedback-receipt dd { overflow-wrap: anywhere; }

.directory-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .32fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 24px;
  padding: 16px;
}
.directory-toolbar .field { margin: 0; }
.directory-toolbar .button { min-height: 48px; }
.organization-directory-toolbar { border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.directory-card-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.directory-card-meta > span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #eef3f0;
  color: #53675f;
  font-size: .68rem;
  font-weight: 700;
}
.directory-card-meta .directory-access.is-open { background: #dcf1e5; color: #086443; }
.directory-card-meta .directory-access.is-invite_only { background: #f5edda; color: #765813; }
.directory-card-meta .directory-access.is-closed { background: #f4e7e7; color: #934040; }
.directory-card p { margin-bottom: 12px; }

.member-row { grid-template-columns: 40px minmax(0, 1fr) auto auto; }
.member-remove-form { margin: 0; }
.member-remove-button {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid #e2b4b4;
  border-radius: 10px;
  background: #fffafa;
  color: var(--danger);
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}
.member-remove-button:hover { border-color: var(--danger); background: #fbeeee; }
.member-remove-icon { position: relative; width: 15px; height: 15px; }
.member-remove-icon::before, .member-remove-icon::after { position: absolute; top: 7px; left: 1px; width: 13px; height: 1.5px; border-radius: 2px; background: currentColor; content: ""; transform: rotate(45deg); }
.member-remove-icon::after { transform: rotate(-45deg); }

.dashboard-priority-panel { margin: 18px 0 24px; border-color: #9fc2af; box-shadow: 0 12px 30px rgba(15, 83, 62, .08); }
.dashboard-domain-grid { margin-top: 24px; }
.dashboard-course-tabs {
  display: flex;
  gap: 5px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  background: #f5f8f6;
}
.dashboard-course-tabs button {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .76rem;
  font-weight: 800;
  cursor: pointer;
}
.dashboard-course-tabs button span { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 999px; background: #e2eae5; font-size: .66rem; }
.dashboard-course-tabs button[aria-selected="true"] { background: #fff; color: var(--green-dark); box-shadow: 0 2px 8px rgba(11,52,39,.08); }
.dashboard-course-tabs button[aria-selected="true"] span { background: #dceee4; }
.dashboard-course-card.is-next { background: linear-gradient(90deg, #f1f8f4, #fff); }
.dashboard-course-mark.is-complete { background: #dceee4; color: var(--green-dark); }
[data-course-filter-item][hidden] { display: none !important; }

@media (max-width: 760px) {
  .problem-report-hero { grid-template-columns: 1fr; gap: 16px; padding-top: 28px; }
  .report-image-picker { grid-template-columns: auto minmax(0, 1fr); }
  .report-image-picker .button { grid-column: 1 / -1; width: 100%; }
  .directory-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .directory-toolbar .button { width: 100%; }
  .course-feedback-receipt dl { grid-template-columns: 1fr; }
  .course-feedback-receipt dl > div { display: grid; }
  .course-feedback-receipt dt { padding-bottom: 2px; border-bottom: 0; }
  .course-feedback-receipt dd { padding-top: 5px; }
  .member-row { grid-template-columns: 40px minmax(0, 1fr); }
  .member-row > .pill, .member-role, .member-remove-form { grid-column: 2; justify-self: start; }
}

/* Organization learning view and actionable directory results */
.organization-directory-result { overflow: hidden; padding: 0; box-shadow: var(--shadow-small); }
.organization-directory-result-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 15px;
  align-items: center;
  padding: 20px;
  color: var(--ink);
  text-decoration: none;
}
.organization-directory-result-main:hover { background: #f7faf8; text-decoration: none; }
.organization-directory-result-main > b { color: var(--green); font-size: 1.15rem; }
.organization-directory-copy { display: grid; min-width: 0; }
.organization-directory-copy > strong { margin: 3px 0 6px; font: 700 1.45rem/1.08 Georgia, "Times New Roman", serif; }
.organization-directory-copy > small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; }
.organization-directory-result > footer {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 14px 11px 20px;
  border-top: 1px solid var(--line);
  background: #f7faf8;
}
.organization-directory-result > footer form { margin: 0; }
.organization-directory-result > footer .button { flex: 0 0 auto; }

.organization-member-overview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 38px;
  padding: clamp(22px, 3.5vw, 30px);
  border: 1px solid #b8d0c2;
  border-radius: 20px;
  background: linear-gradient(135deg, #edf6f0, #fff);
  box-shadow: 0 12px 34px rgba(11, 55, 41, .055);
}
.organization-member-overview-copy { display: flex; min-width: 0; align-items: center; gap: 18px; }
.organization-member-overview h2 { margin: 4px 0 6px; font-size: clamp(1.7rem, 3vw, 2.25rem); }
.organization-member-overview p { margin: 0; color: var(--muted); }
.organization-learning-icon { position: relative; width: 58px; height: 58px; flex: 0 0 58px; border-radius: 16px; background: var(--green); }
.organization-learning-icon::before { position: absolute; top: 16px; left: 14px; width: 27px; height: 22px; border: 2px solid #fff; border-radius: 3px; content: ""; }
.organization-learning-icon::after { position: absolute; top: 22px; left: 21px; width: 16px; height: 2px; background: #fff; box-shadow: 0 6px 0 #fff; content: ""; }
.organization-member-overview dl { display: grid; grid-template-columns: repeat(2, minmax(105px, 1fr)); gap: 8px; margin: 0; }
.organization-member-overview dl > div { min-width: 105px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.82); }
.organization-member-overview dt { color: var(--muted); font-size: .68rem; font-weight: 750; }
.organization-member-overview dd { margin: 4px 0 0; color: var(--green-dark); font: 700 1.65rem/1 Georgia, serif; }

.organization-course-main {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto 18px;
  gap: 13px;
  align-items: center;
  padding: 16px 18px;
}
.organization-course-card.is-complete { border-color: #a8cab6; background: linear-gradient(90deg, #f0f8f3, #fff); }
.organization-course-number { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #e3eee7; color: var(--green-dark); font-size: .68rem; font-weight: 850; }
.organization-course-card.is-complete .organization-course-number { background: var(--green); color: #fff; }
.organization-course-copy { display: grid; min-width: 0; }
.organization-course-status { display: grid; justify-items: end; gap: 5px; }
.organization-course-status > small { color: var(--muted); font-size: .64rem; }
.organization-course-status .pill.is-complete { background: #dcefe4; color: #075e41; }
.organization-course-status .pill.is-active { background: #e7f0ff; color: #315b8b; }
.organization-course-main > b { color: var(--green); }

.course-module-intro-card {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 14px 0 12px;
  padding: 12px 14px;
  border: 1px solid #c7d8ce;
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.course-module-intro-card:hover { border-color: var(--green); background: #f3f8f5; text-decoration: none; transform: translateY(-1px); }
.course-module-intro-card > span:nth-child(2) { display: grid; }
.course-module-intro-card small { margin-top: 2px; color: var(--muted); font-size: .68rem; }
.course-module-intro-card > b { color: var(--green); font-size: .72rem; }
.course-module-intro-icon { position: relative; width: 38px; height: 38px; border-radius: 10px; background: #e2efe7; }
.course-module-intro-icon::before { position: absolute; top: 11px; left: 14px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid var(--green); content: ""; }
.course-tree-item.is-complete { border-color: #a9cbb7; background: #f4faf6; }
.course-unit-completion { display: inline-flex; align-items: center; gap: 5px; color: #126347; font-size: .68rem; font-weight: 800; }
.course-unit-completion > span { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: .62rem; }

@media (max-width: 760px) {
  .organization-directory-result > footer { align-items: stretch; flex-direction: column; }
  .organization-directory-result > footer .button { width: 100%; }
  .organization-member-overview { align-items: stretch; flex-direction: column; }
  .organization-member-overview dl { width: 100%; }
  .organization-course-main { grid-template-columns: 38px minmax(0, 1fr) 18px; }
  .organization-course-status { grid-column: 2; justify-items: start; }
  .organization-course-main > b { grid-column: 3; grid-row: 1 / span 2; }
  .course-module-intro-card { grid-template-columns: 38px minmax(0, 1fr); }
  .course-module-intro-card > b { grid-column: 2; }
}

/* File previews, people directories and public profile handoff */
.problem-report-hero { display: block; }
.problem-report-hero h1 {
  max-width: none;
  overflow-wrap: normal;
  hyphens: none;
  font-size: clamp(3.2rem, 7vw, 5.4rem);
  white-space: nowrap;
}
.problem-report-hero .lead { max-width: 720px; margin: 12px 0 0; }
.course-module-intro-card.is-manager { margin-bottom: 12px; background: #fff; }
.course-module-primary-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.course-module-primary-actions .course-module-intro-card { flex: 1 1 320px; margin: 0; }
.course-module-edit-link { display: inline-flex; margin: 0; }
.course-module-overview-row {
  display: grid;
  min-height: 98px;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  margin: 16px 0;
  padding: 16px 18px 13px;
  border: 1px solid #c7d8ce;
  border-radius: 12px;
  background: #fff;
}
.course-module-overview-copy { display: grid; min-width: 0; gap: 2px; }
.course-module-overview-copy > strong { font-size: .9rem; line-height: 1.25; }
.course-module-overview-copy > small { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.course-module-overview-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-start; gap: 18px; padding-top: 11px; border-top: 1px solid var(--line); }
.course-module-overview-actions > .text-link { white-space: nowrap; }
.course-module-overview-actions .course-unit-actions { margin-left: auto; padding-left: 14px; border-left: 1px solid var(--line); }
.course-library-toolbar {
  display: grid;
  grid-template-columns: minmax(250px, 1.35fr) minmax(170px, .68fr) minmax(220px, .9fr) minmax(165px, .66fr) auto;
  gap: 10px;
  align-items: center;
  margin: 0 0 24px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow-small);
}
.course-library-toolbar label { min-width: 0; }
.course-library-toolbar .input { width: 100%; min-height: 44px; }
.course-library-search { position: relative; display: block; }
.course-library-search .people-search-icon { position: absolute; top: 50%; left: 15px; z-index: 1; transform: translateY(-50%); }
.course-library-search input {
  width: 100%;
  min-height: 44px;
  padding: 9px 13px 9px 44px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.course-library-search input:focus { border-color: var(--green); outline: 3px solid rgba(18, 101, 77, .1); }
.course-library-result-count { color: var(--muted); font-size: .68rem; font-weight: 800; white-space: nowrap; }
.course-library-filter-empty { display: grid; gap: 3px; margin-bottom: 22px; padding: 24px; border: 1px dashed var(--line-strong); border-radius: 13px; background: var(--surface-soft); text-align: center; }
.course-library-filter-empty[hidden] { display: none; }
.course-library-filter-empty span { color: var(--muted); font-size: .74rem; }
@media (max-width: 1120px) {
  .course-library-toolbar { grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(190px, .75fr)); }
  .course-library-toolbar > label:last-of-type { grid-column: 2; }
  .course-library-result-count { grid-column: 3; grid-row: 2; justify-self: end; }
}
@media (max-width: 760px) {
  .course-module-overview-actions { flex-wrap: wrap; justify-content: flex-start; }
  .course-module-overview-actions .course-unit-actions { margin-left: auto; }
  .course-library-toolbar { grid-template-columns: 1fr; }
  .course-library-result-count { padding: 2px 4px; }
}
.report-image-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.report-image-preview {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: 66px minmax(0, 1fr) 34px;
  gap: 11px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.report-image-preview img { width: 66px; height: 54px; border-radius: 8px; object-fit: cover; background: #edf2ef; }
.report-image-preview > span { display: grid; min-width: 0; }
.report-image-preview strong, .report-image-preview small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-image-preview strong { font-size: .74rem; }
.report-image-preview small { margin-top: 3px; color: var(--muted); font-size: .66rem; }
.report-image-remove {
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 1px solid #e1bcbc;
  border-radius: 9px;
  background: #fffafa;
  color: var(--danger);
  font: inherit;
  font-size: 1rem;
  font-weight: 800;
  cursor: pointer;
}
.report-image-remove:hover { border-color: var(--danger); background: #f9e9e9; }

.people-directory-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(155px, auto);
  gap: 8px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfb;
}
.people-search { position: relative; display: block; }
.people-search input {
  width: 100%;
  min-height: 42px;
  padding: 9px 12px 9px 39px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: .78rem;
  outline: 0;
}
.people-search input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(15,116,88,.1); }
.people-search-icon { position: absolute; z-index: 1; top: 12px; left: 13px; width: 15px; height: 15px; border: 2px solid var(--green); border-radius: 50%; }
.people-search-icon::after { position: absolute; right: -5px; bottom: -3px; width: 6px; height: 2px; border-radius: 2px; background: var(--green); content: ""; transform: rotate(45deg); }
.people-sort .input { min-height: 42px; }
.people-directory-empty { padding: 22px; color: var(--muted); text-align: center; }
[data-person-row][hidden] { display: none !important; }

.member-row { grid-template-columns: 40px minmax(0, 1fr) auto; }
.member-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.member-row-actions .member-role .input { min-height: 40px; }
.member-remove-button.is-compact { width: 40px; min-width: 40px; height: 40px; justify-content: center; padding: 0; }

.profile-public-preview {
  display: grid;
  min-width: 300px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, #fff, #edf6f0);
  color: var(--ink);
  box-shadow: var(--shadow-small);
  text-decoration: none;
  transition: border-color .16s ease, transform .16s ease;
}
.profile-public-preview:hover { border-color: var(--green); text-decoration: none; transform: translateY(-1px); }
.profile-public-preview > span:nth-child(2) { display: grid; min-width: 0; }
.profile-public-preview small { color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.profile-public-preview strong { overflow: hidden; margin: 2px 0; text-overflow: ellipsis; white-space: nowrap; }
.profile-public-preview em { color: var(--muted); font-size: .68rem; font-style: normal; }
.profile-public-preview > b { color: var(--green); }

@media (max-width: 900px) {
  .problem-report-hero h1 { white-space: normal; }
  .member-row-actions { flex-wrap: wrap; }
}

@media (max-width: 760px) {
  .problem-report-hero { grid-template-columns: 1fr; }
  .problem-report-hero h1 { font-size: clamp(3rem, 15vw, 4.7rem); }
  .people-directory-toolbar { grid-template-columns: 1fr; }
  .member-row { grid-template-columns: 40px minmax(0, 1fr); }
  .member-row-actions { grid-column: 2; justify-content: flex-start; }
  .profile-public-preview { width: 100%; min-width: 0; }
}

/* Profile milestones and private learning history */
.achievement-list article > em { display: grid; grid-column: 2; justify-self: start; align-self: start; gap: .05rem; padding: .32rem .52rem; border-radius: .65rem; background: #dff2e8; color: var(--green); font-size: .62rem; font-style: normal; font-weight: 850; }
.achievement-list article > em small { color: #3e6858; font-size: .56rem; font-weight: 700; }
.achievement-list article.is-achieved { border-color: #72b398; background: linear-gradient(145deg, #edf9f2, #fff); box-shadow: inset 0 1px rgba(255,255,255,.9), 0 9px 24px rgba(11,70,52,.1); }
.achievement-list article.is-upcoming { border-color: #c6cec9; border-style: dashed; background: linear-gradient(145deg, #fbfaf6, #fff); box-shadow: none; }
.achievement-list article.is-upcoming .achievement-badge { filter: saturate(.22) contrast(.92); opacity: .86; }
.achievement-list article.is-upcoming .achievement-badge i, .achievement-list article.is-upcoming .achievement-badge small { color: #fff; opacity: 1; text-shadow: 0 1px 3px rgba(0,0,0,.45); }
.achievement-list article.is-upcoming > em { border: 1px solid #d6ddd8; background: #f6f7f5; color: #596760; }
.profile-history-panel { margin-top: 18px; }
.profile-history-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.profile-history-heading h2 { margin: 4px 0 0; }
.profile-history-heading p { color: var(--muted); }
.profile-history-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.profile-history-grid h3 { margin: 0 0 10px; }
.profile-history-list { display: grid; gap: 8px; }
.profile-history-list a {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--ink);
  text-decoration: none;
}
.profile-history-list a:hover { border-color: var(--green); text-decoration: none; }
.profile-history-list a > span { min-width: 0; }
.profile-history-list strong, .profile-history-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-history-list small { margin-top: 3px; color: var(--muted); font-size: .7rem; }
.profile-history-list b { color: var(--green); font-size: .72rem; white-space: nowrap; }

/* Resilient exams and exercise-style evaluation */
.exam-safety-settings,
.exam-evaluation-settings {
  display: grid;
  gap: 14px;
  margin-top: 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f7faf8;
}
.exam-safety-settings h3,
.exam-evaluation-settings h3 { margin: 0; }
.exam-evaluation-settings fieldset { display: grid; gap: 10px; padding: 0; border: 0; }
.exam-evaluation-settings legend { margin-bottom: 9px; font-weight: 850; }
.exam-criteria-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.exam-criteria-grid label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}
.exam-criteria-grid input { margin-top: 2px; accent-color: var(--green); }
.exam-criteria-grid strong { font-size: .76rem; line-height: 1.35; }
.exam-save-state {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 10px 14px;
  border: 1px solid #cfe1d6;
  border-radius: 12px;
  background: #f2f8f4;
}
.exam-save-state > span:first-child { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; }
.exam-save-state strong, .exam-save-state small { display: block; }
.exam-save-state small { margin-top: 2px; color: var(--muted); font-size: .69rem; }
.exam-save-state[data-state="saving"] > span:first-child { background: #b17a09; }
.exam-save-state[data-state="offline"] { border-color: #e0b8b8; background: #fff6f6; }
.exam-save-state[data-state="offline"] > span:first-child { background: var(--danger); }
.exam-bar time.is-urgent { color: #a63c35; animation: exam-timer-pulse 1.4s ease-in-out infinite; }
@keyframes exam-timer-pulse { 50% { opacity: .58; } }
.result-hero.aborted { border-color: #dfb7b7; background: #fff1f1; }
.exam-answer-evaluation { display: grid; gap: 12px; margin-top: 24px; }
.exam-answer-card { overflow: hidden; padding: 0; }
.exam-answer-card > summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto 22px;
  gap: 13px;
  align-items: center;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
}
.exam-answer-card > summary::-webkit-details-marker { display: none; }
.exam-answer-card > summary small, .exam-answer-card > summary strong { display: block; }
.exam-answer-card > summary small { margin-bottom: 3px; color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.exam-answer-number { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--green); color: #fff; font-weight: 850; }
.exam-answer-score { padding: 7px 10px; border-radius: 999px; background: #edf5f0; font-size: .73rem; font-weight: 850; white-space: nowrap; }
.exam-answer-card.needs-review .exam-answer-score { background: #fff0d2; }
.exam-answer-card > summary > i { color: var(--green); font-style: normal; transition: transform .15s ease; }
.exam-answer-card[open] > summary > i { transform: rotate(180deg); }
.exam-answer-body { padding: 0 20px 20px; border-top: 1px solid var(--line); background: #fbfcfb; }
.exam-answer-body .result-section { padding: 20px 0 0; }
.exam-answer-body .result-section + .result-section { margin-top: 20px; border-top: 1px solid var(--line); }
.exam-answer-body h3 { margin: 4px 0 0; font-size: 1.6rem; }
.feedback-item.is-manual { border-style: dashed; }
.exam-rule-protocol { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.exam-rule-protocol > summary { cursor: pointer; color: var(--green); font-size: .72rem; font-weight: 800; }
.exam-grading-panel,
.exam-recovery-panel { display: grid; gap: 18px; margin-top: 20px; }
.exam-grading-panel h2, .exam-recovery-panel h2 { margin: 4px 0 5px; }
.exam-grading-panel p, .exam-recovery-panel p { margin: 0; color: var(--muted); }
.exam-manual-score-list { display: grid; gap: 8px; }
.exam-manual-score-list > label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  gap: 16px;
  align-items: center;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcfb;
}
.exam-manual-score-list strong, .exam-manual-score-list small { display: block; }
.exam-manual-score-list small { margin-top: 2px; color: var(--muted); }
.exam-manual-score-list label > span:last-child { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; }
.exam-manual-score-list em { color: var(--muted); font-size: .7rem; font-style: normal; white-space: nowrap; }
.exam-recovery-panel { grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-style: dashed; }

@media (max-width: 760px) {
  .profile-history-heading { align-items: flex-start; flex-direction: column; }
  .profile-history-grid, .exam-criteria-grid { grid-template-columns: 1fr; }
  .achievement-list { grid-template-columns: 1fr; }
  .achievement-list article { grid-template-columns: auto minmax(0, 1fr); }
  .exam-answer-card > summary { grid-template-columns: 38px minmax(0, 1fr) 18px; }
  .exam-answer-score { grid-column: 2; justify-self: start; }
  .exam-answer-card > summary > i { grid-column: 3; grid-row: 1 / span 2; }
  .exam-manual-score-list > label, .exam-recovery-panel { grid-template-columns: 1fr; }
}

/* Focused exam results, participant history and live supervision */
.exam-result-page .result-container,
.exam-preview-result-page .result-container { max-width: 1220px; }
.exam-result-workspace {
  display: grid;
  grid-template-columns: minmax(230px, 290px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
.exam-result-sidebar { top: 92px; }
.exam-result-sidebar .exam-player-sidebar-heading p { font-size: .68rem; line-height: 1.55; }
.exam-result-panel {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--shadow-small);
}
.exam-result-panel[hidden] { display: none; }
.exam-result-task-heading { padding: clamp(20px, 3vw, 30px); border-bottom: 1px solid var(--line); }
.exam-result-task-meta { display: flex; flex-wrap: wrap; gap: 16px; color: var(--muted); font-size: .72rem; }
.exam-result-task-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-top: 10px; }
.exam-result-task-title h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.3rem); overflow-wrap: anywhere; }
.exam-result-task-title p { margin: 4px 0 0; color: var(--muted); }
.exam-result-task-title .exam-answer-score { margin-top: 5px; background: #fff0d2; }
.exam-result-task-title .exam-answer-score.is-complete { background: #def1e5; }
.exam-result-prompt { margin: 20px clamp(20px, 3vw, 30px) 0; }
.exam-result-panel > .result-section { padding: clamp(20px, 3vw, 30px); }
.exam-result-panel > .result-section + .result-section { border-top: 1px solid var(--line); }
.exam-result-panel .result-section h3 { margin: 4px 0 0; font-size: clamp(1.45rem, 2.5vw, 2rem); }
.exam-result-feedback { background: #fbfcfb; }
.exam-task-feedback-note { margin-top: 14px; padding: 13px 15px; border-left: 3px solid var(--green); border-radius: 0 9px 9px 0; background: #edf6f1; }
.exam-task-feedback-note strong { font-size: .72rem; }
.exam-task-feedback-note p { margin: 4px 0 0; color: var(--muted); }
.exam-grading-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.exam-model-solution { background: #f0f7f3; }
.booking-review.is-solution { border-color: #9fc8af; background: #fff; }
.exam-result-selections.is-solution > span { border: 1px solid #a9cfb7; background: #e3f3e9; }
.exam-result-actions { position: static; }
.exam-self-check { border: 1px solid #cddfd5; border-radius: .9rem; background: #f2f8f5; }
.exam-self-check-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.exam-task-grading { background: #fffaf0; }
.exam-task-grading-fields { display: grid; grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr); gap: 14px; }
.exam-task-grading-fields > label { display: grid; gap: 6px; color: var(--ink); font-size: .7rem; font-weight: 800; }
.exam-task-score-input { display: grid; grid-template-columns: minmax(90px, 1fr) auto; align-items: center; gap: 8px; }
.exam-task-score-input em { color: var(--muted); font-size: .68rem; font-style: normal; white-space: nowrap; }
.result-hero.pending { border-color: #b9d0c4; background: #eff6f2; }
.exam-end-comment { max-width: 760px; margin-top: 14px !important; padding: 12px 14px; border-left: 3px solid var(--green); background: rgba(255,255,255,.62); }

.exam-preview-timer-choice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
  padding: 15px 17px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.exam-preview-timer-choice > div:first-child { display: grid; gap: 2px; }
.exam-preview-timer-choice small { color: var(--muted); }
.exam-preview-timer-choice .segmented-control { display: flex; padding: 4px; border-radius: 11px; background: var(--surface-soft); }
.exam-preview-timer-choice .segmented-control a {
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none;
}
.exam-preview-timer-choice .segmented-control a.is-active { background: #fff; color: var(--green-dark); box-shadow: 0 2px 8px rgba(8, 45, 34, .08); }
.exam-preview-timer { margin-bottom: 15px; }
.exam-preview-result-kicker { display: grid; justify-items: start; gap: 12px; margin-bottom: 22px; }
.exam-preview-result-kicker .back-link { margin: 0; }
.exam-preview-score {
  display: grid;
  grid-template-columns: minmax(240px, .75fr) minmax(320px, 1.25fr);
  gap: 18px 30px;
  align-items: center;
  margin: 20px 0 28px;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid #d6bd7d;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9e8, #fffdf8);
}
.exam-preview-score.is-passed { border-color: #a9cfb7; background: linear-gradient(135deg, #eaf6ee, #fbfefc); }
.exam-preview-score-intro { display: flex; align-items: center; gap: 15px; }
.exam-preview-score-intro > span:last-child { display: grid; gap: 3px; }
.exam-preview-score-intro small, .exam-preview-score-facts small { color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.exam-preview-score-intro strong { font: 700 clamp(1.55rem, 3vw, 2.3rem)/1.05 Georgia, serif; }
.exam-preview-score-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.exam-preview-score-facts article { display: grid; gap: 3px; padding: 13px; border-radius: 11px; background: rgba(255,255,255,.82); }
.exam-preview-score-facts strong { font: 700 1.25rem/1.1 Georgia, serif; }
.exam-preview-score > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .72rem; }

.exam-participant-layout { display: grid; gap: 28px; margin-top: 28px; }
.exam-start-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
  gap: 28px;
  align-items: center;
  padding: clamp(22px, 4vw, 34px);
  border-color: #a8cbbb;
  background: linear-gradient(135deg, #edf7f1, #fff);
}
.exam-start-card h2 { margin: 5px 0 8px; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.exam-start-card p { max-width: 700px; margin: 0; color: var(--muted); }
.exam-start-card-action { display: grid; min-width: 220px; gap: 12px; }
.exam-start-card-action > span:first-child { display: grid; padding: 11px 13px; border-radius: 10px; background: rgba(255,255,255,.8); }
.exam-start-card-action > span strong { font-family: Georgia, serif; font-size: 1.2rem; }
.exam-start-card-action > span small { color: var(--muted); }
.exam-start-card-action form, .exam-start-card-action .button { width: 100%; }
.exam-start-card-action .button { justify-content: center; }
.exam-attempt-history-list { display: grid; gap: 9px; }
.exam-attempt-history-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) minmax(170px, auto) 18px;
  gap: 14px;
  align-items: center;
  padding: 15px 17px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color .15s ease, transform .15s ease;
}
.exam-attempt-history-card:hover { border-color: #8fb9a2; transform: translateY(-1px); }
.exam-attempt-number { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--green-dark); font-weight: 900; }
.exam-attempt-history-copy, .exam-attempt-history-result { display: grid; gap: 2px; }
.exam-attempt-history-copy small, .exam-attempt-history-result small { color: var(--muted); font-size: .63rem; }
.exam-attempt-history-result { justify-items: end; text-align: right; }
.exam-attempt-history-result strong { font-size: .68rem; }

.exam-management-grid { grid-template-columns: 1fr; }
.exam-monitor { padding: clamp(18px, 3vw, 26px); }
.exam-monitor-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.exam-monitor-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) 210px; gap: 10px; margin: 4px 0 10px; }
.exam-monitor-toolbar .search-field { position: relative; }
.exam-monitor-toolbar .search-field > span { position: absolute; z-index: 1; left: 14px; top: 50%; transform: translateY(-50%); color: var(--green); font-size: 1.1rem; }
.exam-monitor-toolbar .search-field .input { width: 100%; padding-left: 42px; }
.exam-monitor-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.exam-monitor-filters button {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: .62rem;
  font-weight: 800;
  cursor: pointer;
}
.exam-monitor-filters button.is-active { border-color: var(--green); background: #e8f3ec; color: var(--green-dark); }
.exam-monitor-bulk-release {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid #aed0ba;
  border-radius: 11px;
  background: #edf7f1;
}
.exam-monitor-bulk-release > span { display: grid; gap: 2px; }
.exam-monitor-bulk-release small { color: var(--muted); font-size: .61rem; }
.exam-monitor-person > input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--green); }
.exam-monitor-list { display: grid; gap: 8px; }
.exam-monitor-row {
  display: grid;
  grid-template-columns: minmax(190px, .9fr) minmax(210px, 1fr) minmax(150px, .65fr) minmax(170px, auto);
  gap: 15px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.exam-monitor-row[hidden] { display: none; }
.exam-monitor-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.exam-monitor-person > span:last-child, .exam-monitor-progress > span, .exam-monitor-status { display: grid; gap: 2px; min-width: 0; }
.exam-monitor-person strong, .exam-monitor-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.exam-monitor-person small, .exam-monitor-progress small, .exam-monitor-status small { color: var(--muted); font-size: .59rem; }
.exam-monitor-progress { display: grid; gap: 7px; }
.exam-monitor-progress > span { grid-template-columns: auto 1fr; align-items: baseline; gap: 7px; }
.exam-monitor-progress progress { width: 100%; height: 7px; border: 0; border-radius: 99px; overflow: hidden; background: #e5ece7; appearance: none; }
.exam-monitor-progress progress::-webkit-progress-bar { background: #e5ece7; }
.exam-monitor-progress progress::-webkit-progress-value { background: var(--green); }
.exam-monitor-progress progress::-moz-progress-bar { background: var(--green); }
.exam-monitor-status { justify-items: start; }
.exam-monitor-status > strong { font-size: .65rem; }
.exam-monitor-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.exam-monitor-actions form { margin: 0; }
.exam-end-dialog textarea { min-height: 105px; resize: vertical; }
.exam-submit-dialog { width: min(92vw, 560px); }
.exam-submit-check { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.exam-submit-check > span { display: grid; gap: 2px; padding: 14px; border-radius: 11px; background: var(--surface-soft); }
.exam-submit-check strong { font: 700 1.7rem/1 Georgia, serif; }
.exam-submit-check small { color: var(--muted); }
.exam-submit-confirmation { display: flex; gap: 10px; align-items: flex-start; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }
.exam-submit-confirmation input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--green); }
.exam-submit-confirmation span { font-size: .7rem; font-weight: 750; line-height: 1.5; }
.exam-bar > div { display: grid; gap: 4px; }
.exam-bar > div .eyebrow { line-height: 1.2; }

@media (max-width: 980px) {
  .exam-result-workspace { grid-template-columns: 1fr; }
  .exam-result-sidebar { position: static; }
  .exam-result-navigation { display: flex; overflow-x: auto; }
  .exam-result-navigation button { min-width: 220px; }
  .exam-monitor-row { grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr); }
  .exam-monitor-actions { justify-content: flex-start; }
}

@media (max-width: 680px) {
  .exam-start-card, .exam-preview-timer-choice { grid-template-columns: 1fr; align-items: stretch; }
  .exam-preview-timer-choice { display: grid; }
  .exam-preview-timer-choice .segmented-control { display: grid; grid-template-columns: 1fr; }
  .exam-attempt-history-card { grid-template-columns: 38px minmax(0, 1fr) 16px; }
  .exam-attempt-history-result { grid-column: 2; justify-items: start; text-align: left; }
  .exam-attempt-history-card > span:last-child { grid-column: 3; grid-row: 1 / 3; }
  .exam-monitor-stats, .exam-monitor-toolbar, .exam-monitor-row { grid-template-columns: 1fr; }
  .exam-monitor-actions { justify-content: stretch; }
  .exam-monitor-actions .button, .exam-monitor-actions form { width: 100%; }
  .exam-monitor-actions .button { justify-content: center; }
  .exam-result-task-title { flex-direction: column; }
  .exam-task-grading-fields, .exam-preview-score { grid-template-columns: 1fr; }
  .exam-preview-score-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exam-monitor-bulk-release { align-items: stretch; flex-direction: column; }
}

/* Readability baseline: one predictable scale across public, learning and admin views. */
html { font-size: 16px; }
body { font-size: 1rem; line-height: 1.6; }
p, li, label, input, select, textarea, button { line-height: 1.55; }
p { max-width: 72ch; }
h1 { font-size: clamp(2.25rem, 4vw, 4rem); line-height: 1.02; text-wrap: balance; }
h2 { font-size: clamp(1.55rem, 2.5vw, 2.35rem); line-height: 1.12; text-wrap: balance; }
h3 { font-size: clamp(1.12rem, 1.5vw, 1.4rem); line-height: 1.25; }
.eyebrow { font-size: .78rem; line-height: 1.35; }
.fine-print, small { line-height: 1.5; }
.fine-print { font-size: .84rem; }
#content p { font-size: .95rem; line-height: 1.65; }
#content small { font-size: .8rem; line-height: 1.5; }
#content label { font-size: .9rem; line-height: 1.45; }
#content input, #content select, #content textarea { font-size: 1rem; }
#content button, #content .button { font-size: .9rem; }
#content .eyebrow { font-size: .78rem; }
#content .course-workspace-heading .lead,
#content .dashboard-welcome p,
#content .course-discovery-hero p,
#content .course-unit-reading-hero .lead,
#content .problem-report-hero p { font-size: clamp(1rem, 1.3vw, 1.16rem); }

.course-workspace-heading h1,
.dashboard-welcome h1,
.invite-hub-heading h1,
.course-join-copy h1,
.password-recovery-copy h1,
.material-detail-hero h1,
.exam-preview-header h1,
.problem-report-hero h1,
.auth-copy h1,
.profile-heading h1,
.result-hero h1,
.course-unit-hero h1 {
  font-size: clamp(2.5rem, 4.6vw, 4.4rem);
  line-height: 1;
}
.pricing-hero h1, .landing-hero h1 { font-size: clamp(3rem, 5vw, 5.25rem); }
.pricing-benefits-heading h2,
.pricing-offers-heading h2,
.pricing-comparison-heading h2,
.founding-heading h2,
.landing-definition-intro h2,
.landing-section-heading h2,
.landing-final h2,
.dashboard-continue-copy h2,
.invite-created.is-presenting .invite-created-copy h2 {
  font-size: clamp(2rem, 3.6vw, 3.45rem);
  line-height: 1.02;
}
.landing-assurances { font-size: .85rem; }
.course-workspace-heading > p,
.dashboard-welcome p,
.course-unit-hero > p,
.problem-report-hero p { font-size: clamp(1rem, 1.3vw, 1.16rem); line-height: 1.65; }

/* Course discovery puts the common path first and keeps codes as a secondary action. */
.course-join-page { min-height: calc(100vh - 74px); padding: 36px 0 90px; }
.course-join-page .back-link { display: inline-flex; margin-bottom: 34px; }
.course-discovery-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
  gap: clamp(32px, 7vw, 90px);
  align-items: end;
  margin-bottom: 38px;
}
.course-discovery-hero h1 { max-width: 760px; margin: 8px 0 14px; font-size: clamp(2.7rem, 5vw, 4.8rem); line-height: .98; }
.course-discovery-hero p { margin: 0; color: var(--muted); font-size: 1.08rem; }
.public-course-search { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 68px; padding: 8px 9px 8px 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 12px 32px rgba(16,35,29,.07); }
.public-course-search input { min-width: 0; height: 48px; border: 0; outline: 0; background: transparent; font: inherit; }
.public-course-search .button { height: 48px; }
.course-discovery-grid { grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); margin-bottom: 34px; }
.course-discovery-grid .public-course-card { grid-template-columns: 46px minmax(0, 1fr); min-height: 210px; padding: 25px; }
.course-discovery-grid .public-course-card h2 { margin: 4px 0 7px; font-size: 1.55rem; }
.public-course-meta { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 14px; }
.public-course-meta b { color: var(--green); font-size: .88rem; }
.course-code-access { max-width: 760px; margin: 44px auto 0; padding: 0; overflow: hidden; }
.course-code-access > summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 13px; align-items: center; padding: 20px 22px; list-style: none; cursor: pointer; }
.course-code-access > summary::-webkit-details-marker { display: none; }
.course-code-access > summary > span:nth-child(2) { display: grid; gap: 2px; }
.course-code-access > summary small { color: var(--muted); font-size: .86rem; }
.course-code-access-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--green); font-weight: 900; }
.course-code-access-body { padding: 24px; border-top: 1px solid var(--line); }
.join-code-form { display: grid; gap: 10px; }
.join-code-form .button { margin-top: 10px; }
.course-join-layout.is-organization { padding-top: 8px; }

@media (max-width: 860px) {
  .course-discovery-hero, .course-join-layout { grid-template-columns: 1fr; }
  .course-discovery-hero { align-items: stretch; }
  .course-join-page { padding-top: 24px; }
}
@media (max-width: 560px) {
  html { font-size: 15px; }
  h1 { font-size: clamp(2.15rem, 12vw, 3.15rem); }
  .course-discovery-hero h1 { font-size: clamp(2.45rem, 13vw, 3.35rem); }
  .public-course-search { grid-template-columns: 22px 1fr; }
  .public-course-search .button { grid-column: 1 / -1; width: 100%; }
  .course-code-access > summary { padding: 17px; }
}

/* Guided course preview and a visible reading path. */
.course-enrollment-benefit { display: block; margin-top: 10px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.course-preview-section { padding-top: 58px; }
.course-preview-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 34px; align-items: end; margin-bottom: 24px; }
.course-preview-intro h2 { margin: 7px 0 9px; }
.course-preview-intro p { margin: 0; color: var(--muted); font-size: 1.02rem; }
.course-preview-facts { display: flex; gap: 9px; margin: 0; }
.course-preview-facts > div { display: grid; min-width: 105px; gap: 2px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.course-preview-facts dt { color: var(--muted); font-size: .78rem; }
.course-preview-facts dd { margin: 0; font: 700 1.25rem/1.1 Georgia, serif; }
.course-preview-modules { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.course-preview-modules article { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.course-preview-modules article > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--green); font-weight: 900; }
.course-preview-modules article div { display: grid; gap: 5px; }
.course-preview-modules article strong { font: 700 1.2rem/1.2 Georgia, serif; }
.course-preview-modules article p { margin: 0; color: var(--muted); font-size: .88rem; }
.course-preview-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; padding: 22px 24px; border-radius: 14px; background: var(--ink); color: #fff; }
.course-preview-cta > div { display: grid; gap: 2px; }
.course-preview-cta > div strong { font-size: 1.06rem; }
.course-preview-cta > div span { color: #c9d8d0; font-size: .86rem; }
.course-continue-section { padding-top: 38px; }
.course-continue-card { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 15px; align-items: center; padding: 19px 22px; border: 1px solid #8db8a1; border-radius: 15px; background: #eef7f1; color: inherit; text-decoration: none; box-shadow: var(--shadow-small); }
.course-continue-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; background: var(--green); color: #fff; }
.course-continue-card > span:nth-child(2) { display: grid; gap: 2px; }
.course-continue-card small { color: var(--green); font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.course-continue-card strong { font: 700 1.35rem/1.2 Georgia, serif; }
.course-continue-card em { color: var(--muted); font-size: .82rem; font-style: normal; }
.course-continue-card b { color: var(--green); font-size: .92rem; }

.course-reader-navigation { grid-template-columns: minmax(230px, .65fr) minmax(220px, .75fr) minmax(420px, 1.35fr); padding: 13px; }
.course-reader-progress { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px 14px; }
.course-reader-progress > a { font-size: .82rem; }
.course-reader-progress strong { font-size: .9rem; }
.course-reader-progress small { font-size: .78rem; }
.course-reader-progress progress { grid-column: 1 / -1; width: 100%; height: 7px; border: 0; accent-color: var(--green); }
.course-reader-outline { position: relative; }
.course-reader-outline > summary { display: flex; min-height: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-size: .88rem; font-weight: 800; cursor: pointer; }
.course-reader-outline > summary span { color: var(--muted); font-size: .78rem; }
.course-reader-outline > div { position: absolute; z-index: 30; top: calc(100% + 8px); left: 0; display: grid; width: min(420px, 82vw); max-height: 420px; padding: 8px; overflow: auto; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.course-reader-outline a { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; align-items: center; padding: 10px; border-radius: 9px; color: inherit; text-decoration: none; }
.course-reader-outline a:hover, .course-reader-outline a[aria-current="step"] { background: var(--surface-soft); }
.course-reader-outline a > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 7px; background: #e3efe8; color: var(--green); font-weight: 850; }
.course-reader-outline a > span:last-child { display: grid; }
.course-reader-outline a small { color: var(--muted); font-size: .7rem; }
.course-reader-outline a strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.course-reader-pages small { font-size: .7rem; }
.course-reader-pages strong { font-size: .82rem; }
.course-unit-guided-start { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 34px; padding: 25px 28px; border: 1px solid #9fc3af; border-radius: 16px; background: #edf7f1; }
.course-unit-guided-start h2 { margin: 5px 0 7px; }
.course-unit-guided-start p { margin: 0; color: var(--muted); }
.course-unit-reading-layout.without-copy { grid-template-columns: minmax(0, 760px); margin-top: 22px; }
.course-unit-child-list a span { font-size: .72rem; }
.course-unit-child-list a strong { font-size: .92rem; }
.course-module-description { font-size: .84rem; line-height: 1.5; }
.course-tree-footer { font-size: .82rem; }

@media (max-width: 1120px) {
  .course-reader-navigation { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .course-reader-outline { grid-column: 1; grid-row: 2; }
  .course-reader-pages { grid-column: 2; grid-row: 1 / 3; }
}
@media (max-width: 760px) {
  .course-preview-intro { grid-template-columns: 1fr; }
  .course-preview-facts { display: grid; grid-template-columns: repeat(3, 1fr); }
  .course-preview-facts > div { min-width: 0; }
  .course-preview-cta, .course-unit-guided-start { align-items: stretch; flex-direction: column; }
  .course-preview-cta .button, .course-unit-guided-start .button { width: 100%; }
  .course-reader-navigation, .course-reader-pages { grid-template-columns: 1fr; }
  .course-reader-progress, .course-reader-outline, .course-reader-pages { grid-column: 1; grid-row: auto; }
}

/* Ruhige Kursnavigation: ein gemeinsamer Balken statt mehrerer Karten. */
.course-reader-navigation {
  position: relative;
  display: grid;
  min-height: 4rem;
  grid-template-columns: auto minmax(9rem, 1fr) auto auto;
  gap: 0;
  align-items: stretch;
  margin-bottom: 2rem;
  padding: 0 .45rem;
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--shadow-small);
}
.course-reader-navigation > * { min-width: 0; }
.course-reader-navigation > * + * { border-left: 1px solid var(--line); }
.course-reader-back {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: 0 .85rem;
  color: var(--green);
  font-size: .78rem;
  font-weight: 850;
  text-decoration: none;
}
.course-reader-back .ui-icon { width: 1.05rem; height: 1.05rem; }
.course-reader-back:hover { background: var(--surface-soft); }
.course-reader-progress {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(5.5rem, 10rem);
  gap: .65rem;
  align-items: center;
  padding: .65rem .9rem;
}
.course-reader-progress > span { display: grid; min-width: 0; gap: .1rem; }
.course-reader-progress strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.course-reader-progress small { color: var(--muted); font-size: .68rem; }
.course-reader-progress progress { width: 100%; height: .38rem; border: 0; accent-color: var(--green); }
.course-reader-outline { position: relative; }
.course-reader-outline > summary {
  display: flex;
  min-height: 100%;
  align-items: center;
  gap: .55rem;
  padding: 0 .9rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: .77rem;
  font-weight: 800;
  cursor: pointer;
}
.course-reader-outline > summary:hover,
.course-reader-outline[open] > summary { background: var(--surface-soft); }
.course-reader-outline > summary b { color: var(--muted); font-size: .68rem; }
.course-reader-outline > div { right: 0; left: auto; }
.course-reader-pages {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .25rem .5rem .65rem;
}
.course-reader-pages > .course-reader-step {
  display: inline-flex;
  width: min(15rem, 18vw);
  min-width: 7.5rem;
  height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 0 .65rem;
  border: 0;
  border-radius: .65rem;
  background: transparent;
  color: var(--green-dark);
  text-decoration: none;
}
.course-reader-step-copy { display: grid; min-width: 0; flex: 1; gap: .05rem; }
.course-reader-step.is-previous .course-reader-step-copy { text-align: left; }
.course-reader-step.is-next .course-reader-step-copy { text-align: right; }
.course-reader-step-copy small { color: var(--muted); font-size: .57rem; font-weight: 720; line-height: 1; }
.course-reader-step strong { overflow: hidden; font-size: .69rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.course-reader-pages > a.course-reader-step:hover { background: var(--surface-soft); }
.course-reader-pages > .course-reader-step.is-disabled { opacity: .32; }

@media (max-width: 900px) {
  .course-reader-navigation { grid-template-columns: auto minmax(7rem, 1fr) auto auto; }
  .course-reader-progress { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
  .course-reader-pages > .course-reader-step { width: 2.75rem; min-width: 2.75rem; padding: 0; }
  .course-reader-step-copy { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
@media (max-width: 620px) {
  .course-reader-navigation-container { width: min(100% - 1rem, 1240px); }
  .course-reader-navigation { min-height: 3.5rem; grid-template-columns: auto minmax(0, 1fr) auto auto; padding: 0 .2rem; }
  .course-reader-back { padding: 0 .65rem; }
  .course-reader-back > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .course-reader-progress { padding: .5rem .65rem; }
  .course-reader-progress progress { display: none; }
  .course-reader-outline > summary { padding: 0 .65rem; }
  .course-reader-outline > summary > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .course-reader-pages { gap: .1rem; padding-left: .25rem; }
  .course-reader-pages > .course-reader-step { width: 2.35rem; min-width: 2.35rem; height: 2.35rem; }
}

/* T-account workspace: enough room, explicit system feedback and no hidden empty state. */
.exercise-layout { grid-template-columns: minmax(0, 1fr) minmax(240px, 280px); gap: 26px; }
.solution-form.t-account-form { padding: clamp(20px, 3vw, 30px); }
.t-account-intro { align-items: flex-start; }
.t-account-intro p { max-width: 48ch; font-size: .95rem; line-height: 1.6; }
.t-account-workflow { margin-top: 2px; gap: 9px; }
.t-account-workflow span { padding: 8px 11px; font-size: .84rem; }
.t-account-message { min-height: 0; margin: 0; padding: 0; font-size: .9rem; transition: padding .18s ease, background-color .18s ease; }
.t-account-message.has-message { padding: 12px 14px; border: 1px solid #9dc4ae; border-radius: 10px; background: #edf7f1; }
.t-account-message.has-message.error { border-color: #e2aaa5; background: #fff0ef; }
.t-account-editor { grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); gap: 20px; }

/* Notification center and notification preview */
.notification-menu { position: relative; }
.notification-menu > summary { list-style: none; cursor: pointer; }
.notification-menu > summary::-webkit-details-marker { display: none; }
.notification-menu[open] .notification-link { border-color: #9ab9a8; background: #edf5f0; }
.notification-menu-panel {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 40;
  width: min(410px, calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(16, 35, 29, .18);
}
.notification-menu-panel > header,
.notification-menu-panel > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; }
.notification-menu-panel > header { border-bottom: 1px solid var(--line); background: #f4f7f4; }
.notification-menu-panel > header div { display: grid; gap: 2px; }
.notification-menu-panel > header small { color: var(--green); font-size: .61rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.notification-menu-panel > header strong { font: 750 1.08rem/1.2 Georgia, serif; }
.notification-menu-panel > header .link-button { color: var(--green-dark); font-size: .66rem; }
.notification-menu-panel > footer { border-top: 1px solid #21463b; background: #102f26; }
.notification-menu-panel > footer a { width: 100%; color: #fff; font-size: .7rem; font-weight: 800; }
.notification-menu-panel > footer a:hover { color: #bff1d8; }
.notification-menu-list { display: grid; max-height: 420px; overflow-y: auto; }
.notification-menu-list article { display: grid; grid-template-columns: 34px minmax(0, 1fr) 30px; gap: 10px; align-items: start; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.notification-menu-list article:last-child { border-bottom: 0; }
.notification-menu-list article.is-unread { background: #f2f8f4; box-shadow: inset 3px 0 0 var(--green); }
.notification-menu-list article > div { display: grid; gap: 3px; }
.notification-menu-list article strong { font-size: .72rem; line-height: 1.35; }
.notification-menu-list article p { margin: 0; color: var(--muted); font-size: .65rem; line-height: 1.42; }
.notification-menu-list article small { color: #73857d; font-size: .58rem; }

/* Free-text exercises */
.text-evaluation-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.text-evaluation-options + .field { margin-top: 20px; }
.text-evaluation-options label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 11px; align-items: start; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; cursor: pointer; }
.text-evaluation-options label:has(input:checked) { border-color: var(--green); background: #edf7f1; box-shadow: inset 0 0 0 1px var(--green); }
.text-evaluation-options label > span { display: grid; gap: 4px; }
.text-evaluation-options strong { font-size: .78rem; }
.text-evaluation-options small { color: var(--muted); font-size: .68rem; line-height: 1.45; }

.unsaved-changes-dialog { width: min(520px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 18px; background: transparent; box-shadow: 0 28px 80px rgba(6, 31, 24, .3); }
.unsaved-changes-dialog::backdrop { background: rgba(6, 31, 24, .45); backdrop-filter: blur(3px); }
.unsaved-changes-dialog-card { padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.unsaved-changes-dialog-card h2 { margin: 7px 0 10px; font-size: clamp(1.65rem, 4vw, 2.25rem); }
.unsaved-changes-dialog-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.unsaved-changes-dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.text-ai-settings .alert { margin-bottom: 16px; }
.text-attempt-card { display: grid; gap: 22px; margin-top: 28px; padding: clamp(22px, 4vw, 42px); }
.text-attempt-card h2 { max-width: 780px; margin: 4px 0 0; font-family: inherit; font-size: clamp(1.08rem, 1.35vw, 1.3rem); font-weight: 650; line-height: 1.55; letter-spacing: 0; overflow-wrap: anywhere; hyphens: auto; }
.exercise-reader-container { width: min(1240px, calc(100% - 64px)); }
.exercise-reader-container > .back-link,
.exercise-reader-container > .meta-row,
.exercise-reader-container > h1,
.exercise-reader-container > form,
.exercise-reader-container > .result-hero,
.exercise-reader-container > .result-section,
.exercise-reader-container > .result-actions { width: min(100%, 930px); }
.exercise-reader-container > h1 { max-width: 850px; font-size: clamp(2.15rem, 3.8vw, 3.55rem); line-height: 1.02; overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 760px) { .exercise-reader-container { width: min(100% - 28px, 1240px); } }
.text-answer-input { min-height: 16rem; line-height: 1.65; resize: vertical; }
.text-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.text-answer-copy { color: #263d34; font-size: .92rem; line-height: 1.75; }
.model-answer-panel { border-color: #afd0bc; background: #f2faf5; }
.exam-text-workspace { display: grid; gap: 18px; padding: clamp(18px, 3vw, 32px); border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.exam-text-task-note { display: grid; gap: 3px; margin: 0 14px 12px; padding: 10px 12px; border-radius: 9px; background: #edf7f1; color: var(--green-dark); }
.exam-text-task-note.is-manual { background: #fff7e5; color: #735412; }
.exam-text-task-note strong { font-size: .68rem; }
.exam-text-task-note span, .exam-text-task-note a { font-size: .61rem; line-height: 1.4; }
.exam-text-task-note a { color: inherit; font-weight: 800; }
@media (max-width: 760px) {
  .text-evaluation-options, .text-result-grid { grid-template-columns: 1fr; }
}
.notification-menu-list article form button { display: grid; width: 30px; min-height: 30px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--green-dark); font: inherit; font-weight: 850; cursor: pointer; }
.notification-kind-icon {
  position: relative;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #e4f0e8;
  color: var(--green-dark);
}
.notification-kind-icon::before { content: "i"; font: italic 800 .85rem Georgia, serif; }
.notification-kind-icon.is-welcome::before { content: "✓"; font-style: normal; }
.notification-kind-icon[class*="exam"]::before { content: "%"; font-style: normal; }
.notification-kind-icon[class*="course"]::before { content: "→"; font-style: normal; }
.notification-menu-empty { display: grid; gap: 4px; padding: 28px 18px; color: var(--muted); text-align: center; }
.notification-menu-empty strong { color: var(--ink); font: 750 1rem Georgia, serif; }

.notifications-page { min-height: calc(100vh - 76px); background: #f5f7f3; }
.notifications-container { max-width: 1040px; }
.notifications-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin: 22px 0 24px; }
.notifications-heading h1 { margin: 6px 0 7px; font-size: clamp(2.7rem, 6vw, 4.8rem); }
.notifications-heading .lead { max-width: 650px; margin: 0; font-size: 1rem; }
.notification-filters { display: flex; gap: 5px; width: fit-content; margin-bottom: 16px; padding: 5px; border: 1px solid var(--line); border-radius: 12px; background: #e9efea; }
.notification-filters a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border-radius: 8px; color: var(--muted); font-size: .73rem; font-weight: 800; text-decoration: none; }
.notification-filters a.is-active { background: #fff; color: var(--green-dark); box-shadow: var(--shadow-small); }
.notification-filters span { display: grid; min-width: 21px; height: 21px; place-items: center; border-radius: 99px; background: #e3eee7; font-size: .61rem; }
.notification-list { display: grid; gap: 10px; }
.notification-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 15px; align-items: start; padding: 19px 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-small); }
.notification-card.is-unread { border-color: #99bca8; background: #f5fbf7; box-shadow: inset 4px 0 0 var(--green), var(--shadow-small); }
.notification-card > .notification-kind-icon { width: 42px; height: 42px; border-radius: 11px; }
.notification-copy { min-width: 0; }
.notification-title-row { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.notification-title-row > div { display: flex; align-items: center; gap: 8px; }
.notification-title-row h2 { margin: 0; font-size: 1.12rem; line-height: 1.3; }
.notification-title-row time { flex: 0 0 auto; color: var(--muted); font-size: .63rem; }
.notification-copy > p { max-width: 720px; margin: 7px 0 0; color: #425a50; font-size: .8rem; line-height: 1.55; }
.notification-unread-dot { padding: 3px 7px; border-radius: 99px; background: #dceee4; color: var(--green-dark); font-size: .57rem; font-weight: 850; text-transform: uppercase; }
.notification-actions { display: flex; align-items: center; gap: 7px; }
.notification-actions form { margin: 0; }
.notification-empty { grid-column: 1 / -1; min-height: 300px; }
.notification-empty-icon { display: grid; width: 54px; height: 54px; margin: 0 auto 8px; place-items: center; border-radius: 15px; background: #e4f0e8; }
.notification-empty-icon::before { content: "✓"; color: var(--green-dark); font-weight: 900; }

.course-preview-expectation { display: grid; gap: 4px; margin-top: 13px; padding: 12px; border-radius: 10px; background: #edf5f0; }
.course-preview-expectation > span { color: var(--green); font-size: .6rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.course-preview-expectation p { margin: 0; color: #40584e; font-size: .72rem; line-height: 1.45; }
.course-unit-auto-progress { color: var(--muted); font-size: .65rem; }
.course-unit-reading-layout.is-single { grid-template-columns: minmax(0, 930px); }
.course-unit-navigation-hint { display: flex; align-items: center; gap: 18px; padding: 25px 28px; }
.course-unit-navigation-hint h2 { margin: 4px 0 6px; font-size: clamp(1.45rem, 3vw, 2rem); }
.course-unit-navigation-hint p { margin: 0; color: var(--muted); }
.course-unit-navigation-icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 13px; background: #e1f0e7; color: var(--green-dark); font-size: 1.2rem; font-weight: 900; }

/* More breathing room between guidance, status, and T-account workspace. */
.t-account-workflow { margin-bottom: 16px; }
.t-account-message { margin-bottom: 14px; }
.t-account-message.has-message { margin-bottom: 18px; }
.t-account-editor { margin-top: 8px; }

/* The icon glyph itself has to be centered, not only its surrounding box. */
.admin-kpis .admin-kpi-icon,
.admin-content-icon {
  display: grid;
  align-content: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  text-align: center;
}

@media (max-width: 760px) {
  .notification-menu-panel { position: fixed; top: 68px; right: 10px; left: 10px; width: auto; }
  .notifications-heading, .notification-title-row { align-items: flex-start; flex-direction: column; }
  .notifications-heading .button { width: 100%; }
  .notification-card { grid-template-columns: 40px minmax(0, 1fr); }
  .notification-actions { grid-column: 1 / -1; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--line); }
  .notification-actions .button { width: 100%; }
  .notification-actions form { flex: 1 1 190px; }
  .course-unit-navigation-hint { align-items: flex-start; }
}
.t-account-side { min-height: 260px; padding: 14px; gap: 12px; }
.t-account-side-label, .t-account-side-heading output { font-size: .8rem; }
.t-posting-empty { margin: 22px 0; font-size: .84rem; }
.t-posting-row { gap: 9px; padding: 11px; }
.t-posting-counter .account-picker-trigger { min-height: 56px; padding: 9px 10px; }
.t-posting-counter .account-picker-trigger-copy strong { font-size: .88rem; }
.t-posting-counter .account-picker-trigger-copy small { font-size: .72rem; }
.account-picker-trigger:not(.has-value):not(:disabled) { border: 2px dashed #b18b39; background: #fffbf1; }
.t-posting-amount .input { min-height: 44px; padding: 9px 10px; font-size: .95rem; }
.t-posting-row.is-mirror { border: 1px solid #9fc5af; background: #edf7f1; }
.t-posting-mirror-account { font-size: .86rem; white-space: normal; }
.t-posting-mirror-value { font-size: .95rem; }
.t-posting-mirror-note { display: inline-flex; width: fit-content; padding: 3px 7px; border-radius: 999px; background: #d9eee1; color: var(--green-dark); font-size: .74rem; }
.t-account-add-entry { min-height: 44px; font-size: .84rem; }

/* Course plan: one module frame with a readable vertical learning path. */
.course-module-list { gap: 1.4rem; }
.course-module-card,
.course-module-card[open] {
  border: 1px solid #b8cec1;
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 .8rem 2.4rem rgba(16, 52, 41, .06);
}
.course-module-card > summary {
  grid-template-columns: 2.8rem minmax(0, 1fr) 2.1rem;
  gap: 1rem;
  padding: 1.25rem 1.45rem;
  background: linear-gradient(110deg, #f5faf7, #fff 72%);
}
.course-module-card > summary:hover { background: linear-gradient(110deg, #edf6f1, #fff 72%); }
.course-module-number { width: 2.65rem; height: 2.65rem; border-radius: .85rem; font: 850 .92rem/1 inherit; }
.course-module-summary-copy { gap: .22rem; }
.course-module-summary-copy strong { font: 750 clamp(1.3rem, 2.2vw, 1.65rem)/1.12 Georgia, serif; }
.course-module-summary-copy em { font-size: .7rem; }
.course-module-body { padding: 0 1.45rem 1.25rem; border-top: 1px solid #d8e4dd; background: #fff; }
.course-module-overview-row {
  min-height: 0;
  margin: 0 0 .4rem;
  padding: 1rem .25rem 1rem .9rem;
  border: 0;
  border-bottom: 1px solid #dce6e0;
  border-radius: 0;
  background: transparent;
}
.course-module-overview-copy strong { font-size: .9rem; }
.course-module-overview-copy small { margin-top: .15rem; font-size: .7rem; }
.course-module-overview-actions { gap: .65rem; }
.course-learning-step-list {
  position: relative;
  display: grid;
  gap: 0;
  padding: .25rem 0 .4rem;
}
.course-learning-step-list::before {
  position: absolute;
  top: 1.4rem;
  bottom: 1.4rem;
  left: 1.55rem;
  width: 2px;
  border-radius: 99px;
  background: linear-gradient(#83ae98, #dce9e1);
  content: "";
}
.course-learning-step-list .course-tree-branch { position: relative; z-index: 1; }
.course-learning-step-list .course-tree-item {
  min-height: 5.8rem;
  grid-template-columns: 3.1rem minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  padding: .85rem .25rem .85rem 0;
  border: 0;
  border-bottom: 1px solid #e1e9e4;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.course-learning-step-list .course-tree-branch:last-of-type .course-tree-item { border-bottom: 0; }
.course-learning-step-list .course-tree-connector { display: none; }
.course-learning-step-number {
  position: relative;
  z-index: 2;
  width: 3.1rem;
  height: 3.1rem;
  margin: 0;
  border: .45rem solid #fff;
  border-radius: 1rem;
  background: #e3f0e9;
  color: var(--green-dark);
  box-shadow: 0 0 0 1px #c6dacf;
  font-size: .72rem;
  line-height: 1;
}
.course-learning-step-icon { font-weight: 900; letter-spacing: -.04em; }
.course-learning-step-list .course-tree-copy { min-width: 0; padding: 0; }
.course-learning-step-list .course-tree-topline { justify-content: flex-start; min-height: 1.45rem; }
.course-learning-step-list .course-tree-copy h4 { margin: .35rem 0 .25rem; font: 750 clamp(1.05rem, 1.8vw, 1.28rem)/1.2 inherit; }
.course-learning-step-list .pill { padding: .2rem .5rem; font-size: .6rem; }
.course-step-position { color: var(--green); font-size: .6rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.course-kind-explanation,
.course-optional { font-size: .62rem; }
.course-tree-footer { min-height: 0; margin-top: .35rem; }
.course-step-actions { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; padding-left: .75rem; }
.course-step-primary { min-width: 5.2rem; justify-content: center; white-space: nowrap; }
.course-unit-menu-panel a,
.course-unit-menu-panel button {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-height: 35px;
  align-items: center;
  padding: 7px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: .68rem;
  font-weight: 750;
  text-align: left;
  text-decoration: none;
}
.course-unit-menu-panel a:hover { background: #edf5f0; }
.course-plan-section[data-plan-mode="overview"] .course-step-actions .course-unit-actions { display: none; }
.course-plan-section[data-plan-mode="edit"] .course-drag-handle { display: grid; }

@media (max-width: 720px) {
  .course-module-card > summary { padding: 1rem; }
  .course-module-body { padding: 0 .9rem 1rem; }
  .course-learning-step-list::before { left: 1.25rem; }
  .course-learning-step-list .course-tree-item { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .6rem; }
  .course-learning-step-number { width: 2.5rem; height: 2.5rem; border-width: .35rem; }
  .course-step-actions { grid-column: 2; justify-content: flex-start; padding: .25rem 0 0; }
  .course-step-primary { min-width: 0; }
}

@media (max-width: 1120px) {
  .exercise-layout { grid-template-columns: 1fr; }
  .exercise-layout .sticky { position: static; }
}
/* Flat course learning steps */
.course-learning-step-list {
  display: grid;
  gap: .7rem;
  padding: .35rem 0 0;
}

.course-learning-step-list .course-tree-item {
  grid-template-columns: 1.1rem 2.25rem minmax(0, 1fr);
  align-items: start;
}

.course-learning-step-number {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: .7rem;
  background: var(--surface-soft, #e9f2ed);
  color: var(--green-800, #0b604b);
  font-weight: 800;
}

/* Compact course plan: hierarchy first, controls second. */
.course-module-list { gap: .8rem; }
.course-module-card { border-color: #ccd9d1; border-radius: 1rem; box-shadow: 0 .35rem 1.15rem rgba(16,52,41,.035); }
.course-module-card[open] { border-color: #9fbbaa; box-shadow: 0 .7rem 1.8rem rgba(16,52,41,.06); }
.course-module-card > summary { grid-template-columns: 2.35rem minmax(0, 1fr) 2rem; gap: .8rem; padding: .85rem 1rem; }
.course-module-number { width: 2.25rem; height: 2.25rem; border-radius: .7rem; font: 800 .88rem/1 Georgia, serif; }
.course-module-summary-copy { gap: .12rem; }
.course-module-summary-copy small { font-size: .58rem; }
.course-module-summary-copy strong { font-size: clamp(1.02rem, 2vw, 1.28rem); }
.course-module-summary-copy em { font-size: .62rem; }
.course-module-toggle { width: 1.9rem; height: 1.9rem; }
.course-module-body { padding: .8rem 1rem 1rem; background: #fbfcfb; }
.course-module-overview-row { min-height: 0; margin: 0 0 .65rem; padding: .65rem .75rem; border: 1px solid #d9e4dd; border-radius: .7rem; background: #fff; }
.course-module-overview-copy strong { font-size: .72rem; }
.course-module-overview-copy small { font-size: .59rem; }
.course-learning-step-list { gap: .42rem; padding: 0; }
.course-learning-step-list .course-tree-item { min-height: 0; grid-template-columns: .35rem 1.85rem minmax(0, 1fr); border: 1px solid #d8e2dc; border-left: 0; border-radius: .72rem; background: #fff; }
.course-learning-step-list .course-tree-connector { border-radius: .7rem 0 0 .7rem; background: #83ae98; }
.course-learning-step-list .course-tree-connector::before,
.course-learning-step-list .course-tree-connector::after { display: none; }
.course-learning-step-number { width: 1.75rem; height: 1.75rem; margin-top: .62rem; border-radius: .55rem; font-size: .72rem; }
.course-learning-step-list .course-tree-copy { padding: .6rem .75rem .65rem .35rem; }
.course-learning-step-list .course-tree-topline { min-height: 1.35rem; }
.course-learning-step-list .course-tree-copy h4 { margin: .18rem 0 .28rem; font: 750 .91rem/1.25 inherit; }
.course-learning-step-list .pill { padding: .17rem .45rem; font-size: .55rem; }
.course-kind-explanation,
.course-optional { font-size: .56rem; }
.course-tree-footer { min-height: 0; gap: .75rem; font-size: .64rem; }
.course-tree-footer .text-link { font-weight: 750; }
.course-unit-auto-progress { display: none; }
.course-content-picker-trigger { margin-top: .65rem; }

@media (max-width: 620px) {
  .course-content-task-type-filter { grid-template-columns: 1fr; justify-content: stretch; }
  .course-content-choice { grid-template-columns: minmax(0, 1fr); padding-right: 5px; }
  .course-content-choice > button { justify-self: end; margin-top: -.2rem; }
  .course-module-body { padding: .65rem; }
  .course-module-overview-row { align-items: flex-start; flex-direction: column; }
}

.course-module-empty-steps {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  align-items: baseline;
  padding: 1rem 1.1rem;
  border: 1px dashed var(--border, #bfd0c6);
  border-radius: .8rem;
  color: var(--muted, #5d6c65);
}

.course-content-picker-heading .button { flex: 0 0 auto; }

/* Organization library */
.organization-library-page .container { max-width: 1240px; }
.organization-library-heading { align-items: end; }
.organization-library-heading > div:first-child { max-width: 780px; }

.organization-library-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
  margin: 1.25rem 0;
}

.organization-library-stats > div {
  display: grid;
  grid-template-columns: 2.7rem auto;
  grid-template-rows: auto auto;
  column-gap: .8rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--border, #cddbd3);
  border-radius: 1rem;
  background: #fff;
}

.organization-library-stats span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: .8rem;
  color: #0f7458;
  background: #e6f2ec;
  font-weight: 800;
}

.organization-library-stats strong { font: 700 1.55rem/1 var(--font-display, Georgia, serif); }
.organization-library-stats small { color: var(--muted, #607169); }

.organization-library-privacy {
  display: flex;
  gap: .9rem;
  align-items: center;
  padding: 1rem 1.15rem;
  border-left: 4px solid #0f7458;
  border-radius: .8rem;
  background: #eef7f2;
}

.organization-library-privacy > span {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: #0f7458;
  color: #fff;
}

.organization-library-privacy p { margin: .2rem 0 0; color: var(--muted, #607169); }

.organization-library-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(150px, 1fr)) auto;
  gap: .8rem;
  align-items: end;
  margin: 1rem 0 2rem;
  padding: 1rem;
}

.organization-library-toolbar .field { margin: 0; }
.organization-library-section { margin-top: 2.2rem; }
.organization-library-section .section-heading { align-items: end; }

.organization-library-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.organization-library-card {
  display: flex;
  flex-direction: column;
  min-height: 270px;
  padding: 1.15rem;
  border: 1px solid var(--border, #cddbd3);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 10px 30px rgba(16, 49, 39, .04);
}

.organization-library-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.1rem; }
.organization-library-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .8rem; background: #e6f2ec; color: #0f7458; font-weight: 900; }
.organization-library-card h3 { margin: .3rem 0 .45rem; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.organization-library-card > p { margin: 0; color: var(--muted, #607169); }
.organization-library-card-footer { display: flex; justify-content: space-between; gap: .8rem; align-items: end; margin-top: auto; padding-top: 1.2rem; border-top: 1px solid var(--border, #d7e2dc); }
.organization-library-card-footer > span { max-width: 70%; color: var(--muted, #607169); font-size: .84rem; }

.organization-file-summary { display: grid; grid-template-columns: 2rem auto; column-gap: .55rem; align-items: center; margin-top: 1rem; padding: .65rem; border-radius: .7rem; background: #f2f6f3; }
.organization-file-summary > span { display: grid; place-items: center; }
.organization-file-summary small { color: var(--muted, #607169); }
.organization-library-empty { margin-top: 2rem; }

@media (max-width: 960px) {
  .organization-library-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organization-library-query { grid-column: 1 / -1; }
  .organization-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .booking-start-options { grid-template-columns: 1fr; }
  .course-learning-step-list .course-tree-item { grid-template-columns: 1.7rem minmax(0, 1fr); }
  .course-learning-step-list .course-tree-connector { display: none; }
  .course-learning-step-list .course-tree-topline { flex-direction: row; align-items: flex-start; }
  .course-learning-step-list .course-tree-topline .course-unit-actions { width: auto; }
  .course-module-nav { scrollbar-width: none; }
  .course-module-nav::-webkit-scrollbar { display: none; }
  .course-module-primary-actions { width: 100%; }
  .organization-library-stats,
  .organization-library-toolbar,
  .organization-library-grid { grid-template-columns: 1fr; }
  .organization-library-query { grid-column: auto; }
  .organization-library-card { min-height: 0; }
}

/* Document-to-course imports */
.import-hero { margin: 1.5rem 0 2rem; }
.import-hero h1, .import-review-hero h1 { margin: .35rem 0 .65rem; }
.import-hero p, .import-review-hero p { max-width: 760px; color: var(--muted, #607169); }
.import-upload-form { display: grid; gap: 1.35rem; padding: clamp(1.2rem, 3vw, 2rem); }
.import-file-picker { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.3rem; border: 2px dashed #8ab4a2; border-radius: 1rem; background: #f3faf6; cursor: pointer; outline: none; transition: border-color .2s, background .2s, transform .2s; }
.import-file-picker:hover, .import-file-picker:focus-visible, .import-file-picker.is-dragover { border-color: #0f7458; background: #e7f6ee; transform: translateY(-1px); }
.import-file-picker > div { display: grid; gap: .15rem; }
.import-file-picker > div span, .import-file-picker > small { color: var(--muted, #607169); }
.import-file-picker > small { grid-column: 2 / -1; }
.import-plan-hint { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: -.7rem; color: var(--muted, #607169); font-size: .82rem; }
.import-plan-hint > span { padding: .2rem .5rem; border-radius: 99px; background: #e8f3ed; color: #0f7458; font-weight: 800; }
.import-plan-hint p { margin: 0; }
.import-plan-hint a { margin-left: auto; color: #0f7458; font-weight: 750; }
.import-selected-files, .import-analysis-files { display: grid; grid-column: 1 / -1; justify-self: stretch; width: 100%; min-width: 0; gap: .65rem; }
.import-selected-files > p { box-sizing: border-box; justify-self: stretch; width: 100%; max-width: none; margin: 0; padding: .85rem; border-radius: .75rem; background: #f7f9f8; color: var(--muted, #607169); text-align: center; }
.import-selected-file { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid var(--border, #d5e0da); border-radius: .8rem; background: #fff; }
.import-selected-file > span { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .65rem; background: #e4f1ea; color: #0f7458; font-size: .7rem; font-weight: 900; }
.import-selected-file div { display: grid; gap: .1rem; min-width: 0; }
.import-selected-file strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.import-selected-file small { color: var(--muted, #607169); }
.import-selected-file button { display: grid; place-items: center; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #fff0ef; color: #a43d32; font-size: 1.2rem; cursor: pointer; }
.import-upload-live, .import-selection-live { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .85rem; padding: 1rem; border-radius: .85rem; background: #edf8f2; }
.import-upload-live[hidden], .import-selection-live[hidden] { display: none; }
.confirm-dialog-entry[hidden] { display: none !important; }
.import-upload-live > div { display: grid; gap: .4rem; }
.import-upload-live small { color: var(--muted, #607169); }
.import-selection-live p { display: grid; gap: .15rem; margin: 0; }
.import-selection-live small { color: var(--muted, #607169); }
.import-generate-choice.is-disabled { opacity: .5; }
.import-dropzone { display: grid; place-items: center; gap: .4rem; padding: 2.2rem 1rem; border: 2px dashed #8ab4a2; border-radius: 1rem; background: #f3faf6; text-align: center; cursor: pointer; }
.import-dropzone:hover { border-color: #0f7458; background: #eaf6ef; }
.import-dropzone input { max-width: min(100%, 330px); margin-top: .75rem; }
.import-dropzone-icon { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: .9rem; background: #0f7458; color: #fff; font-size: .8rem; font-weight: 900; }
.import-dropzone > span:not(.import-dropzone-icon) { color: var(--muted, #607169); font-size: .9rem; }
.import-generate-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .75rem; padding: 1rem; border: 1px solid var(--border, #d2ded7); border-radius: .8rem; }
.import-generate-choice span { display: grid; gap: .2rem; }
.import-generate-choice small { color: var(--muted, #607169); }
.import-task-types { display: grid; gap: .75rem; min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--border, #d2ded7); border-radius: .8rem; }
.import-task-types legend { padding: 0 .35rem; font-weight: 800; }
.import-task-types .import-task-types-all { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 1.65rem; align-items: center; width: 100%; gap: .6rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: #f8fbf9; cursor: pointer; }
.import-task-types-all span, .import-task-type-options label span { display: grid; gap: .15rem; }
.import-task-types-all small, .import-task-type-options label small { color: var(--muted); }
.import-task-type-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.import-task-type-options > label { position: relative; display: grid; grid-template-columns: 2.15rem minmax(0, 1fr) 1.65rem; align-items: center; gap: .6rem; min-height: 5.4rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.import-task-type-options > label > i { display: grid; place-items: center; min-width: 2.15rem; height: 2.15rem; border-radius: .65rem; background: var(--green-soft, #e7f3ed); color: var(--green, #087458); font-style: normal; font-weight: 800; font-size: .8rem; }
.import-task-types-all > input, .import-task-type-options > label > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.import-task-types-all::after, .import-task-type-options > label::after { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border: 1px solid #a9beb2; border-radius: 50%; color: transparent; content: "✓"; font-weight: 900; }
.import-task-types-all:has(input:checked), .import-task-type-options > label:has(input:checked) { border-color: var(--green); background: #fff; box-shadow: 0 0 0 2px rgba(15,116,88,.1); }
.import-task-types-all:has(input:checked)::after, .import-task-type-options > label:has(input:checked)::after { border-color: var(--green); background: var(--green); color: #fff; }
.import-task-types-all:focus-within, .import-task-type-options > label:focus-within { outline: 3px solid rgba(15,116,88,.2); outline-offset: 2px; }
.import-start-actions { justify-content: flex-end; }
.import-start-actions .button { display: inline-flex; align-items: center; gap: .55rem; }
.organization-status-field { transform: translateY(-.2rem); }
.import-safety-note { display: flex; gap: .75rem; align-items: flex-start; padding: .9rem 1rem; border-radius: .8rem; background: #eef7f2; color: #164c3c; }
.import-safety-note > span { display: grid; place-items: center; flex: 0 0 1.7rem; height: 1.7rem; border-radius: 50%; background: #0f7458; color: #fff; }
.import-safety-note p { margin: 0; }
.import-analysis { display: grid; gap: 1.35rem; margin-top: 1.5rem; padding: clamp(1.3rem, 4vw, 2.5rem); }
.import-analysis h1 { margin: -.6rem 0 0; }
.import-file-card { display: flex; gap: .8rem; align-items: center; padding: .9rem; border: 1px solid var(--border, #d5e0da); border-radius: .8rem; background: #f8faf9; }
.import-file-card > span { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .65rem; background: #e4f1ea; color: #0f7458; font-size: .72rem; font-weight: 900; }
.import-file-card div { display: grid; gap: .2rem; }
.import-file-card small { color: var(--muted, #607169); }
.import-quality-tip { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; align-items: start; padding: .85rem 1rem; border: 1px solid #cfe1d7; border-radius: .8rem; background: #f2f8f5; }
.import-quality-tip > span { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.import-quality-tip strong { display: block; }
.import-quality-tip p { margin: .2rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.55; }
.import-progress { overflow: hidden; height: .75rem; border-radius: 99px; background: #e5ece8; }
.import-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #0f7458, #42a47d); transition: width .35s ease; }
.import-analysis-status { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; }
.import-analysis-status div { display: grid; gap: .15rem; }
.import-analysis-status p { margin: 0; color: var(--muted, #607169); }
.import-analysis-status b { color: #0f7458; }
.import-leave-warning { display: flex; gap: .75rem; align-items: flex-start; padding: .9rem 1rem; border: 1px solid #ead29a; border-radius: .8rem; background: #fff9ea; color: #6f510d; }
.import-leave-warning > span, .import-dialog-error > span { display: grid; place-items: center; flex: 0 0 1.7rem; height: 1.7rem; border-radius: 50%; background: #bd7713; color: #fff; font-weight: 900; }
.import-leave-warning p { margin: 0; }
.import-error-dialog > div { width: min(620px, calc(100vw - 2rem)); }
.import-dialog-error { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem; border-radius: .8rem; background: #fff4ef; color: #7b2e24; }
.import-dialog-error p { margin: .15rem 0 0; overflow-wrap: anywhere; }
.import-spinner { width: 1.8rem; height: 1.8rem; border: 3px solid #cfe3d9; border-top-color: #0f7458; border-radius: 50%; animation: import-spin .8s linear infinite; }
@keyframes import-spin { to { transform: rotate(360deg); } }
.import-step-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.import-step-list > li { display: flex; gap: .75rem; align-items: flex-start; padding: .75rem; border-radius: .7rem; color: #73837b; }
.import-step-list > li > span { display: grid; place-items: center; flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; border: 1px solid #c7d3cd; font-size: .8rem; font-weight: 800; }
.import-step-body { display: grid; gap: .45rem; width: 100%; }
.import-step-heading { display: flex; justify-content: space-between; gap: 1rem; width: 100%; }
.import-step-list > li.active { background: #eef7f2; color: #164c3c; }
.import-step-list > li.active > span, .import-step-list > li.done > span { border-color: #0f7458; background: #0f7458; color: #fff; }
.import-step-list > li.done { color: #0f7458; }
.import-substep-list { display: grid; gap: .28rem; margin: 0; padding: 0; list-style: none; }
.import-substep-list li { display: grid; grid-template-columns: .55rem minmax(0, 1fr) auto; gap: .5rem; align-items: center; color: #839189; font-size: .78rem; }
.import-substep-list li > span:first-child { width: .45rem; height: .45rem; border: 1px solid #b9c8c0; border-radius: 50%; background: #fff; }
.import-substep-list li.done { color: #4b7467; }
.import-substep-list li.done > span:first-child { border-color: #0f7458; background: #0f7458; }
.import-substep-list li.active { color: #164c3c; font-weight: 750; }
.import-substep-list li.active > span:first-child { border-color: #0f7458; background: #d9ef91; box-shadow: 0 0 0 3px rgba(15,116,88,.1); }
.import-substep-list small { color: #0f7458; font-weight: 800; }
@media (max-width: 640px) {
  .import-analysis-status { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .import-analysis-status b { grid-column: 2; justify-self: start; }
  .import-step-list > li { gap: .55rem; padding: .7rem .55rem; }
  .import-step-heading { align-items: flex-start; }
  .import-step-heading small { max-width: 6.5rem; text-align: right; }
}
.import-review-hero { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin: 1.5rem 0; }
.import-review-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.import-review-hero-actions form { margin: 0; }
.import-review-hero-actions .button { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.import-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.25rem 0; }
.import-summary-grid > div { display: grid; gap: .15rem; padding: 1rem; border: 1px solid var(--border, #d5e0da); border-radius: .85rem; background: #fff; }
.import-summary-grid strong { font-size: 1.65rem; color: #164c3c; }
.import-summary-grid span { color: var(--muted, #607169); font-size: .82rem; }
.import-summary-grid span small { display: block; margin-top: .2rem; color: #74857c; font-size: .72rem; }
.import-summary-grid .needs-review { border-color: #e7b86a; background: #fff8ea; }
.import-course-meta { margin: 1.2rem 0 2rem; padding: 0; overflow: hidden; }
.import-course-meta summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.15rem; cursor: pointer; }
.import-course-meta summary > span:first-child { display: grid; }
.import-editor-form { display: grid; gap: .9rem; padding: 1.15rem; border-top: 1px solid var(--border, #d5e0da); }
.import-review-toolbar { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin: 2rem 0 1rem; }
.import-review-toolbar h2, .import-review-toolbar p { margin: 0; }
.import-review-toolbar p { color: var(--muted, #607169); }
.import-structure-controls { position: sticky; z-index: 7; top: calc(72px + .75rem); display: grid; grid-template-columns: minmax(15rem, 1.4fr) repeat(3, minmax(9rem, .7fr)); gap: .65rem; align-items: end; margin: 0 0 1rem; padding: .8rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(250, 252, 251, .97); box-shadow: 0 .55rem 1.5rem rgba(17, 52, 41, .06); backdrop-filter: blur(10px); }
.import-structure-controls > label:not(.library-table-search) { display: grid; gap: .3rem; color: #50645a; font-size: .73rem; font-weight: 800; }
.import-structure-controls > strong { grid-column: 1 / -1; color: var(--muted); font-size: .76rem; font-weight: 700; }
.import-section[hidden], .import-item[hidden] { display: none !important; }
.import-jump-highlight { animation: import-jump-highlight 1.5s ease; }
@keyframes import-jump-highlight { 0%, 100% { box-shadow: 0 8px 30px rgba(20,54,42,.04); } 35% { box-shadow: 0 0 0 4px rgba(15,116,88,.2), 0 14px 34px rgba(20,54,42,.12); } }
.import-legend { display: flex; gap: 1rem; color: var(--muted, #607169); font-size: .83rem; }
.import-legend span { display: flex; align-items: center; gap: .35rem; }
.import-legend i { width: .7rem; height: .7rem; border-radius: 50%; }
.import-legend .origin-document { background: #28775c; }
.import-legend .origin-generated { background: #7659b8; }
.import-section-list { display: grid; gap: 1.25rem; }
.import-section { overflow: visible; border: 1px solid var(--border, #d5e0da); border-radius: 1rem; background: #fff; box-shadow: 0 8px 30px rgba(20, 54, 42, .04); }
.import-section-header { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(150px, auto) auto; gap: .9rem; align-items: start; padding: 1.15rem; border-bottom: 1px solid var(--border, #e0e7e3); }
.import-section-collapse { display: grid; width: 2.35rem; height: 2.35rem; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: .7rem; background: #f7faf8; color: var(--green); cursor: pointer; }
.import-section-collapse:hover { border-color: #91b4a3; background: #eaf4ee; }
.import-section-collapse i { font-style: normal; font-weight: 900; transition: transform .18s ease; }
.import-section.is-collapsed > :not(.import-section-header) { display: none !important; }
.import-section.is-collapsed .import-section-header { border-bottom: 0; }
.import-section.is-collapsed .import-section-collapse i { transform: rotate(180deg); }
.community-save-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .65rem; }
.community-save-actions [data-community-save-status] { color: var(--green); font-size: .78rem; font-weight: 750; }
.import-quality-tip-before-upload { margin: 0 0 1rem; }
.import-section-copy { min-width: 0; }
.import-unit-number { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: .75rem; background: #e6f2ec; color: #0f7458; font-weight: 900; }
.import-section-header h2 { margin: .1rem 0; font-size: 1.3rem; }
.import-section-header p { margin: .2rem 0 0; color: var(--muted, #607169); }
.import-section-topics { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; }
.import-section-topics > span, .import-section-topics details span { padding: .2rem .45rem; border-radius: 99px; background: #f1f5f3; color: #52655c; font-size: .78rem; }
.import-section-topics details { position: relative; }
.import-section-topics details summary { color: #0f7458; font-size: .78rem; font-weight: 750; cursor: pointer; }
.import-section-topics details div { position: absolute; z-index: 8; display: flex; flex-wrap: wrap; gap: .3rem; width: min(440px, 70vw); padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; box-shadow: 0 12px 32px rgba(16,49,39,.14); }
.import-source-meta { display: grid; justify-items: end; gap: .35rem; max-width: 300px; color: var(--muted, #607169); text-align: right; }
.import-source-reference { display: inline-flex; flex-wrap: wrap; justify-content: inherit; gap: .25rem .45rem; min-width: 0; color: #607169; font-size: .78rem; }
.import-source-reference b { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #43594f; }
.confidence-high { border-color: #a8d4c0 !important; background: #edf8f2 !important; color: #0b654b !important; }
.confidence-review, .confidence-low { border-color: #e6c177 !important; background: #fff6e3 !important; color: #7a5400 !important; }
.origin-generated { border-color: #c9b9eb !important; background: #f3effc !important; color: #5f409a !important; }
.import-section-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; padding: .6rem 1.15rem; background: #fafcfb; }
.import-section-actions details { position: relative; }
.import-section-actions .import-inline-editor { right: 0; left: auto; }
.import-type-switcher { position: relative; }
.import-type-switcher > summary { list-style: none; cursor: pointer; }
.import-type-switcher > summary::-webkit-details-marker { display: none; }
.import-type-switcher > form { position: absolute; z-index: 12; top: calc(100% + .35rem); right: 0; display: grid; gap: .65rem; width: min(19rem, 75vw); padding: .8rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; box-shadow: 0 1rem 2.4rem rgba(17,52,41,.16); }
.import-type-switcher label { display: grid; gap: .3rem; color: var(--muted); font-size: .75rem; font-weight: 800; }
.import-type-dialog { width: min(36rem, calc(100vw - 2rem)); }
.import-type-dialog .course-dialog-body { display: grid; gap: 1rem; }
.import-feedback-dialog { width: min(820px, calc(100vw - 2rem)); }
.import-feedback-rating { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.import-feedback-rating legend { width: 100%; margin: 0 0 .65rem; font-weight: 800; }
.import-feedback-rating label { position: relative; display: flex; min-width: 0; }
.import-feedback-rating input { position: absolute; opacity: 0; pointer-events: none; }
.import-feedback-rating label > span { width: 100%; min-height: 6rem; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); display: grid; align-content: center; gap: .3rem; cursor: pointer; }
.import-feedback-rating label > span small { color: var(--muted); line-height: 1.45; }
.import-feedback-rating input:checked + span { border-color: var(--green); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green); }
.import-feedback-rating input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--green) 28%, transparent); outline-offset: 2px; }
.import-feedback-consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; align-items: start; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.import-feedback-consent input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--green); }
.import-feedback-consent span { display: grid; gap: .25rem; }
.import-feedback-consent small { color: var(--muted); line-height: 1.5; }
@media (max-width: 700px) { .import-feedback-rating { grid-template-columns: 1fr; } .import-feedback-rating label > span { min-height: 0; } }
.import-type-warning { padding: 1rem; border: 1px solid #e2c27c; border-radius: .75rem; background: #fff8e8; color: #654b13; }
.import-type-warning strong { display: block; margin-bottom: .25rem; font-size: .78rem; }
.import-type-warning p { margin: 0; font-size: .72rem; line-height: 1.55; }
.import-item-list { min-height: 3.5rem; padding: .8rem; transition: background .15s ease; }
.import-item-list.is-dragover { background: #eaf6ef; }
.import-item { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: .75rem; align-items: start; padding: 1rem .75rem; border-bottom: 1px solid var(--border, #e2e8e4); }
.import-item:last-child { border-bottom: 0; }
.import-item.is-dragging { opacity: .45; }
.import-drag-handle { padding-top: .55rem; color: #8a9991; cursor: grab; font-weight: 900; }
.import-item-icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .65rem; background: #e8f3ed; color: #0f7458; font-weight: 900; }
.import-item-icon.is-exercise { background: #f1edfa; color: #654aa2; }
.import-item-title { display: flex; flex-wrap: wrap; gap: .35rem; }
.import-review-reasons { margin: .65rem 0 0; padding: .65rem .8rem .65rem 1.8rem; border-left: 3px solid #d58a18; border-radius: .35rem; background: #fff8e9; color: #76500d; font-size: .9rem; }
.import-review-reasons li + li { margin-top: .3rem; }
.import-item-main h3 { margin: .45rem 0 .2rem; font-size: 1.05rem; }
.import-item-main { min-width: 0; }
.import-item-main > p { margin: 0; color: var(--muted, #607169); }
.import-provenance { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .55rem; color: #607169; font-size: .78rem; }
.solution-origin-generated, .solution-origin-missing { color: #8a5700; font-weight: 700; }
.import-source-excerpt { margin-top: .5rem; color: #52655c; font-size: .84rem; }
.import-source-excerpt blockquote { margin: .5rem 0; padding: .7rem; border-left: 3px solid #9ebcac; background: #f6f9f7; }
.import-item-actions { display: flex; gap: .4rem; align-items: flex-start; }
.import-item-actions .button, .import-section-actions .button { display: inline-flex; align-items: center; gap: .35rem; }
.import-edit-dialog { width: min(760px, calc(100vw - 2rem)); }
.import-edit-dialog > form { max-height: min(88vh, 900px); overflow: auto; }
.import-dialog-fields { display: grid; gap: .9rem; }
.import-dialog-fields .field { margin: 0; }
.import-inline-editor { position: absolute; z-index: 15; right: 0; display: grid; gap: .7rem; width: min(620px, 80vw); max-height: 75vh; overflow: auto; padding: 1rem; border: 1px solid #b9cbc1; border-radius: .85rem; background: #fff; box-shadow: 0 16px 50px rgba(16, 49, 39, .18); }
.import-inline-editor .field { margin: 0; }
.import-empty-section { padding: 1rem; color: var(--muted, #607169); text-align: center; }
.is-rejected { opacity: .55; background: #f4f5f4; }
.import-commit { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; margin-top: 2rem; padding: 1.3rem; }
.import-commit h2, .import-commit p { margin: .2rem 0; }
.import-commit p { color: var(--muted, #607169); }
.import-commit-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: .65rem; }
.library-upload-menu { position: relative; }
.library-upload-menu > summary { list-style: none; cursor: pointer; }
.library-upload-menu > summary::-webkit-details-marker { display: none; }
.library-upload-menu > form { position: absolute; z-index: 30; right: 0; top: calc(100% + .55rem); display: grid; gap: .75rem; width: min(25rem, 82vw); padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(16, 52, 41, .16); }
.library-upload-menu > form small { color: var(--muted); }
.library-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.library-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.library-table th { padding: .8rem 1rem; background: #f3f7f4; color: var(--muted); font-size: .76rem; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
.library-table td { padding: .9rem 1rem; border-top: 1px solid var(--line); vertical-align: middle; }
.library-row-title { display: flex; align-items: center; gap: .75rem; min-width: 17rem; }
.library-row-title > i { display: grid; place-items: center; flex: 0 0 2.2rem; height: 2.2rem; border-radius: .65rem; background: var(--green-soft, #e7f3ed); color: var(--green, #087458); font-style: normal; font-weight: 800; }
.library-row-title > span { display: grid; gap: .15rem; }
.library-row-title small, .library-file-count { color: var(--muted); }
.library-file-count { display: block; margin-top: .25rem; white-space: nowrap; }
.library-pagination { display: flex; justify-content: center; align-items: center; gap: .8rem; margin-top: 1rem; }
.library-workspace-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin: 1.2rem 0 1.4rem; }
.library-workspace-header h1 { max-width: 760px; margin: .35rem 0; }
.library-workspace-header p { max-width: 760px; margin: 0; color: var(--muted); }
.library-workspace-header .actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.library-overview-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .7rem; margin-bottom: 2rem; }
.library-overview-strip a { display: flex; align-items: center; gap: .75rem; padding: .9rem; border: 1px solid var(--line); border-radius: .85rem; background: #fff; color: var(--green-dark); text-decoration: none; }
.library-overview-strip i { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .65rem; background: var(--green-soft, #e7f3ed); color: var(--green); font-style: normal; font-weight: 850; }
.library-data-section { display: block; margin: 0 0 2.4rem; scroll-margin-top: 8rem; }
.library-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: .8rem; }
.library-section-heading h2, .library-section-heading p { margin: .2rem 0 0; }
.library-section-heading p { color: var(--muted); }
.library-section-heading > span { display: grid; place-items: center; min-width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #e5efe9; font-weight: 850; }
.library-table-controls { display: flex; align-items: center; gap: .75rem; min-height: 3.2rem; margin-bottom: .65rem; }
.library-table-search { display: flex; align-items: center; gap: .55rem; width: min(34rem, 100%); padding: 0 .85rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; }
.library-table-search input { width: 100%; min-height: 2.7rem; border: 0; outline: 0; background: transparent; }
.library-table-controls > [data-table-result-count] { color: var(--muted); white-space: nowrap; }
.library-selection-actions { display: flex; align-items: center; gap: .45rem; margin-left: auto; padding: .35rem; border-radius: .65rem; background: #edf5f0; }
.library-selection-actions[hidden], .data-table-pagination[hidden] { display: none; }
.library-selection-actions strong { padding: 0 .4rem; font-size: .8rem; }
.library-icon-button { display: inline-grid; width: 2.35rem; min-width: 2.35rem; height: 2.35rem; padding: 0; place-items: center; font-size: 1.05rem; }
.library-icon-button:disabled { opacity: .35; cursor: not-allowed; }
.library-undo-toast { position: fixed; z-index: 120; right: auto; bottom: 2.5rem; left: 50%; display: flex; align-items: center; gap: 1rem; width: min(31rem, calc(100vw - 2rem)); padding: .9rem 1rem; border: 1px solid #b9d4c6; border-radius: .9rem; background: #fff; box-shadow: 0 1rem 3rem rgba(16, 52, 41, .2); transform: translateX(-50%); }
.library-undo-toast > div { display: grid; flex: 1; gap: .15rem; min-width: 0; }
.library-undo-toast span { color: var(--muted); font-size: .78rem; }
.library-undo-toast i { display: block; width: 100%; height: 3px; margin-top: .35rem; overflow: hidden; border-radius: 999px; background: #dce9e2; }
.library-undo-toast i::after { display: block; width: 100%; height: 100%; background: var(--green); content: ''; transform-origin: left; animation: library-undo-countdown 10s linear forwards; }
.library-undo-toast.is-expired { opacity: 0; pointer-events: none; transform: translate(-50%, .5rem); transition: opacity .2s ease, transform .2s ease; }
@keyframes library-undo-countdown { to { transform: scaleX(0); } }
.library-table th:first-child, .library-table td:first-child { width: 2.8rem; text-align: center; }
.library-table th button { display: inline-flex; align-items: center; gap: .3rem; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.library-table th button.is-active { color: var(--green); }
.library-table tbody tr { cursor: pointer; transition: background .15s ease; }
.library-table tbody tr:hover { background: #f5faf7; }
.library-table td strong, .library-table td small { display: block; }
.library-table td small { max-width: 38rem; margin-top: .18rem; color: var(--muted); }
.library-tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.library-tags span { padding: .2rem .45rem; border-radius: 999px; background: #e8f2ec; color: var(--green-dark); font-size: .72rem; font-weight: 750; }
.data-table-empty { padding: 2rem; border: 1px dashed var(--line); border-radius: .8rem; color: var(--muted); text-align: center; }
.data-table-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .55rem; margin-top: .9rem; }
.data-table-page-list { display: flex; align-items: center; gap: .3rem; }
.page-number { display: grid; place-items: center; min-width: 2.1rem; height: 2.1rem; border: 1px solid var(--line); border-radius: .55rem; background: #fff; color: var(--green-dark); cursor: pointer; }
.page-number.is-current { border-color: var(--green); background: var(--green); color: #fff; }
.page-gap { padding: 0 .2rem; color: var(--muted); }
.data-table-pagination label { display: flex; align-items: center; gap: .45rem; margin-left: .5rem; color: var(--muted); font-size: .78rem; }
.data-table-pagination input { width: 4.2rem; }
.library-upload-dialog { width: min(54rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: hidden; }
.library-upload-dialog > form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: calc(100dvh - 2rem); overflow: hidden; }
.library-upload-dialog .course-dialog-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.library-upload-dialog .course-dialog-actions { position: relative; z-index: 2; background: #fff; box-shadow: 0 -.65rem 1.2rem rgba(16, 52, 41, .05); }
.library-file-dropzone { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: 1.2rem; border: 2px dashed #8bb8a4; border-radius: .9rem; background: #f2faf5; cursor: pointer; }
.library-file-dropzone.is-dragging { border-color: var(--green); background: #e3f3e9; }
.library-file-dropzone > span { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .75rem; background: var(--green); color: #fff; font-size: 1.25rem; }
.library-file-dropzone > div { display: grid; gap: .2rem; }
.library-file-dropzone small { color: var(--muted); }
.library-upload-file-list { display: grid; gap: .45rem; margin-top: .75rem; }
.library-upload-file-list > p { width: 100%; max-width: none; margin: 0; padding: .85rem; border-radius: .65rem; background: #f5f7f6; color: var(--muted); text-align: center; }
.library-upload-file-list article { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) 2.2rem; align-items: center; gap: .65rem; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: .65rem; }
.library-upload-file-list article > span:nth-child(2) { display: grid; }
.library-upload-file-list article small { color: var(--muted); }
.library-upload-file-list article button { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #fff0ee; color: var(--danger); cursor: pointer; }
.library-upload-file-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .55rem; background: #e6f1ea; color: var(--green); font-size: .68rem; font-weight: 850; }
.file-material-downloads, .file-material-editor { margin-top: 1.2rem; }
.file-material-download { display: flex; align-items: center; gap: .8rem; padding: .8rem 0; border-top: 1px solid var(--line); color: var(--green-dark); text-decoration: none; }
.file-material-download i { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: .6rem; background: #e7f2eb; font-style: normal; }
.file-material-download span { display: grid; }
.file-material-download small { color: var(--muted); }
.file-material-download > span:nth-child(2) { flex: 1; min-width: 0; }
.file-material-download > .actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-left: auto; }
.file-material-editor form { display: grid; gap: .85rem; margin-top: 1rem; }
.adoption-notice { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; margin: 0 0 1.1rem; padding: 1rem 1.15rem; border: 1px solid #c9ddd2; border-left: 4px solid var(--green); border-radius: var(--radius); background: var(--green-soft); }
.adoption-notice > div { display: grid; gap: .22rem; }
.adoption-notice p { margin: 0; color: var(--muted); }
.exercise-adopt { position: relative; z-index: 3; margin-top: .8rem; padding-top: .65rem; border-top: 1px solid var(--line); }
.exercise-adopt summary { cursor: pointer; color: var(--green); font-weight: 800; }
.exercise-adopt form { display: grid; gap: .55rem; margin-top: .65rem; }
.exercise-adopt label { font-size: .78rem; font-weight: 800; }
@media (max-width: 900px) {
  .library-workspace-header { align-items: stretch; flex-direction: column; }
  .library-workspace-header .actions { justify-content: flex-start; }
  .library-overview-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-table-controls { align-items: stretch; flex-wrap: wrap; }
  .library-selection-actions { width: 100%; margin-left: 0; overflow-x: auto; }
}
@media (max-width: 620px) {
  .library-overview-strip { grid-template-columns: 1fr; }
  .library-file-dropzone { grid-template-columns: 2.6rem minmax(0, 1fr); }
  .library-file-dropzone .button { grid-column: 1 / -1; }
}
.course-library-section .course-content-grid { grid-template-columns: 1fr; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.course-library-section .course-content-card { display: grid; grid-template-columns: minmax(15rem, 1.25fr) minmax(11rem, .8fr) minmax(9rem, .65fr); grid-template-areas: "title meta actions" "description meta actions"; align-items: center; gap: .2rem 1rem; min-height: 0; padding: .9rem 1rem; border: 0; border-radius: 0; box-shadow: none; }
.course-library-section .course-content-card + .course-content-card { border-top: 1px solid var(--line); }
.course-library-section .course-content-card h4 { grid-area: title; margin: 0; font-size: 1.02rem; }
.course-library-section .course-content-card > p { grid-area: description; }
.course-library-section .course-content-meta { grid-area: meta; justify-content: flex-start; flex-wrap: wrap; }
.course-library-section .course-content-actions { grid-area: actions; justify-content: flex-end; margin: 0; }
.course-library-pagination { display: flex; justify-content: center; align-items: center; gap: .75rem; margin: 1.25rem 0 0; }
@media (max-width: 800px) {
  .course-library-section .course-content-card { grid-template-columns: 1fr; grid-template-areas: "title" "description" "meta" "actions"; padding: 1rem; }
  .course-library-section .course-content-actions { justify-content: flex-start; }
}

@media (max-width: 900px) {
  .import-summary-grid { grid-template-columns: repeat(3, 1fr); }
  .import-review-hero, .import-review-toolbar, .import-commit { align-items: stretch; flex-direction: column; }
  .import-section-header { grid-template-columns: auto minmax(0, 1fr) auto; }
  .import-source-meta { grid-column: 2; justify-items: start; }
  .import-section-collapse { grid-column: 3; grid-row: 1; }
  .import-item { grid-template-columns: auto auto minmax(0, 1fr); }
  .import-item-actions { grid-column: 3; }
  .import-structure-controls { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .import-upload-form, .import-task-types, .import-task-type-options, .import-task-type-options > label { box-sizing: border-box; max-width: 100%; min-width: 0; }
  .import-task-type-options { grid-template-columns: minmax(0, 1fr); }
  .import-task-type-options > label span { min-width: 0; overflow-wrap: anywhere; }
  .import-file-picker { grid-template-columns: auto minmax(0, 1fr); }
  .import-file-picker .button, .import-file-picker > small { grid-column: 1 / -1; }
  .import-plan-hint a { width: 100%; margin-left: 0; }
  .import-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .import-section-header { grid-template-columns: 1fr; }
  .import-unit-number, .import-source-meta { grid-column: auto; }
  .import-section-collapse { grid-column: 1; grid-row: 1; justify-self: end; }
  .import-item { grid-template-columns: auto minmax(0, 1fr); }
  .import-drag-handle { display: none; }
  .import-item-actions { grid-column: 2; flex-wrap: wrap; }
  .import-structure-controls { grid-template-columns: 1fr; }
  .import-inline-editor { position: fixed; inset: 5vh 4vw auto; width: auto; max-height: 90vh; }
}
.structured-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 1.4rem;
  align-items: start;
}

.structured-live-preview {
  position: sticky;
  top: 1rem;
}

.structured-answer-list,
.structured-matrix {
  display: grid;
  gap: .85rem;
  margin-top: 1.25rem;
}

.structured-rank-row {
  grid-template-columns: minmax(0, 1fr) 8rem;
  align-items: center;
}

.structured-rank-row > span {
  font-weight: 700;
}

.cloze-display-text {
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--color-primary, #08745a);
  background: var(--color-surface-soft, #f2f7f4);
  white-space: pre-wrap;
  line-height: 1.7;
}

@media (max-width: 920px) {
  .structured-editor-layout { grid-template-columns: 1fr; }
  .structured-live-preview { position: static; }
}

/* Visual builders for general exercises */
.visual-builder { display: grid; gap: .8rem; }
.visual-builder-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) 2.5rem; gap: 2.55rem; padding: 0 2.35rem; color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.matching-builder-row { display: grid; grid-template-columns: 1.8rem minmax(0,1fr) 2.4rem minmax(0,1fr) 2.5rem; gap: .5rem; align-items: center; padding: .55rem; border: 1px solid var(--line); border-radius: .8rem; background: #f8fbf9; }
.matching-builder-row textarea { min-height: 2.75rem; max-height: 10rem; resize: vertical; overflow-y: hidden; line-height: 1.35; }
.typed-confirmation-error { border-color: var(--danger) !important; box-shadow: 0 0 0 3px rgba(185,55,50,.13) !important; animation: typed-confirmation-shake .28s ease-in-out; }
@keyframes typed-confirmation-shake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
@media (prefers-reduced-motion: reduce) { .typed-confirmation-error { animation: none; } }
.matching-builder-row.is-dragging, .ordering-builder-row.is-dragging, .ordering-attempt-card.is-dragging { opacity: .45; }
.visual-drag-handle { color: #769186; font-weight: 900; cursor: grab; letter-spacing: -.2em; }
.pair-connector { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: #e2f2ea; color: var(--green-dark); font-weight: 900; }
.visual-remove, .visual-row-actions button, .matrix-editor-table th button, .cloze-answer-card > button { border: 0; background: transparent; color: #a5362d; cursor: pointer; font-size: 1.1rem; }
.builder-inline-help { margin: 0; color: var(--muted); }
.ordering-builder [data-order-rows] { display: grid; gap: .55rem; }
.ordering-builder-row { display: grid; grid-template-columns: 1.6rem 2rem minmax(0,1fr) auto; gap: .55rem; align-items: center; padding: .5rem .65rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }
.order-number, .cloze-number { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: .55rem; background: var(--green-dark); color: #fff; font-weight: 800; }
.visual-row-actions { display: flex; gap: .15rem; }
.visual-row-actions button { width: 2rem; height: 2rem; border-radius: .45rem; background: #eef5f1; color: var(--green-dark); }
.cloze-builder-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.cloze-builder-toolbar small { color: var(--muted); }
.cloze-answer-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.cloze-answer-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .65rem; align-items: start; padding: .75rem; border: 1px solid #b9d2c5; border-radius: .8rem; background: #f1f8f4; }
.cloze-answer-card > div { display: grid; gap: .45rem; }
.cloze-answer-card label { display: grid; gap: .2rem; color: var(--muted); font-size: .75rem; }
.matrix-builder-toolbar { display: flex; gap: .5rem; justify-content: flex-end; }
.matrix-editor-scroll, .matrix-attempt-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: .85rem; }
.matrix-editor-table, .matrix-attempt-table { width: 100%; min-width: 560px; border-collapse: collapse; background: #fff; }
.matrix-editor-table th, .matrix-editor-table td, .matrix-attempt-table th, .matrix-attempt-table td { min-width: 140px; padding: .55rem; border: 1px solid var(--line); text-align: left; }
.matrix-editor-table thead th, .matrix-attempt-table thead th { background: #eaf4ef; color: var(--green-dark); }
.matrix-editor-table tbody th, .matrix-attempt-table tbody th { background: #f7f9f8; }
.matrix-editor-table th { position: relative; }
.matrix-editor-table th button { position: absolute; top: .15rem; right: .15rem; }
.file-type-picker { display: grid; gap: .75rem; margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: #fbfdfc; }
.file-type-picker legend { padding: 0 .4rem; font-weight: 800; }
.file-type-select-all { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 1.65rem; align-items: center; width: 100%; gap: .6rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: #f8fbf9; cursor: pointer; }
.file-type-select-all span, .file-type-option span { display: grid; min-width: 0; gap: .15rem; }
.file-type-select-all small, .file-type-option small { color: var(--muted); }
.file-type-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.file-type-option { position: relative; display: grid; grid-template-columns: 2.2rem minmax(0,1fr) 1.65rem; align-items: center; min-height: 5.4rem; gap: .65rem; padding: .78rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease; }
.file-type-option:hover { border-color: #8fb7a2; transform: translateY(-1px); }
.file-type-option > i { display: grid; place-items: center; min-width: 2.2rem; height: 2.2rem; border-radius: .65rem; background: var(--green-soft, #e7f3ed); color: var(--green, #087458); font-style: normal; font-weight: 800; font-size: .68rem; }
.file-type-select-all > input, .file-type-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-type-select-all::after, .file-type-option::after { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border: 1px solid #a9beb2; border-radius: 50%; color: transparent; content: "✓"; font-weight: 900; }
.file-type-select-all:has(input:checked), .file-type-select-all:has(input:indeterminate), .file-type-option:has(input:checked) { border-color: var(--green); background: #fff; box-shadow: 0 0 0 2px rgba(15,116,88,.1); }
.file-type-select-all:has(input:checked)::after, .file-type-option:has(input:checked)::after { border-color: var(--green); background: var(--green); color: #fff; }
.file-type-select-all:has(input:indeterminate)::after { border-color: var(--green); background: var(--green); color: #fff; content: "−"; }
.file-type-select-all:focus-within, .file-type-option:focus-within { outline: 3px solid rgba(15,116,88,.2); outline-offset: 2px; }
.file-submission-limits { margin-top: 1.25rem; }
.assignment-files { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-top: 1.35rem; }
.assignment-file-option { display: grid; align-content: start; gap: .55rem; }
.file-drop-card { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr); gap: .75rem; align-items: center; min-height: 120px; padding: 1rem; border: 1px dashed #82aa96; border-radius: .9rem; background: #f5faf7; cursor: pointer; }
.file-drop-card input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.file-drop-card > span:nth-child(2) { display: grid; gap: .2rem; }
.file-drop-card small { color: var(--muted); }
.file-drop-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .8rem; background: var(--green-dark); color: #fff; font-size: 1.25rem; font-weight: 900; }
.file-drop-icon.is-solution { background: #7350a8; }
.compact-check { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .82rem; }
.assignment-self-check { margin-top: 1rem; }
.assignment-self-check + .assignment-library-pickers { margin-top: 1.25rem; }
.assignment-library-pickers + .file-library-save-choice, .assignment-self-check + .file-library-save-choice { margin-top: 1rem; }
.file-library-save-choice + .alert { margin-top: 1rem; }

/* Participant interactions */
.assignment-download { display: flex; gap: .75rem; align-items: center; margin: 1rem 0; padding: .85rem; border: 1px solid #a9caba; border-radius: .8rem; background: #eff8f3; color: inherit; text-decoration: none; }
.assignment-download > span:first-child { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .7rem; background: var(--green-dark); color: #fff; font-size: 1.2rem; }
.assignment-download > span:last-child { display: grid; }
.assignment-download small { color: var(--muted); }
.matching-attempt-board { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: .9rem; align-items: stretch; margin: 1.25rem 0; }
.matching-board-column { display: grid; align-content: start; gap: .6rem; padding: .75rem; border: 1px solid var(--line); border-radius: .9rem; background: #f7faf8; }
.matching-board-column.is-options { background: #f7f4fb; }
.matching-board-title { display: flex; gap: .5rem; align-items: center; margin-bottom: .15rem; }
.matching-board-title > span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: .55rem; background: var(--green-dark); color: #fff; font-weight: 900; }
.is-options .matching-board-title > span { background: #7350a8; }
.matching-board-flow { display: grid; place-items: center; color: #769186; font-size: 1.4rem; pointer-events: none; }
.matching-target, .matching-option { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .6rem; align-items: center; min-height: 66px; padding: .65rem; border: 1px solid #b9cbc1; border-radius: .75rem; background: #fff; text-align: left; }
.matching-target, .matching-option { scroll-margin-top: 6rem; }
.matching-target { grid-template-columns: auto minmax(0,1fr) auto; }
.matching-target { cursor: pointer; }
.matching-target-number { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: #e3f1ea; color: var(--green-dark); font-weight: 900; }
.matching-target > div { display: grid; gap: .2rem; }
.matching-target [data-match-result] { color: var(--muted); font-size: .78rem; overflow-wrap: anywhere; }
.matching-target.has-match { border-color: var(--green); background: #eaf6f0; box-shadow: inset 0 0 0 1px var(--green); }
.matching-target[draggable="true"] { cursor: grab; }
.matching-target.is-selected { border-color: #7350a8; box-shadow: 0 0 0 3px rgba(115,80,168,.15); }
.matching-target.has-match [data-match-result] { color: var(--green-dark); font-weight: 750; }
.matching-clear { display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid #b9cbc1; border-radius: 50%; background: #fff; color: #75423c; font: 800 1.1rem/1 inherit; cursor: pointer; }
.matching-clear:hover, .matching-clear:focus-visible { border-color: #ad463e; background: #fff2f0; outline: 2px solid rgba(173,70,62,.18); }
.matching-clear[hidden] { display: none; }
.matching-target.is-over { outline: 3px solid rgba(15,132,96,.2); }
.matching-option { width: 100%; font: inherit; cursor: grab; }
.matching-option small { color: var(--muted); font-size: .68rem; font-weight: 650; grid-column: 2; }
.matching-option[aria-pressed="true"] { border-color: #7350a8; box-shadow: 0 0 0 3px rgba(115,80,168,.15); }
.matching-option.is-over { outline: 3px solid rgba(115,80,168,.2); }
.matching-option.is-assigned { opacity: .58; cursor: default; }
.matching-solution-list { display: grid; gap: .7rem; margin-top: 1rem; }
.matching-solution-list article { display: grid; grid-template-columns: auto minmax(0,1fr) auto minmax(0,1fr); gap: .7rem; align-items: center; padding: .85rem 1rem; border: 1px solid #cbd8d1; border-radius: .8rem; background: #f8fbf9; }
.matching-solution-list article > span { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: #e3f1ea; color: var(--green-dark); font-weight: 900; }
.matching-solution-list article > i { color: var(--green); font-style: normal; font-weight: 900; }
.matching-solution-list article > b { color: #543d70; }
.matching-solution-list article > small { grid-column: 2 / -1; color: #8e3730; }
.numeric-answer-field { margin: 0; padding: 1rem; border: 1px solid #cbd9d1; border-radius: .9rem; background: #f8fbf9; }
.numeric-answer-control { position: relative; margin-top: .15rem; }
.numeric-answer-field .input { min-height: 3.5rem; font-size: 1.25rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.numeric-answer-overlay { position: absolute; inset: 0 auto 0 0; display: flex; max-width: calc(100% - 1.5rem); align-items: center; padding-left: 12px; pointer-events: none; overflow: hidden; color: transparent; font-family: inherit; font-size: 1.25rem; font-weight: 750; line-height: 1; font-variant-numeric: tabular-nums; white-space: pre; }
.numeric-answer-unit { flex: 0 0 auto; margin-left: .38em; color: var(--green-dark); font-size: .82em; font-weight: 800; }
.numeric-result-comparison { display: grid; width: min(100%, 930px); grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: stretch; gap: .8rem; margin: 1.1rem 0; }
.numeric-result-comparison > article { display: grid; gap: .35rem; min-width: 0; padding: 1.15rem 1.25rem; border: 1px solid #cbd9d1; border-radius: .9rem; background: #fff; }
.numeric-result-comparison > article > span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.numeric-result-comparison > article > strong { overflow-wrap: anywhere; color: var(--ink); font-size: clamp(1.3rem, 2.6vw, 2rem); font-variant-numeric: tabular-nums; line-height: 1.15; }
.numeric-result-comparison > article > strong small { color: var(--muted); font-size: .75em; }
.numeric-result-comparison > article.is-correct, .numeric-result-comparison > article.is-expected { border-color: #a9cdb8; background: #f0f8f3; }
.numeric-result-comparison > article.needs-correction { border-color: #e0b3ae; background: #fff5f4; }
.numeric-result-comparison > span { display: grid; place-items: center; color: var(--muted); font-size: 1.35rem; font-weight: 900; }
.interaction-help { color: var(--muted); font-size: .85rem; }
.ordering-attempt { margin: 1.25rem 0; border: 1px solid var(--line); border-radius: .9rem; overflow: hidden; }
.ordering-attempt-head { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; background: #eaf4ef; }
.ordering-attempt-head span { color: var(--muted); font-size: .8rem; }
.ordering-attempt [data-ordering-items] { display: grid; gap: .55rem; padding: .75rem; background: #f8faf9; }
.ordering-attempt-card { display: grid; grid-template-columns: 1.5rem 2rem minmax(0,1fr) auto; gap: .55rem; align-items: center; padding: .7rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.ordering-attempt-card > div { display: flex; gap: .25rem; }
.ordering-attempt-card button { width: 2rem; height: 2rem; border: 0; border-radius: .45rem; background: #edf4f0; color: var(--green-dark); cursor: pointer; }
.cloze-inline-text { padding: 1.1rem; border: 1px solid #b9d2c5; border-radius: .9rem; background: #f6faf8; font-size: 1.05rem; line-height: 2.7; white-space: pre-wrap; }
.cloze-inline-blank input { width: min(190px,35vw); margin: 0 .2rem; padding: .42rem .6rem; border: 0; border-bottom: 2px solid var(--green); border-radius: .35rem .35rem 0 0; background: #fff; font: inherit; }
.matrix-attempt-table td .input { min-width: 110px; }
.submission-dropzone { position: relative; display: grid; justify-items: center; gap: .45rem; margin: 1.2rem 0 .75rem; padding: 2rem 1rem; border: 2px dashed #7cab94; border-radius: 1rem; background: #f4faf6; text-align: center; cursor: pointer; }
.submission-dropzone input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.submission-dropzone > span:nth-of-type(2) { display: grid; }
.submission-dropzone > b { color: var(--muted); font-size: .82rem; }
.submission-dropzone.is-over, .submission-dropzone.has-files { border-color: var(--green); background: #e8f6ef; }
.submission-drop-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .85rem; background: var(--green-dark); color: #fff; font-size: 1.4rem; }
.submission-rules { display: flex; gap: .55rem; flex-wrap: wrap; }
.submission-rules span { padding: .45rem .65rem; border-radius: 999px; background: #edf3f0; color: var(--muted); font-size: .78rem; }
.solution-download-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 1rem; }
.solution-download-card > span { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: .8rem; background: #e3f3ea; color: var(--green-dark); font-size: 1.3rem; font-weight: 900; }
.solution-download-card h2, .solution-download-card p { margin: 0; }

/* Compact exercise type chooser */
.exercise-picker-panel { padding: 0; overflow: hidden; }
.exercise-picker-context { display: grid !important; grid-template-columns: auto minmax(0,1fr) auto; gap: .8rem; align-items: center; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); background: #f4f9f6; }
.exercise-picker-context .creation-context-icon { width: 2.6rem; }
.exercise-picker-context h2, .exercise-picker-context p { margin: 0; }
.exercise-picker-context small { color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.exercise-picker { display: grid; gap: 1rem; padding: 1.1rem; }
.exercise-picker-group { display: grid; grid-template-columns: minmax(180px,.38fr) minmax(0,1fr); gap: 1rem; align-items: start; }
.exercise-picker-group > header { display: flex; gap: .65rem; padding: .55rem; }
.exercise-picker-group h3, .exercise-picker-group p { margin: 0; }
.exercise-picker-group p { color: var(--muted); font-size: .82rem; }
.exercise-picker-icon { display: grid; flex: 0 0 auto; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: .75rem; background: #e0f1e8; color: var(--green-dark); font-weight: 900; }
.exercise-picker-icon.is-interactive { background: #eee6f8; color: #684599; }
.exercise-type-entry-grid.is-compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
.exercise-type-entry-grid.is-compact a { grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .72rem; }
.exercise-type-entry-grid.is-compact a > span:nth-child(2) { display: grid; }
.exercise-type-entry-grid.is-compact b { margin: 0; font-size: 1.4rem; }
.type-card-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .72rem; background: #eaf4ef; color: var(--green-dark); font-weight: 900; }
.exercise-picker-specials { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.exercise-type-request { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .9rem 1rem; border: 1px dashed #a9c6b6; border-radius: .85rem; background: #f7faf8; }
.exercise-type-request-icon { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .75rem; background: #e0f1e8; color: var(--green-dark); font-size: 1.25rem; font-weight: 900; }
.exercise-type-request h3, .exercise-type-request p { margin: 0; }
.exercise-type-request h3 { font-size: .95rem; }
.exercise-type-request p { margin-top: .12rem; color: var(--muted); font-size: .76rem; }
.exercise-special-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .75rem; align-items: center; padding: .9rem; border: 1px solid #b8d1c4; border-radius: .9rem; background: #eff8f3; color: inherit; text-decoration: none; }
.exercise-special-card.is-booking { border-color: #cfc1df; background: #f6f2fa; }
.exercise-special-card > span:nth-child(2) { display: grid; }
.exercise-special-card small { color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.exercise-special-card p { margin: .2rem 0 0; color: var(--muted); font-size: .82rem; }
.exercise-special-card b { color: var(--green-dark); font-size: 1.5rem; }

.import-icon-button { display: inline-grid; width: 2.45rem; min-width: 2.45rem; height: 2.35rem; padding: 0 !important; place-items: center; font-size: 1rem; line-height: 1; }
.import-icon-button > .ui-icon { width: 1.05rem; height: 1.05rem; margin: 0; vertical-align: 0; }
.import-icon-button > span { line-height: 1; }

/* Form labels may be bold, while the value inside a dropdown stays calm and readable. */
#content select { font-weight: 500; }
.import-upload-dialog { width: min(32rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 1rem; background: transparent; box-shadow: 0 24px 70px rgba(6,31,24,.28); }
.import-upload-dialog::backdrop { background: rgba(6,31,24,.5); backdrop-filter: blur(3px); }
.import-upload-dialog > div { display: grid; grid-template-columns: 2.6rem minmax(0,1fr); gap: .65rem 1rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.import-upload-dialog .import-spinner { grid-row: 1 / 6; align-self: start; margin-top: .2rem; }
.import-upload-dialog h2, .import-upload-dialog p { margin: 0; }
.import-upload-dialog p, .import-upload-dialog small { color: var(--muted); }
.import-upload-dialog .import-progress { grid-column: 2; width: 100%; }
.import-upload-dialog [data-import-upload-percent] { grid-column: 2; min-height: 1.1rem; font-variant-numeric: tabular-nums; text-align: right; }
.import-validation-alert { display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: start; gap: .7rem; padding: .85rem 1rem; border: 1px solid #e6aaa2; border-radius: .8rem; background: #fff3f1; color: #8c241b; }
.import-validation-alert[hidden] { display: none; }
.import-validation-alert > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #f7d7d2; font-weight: 900; }
.import-validation-alert p { margin: .25rem 0 0; }
.import-selected-file.has-error { border-color: #d96659; background: #fff7f5; }
.import-selected-file.has-error small { color: #a32e23; font-weight: 800; }
.structured-preview-stage { display: grid; gap: .45rem; margin-top: 1rem; }
.preview-answer-line, .preview-two-sides, .preview-file-drop { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .65rem; border: 1px solid var(--line); border-radius: .65rem; background: #f7faf8; }
.preview-answer-line span { color: var(--muted); }
.preview-two-sides i { color: var(--green); }
.preview-order { display: grid; gap: .4rem; padding-left: 1.6rem; }
.preview-order li { padding: .45rem; border: 1px solid var(--line); border-radius: .5rem; }
.preview-cloze span { padding: .25rem .45rem; border-bottom: 2px solid var(--green); background: #edf5f1; }
.preview-mini-table { display: grid; grid-template-columns: repeat(3,1fr); }
.preview-mini-table > * { min-height: 30px; padding: .3rem; border: 1px solid var(--line); }

@media (max-width: 760px) {
  .cloze-answer-cards, .assignment-files, .exercise-picker-specials { grid-template-columns: 1fr; }
  .file-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .matching-attempt-board { grid-template-columns: 1fr; }
  .matching-board-flow { transform: rotate(90deg); }
  .matching-solution-list article { grid-template-columns: auto minmax(0,1fr); }
  .matching-solution-list article > i { display: none; }
  .matching-solution-list article > b { grid-column: 2; }
  .matching-solution-list article > small { grid-column: 2; }
  .numeric-result-comparison { grid-template-columns: 1fr; }
  .numeric-result-comparison > span { min-height: 1.2rem; transform: rotate(90deg); }
  .exercise-picker-group { grid-template-columns: 1fr; }
  .exercise-type-request { grid-template-columns: auto minmax(0,1fr); }
  .exercise-type-request .button { grid-column: 1 / -1; width: 100%; }
  .exercise-type-entry-grid.is-compact { grid-template-columns: 1fr; }
  .exercise-picker-context { grid-template-columns: auto minmax(0,1fr); }
  .exercise-picker-context .button { grid-column: 1 / -1; }
  .solution-download-card { grid-template-columns: auto minmax(0,1fr); }
  .solution-download-card .button { grid-column: 1 / -1; }
}

/* Final responsive overrides must follow all legacy editor and library rules. */
@media (max-width: 1080px) {
  .mc-live-preview, .exam-live-preview, .text-live-preview, .structured-live-preview,
  .course-live-preview, .framework-live-preview, .account-live-preview,
  .domain-live-preview, .chart-live-preview { order: 2 !important; }
}

@media (max-width: 620px) {
  .library-overview-strip { display: flex; grid-template-columns: none; overflow-x: auto; gap: .5rem; margin-bottom: 1.25rem; }
  .library-overview-strip a { flex: 0 0 min(78vw, 250px); }
  .dashboard-welcome h1 { max-width: 100%; overflow-wrap: anywhere; font-size: clamp(2.35rem, 12vw, 3rem); }
  .guided-form-page h1, .organization-library-page h1, .mc-editor-page h1 { overflow-wrap: anywhere; font-size: clamp(2.25rem, 11vw, 3.1rem); }
  .exam-question-navigation button { min-width: 3.4rem; width: 3.4rem; grid-template-columns: 2rem .55rem; gap: .25rem; padding: .55rem; }
  .exam-question-navigation button > span:nth-child(2) { display: none; }
}

@media (pointer: coarse) {
  button, .button, summary, .icon-button, .library-icon-button, .audit-detail-toggle { min-height: 44px; }
}

/* Progressive disclosure for optional editor configuration. */
.editor-advanced-settings { border: 1px solid var(--line); border-radius: 12px; background: #f8faf9; }
.editor-advanced-settings > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; color: var(--ink); font-weight: 800; cursor: pointer; list-style: none; }
.editor-advanced-settings > summary::-webkit-details-marker { display: none; }
.editor-advanced-settings > summary::after { content: "+"; color: var(--green); font-size: 1.15rem; }
.editor-advanced-settings[open] > summary::after { content: "−"; }
.editor-advanced-settings-body { display: grid; gap: 14px; padding: 4px 15px 15px; }
.course-quick-create { max-width: 760px; margin: 0 auto; }
.course-editor-form.is-quick-create .editor-save-bar { position: static; max-width: 760px; margin-inline: auto; }
.course-editor-form.is-quick-create .editor-save-actions { margin-left: auto; }
.builder-step.editor-advanced-settings > summary { padding: 18px; }
.builder-step.editor-advanced-settings > summary .builder-step-heading { margin: 0; width: 100%; }
.builder-step.editor-advanced-settings > .editor-advanced-settings-body { padding: 0 18px 18px; }

/* Time-bound global announcements. */
.announcement-admin-create { display: grid; grid-template-columns: minmax(15rem, .55fr) minmax(0, 1.45fr); gap: 2rem; margin-bottom: 1.25rem; }
.announcement-admin-create h2 { margin: .35rem 0 .55rem; }
.announcement-admin-create > div > p { margin: 0; color: var(--muted); line-height: 1.55; }
.announcement-admin-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-items: start; }
.announcement-admin-form .field { margin: 0; }
.announcement-message-field { grid-column: 1 / -1; }
.announcement-date-range { grid-column: span 2; }
.announcement-admin-form .checkbox-row { min-height: 100%; margin: 0; }
.announcement-admin-actions { display: flex; align-items: end; justify-content: flex-end; min-height: 100%; }
.announcement-admin-list { display: grid; gap: 1rem; }
.announcement-admin-card { position: relative; display: grid; gap: 1rem; }
.announcement-admin-card > .site-announcement { justify-content: flex-start; border-radius: .85rem; text-align: left; }
.announcement-delete-form { display: flex; justify-content: flex-end; margin-top: -.25rem; }
@media (max-width: 900px) {
  .announcement-admin-create { grid-template-columns: 1fr; }
  .announcement-admin-form { grid-template-columns: 1fr 1fr; }
  .announcement-message-field { grid-column: 1 / -1; }
  .announcement-date-range { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .site-announcement { align-items: flex-start; justify-content: flex-start; text-align: left; }
  .announcement-admin-form { grid-template-columns: 1fr; }
  .announcement-message-field { grid-column: auto; }
  .announcement-date-range { grid-column: auto; }
  .announcement-admin-actions .button { width: 100%; }
}

/* Access denied: a protected doorway rather than a generic empty state. */
.access-denied-page { position: relative; display: grid; min-height: 72vh; place-items: center; overflow: hidden; background: linear-gradient(150deg, #f4f9f6 0 58%, #e9f2ed 58%); }
.access-denied-glow { position: absolute; width: 44rem; height: 44rem; border-radius: 50%; background: radial-gradient(circle, rgba(25, 132, 96, .18), transparent 68%); transform: translate(-34vw, -17rem); }
.access-denied-layout { position: relative; display: grid; grid-template-columns: minmax(15rem, .65fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-block: clamp(3rem, 9vw, 7rem); }
.access-denied-lock { position: relative; display: flex; min-height: 20rem; align-items: center; justify-content: center; gap: .5rem; color: var(--green-dark); }
.access-denied-lock > span { position: relative; z-index: 2; font: 800 clamp(5rem, 10vw, 8.5rem)/1 Georgia, serif; text-shadow: 0 .5rem 1.8rem rgba(15, 116, 88, .16); }
.access-denied-lock > i { position: relative; z-index: 2; width: clamp(4.5rem, 8vw, 6.8rem); height: clamp(5.5rem, 9vw, 7.8rem); margin-top: 2rem; border-radius: 1.1rem; background: linear-gradient(145deg, #167759, #084c3b); box-shadow: 0 1.2rem 2.6rem rgba(8, 76, 59, .25); }
.access-denied-lock > i::before { position: absolute; right: 18%; bottom: 72%; left: 18%; height: 3.8rem; border: .7rem solid #167759; border-bottom: 0; border-radius: 3rem 3rem 0 0; content: ""; }
.access-denied-lock > i > b { position: absolute; top: 43%; left: 50%; width: .9rem; height: 1.75rem; border-radius: 99px; background: #f4d88c; transform: translateX(-50%); }
.access-denied-lock > em { position: absolute; border: 1px solid rgba(15, 116, 88, .18); border-radius: 50%; }
.access-denied-lock > em:nth-of-type(1) { width: 9rem; height: 9rem; }
.access-denied-lock > em:nth-of-type(2) { width: 16rem; height: 16rem; }
.access-denied-lock > em:nth-of-type(3) { width: 23rem; height: 23rem; border-style: dashed; }
.access-denied-copy h1 { max-width: 12ch; margin: .45rem 0 .9rem; font-size: clamp(2.8rem, 6vw, 5.8rem); line-height: .94; }
.access-denied-copy > p { max-width: 62ch; color: var(--muted); line-height: 1.65; }
.access-denied-copy > small { display: block; max-width: 62ch; margin-top: 1rem; color: #53695f; line-height: 1.55; }
.access-denied-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.access-denied-status { grid-column: 2; display: grid; gap: .25rem; max-width: 29rem; padding: 1rem 1.1rem; border: 1px solid #a9c7b7; border-radius: .9rem; background: rgba(255,255,255,.76); box-shadow: 0 .8rem 2rem rgba(16,52,41,.05); }
.access-denied-status > span { display: flex; align-items: center; gap: .45rem; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.access-denied-status > span i { width: .55rem; height: .55rem; border-radius: 50%; background: #d3a436; box-shadow: 0 0 0 .3rem rgba(211,164,54,.12); }
.access-denied-status p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.45; }

/* Keep the vertical path authoritative after older compact course-plan rules. */
.course-module-list { gap: 1.4rem; }
.course-module-card,
.course-module-card[open] { border-color: #b8cec1; border-radius: 1.25rem; box-shadow: 0 .8rem 2.4rem rgba(16,52,41,.06); }
.course-module-card > summary { grid-template-columns: 2.8rem minmax(0, 1fr) 2.1rem; gap: 1rem; padding: 1.25rem 1.45rem; }
.course-module-number { width: 2.65rem; height: 2.65rem; border-radius: .85rem; font: 850 .92rem/1 inherit; }
.course-module-summary-copy strong { font: 750 clamp(1.3rem, 2.2vw, 1.65rem)/1.12 Georgia, serif; }
.course-module-body { padding: 0 1.45rem 1.25rem; background: #fff; }
.course-module-overview-row { margin: 0 0 .4rem; padding: 1rem .25rem 1rem .9rem; border: 0; border-bottom: 1px solid #dce6e0; border-radius: 0; background: transparent; }
.course-learning-step-list { gap: 0; padding: .25rem 0 .4rem; }
.course-learning-step-list .course-tree-item { min-height: 5.8rem; grid-template-columns: 3.1rem minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .85rem .25rem .85rem 0; border: 0; border-bottom: 1px solid #e1e9e4; border-radius: 0; background: transparent; }
.course-learning-step-list .course-tree-connector { display: none; }
.course-learning-step-number { width: 3.1rem; height: 3.1rem; margin: 0; border: .45rem solid #fff; border-radius: 1rem; font-size: .72rem; }
.course-learning-step-list .course-tree-copy { padding: 0; }
.course-learning-step-list .course-tree-copy h4 { margin: .35rem 0 .25rem; font: 750 clamp(1.05rem, 1.8vw, 1.28rem)/1.2 inherit; }
.course-learning-step-list .pill { padding: .2rem .5rem; font-size: .6rem; }
.course-kind-explanation,
.course-optional { font-size: .62rem; }
.course-tree-footer { min-height: 0; margin-top: .35rem; }

@media (max-width: 760px) {
  .access-denied-layout { grid-template-columns: 1fr; }
  .access-denied-lock { min-height: 13rem; }
  .access-denied-lock > em:nth-of-type(3) { width: 17rem; height: 17rem; }
  .access-denied-status { grid-column: 1; }
  .course-module-card > summary { padding: 1rem; }
  .course-module-body { padding: 0 .9rem 1rem; }
  .course-learning-step-list .course-tree-item { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .course-learning-step-number { width: 2.5rem; height: 2.5rem; border-width: .35rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .access-denied-lock > em:nth-of-type(3) { animation: calcoria-orbit 26s linear infinite; }
  .access-denied-lock > i > b { animation: calcoria-pulse 2.8s ease-in-out infinite; }
}

/* 2026-08 usability pass: dialogs, library filters and course hierarchy */
.course-dialog.course-content-dialog { width: min(1080px, calc(100vw - 2rem)); max-height: min(900px, calc(100dvh - 2rem)); }
.course-content-dialog > form { max-height: min(900px, calc(100dvh - 2rem)); }
.course-content-picker-toolbar { display: grid; grid-template-columns: 1fr; gap: .8rem; }
.course-content-primary-filters { display: grid; grid-template-columns: minmax(18rem, 1fr) auto; gap: .65rem; align-items: center; }
.course-content-secondary-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; padding: .8rem; border: 1px solid var(--line); border-radius: .85rem; background: #f6f9f7; }
.course-content-secondary-filters .course-content-task-type-filter { display: grid; grid-column: auto; grid-template-columns: 1fr; gap: .3rem; justify-content: stretch; min-width: 0; font-size: .72rem; }
.course-content-secondary-filters .input { width: 100%; min-height: 2.75rem; background: #fff; }
.course-content-picker-list { max-height: 390px; }

.course-workspace-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.35rem 0 1rem; }
.course-workspace-controls .workspace-mode-switch { flex: 1 1 46rem; margin: 0; }
.course-workspace-controls .course-personal-actions { flex: 0 0 auto; }
.course-workspace-controls .course-share-compact { min-height: 3rem; padding-inline: 1rem; background: #fff; box-shadow: var(--shadow-small); }

.course-learning-step-list .course-tree-item { min-height: 6.5rem; grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: 1rem; padding-block: 1rem; }
.course-learning-step-list .course-tree-copy h4 { margin: .42rem 0 .32rem; font: 750 clamp(1.18rem, 2vw, 1.42rem)/1.2 inherit; }
.course-learning-step-list .pill { padding: .28rem .62rem; font-size: .7rem; }
.course-step-position { font-size: .74rem; letter-spacing: .055em; }
.course-kind-explanation,
.course-optional { font-size: .73rem; line-height: 1.4; }
.course-learning-step-list .course-tree-actions a { font-size: .78rem; }

[data-exam-assignment] .form-context-note { margin: .9rem 0 0; padding: .85rem 1rem; border-left: 3px solid var(--green); border-radius: 0 .75rem .75rem 0; background: #edf5f0; color: #385c4d; line-height: 1.55; }
[data-exam-assignment] .form-context-note strong { color: var(--ink); }

.library-table-controls { display: grid; grid-template-columns: minmax(16rem, 2fr) repeat(3, minmax(10.5rem, 1fr)) auto; gap: .7rem; align-items: end; margin: 1rem 0; padding: .85rem; border: 1px solid var(--line); border-radius: .9rem; background: #f7faf8; }
.library-table-controls .library-table-search { min-width: 0; max-width: none; }
.library-table-controls .library-table-filter { min-width: 0; }
.library-table-controls > [data-table-result-count] { align-self: center; justify-self: end; font-weight: 750; }
.library-table-controls .library-selection-actions { grid-column: 1 / -1; }

.file-dms-heading { align-items: center; }
.file-dms-heading-actions { display: grid; justify-items: end; gap: .65rem; }
.file-dms-heading-actions > span { color: var(--muted); font-size: .78rem; font-weight: 750; }
.file-dms-heading-actions .actions { display: flex; gap: .55rem; }
.file-dms-toolbar { display: grid; grid-template-columns: minmax(18rem, 2fr) repeat(3, minmax(10rem, 1fr)); gap: .7rem; align-items: end; margin: 1rem 0; padding: .85rem; border: 1px solid var(--line); border-radius: .9rem; background: #f7faf8; }
.file-dms-toolbar .library-table-search { max-width: none; }

.file-material-page { background: linear-gradient(180deg, #f3f8f4 0, var(--paper) 34rem); }
.file-material-page .container { max-width: 1240px; }
.file-material-hero { min-height: 18rem; align-content: center; margin: 1.1rem 0 1.4rem; padding: clamp(1.5rem, 4vw, 3.25rem); border-radius: 1.6rem; box-shadow: var(--shadow-small); }
.file-material-hero-icon { width: 5rem; height: 5rem; border-radius: 1.3rem; }
.file-material-hero-icon .ui-icon { width: 2.25rem; height: 2.25rem; }
.file-material-workspace { display: grid; gap: 1.25rem; }
.file-material-downloads,
.file-material-editor { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 1.25rem; background: #fff; box-shadow: var(--shadow-small); }
.file-material-download { min-height: 5.25rem; padding: 1rem .25rem; }
.file-material-download > span:nth-child(2) { min-width: 0; }
.file-material-download strong { overflow-wrap: break-word; font-size: 1rem; }
.file-material-download .actions { margin-left: auto; }
.file-material-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.file-material-description-field { grid-column: 1 / -1; }
.file-material-editor .field { margin: 0; }
.file-material-form-actions { display: flex; justify-content: flex-end; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.file-material-form-actions .button { min-width: 14rem; }
.file-material-editor .danger-zone { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }

@media (max-width: 1050px) {
  .library-table-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-table-controls .library-table-search { grid-column: 1 / -1; }
  .file-dms-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .file-dms-toolbar .library-table-search { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .course-content-primary-filters,
  .course-content-secondary-filters { grid-template-columns: 1fr 1fr; }
  .course-content-search { grid-column: 1 / -1; }
  .course-content-kind-filters { justify-content: flex-start; }
  .course-workspace-controls { align-items: stretch; flex-direction: column; }
  .course-workspace-controls .course-personal-actions { justify-content: flex-start; }
  .file-dms-heading { align-items: flex-start; }
  .file-dms-heading-actions { justify-items: start; }
  .file-material-settings-grid { grid-template-columns: 1fr; }
  .file-material-description-field { grid-column: auto; }
}
@media (max-width: 620px) {
  .course-content-primary-filters,
  .course-content-secondary-filters,
  .library-table-controls,
  .file-dms-toolbar { grid-template-columns: 1fr; }
  .course-content-search,
  .library-table-controls .library-table-search,
  .file-dms-toolbar .library-table-search { grid-column: auto; }
  .file-dms-heading-actions .actions { align-items: stretch; flex-direction: column; }
  .course-learning-step-list .course-tree-item { grid-template-columns: 2.8rem minmax(0, 1fr); }
}

/* Real learner views inside the course content preview dialog. */
.course-content-preview-dialog { width: min(1180px, calc(100vw - 2rem)); height: min(880px, calc(100dvh - 2rem)); }
.exercise-dialog-preview-shell,
.material-dialog-preview-shell { min-height: 100%; background: var(--paper); }
.exercise-dialog-preview-shell { padding-bottom: 0; }
.exercise-dialog-preview-shell .page,
.material-dialog-preview-shell .page { padding: 1.25rem 0 2rem; }
.exercise-dialog-preview-shell .back-link { display: none; }
.exercise-dialog-preview-shell .exercise-reader-container,
.exercise-dialog-preview-shell .exercise-layout,
.material-dialog-preview-shell .container { width: min(100% - 2rem, 1040px); }
.exercise-dialog-preview-shell .exercise-layout { grid-template-columns: minmax(0, 1fr) minmax(15rem, .36fr); }
.exercise-dialog-preview-shell .mc-attempt-actions,
.exercise-dialog-preview-shell .editor-actions { position: relative; z-index: 1; }
.exercise-dialog-preview-notice {
  position: sticky;
  z-index: 30;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  box-sizing: border-box;
  min-height: 4.5rem;
  padding: .75rem clamp(1rem, 4vw, 2rem);
  border-top: 1px solid #b8cec1;
  background: #edf5f0;
  color: #385c4d;
  box-shadow: 0 -8px 24px rgba(16, 35, 29, .08);
}
.exercise-dialog-preview-notice > span { display: grid; gap: .1rem; min-width: 0; }
.exercise-dialog-preview-notice strong { color: var(--ink); }
.exercise-dialog-preview-notice small { color: var(--muted); font-size: .82rem; }
.exercise-dialog-preview-notice .button { flex: 0 0 auto; min-height: 2.75rem; }
.exercise-dialog-preview-shell .result-actions { display: none; }
.material-dialog-preview-shell .material-detail-hero { margin-top: 0; }

/* Share is a third, clearly grouped course workspace action. */
.course-workspace-controls {
  width: min(100%, 61rem);
  align-items: stretch;
  gap: .4rem;
  padding: .4rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 30px rgba(18,52,40,.07);
}
.course-workspace-controls .workspace-mode-switch { width: auto; padding: 0; border: 0; background: transparent; box-shadow: none; }
.course-workspace-controls .course-personal-actions { align-items: stretch; padding-left: .4rem; border-left: 1px solid var(--line); }
.course-workspace-controls .course-share-compact {
  min-height: 4.4rem;
  height: 100%;
  padding: .75rem 1.15rem;
  border: 0;
  border-radius: .75rem;
  background: #edf3f0;
  box-shadow: none;
}
.course-workspace-controls .course-share-compact:hover { background: #dfeee6; }

@media (max-width: 820px) {
  .exercise-dialog-preview-shell .exercise-layout { grid-template-columns: 1fr; }
  .course-workspace-controls .course-personal-actions { padding: .4rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .course-workspace-controls .course-share-compact { width: 100%; min-height: 3.4rem; }
}

/* Open course menus must escape the stacking context of their own learning-step row. */
.course-learning-step-list .course-tree-branch:has(.course-unit-menu[open]),
.course-module-overview-row:has(.course-unit-menu[open]) {
  position: relative;
  z-index: 100;
}
.course-learning-step-list .course-tree-branch:has(.course-unit-menu[open]) .course-unit-menu-panel,
.course-module-overview-row:has(.course-unit-menu[open]) .course-unit-menu-panel { z-index: 140; }

/* Keep the sticky manager toolbar beside the equally important course index. */
@media (min-width: 981px) {
  [data-workspace-root="course"][data-workspace-current="learn"] .course-builder-layout.is-manager .course-module-nav {
    top: 5.75rem;
    max-height: calc(100vh - 6.5rem);
  }
}

/* Module creation labels must remain legible beside the full-size editor fields. */
#course-module-dialog .course-dialog-field > span { font-size: .82rem; }
#course-module-dialog .course-dialog-field > small { font-size: .72rem; line-height: 1.5; }

/* The feedback body scrolls while its explicit actions remain reachable. */
.import-feedback-dialog > form {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: min(88dvh, 900px);
  max-height: min(88dvh, 900px);
  overflow: hidden;
}
.import-feedback-dialog .course-dialog-body { min-height: 0; overflow-y: auto; }
.import-feedback-dialog .course-dialog-actions {
  position: relative;
  z-index: 4;
  flex: 0 0 auto;
  background: #fff;
  box-shadow: 0 -.65rem 1.2rem rgba(16, 52, 41, .08);
}

@media (max-height: 700px) {
  .import-feedback-dialog > form {
    height: calc(100dvh - 1rem);
    max-height: calc(100dvh - 1rem);
  }
}

/* Headings and navigation labels should wrap at word boundaries, never mid-word. */
:where(h1, h2, h3, h4, h5, h6, .page-title, .section-title, .eyebrow, nav a, nav button, summary, .button) {
  hyphens: none !important;
  word-break: normal;
  overflow-wrap: break-word;
}

.alpha-gate {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background:
    radial-gradient(circle at 15% 10%, rgba(35, 137, 101, .18), transparent 32rem),
    linear-gradient(145deg, #f6faf7, #e8f2ed);
}
.alpha-gate-card {
  width: min(100%, 31rem);
  padding: clamp(1.6rem, 5vw, 2.8rem);
  border: 1px solid rgba(20, 107, 82, .18);
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 1.5rem 4rem rgba(16, 52, 41, .14);
}
.alpha-gate-card > img { display: block; margin-bottom: 1.25rem; border-radius: 1rem; }
.alpha-gate-card h1 { margin: .35rem 0 .75rem; }
.alpha-gate-card > p { margin: 0 0 1.5rem; color: var(--muted, #52645d); }
.alpha-gate-card form { display: grid; gap: 1rem; }
.alpha-gate-card .button { width: 100%; justify-content: center; }

/* Library dates, scalable course selections and instructor insights. */
#kursinhalte .course-section-heading, #teilnehmer .course-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 2rem; }
#kursinhalte .course-section-heading > div:first-child, #teilnehmer .course-section-heading > div:first-child { flex: 1 1 28rem; min-width: 0; }
#kursinhalte .course-section-heading > .actions, #teilnehmer .course-section-heading > .actions { margin-left: auto; justify-content: flex-end; flex: 0 1 35rem; flex-wrap: wrap; flex-direction: row; }
.library-table-controls { grid-template-columns: minmax(14rem, 2fr) repeat(3, minmax(8rem, 1fr)) auto; }
.library-date-filter { grid-column: 1 / -1; grid-row: 2; font-size: .88rem; min-width: 0; }
.library-date-filter > summary { cursor: pointer; color: var(--green); padding: .55rem 0; font-weight: 550; }
.library-date-filter-body { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; padding: .5rem 0; }
.library-date-filter-body > .field { width: 10rem; }
.library-date-filter-body > .validity-picker { width: min(100%, 23rem); }
.library-date-filter .validity-trigger { min-height: 2.8rem; }
.course-library-toolbar { flex-wrap: wrap; }
.course-library-toolbar > .library-date-filter { flex: 1 0 100%; order: 10; }
.library-table time { white-space: nowrap; font-variant-numeric: tabular-nums; font-size: .87rem; }
.course-notify-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.course-notify-bar p { margin: 0; color: var(--muted); }
#teilnehmer .course-member-pool { margin-top: 2rem; }
.course-grant-dialog, .course-notify-dialog { width: min(760px, calc(100vw - 2rem)); }
.course-grant-dialog .course-dialog-body, .course-notify-dialog .course-dialog-body { position: relative; min-height: 0; }
.course-grant-dialog .course-dialog-header, .course-notify-dialog .course-dialog-header, .course-grant-dialog .course-dialog-actions, .course-notify-dialog .course-dialog-actions { flex-shrink: 0; }
.course-grant-dialog .course-timing-options > label, .course-notify-dialog .course-timing-options > label { position: relative; }
.course-grant-dialog .course-timing-options label:focus-within > span, .course-notify-dialog .course-timing-options label:focus-within > span { outline: 2px solid var(--green); outline-offset: 3px; }
.course-grant-dialog .course-dialog-field > span, .course-grant-dialog .course-dialog-field > legend, .course-notify-dialog .course-dialog-field > legend { font-size: 1rem; font-weight: 500; }
.course-grant-dialog .course-dialog-field small, .course-notify-dialog .course-dialog-field small { font-size: .88rem; font-weight: 400; line-height: 1.5; }
.course-grant-dialog .course-timing-options strong { font-size: .95rem; font-weight: 500; }
.search-choice-tools { display: grid; grid-template-columns: 1.4fr 1fr; gap: .65rem; }
.search-choice-tools label { min-width: 0; }
.search-choice-list { max-height: 12rem; overflow: auto; border: 1px solid var(--line); border-radius: 10px; overscroll-behavior: contain; }
.search-choice-option { display: flex; gap: .75rem; align-items: center; margin: 0; padding: .75rem .85rem; cursor: pointer; font-size: .95rem; font-weight: 400; border-bottom: 1px solid var(--line); }
.search-choice-option:last-child { border-bottom: 0; }
.search-choice-option:has(input:checked) { background: var(--surface-soft); }
.search-choice-option:focus-within { outline: 2px solid var(--green); outline-offset: -2px; }
.search-choice-option input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; accent-color: var(--green); }
.search-choice-option > span { overflow-wrap: anywhere; font-weight: 400; }
.search-choice-option small { display: block; color: var(--muted); font-size: .85rem; font-weight: 400; }
.search-choice-summary { margin: 0; color: var(--green); font-size: .86rem; font-weight: 400; }
.notify-groups { display: flex; flex-wrap: wrap; gap: .65rem; max-height: 8rem; overflow: auto; margin-bottom: 1rem; }
.notify-groups label { padding: .5rem .7rem; border: 1px solid var(--line); border-radius: 8px; font-weight: 400; }
.notify-select-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .65rem; margin: .7rem 0; }
.course-notify-dialog .course-timing-options small { display: block; }
.course-insights .container { max-width: 1440px; }
.insights-heading { display: flex; justify-content: space-between; align-items: start; gap: 2rem; margin: 1.2rem 0 1.8rem; }
.insights-heading h1 { margin: .4rem 0 .75rem; font-size: clamp(2rem, 4vw, 3.5rem); max-width: 30ch; overflow-wrap: anywhere; }
.insights-heading p { color: var(--muted); max-width: 70ch; margin: 0; }
.insights-heading > .button { flex-shrink: 0; margin-top: .5rem; }
.insights-nav { display: flex; flex-wrap: wrap; gap: 1.5rem; padding-bottom: 1rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.insights-nav a { font-weight: 550; color: var(--green); text-decoration: none; }
.insights-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.insights-kpis article { display: flex; flex-direction: column; gap: .6rem; padding: 1.3rem; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.insights-kpis article > span { font-size: .9rem; color: var(--muted); }
.insights-kpis article > strong { font-size: 2.4rem; line-height: 1.15; font-weight: 650; font-variant-numeric: tabular-nums; }
.insights-kpis em { font-size: 1.1rem; color: var(--muted); font-style: normal; font-weight: 400; }
.insights-kpis small { font-size: .82rem; color: var(--muted); line-height: 1.5; }
.insights-kpis .needs-attention { border-color: #d7b679; background: #fffaf0; }
.insights-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0 2rem; }
.insights-actions button { display: flex; align-items: center; text-align: left; gap: .9rem; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); color: var(--ink); cursor: pointer; }
.insights-actions button > strong { font-size: 1.6rem; color: var(--green); }
.insights-actions button > span:last-child { margin-left: auto; color: var(--green); }
.insights-actions small { display: block; margin-top: .3rem; color: var(--muted); font-size: .8rem; }
.insights-section { margin-bottom: 1.5rem; scroll-margin-top: 6rem; min-width: 0; }
.insights-section.panel { padding: 1.5rem; border-radius: 14px; }
.insights-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 1.2rem; }
.insights-section-heading h2 { font-size: 1.65rem; margin: .3rem 0; }
.insights-section-heading p, .insights-section-heading > span { color: var(--muted); font-size: .88rem; margin: 0; }
.insights-filters { display: grid; grid-template-columns: minmax(12rem, 1.4fr) repeat(3, minmax(9rem, 1fr)) auto; gap: .75rem; align-items: end; margin-bottom: 1.3rem; }
.insights-filters label { display: grid; gap: .35rem; font-size: .85rem; font-weight: 400; min-width: 0; }
.course-insights .library-table { min-width: 760px; width: 100%; }
.course-insights .library-table th[scope=row] { background: var(--surface); font-size: .94rem; font-weight: 500; text-transform: none; letter-spacing: normal; }
.course-insights .library-table th[scope=row] small { display: block; color: var(--muted); font-size: .8rem; font-weight: 400; margin-top: .25rem; }
.course-insights .library-table td { vertical-align: top; font-size: .9rem; }
.course-insights .library-table td small { font-size: .8rem; line-height: 1.5; }
.insight-progress { display: flex; align-items: center; gap: .6rem; min-width: 9rem; }
.insight-progress progress, .insights-distribution progress { accent-color: var(--green); height: .55rem; width: 7rem; flex: 1; border: none; border-radius: 9px; overflow: hidden; }
.insight-progress progress::-webkit-progress-bar, .insights-distribution progress::-webkit-progress-bar { background: var(--surface-soft); }
.insight-progress progress::-webkit-progress-value, .insights-distribution progress::-webkit-progress-value { background: var(--green); border-radius: 9px; }
.insight-result { display: inline-block; font-size: .83rem; padding: .25rem .45rem; margin-bottom: .2rem; border-radius: 5px; background: #f0f2f1; color: var(--muted); }
.insight-result.is-passed { color: #11543e; background: #e6f3e9; }
.insight-result.is-failed { color: #873b32; background: #faeae7; }
.insight-result.is-pending { color: #795100; background: #fff2d7; }
.insight-exam-details summary, .insight-error-details summary { cursor: pointer; color: var(--green); font-size: .85rem; padding: .25rem 0; }
.insight-exam-details article { padding: .6rem 0; border-bottom: 1px solid var(--line); min-width: 13rem; }
.insight-exam-details article > strong { display: block; margin-bottom: .4rem; }
.insight-error-details ul { margin: .4rem 0; padding-left: 1rem; font-size: .85rem; white-space: normal; }
.course-insights .insights-gradebook { min-width: 100%; width: max-content; }
.insights-gradebook th, .insights-gradebook td { min-width: 12rem; max-width: 20rem; white-space: normal; }
.insights-gradebook th:first-child { position: sticky; left: 0; z-index: 1; background: var(--surface); box-shadow: 1px 0 var(--line); }
.insights-method { color: var(--muted); font-size: .82rem; line-height: 1.65; margin: 1rem 0 0; max-width: 115ch; }
.insights-distribution { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.insights-distribution article { display: grid; gap: .65rem; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1rem; }
.insights-distribution strong { font-size: 1.8rem; }
.insights-distribution span { font-size: .86rem; color: var(--muted); }
.insights-distribution progress { width: 100%; }
@media (max-width: 1100px) {
  .library-table-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-date-filter { grid-row: auto; }
  .insights-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .insights-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  #kursinhalte .course-section-heading, #teilnehmer .course-section-heading, .insights-heading, .insights-section-heading, .course-notify-bar { flex-direction: column; align-items: stretch; gap: 1rem; }
  #kursinhalte .course-section-heading > div:first-child, #teilnehmer .course-section-heading > div:first-child, #kursinhalte .course-section-heading > .actions, #teilnehmer .course-section-heading > .actions { flex-basis: auto; margin-left: 0; justify-content: flex-start; }
  .insights-actions { grid-template-columns: 1fr; }
  .insights-distribution { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .insights-section.panel { padding: 1rem; }
  .course-insights .container { padding-inline: 1rem; }
  .insights-nav { gap: .75rem 1.1rem; }
}
@media (max-width: 480px) {
  .library-table-controls, .insights-filters, .search-choice-tools { grid-template-columns: 1fr; }
  .insights-kpis { gap: .6rem; }
  .insights-kpis article { padding: .9rem; }
  .insights-kpis article > strong { font-size: 1.9rem; }
  .insights-kpis article > span { min-height: 2.7em; }
}
.insights-secondary-filters { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.insights-secondary-filters label:first-child { flex: 1 1 15rem; max-width: 28rem; }
.insights-secondary-filters [data-table-result-count] { margin-left: auto; color: var(--muted); font-size: .85rem; }
.course-grant-dialog .course-dialog-field > legend, .course-notify-dialog .course-dialog-field > legend, .search-choice-tools .input { font-weight: 400; }
.course-grant-dialog .search-choice-list { max-height: 10rem; }
.search-choice[aria-invalid=true] .search-choice-list { border-color: #c92b2b; }
.insights-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; scroll-margin-top: 6rem; }
.insights-chart-card { margin: 0 0 1.5rem; }
.insights-chart-select { display: grid; gap: .4rem; margin: 0 0 1.25rem; font-size: .85rem; font-weight: 400; }
.insights-chart-select .input { min-width: 0; width: 100%; text-overflow: ellipsis; }
.insights-bar-chart { --chart-label-width: 9rem; --chart-value-width: 2rem; margin-top: 1.5rem; }
.insights-chart-axis { display: flex; justify-content: space-between; margin: 0 calc(var(--chart-value-width) + .75rem) .6rem calc(var(--chart-label-width) + .75rem); font-size: .75rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.insights-chart-bars { display: grid; gap: .9rem; list-style: none; margin: 0; padding: 0; }
.insights-chart-bars li { display: grid; grid-template-columns: var(--chart-label-width) minmax(0, 1fr) var(--chart-value-width); gap: .75rem; align-items: center; min-height: 1.8rem; }
.insights-chart-label { font-size: .85rem; line-height: 1.4; }
.insights-chart-track { display: block; width: 100%; height: 1.45rem; border-left: 1px solid var(--line); background: repeating-linear-gradient(to right, transparent, transparent calc(25% - 1px), var(--line) calc(25% - 1px), var(--line) 25%); }
.insights-chart-track rect { fill: var(--green); }
.insights-chart-bars strong { font-size: .9rem; font-weight: 550; font-variant-numeric: tabular-nums; }
.insights-chart-status { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; padding-top: 1rem; margin: 1.25rem 0 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .85rem; }
.insights-chart-status strong { color: var(--ink); font-weight: 550; }
.library-data-section { scroll-margin-top: 12rem; }
@media (max-width: 1000px) {
  .insights-charts { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 480px) {
  .insights-gradebook th:first-child { min-width: 8rem; max-width: 8rem; }
  .insights-bar-chart { --chart-label-width: 7rem; --chart-value-width: 1.4rem; }
}
