/* Use the application's light/dark/system tokens on every step, including direct links. */
:is(.page-zug-public, .page-zug-sign, .zug-profile-page, .page-zug-admin-settings, .page-zug-admin-anmeldungen) {
    --zug-surface: var(--ui-surface);
    --zug-surface-soft: var(--ui-surface-subtle);
    --zug-surface-elevated: var(--ui-surface-elevated);
    --zug-border: var(--ui-border-strong);
    --zug-accent: var(--ui-primary);
    --zug-accent-hover: var(--ui-primary-strong);
    --zug-accent-light: var(--ui-primary-soft);
    --zug-radius-xs: .25rem;
    --zug-radius-sm: var(--ui-radius-sm);
    --zug-radius-md: var(--ui-radius-md);
    --zug-radius-lg: var(--ui-radius-lg);
    --zug-radius-xl: var(--ui-radius-xl);
    --zug-shadow-xs: 0 1px 2px rgb(0 0 0 / .08);
    --zug-shadow-sm: var(--ui-shadow-sm);
    --zug-shadow-md: var(--ui-shadow-card);
    --zug-shadow-lg: var(--ui-shadow-soft);
    --zug-transition: .2s ease;
    --zug-transition-slow: .35s ease;
    color: var(--ui-text);
}
.page-zug-public.page-zug-registration { background: var(--ui-bg); }
:is(.page-zug-public, .page-zug-sign, .zug-profile-page, .page-zug-admin-settings, .page-zug-admin-anmeldungen) :is(.input, .zug-pr-role-select) {
    background: var(--ui-surface);
    color: var(--ui-text);
    border-color: var(--ui-border-strong);
    font-size: 1rem;
}
:is(.page-zug-public, .page-zug-sign, .zug-profile-page) :is(input, select, textarea) { font-size: 1rem; }
:is(.page-zug-public, .page-zug-sign, .zug-profile-page) .input::placeholder { color: var(--ui-text-muted); opacity: 1; }
.page-zug-public :is(.zug-landing-hero, .zug-registration-hero, .zug-login-card-highlight) {
    background: linear-gradient(145deg, var(--ui-surface), var(--ui-surface-subtle));
}
.page-zug-public :is(.zug-metric, .zug-quickfact, .zug-side-task-item, .zug-side-task-item:hover) { background: var(--ui-surface-subtle); }
.page-zug-public :is(.zug-landing-title, .zug-hero-title, .zug-metric-value, .zug-pr-name, .zug-req-text strong, .zug-login-card-highlight .card-title) { color: var(--ui-text); }
.page-zug-public :is(.zug-landing-copy, .zug-hero-text, .zug-progress-label, .zug-side-list, .zug-req-text, .zug-login-tip, .zug-quickfact, .zug-login-card-highlight .card-subtitle) { color: var(--ui-text); }
.page-zug-public :is(.zug-hero-kicker, .zug-metric-label) { color: var(--ui-text-muted); }
.page-zug-public .zug-step { color: var(--ui-text); background: var(--ui-surface); border-color: var(--ui-border-strong); }
.page-zug-public .zug-step.is-active { color: var(--ui-primary-strong); background: var(--ui-primary-soft); border-color: var(--ui-primary); }
.page-zug-public :is(.zug-role-badge, .zug-phase-badge, .status-pill, .zug-link-locked) { color: var(--ui-text); }
.page-zug-public .zug-req-badge { background: var(--ui-primary-action); color: var(--ui-text-inverse); }
.page-zug-public .zug-info-list li::before { color: var(--ui-primary); }
.page-zug-public .zug-pr-icon-btn.is-danger:hover { color: var(--ui-danger); }
.page-zug-public :is(.zug-stage, .zug-stage > *, .zug-documents, .zug-doc-card, .zug-doc-preview) { min-width: 0; max-width: 100%; }
.page-zug-public :is(.zug-grid, .zug-person-list) { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.page-zug-public :is(.zug-grid > *, .zug-field-row > *, .zug-pr-edit-fields > *, .zug-person-row > *, .card-head > *, .zug-req-text) { min-width: 0; }
.page-zug-public :is(.zug-responsible-section, .zug-person-row, .zug-field-group, .zug-field-row, .zug-pr-edit-fields, .input) { max-width: 100%; }
.page-zug-public .card-subtitle { white-space: normal; overflow-wrap: anywhere; }
.page-zug-public .zug-person-row.is-editing { flex-wrap: nowrap; }
.page-zug-public .zug-person-row.is-editing :is(.zug-pr-name, .zug-pr-info) { flex-basis: auto; }
.page-zug-public .zug-doc { overflow-wrap: anywhere; }
.page-zug-public .zug-doc a { color: #1d4ed8; text-decoration: underline; }
/* Logos and documents keep their own white paper; surrounding controls follow the theme. */
:is(.page-zug-public, .page-zug-sign, .page-zug-admin-settings, .page-zug-admin-anmeldungen) :is(.zug-landing-logo, .app-header-logo-image, .app-header-co-brand-image) { background: #fff; border-radius: .35rem; padding: .2rem; }
:is(.page-zug-public, .page-zug-sign) .signature-canvas { background: #fff; color-scheme: light; }
.page-zug-admin-anmeldungen .zug-doc-modal__body { background: #fff; color: #111827; color-scheme: light; }
.page-zug-admin-anmeldungen :is(.zug-guide-step, .zug-kpi-card, .zug-admin-quickfilters, .zug-quickfilters, .zug-lineup-total, .zug-chip, .zug-tag, .zug-hero-visual) { background: var(--ui-surface); color: var(--ui-text); }
.page-zug-admin-anmeldungen .zug-chip.is-active { background: var(--ui-primary-action); color: var(--ui-text-inverse); }
.page-zug-admin-anmeldungen :is(.zug-guide-next-kicker, .zug-guide-step.is-done .zug-guide-step-index, .zug-guide-step-status.is-done, .zug-inline-pill, [class*="status-pill--"]) { color: var(--ui-text); }
.zug-theme-control { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem 0; font-size: .85rem; color: var(--ui-text-muted); }
.zug-theme-control .input { width: auto; min-height: 2.75rem; max-width: 100%; }
[data-zug-live-confirmation][hidden] { display: none; }
.zug-live-confirmation { padding: 1rem; background: var(--ui-primary-soft); border: 1px solid var(--ui-primary); border-radius: var(--ui-radius-sm); }
.zug-live-confirmation label { flex-direction: row; align-items: flex-start; gap: .7rem; }
:is(.page-zug-public, .page-zug-sign, .zug-profile-page) :focus-visible { outline: 2px solid var(--ui-primary); outline-offset: 3px; }
@media (max-width: 480px) {
    .page-zug-public .zug-registration-hero { padding: 1rem; }
    .page-zug-public .zug-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-zug-public .zug-metric { padding: .6rem; }
    .page-zug-public .zug-step { padding-inline: .5rem; }
    .page-zug-public .zug-step-nav { padding: .6rem; }
    .page-zug-public .zug-pr-icon-btn { width: 2.75rem; height: 2.75rem; }
    .page-zug-public .zug-pr-name { flex-basis: 100%; white-space: normal; overflow-wrap: anywhere; }
    .page-zug-public .zug-pr-info { flex-basis: 100%; white-space: normal; overflow-wrap: anywhere; }
    .page-zug-public .zug-pr-sep { display: none; }
    .page-zug-public .zug-pr-role-select { min-width: 0; width: 100%; }
    .page-zug-public .zug-req-banner { padding: .65rem; align-items: flex-start; }
    .page-zug-public .zug-req-badge { flex-shrink: 0; }
    .page-zug-public .zug-doc-card { padding: .75rem 0; }
    .page-zug-public .zug-doc-card > .card-head { padding-inline: .75rem; }
    .page-zug-public .zug-doc-page { padding: .75rem .5rem; }
    .page-zug-public .zug-doc .zug-guidelines { padding: .5rem; }
    .page-zug-public .zug-doc-header { flex-wrap: wrap; }
    .page-zug-public .zug-doc :is(td, th, p, li) { overflow-wrap: anywhere; }
    .page-zug-public .zug-kv { table-layout: fixed; }
    .page-zug-public .zug-kv td { padding: .4rem; }
    .page-zug-public .zug-signature-grid { grid-template-columns: minmax(0, 1fr); }
}
@media print {
    .zug-theme-control { display: none; }
    .page-zug-public .zug-print-target { background: #fff; color: #111827; color-scheme: light; }
}
