:root {
  /* Structural metrics and public aliases live here; visual palette tokens live in the admin theme. */
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  --cms-font-size-3xs: .62rem;
  --cms-font-size-2xs: .68rem;
  --cms-font-size-xs: .72rem;
  --cms-font-size-sm: .78rem;
  --cms-font-size-md: 1rem;
  --cms-font-size-lg: 1.15rem;
  --cms-font-size-xl: 1.35rem;
  --cms-font-size-2xl: 2rem;
  --cms-font-size-3xl: clamp(2.05rem, 3.2vw, 3.05rem);
  --cms-font-size-display: clamp(2.4rem, 7vw, 3.25rem);
  --cms-font-size-watermark: 19rem;
  --cms-sidebar-width: 15.5rem;
  --cms-sidebar-collapsed-width: 3px;
  --cms-sidebar-offset: var(--cms-sidebar-width);
  /* App top bar (.app-toolbar). Distinct from the toolbar kit below. */
  --cms-topbar-height: 3.25rem;
  --cms-topbar-height-mobile: 3.6rem;
  --cms-topbar-border-width: 1px;
  --cms-topbar-control-height: 2.0625rem;
  --cms-topbar-control-radius: var(--cms-radius-sm);
  --cms-topbar-actions-gap: .5rem;
  --cms-topbar-search-width: 28rem;
  --cms-brand-height: var(--cms-topbar-height);
  --cms-content-width: 82rem;
  --cms-control-height: 2.9rem;
  --cms-touch-target: 2.2rem;
  --cms-radius-sm: .25rem;
  --cms-radius-md: .45rem;
  --cms-space-1: .35rem;
  --cms-space-2: .65rem;
  --cms-space-3: 1rem;
  --cms-space-4: 1.5rem;
  --cms-space-5: 2.25rem;
  --cms-space-6: 3.25rem;
  /* Motion: quick feedback, controls, panels, then large drawers. */
  --cms-motion-duration-instant: 0ms;
  --cms-motion-duration-fast: 120ms;
  --cms-motion-duration-control: 180ms;
  --cms-motion-duration-panel: 240ms;
  --cms-motion-duration-drawer: 280ms;
  --cms-motion-duration-exit: 160ms;
  --cms-motion-ease-standard: cubic-bezier(.2, 0, 0, 1);
  --cms-motion-ease-enter: cubic-bezier(.16, 1, .3, 1);
  --cms-motion-ease-exit: cubic-bezier(.4, 0, 1, 1);
  --cms-motion-shift-xs: .2rem;
  --cms-motion-shift-sm: .4rem;
  --cms-motion-fast: var(--cms-motion-duration-fast) var(--cms-motion-ease-standard);
  --cms-motion-control: var(--cms-motion-duration-control) var(--cms-motion-ease-standard);
  --cms-motion-panel: var(--cms-motion-duration-panel) var(--cms-motion-ease-enter);
  --cms-motion-drawer: var(--cms-motion-duration-drawer) var(--cms-motion-ease-enter);
  --cms-motion-exit: var(--cms-motion-duration-exit) var(--cms-motion-ease-exit);
  --cms-bg-field: var(--cms-color-field);
  /* Toolbar kit (.cms-toolbar): files library, collection lists, form utilities. */
  --cms-toolbar-bg: color-mix(in srgb, var(--cms-color-surface-alt) 88%, transparent);
  --cms-toolbar-border: var(--cms-color-border);
  --cms-toolbar-radius: var(--cms-radius-md);
  --cms-toolbar-padding: .55rem;
  --cms-toolbar-control-radius: var(--cms-toolbar-radius);
  --cms-toolbar-control-height: var(--cms-control-height);
  --cms-toolbar-divider: color-mix(in srgb, var(--cms-color-border-strong) 65%, transparent);
  --cms-bg-overlay: rgba(0, 0, 0, .72);
  --cms-border-accent: color-mix(in srgb, var(--cms-color-accent) 70%, transparent);
  --cms-border-accent-soft: color-mix(in srgb, var(--cms-color-accent) 45%, transparent);
  --cms-border-success: color-mix(in srgb, var(--cms-color-success) 55%, transparent);
  --cms-border-danger: rgba(221, 97, 87, .55);
  --cms-border-danger-strong: rgba(221, 97, 87, .65);
  --cms-border-info: rgba(112, 134, 150, .58);
  --cms-color-info: #8fa2af;
  --cms-color-inverse: #fff;
  --cms-color-on-accent-strong: #080604;
  --cms-focus-ring-muted: 0 0 0 3px color-mix(in srgb, var(--cms-color-muted) 16%, transparent);
  --cms-content-padding-top: var(--cms-space-5);
  --cms-content-padding-x: var(--cms-space-5);
  --cms-content-padding-bottom: 6rem;
  --cms-page-header-margin-bottom: var(--cms-space-5);
  --cms-sidebar-nav-padding-top: clamp(1.3rem, calc(1rem + 1vh), 2rem);
  --cms-sidebar-nav-padding: var(--cms-sidebar-nav-padding-top) .8rem var(--space-3);
  --cms-dashboard-gap: var(--cms-space-4);
  --cms-dashboard-aside-min: min(20rem, 100%);
  --cms-dashboard-aside-width: clamp(20rem, 25vw, 25rem);
  --cms-card-header-min-height: 4.6rem;
  --cms-dashboard-row-min-height: 4.2rem;
  --cms-dashboard-row-padding: .82rem var(--cms-space-4);
  --cms-dashboard-side-row-min-height: 3.85rem;
  --cms-dashboard-side-row-padding: .72rem .85rem;
  --cms-next-row-min-height: 5rem;
  --cms-next-row-columns: 5rem minmax(0, 1fr) auto;
  --cms-next-row-padding: .9rem var(--cms-space-4);
  --cms-form-max-width: 68rem;
  --cms-card-bg: var(--cms-surface-gradient);
  --cms-card-border: var(--cms-color-border);
  --cms-card-border-subtle: color-mix(in srgb, var(--cms-card-border) 72%, transparent);
  --cms-card-radius: var(--cms-radius-md);
  --cms-card-stack-gap: var(--cms-space-3);
  --cms-card-inner-gap: var(--cms-space-3);
  --cms-card-fluid-x: calc(.45cqi + .22vw);
  --cms-card-fluid-y: calc(.35cqi + .16vh);
  --cms-card-padding-inline: clamp(var(--cms-space-3), calc(1rem + var(--cms-card-fluid-x)), var(--cms-space-4));
  --cms-card-padding-block: clamp(.9rem, calc(.8rem + var(--cms-card-fluid-y)), var(--cms-space-4));
  --cms-card-header-padding: clamp(.82rem, calc(.7rem + var(--cms-card-fluid-y)), var(--cms-space-3)) var(--cms-card-padding-inline);
  --cms-card-body-padding: var(--cms-card-padding-block) var(--cms-card-padding-inline);
  --cms-card-footer-padding: clamp(.78rem, calc(.68rem + .3cqi + .1vh), var(--cms-space-3)) var(--cms-card-padding-inline);
  --cms-card-footer-bg: var(--cms-bg-action-footer);
  --cms-card-muted-bg: color-mix(in srgb, var(--cms-bg-panel) 68%, var(--cms-bg-field) 32%);
  --cms-form-stack-gap: var(--cms-card-stack-gap);
  --cms-form-section-title-color: var(--cms-section-title-color);
  --cms-form-section-title-padding: var(--cms-card-header-padding);
  --cms-form-section-title-letter-spacing: .16em;
  --cms-form-grid-columns: repeat(2, minmax(0, 1fr));
  --cms-form-grid-gap: var(--cms-space-4);
  --cms-form-grid-padding: var(--cms-card-body-padding);
  --cms-form-grid-padding-mobile: .85rem var(--cms-space-3) var(--cms-space-3);
  --cms-form-row-gap: var(--cms-space-3);
  --cms-form-card-padding: var(--cms-space-3);
  --cms-form-panel-padding: var(--cms-space-3);
  --cms-form-panel-gap: var(--cms-space-3);
  --cms-form-action-bg: var(--cms-bg-action-footer);
  --cms-form-action-border: var(--cms-color-border);
  --cms-form-action-gap: .65rem;
  --cms-form-action-bar-height: 4.25rem;
  --cms-form-action-inline-padding: var(--cms-content-padding-x);
  --cms-form-history-margin-top: .75rem;
  --cms-form-history-padding: .62rem 0 0;
  --cms-layout-gap: clamp(var(--cms-space-3), calc(.85rem + .62vw), var(--cms-space-5));
  --cms-layout-aside-width: clamp(18rem, 24vw, 24rem);
  --cms-layout-aside-min: 18rem;
  --cms-form-inspector-width: clamp(15.5rem, 18vw, 18rem);
  --cms-split-aside-gap: var(--cms-space-3);
  --cms-login-panel-padding: var(--cms-space-5);
  --cms-login-input-min-height: 3.45rem;
  --cms-field-control-height: var(--cms-control-height);
  --cms-field-padding: .68rem .78rem;
  --cms-field-padding-compact: .52rem .62rem;
  --cms-field-label-gap: .4rem;
  --cms-field-label-margin: .4rem;
  --cms-field-label-row-height: 1.44rem;
  --cms-field-label-font-size: var(--cms-font-size-md);
  --cms-field-label-font-weight: 500;
  --cms-field-help-color: var(--cms-color-faint);
  --cms-field-help-margin: .55rem 0 0;
  --cms-field-counter-margin: .35rem;
  --cms-field-error-margin: .45rem;
  --cms-field-bg: var(--cms-bg-field);
  --cms-field-focus-bg: var(--cms-bg-field-focus);
  --cms-field-hover-bg: var(--cms-bg-field-hover);
  --cms-field-border-color: var(--cms-color-border-strong);
  --cms-field-hover-border-color: var(--cms-border-control-hover);
  --cms-field-border: var(--cms-field-border-color);
  --cms-field-hover-border: var(--cms-field-hover-border-color);
  --cms-field-focus-border: var(--cms-color-accent);
  --cms-field-invalid-border: var(--cms-border-danger-strong);
  --cms-field-textarea-min-height: 7rem;
  --cms-field-select-padding-right: 2.5rem;
  --cms-field-datetime-time-width: 7.25rem;
  --cms-field-inline-action-padding: .72rem;
  --cms-button-height: var(--cms-field-control-height);
  --cms-button-height-sm: 2.35rem;
  --cms-button-height-xs: 2.15rem;
  --cms-button-height-mobile: 2.35rem;
  --cms-button-height-quiet: 2.35rem;
  --cms-button-height-dashed: 2.6rem;
  --cms-button-padding: 0 1rem;
  --cms-button-padding-sm: .42rem .7rem;
  --cms-button-padding-xs: .32rem .6rem;
  --cms-button-padding-mobile: 0 .62rem;
  --cms-button-padding-quiet: 0 .7rem;
  --cms-button-gap: .55rem;
  --cms-button-gap-mobile: .38rem;
  --cms-button-border: var(--cms-color-border-strong);
  --cms-button-bg: transparent;
  --cms-button-hover-bg: var(--cms-bg-hover);
  --cms-button-hover-border: var(--cms-color-muted);
  --cms-button-outline-color: var(--cms-color-accent);
  --cms-button-outline-border: var(--cms-color-accent);
  --cms-button-outline-bg: transparent;
  --cms-button-outline-hover-color: var(--cms-color-accent-hover);
  --cms-button-outline-hover-border: var(--cms-color-accent-hover);
  --cms-button-outline-hover-bg: var(--cms-color-accent-soft);
  --cms-button-font-size: var(--cms-font-size-md);
  --cms-button-font-weight: 600;
  --cms-button-icon-size: 1rem;
  --cms-icon-button-size: 2.6rem;
  --cms-icon-button-size-mobile: 2.35rem;
  --cms-toggle-gap: .45rem;
  --cms-toggle-width: 2.6rem;
  --cms-toggle-height: 1.1rem;
  --cms-toggle-radius: 1rem;
  --cms-toggle-knob-offset: 2px;
  --cms-toggle-knob-size: calc(var(--cms-toggle-height) - var(--cms-toggle-knob-offset) - var(--cms-toggle-knob-offset));
  --cms-toggle-knob-shift: calc(var(--cms-toggle-width) - var(--cms-toggle-knob-size) - var(--cms-toggle-knob-offset) - var(--cms-toggle-knob-offset));
  --cms-toggle-bg: var(--cms-color-field);
  --cms-toggle-border: var(--cms-color-border-strong);
  --cms-toggle-hover-bg: var(--cms-bg-field-hover);
  --cms-toggle-label-size: var(--cms-font-size-sm);
  --cms-lang-tab-font-family: "Arial Narrow", "Aptos Narrow", "Roboto Condensed", "Avenir Next Condensed", var(--font-condensed);
  --cms-lang-tab-font-stretch: condensed;
  --cms-lang-tab-gap: .14rem;
  --cms-lang-tab-padding: .12rem .5rem;
  --cms-lang-tab-border: var(--cms-color-border);
  --cms-lang-tab-bg: var(--cms-color-field);
  --cms-lang-tab-color: var(--cms-color-muted);
  --cms-lang-tab-hover-bg: var(--cms-bg-field-hover);
  --cms-lang-tab-active-bg: var(--cms-color-accent-soft);
  --cms-lang-tab-dot-size: .36rem;
  --cms-lang-tab-dot-offset-y: -.055rem;
  --cms-lang-tab-shared-size: 1.35rem;
  --cms-lang-tab-touch-min-height: 1.72rem;
  --cms-lang-tab-inline-padding: .08rem .18rem;
  --cms-lang-tab-inline-gap: .12rem;
  --cms-lang-tab-inline-shared-size: 1.28rem;
  --cms-image-field-thumb-size: 5.9rem;
  --cms-image-field-compact-thumb-size: 3.4rem;
  --cms-image-field-file-thumb-size: 3.25rem;
  --cms-image-field-gap: .85rem;
  --cms-image-field-padding: .82rem;
  --cms-image-field-compact-gap: .62rem;
  --cms-image-field-compact-padding: .55rem;
  --cms-image-field-actions-gap: .45rem;
  --cms-image-action-height: 2.15rem;
  --cms-image-action-padding: .32rem .6rem;
  --cms-object-list-gap: .7rem;
  --cms-object-list-margin-bottom: .8rem;
  --cms-object-list-row-gap: .65rem;
  --cms-object-list-grip-width: var(--cms-touch-target);
  --cms-object-list-delete-width: 2.35rem;
  --cms-object-list-tool-padding: .75rem;
  --cms-object-list-tool-gap: .55rem;
  --cms-embed-header-padding: clamp(16px, 3vh, 22px) 26px 8px;
  --cms-embed-header-padding-mobile: clamp(10px, 2.2vh, 16px) 14px clamp(4px, 1vh, 8px);
  --cms-embed-header-actions-gap: .36rem;
  --cms-embed-header-actions-gap-mobile: .18rem;
  --cms-embed-meta-min-height: 2.2rem;
  --cms-embed-meta-min-height-mobile: 1.55rem;
  --cms-embed-meta-margin-top: .7rem;
  --cms-embed-meta-margin-top-mobile: clamp(.42rem, 1.4vh, .7rem);
  --cms-embed-form-scroll-padding: clamp(12px, 2.4vh, 18px) 26px clamp(72px, 11vh, 92px);
  --cms-embed-form-scroll-padding-mobile: clamp(9px, 1.8vh, 14px) 14px clamp(62px, 9.5vh, 82px);
  --cms-embed-form-section-title-padding: var(--cms-form-section-title-padding);
  --cms-embed-form-section-title-padding-mobile: clamp(.58rem, 1.7vh, .85rem) .78rem .28rem;
  --cms-embed-form-grid-gap: var(--cms-form-grid-gap);
  --cms-embed-form-grid-gap-mobile: clamp(.62rem, 1.8vh, .95rem);
  --cms-embed-form-grid-padding: var(--cms-form-grid-padding);
  --cms-embed-form-grid-padding-mobile: .48rem .78rem clamp(.65rem, 1.8vh, .95rem);
  --cms-embed-field-padding: var(--cms-field-padding);
  --cms-embed-field-padding-mobile: var(--cms-field-padding-compact);
  --cms-embed-textarea-min-height: clamp(8.75rem, 21vh, 13rem);
  --cms-embed-textarea-min-height-mobile: clamp(7.25rem, 19vh, 10.5rem);
  --cms-embed-markdown-min-height: clamp(10rem, 24vh, 14rem);
  --cms-embed-markdown-min-height-mobile: clamp(8.5rem, 21vh, 12rem);
  --cms-embed-action-gap: 8px;
  --cms-embed-action-gap-mobile: 7px;
  --cms-embed-action-padding: 9px 26px;
  --cms-embed-action-padding-mobile: clamp(6px, 1.4vh, 9px) 12px;
  --cms-embed-action-button-height: 2.3rem;
  --cms-embed-action-button-height-mobile: 2.12rem;
  --cms-embed-action-button-padding: .42rem .74rem;
  --cms-embed-action-button-padding-mobile: 0 .62rem;
  --cms-embed-action-button-gap: .42rem;
  --cms-embed-action-icon-size: .95rem;
  --cms-embed-icon-button-size-mobile: 2.15rem;
  --color-canvas: var(--cms-color-canvas);
  --color-sidebar: var(--cms-color-sidebar);
  --color-surface: var(--cms-color-surface);
  --color-surface-alt: var(--cms-color-surface-alt);
  --color-surface-raised: var(--cms-color-surface-raised);
  --color-field: var(--cms-color-field);
  --color-text: var(--cms-color-text);
  --color-muted: var(--cms-color-muted);
  --color-faint: var(--cms-color-faint);
  --color-border: var(--cms-color-border);
  --color-border-strong: var(--cms-color-border-strong);
  --color-accent: var(--cms-color-accent);
  --color-accent-hover: var(--cms-color-accent-hover);
  --color-accent-soft: var(--cms-color-accent-soft);
  --color-success: var(--cms-color-success);
  --color-danger: var(--cms-color-danger);
  --color-danger-soft: var(--cms-color-danger-soft);
  --shadow-panel: var(--cms-shadow-panel);
  --sidebar-width: var(--cms-sidebar-width);
  --topbar-height: var(--cms-topbar-height);
  --content-width: var(--cms-content-width);
  --control-height: var(--cms-control-height);
  --radius-sm: var(--cms-radius-sm);
  --radius-md: var(--cms-radius-md);
  --space-1: var(--cms-space-1);
  --space-2: var(--cms-space-2);
  --space-3: var(--cms-space-3);
  --space-4: var(--cms-space-4);
  --space-5: var(--cms-space-5);
  --space-6: var(--cms-space-6);
  --motion-fast: var(--cms-motion-fast);
  --motion-control: var(--cms-motion-control);
  --motion-panel: var(--cms-motion-panel);
  --motion-drawer: var(--cms-motion-drawer);
  --motion-exit: var(--cms-motion-exit);
}

* { box-sizing: border-box; }
html { min-width: 20rem; background: var(--color-canvas); font-size: var(--cms-root-font-size); }
body {
  margin: 0;
  background: var(--cms-bg-page);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--cms-font-size-md);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }
.icon { flex: none; margin-bottom: .1em;}
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  :root {
    --cms-motion-duration-fast: .01ms;
    --cms-motion-duration-control: .01ms;
    --cms-motion-duration-panel: .01ms;
    --cms-motion-duration-drawer: .01ms;
    --cms-motion-duration-exit: .01ms;
  }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}


@media (max-width: 680px), (pointer: coarse) {
  :root { --cms-touch-target: 2.75rem; }
}

@media (max-width: 680px) {
  :root { --cms-root-font-size: 17px; }
  h1 { font-size: var(--cms-font-size-2xl); }
}

/* Skip link (admin polish A2) */
.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 100;
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
}
.skip-link:focus { left: var(--space-3); top: var(--space-3); }
