/* Shared public palette approved by Silvia, 2 November 2026.
   Role-based rules preserve layout, destructive actions and media controls. */
:root {
    --zf-ink: #0F172A;
    --zf-heading-accent: #60788D;
    --zf-muted: #475569;
    --zf-button: #E6F0FA;
    --zf-button-hover: #D8E7F5;
    --zf-button-ink: #294763;
    --zf-line: #D7E2EC;
    --zf-action: #FF5B24;
    --zf-action-hover: #E84E1D;
    --zf-surface: #FFFFFF;
    --no-dark: #0F172A;
    --no-bg: #F8FAFC;
    --no-soft: #E6F0FA;
    --zfp-dark: #0F172A;
    --zfp-text-main: #0F172A;
    --zfp-text-muted: #475569;
    --zfp-bg: #F8FAFC;
}
html body.zf-projects-page { --pp-ink: var(--zf-ink); --pp-muted: var(--zf-muted); --pp-blue: var(--zf-button); --pp-line: var(--zf-line); }

/* Browsing, editing, saving and adding an item are ordinary actions. */
html body :is(.neo-btn-primary,.neo-btn-next,.zfp-btn,.login-btn,.shop-btn,.christmas-cta,.pp-button,.ss-btn,.btn-bli-fadder,.zf-modal-btn,.btn-submit,.neo-widget-btn,.neo-view-btn,.no-legacy-button,.no-btn-primary,.zn-cta):not([name="cancel_sponsorship"]):not(.success):not(:disabled):not([aria-disabled="true"]) {
    background: var(--zf-button) !important;
    color: var(--zf-button-ink) !important;
    border-color: var(--zf-line) !important;
    box-shadow: none !important;
}
html body :is(.neo-btn-primary,.neo-btn-next,.zfp-btn,.login-btn,.shop-btn,.christmas-cta,.pp-button,.ss-btn,.btn-bli-fadder,.zf-modal-btn,.btn-submit,.neo-widget-btn,.neo-view-btn,.no-legacy-button,.no-btn-primary,.zn-cta):not([name="cancel_sponsorship"]):not(.success):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--zf-button-hover) !important;
    color: var(--zf-button-ink) !important;
    border-color: #B9CCDF !important;
    box-shadow: none !important;
}
html body :is(.neo-btn-outline,.shop-card-cart,.btn-logg-inn,.dashboard-spleis-button,.no-btn-outline) {
    background: var(--zf-surface) !important;
    color: var(--zf-button-ink) !important;
    border-color: var(--zf-line) !important;
    box-shadow: none !important;
}
html body :is(.neo-btn-outline,.shop-card-cart,.btn-logg-inn,.dashboard-spleis-button,.no-btn-outline):hover {
    background: var(--zf-button) !important;
    color: var(--zf-button-ink) !important;
    border-color: #B9CCDF !important;
}
html body :is(.info-icon-btn,.year-tab-btn.active) {
    background: var(--zf-button) !important;
    color: var(--zf-button-ink) !important;
}
html body .info-icon-btn:hover { background: var(--zf-button-hover) !important; color: var(--zf-button-ink) !important; }
/* Older account dialogs use this variable in an inline important background. */
html body .neo-btn-primary[style*="--zfp-dark"] { --zfp-dark: var(--zf-button); }
html body .neo-btn-primary:is([style*="--zfp-pop"],[style*="background:#ea580c"]) {
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
}

/* Payment/support is orange with white labels in every state.
   19px/700 meets the large-text threshold for this 3.1:1 brand combination. */
html body :is(.btn-pay,.pay-btn,.checkout-btn,.zf-shoes-cta,.neo-btn-submit),
html body #btn_donate {
    background: var(--zf-action) !important;
    color: #FFFFFF !important;
    border-color: var(--zf-action) !important;
    box-shadow: none !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
html body :is(.btn-pay,.pay-btn,.checkout-btn,.zf-shoes-cta,.neo-btn-submit):is(:hover,:focus,:visited),
html body #btn_donate:is(:hover,:focus) {
    color: #FFFFFF !important;
}
html body :is(.btn-pay,.pay-btn,.checkout-btn,.zf-shoes-cta,.neo-btn-submit):hover:not(:disabled),
html body #btn_donate:hover:not(:disabled) { background: var(--zf-action-hover) !important; border-color: var(--zf-action-hover) !important; }
html body :is(.btn-pay,.pay-btn,.checkout-btn,.zf-shoes-cta,.neo-btn-submit) :is(span,svg),
html body #btn_donate :is(span,svg) { color: inherit !important; }

/* Deliberate exceptions: errors/deletion remain red; completion stays green. */
html body :is(.shop-btn,.login-btn,.neo-btn-primary,.neo-btn-next,.pay-btn,.btn-pay,.neo-btn-submit):disabled {
    background: #E2E8F0 !important;
    color: #475569 !important;
    border-color: #CBD5E1 !important;
    box-shadow: none !important;
    cursor: not-allowed;
}
html body :is(.neo-btn-primary,.neo-btn-next,.zfp-btn,.login-btn,.shop-btn,.christmas-cta,.pp-button,.ss-btn,.btn-bli-fadder,.neo-btn-outline,.shop-card-cart,.btn-logg-inn,.btn-pay,.pay-btn,.checkout-btn,.zf-shoes-cta,.neo-btn-submit,.zf-modal-btn):focus-visible,
html body #btn_donate:focus-visible {
    outline: 3px solid var(--zf-button-ink) !important;
    outline-offset: 4px !important;
}

/* The two heading tones; use the lighter email equivalent over dark video. */
html body :is(.christmas-copy h2 em,.pp-intro h1 em,.no-hero-title span,.zf-shoes-card h2 em,.spleis-title em) { color: var(--zf-heading-accent) !important; }
html body .zf-shoes-copy h1 span { color: #B4C7D9 !important; }
@media(max-width:700px) { html body .zf-shoes-copy h1 span { color: var(--zf-heading-accent) !important; } }
html body :is(.spleis-background-link,.spleis-photo-shortcut,.spleis-gallery-link,.pp-text-link,.zfp-link-btn) {
    color: var(--zf-button-ink) !important;
    font-weight: 500 !important;
    text-decoration-color: #9CB0C2;
}
html body :is(.spleis-story-pager button,.spleis-history-more) { background: #FFFFFF !important; color: var(--zf-button-ink) !important; border-color: var(--zf-line) !important; }
html body :is(.spleis-story-pager button,.spleis-history-more):hover:enabled { background: var(--zf-button) !important; color: var(--zf-button-ink) !important; }
html body #neo-cookie-accept { background: var(--zf-button) !important; color: var(--zf-button-ink) !important; border: 1px solid var(--zf-line) !important; }
html body .checkout-page .pay-btn { white-space: normal; }
@media(max-width:380px) { html body .checkout-page .pay-btn { padding-left: 10px; padding-right: 10px; } }
