/* Shared nonhero presentation. These rules do not grant access, set prices or
   change controller state. Keep this after the public and application bundles. */
body {
  --rf-control-line: var(--theme-muted, #405471);
  --rf-space: clamp(20px, 2.4vw, 32px);
}
@supports (color:color-mix(in srgb, #000 50%, #fff)) {
  body {--rf-control-line:color-mix(in srgb, var(--theme-muted, #405471) 76%, var(--theme-surface, #fff))}
}

/* One type and interaction scale for the working surfaces. */
:is(.public-catalog-page,.public-practice-page,.as96,.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.ch-check-page) {
  min-width: 0;
  color: var(--theme-text, #192332);
}
:is(.public-catalog-page,.public-practice-page,.as96,.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.ch-check-page) :is(button,a,select,input,textarea,summary):focus-visible,
.app-shell :is(.admin-section,.owner-login,.pf115-purchase,.pf115-auth,.pf115-order) :focus-visible {
  outline: 3px solid var(--theme-focus, #2455d6);
  outline-offset: 3px;
}
:is(.public-catalog-page,.public-practice-page,.as96,.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.ch-check-page) :is(button,select,input,textarea) {
  font-family: inherit;
}
.chronika-ui :is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.ch-check-page) :is(.ch-button,.ch-text-link) {
  min-height: 48px;
  line-height: 1.45;
}
.chronika-ui :is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.ch-check-page) :is(.ch-button,.ch-text-link)>svg,
.public-site :is(.public-catalog-page,.public-practice-page) .public-format-icon,
.cc104 :is(.cc104-extra-icon,.cc104-formats) svg,
.pf115-purchase :is(.pf115-formats,.pf115-access) svg {
  flex-shrink: 0;
  stroke-width: 2px;
}
.chronika-ui :is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice) :is(.ch-select,.answer-input),
.public-site .public-catalog-search input,
.app-shell :is(.admin-form,.admin-search-form,.owner-login-form,.studio-file-form,.studio-cover-form) :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
.pf115-purchase :is(.answer-input,.select) {
  border-color: var(--rf-control-line);
  color: var(--theme-text, #192332);
  background-color: var(--theme-surface, #fff);
  font-size:1.0625rem;
  min-height: 48px;
  line-height: 1.5;
}
.chronika-ui :is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice) select,
.public-site .public-catalog-search input {
  max-width: 100%;
  min-width: 0;
}

/* The catalogue is a find-and-choose tool, with persistent visible labels. */
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls {
  padding: var(--rf-space);
  gap: 18px;
  background: var(--theme-surface, #fff);
  border-radius: 20px;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-labelled-search {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 8px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-labelled-search:focus-within {
  outline: none;
}
.chronika-ui .ch-filter-label {
  display: block;
  margin: 0;
  color: var(--theme-text, #192332);
  font-size:1rem;
  line-height: 1.4;
  font-weight: 550;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls :is(.ch-sort-field,.ch-period-select-field) {
  grid-template-columns: minmax(0,1fr);
  gap: 8px;
  align-content: end;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-sort-field {display:grid}
.chronika-ui .ch-search-control {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding-inline: 14px;
  border: 1px solid var(--rf-control-line);
  border-radius: 12px;
  background: var(--theme-surface, #fff);
}
.chronika-ui .ch-search-control>svg {width:22px;height:22px;flex:none;color:var(--theme-muted);stroke-width:2px}
.chronika-ui .ch-search-control:focus-within {outline:3px solid var(--theme-focus);outline-offset:3px}
/* theme-v88's legacy dark form bridge marks .ch-search-field as a filled
   control. Here it is only the label/layout wrapper; the inner span owns the
   visible frame. The nested borderless input must share that single surface. */
html[data-theme=dark] .chronika-ui .ch-catalog .ch-commerce-controls .ch-labelled-search,
html[data-theme=dark] .chronika-ui .ch-catalog .ch-labelled-search .ch-search-control>input {
  background-color:transparent!important;
}
/* These are the actual fields introduced/refined above, not a global input
   reset. A local exception is required to beat the older !important bridge. */
html[data-theme=dark] .chronika-ui :is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice) :is(.ch-select,.answer-input),
html[data-theme=dark] .chronika-ui .ch-library .ch-library-search,
html[data-theme=dark] .public-site .public-catalog-search input,
html[data-theme=dark] .app-shell :is(.admin-form,.admin-search-form,.owner-login-form,.studio-file-form,.studio-cover-form) :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
html[data-theme=dark] .pf115-purchase :is(.answer-input,.select) {
  border-color:var(--rf-control-line)!important;
}
.chronika-ui .ch-account-v80.ch-library .ch-library-search {border-color:var(--rf-control-line)}
:is(.ch-catalog,.ch-library,.ch-pricing,.ch-practice,.public-catalog-search,.pf115-purchase,.admin-form,.admin-search-form,.owner-login-form,.studio-file-form,.studio-cover-form) :is(input,select,textarea)[aria-invalid=true] {
  --rf-control-line:var(--theme-error);
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-search-control input {
  min-height: 50px;
  padding-block: 12px;
  color: var(--theme-text);
  font-size:1.0625rem;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-select {
  border: 1px solid var(--rf-control-line);
  border-radius: 12px;
  padding-block: 12px;
  background-color: var(--theme-surface);
  color: var(--theme-text);
  min-height: 52px;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-catalog-results-heading {
  display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:20px 0;
}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-catalog-results-heading h2 {font-size:1.0625rem;line-height:1.5;color:var(--theme-muted);font-variant-numeric:tabular-nums}
.chronika-ui .ch-catalog .ch-reset-button {min-height:44px;white-space:normal;text-align:start}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-topic-card h3 {font-size:1.4375rem;line-height:1.28;text-wrap:pretty}
.chronika-ui .ch-commerce-v80.ch-catalog .ch-topic-card .ch-topic-copy {padding:22px}
.chronika-ui .ch-catalog .ch-topic-period {font-size:1rem;line-height:1.5}
.public-site .public-catalog-controls {margin-block:28px 32px}
.public-site .public-catalog-search {padding:24px;background:var(--theme-surface);border:1px solid var(--theme-line);border-radius:16px}
.public-site .public-catalog-search>label {display:block;font-size:1.0625rem;font-weight:600;line-height:1.45;margin-bottom:10px}
.public-site .public-catalog-search .public-search-row {display:flex;align-items:center;gap:12px;min-width:0}
.public-site .public-catalog-search input {flex:1;width:100%;border-radius:10px;padding:12px 14px}
.public-site .public-catalog-search #public-topic-results {font-size:1rem;line-height:1.5;margin:12px 0 0;color:var(--theme-muted)}
.public-site .public-catalog-controls .public-periods {margin-top:18px;gap:10px}
.public-site .public-catalog-controls .public-periods>a {min-height:44px;font-size:1rem;line-height:1.4;padding:11px 15px}
.public-site .public-catalog-page .section-heading {gap:12px;align-items:baseline}
.public-site .public-catalog-page .section-heading>span {font-size:1rem;color:var(--theme-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.public-site :is(.public-search-empty,.public-catalog-page .public-empty) {max-width:68ch;padding-block:28px}

/* A fact needs a paragraph measure as well as a face. Public desktop intros
   reserve 400px; narrow containers keep a bounded portrait above the bubble. */
@media(min-width:1000px) {
  .public-site :is(.lp-heading-layout,.lp-practice-intro) {grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start}
  .public-site :is(.lp-heading-layout,.lp-practice-intro)>.living-portraits[data-lp-compact=true] {max-width:400px;width:100%}
}
.living-portraits[data-lp-character=chernomyrdin] .lp-portrait {overflow:clip}
:is(.public-site,.chronika-ui) .living-portraits[data-lp-compact=true] :is(.lp-text,.lp-source) {overflow-wrap:break-word;word-break:normal}
:is(.public-site,.chronika-ui) .living-portraits[data-lp-compact=true] .lp-name {text-wrap:pretty;line-height:1.3}

/* Topic-first commerce: the artwork belongs to the chosen subject, while
   format, current price and action form one compact decision area. */
.chronika-ui .ch-pricing-topic-first .ch-commerce-heading {max-width:900px;margin-bottom:28px}
.chronika-ui .ch-pricing-topic-first .ch-commerce-heading>p {font-size:1.125rem;line-height:1.6;color:var(--theme-muted);max-width:58ch;margin-top:16px}
.chronika-ui .ch-topic-purchase {padding:var(--rf-space);border-radius:20px;background:var(--theme-surface);margin-bottom:40px;min-width:0}
.chronika-ui .ch-topic-purchase-heading {display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:20px 32px;align-items:end;margin-bottom:24px}
.chronika-ui .ch-topic-purchase h2 {font-size:clamp(1.625rem,2.6vw,2.125rem);line-height:1.2;letter-spacing:-.025em;margin:0}
.chronika-ui .ch-topic-purchase-heading .ch-field {margin:0;min-width:0}
.chronika-ui .ch-topic-purchase-heading .ch-select {width:100%;border-radius:12px;padding:12px 40px 12px 14px}
.chronika-ui .ch-topic-purchase-layout {display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:32px;align-items:start}
.chronika-ui .ch-topic-purchase-art {min-width:0}
.chronika-ui .ch-topic-purchase-art>.ch-historical-art {display:block;aspect-ratio:4/3;min-height:0;width:100%;height:auto;border-radius:12px;overflow:hidden}
.chronika-ui .ch-topic-purchase-art>.ch-historical-art>img {height:100%;width:100%;object-fit:cover;outline:1px solid #0000001a;outline-offset:-1px}
html[data-theme=dark] .chronika-ui .ch-topic-purchase-art>.ch-historical-art>img {outline-color:#ffffff1a}
.chronika-ui .ch-topic-purchase-art>span:last-child {display:block;margin-top:12px;color:var(--theme-muted);font-size:1rem;line-height:1.5}
.chronika-ui .ch-topic-purchase-content {min-width:0}
.chronika-ui .ch-topic-purchase-content>h3 {font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:650;line-height:1.25;letter-spacing:-.02em;margin:0 0 20px;text-wrap:pretty}
.chronika-ui .ch-topic-purchase .ch-price-tabs-list {display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;width:100%;height:auto;min-height:0;border:0;border-radius:0;padding:0;margin:0 0 20px;background:none;overflow:visible}
.chronika-ui .ch-topic-purchase .ch-price-tab {height:auto;min-height:46px;flex:0 1 auto;max-width:100%;border:1px solid var(--rf-control-line);padding:10px 13px;border-radius:10px;background:var(--theme-surface);color:var(--theme-text);font-size:1rem;line-height:1.4;white-space:normal;text-align:center}
.chronika-ui .ch-topic-purchase .ch-price-tab[data-state=active] {background:var(--theme-action);border-color:var(--theme-action);color:var(--theme-action-text);box-shadow:none;font-weight:650}
.chronika-ui .ch-topic-purchase .ch-price-panel {margin:0;padding:0;min-width:0}
.chronika-ui .ch-topic-purchase .ch-format-explanation {margin:0 0 20px;font-size:1.0625rem;line-height:1.6;color:var(--theme-muted);max-width:58ch}
.chronika-ui .ch-topic-purchase-action {display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:20px 24px;border-top:1px solid var(--theme-line);padding-top:20px}
.chronika-ui .ch-topic-purchase-action>.ch-price {margin:0;min-width:0}
.chronika-ui .ch-topic-purchase-action .ch-price-current {font-size:2.25rem;line-height:1.15;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.chronika-ui .ch-topic-purchase-action>.ch-button {height:auto;white-space:normal;min-width:min(100%,180px);min-height:52px;padding:13px 18px;font-size:1.0625rem;line-height:1.4;text-align:center;justify-content:center}
.chronika-ui .ch-topic-purchase .ch-product-status {font-size:1rem;line-height:1.55;color:var(--theme-muted);margin:16px 0 0}
.chronika-ui .ch-topic-format-unavailable>p {font-size:1.0625rem;line-height:1.6;margin-bottom:10px;max-width:54ch}
.chronika-ui .ch-topic-purchase>.ch-pricing-video-bridge {margin-top:20px;font-size:1rem}
.chronika-ui .ch-pricing-topic-first .ch-primary-bundles>.ch-section-heading h2 {font-size:clamp(1.625rem,2.8vw,2.25rem);line-height:1.2;text-wrap:pretty}
.chronika-ui .ch-pricing-topic-first .ch-primary-bundles>.ch-section-heading p {font-size:1.0625rem;line-height:1.6;color:var(--theme-muted);margin-top:12px}
.chronika-ui .ch-pricing-topic-first .ch-package-full .ch-package-exclusion {color:inherit;font-size:1rem;line-height:1.5;margin-top:14px}
.chronika-ui .ch-pricing-topic-first .ch-custom-pricing-visible {padding:28px 0 0;margin-top:32px;border:0;border-top:1px solid var(--theme-line);border-radius:0;background:none;display:grid;gap:32px}
.chronika-ui .ch-pricing-topic-first .ch-custom-pricing-visible .ch-period-pricing {margin:0;padding:0;border:0}
.chronika-ui .ch-pricing-topic-first .ch-custom-pricing-visible .ch-whole-library>.ch-product-card {max-width:680px}
.cc104 .cc112-topic .cc112-formats button[aria-pressed=true] {box-shadow:inset 0 -1px 0 var(--cc-accent)}
.cc104 .cc113-composition li>svg {width:21px;height:21px;stroke-width:2px}
.cc104 :is(.cc104-pack-art,.cc113-composition-art) svg :is(path,rect,line,polyline,circle,ellipse) {vector-effect:non-scaling-stroke;stroke-width:2px}
.cc104 .cc104-pack-benefit {line-height:1.45}
.cc104 .cc104-extra-copy>span {line-height:1.5}

/* Solving has one surface, with quiet setup rows and a legible answer area. */
.chronika-ui .ch-practice .ch-workspace {padding:var(--rf-space);border:1px solid var(--theme-line);border-radius:20px;background:var(--theme-surface)}
.chronika-ui .ch-practice .ch-practice-guide {padding:22px 0 0;border:0;border-top:1px solid var(--theme-line);border-radius:0;background:none;max-width:760px}
.chronika-ui .ch-practice .ch-practice-guide-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.chronika-ui .ch-practice .ch-practice-guide h2 {font-size:1.4375rem;line-height:1.3;margin:0}
.chronika-ui .ch-practice .ch-practice-check-methods {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.chronika-ui .ch-practice .ch-practice-check-methods>span {display:flex;align-items:flex-start;gap:12px;min-width:0;font-size:1rem;line-height:1.5}
.chronika-ui .ch-practice .ch-practice-check-methods>span>svg {width:24px;height:24px;flex:none;margin-top:2px;color:var(--theme-link);stroke-width:2px}
.chronika-ui .ch-practice .ch-practice-check-methods strong {display:block;margin-top:4px;font-size:1.0625rem;line-height:1.5;color:var(--theme-text)}
.chronika-ui .ch-practice .ch-practice-guide>p {font-size:1rem;line-height:1.55;color:var(--theme-muted);margin-top:16px;display:flex;gap:10px;align-items:flex-start}
.chronika-ui .ch-practice .ch-practice-guide>p>svg {width:20px;height:20px;flex:none;margin-top:2px}
.chronika-ui #practice-content .practice-filter-toolbar {padding-block:20px 0;border-top:1px solid var(--theme-line)}
.chronika-ui #practice-content .bank-filters {gap:8px}
.chronika-ui #practice-content .bank-filter {min-height:48px;padding:11px 14px;border-radius:10px;font-size:1rem;line-height:1.4;background:var(--theme-surface);color:var(--theme-text);border-color:var(--rf-control-line)}
.chronika-ui #practice-content .bank-filter.active {background:var(--theme-soft);border-color:var(--theme-link);color:var(--theme-link);font-weight:600}
.chronika-ui #practice-content .bank-filter.active>small {color:inherit}
.chronika-ui #practice-content .bank-navigation {margin-top:24px;margin-bottom:20px;align-items:end}
.chronika-ui #practice-content .bank-navigation .btn {min-width:48px;min-height:48px;border-radius:10px}
.chronika-ui #practice-content .task-label {font-size:1rem;line-height:1.5;color:var(--theme-muted);padding-bottom:16px}
.chronika-ui #practice-content :is(.task-prompt,.answer-option,.task-stimulus blockquote,.matching-options,.matching-row,.order-items) {font-size:1.125rem;line-height:1.65}
.chronika-ui #practice-content .task-prompt {max-width:72ch}
.chronika-ui #practice-content .answer-input {font-size:1.125rem;line-height:1.65;padding:14px;border-radius:12px}
.chronika-ui #practice-content textarea.answer-input {min-height:168px;resize:vertical}
.chronika-ui #practice-content .task-action {margin-top:20px}
.chronika-ui #practice-content :is(.task-media,.task-stimulus) {margin-block:20px}
.chronika-ui #practice-content :is(.task-media img,.task-stimulus img) {max-width:100%;height:auto}
.chronika-ui #practice-content :is(.practice-sources,.practice-check-details) {font-size:1rem;line-height:1.6;color:var(--theme-muted)}
.chronika-ui #practice-content :is(.practice-sources,.practice-check-details)>summary {min-height:44px;padding-block:10px;cursor:pointer}
.public-site .public-practice-kind h2 {display:flex;align-items:center;gap:12px;font-size:1.6875rem;line-height:1.25}
.public-site .public-practice-kind h2>.public-format-icon {width:27px;height:27px;flex:none}
.public-site .public-practice-flow {gap:16px;font-size:1rem;line-height:1.45}
.public-site .public-practice-flow .public-format-icon {width:26px;height:26px}
.public-site .public-practice-kind>p {font-size:1.125rem;line-height:1.6;max-width:52ch}
.public-site .public-practice-kind .public-practice-caption {font-size:1rem;line-height:1.55;color:var(--theme-muted)}

/* Library and diagnostics: response content reads before the next purchase. */
.chronika-ui .ch-library :is(.ch-section-heading,.ch-library-heading)>p {font-size:1.0625rem;line-height:1.6}
.chronika-ui .ch-library .ch-tabs-list {gap:4px 12px;flex-wrap:wrap;height:auto}
.chronika-ui .ch-library .ch-tabs-list [data-slot=tabs-trigger] {min-height:48px;font-size:1.0625rem;line-height:1.4;white-space:normal}
.chronika-ui .ch-empty-state[data-empty-kind] {grid-template-columns:44px minmax(0,1fr);padding:var(--rf-space);gap:18px;background:var(--theme-surface);border-color:var(--theme-line);border-radius:16px}
.chronika-ui .ch-empty-mark {width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--theme-link);background:var(--theme-soft)}
.chronika-ui .ch-empty-mark>svg {width:26px;height:26px;stroke-width:2px}
.chronika-ui .ch-empty-content h2 {font-size:1.5625rem;line-height:1.25}
.chronika-ui .ch-empty-content p {font-size:1.0625rem;line-height:1.6;margin-block:12px 20px}
.chronika-ui .ch-check-review .ch-check-answer-review>summary {font-size:1.1875rem;line-height:1.5;padding-block:20px;gap:12px}
.chronika-ui .ch-check-answer-content {padding-top:8px}
.chronika-ui .ch-check-answer-comparison {display:grid;gap:12px}
.chronika-ui .ch-check-answer-comparison p {margin:0;padding:16px 18px;border-radius:12px;font-size:1.0625rem;line-height:1.65}
.chronika-ui .ch-check-answer-yours {background:var(--theme-surface);border:1px solid var(--theme-line);color:var(--theme-text)}
.chronika-ui .ch-check-answer-correct {background:var(--theme-success-bg);border:1px solid var(--theme-success);color:var(--theme-text)}
.chronika-ui .ch-check-answer-explanation {margin-top:20px;max-width:72ch}
.chronika-ui .ch-check-answer-explanation h3 {font-size:1.25rem;line-height:1.4;margin-bottom:8px}
.chronika-ui .ch-check-answer-explanation p {font-size:1.125rem;line-height:1.7}
.chronika-ui .ch-written-ai-criteria :is(p,blockquote) {font-size:1.125rem;line-height:1.65}
.chronika-ui .ch-written-ai-criteria>li>div {flex-wrap:wrap;gap:8px 16px}

/* Auth, checkout and owner operations use the same readable field language. */
.pf115-purchase .modal-cover h2 {font-size:1.625rem;line-height:1.27;text-wrap:pretty}
.pf115-purchase .modal-cover .pf115-topic-title {font-size:1.125rem;line-height:1.5}
.pf115-purchase .pf115-price-row {align-items:flex-end}
.pf115-purchase .pf115-price-row .pf115-payment-note {font-size:1rem;line-height:1.5}
.pf115-purchase .checkout-price .price-saving {border-radius:10px;gap:4px 8px}
.pf115-auth .auth-provider {border-radius:12px;min-height:52px}
.pf115-auth .auth-provider-copy {min-width:0}
.pf115-order .pf115-order-actions {gap:12px}
.app-shell :is(.admin-nav,.lesson-admin-tabs) {gap:8px;scroll-padding-inline:8px;padding-block:8px 16px}
.app-shell .admin-nav a {min-height:48px;font-size:1rem;line-height:1.4;white-space:nowrap;padding:12px 16px;border-radius:12px}
.app-shell :is(.admin-section,.studio-grid,.studio-welcome) :is(p,.input-hint,.status-tag,dt,dd,.status-list>div) {font-size:1rem;line-height:1.6}
.app-shell :is(.admin-form,.admin-search-form,.owner-login-form,.studio-file-form,.studio-cover-form) {gap:18px}
.app-shell :is(.admin-form,.admin-search-form,.owner-login-form,.studio-file-form,.studio-cover-form) :is(.answer-label,label,legend) {font-size:1rem;line-height:1.5}
.app-shell .admin-form textarea {resize:vertical;min-height:128px}
.app-shell :is(.admin-fieldset,.admin-format-checkboxes) {border-color:var(--theme-line);border-radius:12px;padding:18px}
.app-shell :is(.admin-row,.owner-order,.owner-bank-question) {min-width:0;overflow-wrap:anywhere}
.app-shell .owner-bank-question>summary {min-height:52px;font-size:1.0625rem;line-height:1.5;gap:12px;padding-block:14px}
.app-shell .owner-bank-question>summary>small {font-size:0.875rem;line-height:1.5;overflow-wrap:anywhere}
.app-shell :is(.admin-metrics,.admin-student-counts) strong {font-variant-numeric:tabular-nums;line-height:1.2}
.app-shell :is(.admin-activity-table,.admin-student-dates) {font-variant-numeric:tabular-nums}
.app-shell :is(.admin-activity-table-wrap,.admin-topic-checklist) {scroll-padding:12px;scrollbar-width:thin}
.app-shell :is(.form-error,.form-message[role=alert],.pf115-status) {font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.public-site .as96 :is(.as96-intro-copy,.as96-section-intro,.as96-contact) p {font-size:1.125rem;line-height:1.65}
.public-site .as96 .as96-flow-art :is(.as96-flow-line,.as96-flow-check,.as96-flow-connector,.as96-flow-chain,.as96-flow-node,.as96-flow-node-mark,.as96-flow-main-mark,.as96-flow-map-outline,.as96-flow-fold,.as96-flow-route,.as96-flow-map-emphasis) {stroke-width:2px}
.public-site .legal-page {max-width:76ch;margin-inline:auto;font-size:1.125rem;line-height:1.75}
.public-site .legal-page :is(a,summary):focus-visible {outline:3px solid var(--theme-focus);outline-offset:3px}
.public-site .legal-page .legal-version {font-size:.9375rem;line-height:1.6}

/* Guidance and video learning inherit the same reading and graphic floor.
   The native player, entitlement checks and all material links stay intact. */
.public-site .public-ege-guide :is(.eg-byline,.eg-source-note,.eg-sources p,.eg-counts>p) {font-size:1rem;line-height:1.6}
.public-site .public-ege-guide :is(.eg-metric>span,.eg-metric em,.eg-task-changes small) {font-size:.9375rem;line-height:1.5}
.public-site .public-ege-guide :is(.eg-task-changes p,.eg-skills p,.eg-textbook>p) {font-size:1.0625rem;line-height:1.65}
.public-site .public-ege-guide .eg-skills :is(.eg-outline,.eg-muted,.eg-ink,.eg-connect) {vector-effect:non-scaling-stroke;stroke-width:2px}
.cv101-page :is(.cv101-lesson-copy,.cv101-player-info,.cv101-feedback,.cv101-playback-error) {min-width:0;font-size:1.0625rem;line-height:1.6}
.cv101-page .cv101-lesson-copy h3 {font-size:1.375rem;line-height:1.35;min-height:0;text-wrap:pretty}
.cv101-page :is(.cv101-actions,.cv101-material-links) {gap:12px;flex-wrap:wrap}
.cv101-page :is(.cv101-material-links,.cv101-chapters) a {min-height:44px;font-size:1rem;line-height:1.5;white-space:normal}
.cv101-page .cv101-lesson-nav a {min-height:48px;line-height:1.5;white-space:normal}
.cv101-page :is(.cv101-error,.cv101-playback-error)>p {font-size:1.0625rem;line-height:1.6;max-width:58ch}
.cv101-page .cv101-poster img,.cv101-page .cv101-poster:hover img {transform:none;transition:none}
.cv101-page svg {stroke-width:2px}
@media(hover:hover) and (pointer:fine) {
  .cv101-page .cv101-poster:hover .cv101-play {background:var(--theme-action-hover)}
}

@media(max-width:700px) {
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls {padding:18px;gap:16px 12px}
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-period-select-field {display:grid}
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls .ch-select {font-size:1rem;padding-left:10px;padding-right:30px}
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-topic-card .ch-topic-copy {padding:20px}
  .chronika-ui .ch-topic-purchase-heading {grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:20px}
  .chronika-ui .ch-topic-purchase-layout {grid-template-columns:minmax(0,1fr);gap:22px}
  .chronika-ui .ch-topic-purchase-art>.ch-historical-art {aspect-ratio:2/1;max-height:220px}
  .chronika-ui .ch-topic-purchase-art>span:last-child {margin-top:8px}
  .chronika-ui .ch-topic-purchase-content>h3 {font-size:1.5625rem;line-height:1.3}
  .chronika-ui .ch-topic-purchase .ch-price-tabs-list {gap:8px}
  .chronika-ui .ch-topic-purchase .ch-price-tab {flex:1 1 calc(50% - 8px);padding:11px 8px}
  .chronika-ui .ch-topic-purchase-action {align-items:flex-start;gap:18px}
  .chronika-ui .ch-topic-purchase-action>.ch-button {width:100%}
  .chronika-ui .ch-practice .ch-practice-check-methods {gap:16px}
  .chronika-ui #practice-content .practice-filter-toolbar {padding-top:16px}
  .chronika-ui #practice-content .bank-navigation {margin-top:18px}
  .chronika-ui .ch-empty-state[data-empty-kind] {grid-template-columns:minmax(0,1fr);gap:16px}
  .chronika-ui .ch-empty-content h2 {font-size:1.4375rem}
  .chronika-ui .ch-check-answer-comparison p {padding:14px}
  .public-site .public-catalog-search {padding:20px}
  .public-site .public-catalog-search .public-search-row {flex-wrap:wrap}
  .public-site .public-catalog-search input {flex-basis:100%}
  .public-site .public-catalog-search .btn {min-height:44px;padding-block:10px}
  .public-site .public-practice-kind h2 {font-size:1.5625rem}
  .public-site .public-practice-flow {gap:12px}
  .app-shell .admin-row {gap:12px}
  .app-shell .admin-nav a {padding-inline:12px}
  .app-shell .admin-fieldset {padding:16px}
}
@container chronika-app (max-width:700px) {
  .chronika-ui .ch-topic-purchase-heading,.chronika-ui .ch-topic-purchase-layout {grid-template-columns:minmax(0,1fr);gap:20px}
  .chronika-ui .ch-topic-purchase-art>.ch-historical-art {aspect-ratio:2/1;max-height:220px}
  .chronika-ui .ch-topic-purchase .ch-price-tab {flex:1 1 calc(50% - 8px)}
  .chronika-ui .ch-topic-purchase-action>.ch-button {width:100%}
}
@media(max-width:360px) {
  .chronika-ui .ch-practice .ch-practice-check-methods {grid-template-columns:minmax(0,1fr)}
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls {grid-template-columns:minmax(0,1fr)}
  .chronika-ui .ch-commerce-v80.ch-catalog .ch-commerce-controls :is(.ch-sort-field,.ch-period-select-field) {grid-column:1}
  .chronika-ui .ch-topic-purchase {padding:18px}
  .chronika-ui .ch-topic-purchase .ch-price-current {font-size:2rem}
  .chronika-ui .ch-topic-purchase-content>h3 {font-size:1.4375rem}
}
@media(prefers-reduced-motion:reduce) {
  .chronika-ui :is(.ch-catalog,.ch-pricing,.ch-library,.ch-practice) :is(button,.ch-button) {transition:none}
}
@media(forced-colors:active) {
  .chronika-ui .ch-topic-purchase .ch-price-tab[data-state=active] {outline:2px solid Highlight;outline-offset:-4px}
  .chronika-ui .ch-catalog .ch-period-button[aria-pressed=true] {outline:2px solid Highlight;outline-offset:-4px}
}

/* V138: programmes stay primary; companion portraits fit their column. */
.chronika-ui .ch-journey-v85 .ch-journey-content.has-companion{grid-template-columns:minmax(0,1fr) 248px}
.chronika-ui .ch-journey-v85 .ch-journey-companion{max-width:248px}
.chronika-ui .cl-program-topic-preview{list-style:none;padding:0;margin:16px 0}
.chronika-ui .cl-program-topic-preview a{display:flex;align-items:center;gap:12px;padding:12px 0;min-height:48px;border-bottom:1px solid var(--theme-line);font-size:18px;line-height:1.4;text-decoration:none;color:var(--theme-text);font-weight:600}
.chronika-ui .cl-program-topic-preview a>span{color:var(--theme-link);font-variant-numeric:tabular-nums;flex:none}
.chronika-ui .cl-program-topic-preview a>svg{margin-left:auto;flex:none}
@media(max-width:900px){.chronika-ui .ch-journey-v85 .ch-journey-content.has-companion{grid-template-columns:minmax(0,1fr)}.chronika-ui .ch-journey-v85 .ch-journey-companion{width:100%;max-width:360px;justify-self:center}}
