body {
    margin: 0;
    background: var(--kp-color-surface-page);
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
}

/* Epic 11 — avis clients (prototype hash 5f1572e0dafd0ea8). */
.kp-client-review-page,
.kp-client-review-invitation {
    --kp-review-primary: #3b4a8c;
    --kp-review-primary-dark: #2b3570;
    --kp-review-text-soft: #5b6490;
    --kp-review-text-muted: #616b8d;
    --kp-review-border: #efe8d6;
    --kp-review-control-border: #e4ddc8;
    --kp-review-soft: #faf6ec;
    --kp-review-card: #fff;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-body);
}

.kp-client-review-page {
    width: min(100%, 1140px);
}

/* The shared profile page includes 32px horizontal gutters in its declared
   width. The prototype's 1080px review grid is the content width. */
.kp-client-profile-page.kp-client-review-page {
    width: min(100%, 1200px);
}

.kp-client-review-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    max-width: 1080px;
    align-items: start;
}

.kp-card.kp-client-review-workspace {
    padding: 36px;
    border-color: var(--kp-review-border);
    border-radius: 18px;
    background: var(--kp-review-card);
    box-shadow: 0 1px 3px rgba(43, 53, 112, .04);
}

.kp-client-review-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 20px;
}

.kp-client-review-heading h2 {
    margin: 0 0 6px;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 28px;
    font-weight: 800;
}

.kp-client-review-heading p,
.kp-client-review-workspace > section > p {
    margin: 0;
    color: var(--kp-review-text-soft);
    font-size: 13.5px;
    line-height: 1.5;
}

.kp-client-review-heading > span {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    flex: 0 0 50px;
    border: 1px solid #f2b4c4;
    border-radius: 15px;
    background: #fff4f7;
    color: #d6a900;
    font-size: 25px;
}

.kp-client-review-workspace h3 {
    margin: 0 0 6px;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 20px;
    font-weight: 800;
}

.kp-alert.kp-client-review-whitelist {
    display: flex;
    gap: 12px;
    margin: 16px 0;
    padding: 12px 16px;
    border-color: #bae6fd;
    background: #e0f2fe;
    color: #0369a1;
}

.kp-client-review-whitelist strong,
.kp-client-review-whitelist p {
    margin: 0;
}

.kp-client-review-whitelist strong {
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 700;
}

.kp-client-review-whitelist p {
    font-size: 13px;
    line-height: 1.5;
}

.kp-client-review-form {
    padding: 20px;
    border: 1px solid var(--kp-review-border);
    border-radius: 14px;
    background: var(--kp-review-soft);
}

.kp-client-review-form .kp-field {
    gap: 0;
}

.kp-client-review-rating {
    margin: 0 0 22px;
    padding: 0;
    border: 0;
}

.kp-client-review-rating legend,
.kp-client-review-form .kp-field__label {
    margin-bottom: 10px;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-body);
    font-size: 15px;
    font-weight: 800;
}

.kp-client-review-form label.kp-field__label {
    margin-bottom: 8px;
    font-family: var(--kp-font-body);
}

.kp-client-review-rating legend span,
.kp-client-review-form .kp-field__label span {
    color: var(--kp-color-required);
}

.kp-client-review-page .kp-alert--error,
.kp-client-review-page .kp-alert--error a,
.kp-client-review-page .kp-field__error {
    color: #b91c1c;
}

.kp-client-review-rating [role="radiogroup"] {
    display: flex;
    gap: 6px;
}

.kp-client-review-rating label {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 10px;
    background: #fff7cc;
    cursor: pointer;
}

.kp-client-review-rating input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.kp-client-review-rating label > span[aria-hidden="true"] {
    color: #6d7596;
    font-size: 24px;
    line-height: 1;
}

.kp-client-review-rating label:has(input:checked) > span[aria-hidden="true"],
.kp-client-review-rating label:has(~ label input:checked) > span[aria-hidden="true"] {
    color: #927000;
}

.kp-client-review-rating label:focus-within {
    border-radius: 8px;
    outline: 3px solid color-mix(in srgb, var(--kp-color-brand-primary) 35%, transparent);
    outline-offset: 2px;
}

.kp-client-review-form textarea {
    height: 165px;
    min-height: 145px;
    padding: 14px;
    border-color: var(--kp-review-control-border);
    border-radius: 12px;
    background: #fff;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-body);
    font-size: 15px;
    line-height: 1.5;
    resize: vertical;
    white-space: pre-wrap;
}

.kp-client-review-counter {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 7px;
    color: var(--kp-review-text-soft);
    font-size: 12px;
}

.kp-client-review-counter output {
    color: var(--kp-review-text-muted);
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    white-space: nowrap;
}

.kp-client-review-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

.kp-client-review-actions .kp-button[disabled] {
    background: var(--kp-review-primary);
    cursor: not-allowed;
    opacity: .6;
}

.kp-client-review-actions .kp-button--primary,
.kp-client-review-invitation .kp-button--primary {
    background: var(--kp-review-primary);
    color: #fff;
    font-family: var(--kp-font-body);
}

.kp-client-review-actions .kp-button--outline {
    border-color: var(--kp-review-primary);
    background: #fff;
    color: var(--kp-review-primary);
    font-family: var(--kp-font-body);
}

.kp-client-review-success {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.5;
}

.kp-client-review-success strong,
.kp-client-review-success p,
.kp-client-review-received p {
    margin: 0;
}

.kp-client-review-success > span {
    line-height: 20px;
}

.kp-client-review-success strong {
    display: block;
    margin-bottom: 2px;
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 700;
}

.kp-client-review-received {
    padding: 22px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 16px;
    background: var(--kp-color-surface-soft);
}

.kp-client-review-detail {
    padding: 22px;
    border: 1px solid var(--kp-review-border);
    border-radius: 16px;
    background: var(--kp-review-soft);
}

.kp-client-review-detail__meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    color: var(--kp-review-text-muted);
    font-size: 11.5px;
}

.kp-client-review-detail__stars {
    color: #d6a900;
    font-size: 23px;
    line-height: 1;
    letter-spacing: 1px;
}

.kp-client-review-detail__comment {
    margin: 17px 0 0;
    color: var(--kp-review-primary-dark);
    font-size: 15px;
    line-height: 1.62;
    white-space: pre-wrap;
}

.kp-client-review-detail__privacy {
    margin: 20px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--kp-review-control-border);
    color: var(--kp-review-text-soft);
    font-size: 12.5px;
    line-height: 1.5;
}

.kp-client-review-detail__actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.kp-client-review-detail__actions .kp-button {
    gap: 8px;
    font-family: var(--kp-font-body);
}

.kp-client-review-detail__actions .kp-button--primary {
    background: var(--kp-review-primary);
    color: #fff;
}

.kp-client-review-detail__actions .kp-client-review-delete-action {
    border-color: var(--kp-color-error-fg);
    background: #fff;
    color: var(--kp-color-error-fg);
}

.kp-client-review-unchanged-hint {
    margin: 14px 0 0;
    color: var(--kp-review-text-soft);
    font-size: 13px;
}

.kp-client-review-invitation {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 20px;
    border: 1.5px solid #f2b4c4;
    background: linear-gradient(135deg, #fff 0%, #fff4f7 100%);
    box-shadow: 0 12px 28px rgba(176, 81, 113, .08);
}

/* Dashboard card rules are declared later in this stylesheet. Keep the
   review invitation's canonical surface authoritative without affecting
   any pre-Epic dashboard card. */
.kp-client-dashboard .kp-card.kp-client-review-invitation {
    padding: 22px;
    border: 1.5px solid #f2b4c4;
    background: linear-gradient(135deg, #fff 0%, #fff4f7 100%);
}

.kp-client-review-invitation__icon {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    flex: 0 0 46px;
    border-radius: 14px;
    background: #f2b4c4;
    color: var(--kp-review-primary-dark);
    font-size: 23px;
}

.kp-client-review-invitation h2 {
    margin: 0 0 5px;
    color: var(--kp-review-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
}

.kp-client-review-invitation p {
    margin: 0 0 14px;
    color: var(--kp-review-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

@media (max-width: 900px) {
    .kp-client-dashboard__layout:has(.kp-client-review-invitation) {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

@media (min-width: 768px) and (max-width: 859px) {
    .kp-client-profile-page.kp-client-review-page {
        padding-right: 16px;
        padding-left: 16px;
    }
}

@media (max-width: 767px) {
    .kp-client-review-layout {
        grid-template-columns: 1fr;
    }

    .kp-card.kp-client-review-workspace {
        padding: 18px;
    }

    .kp-client-review-workspace h3 {
        margin-bottom: 5px;
        font-size: 18px;
    }

    .kp-client-review-form textarea {
        height: auto;
    }

    .kp-client-dashboard .kp-card.kp-client-review-invitation {
        padding: 18px;
    }

    .kp-client-review-heading h2 {
        font-size: 24px;
    }

    .kp-client-review-form {
        padding: 16px;
    }

    .kp-client-review-actions {
        flex-direction: column-reverse;
    }

    .kp-client-review-actions .kp-button {
        width: 100%;
    }

    .kp-client-review-detail {
        padding: 17px;
    }

    .kp-client-review-detail__stars {
        font-size: 21px;
    }

    .kp-client-review-detail__comment {
        font-size: 14px;
    }

    .kp-client-review-detail__actions {
        flex-direction: column;
    }

    .kp-client-review-detail__actions .kp-button {
        width: 100%;
    }
}

/* Story 9.6 customer reservation history. */
.kp-client-history,
.kp-client-history-detail {
    width: min(100%, 1200px);
    margin: 0 auto;
    padding: 32px 32px 96px;
    box-sizing: border-box;
}

.kp-client-history__header h1,
.kp-client-history__header p,
.kp-client-history-detail h1,
.kp-client-history-detail h2,
.kp-client-history-detail p {
    margin: 0;
}

.kp-client-history__header h1 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-client-history__header p {
    margin-top: 8px;
    color: var(--kp-color-text-soft);
    font-size: 15px;
}

.kp-client-history__booking-action {
    display: flex;
    justify-content: center;
    margin: 18px 0;
}

.kp-client-history__booking-action .kp-button--primary {
    border-color: var(--kp-color-brand-accent-yellow);
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-brand-primary-dark);
    line-height: normal;
    white-space: nowrap;
}

.kp-client-history__button-icon,
.kp-client-history__button-icon svg {
    width: 18px;
    height: 18px;
}

.kp-client-history__button-icon svg {
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-width: 2.5;
}

.kp-client-history__filters {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
    padding-bottom: 4px;
    overflow-x: auto;
}

.kp-client-history__filter {
    flex: 0 0 auto;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    padding: 8px 16px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-client-history__filter.is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
}

.kp-client-history__empty {
    padding: 28px;
    color: var(--kp-color-text-soft);
    text-align: center;
}

.kp-client-history__list {
    display: grid;
    gap: 12px;
}

.kp-client-history-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto 14px;
    gap: 16px;
    align-items: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: var(--kp-radius-card);
    padding: 16px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    color: inherit;
    text-decoration: none;
}

.kp-client-history-card:hover,
.kp-client-history-card:focus-visible {
    border-color: var(--kp-color-border-soft);
}

.kp-client-history-card__date {
    display: flex;
    width: 52px;
    height: 52px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: var(--kp-radius-control);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    text-align: center;
}

.kp-client-history-card__date strong {
    font-size: 18px;
    line-height: 1;
}

.kp-client-history-card__date small {
    margin-top: 3px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-client-history-card__main,
.kp-client-history-card__status {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.kp-client-history-card__main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 8px;
    row-gap: 2px;
    align-items: center;
}

.kp-client-history-card__main strong,
.kp-client-history-card__status > strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.kp-client-history-card__main > span {
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-history-card__main > strong {
    grid-column: 2;
    grid-row: 1;
}

.kp-client-history-card__animal {
    grid-column: 1;
    grid-row: 1;
    font-size: 0 !important;
}

.kp-client-history-card__animal > span:first-child {
    font-size: 16px;
}

.kp-client-history-card__schedule,
.kp-client-history-card__message {
    grid-column: 1 / -1;
}

.kp-client-history-card__main .kp-client-history-card__message,
.kp-client-history-detail__payment-message {
    margin-top: 3px;
    color: var(--kp-color-error-fg);
    font-size: 12px;
}

.kp-client-history-card__status {
    align-items: flex-end;
    gap: 4px;
}

.kp-client-history-card__badges {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.kp-client-history-card__status > strong {
    margin-top: 2px;
    font-size: 14px;
}

.kp-client-history-badge {
    display: inline-block;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    padding: 2px 10px;
    background: var(--kp-color-surface-soft);
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 11px;
    font-weight: 600;
    line-height: normal;
    white-space: nowrap;
}

.kp-client-history-badge--success {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-client-history-badge--failed {
    border-color: var(--kp-color-error-border);
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-client-history-badge--refund {
    border-color: var(--kp-color-info-border);
    background: var(--kp-color-info-bg);
    color: var(--kp-color-info-fg);
}

.kp-client-history-badge--pending {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-client-history-badge--neutral {
    border-color: var(--kp-color-neutral-border);
    background: var(--kp-color-neutral-bg);
    color: var(--kp-color-neutral-fg);
}

.kp-client-history-card__arrow {
    display: inline-flex;
    width: 14px;
    height: 14px;
    color: var(--kp-color-text-main);
}

.kp-client-history-card__arrow svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.kp-client-history-detail__back {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 14px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-client-history-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .9fr);
    gap: 20px;
    align-items: start;
}

.kp-client-history-detail__main,
.kp-client-history-detail__aside {
    display: grid;
    min-width: 0;
    gap: 16px;
}

.kp-client-history-detail__payment,
.kp-client-history-detail__timeline {
    padding: 22px;
}

.kp-client-history-detail__hero {
    padding: 24px;
}

.kp-client-history-detail__aside > .kp-card {
    padding: 20px;
}

.kp-client-history-detail__heading {
    position: relative;
    display: block;
    margin-bottom: 18px;
}

.kp-client-history-detail__reference {
    grid-column: 1;
    color: var(--kp-color-text-muted);
    font-family: var(--kp-font-mono);
    font-size: 11px;
}

.kp-client-history-detail__heading h1 {
    grid-column: 1;
    margin: 4px 0 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 25px;
    font-weight: 800;
}

.kp-client-history-detail__schedule,
.kp-client-history-detail__facts section > span:last-child > span,
.kp-client-history-detail__aside p {
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-history-detail__heading > .kp-client-history-badge {
    position: absolute;
    top: 0;
    right: 0;
}

.kp-client-history-detail__schedule {
    font-size: 14px;
}

.kp-client-history-detail__aside .kp-button {
    min-height: 0;
    line-height: 21px;
    white-space: nowrap;
}

.kp-client-history-detail__aside [data-testid="client-cancellation-open"] {
    min-height: 0;
    margin-bottom: 10px;
    border: 1.5px solid var(--kp-color-error-fg);
    background: #fff;
    color: var(--kp-color-error-fg);
    line-height: 21px;
    white-space: nowrap;
}

.kp-client-history-detail__facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-client-history-detail__facts section {
    display: flex;
    min-width: 0;
    gap: 12px;
    border-radius: var(--kp-radius-control);
    padding: 16px;
    background: var(--kp-color-surface-soft);
}

.kp-client-history-detail__facts section > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.kp-client-history-detail__fact-icon {
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    border-radius: var(--kp-radius-control);
    background: var(--kp-color-surface-card);
    font-size: 20px;
}

.kp-client-history-detail__facts small {
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-client-history-detail__facts strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    overflow-wrap: anywhere;
}

.kp-client-history-detail__payment > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.kp-client-history-detail__payment h2,
.kp-client-history-detail__timeline h2,
.kp-client-history-detail__aside h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
}

.kp-client-history-detail__payment > div > strong {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 20px;
    font-weight: 900;
}

.kp-client-history-detail__payment > p {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.kp-client-history-detail__timeline ol {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.kp-client-history-detail__timeline li {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border-top: 1px solid var(--kp-color-border-soft);
    padding: 8px 0;
}

.kp-client-history-detail__timeline li:first-child {
    border-top: 0;
}

.kp-client-history-detail__timeline li > span {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-client-history-detail__timeline li strong,
.kp-client-history-detail__timeline li time {
    color: var(--kp-color-text-main);
    font-size: 13px;
    font-weight: 400;
}

.kp-client-history-detail__timeline li time {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-client-history-detail__aside h2 {
    margin-bottom: 14px;
    font-size: 15px;
}

.kp-client-history-detail__aside p + p {
    margin-top: 8px;
}

.kp-client-history-detail__aside .kp-button--secondary {
    border-color: var(--kp-color-border-default);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-brand-primary);
}

@media (max-width: 760px) {
    .kp-client-history,
    .kp-client-history-detail {
        width: 100%;
        padding: 13px 16px 96px;
    }

    .kp-client-history__header h1 {
        font-size: 24px;
    }

    .kp-client-history__header p {
        max-width: 320px;
        font-size: 14px;
        line-height: 1.5;
    }

    .kp-client-history__booking-action .kp-button {
        width: 100%;
        min-height: 38px;
    }

    .kp-client-history__booking-action {
        margin-top: 13px;
        margin-bottom: 23px;
    }

    .kp-client-history__filters {
        margin-bottom: 11px;
    }

    .kp-client-history__filter {
        padding: 8px 12px;
    }

    .kp-client-history-card {
        grid-template-columns: 58px minmax(0, 1fr) 18px;
        gap: 10px;
        align-items: start;
        padding: 12px;
    }

    .kp-client-history-card__date {
        width: 58px;
        height: 64px;
    }

    .kp-client-history-card__date strong {
        font-size: 16px;
        font-weight: 900;
    }

    .kp-client-history-card__main strong {
        display: block;
        font-size: 14px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .kp-client-history-card__main {
        display: block;
    }

    .kp-client-history-card__main > span {
        display: block;
        margin-top: 8px;
    }

    .kp-client-history-card__main > span:nth-child(2) {
        margin-top: 3px;
        font-size: 12px;
    }

    .kp-client-history-card__animal {
        font-size: 12px !important;
    }

    .kp-client-history-card__animal > span:first-child {
        font-size: 12px;
        margin-right: 4px;
    }

    .kp-client-history-card__main .kp-client-history-card__message {
        margin-top: 2px;
    }

    .kp-client-history-card__status {
        grid-column: 1 / -1;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 10px;
        margin-top: 6px;
    }

    .kp-client-history-card__badges {
        flex-direction: row;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
    }

    .kp-client-history-card__status > strong {
        margin: 0;
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
    }

    .kp-client-history-card__arrow {
        grid-column: 3;
        grid-row: 1;
        align-self: start;
    }

    .kp-client-history-detail__layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .kp-client-history-detail {
        padding-top: 10px;
    }

    .kp-card.kp-client-history-detail__hero {
        margin-right: -16px;
        margin-left: -16px;
        border: 0;
        border-radius: 0;
        padding: 18px 16px;
        background: var(--kp-color-brand-primary-dark);
        color: var(--kp-color-text-inverse);
    }

    .kp-client-history-detail__heading h1,
    .kp-client-history-detail__reference,
    .kp-client-history-detail__schedule {
        color: var(--kp-color-text-inverse);
    }

    .kp-client-history-detail__heading h1 {
        font-size: 22px;
    }

    .kp-client-history-detail__heading {
        margin-bottom: 14px;
        padding-right: 90px;
    }

    .kp-client-history-detail__heading h1,
    .kp-client-history-detail__schedule {
        grid-column: 1 / -1;
    }

    .kp-client-history-detail__heading h1 {
        margin-top: 4px;
    }

    .kp-client-history-detail__reference {
        color: rgb(255 255 255 / 70%);
    }

    .kp-client-history-detail__schedule {
        color: rgb(255 255 255 / 78%);
    }

    .kp-client-history-detail__back {
        display: none;
    }

    .kp-client-history-detail__facts {
        grid-template-columns: 1fr;
    }

    .kp-client-history-detail__facts section {
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 12px;
        padding: 12px;
        background: var(--kp-color-surface-card);
    }

    .kp-client-history-detail__facts section > span:last-child {
        display: block;
    }

    .kp-client-history-detail__facts small,
    .kp-client-history-detail__facts strong,
    .kp-client-history-detail__facts section > span:last-child > span {
        display: block;
    }

    .kp-client-history-detail__facts small {
        margin-bottom: 4px;
    }

    .kp-client-history-detail__fact-icon {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
        font-size: 18px;
    }

    .kp-card.kp-client-history-detail__payment,
    .kp-card.kp-client-history-detail__timeline,
    .kp-client-history-detail__aside > .kp-card {
        padding: 16px;
    }

    .kp-client-history-detail__payment > div > strong {
        font-size: 22px;
    }

    .kp-client-history-detail__timeline li {
        display: flex;
    }

    .kp-client-history-detail__timeline li strong {
        min-width: 0;
        flex: 1;
    }
}

.kp-admin-object-history {
    margin-top: 24px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: var(--kp-color-surface-card);
    padding: 18px 20px;
}

.kp-admin-object-history__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.kp-admin-object-history__heading p,
.kp-admin-object-history__heading h2 {
    margin: 0;
}

.kp-admin-object-history__heading p {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-object-history__heading h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
}

.kp-admin-object-history__heading a {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
}

.kp-admin-object-history__list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kp-admin-object-history__list li {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding: 12px 0;
}

.kp-admin-object-history__list li > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.kp-admin-object-history__list strong,
.kp-admin-object-history__list span,
.kp-admin-object-history__list code {
    overflow-wrap: anywhere;
}

.kp-admin-object-history__list strong {
    color: var(--kp-color-text-main);
    font-size: 14px;
}

.kp-admin-object-history__list span,
.kp-admin-object-history__list code {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-object-history__status {
    align-self: start;
    border-radius: 999px;
    background: var(--kp-color-surface-soft);
    padding: 4px 7px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    text-align: center;
}

.kp-admin-object-history__status.is-ok {
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-object-history__status.is-denied,
.kp-admin-object-history__status.is-failed {
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-admin-object-history__list .kp-admin-object-history__empty {
    display: block;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-admin-service-form__readonly-scope {
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

@media (max-width: 700px) {
    .kp-admin-object-history {
        margin-top: 20px;
        padding: 16px;
    }

    .kp-admin-object-history__list li {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 10px;
    }
}

/* Epic 9 audit journal, ported from ADM_AUDIT desktop and mobile fragments. */
.kp-admin-audit {
    display: grid;
    align-content: start;
    gap: 14px;
    max-width: 1040px;
    margin-inline: auto;
}

.kp-admin-audit-topbar__count {
    display: none;
}

.kp-admin-audit__back {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 6px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.kp-admin-audit__back svg {
    width: 14px;
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.kp-admin-audit__notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid var(--kp-color-info-border);
    border-radius: var(--kp-radius-control);
    background: var(--kp-color-info-bg);
    color: var(--kp-color-info-fg);
    margin-top: 18px;
}

.kp-admin-audit__notice-icon {
    display: grid;
    width: auto;
    height: auto;
    flex: 0 0 auto;
    place-items: center;
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
}

.kp-admin-audit__notice h2,
.kp-admin-audit__notice p {
    margin: 0;
}

.kp-admin-audit__notice h2 {
    font-family: var(--kp-font-heading);
    font-size: 13px;
}

.kp-admin-audit__notice p {
    margin-top: 2px;
    font-size: 13px;
    line-height: 1.5;
}

.kp-admin-audit-filters {
    padding: 18px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: var(--kp-radius-card);
    background: var(--kp-color-surface-card);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    margin-top: 2px;
}

.kp-admin-audit-filters fieldset {
    display: grid;
    gap: 10px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.kp-admin-audit-filters legend {
    margin-bottom: 10px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-admin-audit-filters__results {
    display: flex;
    gap: 8px;
    overflow-x: auto;
}

.kp-admin-audit-filters__results a {
    min-height: 34px;
    padding: 7px 14px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 999px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.kp-admin-audit-filters__results a.is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-alt);
    color: var(--kp-color-brand-primary);
}

.kp-admin-audit-filters__selects {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.kp-admin-audit-filters__selects:has(.kp-admin-audit-filters__reference) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, .8fr);
}

.kp-admin-audit-filters select {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: var(--kp-radius-control);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 13px;
}

.kp-admin-audit-filters__reference {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
}

.kp-admin-audit-filters__reference input,
.kp-admin-audit-filters__reference button {
    min-height: 42px;
    border: 1px solid var(--kp-color-border-default);
    background: var(--kp-color-surface-card);
}

.kp-admin-audit-filters__reference input {
    min-width: 0;
    padding: 9px 12px;
    border-right: 0;
    border-radius: var(--kp-radius-control) 0 0 var(--kp-radius-control);
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
}

.kp-admin-audit-filters__reference button {
    display: grid;
    place-items: center;
    border-radius: 0 var(--kp-radius-control) var(--kp-radius-control) 0;
    color: var(--kp-color-brand-primary);
    cursor: pointer;
}

.kp-admin-audit-filters__reference svg {
    width: 17px;
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-width: 2;
}

.kp-admin-audit-list {
    display: grid;
    gap: 10px;
}

.kp-admin-audit-event {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 16px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: var(--kp-radius-card);
    background: var(--kp-color-surface-card);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
}

.kp-admin-audit-event.is-negative {
    border-color: var(--kp-color-error-border);
    background: var(--kp-color-error-bg);
}

.kp-admin-audit-event__icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: var(--kp-radius-control);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-size: 16px;
}

.kp-admin-audit-event.is-negative .kp-admin-audit-event__icon {
    background: var(--kp-color-surface-card);
    color: var(--kp-color-error-fg);
}

.kp-admin-audit-event__icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.kp-admin-audit-event__heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.kp-admin-audit-event h2,
.kp-admin-audit-event p,
.kp-admin-audit-event dl,
.kp-admin-audit-event dd,
.kp-admin-audit-event dt {
    margin: 0;
}

.kp-admin-audit-event h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 900;
}

.kp-admin-audit-event__result {
    padding: 2px 10px;
    border: 1px solid var(--kp-color-neutral-border);
    border-radius: 999px;
    background: var(--kp-color-neutral-bg);
    color: var(--kp-color-neutral-fg);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 700;
}

.kp-admin-audit-event__result.is-ok {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-audit-event__result.is-denied,
.kp-admin-audit-event__result.is-failed {
    border-color: var(--kp-color-error-border);
    background: var(--kp-color-error-bg);
    color: var(--kp-color-required);
}

.kp-admin-audit-event__detail {
    margin-top: 3px !important;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-admin-audit-event__reservation {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    margin-top: 9px;
    padding: 8px 10px;
    border-left: 3px solid var(--kp-color-brand-primary);
    background: var(--kp-color-surface-soft);
}

.kp-admin-audit-event__reservation a {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-audit-event__reservation code {
    overflow: hidden;
    max-width: 220px;
    color: inherit;
    font-family: var(--kp-font-mono);
    font-size: 10.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-admin-audit-event__reservation p {
    overflow-wrap: anywhere;
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-audit-event__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 10px !important;
}

.kp-admin-audit-event__facts div {
    min-width: 0;
    padding: 7px 8px;
    border-radius: 8px;
    background: var(--kp-color-surface-soft);
}

.kp-admin-audit-event__facts dt {
    color: var(--kp-color-text-muted);
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.kp-admin-audit-event__facts dd {
    margin-top: 2px;
    color: var(--kp-color-text-main);
    font-size: 12px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.kp-admin-audit-event__refs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

.kp-admin-audit-event__refs code {
    max-width: 100%;
    padding: 2px 7px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 6px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-mono);
    font-size: 10.5px;
    overflow-wrap: anywhere;
}

.kp-admin-audit-event__refs a {
    display: inline-flex;
    color: inherit;
    line-height: normal;
    text-decoration: none;
}

.kp-admin-audit-event__refs code:first-child:not(:last-child) {
    border-color: transparent;
    background: var(--kp-color-surface-alt);
    color: var(--kp-color-brand-primary);
}

.kp-admin-audit-event__refs > a:first-child code,
.kp-admin-audit-event__refs > code:first-child {
    border-color: transparent;
    background: var(--kp-color-surface-alt);
    color: var(--kp-color-brand-primary);
}

.kp-admin-audit-event__rule {
    padding: 2px 7px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--kp-color-brand-accent-purple) 14%, var(--kp-color-surface-card));
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 10.5px;
    font-weight: 800;
}

.kp-admin-audit-event > time {
    color: var(--kp-color-text-muted);
    font-family: var(--kp-font-mono);
    font-size: 12px;
    white-space: nowrap;
}

.kp-admin-audit-empty {
    padding: 28px 18px;
    border: 1px dashed var(--kp-color-border-default);
    border-radius: var(--kp-radius-card);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
    text-align: center;
}

.kp-admin-audit-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-admin-audit-pagination a {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-weight: 700;
}

@media (max-width: 767px) {
    .kp-admin-audit {
        gap: 16px;
        margin-top: 16px;
        padding-bottom: 12px;
    }

    .kp-admin-audit-topbar__count {
        display: inline-flex;
        flex: 0 0 auto;
        padding: 6px 10px;
        border-radius: 999px;
        background: var(--kp-color-surface-soft);
        color: var(--kp-color-text-soft);
        font-family: var(--kp-font-heading);
        font-size: 11px;
        font-weight: 700;
    }

    .kp-admin-audit__back {
        display: none;
    }

    .kp-admin-audit__notice {
        padding: 12px 16px;
        border-radius: 12px;
        margin-top: 0;
    }

    .kp-admin-audit-filters {
        padding: 14px;
        border-radius: var(--kp-radius-card);
        margin-top: 0;
    }

    .kp-admin-audit-filters__selects {
        grid-template-columns: 1fr;
    }

    .kp-admin-audit-filters__selects:has(.kp-admin-audit-filters__reference) {
        grid-template-columns: 1fr;
    }

    .kp-admin-audit-event {
        grid-template-columns: 34px minmax(0, 1fr);
        padding: 14px;
        border-radius: var(--kp-radius-card);
    }

    .kp-admin-audit-list {
        margin-top: -2px;
    }

    .kp-admin-audit-event__icon {
        width: 34px;
        height: 34px;
    }

    .kp-admin-audit-event__facts {
        grid-template-columns: 1fr;
    }

    .kp-admin-audit-event > time {
        grid-column: 2;
        grid-row: 2;
        font-size: 11px;
    }
}

.kp-admin-planning {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.kp-admin-planning-topbar {
    background: #fff;
    color: var(--kp-color-text-main);
}

.kp-admin-planning-topbar__eyebrow,
.kp-admin-planning-topbar__week-pill,
.kp-admin-planning__mobile-primary-action {
    display: none;
}

.kp-admin-planning-topbar .kp-admin-shell__topbar-actions .kp-button {
    min-width: 208px;
    min-height: 40px;
    gap: 8px;
    padding: 10px 20px;
    border: 0;
    box-shadow: 0 1px 3px rgba(43, 53, 112, 0.25);
    justify-content: center;
}

.kp-admin-planning-topbar h1,
.kp-admin-planning-topbar p {
    color: inherit;
}

.kp-admin-planning__week {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.kp-admin-planning__week-nav {
    display: grid;
    grid-template-columns: 42px 42px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 18px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(47, 58, 122, 0.08);
}

.kp-admin-planning__week-heading {
    display: contents;
}

.kp-admin-planning__week-heading > a {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #eadfcb;
    border-radius: 10px;
    background: #fff;
    color: var(--kp-color-brand-primary);
    cursor: pointer;
    font-family: var(--kp-font-heading);
    font-size: 1.2rem;
    font-weight: 900;
    text-decoration: none;
}

.kp-admin-planning__week-prev {
    grid-column: 1;
    grid-row: 1;
}

.kp-admin-planning__week-next {
    grid-column: 2;
    grid-row: 1;
}

.kp-admin-planning__week-label {
    grid-column: 3;
    grid-row: 1;
}

.kp-admin-planning__date-actions {
    grid-column: 4;
    grid-row: 1;
}

.kp-admin-planning__date-actions a,
.kp-admin-planning__opening-status a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.kp-admin-planning__week-nav h3,
.kp-admin-planning__week-nav p {
    margin: 0;
}

.kp-admin-planning__week-nav h3 {
    color: var(--kp-color-text-main);
    font-size: 0.96rem;
}

.kp-admin-planning__week-nav p {
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-size: 0.78rem;
}

.kp-admin-planning__mobile-copy,
.kp-admin-planning__mobile-days,
.kp-admin-planning__mobile-detail {
    display: none;
}

.kp-admin-planning__date-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.kp-admin-planning__date-action {
    box-sizing: border-box;
    width: 106px;
    min-width: 106px;
    height: 38px;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #e4ddc8;
    border-radius: 10px;
    background: #fff;
    color: var(--kp-color-brand-primary);
    cursor: pointer;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 600;
}

.kp-admin-planning__date-action + .kp-admin-planning__date-action {
    width: 140px;
    min-width: 140px;
}

.kp-admin-planning__agenda-action {
    box-sizing: border-box;
    width: 192px;
    min-width: 192px;
    height: 38px;
    min-height: 38px;
    padding: 8px 14px;
    border: 0;
    border-radius: 10px;
    background: var(--kp-color-brand-primary);
    box-shadow: 0 1px 3px rgba(43, 53, 112, 0.25);
    color: #fff;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.kp-admin-planning__desktop-agenda {
    padding: 14px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(47, 58, 122, 0.08);
    overflow-x: auto;
    overflow-y: hidden;
}

.kp-admin-planning__desktop-agenda-track {
    display: grid;
    grid-template-columns: repeat(7, minmax(180px, 1fr));
    gap: 10px;
    min-width: 1320px;
}

.kp-admin-planning__day-card {
    position: relative;
    display: flex;
    min-height: 390px;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1.5px solid #eadfcb;
    border-radius: 12px;
    background: #fff;
    color: inherit;
    box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0);
    text-align: left;
}

.kp-admin-planning__day-select {
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: inherit;
}

.kp-admin-planning__day-select:focus-visible {
    outline: 3px solid var(--kp-color-brand-primary);
    outline-offset: -4px;
}

.kp-admin-planning__day-card .kp-admin-planning__reservation[href],
.kp-admin-planning__day-card .kp-admin-planning__reservation-more,
.kp-admin-planning__day-card .kp-admin-planning__periods [tabindex] {
    position: relative;
    z-index: 2;
}

.kp-admin-planning__day-card.is-selected {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    box-shadow: 0 6px 18px rgba(43, 53, 112, 0.1);
}

.kp-admin-planning__day-card header {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.kp-admin-planning__day-card header span,
.kp-admin-planning__day-card p,
.kp-admin-planning__periods [data-testid="admin-planning-period-chip"],
.kp-admin-planning__reservation small,
.kp-admin-planning__closed-note {
    color: var(--kp-color-text-soft);
}

.kp-admin-planning__day-card header span,
.kp-admin-planning__periods [data-testid="admin-planning-period-chip"],
.kp-admin-planning__closed-note {
    font-size: 0.75rem;
}

.kp-admin-planning__day-card header strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 1.5rem;
    font-weight: 900;
}

.kp-admin-planning__status-badge {
    display: inline-flex;
    align-self: flex-start;
    min-width: 44px;
    min-height: 18px;
    align-items: center;
    justify-content: center;
    padding: 1px 7px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-style: normal;
    font-size: 0.625rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.kp-admin-planning__day-card.is-open .kp-admin-planning__status-badge,
.kp-admin-planning__mobile-day.is-open .kp-admin-planning__status-badge {
    background: #dcfce7;
    color: #16703a;
}

.kp-admin-planning__day-card.is-partial .kp-admin-planning__status-badge,
.kp-admin-planning__mobile-day.is-partial .kp-admin-planning__status-badge {
    background: #fef3c7;
    color: #9a6700;
}

.kp-admin-planning__day-card.is-full .kp-admin-planning__status-badge,
.kp-admin-planning__mobile-day.is-full .kp-admin-planning__status-badge {
    background: #fee2e2;
    color: #b42318;
}

.kp-admin-planning__day-card.is-closed .kp-admin-planning__status-badge,
.kp-admin-planning__mobile-day.is-closed .kp-admin-planning__status-badge {
    border-color: #e2e8f0;
    background: #f1f5f9;
    color: #475569;
}

.kp-admin-planning__day-card p {
    margin: 0;
    font-size: 0.78rem;
}

.kp-admin-planning__periods {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 6px 8px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: var(--kp-color-surface-soft);
    color: var(--kp-color-text-soft);
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"].is-open {
    border-color: var(--kp-color-border-soft);
    background: #faf6ec;
    color: var(--kp-color-text-main);
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"].is-partial {
    border-color: #f4dfaf;
    background: #fff8e8;
    color: #8a5a0a;
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"].is-closed {
    border-color: #e2e8f0;
    background: #f8fafc;
    color: var(--kp-color-text-muted);
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"] > span,
.kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"] > span {
    min-width: 0;
    white-space: nowrap;
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"] small,
.kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"] small {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    opacity: 0.82;
}

.kp-admin-planning__period-info-icon {
    display: inline-flex;
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    min-width: 17px;
    min-height: 17px;
    align-items: center;
    justify-content: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-family: var(--kp-font-heading);
    font-size: 0.63rem;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
}

.kp-admin-planning__period-tooltip {
    position: absolute;
    z-index: 20;
    top: calc(100% + 7px);
    right: 0;
    display: none;
    width: min(260px, calc(100vw - 48px));
    min-width: 176px;
    max-width: calc(100vw - 48px);
    gap: 3px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 9px;
    background: #fff;
    padding: 8px 9px;
    color: var(--kp-color-text-main);
    box-shadow: 0 10px 24px rgba(43, 53, 112, 0.18);
}

.kp-admin-planning__period-tooltip small {
    white-space: normal;
    overflow-wrap: anywhere;
}

.kp-admin-planning__period-tooltip::before {
    position: absolute;
    top: -5px;
    right: 14px;
    width: 9px;
    height: 9px;
    border-top: 1px solid var(--kp-color-border-default);
    border-left: 1px solid var(--kp-color-border-default);
    background: #fff;
    content: "";
    transform: rotate(45deg);
}

.kp-admin-planning__periods [data-testid="admin-planning-period-chip"]:hover .kp-admin-planning__period-tooltip,
.kp-admin-planning__periods [data-testid="admin-planning-period-chip"]:focus .kp-admin-planning__period-tooltip,
.kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"]:hover .kp-admin-planning__period-tooltip,
.kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"]:focus .kp-admin-planning__period-tooltip {
    display: grid;
}

.kp-admin-planning__mobile-periods {
    display: none;
}

.kp-admin-planning__reservations,
.kp-admin-planning__mobile-reservations {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.kp-admin-planning__external-notice {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.kp-admin-planning__external-notice p {
    margin: 4px 0 0;
}

.kp-admin-planning__external-busy {
    border-left: 4px solid #8591bd;
    background: #f8f9fc;
    cursor: default;
}

.kp-admin-planning__external-badge {
    display: inline-flex;
    width: fit-content;
    margin-top: 6px;
    padding: 3px 8px;
    border: 1px solid #ccd4e8;
    border-radius: 999px;
    color: var(--kp-color-text-soft);
    font-size: 0.6875rem;
    font-weight: 800;
}

.kp-admin-planning__external-day-summary {
    display: grid;
    gap: 4px;
    margin-top: 16px;
    padding: 14px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
}

.kp-admin-planning__external-day-summary strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 0.82rem;
    font-weight: 900;
}

.kp-admin-planning__external-day-summary span {
    color: var(--kp-color-text-soft);
    font-size: 0.75rem;
}

@media (min-width: 861px) {
    /* An external busy interval enriches the regular weekly agenda; it does not
       switch the desktop planning into its compact/mobile layout. */
    .kp-admin-planning.has-external-busy .kp-admin-planning__week {
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-nav {
        display: grid;
        grid-template-columns: 42px 42px minmax(0, 1fr) auto;
        gap: 8px;
        align-items: center;
        padding: 18px;
        border-radius: 14px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading {
        display: contents;
        text-align: initial;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading > a {
        width: 42px;
        height: 42px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-prev {
        grid-column: 1;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-next {
        grid-column: 2;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-label {
        grid-column: 3;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-copy,
    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-agenda {
        display: block;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__date-actions {
        display: flex;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-copy,
    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-days,
    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-detail,
    .kp-admin-planning.has-external-busy .kp-admin-planning__external-day-summary {
        display: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week {
        display: grid;
        grid-template-columns: minmax(270px, 320px) minmax(0, 1fr);
        gap: 18px;
        align-items: start;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-nav {
        display: block;
        padding: 18px;
        border: 1px solid var(--kp-color-border-default);
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 10px 26px rgba(47, 58, 122, 0.08);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading {
        display: grid;
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 10px;
        align-items: center;
        text-align: center;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading > a {
        width: 36px;
        height: 36px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-prev {
        grid-column: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-label {
        grid-column: 2;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-next {
        grid-column: 3;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-copy,
    .kp-admin-planning.has-external-busy .kp-admin-planning__date-actions,
    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-agenda,
    .kp-admin-planning.has-external-busy .kp-admin-planning__opening-status {
        display: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-copy {
        display: block;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-days {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 7px;
        margin-top: 16px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day {
        display: flex;
        min-width: 0;
        min-height: 94px;
        flex-direction: column;
        align-items: center;
        gap: 3px;
        padding: 10px 4px;
        border: 1.5px solid #eadfcb;
        border-radius: 12px;
        background: #fff;
        color: inherit;
        text-align: center;
        text-decoration: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day:nth-child(n + 6) {
        display: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day.is-selected {
        border-color: var(--kp-color-brand-primary);
        background: var(--kp-color-surface-blue);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day span,
    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day small {
        color: var(--kp-color-text-soft);
        font-size: 0.68rem;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day strong {
        color: var(--kp-color-text-main);
        font-size: 1.1rem;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-detail {
        display: flex;
        min-width: 0;
        flex-direction: column;
        gap: 12px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail {
        display: flex;
        min-height: 360px;
        flex-direction: column;
        gap: 14px;
        padding: 22px;
        border: 1px solid var(--kp-color-border-default);
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 10px 26px rgba(47, 58, 122, 0.08);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header {
        position: relative;
        padding: 0 130px 14px 0;
        border-bottom: 1px solid var(--kp-color-border-soft);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail h3,
    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail p {
        margin: 0;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail h3 {
        color: var(--kp-color-text-main);
        font-family: var(--kp-font-heading);
        font-size: 1.15rem;
        font-weight: 900;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header p {
        margin-top: 5px;
        color: var(--kp-color-text-soft);
        font-size: 0.82rem;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__external-sync-badge {
        position: absolute;
        top: 0;
        right: 0;
        display: inline-flex;
        align-items: center;
        min-height: 28px;
        padding: 4px 10px;
        border-radius: 999px;
        background: #dcfce7;
        color: #16703a;
        font-size: 0.75rem;
        font-weight: 900;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-reservations {
        display: grid;
        gap: 10px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-reservations .kp-admin-planning__reservation {
        display: grid;
        grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.5fr) auto;
        gap: 8px 16px;
        align-items: center;
        padding: 14px 16px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-reservation-header {
        display: contents;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__reservation time,
    .kp-admin-planning.has-external-busy .kp-admin-planning__reservation strong,
    .kp-admin-planning.has-external-busy .kp-admin-planning__reservation small,
    .kp-admin-planning.has-external-busy .kp-admin-planning__external-badge {
        margin: 0;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__external-badge {
        grid-column: 3;
        grid-row: 1;
    }

    /*
     * With an external busy interval, the desktop layout intentionally reuses
     * the compact day detail. The empty-day icon normally receives these rules
     * in the mobile breakpoint only; without them its inline SVG falls back to
     * the browser's black default fill and intrinsic size.
     */
    .kp-admin-planning.has-external-busy .kp-admin-planning__open-empty {
        display: grid;
        min-height: 154px;
        place-content: center;
        padding: 20px;
        border-style: dashed;
        background: #faf6ec;
        text-align: center;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__open-empty-icon {
        display: grid;
        width: 34px;
        height: 34px;
        margin: 0 auto 10px;
        place-items: center;
        border-radius: 9px;
        background: #e8f3fa;
        color: var(--kp-color-brand-primary);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__open-empty-icon svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 2;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__open-empty strong {
        display: block;
        margin-bottom: 4px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__open-empty p {
        max-width: 270px;
        margin: 0;
    }
}

@media (min-width: 861px) {
    .kp-admin-planning.has-external-busy .kp-admin-planning__week {
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-nav {
        display: grid;
        grid-template-columns: 42px 42px minmax(0, 1fr) auto;
        gap: 8px;
        align-items: center;
        padding: 18px;
        border-radius: 14px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading {
        display: contents;
        text-align: initial;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-heading > a {
        width: 42px;
        height: 42px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-prev {
        grid-column: 1;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-next {
        grid-column: 2;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__week-label {
        grid-column: 3;
        grid-row: 1;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-copy,
    .kp-admin-planning.has-external-busy .kp-admin-planning__desktop-agenda {
        display: block;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__date-actions {
        display: flex;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-copy,
    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-days,
    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-detail,
    .kp-admin-planning.has-external-busy .kp-admin-planning__external-day-summary {
        display: none;
    }
}

@media (max-width: 860px) {
    .kp-admin-planning.has-external-busy .kp-admin-planning__date-actions,
    .kp-admin-planning.has-external-busy .kp-admin-planning__opening-status {
        display: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day:nth-child(n + 6) {
        display: none;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-days {
        justify-content: stretch;
        overflow: visible;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-day {
        min-width: 0;
        flex: 1 1 0;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__mobile-detail {
        gap: 12px;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail {
        gap: 12px;
        padding: 16px;
        border: 1px solid var(--kp-color-border-default);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 8px 20px rgba(47, 58, 122, 0.06);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header {
        position: relative;
        min-height: 54px;
        padding: 0 104px 10px 0;
        border-bottom: 1px solid var(--kp-color-border-soft);
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header h3,
    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header p {
        margin: 0;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__day-detail > header p {
        margin-top: 4px;
        font-size: 0.78rem;
        line-height: 1.35;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__external-sync-badge {
        position: absolute;
        top: 0;
        right: 0;
        display: inline-flex;
        min-height: 26px;
        align-items: center;
        padding: 3px 9px;
        border-radius: 999px;
        background: #dcfce7;
        color: #16703a;
        font-size: 0.7rem;
        font-weight: 900;
    }

    .kp-admin-planning.has-external-busy .kp-admin-planning__external-privacy {
        margin: 2px 0 0;
        font-size: 0.75rem;
        line-height: 1.4;
    }
}

.kp-admin-planning__reservation {
    display: block;
    padding: 8px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 9px;
    background: #fff;
}

.kp-admin-planning__reservation-statuses {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.kp-admin-planning__reservation-statuses span {
    border: 1px solid var(--kp-color-border-default);
    border-radius: 999px;
    padding: 3px 7px;
    background: var(--kp-color-surface-muted);
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 800;
}

.kp-admin-planning__reservation-action {
    display: inline-flex;
    min-height: 44px;
    width: fit-content;
    margin-top: 6px;
    align-items: center;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 999px;
    padding: 0 12px;
    background: var(--kp-color-surface-muted);
    color: var(--kp-color-brand-primary);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-planning__reservation-context,
.kp-admin-planning__reservation-statuses,
.kp-admin-planning__reservation-action {
    display: none;
}

.kp-admin-planning__reservation {
    color: inherit;
    cursor: pointer;
    text-decoration: none;
}

.kp-admin-planning__reservation-more {
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 700;
}

.kp-admin-planning__reservation-more {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: var(--kp-primary, #3b4a8c);
    font-weight: 700;
    text-decoration: none;
}

.kp-admin-planning__reservation-more:hover,
.kp-admin-planning__reservation-more:focus-visible {
    text-decoration: underline;
}

.kp-admin-planning__day-drawer {
    display: none;
}

.kp-admin-planning__day-drawer:target {
    position: fixed;
    inset: 0;
    z-index: 220;
    display: grid;
    grid-template-columns: 1fr minmax(320px, 430px);
}

.kp-admin-planning__day-drawer-backdrop {
    background: rgba(31, 38, 80, .35);
}

.kp-admin-planning__day-drawer-panel {
    background: #fff;
    height: 100%;
    overflow-y: auto;
    padding: 24px;
    box-shadow: -12px 0 36px rgba(31, 38, 80, .18);
}

.kp-admin-planning__day-drawer-panel header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.kp-admin-planning__day-drawer-panel h2,
.kp-admin-planning__day-drawer-panel p {
    margin: 0;
}

.kp-admin-planning__day-drawer-panel p {
    margin-top: 3px;
    color: var(--kp-text-muted, #5b6490);
}

.kp-admin-planning__day-drawer-close {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: var(--kp-primary, #3b4a8c);
    border: 1px solid #e4ddc8;
    border-radius: 8px;
    font-size: 24px;
    line-height: 1;
    text-decoration: none;
}

.kp-admin-planning__day-drawer-list {
    display: grid;
    gap: 10px;
}

.kp-admin-reservation-detail__customer-link {
    color: inherit;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-reservation-detail__customer-link span[aria-hidden="true"] {
    color: var(--kp-primary, #3b4a8c);
    margin-left: 2px;
}

.kp-admin-reservation-detail__customer-link:hover,
.kp-admin-reservation-detail__customer-link:focus-visible {
    color: var(--kp-primary, #3b4a8c);
    text-decoration: underline;
}

@media (max-width: 760px) {
    .kp-admin-planning__day-drawer:target {
        grid-template-columns: 1fr;
        align-items: end;
    }

    .kp-admin-planning__day-drawer-backdrop {
        grid-row: 1;
        grid-column: 1;
    }

    .kp-admin-planning__day-drawer-panel {
        grid-row: 1;
        grid-column: 1;
        align-self: end;
        height: min(78vh, 680px);
        border-radius: 12px 12px 0 0;
        padding-bottom: calc(24px + env(safe-area-inset-bottom));
    }
}

.kp-admin-planning__reservation-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px dashed #e4ddc8;
    border-radius: 8px;
    background: #faf6ec;
    padding: 10px 9px;
    color: var(--kp-color-text-soft);
}

.kp-admin-planning__reservation-empty-icon {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    place-items: center;
    border-radius: 8px;
    background: #e8f3fa;
    color: var(--kp-color-brand-primary);
}

.kp-admin-planning__reservation-empty-icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.kp-admin-planning__reservation-empty strong,
.kp-admin-planning__reservation-empty small {
    display: block;
}

.kp-admin-planning__reservation-empty strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 0.75rem;
    font-weight: 900;
    line-height: 1.2;
}

.kp-admin-planning__reservation-empty small {
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 0.6875rem;
    line-height: 1.25;
}

.kp-admin-planning__date-picker {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.kp-admin-planning__date-picker:target {
    display: flex;
}

.kp-admin-planning__date-picker-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}

.kp-admin-planning__date-picker-panel {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(420px, 100%);
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.24);
}

.kp-admin-planning__date-picker-panel h3,
.kp-admin-planning__date-picker-panel p {
    margin: 0;
}

.kp-admin-planning__date-picker-panel h3 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 1.06rem;
    font-weight: 900;
}

.kp-admin-planning__date-picker-panel p {
    color: var(--kp-color-text-soft);
    font-size: 0.82rem;
    line-height: 1.45;
}

.kp-admin-planning__date-picker-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.kp-admin-planning__reservation time {
    display: block;
    margin: 0 0 3px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 0.71875rem;
    font-weight: 900;
    white-space: nowrap;
}

.kp-admin-planning__reservation strong,
.kp-admin-planning__reservation small {
    display: block;
}

.kp-admin-planning__reservation strong {
    font-size: 0.75rem;
    line-height: 1.2;
}

.kp-admin-planning__service-icon {
    margin-right: 4px;
}

@media (min-width: 860px) {
    .kp-admin-planning__period-info-icon {
        display: none;
    }
}

.kp-admin-planning__reservation small {
    margin-top: 3px;
    font-size: 0.6875rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
    white-space: normal;
}

.kp-admin-planning__reservation .kp-admin-planning__reservation-context {
    display: none;
}

.kp-admin-planning__closed-note {
    margin-top: auto;
    padding: 10px;
    border-radius: 10px;
    background: #f8fafc;
    text-align: center;
}

.kp-admin-planning__configuration {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.75fr);
    gap: 16px;
    align-items: start;
}

.kp-admin-back-link {
    width: max-content;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 0.85rem;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-reservation-create {
    display: grid;
    gap: 18px;
}

.kp-required-marker {
    color: var(--kp-color-required);
}

.kp-admin-reservation-create__form {
    display: grid;
    gap: 18px;
    max-width: 720px;
}

.kp-admin-reservation-create__notice {
    display: flex;
    align-items: center;
    gap: 12px;
    width: min(720px, 100%);
    box-sizing: border-box;
}

.kp-alert.kp-admin-reservation-create__notice {
    margin-top: 0;
}

.kp-admin-reservation-create__mobile-notice,
.kp-admin-reservation-create__payment-cards {
    display: none;
}

.kp-admin-reservation-create__section {
    display: grid;
    gap: 12px;
}

.kp-admin-reservation-create__section h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 1rem;
    line-height: 1.2;
}

.kp-admin-reservation-create__panel {
    padding: 18px;
    border-radius: 10px;
}

.kp-admin-reservation-create__form > .kp-admin-reservation-create__panel {
    display: grid;
    gap: 16px;
    background: #fff;
    border-radius: 16px;
}

.kp-admin-reservation-create__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.kp-admin-reservation-create__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
}

.kp-admin-reservation-create__computed {
    display: block;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    padding: 10px 12px;
    background: #faf6ec;
    border-color: #efe8d6;
}

.kp-admin-reservation-create__computed strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-reservation-create__computed span {
    display: block;
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    font-weight: 400;
    text-align: left;
}

.kp-admin-reservation-create__notice {
    font-size: 13px;
}

.kp-admin-reservation-create__notice p {
    font-size: inherit;
    line-height: 1.5;
}

.kp-admin-reservation-create__payment-choice {
    display: grid;
    gap: 10px;
    margin: 0;
}

.kp-admin-reservation-create__panel .kp-admin-reservation-create__section + .kp-admin-reservation-create__section {
    padding-top: 2px;
}

.kp-admin-reservation-create__choice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: flex-start;
    min-height: 58px;
    padding: 12px 14px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: #fff;
    color: var(--kp-color-text-main);
}

.kp-admin-reservation-create__choice:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
}

.kp-admin-reservation-create__choice input {
    margin-top: 3px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-reservation-create__choice strong {
    display: block;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-reservation-create__choice small {
    display: block;
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 11.5px;
    line-height: 1.35;
}

.kp-admin-reservation-create .kp-field__label {
    display: block;
    height: 20px;
    line-height: 20px;
}

.kp-admin-reservation-create .kp-field__control {
    font-size: 14px;
}

.kp-admin-reservation-create__footer-note {
    display: none;
    max-width: 720px;
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 0.9rem;
    line-height: 1.5;
}

@media (min-width: 860px) {
    .kp-admin-reservation-create {
        gap: 0;
    }

    .kp-admin-reservation-create > .kp-admin-back-link {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-weight: 700;
    }

    .kp-admin-reservation-create__section h3 {
        display: none;
    }

    .kp-admin-reservation-create__section:nth-of-type(1) .kp-admin-reservation-create__grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-reservation-create__section:nth-of-type(2) .kp-admin-reservation-create__grid > :first-child,
    .kp-admin-reservation-create__section:nth-of-type(2) .kp-admin-reservation-create__computed {
        grid-column: 1 / -1;
    }

    .kp-admin-reservation-create .kp-field__control {
        min-height: 44px;
        height: 44px;
        box-sizing: border-box;
    }

    .kp-admin-reservation-create__form > .kp-card.kp-admin-reservation-create__panel {
        height: 652px;
        box-sizing: border-box;
        padding: 28px;
    }

    .kp-admin-reservation-create select.kp-field__control {
        min-height: 40px;
        height: 40px;
    }

    .kp-admin-reservation-create input[type="date"].kp-field__control,
    .kp-admin-reservation-create input[type="time"].kp-field__control {
        min-height: 45px;
        height: 45px;
    }

    .kp-admin-reservation-create__computed {
        min-height: 60px;
        padding: 10px 12px;
        box-sizing: border-box;
    }

    .kp-admin-reservation-create__actions {
        margin-top: 0;
    }

    .kp-admin-reservation-create__actions .kp-button {
        min-height: 41px;
        padding: 10px 20px;
        font-size: 14px;
    }

    .kp-admin-reservation-create__notice {
        height: 46px;
        min-height: 46px;
        overflow: hidden;
    }
}

@media (max-width: 859px) {
    .kp-admin-reservation-create,
    .kp-admin-dashboard,
    .kp-admin-planning,
    .kp-admin-payment-review-page {
        padding-bottom: calc(148px + env(safe-area-inset-bottom));
    }

    .kp-admin-reservation-create {
        display: block;
        padding-bottom: calc(88px + env(safe-area-inset-bottom));
    }

    .kp-admin-reservation-create__form {
        margin-top: 0;
    }

    .kp-admin-reservation-create__mobile-notice {
        display: flex;
        order: 0;
        gap: 12px;
        align-items: flex-start;
        margin-top: 16px;
        margin-bottom: 16px;
        padding: 12px 16px;
        font-size: 16px;
    }

    .kp-admin-reservation-create__mobile-notice > span {
        flex: 0 0 auto;
        font-weight: 900;
        line-height: 1.4;
    }

    .kp-admin-reservation-create__mobile-notice strong {
        display: block;
        margin-bottom: 3px;
        font-family: var(--kp-font-heading);
        font-size: 13px;
    }

    .kp-admin-reservation-create__mobile-notice p {
        margin: 0;
        font-size: 13px;
        line-height: 1.45;
    }

    .kp-admin-reservation-create__form > .kp-admin-reservation-create__panel {
        display: block;
        padding: 0 !important;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section {
        display: block;
        margin: 0 0 20px;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__grid,
    .kp-admin-reservation-create__panel .kp-admin-reservation-create__payment-cards {
        padding: 14px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 1px 3px rgba(43, 53, 112, .05);
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(1) .kp-admin-reservation-create__grid {
        display: block;
        height: 194px;
        box-sizing: border-box;
        padding: 14px;
        transform: none;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(1) {
        margin-bottom: 20px;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(1) .kp-admin-reservation-create__grid > :first-child {
        margin-top: 0;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(1) .kp-admin-reservation-create__grid > :nth-child(2) {
        margin-top: 16px;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(2) {
        margin-bottom: 20px;
        padding-top: 0;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(2) .kp-admin-reservation-create__grid {
        display: block;
        height: 356px;
        box-sizing: border-box;
        transform: none;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(2) .kp-admin-reservation-create__grid > :first-child {
        margin-top: 0;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(2) .kp-admin-reservation-create__grid > :not(:first-child) {
        margin-top: 16px;
    }

    .kp-admin-reservation-create select.kp-field__control {
        min-height: 40px;
        height: 40px;
        box-sizing: border-box;
    }

    .kp-admin-reservation-create input[type="date"].kp-field__control,
    .kp-admin-reservation-create input[type="time"].kp-field__control {
        min-height: 45px;
        height: 45px;
        box-sizing: border-box;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section h3 {
        display: block;
        margin-bottom: 10px;
        font-size: 16px;
        font-weight: 800;
        line-height: normal;
    }

    .kp-admin-reservation-create__panel .kp-admin-reservation-create__section:nth-of-type(3) {
        margin-top: 0;
        margin-bottom: 20px;
        padding-top: 0;
    }

    .kp-admin-reservation-create__form.is-payment-mode-enhanced .kp-admin-reservation-create__payment-select {
        display: none !important;
    }

    .kp-admin-reservation-create__form.is-payment-mode-enhanced .kp-admin-reservation-create__payment-cards {
        display: block;
        height: 177px;
        box-sizing: border-box;
        margin: 0;
    }

    .kp-admin-reservation-create__choice {
        padding: 12px;
    }

    .kp-admin-reservation-create__choice + .kp-admin-reservation-create__choice {
        margin-top: 10px;
    }

    .kp-admin-reservation-create__payment-cards legend {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .kp-admin-reservation-create__notice {
        display: none;
    }

    .kp-admin-reservation-create__footer-note {
        display: block;
        order: 1;
        margin: 0 0 2px;
        font-size: 12.5px;
        line-height: 1.45;
    }

    .kp-admin-reservation-create__actions {
        order: 2;
        flex-direction: column;
        gap: 8px;
        margin-top: 9px;
    }

    .kp-admin-reservation-create__actions .kp-button {
        width: 100%;
        min-height: 41px;
        padding: 10px 20px;
        font-size: 14px;
    }

    .kp-admin-reservation-create__actions .kp-admin-reservation-create__cancel {
        display: none;
    }
}

.kp-admin-planning__config-panel,
.kp-admin-planning__capacity {
    padding: 18px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 14px;
    background: #fff;
}

.kp-admin-planning__section-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.kp-admin-planning__section-title h3 {
    margin: 0;
}

.kp-admin-planning__section-title span,
.kp-admin-planning__muted {
    color: var(--kp-color-text-soft);
    font-size: 0.9rem;
}

.kp-admin-planning__config-panel,
.kp-admin-planning__categories {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.kp-admin-planning__form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.kp-admin-planning__categories p {
    margin: 0;
    font-weight: 800;
}

.kp-admin-planning__categories label {
    display: flex;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 12px;
    background: var(--kp-color-surface-muted);
}

.kp-admin-planning__categories input {
    margin-top: 3px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-planning__categories span,
.kp-admin-planning__categories small {
    display: block;
}

.kp-admin-planning__categories small {
    margin-top: 3px;
    color: var(--kp-color-text-soft);
}

.kp-admin-planning__snapshot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.kp-admin-planning__snapshot-grid article {
    padding: 13px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 12px;
    background: #fff;
}

.kp-admin-planning__snapshot-grid article > span {
    display: block;
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-size: 0.84rem;
}

.kp-admin-planning__snapshot-grid dl {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin: 12px 0 0;
}

.kp-admin-planning__snapshot-grid dl div {
    padding: 7px 5px;
    border-radius: 9px;
    background: var(--kp-color-surface-muted);
    text-align: center;
}

.kp-admin-planning__snapshot-grid dt,
.kp-admin-planning__snapshot-grid dd {
    margin: 0;
}

.kp-admin-planning__snapshot-grid dt {
    color: var(--kp-color-text-soft);
    font-size: 0.72rem;
}

.kp-admin-planning__snapshot-grid dd {
    font-weight: 900;
}

.kp-availability-refusal {
    max-width: 720px;
}

@media (max-width: 859px) {
    .kp-admin-shell.kp-admin-shell .kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto {
        display: none;
    }

    .kp-admin-planning {
        display: block;
        padding-bottom: 88px;
    }

    .kp-admin-planning-topbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        padding: 10px 16px;
        color: #000;
    }

    .kp-admin-planning-topbar__title {
        min-width: 0;
    }

    .kp-admin-planning-topbar__eyebrow,
    .kp-admin-planning-topbar__week-pill,
    .kp-admin-planning__mobile-primary-action {
        display: flex;
    }

    .kp-admin-planning-topbar__eyebrow {
        display: block;
        margin-bottom: 2px;
        color: var(--kp-color-brand-primary);
        font-family: var(--kp-font-heading);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .kp-admin-planning-topbar h1 {
        min-width: 0;
        color: var(--kp-color-brand-primary-dark);
        font-size: 18px;
        line-height: 1.15;
        overflow-wrap: normal;
        word-break: keep-all;
    }

    .kp-admin-planning-topbar p,
    .kp-admin-planning-topbar .kp-admin-shell__topbar-actions {
        display: none;
    }

    .kp-admin-planning-topbar__week-pill {
        display: block;
        width: 132px;
        max-width: 132px;
        min-height: 0;
        box-sizing: border-box;
        flex-shrink: 0;
        padding: 5px 9px;
        border: 1px solid #efe8d6;
        border-radius: 999px;
        background: #faf6ec;
        color: #5b6490;
        font-family: var(--kp-font-heading);
        font-size: 12px;
        font-weight: 800;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .kp-admin-planning__mobile-primary-action {
        display: block;
        width: 100%;
        margin-bottom: 0;
    }

    .kp-admin-planning__mobile-primary-action .kp-button {
        display: inline-flex;
        width: 100%;
        min-height: 41px;
        gap: 8px;
        padding: 10px 20px;
        justify-content: center;
        border: 0;
        border-radius: 10px;
        box-shadow: 0 1px 3px rgba(43, 53, 112, 0.25);
        font-size: 14px;
        line-height: normal;
        margin-bottom: 12px;
        white-space: nowrap;
    }

    .kp-admin-planning__desktop-copy,
    .kp-admin-planning__desktop-agenda {
        display: none;
    }

    .kp-admin-planning__week-nav {
        display: block;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        text-align: center;
        color: #000;
    }

    .kp-admin-planning__week-heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 12px;
    }

    .kp-admin-planning__week-heading > a {
        width: 36px;
        height: 36px;
        border-color: #e4ddc8;
        font-size: 18px;
        font-weight: 800;
    }

    .kp-admin-planning__week-prev {
        order: 1;
    }

    .kp-admin-planning__week-label {
        order: 2;
        min-width: 0;
        flex: 1 1 0;
    }

    .kp-admin-planning__week-label h3 {
        margin-bottom: 2px;
    }

    .kp-admin-planning__week-next {
        order: 3;
    }

    .kp-admin-planning__date-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 0;
        margin-bottom: 14px;
        width: 100%;
    }

    .kp-admin-planning__date-actions .kp-admin-planning__agenda-action {
        display: none;
    }

    .kp-admin-planning__date-actions .kp-admin-planning__date-action {
        display: block;
        min-width: 0;
        width: 100%;
        height: 40px;
        min-height: 40px;
        padding: 10px 12px;
        font-size: 12px;
        font-weight: 800;
        white-space: normal;
    }

    .kp-admin-planning__date-action + .kp-admin-planning__date-action {
        min-width: 0;
        width: 100%;
    }

    .kp-admin-planning__mobile-copy {
        display: block;
    }

    .kp-admin-planning__mobile-days {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x proximity;
    }

    .kp-admin-planning__mobile-day {
        display: flex;
        min-width: 72px;
        min-height: 108px;
        flex-direction: column;
        align-items: center;
        gap: 3px;
        padding: 13px 8px 10px;
        border: 1.5px solid #eadfcb;
        border-radius: 14px;
        background: #fff;
        color: inherit;
        text-align: center;
        text-decoration: none;
        scroll-snap-align: start;
    }

    .kp-admin-planning__mobile-day.is-selected {
        border-color: var(--kp-color-brand-primary);
        border-width: 1.5px;
        background: #c9ddef;
    }

    .kp-admin-planning__mobile-day span,
    .kp-admin-planning__mobile-day small {
        color: var(--kp-color-text-soft);
        font-size: 0.7rem;
    }

    .kp-admin-planning__mobile-day strong {
        color: var(--kp-color-text-main);
        font-size: 1.15rem;
    }

    .kp-admin-planning__mobile-detail {
        display: flex;
        flex-direction: column;
        gap: 22px;
    }

    .kp-admin-planning__opening-status {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        align-items: center;
        padding: 14px 12px;
        border: 1px solid var(--kp-color-border-default);
        border-radius: 12px;
        background: #fff;
    }

    .kp-admin-planning__opening-status p {
        margin: 0;
        color: var(--kp-color-text-soft);
        font-size: 0.82rem;
    }

    .kp-admin-planning__opening-status a {
        min-height: 36px;
        flex: 0 0 auto;
        padding: 0 12px;
        border: 1px solid #b9d8ed;
        border-radius: 10px;
        background: #c9ddef;
        color: var(--kp-color-brand-primary);
        font-family: var(--kp-font-heading);
        font-size: 13px;
        font-weight: 900;
    }

    .kp-admin-planning__day-detail {
        display: flex;
        flex-direction: column;
        gap: 9px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .kp-admin-planning__day-detail > header {
        margin-bottom: 0;
        padding: 6px 0 0;
        background: transparent;
    }

    .kp-admin-planning__day-detail h3 {
        margin: 0 0 3px;
        color: var(--kp-color-text-main);
        font-size: 17px;
        line-height: 1.15;
    }

    .kp-admin-planning__day-detail > header span {
        color: var(--kp-color-text-soft);
        font-size: 0.82rem;
    }

    .kp-admin-planning__mobile-periods {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"] {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 6px;
        padding: 8px 9px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 8px;
        background: var(--kp-color-surface-soft);
        color: var(--kp-color-text-soft);
        font-size: 0.75rem;
        font-weight: 800;
        line-height: 1.25;
    }

    .kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"].is-open {
        border-color: #cdeed8;
        background: #effbf3;
        color: #16703a;
    }

    .kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"].is-partial {
        border-color: #f4dfaf;
        background: #fff8e8;
        color: #8a5a0a;
    }

    .kp-admin-planning__mobile-periods [data-testid="admin-planning-period-chip"].is-closed {
        border-color: #e2e8f0;
        background: #f8fafc;
        color: var(--kp-color-text-muted);
    }

    .kp-admin-planning__mobile-periods .kp-admin-planning__period-tooltip {
        right: 0;
        min-width: 0;
        transform: none;
    }

    .kp-admin-planning__mobile-periods .kp-admin-planning__period-tooltip::before {
        right: 24px;
    }

    .kp-admin-planning__mobile-reservations {
        gap: 10px;
    }

    .kp-admin-planning__mobile-reservations .kp-admin-planning__reservation {
        min-height: 62px;
        padding: 10px 11px;
        border-color: #e4ddc8;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 1px 2px rgba(43, 53, 112, 0.04);
    }

    .kp-admin-planning__mobile-reservation-header {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: 6px;
    }

    .kp-admin-planning__mobile-reservations .kp-admin-planning__reservation time {
        display: block;
        margin: 0;
        color: var(--kp-color-brand-primary);
        font-family: var(--kp-font-heading);
        font-size: 12.5px;
        font-weight: 800;
        line-height: 1.2;
    }

    .kp-admin-planning__mobile-reservations .kp-admin-planning__reservation strong {
        display: block;
        min-width: 0;
        margin: 0;
        color: var(--kp-color-text-main);
        font-family: var(--kp-font-heading);
        font-size: 14px;
        font-weight: 700;
        line-height: 1.2;
    }

    .kp-admin-planning__mobile-reservation-chevron {
        color: var(--kp-color-text-main);
        font-family: var(--kp-font-heading);
        font-size: 20px;
        font-weight: 800;
        line-height: 1;
    }

    .kp-admin-planning__mobile-reservation-context {
        display: block;
        margin: 3px 0 0;
        color: var(--kp-color-text-soft);
        font-size: 12.5px;
        line-height: 1.25;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .kp-admin-planning__mobile-reservation-statuses {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        margin-top: 6px;
    }

    .kp-admin-planning__mobile-reservation-statuses > span {
        border: 1px solid #bbf7d0;
        border-radius: 999px;
        padding: 2px 8px;
        background: #dcfce7;
        color: #16803d;
        font-size: 10px;
        font-weight: 700;
        line-height: 1.15;
    }

    .kp-admin-planning__mobile-reservation-statuses > span.is-pending {
        border-color: #fde68a;
        background: #fef3c7;
        color: #a16207;
    }

    .kp-admin-planning__closed-empty {
        min-height: 236px;
        box-sizing: border-box;
        padding: 20px 22px;
        padding-top: 28px;
        border: 1px solid var(--kp-color-border-default);
        border-radius: 12px;
        background: #fff;
        text-align: center;
    }

    .kp-admin-planning__closed-empty-icon {
        display: block;
        margin: 0 0 14px;
        font-size: 2.125rem;
        line-height: 1;
    }

    .kp-admin-planning__closed-empty strong {
        display: block;
        margin-bottom: 5px;
        color: var(--kp-color-text-main);
        font-family: var(--kp-font-heading);
        font-size: 0.9375rem;
        font-weight: 900;
    }

    .kp-admin-planning__closed-empty p {
        max-width: 320px;
        margin: 0 auto 16px;
        color: var(--kp-color-text-soft);
        font-size: 0.8125rem;
        line-height: 1.45;
    }

    .kp-admin-planning__open-empty {
        min-height: 154px;
        padding: 20px;
        border-style: dashed;
        background: #faf6ec;
    }

    .kp-admin-planning__open-empty-icon {
        display: grid;
        width: 34px;
        height: 34px;
        margin: 0 auto 10px;
        place-items: center;
        border-radius: 9px;
        background: #e8f3fa;
        color: var(--kp-color-brand-primary);
    }

    .kp-admin-planning__open-empty-icon svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 2;
    }

    .kp-admin-planning__open-empty strong {
        margin-bottom: 4px;
    }

    .kp-admin-planning__open-empty p {
        max-width: 270px;
        margin-bottom: 0;
    }

.kp-admin-planning__configuration,
.kp-admin-planning__form-grid,
.kp-admin-reservation-create__grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-reservation-create__form,
    .kp-admin-reservation-create__notice {
        max-width: none;
    }

    .kp-admin-reservation-create__panel {
        padding: 14px;
    }

    .kp-admin-reservation-create__form > .kp-admin-reservation-create__panel {
        padding: 14px;
        border-radius: 16px;
    }

    .kp-admin-reservation-create__actions {
        flex-direction: column-reverse;
    }

    .kp-admin-reservation-create__actions .kp-button {
        width: 100%;
    }

    .kp-admin-planning__snapshot-grid dl {
        grid-template-columns: repeat(2, 1fr);
    }
}

a {
    color: var(--kp-color-brand-primary);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: var(--kp-focus-ring);
    outline-offset: var(--kp-focus-offset);
}

.kp-mobile-copy {
    display: none;
}

.kp-home__title {
    margin: 0 0 20px;
    font-family: var(--kp-font-heading);
    font-weight: 800;
    font-size: 58px;
    line-height: 1.04;
    overflow-wrap: anywhere;
}

.kp-public-hero__subtitle {
    max-width: 24ch;
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 34px;
    font-weight: 700;
    line-height: 1.16;
}

.kp-home__meta {
    color: var(--kp-color-text-soft);
}

.kp-home__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
    margin: 20px 0;
    list-style: none;
}

.kp-home__tag {
    padding: 9px 18px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--kp-color-text-main) 8%, transparent);
    color: var(--kp-color-brand-primary);
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}

.kp-public-shell {
    min-height: 100vh;
    background: var(--kp-color-surface-page);
    color: var(--kp-color-text-main);
}

.kp-public-shell > .kp-public-shell__header {
    background: var(--kp-color-surface-page);
}

.kp-public-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    gap: 56px;
    width: 100%;
    margin: 0;
    padding: 72px max(32px, calc((100vw - 1200px) / 2 + 32px)) 64px;
    align-items: center;
    background: var(--kp-color-surface-alt);
}

.kp-public-hero__content {
    display: grid;
    gap: 0;
    min-width: 0;
}

.kp-public-hero__lead {
    max-width: 62ch;
    margin: 24px 0 30px;
    font-size: 18px;
    line-height: 1.65;
}

.kp-public-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 10px;
}

.kp-public-hero__image {
    display: block;
    width: 100%;
    height: clamp(480px, 48vw, 600px);
    border-radius: 18px;
    box-shadow: 0 18px 48px color-mix(in srgb, var(--kp-color-text-main) 16%, transparent);
    object-fit: cover;
    object-position: center;
}

.kp-image-placeholder {
    display: grid;
    place-items: center;
    border: 1.5px dashed color-mix(in srgb, var(--kp-color-brand-primary) 28%, transparent);
    background:
        repeating-linear-gradient(
            -45deg,
            color-mix(in srgb, var(--kp-color-surface-blue) 84%, transparent),
            color-mix(in srgb, var(--kp-color-surface-blue) 84%, transparent) 10px,
            var(--kp-color-surface-card) 10px,
            var(--kp-color-surface-card) 20px
        );
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
}

.kp-image-placeholder--portrait {
    aspect-ratio: 4 / 5;
    min-height: 440px;
}

.kp-public-hero__mobile-card,
.kp-public-hero__mobile-trust {
    display: none;
}

.kp-public-kicker,
.kp-section-label {
    margin: 0 0 8px;
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--kp-color-brand-primary);
}

.kp-public-kicker {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border-radius: 8px;
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-brand-primary-dark);
    letter-spacing: 0;
    margin-bottom: 0;
    text-transform: none;
}

.kp-public-kickers {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

.kp-public-kicker span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--kp-color-success-fg);
}

.kp-public-hero__media {
    position: relative;
}

.kp-public-hero__note {
    position: absolute;
    display: grid;
    gap: 6px;
    width: min(260px, 70%);
    padding: 16px;
    border-radius: 14px;
    box-shadow: 0 12px 34px color-mix(in srgb, var(--kp-color-text-main) 14%, transparent);
    font-size: 12px;
    line-height: 1.45;
}

.kp-public-hero__note strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-public-hero__note--left {
    bottom: 28px;
    left: -24px;
    border: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-card);
}

.kp-public-hero__note--right {
    top: 32px;
    right: -18px;
    background: var(--kp-color-brand-primary-dark);
    color: var(--kp-color-text-inverse);
}

.kp-public-hero__note--right span {
    color: color-mix(in srgb, var(--kp-color-text-inverse) 76%, transparent);
}

.kp-trust-strip {
    border-top: 1px solid var(--kp-color-border-soft);
    border-bottom: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-alt);
}

.kp-trust-strip__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    width: min(100%, 1200px);
    margin: 0 auto;
    padding: 22px 32px;
}

.kp-landing-section {
    display: grid;
    gap: 18px;
}

.kp-shell-section.kp-landing-section {
    padding: 78px 32px 76px;
}

.kp-landing-section > .kp-section-label,
.kp-landing-section > h2,
.kp-landing-section > .kp-landing-section__lead {
    text-align: center;
}

.kp-landing-section > .kp-section-label {
    margin-bottom: 0;
    font-size: 14px;
    letter-spacing: 1.35px;
}

.kp-shell-section.kp-landing-section > h2 {
    margin: 0;
}

.kp-landing-section > .kp-landing-section__lead {
    margin-top: 0;
    margin-bottom: 0;
}

.kp-landing-section h2 {
    font-weight: 800;
    font-size: 44px;
    line-height: 1.08;
}

.kp-landing-band .kp-landing-section h2,
#delphine.kp-landing-section h2 {
    font-size: 38px;
    line-height: 1.12;
}

#temoignages .kp-landing-section h2 {
    font-size: 36px;
    line-height: 1.15;
}

.kp-landing-section__lead {
    max-width: 72ch;
    margin-right: auto;
    margin-left: auto;
    color: var(--kp-color-text-soft);
    font-size: 18px;
    line-height: 1.45;
}

.kp-landing-section__split-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 10px;
}

.kp-landing-section__split-heading .kp-landing-section__lead {
    max-width: 410px;
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    text-align: left;
}

.kp-landing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.kp-landing-grid--services {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 24px;
}

.kp-landing-grid--services-with-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kp-landing-grid--testimonials {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.kp-landing-service-tabs__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    width: min(100%, 560px);
    margin: 24px auto 8px;
    padding: 6px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: var(--kp-color-surface-soft);
}

.kp-landing-service-tabs__list[hidden] {
    display: none;
}

.kp-landing-service-tabs__tab {
    min-width: 0;
    min-height: 44px;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 10px 18px;
    background: transparent;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.25;
    cursor: pointer;
}

.kp-landing-service-tabs__tab[aria-selected="true"] {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
}

.kp-landing-service-tabs.is-enhanced [data-public-service-panel][hidden] {
    display: none;
}

.kp-landing-service-groups {
    display: grid;
    gap: 48px;
    margin-top: 16px;
}

.kp-landing-service-group {
    display: grid;
    gap: 24px;
}

.kp-landing-service-group__layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
    gap: 32px;
    align-items: stretch;
}

.kp-landing-service-group__media {
    min-height: 440px;
    min-width: 0;
    border-radius: 18px;
    background: var(--kp-color-surface-alt);
    overflow: hidden;
}

.kp-landing-service-group__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kp-landing-service-group[data-default="true"] .kp-landing-service-group__media img {
    object-position: 72% 54%;
}

.kp-landing-service-group[data-default="false"] .kp-landing-service-group__media img {
    object-position: 52% 62%;
}

.kp-landing-service-group__content {
    display: grid;
    min-width: 0;
    gap: 24px;
    align-content: start;
}

.kp-landing-service-group__heading {
    display: grid;
    gap: 8px;
}

.kp-landing-service-group__heading h3,
.kp-landing-service-group__heading p {
    margin: 0;
}

.kp-landing-service-group__heading h3 {
    color: var(--kp-color-brand-primary-dark);
    font-size: 30px;
    line-height: 1.15;
}

.kp-landing-service-group__heading p {
    max-width: 68ch;
    color: var(--kp-color-text-soft);
    font-size: 16px;
    line-height: 1.55;
}

.kp-landing-service-group__species {
    margin-top: 4px;
}

.kp-landing-service-group__purpose {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
    justify-items: center;
    width: 100%;
    margin: 16px 0 0;
    padding: 0;
    justify-self: stretch;
    text-align: center;
}

.kp-landing-service-group__purpose h4,
.kp-landing-service-group__purpose p {
    margin: 0;
}

.kp-landing-service-group__purpose h4 {
    font-family: var(--kp-font-heading);
    font-size: 22px;
    line-height: 1.15;
}

.kp-landing-service-group__purpose p {
    max-width: none;
    color: var(--kp-color-text-soft);
    font-size: 15px;
    line-height: 1.55;
}

.kp-landing-service-group__purpose-copy {
    display: grid;
    gap: 10px;
    justify-items: center;
    width: 100%;
    max-width: 72ch;
}

.kp-landing-service-group__purpose .kp-landing-service-group__purpose-conclusion {
    margin-top: 2px;
    color: var(--kp-color-brand-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 700;
}

.kp-landing-card {
    min-height: 100%;
    padding: 24px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 18px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 14px 30px color-mix(in srgb, var(--kp-color-text-main) 8%, transparent);
    overflow-wrap: anywhere;
}

.kp-landing-card p,
.kp-landing-card blockquote {
    margin: 0;
    line-height: 1.55;
}

.kp-landing-card figcaption {
    margin-top: 12px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 700;
}

.kp-landing-card__action {
    margin: 16px 0 0;
}

.kp-landing-service-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 16px;
}

.kp-landing-service-card--compact {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.55fr);
    grid-template-areas:
        "heading tariffs"
        "species tariffs"
        "duration tariffs";
    align-items: start;
}

.kp-landing-service-card--compact .kp-landing-service-card__heading {
    grid-area: heading;
}

.kp-landing-service-card--compact .kp-landing-service-card__species {
    grid-area: species;
}

.kp-landing-service-card--compact .kp-landing-service-card__duration {
    grid-area: duration;
}

.kp-landing-service-card--compact .kp-landing-service-card__tariffs {
    grid-area: tariffs;
    width: 100%;
    margin: 0;
}

.kp-landing-service-card--compact.kp-landing-service-card--without-species {
    grid-template-areas:
        "heading tariffs"
        "duration tariffs";
}

.kp-landing-service-card__heading {
    display: grid;
    gap: 8px;
}

.kp-landing-service-card h4 {
    margin: 0;
    color: var(--kp-color-brand-primary-dark);
    font-size: 21px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-landing-service-card__heading p {
    color: var(--kp-color-text-soft);
    font-size: 16px;
    line-height: 1.55;
}

.kp-landing-service-card__species {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kp-landing-service-card__species li {
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary-dark);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.kp-landing-service-card__duration {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--kp-color-text-main);
    font-size: 16px;
    font-weight: 800;
}

.kp-landing-service-card__duration span {
    color: var(--kp-color-text-soft);
    font-weight: 700;
}

.kp-landing-service-card__tariffs,
.kp-landing-service-conditions__list {
    display: grid;
    gap: 0;
    margin: auto 0 0;
}

.kp-landing-service-card__tariffs > div,
.kp-landing-service-conditions__list > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: baseline;
    padding: 12px 0;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-landing-service-card__tariffs dt,
.kp-landing-service-card__tariffs dd,
.kp-landing-service-conditions__list dt,
.kp-landing-service-conditions__list dd {
    min-width: 0;
    margin: 0;
}

.kp-landing-service-card__tariffs dt,
.kp-landing-service-conditions__list dt {
    color: var(--kp-color-text-soft);
    font-size: 15px;
    line-height: 1.4;
}

.kp-landing-service-card__tariffs dd,
.kp-landing-service-conditions__list dd {
    color: var(--kp-color-brand-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
    text-align: right;
    overflow-wrap: anywhere;
}

.kp-landing-service-conditions {
    display: grid;
    gap: 16px;
    margin-top: 8px;
    padding: 24px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 18px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 12px 28px color-mix(in srgb, var(--kp-color-text-main) 5%, transparent);
}

.kp-landing-service-conditions > h3,
.kp-landing-service-conditions__travel h4 {
    margin: 0;
    color: var(--kp-color-brand-primary-dark);
}

.kp-landing-service-conditions > h3 {
    font-size: 26px;
    line-height: 1.15;
}

.kp-landing-service-conditions__layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.kp-landing-services-cta {
    display: flex;
    justify-content: center;
    margin-top: 24px;
}

.kp-landing-service-conditions__travel {
    display: grid;
    align-content: start;
    gap: 12px;
}

.kp-landing-service-conditions__travel h4 {
    font-size: 18px;
    line-height: 1.3;
}

.kp-landing-band {
    background: var(--kp-color-surface-alt);
    border-top: 1px solid var(--kp-color-border-soft);
    border-bottom: 1px solid var(--kp-color-border-soft);
}

.kp-landing-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 38px;
    padding: 0;
    list-style: none;
}

.kp-landing-step {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    overflow-wrap: anywhere;
}

.kp-landing-step__number {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--kp-color-text-main) 8%, transparent);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-landing-step h3,
.kp-landing-operator h3 {
    margin: 0 0 8px;
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-landing-step p,
.kp-landing-operator p {
    margin: 0;
}

.kp-landing-step h3 {
    font-size: 17px;
}

.kp-landing-step p {
    color: var(--kp-color-text-soft);
    font-size: 14px;
    line-height: 1.55;
}

.kp-landing-operator p {
    font-size: 16px;
    line-height: 1.7;
}

.kp-landing-operator {
    display: grid;
    grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.18fr);
    gap: 58px;
    align-items: start;
    overflow-wrap: anywhere;
}

.kp-landing-operator__story {
    display: grid;
    gap: 16px;
    align-self: center;
    align-content: start;
}

.kp-landing-operator__highlights {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 8px 0 0;
    padding: 16px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 16px;
    background: var(--kp-color-surface-card);
    list-style: none;
}

.kp-landing-operator__highlights li {
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--kp-color-text-main);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.kp-operator-checks {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 24px 0 0;
    list-style: none;
}

.kp-operator-checks li {
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 800;
}

.kp-operator-checks li::before {
    content: "✓";
    display: grid;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    place-items: center;
    border-radius: 999px;
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
    font-family: var(--kp-font-heading);
    font-size: 12px;
}

.kp-testimonial-card__stars {
    margin-bottom: 14px;
    color: var(--kp-color-brand-accent-yellow);
    letter-spacing: 2px;
}

.kp-testimonial-card blockquote {
    font-size: 15px;
    line-height: 1.6;
}

.kp-testimonial-card figcaption strong {
    font-size: 14px;
    font-weight: 800;
}

.kp-testimonial-card small {
    display: block;
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 400;
}

.kp-testimonial-card figcaption {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 14px;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-testimonial-card figcaption span {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 999px;
    background: var(--kp-color-brand-accent-pink);
    color: var(--kp-color-brand-primary-dark);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-landing-contact {
    position: relative;
    z-index: 1;
    padding: 0 32px 78px;
    margin-top: -28px;
    background: var(--kp-color-surface-page);
    overflow-wrap: anywhere;
}

/* When the testimonials rail is present, it needs a quiet breathing space
   before the contrasting access panel. Without that section, the compact
   overlap above remains the intended transition from "À propos". */
.kp-public-testimonials + .kp-landing-contact {
    padding-top: 56px;
    margin-top: 0;
}

.kp-anchor-alias {
    position: absolute;
    top: calc(-1 * 88px);
}

.kp-landing-contact__inner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 56px;
    align-items: start;
    width: min(100%, 1200px);
    margin: 0 auto;
    padding: 46px 48px;
    border-radius: 24px;
    background: var(--kp-color-brand-primary-dark);
    box-shadow: 0 18px 44px color-mix(in srgb, var(--kp-color-text-main) 16%, transparent);
    color: var(--kp-color-text-inverse);
}

.kp-landing-contact .kp-section-label,
.kp-landing-contact h2 {
    color: var(--kp-color-text-inverse);
}

.kp-landing-contact h2 {
    margin: 0 0 12px;
    font-family: var(--kp-font-heading);
    font-size: 34px;
    font-weight: 800;
    line-height: 1.12;
}

.kp-landing-contact__copy p:not(.kp-section-label) {
    color: color-mix(in srgb, var(--kp-color-text-inverse) 78%, transparent);
    line-height: 1.6;
}

.kp-contact-list {
    display: grid;
    gap: 12px;
    margin-top: 22px;
}

.kp-contact-list a,
.kp-contact-list > span {
    display: grid;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--kp-color-text-inverse) 12%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--kp-color-text-inverse) 8%, transparent);
    color: var(--kp-color-text-inverse);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.kp-contact-list span span,
.kp-contact-list a span {
    color: color-mix(in srgb, var(--kp-color-text-inverse) 56%, transparent);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.kp-landing-contact__form {
    padding: 24px;
    border-radius: 18px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 18px 42px color-mix(in srgb, var(--kp-color-text-main) 18%, transparent);
    color: var(--kp-color-text-main);
}

.kp-landing-contact__form .kp-error-summary,
.kp-landing-contact__form [data-testid="access-request-status"] {
    margin-bottom: 16px;
}

.kp-access-request-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 12px;
}

.kp-access-request-form .kp-field__label,
.kp-access-request-form .kp-checkbox {
    font-family: var(--kp-font-body);
    font-size: 16px;
    font-weight: 400;
}

.kp-access-request-form .kp-field__control {
    font-size: 14px;
}

.kp-access-request-form .kp-field__hint,
.kp-access-request-form .kp-field__error {
    font-size: 12px;
}

.kp-access-request-form .kp-field__error {
    margin-bottom: 16px;
}

.kp-access-request-form__wide {
    grid-column: 1 / -1;
}

.kp-access-request-form__submit {
    width: 100%;
    border-radius: 12px;
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-brand-primary-dark);
    font-weight: 800;
    box-shadow: none;
}

.kp-landing-contact .kp-access-request-form--compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 12px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-field {
    gap: 6px;
    margin-bottom: 12px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-field:has(.kp-field__error) {
    margin-bottom: 12px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-field__error {
    margin: 0 0 16px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-field__label {
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 800;
}

.kp-landing-contact .kp-access-request-form--compact .kp-field__control {
    min-height: 43px;
    padding: 11px 12px;
    border-radius: 10px;
    font-size: 14px;
}

.kp-landing-contact .kp-access-request-form--compact textarea.kp-field__control {
    min-height: 120px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-checkbox {
    min-height: 24px;
    margin: -2px 0 14px;
    align-items: center;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 14px;
    line-height: 1.35;
}

.kp-landing-contact .kp-access-request-form--compact .kp-checkbox input {
    width: 14px;
    height: 14px;
    margin: 2px 0 0;
    flex: 0 0 14px;
}

.kp-landing-contact .kp-access-request-form--compact .kp-access-request-form__submit.kp-button {
    min-height: 47px;
    padding: 13px 16px;
    border: 0;
    border-radius: 12px;
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-brand-primary-dark);
    font-size: 14px;
    font-weight: 800;
    line-height: normal;
}

.kp-public-shell .kp-trust-strip {
    background: var(--kp-color-surface-page);
}

.kp-public-shell .kp-landing-band {
    background: var(--kp-color-surface-alt);
}

.kp-public-shell .kp-public-kicker {
    border: 1px solid var(--kp-color-brand-accent-yellow);
    background: color-mix(in srgb, var(--kp-color-brand-accent-yellow) 46%, var(--kp-color-surface-card));
    color: var(--kp-color-text-main);
}

.kp-public-shell .kp-testimonial-card figcaption > span {
    border: 2px solid var(--kp-color-brand-accent-pink);
    background: color-mix(in srgb, var(--kp-color-brand-accent-pink) 42%, var(--kp-color-surface-card));
    color: var(--kp-color-text-main);
}

.kp-public-shell .kp-access-request-form__submit,
.kp-public-shell .kp-landing-contact .kp-access-request-form--compact .kp-access-request-form__submit.kp-button,
.kp-public-shell .kp-public-shell__footer-actions a:first-child {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
}

.kp-public-shell .kp-contact-list span span,
.kp-public-shell .kp-contact-list a span,
.kp-public-shell .kp-public-shell__footer .kp-public-shell__footer-title,
.kp-public-shell .kp-public-shell__footer .kp-public-shell__footer-bottom {
    color: color-mix(in srgb, var(--kp-color-text-inverse) 70%, transparent);
}

.kp-checkbox {
    display: flex;
    min-height: 44px;
    gap: 10px;
    align-items: flex-start;
}

.kp-landing-operator__image {
    width: 100%;
    aspect-ratio: 4 / 5;
    min-height: 440px;
    border-radius: 20px;
    overflow: hidden;
}

.kp-landing-operator__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 42%;
}

.kp-anchor-section {
    scroll-margin-top: 88px;
}

.kp-anchor-section:focus-visible {
    outline: var(--kp-focus-ring);
    outline-offset: var(--kp-focus-offset);
}

.kp-auth-shell {
    display: grid;
    grid-template-columns: minmax(260px, 0.85fr) minmax(320px, 1fr);
    gap: 34px;
    align-items: start;
    width: min(100%, 1104px);
    margin: 0 auto;
    padding: 70px 32px 86px;
}

.kp-session-expired {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 32px;
    background: #f5f0e3;
}

.kp-session-expired__card {
    box-sizing: border-box;
    width: min(100%, 460px);
    padding: 40px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 5%, transparent);
    text-align: center;
}

.kp-session-expired__icon {
    display: grid;
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
    place-items: center;
    border-radius: 50%;
    background: #fef3c7;
    color: var(--kp-color-warning-icon);
}

.kp-session-expired__icon svg {
    width: 36px;
    height: 36px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.kp-session-expired h1 {
    margin: 0 0 8px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
}

.kp-session-expired p {
    margin: 0 0 28px;
    max-width: none;
    color: var(--kp-color-text-soft);
    font-size: 15px;
    line-height: 1.6;
}

.kp-session-expired .kp-button {
    width: 100%;
    padding: 13px 26px;
    font-size: 15px;
}

@media (max-width: 859px) {
    .kp-session-expired__card {
        padding: 40px;
    }
}

.kp-auth-shell__intro {
    padding: 30px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 20px;
    background: var(--kp-color-surface-alt);
    overflow-wrap: anywhere;
}

.kp-auth-shell__intro h1 {
    margin: 0 0 14px;
    font-family: var(--kp-font-heading);
    font-size: 30px;
    line-height: 1.16;
    font-weight: 800;
}

.kp-auth-shell__intro p:not(.kp-section-label) {
    margin: 0;
    color: var(--kp-color-text-soft);
    line-height: 1.65;
}

.kp-auth-shell__panel {
    padding: 34px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 20px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 16px 36px color-mix(in srgb, var(--kp-color-text-main) 8%, transparent);
    overflow-wrap: anywhere;
}

.kp-auth-shell__panel h2 {
    margin: 0 0 8px;
    font-family: var(--kp-font-heading);
    font-size: 30px;
    line-height: 1.15;
    font-weight: 800;
}

.kp-auth-shell__subtitle {
    margin: 0 0 28px;
    color: var(--kp-color-text-soft);
    font-size: 15px;
    line-height: 1.55;
}

.kp-auth-shell__panel .kp-alert {
    margin-bottom: 18px;
}

.kp-auth-shell__linkline {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.kp-auth-shell__linkline--after-submit {
    margin-top: 14px;
}

.kp-auth-shell__linkline a {
    color: var(--kp-color-brand-primary);
    font-weight: 800;
    font-family: var(--kp-font-heading);
    text-decoration: none;
}

.kp-auth-shell__backline {
    margin: 16px 0 0;
}

.kp-auth-shell__backline a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.kp-auth__options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: -2px 0 6px;
}

.kp-auth__options a {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.kp-auth__remember {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    cursor: pointer;
}

.kp-auth__remember input {
    width: 13px;
    height: 13px;
    margin: 0;
}

.kp-auth__separator {
    position: relative;
    margin: 24px 0;
    text-align: center;
}

.kp-auth__separator::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 1px;
    background: var(--kp-color-border-default);
}

.kp-auth__separator span {
    position: relative;
    display: inline-block;
    padding: 0 12px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-page {
    min-height: 100vh;
    padding: 40px 24px 72px;
    background: var(--kp-color-surface-page);
    color: var(--kp-color-text-main);
}

.kp-admin-page__header {
    display: flex;
    max-width: 1040px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin: 0 auto 24px;
}

.kp-admin-page__header h1 {
    margin: 0 0 8px;
    font-family: var(--kp-font-heading);
    font-size: 30px;
    line-height: 1.15;
}

.kp-admin-page__header p:not(.kp-section-label) {
    margin: 0;
    color: var(--kp-color-text-soft);
}

.kp-admin-customer-form,
.kp-admin-customer-detail,
.kp-admin-page > .kp-alert {
    width: min(100%, 1040px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-customer-form,
.kp-admin-customer-detail {
    display: grid;
    gap: 24px;
}

.kp-admin-customer-form--create {
    width: min(100%, 720px);
    margin-left: 0;
}

.kp-admin-animal-form-shell {
    max-width: 720px;
}

.kp-admin-page > .kp-admin-animal-readonly-alert {
    width: min(100%, 720px);
    margin-right: 0;
    margin-bottom: 28px;
    margin-left: 0;
}

.kp-admin-create-error-summary {
    margin-bottom: 24px;
}

.kp-admin-customer-detail + .kp-admin-customer-detail {
    margin-top: 18px;
}

.kp-admin-form-section {
    display: grid;
    gap: 16px;
}

.kp-admin-form-section--card {
    display: block;
    margin-bottom: 20px;
}

.kp-admin-form-section h2 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 20px;
}

.kp-admin-form-section--card h2 {
    margin: 0 0 10px;
    color: var(--kp-color-text-main);
    font-size: 16px;
    font-weight: 800;
}

.kp-admin-form-section__card {
    border-radius: 12px;
    padding: 14px;
}

.kp-admin-form-section__intro {
    margin: -10px 0 4px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.kp-admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.kp-admin-form-grid--compact {
    gap: 14px;
}

.kp-admin-form-grid__wide {
    grid-column: 1 / -1;
}

.kp-admin-info-bubble {
    display: inline-flex;
    flex-direction: column;
    width: fit-content;
    max-width: 100%;
    justify-self: center;
    align-items: flex-start;
    gap: 4px;
    padding: 9px 12px;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 8px;
    background: var(--kp-color-info-bg);
    color: var(--kp-color-info-fg);
    font-size: 13px;
    line-height: 1.4;
}

.kp-admin-info-bubble__tag {
    flex: 0 0 auto;
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-admin-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 18px;
}

.kp-admin-form-actions p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-admin-catalogue-hub {
    background: var(--kp-color-surface-page);
}

.kp-admin-catalogue-page {
    display: grid;
    gap: 20px;
}

.kp-admin-catalogue-hero,
.kp-admin-catalogue-boundary,
.kp-admin-catalogue-grid,
.kp-admin-catalogue-states {
    width: min(100%, 1120px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-catalogue-hero {
    display: grid;
    gap: 8px;
}

.kp-admin-catalogue-hero h2 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 30px;
    line-height: 1.15;
}

.kp-admin-catalogue-hero p:not(.kp-section-label) {
    max-width: 72ch;
    margin: 0;
    color: var(--kp-color-text-soft);
    line-height: 1.55;
}

.kp-admin-catalogue-boundary {
    display: grid;
    gap: 4px;
}

.kp-admin-catalogue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.kp-admin-catalogue-entry {
    display: grid;
    min-height: 224px;
    align-content: start;
    gap: 14px;
}

.kp-admin-catalogue-entry:focus-within {
    outline: var(--kp-focus-ring);
    outline-offset: var(--kp-focus-offset);
}

.kp-admin-catalogue-entry__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-catalogue-entry h3,
.kp-admin-catalogue-state h3 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 17px;
    line-height: 1.2;
}

.kp-admin-catalogue-entry p,
.kp-admin-catalogue-state p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 14px;
    line-height: 1.5;
}

.kp-admin-catalogue-entry .kp-button {
    align-self: end;
    justify-self: start;
}

.kp-admin-catalogue-entry__readonly {
    align-self: end;
    justify-self: start;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: var(--kp-color-surface-page);
    padding: 7px 10px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-catalogue-states {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.kp-admin-catalogue-state {
    display: grid;
    gap: 10px;
    min-height: 160px;
}

.kp-admin-service-category-page {
    display: grid;
    gap: 18px;
}

.kp-admin-service-category-page > * {
    width: min(100%, 1120px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-service-category-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
    align-items: start;
    gap: 18px;
}

.kp-admin-service-category-list-shell,
.kp-admin-service-category-form-shell,
.kp-admin-service-category-edit-shell {
    display: grid;
    gap: 14px;
}

.kp-admin-service-category-list {
    display: grid;
    gap: 12px;
}

.kp-admin-service-category-empty,
.kp-admin-service-category-card {
    display: grid;
    gap: 14px;
}

.kp-admin-service-category-card > div:first-child {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.kp-admin-service-category-card h3,
.kp-admin-service-category-empty h3 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 17px;
    line-height: 1.2;
}

.kp-admin-service-category-card h3 a {
    color: inherit;
    text-decoration: none;
}

.kp-admin-service-category-card h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-admin-service-category-empty p {
    margin: 0;
    color: var(--kp-color-text-soft);
}

.kp-admin-service-category-card dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.kp-admin-service-category-card dt {
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-admin-service-category-card dd {
    margin: 2px 0 0;
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 800;
}

.kp-admin-service-category-card .kp-button {
    justify-self: start;
}

.kp-admin-service-category-form {
    display: grid;
    gap: 16px;
}

.kp-admin-service-category-form__single-card .kp-admin-form-section__card {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.kp-admin-service-category-form__group {
    display: grid;
    gap: 10px;
}

.kp-admin-service-category-form__group + .kp-admin-service-category-form__group {
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 16px;
}

.kp-admin-service-category-form__group h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-admin-service-category-form__group .kp-admin-form-section__intro {
    margin: -4px 0 0;
}

.kp-admin-service-category-form__actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(220px, 320px);
    gap: 10px;
    justify-content: center;
    border-top: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-page);
    padding: 12px 0 14px;
}

.kp-admin-service-category-form__actions .kp-button {
    width: 100%;
    justify-content: center;
}

.kp-admin-service-category-form__capacity-grid {
    align-items: start;
}

.kp-admin-service-category-form__capacity-grid .kp-field {
    align-self: start;
    align-content: start;
}

.kp-admin-rules-page {
    display: grid;
    gap: 16px;
    align-content: start;
}

.kp-admin-rules-tabs {
    position: sticky;
    top: 86px;
    z-index: 30;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 980px;
    overflow: visible;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    padding: 8px;
}

.kp-admin-rules-tabs a,
.kp-admin-rules-tabs span {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    padding: 8px 12px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.kp-admin-rules-tabs .is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-rules-layout,
.kp-admin-rules-tabs,
.kp-admin-rules-page > .kp-alert,
.kp-admin-rules-page > .kp-admin-back-link,
.kp-admin-rules-page > .kp-admin-draft-panel,
.kp-admin-rules-page > .kp-admin-flash-alert,
.kp-admin-rules-page > .kp-error-summary {
    width: min(100%, 980px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-rules-page > .kp-admin-rules-tabs {
    justify-self: center;
    width: fit-content;
    max-width: min(100%, 980px);
}

.kp-admin-rules-layout {
    display: grid;
    grid-template-columns: minmax(0, 980px);
    align-items: start;
    gap: 18px;
}

.kp-admin-rules-layout.has-drafts {
    position: relative;
    grid-template-columns: minmax(0, 1fr) 300px;
    width: min(100%, 1298px);
}

.kp-admin-rules-page.has-drafts > .kp-admin-rules-tabs,
.kp-admin-rules-page.has-drafts > .kp-alert,
.kp-admin-rules-page.has-drafts > .kp-admin-back-link,
.kp-admin-rules-page.has-drafts > .kp-admin-flash-alert,
.kp-admin-rules-page.has-drafts > .kp-error-summary {
    width: min(100%, 1298px);
}

.kp-admin-rules-layout--with-section-title.has-drafts > .kp-admin-draft-panel {
    margin-top: 32px;
    top: 96px;
}

.kp-admin-rules-content {
    display: grid;
    min-width: 0;
    gap: 10px;
}

.kp-admin-rules-section-panel.is-inactive-desktop {
    display: none;
}

.kp-admin-rules-section-panel {
    scroll-margin-top: 96px;
}

.kp-admin-rules-section-title {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 800;
}

.kp-admin-rules-panel {
    display: grid;
    gap: 12px;
    padding: 24px;
}

.kp-admin-rules-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-rules-panel__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.kp-admin-rules-panel__head h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
}

.kp-admin-rules-panel__head .kp-button--outline {
    border-color: var(--kp-color-text-main);
    box-shadow: 0 0 0 1px var(--kp-color-text-main) inset;
    color: var(--kp-color-text-main);
}

.kp-admin-service-exception-panel__head .kp-button--outline {
    border-color: var(--kp-color-text-main);
    box-shadow: 0 0 0 1px var(--kp-color-text-main) inset;
    color: var(--kp-color-text-main);
}

.kp-admin-rules-add-button,
.kp-admin-service-exception-add-button {
    border-color: var(--kp-color-text-main);
    background: var(--kp-color-surface-card);
    box-shadow: 0 0 0 1px var(--kp-color-text-main) inset;
    color: var(--kp-color-text-main);
    font-weight: 800;
}

.kp-admin-rules-add-button__mobile {
    display: none;
}

.kp-admin-rules-availability-period-list {
    display: grid;
    gap: 10px;
}

.kp-admin-calendar-exception-list {
    display: grid;
    gap: 10px;
}

.kp-admin-calendar-exception-card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
    padding: 12px;
}

.kp-admin-calendar-exception-card h4,
.kp-admin-calendar-exception-card p {
    margin: 0;
}

.kp-admin-calendar-exception-card h4 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
}

.kp-admin-calendar-exception-card__effect {
    margin-top: 8px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: #fff;
    padding: 7px 9px;
}

.kp-admin-calendar-exception-card__effect p {
    margin: 0 0 2px;
    color: var(--kp-color-text-muted);
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.kp-admin-calendar-exception-card__effect span {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.kp-admin-calendar-exception-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.kp-admin-calendar-exception-form__choices {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kp-admin-availability-time-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #b9e5ff;
    border-radius: 12px;
    background: #eaf7ff;
    padding: 12px 14px;
}

.kp-admin-availability-time-summary h4,
.kp-admin-availability-time-summary p {
    margin: 0;
}

.kp-admin-availability-time-summary h4 {
    color: #075985;
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 900;
}

.kp-admin-availability-time-summary p {
    margin-top: 4px;
    color: var(--kp-color-brand-primary);
    font-size: 12px;
    line-height: 1.4;
}

.kp-admin-availability-time-summary__hint {
    color: #075985 !important;
}

.kp-admin-availability-time-summary p span {
    white-space: nowrap;
}

.kp-admin-availability-time-summary p strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-weight: 900;
}

.kp-admin-availability-time-settings {
    display: grid;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: #fff;
    padding: 14px;
}

.kp-admin-availability-time-dialog .kp-admin-availability-time-settings {
    border: 0;
    border-radius: 18px;
}

.kp-admin-availability-time-settings__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-availability-time-settings__head h4,
.kp-admin-availability-time-settings__head p {
    margin: 0;
}

.kp-admin-availability-time-settings__head h4 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 900;
}

.kp-admin-availability-time-settings__head p {
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-availability-time-settings__grid {
    display: grid;
    gap: 6px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 8px;
}

.kp-admin-availability-time-settings__grid label {
    display: grid;
    grid-template-columns: 150px 106px 16px 106px;
    min-height: 42px;
    align-items: center;
    column-gap: 8px;
    row-gap: 6px;
    border-radius: 7px;
    background: transparent;
    padding: 5px 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-availability-time-settings__grid label:hover {
    background: var(--kp-color-surface-soft);
}

.kp-admin-availability-time-settings__field {
    display: flex;
    justify-content: stretch;
}

.kp-admin-availability-time-settings__grid input {
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 7px;
    background: var(--kp-color-surface-card);
    padding: 4px 7px;
    color: var(--kp-color-text-main);
    font: inherit;
}

.kp-admin-availability-time-settings__arrow {
    color: var(--kp-color-brand-primary);
    font-weight: 900;
    text-align: center;
}

.kp-admin-availability-time-settings__grid small {
    display: inline-flex;
    grid-column: 4;
    min-height: 26px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: var(--kp-color-surface-blue);
    padding: 3px 9px;
    color: var(--kp-color-brand-primary);
    font-size: 10px;
    font-weight: 900;
    justify-self: stretch;
    white-space: nowrap;
}

.kp-admin-rules-availability-period-card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
    padding: 12px;
}

.kp-admin-rules-availability-period-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.kp-admin-rules-availability-period-card h4,
.kp-admin-rules-availability-period-card p {
    margin: 0;
}

.kp-admin-rules-availability-period-card h4 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-rules-availability-period-card__head p {
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-rules-availability-period-card__detail {
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: #fff;
    padding: 7px 9px;
}

.kp-admin-rules-availability-period-card__detail p {
    margin: 0 0 2px;
    color: var(--kp-color-text-muted);
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.kp-admin-rules-availability-period-card__detail span {
    display: block;
    color: var(--kp-color-text-main);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-rules-availability-period-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.kp-admin-rules-availability-period-card__actions > :is(a, span) {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9px;
    background: var(--kp-color-surface-blue);
    padding: 9px 10px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-rules-availability-period-card__actions > .kp-admin-rules-danger-trigger {
    border: 1px solid var(--kp-color-danger-border, #FECACA);
    background: var(--kp-color-danger-bg, #FEE2E2);
    color: var(--kp-color-danger-fg, #B91C1C);
}

.kp-admin-rules-panel__head .kp-admin-rules-add-button {
    box-shadow: none;
}

.kp-admin-rules-panel__head .kp-button--primary.kp-admin-rules-add-button {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
}

.kp-admin-cancellation-policy__intro {
    margin: 0 0 8px;
}

.kp-admin-cancellation-policy__rules {
    display: grid;
    gap: 10px;
}

.kp-admin-cancellation-policy .kp-admin-rules-availability-period-card__actions > :is(a, span) {
    min-height: 34px;
}

.kp-admin-cancellation-policy .kp-admin-rules-status-badge {
    min-height: 20px;
    margin-top: 0;
    padding: 2px 10px;
    font-weight: 600;
}

.kp-admin-cancellation-policy .kp-admin-rules-status-badge.is-success {
    border-color: #BBF7D0;
    background: #DCFCE7;
    color: #16A34A;
}

.kp-admin-cancellation-policy .kp-admin-rules-status-badge.is-warning {
    border-color: #FDE68A;
    background: #FEF3C7;
    color: #C97C10;
}

.kp-admin-cancellation-policy .kp-admin-rules-status-badge.is-danger {
    border-color: #FECACA;
    background: #FEE2E2;
    color: #DC2626;
}

.kp-admin-cancellation-policy__draft-actions {
    display: flex;
    justify-content: flex-end;
}

.kp-admin-cancellation-policy__draft-actions .kp-admin-rules-danger-trigger {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-danger-border, #FECACA);
    border-radius: 9px;
    background: var(--kp-color-danger-bg, #FEE2E2);
    padding: 9px 12px;
    color: var(--kp-color-danger-fg, #B91C1C);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-cancellation-policy-form__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 132px;
    align-items: center;
    gap: 10px 12px;
}

.kp-admin-cancellation-policy-form__grid > label {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-cancellation-policy-form__grid > span {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18px;
    align-items: center;
    gap: 6px;
    color: var(--kp-color-text-soft);
    font-weight: 800;
}

.kp-admin-cancellation-policy-form__grid .kp-field__control {
    width: 100%;
    min-width: 0;
}

.kp-admin-cancellation-policy-form__toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #C9DDEF;
    padding: 10px 12px;
    color: var(--kp-color-text-main);
    font-size: 13px;
}

.kp-admin-cancellation-policy-form__toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-cancellation-policy-form__error {
    display: grid;
    gap: 4px;
    margin: 0 0 12px;
}

.kp-admin-cancellation-policy-form__error > :is(strong, p) {
    margin: 0;
}

.kp-admin-cancellation-tier-editor {
    display: grid;
    gap: 12px;
}

.kp-admin-cancellation-tier-row__card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    padding: 14px;
}

.kp-admin-cancellation-tier-row__card > h2 {
    margin: 0;
}

.kp-admin-cancellation-tier-row__condition {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) 76px;
    gap: 8px;
}

.kp-admin-cancellation-policy-form [data-tier-editor-refund][readonly] {
    background: var(--kp-color-surface-soft);
    color: var(--kp-color-text-soft);
}

.kp-admin-cancellation-tier-row__card > label:not(.kp-admin-cancellation-policy-form__toggle) {
    display: grid;
    gap: 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-rules-drawer .kp-admin-cancellation-policy-form {
    padding: 20px 26px 14px;
}

.kp-admin-cancellation-policy-form .kp-admin-rules-panel__alert-copy strong,
.kp-admin-cancellation-policy-form .kp-admin-rules-panel__alert-copy > span {
    font-size: 13px;
}

#admin-cancellation-policy-delete .kp-admin-rules-delete-dialog__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

#admin-cancellation-policy-delete .kp-admin-rules-delete-dialog__alert strong,
#admin-cancellation-policy-delete .kp-admin-rules-delete-dialog__alert span span {
    font-size: 13px;
    line-height: 1.45;
}

#admin-cancellation-policy-delete .kp-admin-rules-delete-dialog__alert {
    margin: 0;
}

#admin-cancellation-policy-delete .kp-admin-rules-delete-dialog__alert-icon {
    display: inline;
    width: auto;
    height: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 16px;
}

.kp-admin-rules-section-panel.kp-admin-rules-panel.kp-admin-cancellation-policy {
    display: block;
    padding: 24px 24px 20px;
}

.kp-admin-rules-section-panel.kp-admin-cancellation-policy-heading.is-inactive-desktop,
.kp-admin-rules-section-panel.kp-admin-rules-panel.kp-admin-cancellation-policy.is-inactive-desktop {
    display: none;
}

.kp-admin-cancellation-policy .kp-admin-rules-panel__head h3 {
    font-weight: 800;
}

.kp-admin-cancellation-policy__intro {
    margin: 6px 0 20px;
}

.kp-admin-cancellation-policy__rules {
    display: block;
}

.kp-admin-cancellation-policy__rules .kp-admin-rules-availability-period-card {
    margin-top: 10px;
}

.kp-admin-cancellation-policy .kp-admin-rules-availability-period-card__actions > :is(a, span) {
    min-height: 0;
    border: 0;
    background: #C9DDEF;
    padding: 9px 10px;
    color: #3B4A8C;
    font-size: 12px;
    line-height: normal;
}

.kp-admin-cancellation-policy .kp-admin-rules-availability-period-card__actions > .kp-admin-rules-danger-trigger {
    border: 0;
    background: #FEE2E2;
    color: #DC2626;
}

.kp-admin-cancellation-policy .kp-admin-rules-status-badge {
    min-height: 0;
    line-height: normal;
}

@media (max-width: 700px) {
    .kp-admin-cancellation-policy-form__grid {
        grid-template-columns: minmax(0, 1fr) 110px;
        gap: 8px;
    }
}

.kp-admin-rules-panel__alert,
.kp-admin-rules-boundary-alert {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin: 0;
}

.kp-admin-rules-panel__alert-icon {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 999px;
    background: #F8FCFF;
    color: var(--kp-color-info-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-rules-panel__alert-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.kp-admin-rules-panel__alert-copy strong {
    display: block;
    font-family: var(--kp-font-heading);
    line-height: 1.25;
}

.kp-admin-rules-panel__alert-copy > span {
    display: block;
    line-height: 1.45;
}

.kp-admin-rules-category-list {
    display: grid;
    gap: 10px;
}

.kp-admin-rules-mobile-stack {
    display: none;
}

.kp-admin-rules-mobile-panel {
    display: grid;
    gap: 10px;
}

.kp-admin-rules-mobile-panel h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
}

.kp-admin-rules-mobile-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.kp-admin-settings-page {
    display: block;
}

.kp-admin-settings-desktop-topbar {
    display: flex;
}

.kp-admin-settings-mobile-hero {
    display: none;
}

.kp-admin-settings-content {
    width: min(100%, 980px);
    margin-right: auto;
    margin-left: auto;
    display: grid;
    gap: 0;
}

.kp-admin-settings-boundary {
    display: none;
}

.kp-admin-settings-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
}

.kp-admin-settings-logout {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.kp-admin-settings-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 12px;
    padding: 18px;
    color: inherit;
    text-decoration: none;
    order: var(--kp-settings-desktop-order);
}

.kp-admin-settings-card.is-disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.kp-admin-settings-card.is-disabled .kp-admin-settings-card__icon {
    background: var(--kp-color-surface-alt);
    color: var(--kp-color-text-soft);
}

.kp-admin-settings-card__icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 10px;
    background: var(--kp-color-surface-blue);
    border: 1px solid var(--kp-color-border-soft);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    font-weight: 900;
}

.kp-admin-settings-card__body {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.kp-admin-settings-card__head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}

.kp-admin-settings-card__head strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-admin-settings-card__body > span:last-child {
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-admin-settings-card__chevron {
    display: grid;
    place-items: center;
    color: var(--kp-color-text-soft);
    font-size: 18px;
    line-height: 1;
}

.kp-admin-payment-settings-page {
    display: block;
    padding-top: 32px;
}

.kp-admin-payment-settings-mobile-hero {
    display: none;
}

.kp-admin-payment-settings-layout {
    display: grid;
    width: min(100%, 1040px);
    margin: 0 auto;
    gap: 16px;
}

.kp-admin-payment-settings-mode-alert {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    width: 100%;
    align-items: flex-start;
    gap: 10px;
}

.kp-admin-payment-settings-mode-alert > span {
    display: inline-grid;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 999px;
    background: #F8FCFF;
    color: var(--kp-color-info-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-payment-settings-mode-alert.kp-alert--success > span {
    border-color: var(--kp-color-success-border);
    background: #fff;
    color: var(--kp-color-success-fg);
}

.kp-admin-payment-settings-mode-alert strong {
    display: block;
    margin: 0 0 3px;
    color: inherit;
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 900;
}

.kp-admin-payment-settings-mode-alert p {
    margin: 0;
}

.kp-admin-payment-settings-webhook-help {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: flex-start;
    gap: 10px;
}

.kp-admin-payment-settings-webhook-help > span {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 999px;
    background: #F8FCFF;
    color: var(--kp-color-info-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-payment-settings-webhook-help strong {
    display: block;
    margin-bottom: 3px;
    color: inherit;
    font-family: var(--kp-font-heading);
    font-weight: 900;
}

.kp-admin-payment-settings-webhook-help p {
    margin: 0;
}

.kp-admin-payment-settings-webhook-help code {
    overflow-wrap: anywhere;
}

.kp-admin-payment-settings-overview {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.kp-admin-payment-settings-status,
.kp-admin-payment-settings-env-card,
.kp-admin-payment-settings-guardrails,
.kp-admin-payment-settings-environment-switch {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.kp-admin-payment-settings-status__head,
.kp-admin-payment-settings-env-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.kp-admin-payment-settings-eyebrow {
    display: block;
    margin-bottom: 6px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-admin-payment-settings-status h2,
.kp-admin-payment-settings-env-card h3,
.kp-admin-payment-settings-guardrails h2,
.kp-admin-payment-settings-environment-switch h2,
.kp-admin-payment-settings-section-title {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 900;
}

.kp-admin-payment-settings-status__head p,
.kp-admin-payment-settings-env-card__head p,
.kp-admin-payment-settings-environment-switch p {
    margin: 4px 0 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.kp-admin-payment-settings-section-title {
    margin-bottom: 10px;
}

.kp-admin-payment-settings-note {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.kp-admin-payment-settings-badge,
.kp-admin-payment-settings-env-card__badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.kp-admin-payment-settings-badge.is-current {
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-admin-payment-settings-badge.is-ok,
.kp-admin-payment-settings-env-card__badge {
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-payment-settings-env-card__badge.is-current {
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-admin-payment-settings-summary,
.kp-admin-payment-settings-env-card dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.kp-admin-payment-settings-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kp-admin-payment-settings-summary > div,
.kp-admin-payment-settings-env-card dl > div {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-blue);
}

.kp-admin-payment-settings-summary dt,
.kp-admin-payment-settings-env-card dt {
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.kp-admin-payment-settings-summary dd,
.kp-admin-payment-settings-env-card dd {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.kp-admin-payment-settings-env-card {
    align-content: start;
}

.kp-admin-payment-settings-env-card.is-active {
    border-color: var(--kp-color-brand-primary);
}

.kp-admin-payment-settings-env-card dl > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border: 0;
    border-top: 1px solid var(--kp-color-border-soft);
    border-radius: 0;
    background: transparent;
}

.kp-admin-payment-settings-env-card dt {
    color: var(--kp-color-text-main);
    font-size: 12px;
    text-transform: none;
}

.kp-admin-payment-settings-env-card dd {
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 800;
    text-align: right;
}

.kp-admin-payment-settings-env-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.kp-admin-transactional-email-env-grid {
    grid-template-columns: 1fr;
}

.kp-admin-payment-settings-env-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 2px;
}

.kp-admin-transactional-email-env-actions {
    grid-template-columns: 1fr;
}

.kp-admin-payment-settings-env-actions .kp-button,
.kp-admin-payment-settings-env-actions form {
    width: 100%;
}

.kp-admin-payment-settings-env-actions .kp-button {
    min-height: 40px;
}

.kp-admin-payment-settings-env-actions .kp-button--outline {
    border-color: var(--kp-color-brand-primary);
    color: var(--kp-color-brand-primary);
}

.kp-admin-payment-settings-env-actions > .kp-button--secondary {
    border-color: transparent;
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-text-main);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--kp-color-brand-accent-yellow) 40%, transparent);
}

.kp-admin-payment-settings-environment-switch {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.kp-admin-payment-settings-switch-actions {
    display: flex;
    gap: 8px;
}

.kp-admin-payment-settings-switch-actions .kp-button {
    min-height: 40px;
    white-space: nowrap;
}

.kp-admin-payment-settings-switch-actions .kp-button--primary {
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
    opacity: 1;
}

.kp-admin-payment-settings-form {
    display: grid;
    gap: 14px;
}

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel {
    width: min(100%, 520px);
    gap: 18px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 18px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 26px 70px rgb(43 53 112 / 0.26);
    padding: 0;
    overflow: hidden;
}

.kp-admin-payment-settings-dialog:target,
.kp-admin-payment-settings-dialog[data-dialog-open] {
    background: var(--kp-color-surface-page);
}

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head {
    align-items: center;
    gap: 16px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-card);
}

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head h2 {
    margin-bottom: 4px;
    font-size: 26px;
}

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head p {
    max-width: 42ch;
}

.kp-admin-payment-settings-dialog .kp-admin-rules-drawer__close {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--kp-color-surface-page);
    padding: 0 16px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel > label,
.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel > input[type="hidden"] + label {
    margin-right: 24px;
    margin-left: 24px;
}

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__actions {
        gap: 12px;
        padding: 6px 24px 24px;
    }

.kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__actions .kp-button--secondary {
    border: 1px solid #DDD4BE;
    background: #C9DDEF;
    color: #3B4A8C;
}

.kp-admin-payment-settings-secret-card {
    display: grid;
    gap: 14px;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__panel {
    width: min(100%, 720px);
    max-height: min(760px, calc(100vh - 64px));
    overflow: hidden;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__head {
    padding: 24px 32px 20px;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__head h2 {
    font-size: 28px;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
    padding: 24px 32px 6px;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card label:nth-child(3),
.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card label:nth-child(4),
.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card label:nth-child(5) {
    grid-column: 1 / -1;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-form input {
    min-height: 46px;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-form small {
    max-width: 58ch;
}

.kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__actions {
    margin-top: 8px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding: 18px 32px 24px;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__panel {
    width: min(100%, 680px);
    max-height: min(720px, calc(100vh - 64px));
    overflow: hidden;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__head {
    padding: 24px 32px 20px;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__head h2 {
    max-width: none;
    font-size: 28px;
    line-height: 1.12;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__head p {
    margin-top: 0;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-secret-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
    padding: 24px 32px 6px;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-secret-card label {
    grid-column: 1 / -1;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-form input {
    min-height: 46px;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-secret-warning {
    margin: 10px 32px 0;
    padding: 12px 14px;
}

.kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__actions {
    margin-top: 8px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding: 18px 32px 24px;
}

.kp-admin-payment-settings-form small {
    color: var(--kp-color-text-soft);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.35;
}

.kp-admin-payment-settings-secret-warning {
    display: grid;
    gap: 6px;
    margin: 0 24px;
    border: 1px solid var(--kp-color-warning-border);
    border-radius: 12px;
    background: var(--kp-color-warning-bg);
    padding: 14px 16px;
    color: var(--kp-color-warning-fg);
}

.kp-admin-payment-settings-secret-warning strong {
    color: inherit;
    font-family: var(--kp-font-heading);
    font-size: 0.92rem;
    font-weight: 900;
}

.kp-admin-payment-settings-secret-warning strong::before {
    content: "⚠";
    margin-right: 10px;
}

.kp-admin-payment-settings-secret-warning p {
    margin: 0 0 0 26px;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.45;
}

.kp-admin-payment-settings-form label {
    display: grid;
    gap: 6px;
    color: var(--kp-color-text);
    font-size: 0.86rem;
    font-weight: 700;
}

.kp-admin-payment-settings-form input {
    width: 100%;
    min-height: 50px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    color: var(--kp-color-text);
    font: inherit;
    font-weight: 600;
    padding: 0 14px;
}

.kp-admin-payment-settings-form input::placeholder {
    color: rgba(37, 51, 44, 0.48);
}

.kp-admin-payment-settings-guardrails--overview {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
}

.kp-admin-payment-settings-guardrails--overview h2 {
    color: var(--kp-color-warning-fg);
}

.kp-admin-payment-settings-guardrails ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.kp-admin-payment-settings-guardrails li {
    color: var(--kp-color-warning-fg);
    font-weight: 700;
    line-height: 1.35;
}

.kp-admin-payment-settings-guardrails li::before {
    content: "•";
    margin-right: 6px;
}

.kp-admin-payment-review-page {
    --kp-admin-payment-review-width: min(100%, 1136px);
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    width: 100%;
    max-width: none;
    margin: 0;
    padding-top: 16px;
}

.kp-admin-page.kp-admin-payment-review-page > .kp-alert,
.kp-admin-payment-review-page > .kp-alert,
.kp-admin-payment-review-list,
.kp-admin-payment-review-empty {
    width: var(--kp-admin-payment-review-width);
    max-width: var(--kp-admin-payment-review-width);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-payment-review-alert,
.kp-admin-payment-review-mode {
    display: flex;
    box-sizing: border-box;
    gap: 12px;
    align-items: flex-start;
    border: 1px solid #fcd34d;
    border-radius: 12px;
    padding: 12px 16px;
    background: #fff7d6;
    color: #a85d00;
}

.kp-admin-payment-review-mode,
.kp-admin-payment-review-filters {
    display: none;
}

.kp-admin-payment-review-page .kp-admin-payment-review-list {
    width: var(--kp-admin-payment-review-width);
    max-width: var(--kp-admin-payment-review-width);
}

.kp-admin-payment-review-alert strong,
.kp-admin-payment-review-mode strong {
    display: block;
    margin: 0 0 6px;
    font-family: var(--kp-font-heading);
    font-size: 0.875rem;
    font-weight: 900;
    color: inherit;
}

.kp-admin-payment-review-alert p,
.kp-admin-payment-review-mode p {
    margin: 0;
    color: inherit;
    font-size: 0.82rem;
    line-height: 1.4;
}

.kp-admin-payment-review-alert__icon {
    flex: 0 0 auto;
    color: #c97c10;
    font-size: 1rem;
    line-height: 1.35;
}

.kp-admin-payment-review-status-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.kp-admin-payment-review-status-labels span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #fff;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 0.74rem;
    font-weight: 800;
}

.kp-admin-payment-review-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.kp-admin-payment-review-back {
    align-self: flex-start;
    width: var(--kp-admin-payment-review-width);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-shell-proto-nav-count {
    margin-left: auto;
    border-radius: 999px;
    padding: 1px 7px;
    background: #fcd34d;
    color: #92400e;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.5;
}

.kp-admin-shell__sidebar--proto nav > .kp-admin-shell-proto-nav-label:first-child {
    margin-top: 12px;
}

.kp-admin-shell__sidebar--proto nav > .kp-admin-shell-proto-nav-label:not(:first-child) {
    margin-top: 20px;
}

.kp-admin-shell__sidebar--proto nav > a,
.kp-admin-shell__sidebar--proto nav > .kp-admin-shell__nav-disabled {
    margin-bottom: 2px;
    font-weight: 500;
}

.kp-admin-shell__sidebar--proto nav > a.is-active {
    font-weight: 600;
}

.kp-admin-payment-review-list > .kp-admin-payment-action-card[data-review-category="validations"] {
    order: 1;
}

.kp-admin-payment-review-list > .kp-admin-payment-action-card[data-review-category="manual"] {
    order: 2;
}

.kp-admin-payment-review-list > .kp-admin-payment-action-card[data-review-category="refunds"] {
    order: 4;
}

.kp-admin-payment-review-list > .kp-admin-payment-action-card[data-review-category="psp_divergences"] {
    order: 3;
}

.kp-admin-payment-review-list > .kp-admin-payment-confirm-sheet {
    order: 10;
}

.kp-admin-payment-review-filters {
    display: flex;
    width: var(--kp-admin-payment-review-width);
    max-width: var(--kp-admin-payment-review-width);
    gap: 8px;
    overflow-x: auto;
    margin-right: auto;
    margin-left: auto;
    padding: 2px 0 4px;
}

.kp-admin-payment-review-filter {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: #fff;
    padding: 8px 12px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.kp-admin-payment-review-filter strong {
    display: inline-flex;
    min-width: 24px;
    min-height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--kp-color-surface-soft);
    color: var(--kp-color-text-main);
    font-size: 0.72rem;
}

.kp-admin-payment-review-filter.is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-payment-review-filter.is-active strong {
    background: var(--kp-color-brand-primary);
    color: #fff;
}

.kp-card.kp-admin-payment-action-card {
    display: block;
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 8px 18px rgba(43, 53, 112, 0.08);
}

.kp-admin-payment-action-card__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 20px;
    align-items: center;
}

.kp-admin-payment-action-card__content {
    display: block;
    align-items: start;
    min-width: 0;
}

.kp-admin-payment-action-card__body {
    min-width: 0;
}

.kp-admin-payment-action-card__title-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 5px;
}

.kp-admin-payment-action-card h2 {
    margin: 0;
    min-width: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-admin-payment-action-card__badge {
    display: inline-flex;
    align-items: center;
    min-height: 0;
    padding: 2px 10px;
    border-radius: 999px;
    border: 1px solid #fcd34d;
    background: #fffbeb;
    color: #8a520f;
    font-family: var(--kp-font-body);
    font-size: 11px;
    font-weight: 600;
    flex: 0 0 auto;
}

.kp-admin-payment-action-card__summary,
.kp-admin-payment-action-card__reason,
.kp-admin-payment-action-card__meta {
    margin: 0;
    color: var(--kp-color-text-soft);
    line-height: 1.35;
}

.kp-admin-payment-action-card__summary {
    font-size: 13px;
}

.kp-admin-payment-action-card__reason {
    margin-top: 3px;
    font-size: 12px;
}

.kp-admin-payment-action-card__meta {
    margin-top: 3px;
    color: var(--kp-color-text-muted);
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
}

@media (min-width: 860px) {
    .kp-admin-payment-action-card__summary,
    .kp-admin-payment-action-card__reason {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__actions .kp-button {
        min-width: 0;
    }
}

.kp-admin-payment-action-card__side {
    display: contents;
}

.kp-admin-payment-action-card__value {
    min-width: 118px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 1.18rem;
    font-weight: 900;
    text-align: right;
}

.kp-admin-payment-action-card[data-review-category="manual"] .kp-admin-payment-action-card__value {
    font-size: 22px;
    font-weight: 800;
}

.kp-admin-payment-action-card[data-review-category="validations"] .kp-admin-payment-action-card__value,
.kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__value {
    font-size: 13px;
}

.kp-admin-payment-action-card[data-review-category="validations"] .kp-admin-payment-action-card__value {
    color: #c97c10;
}

.kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__value {
    color: var(--kp-color-error-fg);
    min-width: 70px;
}

.kp-admin-payment-action-card__payment-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 30px;
    padding: 3px 9px;
    border: 1px solid #fde68a;
    border-radius: 999px;
    background: #fef3c7;
    color: #a16207;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.kp-alert.kp-admin-payment-review-alert {
    margin-top: 0;
}

.kp-alert.kp-admin-payment-review-alert p {
    margin: 0;
}

.kp-admin-payment-action-card__actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.kp-admin-payment-action-card__actions form {
    display: flex;
    margin: 0;
}

.kp-admin-payment-action-card__actions .kp-button {
    min-width: 0;
    justify-content: center;
    text-decoration: none;
}

.kp-admin-payment-action-card__actions .kp-button--disabled {
    opacity: 0.55;
    pointer-events: none;
}

@media (max-width: 1180px) {
    .kp-admin-payment-action-card__layout {
        grid-template-columns: 1fr;
        gap: 16px;
        align-items: stretch;
    }

    .kp-admin-payment-action-card__side {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        align-items: stretch;
    }

    .kp-admin-payment-action-card__value {
        min-width: 0;
        text-align: left;
    }

    .kp-admin-payment-action-card__actions {
        flex-wrap: wrap;
        align-items: stretch;
    }

    .kp-admin-payment-action-card__actions .kp-button {
        min-width: 132px;
    }
}

.kp-admin-payment-confirm-sheet {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.kp-admin-payment-confirm-sheet:target {
    display: flex;
}

.kp-admin-payment-confirm-sheet.is-closed {
    display: none;
}

.kp-admin-payment-confirm-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}

.kp-admin-payment-confirm-sheet__panel {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(100%, 560px);
    max-height: calc(100vh - 120px);
    gap: 14px;
    overflow-y: auto;
    border-radius: 18px;
    background: var(--kp-color-surface-page);
    padding: 26px;
    box-shadow: 0 18px 46px rgba(43, 53, 112, 0.24);
}

.kp-admin-payment-confirm-sheet__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-payment-confirm-sheet__head h2 {
    margin: 0 0 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 26px;
    font-weight: 900;
    line-height: 1.15;
}

.kp-admin-payment-confirm-sheet__head p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 0.88rem;
    line-height: 1.35;
}

.kp-admin-payment-confirm-sheet__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none;
}

.kp-card.kp-admin-payment-confirm-sheet__details {
    display: grid;
    gap: 0;
    padding: 14px;
}

.kp-admin-payment-confirm-sheet__details > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 7px 0;
    border-bottom: 1px solid var(--kp-color-border-soft);
}

.kp-admin-payment-confirm-sheet__details > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.kp-admin-payment-confirm-sheet__details span {
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
    line-height: 15px;
}

.kp-admin-payment-confirm-sheet__details strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12.5px;
    font-weight: 900;
    line-height: 15px;
    text-align: right;
}

.kp-admin-payment-confirm-sheet__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-admin-payment-confirm-sheet__actions .kp-button {
    min-height: 38px;
    padding-block: 8px;
}

.kp-admin-payment-confirm-sheet__actions form {
    display: flex;
    margin: 0;
}

.kp-admin-payment-confirm-sheet__actions .kp-button,
.kp-admin-payment-confirm-sheet__actions form .kp-button {
    width: 100%;
    justify-content: center;
}

[data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__head {
    margin-bottom: 16px;
}

[data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__panel {
    display: block;
}

[data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__head h2 {
    margin-bottom: 6px;
    font-weight: 800;
}

[data-testid="admin-reservation-cancel-sheet"] .kp-alert {
    margin-bottom: 16px;
}

[data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__details {
    display: block;
    margin-bottom: 12px;
}

@media (min-width: 860px) {
    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__details > div {
        padding: 8.875px 0;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__actions .kp-button {
        min-height: 0;
        padding: 10px 20px;
        line-height: normal;
        white-space: nowrap;
    }
}

[data-testid="admin-reservation-cancel-reason-sheet"] .kp-admin-cancellation-form {
    display: grid;
    gap: 8px;
}

[data-testid="admin-reservation-cancel-reason-sheet"] .kp-admin-cancellation-form textarea {
    min-height: 54px;
    resize: vertical;
}

.kp-admin-cancellation-refund-choice {
    display: grid;
    gap: 10px;
    margin: 0 0 10px;
    padding: 0;
    border: 0;
}

.kp-admin-cancellation-refund-choice legend {
    margin-bottom: 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 1.08rem;
    font-weight: 900;
}

.kp-admin-cancellation-refund-choice .kp-admin-service-choice-card__body {
    box-sizing: border-box;
    min-height: 58px;
    gap: 12px;
    padding: 12px;
}

.kp-admin-cancellation-refund-choice .kp-admin-service-choice-card__content > span:last-child {
    color: var(--kp-color-text-soft);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
}

.kp-admin-payment-followup-form {
    display: grid;
    gap: 10px;
    margin: 0;
}

.kp-admin-payment-followup-form label {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 0.82rem;
    font-weight: 900;
}

.kp-admin-payment-followup-form textarea {
    width: 100%;
    min-height: 112px;
    box-sizing: border-box;
    resize: vertical;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: #fff;
    padding: 12px;
    color: var(--kp-color-text-main);
    font: inherit;
}

.kp-admin-payment-followup-resolve {
    width: 100%;
    justify-content: center;
}

.kp-admin-payment-review-empty {
    padding: 28px;
    text-align: center;
}

.kp-admin-payment-review-empty strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 1.2rem;
    font-weight: 900;
}

.kp-admin-payment-review-empty p {
    margin: 8px 0 0;
    color: var(--kp-color-text-soft);
}

.kp-admin-payment-review-hidden-state {
    display: none;
}

.kp-admin-rules-category-card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
    padding: 12px;
}

.kp-admin-rules-category-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.kp-admin-rules-category-card h4 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-rules-category-card__count {
    color: var(--kp-color-text-soft);
    font-weight: 700;
    text-decoration: none;
}

.kp-admin-rules-category-card__count:hover,
.kp-admin-rules-category-card__count:focus-visible {
    color: var(--kp-color-brand-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-admin-rules-category-card p {
    margin: 2px 0 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-rules-status-badge {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    width: fit-content;
    margin-top: 6px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: #fff;
    padding: 4px 9px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.kp-admin-rules-status-badge.is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-rules-status-badge.is-inactive {
    border-color: var(--kp-color-border-default);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-soft);
}

.kp-admin-rules-status-badge.is-draft {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-warning-fg);
}

.kp-admin-rules-capacity-grid dd.is-draft-value {
    width: fit-content;
    min-width: 32px;
    margin-right: auto;
    margin-left: auto;
    border: 1px solid var(--kp-color-warning-border);
    border-radius: 8px;
    background: var(--kp-color-surface-card);
    padding: 3px 8px;
    color: var(--kp-color-warning-fg);
}

.kp-admin-service-category-form .kp-field__control.is-draft-value {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
    box-shadow: 0 0 0 1px var(--kp-color-warning-border) inset;
}

.kp-admin-rules-category-card__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.kp-admin-rules-category-card__actions > a {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border: 0;
    border-radius: 8px;
    background: var(--kp-color-surface-blue);
    padding: 6px 9px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.kp-admin-rules-category-card__actions > a.kp-admin-rules-danger-trigger {
    border: 1px solid var(--kp-color-danger-border, #FECACA);
    background: var(--kp-color-danger-bg, #FEE2E2);
    color: var(--kp-color-danger-fg, #B91C1C);
}

.kp-admin-rules-delete-dialog {
    display: none;
}

.kp-admin-rules-delete-dialog[data-dialog-closed],
.kp-admin-rules-drawer[data-dialog-closed] {
    display: none !important;
}

.kp-admin-rules-delete-dialog:target,
.kp-admin-rules-delete-dialog[data-dialog-open] {
    position: fixed;
    inset: 0;
    z-index: 145;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgb(15 23 42 / 0.55);
    padding: 24px;
}

.kp-admin-rules-delete-dialog__backdrop {
    position: absolute;
    inset: 0;
}

.kp-admin-rules-delete-dialog__panel {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(100%, 460px);
    gap: 14px;
    border-radius: 18px;
    background: var(--kp-color-surface-page);
    box-shadow: 0 -12px 38px rgb(43 53 112 / 0.24);
    padding: 24px;
}

.kp-admin-availability-time-dialog .kp-admin-rules-delete-dialog__panel {
    width: min(100%, 480px);
    max-width: 480px;
}

.kp-admin-rules-delete-dialog__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-rules-delete-dialog__head h2,
.kp-admin-rules-delete-dialog__head p {
    margin: 0;
}

.kp-admin-rules-delete-dialog__head h2 {
    margin-bottom: 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-admin-rules-delete-dialog__head p {
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.4;
}

.kp-admin-rules-delete-dialog__alert {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin: 0;
}

.kp-admin-rules-delete-dialog__alert-icon {
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-warning-border);
    border-radius: 999px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
}

.kp-admin-rules-delete-dialog__alert strong,
.kp-admin-rules-delete-dialog__alert span span {
    display: block;
}

.kp-admin-rules-delete-dialog__alert strong {
    margin-bottom: 4px;
}

.kp-admin-rules-delete-dialog__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-admin-rules-delete-dialog__actions form,
.kp-admin-rules-delete-dialog__actions .kp-button,
.kp-admin-rules-delete-dialog__secondary form,
.kp-admin-rules-delete-dialog__secondary .kp-button {
    width: 100%;
}

.kp-admin-rules-delete-dialog__secondary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 12px;
}

.kp-admin-rules-capacity-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
}

.kp-admin-rules-capacity-grid div {
    display: grid;
    gap: 1px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: #fff;
    padding: 7px 5px;
    text-align: center;
}

.kp-admin-rules-capacity-grid dt {
    color: var(--kp-color-text-soft);
    font-size: 10.5px;
    line-height: 1.2;
}

.kp-admin-rules-capacity-grid dd {
    order: -1;
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
}

.kp-admin-rules-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 140;
    display: none;
    align-items: center;
    justify-content: center;
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-y: auto;
    background: rgb(15 23 42 / 0.55);
    padding: 24px;
}

.kp-admin-rules-drawer:target,
.kp-admin-rules-drawer--open,
.kp-admin-rules-drawer--inline {
    display: flex;
}

.kp-admin-rules-drawer--inline {
    position: static;
    width: min(100%, 980px);
    align-items: flex-start;
    justify-content: flex-start;
    margin-right: auto;
    margin-left: auto;
    background: transparent;
    padding: 0;
}

.kp-admin-rules-drawer__panel {
    display: grid;
    width: min(100%, 560px);
    max-width: 560px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    border-radius: 18px;
    background: var(--kp-color-surface-page);
    color: #000;
    border-color: #000;
    box-shadow: 0 -12px 38px rgb(43 53 112 / 0.24);
}

.kp-admin-rules-drawer__head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-page);
    padding: 24px 26px 16px;
}

.kp-admin-rules-drawer__head:has(.kp-admin-open-period-form__sticky-range) > div {
    flex: 1 1 auto;
    min-width: 0;
}

.kp-admin-rules-drawer__head:has(.kp-admin-open-period-form__sticky-range) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
}

.kp-admin-rules-drawer__head h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-admin-rules-drawer__head p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-admin-rules-drawer__head .kp-admin-open-period-form__sticky-range {
    display: inline-flex;
    width: 100%;
    max-width: 100%;
    grid-column: 1 / -1;
    margin-top: 8px;
    border-radius: 10px;
    background: var(--kp-color-surface-blue);
    padding: 8px 10px;
}

.kp-admin-rules-drawer__head .kp-admin-open-period-form__sticky-range strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-admin-rules-drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    padding: 8px 12px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 20px;
    text-decoration: none;
    cursor: pointer;
}

.kp-admin-rules-drawer .kp-admin-service-category-form {
    padding: 18px 26px 62px;
}

.kp-admin-rules-drawer .kp-admin-form-section--card {
    margin: 0 0 12px;
}

.kp-admin-open-period-form__grid {
    align-items: end;
}

.kp-admin-open-period-form__month-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.kp-admin-open-period-form__month-title {
    display: grid;
    gap: 2px;
}

.kp-admin-open-period-form__month-head p,
.kp-admin-open-period-form__month-head span {
    margin: 0;
}

.kp-admin-open-period-form__month-head p {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-open-period-form__month-head span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-open-period-form__month-actions {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.kp-admin-open-period-form__month-actions button {
    display: inline-flex;
    min-width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: #fff;
    color: var(--kp-color-text-main);
    cursor: pointer;
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-open-period-form__month-actions [data-open-period-today] {
    padding: 0 9px;
}

.kp-admin-open-period-form__month-actions button:hover,
.kp-admin-open-period-form__month-actions button:focus-visible {
    border-color: var(--kp-color-brand-primary);
    color: var(--kp-color-brand-primary);
}

.kp-admin-open-period-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 54px));
    justify-content: center;
    gap: 6px;
    margin-bottom: 13px;
}

.kp-admin-open-period-calendar__weekday {
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-weight: 800;
    text-align: center;
}

.kp-admin-open-period-calendar__day {
    aspect-ratio: 1 / 1;
    min-width: 0;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: #fff;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.kp-admin-open-period-calendar__day.is-today {
    border-color: var(--kp-color-brand-primary);
    box-shadow: 0 0 0 2px rgba(43, 53, 112, 0.12);
}

.kp-admin-open-period-calendar__day.is-selected {
    border-color: var(--kp-color-surface-blue);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-text-main);
}

.kp-admin-open-period-calendar__day.is-preview {
    border-color: var(--kp-color-surface-blue);
    background: var(--kp-color-surface-blue);
}

.kp-admin-open-period-calendar__day.is-selected.is-edge {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
}

.kp-admin-rules-drawer .kp-admin-open-period-form .kp-admin-service-category-form__actions {
    grid-template-columns: minmax(0, 1fr);
}

.kp-admin-rules-drawer .kp-admin-open-period-form .kp-admin-service-category-form__actions .kp-button {
    border: 0;
    height: 41px;
    min-height: 0;
    box-shadow: 0 1px 3px rgba(43, 53, 112, 0.25);
}

.kp-admin-open-period-form .kp-admin-form-section__card {
    gap: 0;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 14px;
    padding: 14px;
    background: #fff;
    box-shadow: none;
}

.kp-admin-open-period-form .kp-admin-service-category-form__group {
    gap: 8px;
}

.kp-admin-open-period-form .kp-admin-service-category-form__group + .kp-admin-service-category-form__group {
    border-top: 0;
    padding-top: 0;
}

.kp-admin-open-period-form .kp-admin-service-category-form__group:not(:last-child) {
    margin-bottom: 20px;
}

.kp-admin-open-period-form .kp-admin-service-category-form__group:nth-of-type(3) {
    margin-bottom: 15px;
}

.kp-admin-open-period-form .kp-admin-service-category-form__group h2 {
    font-size: 12px;
    line-height: 1.2;
}

.kp-admin-open-period-form__days,
.kp-admin-open-period-form__plages {
    display: grid;
    gap: 6px;
}

.kp-admin-open-period-form__days {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kp-admin-open-period-form__plages {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kp-admin-open-period-form__days label,
.kp-admin-open-period-form__plages label {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: var(--kp-color-surface-soft);
    padding: 8px 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    cursor: pointer;
}

.kp-admin-open-period-form__days label {
    background: var(--kp-color-surface-blue);
    border: 0;
    padding: 10px 4px;
}

.kp-admin-open-period-form__days label:has(input:not(:checked)) {
    background: var(--kp-color-surface-blue);
}

.kp-admin-open-period-form__plages label {
    border-radius: 10px;
    background: #fff;
    padding: 10px 6px;
}

.kp-admin-open-period-form__plages label.is-selected {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
}

.kp-admin-open-period-form__days input,
.kp-admin-open-period-form__plages input {
    width: 14px;
    height: 14px;
    margin: 0;
    accent-color: var(--kp-color-brand-primary);
    flex: 0 0 auto;
}

.kp-admin-open-period-form__categories {
    display: grid;
    gap: 8px;
}

.kp-admin-open-period-form__category {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: flex-start;
    gap: 10px;
    border: 0;
    border-radius: 10px;
    background: #c9ddef;
    padding: 10px 12px;
    color: var(--kp-color-text-main);
    font-size: 13px;
    cursor: pointer;
}

.kp-admin-open-period-form__category > input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-open-period-form__category span {
    display: grid;
    gap: 3px;
}

@media (min-width: 700px) {
    .kp-admin-open-period-form__category > span:not(.kp-admin-open-period-form__capacity-grid) {
        width: 306px;
    }
}

.kp-admin-open-period-form__category strong {
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-admin-open-period-form__category small,
.kp-admin-open-period-form__empty {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-open-period-form__capacity-grid {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    margin-top: 0;
}

.kp-admin-open-period-form__capacity-grid > span {
    display: grid;
    gap: 3px;
}

.kp-admin-open-period-form__capacity-grid small {
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 9px;
    font-weight: 800;
}

.kp-admin-open-period-form__capacity-grid input {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: #fff;
    padding: 7px 5px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.kp-admin-open-period-form__info {
    margin-top: 0;
}

.kp-admin-service-page {
    display: grid;
    gap: 18px;
}

.kp-admin-service-page--compact {
    align-content: start;
    gap: 8px;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow-y: auto;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-admin-shell-proto-brand {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: calc(100% - 40px);
    max-width: 200px;
    min-height: 80px;
    margin: 20px 20px 0;
    padding: 0;
    border-radius: 0;
    color: var(--kp-color-text-inverse);
    font-family: var(--kp-font-heading);
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-admin-shell-proto-brand > img {
    width: auto;
    max-width: 80px;
    height: 80px;
    object-fit: contain;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-shell-brand__label {
    color: var(--kp-color-text-inverse);
    font-size: 20px;
}

.kp-admin-shell-proto-sidebar-label,
.kp-admin-shell-proto-nav-label {
    margin: 0 8px 6px;
    color: color-mix(in srgb, var(--kp-color-text-inverse) 42%, transparent);
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.kp-admin-shell-proto-sidebar-label {
    margin: 4px 20px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--kp-color-text-inverse) 8%, transparent);
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav {
    flex: 1;
    align-content: start;
    gap: 0;
    margin-top: 0;
    padding: 8px 12px 16px;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 38px;
    padding: 9px 12px;
    color: color-mix(in srgb, var(--kp-color-text-inverse) 75%, transparent);
    font-size: 13.5px;
    font-weight: 500;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav a.is-active {
    background: color-mix(in srgb, var(--kp-color-text-inverse) 10%, transparent);
    color: var(--kp-color-text-inverse);
    font-weight: 600;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav a > span {
    display: inline-grid;
    width: 16px;
    place-items: center;
    color: inherit;
    font-size: 14px;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav a > span svg,
.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-admin-shell__nav-disabled > span svg,
.kp-admin-shell-proto-profile .kp-admin-shell-proto-logout svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-admin-shell__nav-disabled {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 38px;
    padding: 9px 12px;
    font-size: 13.5px;
    font-weight: 500;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto .kp-admin-shell__nav-disabled > span {
    display: inline-grid;
    width: 16px;
    place-items: center;
}

.kp-admin-shell__sidebar.kp-admin-shell__sidebar--proto nav a strong {
    margin-left: auto;
    border-radius: 999px;
    background: var(--kp-color-brand-accent-yellow);
    padding: 1px 7px;
    color: var(--kp-color-brand-primary-dark);
    font-size: 10px;
    line-height: 1.5;
}

.kp-admin-shell-proto-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    border-top: 1px solid color-mix(in srgb, var(--kp-color-text-inverse) 8%, transparent);
    padding: 14px 16px;
}

.kp-admin-shell-proto-profile > span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 999px;
    background: var(--kp-color-brand-accent-pink);
    color: var(--kp-color-brand-primary-dark);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-shell-proto-profile div {
    display: grid;
    min-width: 0;
    flex: 1;
}

.kp-admin-shell-proto-profile strong {
    color: var(--kp-color-text-inverse);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    line-height: 1.2;
}

.kp-admin-shell-proto-profile small {
    color: color-mix(in srgb, var(--kp-color-text-inverse) 55%, transparent);
    font-size: 11px;
}

.kp-admin-shell-proto-profile .kp-admin-shell-proto-logout {
    display: grid;
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    place-items: center;
    appearance: none;
    border: 0;
    border-radius: 8px;
    background: color-mix(in srgb, var(--kp-color-text-inverse) 8%, transparent);
    color: color-mix(in srgb, var(--kp-color-text-inverse) 70%, transparent);
    cursor: pointer;
    padding: 0;
    text-decoration: none;
}

.kp-admin-shell-proto-profile .kp-admin-shell-proto-logout:hover {
    cursor: pointer;
}

.kp-admin-service-page > * {
    width: min(100%, 1180px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-service-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
    align-items: start;
    gap: 18px;
}

.kp-admin-service-list-shell,
.kp-admin-service-form-shell,
.kp-admin-service-edit-shell,
.kp-admin-service-list,
.kp-admin-service-form {
    display: grid;
    gap: 14px;
}

.kp-admin-service-form__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    align-items: start;
    gap: 18px;
}

.kp-admin-service-form__main {
    display: grid;
    min-width: 0;
    gap: 16px;
}

.kp-admin-service-form__aside {
    position: sticky;
    top: 124px;
    display: grid;
    align-self: start;
    height: max-content;
    max-height: calc(100vh - 152px);
    gap: 12px;
    min-width: 0;
    align-content: start;
    overflow-y: auto;
}

@media (min-width: 1180px) {
    .kp-admin-service-form__aside {
        position: fixed;
        top: 124px;
        right: max(32px, calc((100vw - 240px - 1180px) / 2 - 48px));
        width: 340px;
        max-height: calc(100vh - 152px);
    }
}

.kp-admin-service-preview-panel,
.kp-admin-service-completion-panel {
    display: grid;
    gap: 12px;
}

.kp-admin-service-preview-panel {
    padding: 0;
}

.kp-admin-service-completion-panel {
    padding: 16px;
}

.kp-admin-service-preview-panel h2,
.kp-admin-service-completion-panel h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

.kp-admin-service-identity-grid {
    grid-template-columns: 140px minmax(0, 1fr);
}

.kp-admin-service-identity-grid .kp-field:first-child {
    grid-column: 1 / -1;
}

.kp-admin-service-identity-grid__icon,
.kp-admin-service-identity-grid__description {
    min-width: 0;
}

.kp-admin-service-completion-panel dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.kp-admin-service-completion-panel dl > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.kp-admin-service-completion-panel dt {
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
}

.kp-admin-service-completion-panel dd {
    margin: 0;
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-heading);
    font-size: 12.5px;
    font-weight: 900;
}

.kp-admin-service-completion-panel dd[data-complete="true"] {
    color: var(--kp-color-success-fg);
}

.kp-admin-service-completion-panel > p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 11.5px;
    line-height: 1.35;
    text-align: center;
}

.kp-admin-service-catalogue-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 16px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    padding: 16px;
}

.kp-admin-service-catalogue-toolbar--compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
    grid-auto-rows: max-content;
    align-items: center;
    align-content: start;
    gap: 8px 18px;
    border-radius: 14px;
    max-height: 104px;
    overflow: hidden;
    padding: 10px 12px;
}

.kp-admin-service-catalogue__mobile-title {
    display: none;
}

.kp-admin-service-catalogue-search {
    position: relative;
    flex: 1 1 420px;
    max-width: 560px;
    min-width: 0;
}

.kp-admin-service-catalogue-toolbar--compact .kp-admin-service-catalogue-search {
    max-width: none;
}

.kp-admin-service-catalogue-toolbar--compact .kp-admin-service-catalogue-search input,
.kp-admin-service-catalogue-toolbar--compact .kp-admin-service-catalogue-select select {
    height: 32px;
    min-height: 32px;
    font-size: 14px;
}

.kp-admin-service-catalogue-toolbar--compact .kp-admin-service-catalogue-search input,
.kp-admin-service-catalogue-toolbar--compact .kp-admin-service-catalogue-select select {
    border-color: var(--kp-color-border-default);
    background: #fff;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kp-color-brand-primary) 8%, transparent);
}

.kp-admin-service-catalogue-search::before {
    position: absolute;
    top: 50%;
    left: 12px;
    color: var(--kp-color-text-muted);
    content: "⌕";
    font-family: var(--kp-font-heading);
    font-weight: 900;
    transform: translateY(-50%);
}

.kp-admin-service-catalogue-search input,
.kp-admin-service-catalogue-select select {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 8px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-main);
    font: inherit;
}

.kp-admin-service-catalogue-search input {
    padding: 9px 12px 9px 34px;
}

.kp-admin-service-catalogue-select {
    flex: 0 0 190px;
    min-width: min(100%, 190px);
}

.kp-admin-service-catalogue-select select {
    padding: 8px 12px;
}

.kp-js .kp-admin-service-catalogue__submit {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.kp-admin-service-catalogue__mobile-new {
    display: none !important;
}

.kp-admin-service-catalogue-chips {
    display: none;
}

.kp-admin-service-catalogue-count {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    padding: 6px 10px;
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
    line-height: 1;
}

.kp-admin-service-page > .kp-admin-service-catalogue-count {
    width: max-content;
    max-width: calc(100% - 32px);
    min-height: 26px;
    justify-self: center;
    align-self: center;
    align-content: center;
    box-sizing: border-box;
    padding: 4px 8px;
}

.kp-admin-service-page--compact > .kp-admin-service-catalogue-count {
    margin-top: -2px;
    margin-bottom: -2px;
}

.kp-admin-service-catalogue-count strong {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
}

.kp-admin-service-catalogue-count span {
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-admin-service-catalogue-count a {
    border-left: 1px solid var(--kp-color-border-soft);
    padding-left: 7px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-weight: 900;
    text-decoration: none;
}

.kp-admin-service-catalogue-count a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-admin-service-catalogue-rail {
    display: flex;
    width: 100%;
    grid-column: 1 / -1;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    border-top: 1px solid var(--kp-color-border-soft);
    padding: 7px 0 0;
    white-space: nowrap;
}

.kp-admin-service-catalogue-rail a {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 32px;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: var(--kp-color-surface-page);
    padding: 5px 9px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.kp-admin-service-catalogue-rail a.is-active {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-service-catalogue-rail a:not(.is-active) {
    background: #fff;
}

.kp-admin-service-catalogue-rail strong {
    display: inline-grid;
    min-width: 21px;
    min-height: 21px;
    place-items: center;
    border-radius: 999px;
    background: rgb(255 255 255 / 0.9);
    color: inherit;
    font-size: 11px;
    line-height: 1;
}

.kp-admin-service-catalogue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 12px;
}

.kp-admin-service-card--compact .kp-admin-service-card__link {
    min-height: 100%;
}

.kp-admin-service-catalogue-grid .kp-admin-service-empty {
    grid-column: 1 / -1;
    min-height: 148px;
    align-content: center;
}

.kp-admin-service-card__link {
    position: relative;
    display: grid;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 11px 12px;
    color: inherit;
    text-decoration: none;
}

.kp-admin-service-card__title {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13.5px;
    font-weight: 900;
    line-height: 1.25;
}

.kp-admin-service-card__group,
.kp-admin-service-card__description {
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
    line-height: 1.35;
}

.kp-admin-service-card__description {
    margin-top: -2px;
}

.kp-admin-service-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 7px;
}

.kp-admin-service-card__footer strong {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 900;
}

.kp-admin-service-card__footer em {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}

.kp-admin-service-card__footer em svg {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.kp-admin-service-lifecycle {
    display: grid;
    gap: 12px;
}

.kp-admin-service-lifecycle--prototype {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border-color: var(--kp-color-danger-border, #FECACA);
    background: var(--kp-color-danger-bg, #FEE2E2);
    box-shadow: none;
}

.kp-admin-service-lifecycle h2,
.kp-admin-service-lifecycle p {
    margin: 0;
}

.kp-admin-service-lifecycle p:not(.kp-section-label) {
    max-width: 64ch;
    color: var(--kp-color-danger-fg, #991B1B);
    font-size: 13px;
}

.kp-admin-service-lifecycle h2 {
    color: var(--kp-color-text-main);
    font-size: 18px;
}

.kp-admin-service-lifecycle__actions {
    display: grid;
    gap: 10px;
    justify-items: end;
}

.kp-admin-service-lifecycle__actions .kp-button {
    min-width: 132px;
    border: 1px solid var(--kp-color-danger-fg, #B91C1C);
    background: var(--kp-color-danger-fg, #B91C1C);
    justify-content: center;
}

.kp-admin-service-lifecycle__actions form {
    margin: 0;
}

.kp-admin-service-lifecycle__secondary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 10px;
}

.kp-admin-service-delete-dialog[hidden] {
    display: none;
}

.kp-admin-service-delete-dialog {
    position: fixed;
    inset: 0;
    z-index: 160;
    display: grid;
    place-items: center;
    padding: 24px;
}

.kp-admin-service-page > .kp-admin-service-delete-dialog {
    width: auto;
    max-width: none;
    margin: 0;
}

.kp-admin-service-delete-dialog__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(15 23 42 / 0.55);
}

.kp-admin-service-delete-dialog__panel {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(100%, 460px);
    gap: 14px;
    border-radius: 18px;
    background: var(--kp-color-surface-page);
    box-shadow: 0 24px 60px rgb(43 53 112 / 0.24);
    padding: 24px;
}

.kp-admin-service-delete-dialog__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-service-delete-dialog__head h2,
.kp-admin-service-delete-dialog__head p {
    margin: 0;
}

.kp-admin-service-delete-dialog__head h2 {
    margin-bottom: 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    line-height: 1.15;
}

.kp-admin-service-delete-dialog__head p {
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.4;
}

.kp-admin-service-delete-dialog__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-admin-service-delete-dialog__actions form,
.kp-admin-service-delete-dialog__actions .kp-button {
    width: 100%;
}

.kp-admin-service-empty {
    display: grid;
    gap: 14px;
}

.kp-admin-service-card {
    display: block;
    overflow: hidden;
    border-color: var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    padding: 0;
}

.kp-admin-prototype-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.kp-admin-prototype-stat {
    display: grid;
    gap: 3px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    padding: 12px 14px;
}

.kp-admin-prototype-stat span {
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-admin-prototype-stat strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 22px;
    line-height: 1.1;
}

.kp-admin-service-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 0;
}

.kp-admin-service-card__identity {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 9px;
}

.kp-admin-service-card__icon,
.kp-admin-service-preview__icon {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 9px;
    background: rgb(255 255 255 / 0.86);
    font-size: 18px;
}

.kp-admin-service-card__nameblock {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.kp-admin-service-card__chevron {
    position: absolute;
    top: 13px;
    right: 12px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
}

.kp-admin-service-card h3,
.kp-admin-service-empty h3 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 17px;
    line-height: 1.2;
}

.kp-admin-service-card h3 a {
    color: inherit;
    text-decoration: none;
}

.kp-admin-service-card h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-admin-service-card p,
.kp-admin-service-empty p {
    margin: 4px 0 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.kp-admin-service-card dl,
.kp-admin-service-form__readonly {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.kp-admin-service-form__readonly {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 14px;
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 14px;
}

.kp-admin-service-boundary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.kp-admin-service-boundary__icon {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 999px;
    background: #F8FCFF;
    color: var(--kp-color-info-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-service-boundary > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.kp-admin-service-boundary > div span {
    display: block;
}

.kp-admin-service-duration-help {
    display: grid;
    gap: 3px;
    margin: 14px 0;
    border: 1px solid #EFE8D6;
    border-radius: 10px;
    background: #FAF6EC;
    padding: 12px 14px;
}

.kp-admin-service-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.kp-admin-service-duration-help strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12.5px;
    line-height: 1.2;
}

.kp-admin-service-duration-help span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-category-summary,
.kp-admin-service-pricing-warning {
    display: grid;
    gap: 4px;
    margin-top: 14px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    padding: 12px;
}

.kp-admin-service-category-summary {
    margin-bottom: 14px;
    border-color: #EFE8D6;
    background: var(--kp-color-surface-blue);
}

.kp-admin-service-pricing-warning {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin-top: 0;
    border-color: #FDE68A;
    background: #FEF3C7;
    border-radius: 12px;
    padding: 12px 16px;
}

.kp-admin-service-pricing-warning__icon {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid #F6C453;
    border-radius: 999px;
    background: #FFFBEB;
    color: #C97C10;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-service-pricing-warning > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.kp-admin-service-category-summary strong,
.kp-admin-service-pricing-warning strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    line-height: 1.25;
}

.kp-admin-service-pricing-warning strong {
    color: #C97C10;
    font-weight: 700;
}

.kp-admin-service-category-summary span,
.kp-admin-service-pricing-warning > div span {
    font-size: 13px;
    line-height: 1.5;
}

.kp-admin-service-category-summary span {
    color: var(--kp-color-text-soft);
}

.kp-admin-service-pricing-warning > div span {
    color: #C97C10;
}

.kp-admin-service-species {
    display: grid;
    gap: 8px;
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

.kp-admin-service-species legend {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

.kp-admin-service-species__choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.kp-admin-service-species__choice,
.kp-admin-service-ok-cats {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    padding: 10px 12px;
    color: var(--kp-color-text-main);
}

.kp-admin-service-species__choice {
    justify-content: center;
    border-color: var(--kp-color-border-default);
    border-width: 1.5px;
    padding: 9px 8px;
    color: var(--kp-color-text-soft);
    text-align: center;
    cursor: pointer;
}

.kp-admin-service-species__choice:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-service-species__choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.kp-admin-service-ok-cats input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 1px 0 0;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-service-species__choice span,
.kp-admin-service-ok-cats strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-service-ok-cats {
    margin-top: 12px;
    border-color: #BAE6FD;
    background: #E0F2FE;
}

.kp-admin-service-ok-cats strong {
    color: #0369A1;
}

.kp-admin-service-ok-cats small {
    display: block;
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-ok-cats span {
    display: grid;
    gap: 3px;
}

.kp-admin-service-ok-cats small {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-card dt,
.kp-admin-service-form__readonly dt {
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-admin-service-card dd,
.kp-admin-service-form__readonly dd {
    margin: 2px 0 0;
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-admin-service-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 0;
}

.kp-admin-service-card__chip {
    display: inline-flex;
    min-height: 21px;
    align-items: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 5px;
    padding: 3px 7px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.kp-admin-service-card__chip--duration,
.kp-admin-service-card__chip--nac {
    border-color: #F6D06C;
    background: var(--kp-color-warning-bg);
    color: #C97C10;
}

.kp-admin-service-card__chip--visible,
.kp-admin-service-card__chip--cat {
    border-color: #BDECCF;
    background: #DDF7E8;
    color: var(--kp-color-success-fg);
}

.kp-admin-service-card__chip--dog {
    border-color: #C9DDF5;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-admin-service-card__chip--neutral {
    border-color: #E2E8F0;
    background: #F8FAFC;
    color: var(--kp-color-text-soft);
}

.kp-admin-service-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.kp-admin-service-card__actions form {
    margin: 0;
}

.kp-admin-protected-actions {
    display: grid;
    gap: 8px;
}

.kp-admin-protected-actions summary,
.kp-admin-rule-simulator-trace summary {
    cursor: pointer;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-admin-protected-actions[open] {
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 8px;
}

.kp-admin-service-form__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    justify-content: stretch;
    border-top: 0;
    padding-top: 0;
}

.kp-admin-service-form__actions .kp-button {
    justify-content: center;
    width: 100%;
}

.kp-admin-service-form__actions .kp-button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.kp-admin-service-form__secondary-actions {
    display: grid;
    gap: 8px;
}

.kp-admin-service-form__secondary-actions summary {
    justify-self: center;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.kp-admin-service-form__secondary-actions[open] {
    border-top: 1px solid var(--kp-color-border-soft);
    padding-top: 8px;
}

.kp-admin-service-choice-stack {
    display: grid;
    gap: 8px;
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

.kp-admin-service-choice-stack legend {
    margin-bottom: 8px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-admin-service-choice-card {
    display: block;
    cursor: pointer;
}

.kp-admin-service-choice-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.kp-admin-service-choice-card__body {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border: 1.5px solid var(--kp-color-border-default);
    border-radius: 10px;
    background: #fff;
    padding: 11px 12px;
    transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.kp-admin-service-choice-card input:checked + .kp-admin-service-choice-card__body {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    box-shadow: 0 0 0 1px rgb(69 84 165 / 0.08);
}

.kp-admin-service-choice-card input:focus-visible + .kp-admin-service-choice-card__body {
    outline: 3px solid rgb(69 84 165 / 0.24);
    outline-offset: 2px;
}

.kp-admin-service-choice-card__dot {
    display: grid;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    place-items: center;
    border: 2px solid color-mix(in srgb, var(--kp-color-brand-primary) 72%, #fff);
    border-radius: 999px;
    margin-top: 2px;
    background: #fff;
}

.kp-admin-service-choice-card input:checked + .kp-admin-service-choice-card__body .kp-admin-service-choice-card__dot {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
}

.kp-admin-service-choice-card input:checked + .kp-admin-service-choice-card__body .kp-admin-service-choice-card__dot::after {
    content: "✓";
    color: #fff;
    font-family: var(--kp-font-heading);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
}

.kp-admin-service-choice-card__content {
    display: grid;
    flex: 1 1 auto;
    min-width: 0;
    gap: 3px;
}

.kp-admin-service-choice-card__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}

.kp-admin-service-choice-card__head strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
}

.kp-admin-service-choice-badge {
    display: inline-block;
    border-radius: 999px;
    border: 1px solid #BBF7D0;
    background: #DCFCE7;
    padding: 2px 10px;
    color: #16A34A;
    font-family: var(--kp-font-body);
    font-size: 11px;
    font-style: normal;
    font-weight: 600;
    white-space: nowrap;
}

.kp-admin-service-choice-badge--proposed {
    border-color: #FCD34D;
    background: #FFFBEB;
    color: #92400E;
}

.kp-admin-service-choice-badge--neutral {
    border-color: #CBD5E1;
    background: #F1F5F9;
    color: #64748B;
}

.kp-admin-service-choice-card__content > span:last-child {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-preview h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-admin-service-preview p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-preview {
    display: grid;
    gap: 12px;
    border: 1.5px solid #FDE68A;
    border-radius: 12px;
    background: #FEF3C7;
    padding: 14px;
}

.kp-admin-service-preview--success {
    border-color: #BBF7D0;
    background: #DCFCE7;
}

.kp-admin-service-preview--warning {
    border-color: #FDE68A;
    background: #FEF3C7;
}

.kp-admin-service-preview__head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.kp-admin-service-preview__body {
    display: grid;
    gap: 10px;
}

.kp-admin-service-preview__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid color-mix(in srgb, var(--kp-color-border-default) 65%, transparent);
    padding-top: 10px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 900;
}

.kp-admin-service-preview .kp-admin-service-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.kp-admin-service-preview .kp-admin-service-card__chips span {
    border: 1px solid color-mix(in srgb, var(--kp-color-border-default) 80%, transparent);
    border-radius: 999px;
    background: rgb(255 255 255 / 0.72);
    padding: 4px 8px;
    color: var(--kp-color-text-main);
    font-size: 11px;
    font-weight: 800;
}

.kp-admin-service-exception-page {
    display: grid;
    gap: 18px;
}

.kp-admin-service-exception-page > * {
    width: min(100%, 980px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-service-exception-panel {
    display: grid;
    gap: 12px;
    border: 1px solid var(--kp-color-border-default);
    padding: 24px;
}

.kp-admin-service-exception-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 2px;
}

.kp-admin-service-exception-panel__head h2 {
    margin: 0 0 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-service-exception-panel__head h3,
.kp-admin-rule-simulator-form h3 {
    margin: 0 0 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-service-exception-panel__head p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.kp-admin-service-exception-list,
.kp-admin-service-exception-form {
    display: grid;
    gap: 10px;
}

.kp-admin-service-exception-empty,
.kp-admin-service-exception-card {
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
    padding: 14px;
}

.kp-admin-service-exception-empty h3,
.kp-admin-service-exception-card h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-admin-service-exception-card {
    display: grid;
    gap: 10px;
}

.kp-admin-service-exception-card p,
.kp-admin-service-exception-empty p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-service-exception-card__body,
.kp-admin-service-exception-card__actions {
    display: grid;
    gap: 8px;
}

.kp-admin-service-exception-card__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.kp-admin-service-exception-card__rule {
    display: grid;
    gap: 3px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    background: var(--kp-color-surface-card);
    padding: 9px 10px;
}

.kp-admin-service-exception-card__rule p:not(.kp-admin-service-exception-card__rule-label) {
    color: var(--kp-color-text-main);
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-service-exception-card__rule-label {
    color: var(--kp-color-text-muted) !important;
    font-family: var(--kp-font-body);
    font-size: 10px !important;
    font-weight: 900;
    line-height: 1.15 !important;
    text-transform: uppercase;
}

.kp-admin-service-exception-card__reason {
    color: var(--kp-color-text-soft);
}

.kp-admin-rules-inline-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9px;
    background: var(--kp-color-surface-alt);
    padding: 10px 12px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.kp-admin-rules-inline-action--danger {
    background: var(--kp-color-danger-bg, #fee2e2);
    color: var(--kp-color-danger-fg, #dc2626);
}

.kp-admin-service-exception-drawer {
    position: fixed;
    inset: 0;
    z-index: 140;
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    background: rgb(15 23 42 / 0.55);
    padding: 24px;
    display: none;
}

.kp-admin-service-exception-drawer:target,
.kp-admin-service-exception-drawer.is-open {
    display: flex;
}

.kp-admin-service-exception-drawer .kp-admin-rules-drawer__panel {
    width: min(100%, 560px);
}

.kp-admin-service-exception-drawer .kp-admin-service-exception-form {
    padding: 18px 26px 62px;
}

.kp-admin-service-exception-drawer .kp-admin-form-section--card {
    margin: 0 0 12px;
}

.kp-admin-service-exception-drawer .kp-admin-form-section__card {
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 14px;
}

.kp-admin-service-exception-form__grid {
    grid-template-columns: 1fr;
    gap: 12px;
}

.kp-admin-service-exception-form__grid .kp-field__control {
    border-width: 1.5px;
    border-radius: 10px;
}

.kp-admin-service-exception-form__grid .kp-field__label {
    color: var(--kp-color-text-soft);
    font-size: 11px;
    font-weight: 800;
    text-transform: none;
}

.kp-admin-service-exception-form [data-animal-select-field].is-hidden {
    display: none;
}

.kp-admin-service-exception-choice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-surface-alt);
    padding: 10px 12px;
    color: var(--kp-color-text-main);
    font-size: 13px;
    line-height: 1.35;
    cursor: pointer;
}

.kp-admin-service-exception-choice input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-service-exception-choice__title {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-service-exception-choice__hint {
    display: block;
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-service-exception-animal-list {
    display: grid;
    gap: 8px;
}

.kp-admin-service-exception-animal-choice {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 10px;
    background: var(--kp-color-surface-card);
    padding: 10px 12px;
    color: var(--kp-color-text-main);
    font-size: 13px;
    cursor: pointer;
}

.kp-admin-service-exception-animal-choice:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-alt);
}

.kp-admin-service-exception-animal-choice input {
    width: 18px;
    height: 18px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-service-exception-animal-choice__name {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-admin-service-exception-animal-choice__meta {
    margin-left: 6px;
    color: var(--kp-color-text-soft);
}

.kp-admin-service-exception-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-service-exception-toggle input {
    width: 18px;
    height: 18px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-service-exception-preview {
    margin-top: 14px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-info-bg);
    padding: 12px 14px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.4;
}

.kp-admin-service-exception-form__actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(220px, 320px);
    gap: 10px;
    justify-content: center;
    border-top: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-page);
    padding: 10px 0 14px;
}

.kp-admin-service-exception-form__actions .kp-button {
    width: 100%;
    justify-content: center;
}

.kp-admin-rule-simulator-actions {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
    justify-content: stretch;
}

.kp-admin-rule-simulator-actions .kp-button {
    width: 100%;
    justify-content: center;
}

.kp-admin-rule-simulator-page {
    display: grid;
    gap: 18px;
}

.kp-admin-rule-simulator-page > * {
    width: min(100%, 980px);
    margin-right: auto;
    margin-left: auto;
}

.kp-admin-rule-simulator-layout:not(.kp-admin-rules-layout) {
    display: block;
}

.kp-admin-rule-simulator-form {
    display: grid;
    gap: 14px;
    padding: 24px;
}

.kp-admin-rule-simulator-form--mobile-inline {
    padding: 0;
}

.kp-admin-rule-simulator-form .kp-admin-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.kp-admin-rule-simulator-context-field {
    grid-column: 1 / -1;
}

.kp-admin-rule-simulator-intro {
    margin: 0;
    max-width: 700px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.kp-admin-rule-simulator-note {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-surface-page);
    padding: 12px;
}

.kp-admin-rule-simulator-note .kp-admin-rules-panel__alert-copy strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
}

.kp-admin-rule-simulator-note .kp-admin-rules-panel__alert-copy > span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-rule-simulator-actions {
    justify-content: flex-start;
    border-top: 0;
    padding-top: 0;
}

.kp-admin-rule-simulator-empty,
.kp-admin-rule-simulator-result {
    display: grid;
    gap: 4px;
    margin-top: -2px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 10px;
    background: var(--kp-color-surface-alt);
    padding: 12px 14px;
}

.kp-admin-rule-simulator-empty[hidden],
.kp-admin-rule-simulator-result[hidden] {
    display: none;
}

.kp-admin-rule-simulator-result__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.kp-admin-rule-simulator-result__head p,
.kp-admin-rule-simulator-result > p,
.kp-admin-rule-simulator-empty p,
.kp-admin-rule-simulator-result-lines p,
.kp-admin-rule-simulator-trace p {
    margin: 0;
}

.kp-admin-rule-simulator-result__head p {
    color: var(--kp-color-success-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
}

.kp-admin-rule-simulator-result.is-refused .kp-admin-rule-simulator-result__head p {
    color: var(--kp-color-warning-fg);
}

.kp-admin-rule-simulator-result.is-allowed {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
}

.kp-admin-rule-simulator-result.is-refused {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
}

.kp-admin-rule-simulator-result > p,
.kp-admin-rule-simulator-empty p,
.kp-admin-rule-simulator-result-lines p {
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-admin-rule-simulator-result-lines {
    display: grid;
    gap: 4px;
    margin-top: 2px;
}

.kp-admin-rule-simulator-result-lines p {
    font-size: 11.5px;
}

.kp-admin-rule-simulator-trace {
    display: grid;
    gap: 8px;
    margin-top: 4px;
}

.kp-admin-rule-simulator-trace article {
    display: grid;
    gap: 3px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: var(--kp-color-surface-page);
    padding: 10px 12px;
}

.kp-admin-rule-simulator-trace strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
    overflow-wrap: anywhere;
}

.kp-admin-rule-simulator-trace span,
.kp-admin-rule-simulator-trace p {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-draft-panel {
    position: sticky;
    top: 150px;
    z-index: 2;
    display: grid;
    gap: 12px;
    align-self: start;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    padding: 16px;
}

.kp-admin-draft-panel.has-drafts {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
}

.kp-admin-draft-panel:not(.has-drafts) {
    position: static;
}

.kp-admin-draft-panel.has-drafts .kp-admin-draft-panel__list {
    max-height: 240px;
    overflow: auto;
    padding-right: 2px;
}

.kp-admin-draft-panel h2 {
    margin: 0 0 4px;
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
}

.kp-admin-draft-panel p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.kp-admin-draft-panel__summary {
    display: grid;
    gap: 8px;
    margin-bottom: 0;
}

.kp-admin-draft-panel__count-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-top: 1px solid var(--kp-color-warning-border);
    padding: 7px 0 0;
}

.kp-admin-draft-panel__count-row span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-draft-panel__count-row strong {
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 900;
}

.kp-admin-draft-panel__list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kp-admin-draft-panel__list li {
    border: 1px solid var(--kp-color-warning-border);
    border-radius: 10px;
    background: var(--kp-color-surface-card);
}

.kp-admin-draft-panel__item {
    display: grid;
    padding: 9px 10px;
    color: inherit;
    text-decoration: none;
}

.kp-admin-draft-panel__item:hover,
.kp-admin-draft-panel__item:focus-visible {
    outline: var(--kp-focus-ring);
    outline-offset: var(--kp-focus-offset);
}

.kp-admin-draft-panel__item span {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-draft-panel__actions {
    display: grid;
    gap: 8px;
    margin-top: 2px;
}

.kp-admin-draft-panel__action-copy {
    display: grid;
    gap: 2px;
}

.kp-admin-draft-panel__action-copy strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
}

.kp-admin-draft-panel__action-copy span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.25;
}

.kp-admin-draft-panel__actions form,
.kp-admin-draft-panel__actions .kp-button {
    width: 100%;
    margin: 0;
}

.kp-admin-draft-guard[hidden] {
    display: none;
}

.kp-admin-draft-guard {
    position: fixed;
    inset: 0;
    z-index: 220;
    display: grid;
    place-items: center;
    background: rgb(20 27 55 / 0.42);
    padding: 18px;
}

.kp-admin-draft-guard__panel {
    display: grid;
    gap: 12px;
    width: min(100%, 440px);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    box-shadow: var(--kp-shadow-card);
    padding: 20px;
}

.kp-admin-draft-guard__panel h2 {
    margin: 0;
    font-family: var(--kp-font-heading);
    font-size: 22px;
    line-height: 1.2;
}

.kp-admin-draft-guard__panel p:not(.kp-section-label) {
    margin: 0;
    color: var(--kp-color-text-soft);
    line-height: 1.45;
}

.kp-admin-draft-guard__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.kp-admin-draft-guard__actions form {
    display: contents;
}

.kp-admin-animal-form__checkbox {
    margin-top: 14px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 400;
}

.kp-admin-animal-form__actions {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    border-top: 0;
    padding-top: 0;
}

.kp-admin-animal-form__action-buttons {
    display: flex;
    gap: 10px;
}

.kp-admin-detail-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
}

.kp-admin-detail-list div {
    min-width: 0;
}

.kp-admin-detail-list dt {
    margin-bottom: 4px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-admin-detail-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--kp-color-text-main);
    font-weight: 800;
}

.kp-admin-customer-detail__split {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.kp-admin-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.kp-admin-panel-heading > div {
    min-width: 0;
}

.kp-admin-inline-action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    border: 0;
    background: transparent;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.kp-admin-customer-detail h2,
.kp-admin-customer-detail p {
    margin: 0;
}

.kp-admin-customer-detail p:not(.kp-section-label) {
    color: var(--kp-color-text-soft);
}

.kp-admin-animal-list,
.kp-admin-animal-form,
.kp-admin-document-list,
.kp-admin-document-form,
.kp-admin-document {
    display: grid;
    gap: 18px;
}

.kp-admin-document {
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 8px;
    padding: 18px;
    background: var(--kp-color-surface-page);
}

.kp-admin-animal-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.kp-admin-animal-card {
    position: relative;
    display: flex;
    min-height: 196px;
    flex-direction: column;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 18px;
    background: var(--kp-color-surface-card);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--kp-color-text-main) 7%, transparent);
}

.kp-admin-animal-card__summary {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 44px;
    margin-bottom: 12px;
    padding-right: 28px;
}

.kp-admin-animal-card__image {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 12px;
    font-size: 22px;
}

a.kp-admin-animal-card__image {
    color: inherit;
    text-decoration: none;
}

.kp-admin-animal-card__image--chien {
    background: var(--kp-color-warning-bg);
}

.kp-admin-animal-card__image--chat {
    background: var(--kp-color-surface-blue);
}

.kp-admin-animal-card__image--nac {
    background: var(--kp-color-success-bg);
}

.kp-admin-animal-card__identity {
    min-width: 0;
    flex: 1 1 auto;
}

.kp-admin-animal-card h3,
.kp-admin-animal-form h3,
.kp-admin-document h3 {
    margin: 0 0 2px;
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
}

.kp-admin-animal-card h3 a {
    color: inherit;
    text-decoration: none;
}

.kp-admin-animal-card h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-admin-animal-card__mobile-species {
    display: none;
}

.kp-admin-animal-card__mobile-chevron {
    display: none;
}

.kp-admin-animal-card__identity p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    overflow-wrap: anywhere;
}

.kp-admin-animal-card__metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin-top: 2px;
}

.kp-admin-animal-card__metrics span + span::before {
    content: "·";
    margin-right: 8px;
}

.kp-admin-animal-card__cat-badge {
    display: inline-flex;
    min-height: 22px;
    align-items: center;
    width: fit-content;
    margin-top: 6px;
    border: 1px solid;
    border-radius: 999px;
    padding: 3px 8px;
    font-family: var(--kp-font-body);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}

.kp-admin-animal-card__cat-badge--ok {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-animal-card__cat-badge--ko {
    border-color: var(--kp-color-error-border);
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-admin-animal-card__notes {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    font-style: italic;
    line-height: 1.35;
}

.kp-admin-animal-card__delete {
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
    padding-top: 14px;
}

.kp-admin-animal-card__delete-button {
    min-height: 32px;
    border: 0;
    border-radius: 8px;
    padding: 7px 10px;
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.kp-admin-animal-card__delete-button:hover {
    filter: brightness(0.98);
}

.kp-admin-animal-card__edit-link {
    position: absolute;
    top: 18px;
    right: 18px;
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--kp-color-text-main);
    list-style: none;
    cursor: pointer;
}

.kp-admin-animal-card__edit-link svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.kp-admin-animal-create-panel {
    border-radius: 12px;
    background: var(--kp-color-surface-card);
}

.kp-admin-animal-create-panel[hidden] {
    display: none;
}

.kp-admin-animal-create-panel .kp-admin-animal-form {
    margin-top: 0;
}

.kp-admin-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.kp-admin-choice-card {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 10px;
    border: 1.5px solid var(--kp-color-border-default);
    border-radius: 12px;
    padding: 12px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-main);
    cursor: pointer;
}

.kp-admin-choice-card:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
}

.kp-admin-choice-card input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-choice-card span {
    min-width: 0;
}

.kp-admin-choice-card strong {
    display: block;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-choice-card small {
    display: block;
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-inline-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--kp-color-text-main);
    cursor: pointer;
}

.kp-admin-inline-check input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-admin-inline-check strong,
.kp-admin-inline-check small {
    display: block;
}

.kp-admin-inline-check strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-admin-inline-check small {
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-admin-create-panel {
    display: grid;
    gap: 14px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 14px;
    background: var(--kp-color-surface-soft);
}

.kp-admin-create-panel summary {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.kp-admin-create-panel[open] summary {
    margin-bottom: 14px;
}

.kp-checkbox-field {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    color: var(--kp-color-text-main);
    font-weight: 800;
}

.kp-field.kp-checkbox-field {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.kp-checkbox-field input {
    width: 18px;
    height: 18px;
}

.kp-legal-page {
    width: min(100% - 2rem, 960px);
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4.5rem) 0;
}

.kp-legal-page__header {
    margin-bottom: 1.5rem;
}

.kp-legal-page__header h1 {
    max-width: 20ch;
    margin: .35rem 0 .5rem;
}

.kp-legal-page__release-warning {
    margin-bottom: 1.5rem;
}

.kp-legal-page__summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.kp-legal-page__summary a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .2rem;
    min-width: 0;
    padding: 1rem 1.15rem;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 1rem;
    background: var(--kp-color-surface-card, #fff);
    color: var(--kp-color-brand-primary, #293778);
    text-decoration: none;
    box-shadow: 0 .35rem 1rem rgba(38, 50, 56, .06);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.kp-legal-page__summary a > span,
.kp-legal-page__summary a > strong {
    grid-column: 1;
}

.kp-legal-page__summary-arrow {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    font-size: 1.25rem;
}

.kp-legal-page__summary a:hover {
    border-color: var(--kp-color-brand-primary, #293778);
    box-shadow: 0 .5rem 1.25rem rgba(38, 50, 56, .1);
}

.kp-legal-page__summary-label {
    color: var(--kp-color-text-soft);
    font-size: .8rem;
    font-weight: 700;
}

.kp-legal-document {
    padding: clamp(1.25rem, 4vw, 3rem);
    color: var(--kp-color-text, #263238);
    line-height: 1.7;
}

.kp-legal-document h2 {
    margin: 2rem 0 .75rem;
    font-size: clamp(1.2rem, 2.5vw, 1.55rem);
}

.kp-legal-document h2[id] {
    scroll-margin-top: 6rem;
}

.kp-legal-document h2:first-child {
    margin-top: 0;
}

.kp-legal-document a,
.kp-legal-page__versions a {
    text-decoration: underline;
    text-underline-offset: .16em;
}

.kp-legal-document address {
    font-style: normal;
}

.kp-legal-document blockquote {
    margin: 1rem 0;
    padding: 1rem 1.25rem;
    border-left: .25rem solid #e1a96d;
    background: #fff8ef;
}

.kp-legal-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.kp-legal-document table {
    width: 100%;
    border-collapse: collapse;
    min-width: 36rem;
}

.kp-legal-document th,
.kp-legal-document td {
    padding: .75rem;
    border: 1px solid #d9e0dc;
    text-align: left;
    vertical-align: top;
}

.kp-legal-page__versions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    align-items: center;
    margin-top: 1.25rem;
}

.kp-legal-consent {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: start;
    margin: 0;
    padding: .9rem 1rem;
    border: 1px solid transparent;
    border-radius: .85rem;
    line-height: 1.45;
}

.kp-legal-consents {
    display: grid;
    gap: .65rem;
    margin: 1rem 0;
}

.kp-legal-consent input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
}

.kp-legal-consent--error {
    border-color: #c63e35;
    background: #fff2f1;
    color: #8d211b;
}

.kp-legal-consent--error input {
    outline: 2px solid #c63e35;
    outline-offset: 2px;
}

.kp-legal-consent--error a {
    color: inherit;
}

.kp-legal-consent__error {
    grid-column: 2;
    margin: 0;
    color: #a32a24;
    font-size: .9rem;
}

@media (max-width: 640px) {
    .kp-legal-page {
        width: min(100% - 1.25rem, 960px);
    }

    .kp-legal-document {
        border-radius: 1rem;
    }

    .kp-legal-page__summary {
        grid-template-columns: 1fr;
    }
}

.kp-admin-muted {
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-admin-status-badge {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 999px;
    padding: 6px 12px;
    background: var(--kp-color-surface-page);
    color: var(--kp-color-text-main);
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.kp-admin-status-badge--sent,
.kp-admin-status-badge--activated {
    border-color: color-mix(in srgb, var(--kp-color-success-fg) 32%, var(--kp-color-border-default));
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-status-badge--expired {
    border-color: color-mix(in srgb, var(--kp-color-error-fg) 28%, var(--kp-color-border-default));
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-admin-section-card {
    display: grid;
    max-width: 760px;
    gap: 10px;
}

.kp-admin-section-card h2,
.kp-admin-section-card p {
    margin: 0;
}

.kp-admin-section-card h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    line-height: 1.2;
}

.kp-admin-section-card p:not(.kp-badge) {
    color: var(--kp-color-text-soft);
}

.kp-admin-section-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.kp-admin-customer-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

.kp-admin-customer-page {
    overflow-x: hidden;
}

.kp-admin-back-link {
    display: inline-flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-back-link::before {
    content: "<";
    margin-right: 8px;
}

.kp-admin-dirty-alert {
    margin: 0 0 16px;
}

.kp-admin-dirty-bottom-bubble {
    display: none;
}

.kp-admin-flash-alert {
    margin: 0 0 16px;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 220ms ease, transform 220ms ease;
}

.kp-admin-ajax-toast {
    position: sticky;
    z-index: 8;
    top: 92px;
    margin: 0 0 16px;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 220ms ease, transform 220ms ease;
}

.kp-admin-flash-alert.is-hiding,
.kp-admin-ajax-toast.is-hiding {
    opacity: 0;
    transform: translateY(-6px);
}

.kp-admin-dirty-badge[hidden],
.kp-admin-dirty-alert[hidden],
.kp-admin-dirty-bottom-bubble[hidden],
.kp-admin-flash-alert[hidden],
.kp-admin-ajax-toast[hidden] {
    display: none;
}

.kp-admin-customer-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 20px;
}

.kp-admin-customer-profile {
    align-self: start;
    padding: 24px;
}

.kp-admin-customer-profile__avatar {
    display: grid;
    width: 80px;
    height: 80px;
    place-items: center;
    margin: 0 auto 16px;
    border-radius: 999px;
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
    font-family: var(--kp-font-heading);
    font-size: 28px;
    font-weight: 800;
}

.kp-admin-customer-profile h2 {
    margin: 0 0 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
}

.kp-admin-customer-profile > p {
    margin: 0 0 16px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    text-align: center;
}

.kp-admin-customer-profile__contact {
    display: grid;
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.kp-admin-customer-profile__contact li {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    color: var(--kp-color-text-main);
    font-size: 13px;
}

.kp-admin-customer-profile__contact span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.kp-admin-profile-icon {
    display: inline-grid;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    place-items: center;
    color: var(--kp-color-brand-primary);
}

.kp-admin-profile-icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.kp-admin-customer-profile__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.kp-admin-customer-profile__stats div {
    display: grid;
    gap: 2px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 12px;
    background: var(--kp-color-surface-soft);
    text-align: center;
}

.kp-admin-customer-profile__stats span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-admin-customer-profile__stats strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
}

.kp-admin-customer-profile__divider {
    height: 1px;
    margin: 16px 0;
    background: var(--kp-color-border-soft);
}

.kp-admin-customer-profile__status,
.kp-admin-customer-profile__account {
    display: grid;
    justify-items: center;
    gap: 10px;
    margin-top: 12px;
    text-align: center;
}

.kp-admin-customer-profile__account {
    margin-top: 0;
}

.kp-admin-customer-profile__account--top {
    margin-top: -6px;
}

.kp-admin-customer-profile__account .kp-admin-muted {
    margin: 0;
    line-height: 1.35;
}

.kp-admin-profile-pill {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid;
    border-radius: 999px;
    padding: 4px 12px;
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.kp-admin-profile-pill--success {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-admin-profile-pill--warning {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-admin-customer-profile__label {
    margin: 0 0 8px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 800;
}

.kp-admin-customer-profile .kp-alert {
    margin-top: 12px;
}

.kp-admin-customer-profile form {
    width: 100%;
    margin-top: 12px;
}

.kp-modal-open {
    overflow: hidden;
}

.kp-admin-invitation-modal[hidden] {
    display: none;
}

.kp-admin-invitation-modal {
    position: fixed;
    z-index: 145;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.kp-admin-invitation-modal__backdrop {
    position: absolute;
    inset: 0;
    padding: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.55);
    cursor: pointer;
}

.kp-admin-invitation-modal__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(100%, 520px);
    gap: 12px;
    border-radius: 18px;
    padding: 24px;
    background: var(--kp-color-surface-page);
    box-shadow: 0 -12px 38px rgba(43, 53, 112, 0.24);
}

.kp-admin-invitation-modal__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 2px;
}

.kp-admin-invitation-modal__header h2 {
    margin: 0 0 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-admin-invitation-modal__header p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13.5px;
    line-height: 1.4;
}

.kp-admin-invitation-modal__summary {
    display: grid;
    gap: 8px;
    padding: 14px;
    box-shadow: none;
}

.kp-admin-invitation-modal__summary div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.kp-admin-invitation-modal__summary span {
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
}

.kp-admin-invitation-modal__summary strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 12.5px;
    font-weight: 800;
    text-align: right;
    overflow-wrap: anywhere;
}

.kp-admin-invitation-modal__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-google-overlap-ack__form {
    display: grid;
    gap: 6px;
}

.kp-google-overlap-ack__form label {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-google-overlap-ack__form label::after {
    content: " *";
    color: var(--kp-color-error-fg);
}

.kp-google-overlap-ack__form textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 82px;
    resize: vertical;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    padding: 12px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-main);
    font: inherit;
}

.kp-google-overlap-ack__form small {
    margin-bottom: 8px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-card.kp-admin-reservation-late-overlap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--kp-color-error-border);
    padding: 18px;
    background: var(--kp-color-error-bg);
    box-shadow: none;
}

.kp-admin-reservation-late-overlap__copy {
    min-width: 0;
}

.kp-card.kp-admin-reservation-late-overlap h2 {
    margin: 10px 0 6px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 800;
}

.kp-card.kp-admin-reservation-late-overlap p {
    margin: 4px 0 0;
    color: var(--kp-color-text-soft);
    font-size: 12.5px;
    line-height: 1.45;
}

.kp-admin-reservation-late-overlap__trace {
    color: var(--kp-color-text-muted) !important;
    font-size: 11.5px !important;
}

.kp-admin-reservation-late-overlap > .kp-button {
    flex: 0 0 auto;
}

.kp-google-overlap-ack .kp-admin-invitation-modal__dialog {
    width: min(100%, 570px);
}

@media (max-width: 860px) {
    .kp-google-overlap-ack {
        inset: 56px 0 0;
        align-items: flex-end;
        padding: 0;
    }

    .kp-admin-reservation-late-overlap {
        flex-direction: column;
        gap: 12px;
        padding: 12px;
    }

    .kp-admin-reservation-late-overlap > .kp-button {
        width: 100%;
    }

    .kp-google-overlap-ack__form textarea {
        min-height: 82px;
    }

    .kp-google-overlap-ack .kp-admin-invitation-modal__dialog {
        width: 100%;
        gap: 10px;
        border-radius: 20px 20px 0 0;
        padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
    }

    .kp-google-overlap-ack .kp-modal-close {
        display: none;
    }

    .kp-google-overlap-ack .kp-admin-invitation-modal__header h2 {
        font-size: 20px;
        line-height: 1.1;
    }

    .kp-google-overlap-ack .kp-admin-invitation-modal__header p {
        font-size: 13px;
        line-height: 1.35;
    }

    .kp-google-overlap-ack .kp-admin-invitation-modal__actions {
        grid-template-columns: 1fr;
    }
}

.kp-admin-customer-workspace {
    min-width: 0;
}

.kp-admin-customer-mobile-invitation {
    display: none;
}

.kp-admin-mobile-section-card {
    display: contents;
}

.kp-admin-mobile-hide {
    display: inline;
}

.kp-admin-customer-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--kp-color-border-soft);
    overflow-x: auto;
}

.kp-admin-customer-tabs button {
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    border-top: 0;
    border-right: 0;
    border-left: 0;
    padding: 10px 16px;
    background: transparent;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
}

.kp-admin-customer-tabs button.is-active,
.kp-admin-customer-tabs button:hover {
    border-bottom-color: var(--kp-color-brand-primary);
    color: var(--kp-color-brand-primary);
    font-weight: 700;
}

.kp-admin-tab-panel:not(.is-active) {
    display: none;
}

.kp-admin-customer-workspace .kp-admin-customer-form,
.kp-admin-customer-workspace .kp-admin-customer-detail {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
}

.kp-admin-customer-workspace .kp-admin-customer-form {
    gap: 16px;
    padding: 20px;
}

.kp-admin-customer-form .kp-admin-form-grid:has(.kp-field__error) {
    row-gap: 32px;
    margin-bottom: 18px;
}

.kp-admin-customer-form .kp-field {
    position: relative;
}

.kp-admin-customer-form .kp-field__error {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 6px;
}

.kp-admin-customer-form h2,
.kp-admin-customer-detail h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-admin-customer-workspace .kp-admin-customer-detail {
    margin-top: 16px;
}

.kp-admin-customer-reservations__list {
    display: grid;
    gap: 10px;
}

.kp-admin-customer-reservations__pagination {
    padding-inline: 0;
    padding-bottom: 0;
}

.kp-admin-customer-reservations__title-mobile {
    display: none;
}

@media (min-width: 861px) {
    .kp-admin-customer-reservations > .kp-admin-panel-heading {
        display: none;
    }
}

.kp-admin-customer-reservation-card {
    min-height: 84px;
    box-shadow: none;
}

.kp-admin-customer-reservation-card:hover,
.kp-admin-customer-reservation-card:focus-visible {
    border-color: var(--kp-color-brand-primary);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--kp-color-text-main) 8%, transparent);
}

@media (min-width: 861px) {
    .kp-admin-customer-reservation-card .kp-client-history-card__status {
        width: clamp(240px, 28vw, 360px);
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__badges {
        max-width: none;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        column-gap: 6px;
        row-gap: 4px;
    }
}

.kp-admin-customer-reservations__empty {
    display: grid;
    justify-items: center;
    gap: 6px;
    border: 1.5px dashed var(--kp-color-border-default);
    border-radius: 14px;
    padding: 28px;
    background: var(--kp-color-surface-soft);
    color: var(--kp-color-text-soft);
    text-align: center;
}

.kp-admin-customer-reservations__empty > span {
    font-size: 32px;
}

.kp-admin-customer-reservations__empty strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-admin-customer-reservations__empty p {
    margin: 0;
    font-size: 13px;
}

.kp-client-dashboard {
    display: grid;
    width: min(100%, 1200px);
    gap: 24px;
    margin: 0 auto;
    padding: 32px 32px 88px;
}

.kp-client-profile-page {
    display: grid;
    width: min(100%, 1080px);
    gap: 24px;
    margin: 0 auto;
    padding: 32px 32px 88px;
}

.kp-client-section-page {
    display: grid;
    width: min(100%, 1040px);
    gap: 24px;
    margin: 0 auto;
    padding: 32px 32px 88px;
}

.kp-client-section-page__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.kp-client-section-page__header h1,
.kp-client-section-page__header p,
.kp-client-section-card h2,
.kp-client-section-card p {
    margin: 0;
}

.kp-client-section-page__header h1 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 30px;
    font-weight: 800;
    line-height: 1.12;
}

.kp-client-section-page__header p,
.kp-client-section-card p:not(.kp-badge) {
    color: var(--kp-color-text-soft);
}

.kp-client-section-card {
    display: grid;
    gap: 12px;
    max-width: 760px;
}

.kp-client-section-card h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-client-hero {
    display: block;
    margin-bottom: 4px;
}

.kp-client-hero h1,
.kp-client-hero strong,
.kp-client-hero span,
.kp-client-section h2,
.kp-client-panel h2,
.kp-client-panel h3,
.kp-client-panel p,
.kp-client-booking-card h2,
.kp-client-booking-card p,
.kp-client-profile-card h2,
.kp-client-profile-card p {
    margin: 0;
}

.kp-client-hero h1 {
    font-family: var(--kp-font-heading);
    font-size: 34px;
    font-weight: 800;
    line-height: 1.12;
}

.kp-client-hero span,
.kp-client-panel p,
.kp-client-booking-card p,
.kp-client-animals-card p,
.kp-client-empty p,
.kp-client-profile-card p {
    color: var(--kp-color-text-soft);
}

.kp-client-hero strong {
    display: block;
    margin-top: 8px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 700;
}

.kp-client-hero span:not(.kp-client-hero__avatar) {
    display: block;
    max-width: 620px;
    margin-top: 6px;
    font-size: 15px;
    line-height: 1.5;
}

.kp-client-hero__avatar,
.kp-client-profile-card__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--kp-color-brand-primary);
    color: var(--kp-color-text-inverse);
    font-family: var(--kp-font-heading);
    font-weight: 800;
    text-decoration: none;
}

.kp-client-dashboard__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 24px;
    align-items: flex-start;
}

.kp-client-dashboard__main {
    min-width: 0;
}

.kp-client-dashboard__side {
    min-width: 0;
}

.kp-client-profile-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: flex-start;
}

.kp-client-profile-page__side {
    margin-top: 80px;
}

.kp-client-dashboard__main,
.kp-client-dashboard__side,
.kp-client-profile-page__main,
.kp-client-profile-page__side,
.kp-client-section,
.kp-client-panel,
.kp-client-account-card {
    display: grid;
    gap: 16px;
}

.kp-client-flash {
    margin-top: 0;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 220ms ease, transform 220ms ease;
}

.kp-client-flash.is-hiding {
    opacity: 0;
    transform: translateY(-6px);
}

.kp-client-flash[hidden] {
    display: none;
}

.kp-card.kp-client-booking-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--kp-color-brand-primary) 24%, transparent);
    padding: 28px;
    background: var(--kp-color-brand-primary-dark);
    color: var(--kp-color-text-inverse);
}

.kp-client-booking-card > div {
    min-width: 0;
    flex: 1 1 auto;
}

.kp-client-booking-card h2 {
    font-family: var(--kp-font-heading);
    font-size: 23px;
    font-weight: 800;
    line-height: 1.18;
}

.kp-client-booking-card p {
    max-width: 620px;
    margin-top: 6px;
    margin-bottom: 18px;
    color: color-mix(in srgb, var(--kp-color-text-inverse) 82%, transparent);
    font-size: 14px;
    line-height: 1.5;
}

.kp-client-booking-card .kp-button--warning {
    min-height: 40px;
    border-color: transparent;
    border-radius: 8px;
    padding: 10px 18px;
    background: var(--kp-color-brand-accent-yellow);
    color: var(--kp-color-brand-primary-dark);
    box-shadow: none;
    font-size: 14px;
    font-weight: 800;
}

.kp-client-booking-card > span {
    font-size: 72px;
    line-height: 1;
}

.kp-client-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.kp-client-section__header h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 800;
}

.kp-client-panel h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-client-section__header a {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-client-animals-card {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.kp-client-animals-card__header {
    margin-bottom: 0;
}

.kp-client-animals-card > p {
    font-size: 12px;
    line-height: 1.35;
}

.kp-client-animal-strip {
    display: grid;
    gap: 10px;
}

.kp-client-animal-pill {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 10px 12px;
    background: var(--kp-color-surface-soft);
    color: inherit;
    text-decoration: none;
}

.kp-client-animal-pill__icon {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--kp-color-surface-blue);
    font-size: 22px;
}

.kp-client-animal-pill__body {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.kp-client-animal-pill strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-client-animal-pill small {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-animal-pill__cat-badge {
    display: inline-flex;
    width: fit-content;
    min-height: 22px;
    align-items: center;
    margin-top: 4px;
    border: 1px solid;
    border-radius: 999px;
    padding: 3px 9px;
    font-family: var(--kp-font-body);
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
}

.kp-client-animal-pill__cat-badge--ok {
    border-color: var(--kp-color-success-border);
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-client-animal-pill__cat-badge--ko {
    border-color: var(--kp-color-error-border);
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-client-empty {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 24px;
    text-align: center;
}

.kp-client-empty > span {
    font-size: 42px;
}

.kp-client-empty h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 800;
}

.kp-client-reservations-empty {
    border-style: dashed;
}

.kp-client-reservation-list {
    display: grid;
    gap: 16px;
}

.kp-card.kp-client-reservation-card {
    min-height: 106px;
    padding: 16px;
}

#client-reservations {
    margin-top: 8px;
}

@media (max-width: 760px) {
    .kp-card.kp-client-reservation-card {
        min-height: 0;
        padding: 12px;
    }
}

.kp-client-activity-list {
    display: grid;
    gap: 0;
}

.kp-client-activity-list > div {
    display: grid;
    gap: 2px;
    padding: 10px 0;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-client-activity-list > div:first-child {
    border-top: 0;
    padding-top: 0;
}

.kp-client-activity-list strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-client-activity-list span {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-client-status {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    border: 1px solid var(--kp-color-success-border);
    border-radius: 999px;
    padding: 5px 11px;
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.kp-client-status--pending {
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-client-booking-flow {
    box-sizing: border-box;
    display: flex;
    width: min(100%, 1140px);
    flex-direction: column;
    gap: 18px;
    margin: 0 auto;
    padding: 32px 0 40px;
}

.kp-client-booking-flow__header {
    display: grid;
    gap: 8px;
}

.kp-client-booking-flow__header h1 {
    font-size: 30px;
    line-height: 1.1;
}

.kp-client-booking-flow__back {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 6px;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-client-booking-flow__back-icon {
    width: 14px;
    height: 14px;
    fill: none;
    flex: 0 0 14px;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.kp-client-booking-flow__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(320px, .95fr);
    gap: 24px;
    align-items: start;
}

.kp-client-booking-flow.is-booking-success-page {
    width: min(100%, 860px);
    padding-top: 24px;
}

.kp-client-booking-flow.is-booking-success-page .kp-client-booking-flow__grid {
    display: block;
}

.kp-client-booking-flow.is-booking-verification-page .kp-client-booking-flow__grid {
    display: block;
}

.kp-client-booking-flow__main {
    min-width: 0;
}

.kp-booking-stepper {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    padding: 20px 74px;
    background: var(--kp-color-surface-card);
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(43, 53, 112, .08);
}

.kp-booking-stepper__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    min-width: 0;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-booking-stepper__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 13px;
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
    height: 2px;
    background: var(--kp-color-border-soft);
}

.kp-booking-stepper__item.is-done:not(:last-child)::after {
    background: var(--kp-color-brand-primary);
}

.kp-booking-stepper__item strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: 999px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    z-index: 1;
}

.kp-booking-stepper__item span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-booking-stepper__item.is-current,
.kp-booking-stepper__item.is-done {
    color: var(--kp-color-text-main);
}

.kp-booking-stepper__item.is-current strong,
.kp-booking-stepper__item.is-done strong {
    background: var(--kp-color-brand-primary);
    color: #fff;
}

.kp-card.kp-booking-panel,
.kp-booking-panel {
    padding: 32px;
}

.kp-booking-panel h2,
.kp-booking-recap h2,
.kp-booking-contact-fallback h3 {
    margin: 0 0 8px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 20px;
    font-weight: 800;
}

.kp-booking-panel p,
.kp-booking-contact-fallback p {
    margin: 0 0 18px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 14px;
    line-height: 1.45;
}

.kp-card.kp-booking-contact-fallback,
.kp-booking-contact-fallback {
    margin-top: 14px;
    padding: 18px;
    border: 0;
    background: var(--kp-color-surface-blue);
    box-shadow: none;
}

.kp-booking-contact-fallback .kp-button {
    width: 100%;
}

.kp-booking-choice-grid,
.kp-booking-service-list,
.kp-booking-slot-list {
    display: grid;
    gap: 12px;
}

.kp-booking-slot-list {
    max-height: min(430px, 52vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 6px;
    scrollbar-color: var(--kp-color-border-strong) transparent;
    scrollbar-width: thin;
}

.kp-booking-slot-list-wrap {
    position: relative;
}

.kp-booking-slot-list-wrap::after {
    position: absolute;
    right: 6px;
    bottom: 28px;
    left: 0;
    height: 64px;
    border-bottom-right-radius: 10px;
    border-bottom-left-radius: 10px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 76%);
    content: "";
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease;
}

.kp-booking-slot-list-wrap.has-more-slots::after {
    opacity: 1;
}

.kp-booking-slot-scroll-hint {
    display: none;
    justify-content: center;
    margin-top: 8px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    font-weight: 700;
}

.kp-booking-slot-list-wrap.has-more-slots .kp-booking-slot-scroll-hint {
    display: flex;
}

.kp-booking-slot-error {
    margin-top: 12px;
    border: 1px solid var(--kp-color-error-border);
    border-radius: 10px;
    padding: 10px 12px;
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
    font-weight: 800;
}

.kp-booking-slot-error[hidden] {
    display: none;
}

.kp-booking-slot-list::-webkit-scrollbar {
    width: 8px;
}

.kp-booking-slot-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--kp-color-border-strong);
}

.kp-booking-slot-list::-webkit-scrollbar-track {
    background: transparent;
}

.kp-booking-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kp-booking-choice-card,
.kp-booking-service-card,
.kp-booking-slot-card {
    display: grid;
    align-items: center;
    min-width: 0;
    border: 2px solid var(--kp-color-border-soft);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
}

.kp-booking-choice-card {
    position: relative;
    grid-template-columns: 52px minmax(0, 1fr) 22px;
    gap: 14px;
    padding: 16px;
}

.kp-booking-service-card,
.kp-booking-slot-card {
    grid-template-columns: 20px 52px minmax(0, 1fr) auto;
    gap: 14px;
    padding: 16px;
}

.kp-booking-service-card {
    position: relative;
    grid-template-columns: 52px minmax(0, 1fr) auto;
}

.kp-booking-slot-card {
    grid-template-columns: minmax(0, 1fr) auto 22px;
    gap: 16px;
    min-height: 84px;
    padding: 18px 20px;
}

.kp-booking-choice-card:has(input:checked),
.kp-booking-service-card:has(input:checked),
.kp-booking-slot-card:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
}

.kp-booking-slot-card.is-disabled {
    cursor: not-allowed;
    opacity: .68;
    border-color: var(--kp-color-warning-border);
}

.kp-booking-choice-card input,
.kp-booking-service-card input,
.kp-booking-slot-card input {
    width: 18px;
    height: 18px;
    accent-color: var(--kp-color-brand-primary);
}

.kp-booking-slot-card input {
    justify-self: end;
}

.kp-booking-choice-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.kp-booking-service-card input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.kp-booking-choice-card > i {
    display: none;
    justify-self: center;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-style: normal;
    font-weight: 900;
}

.kp-booking-choice-card:has(input:checked) > i {
    display: block;
}

.kp-booking-choice-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--kp-color-surface-alt);
    font-size: 26px;
}

.kp-booking-choice-card strong,
.kp-booking-service-card strong,
.kp-booking-slot-card strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-booking-slot-card strong {
    font-size: 17px;
    line-height: 1.15;
}

.kp-booking-choice-card small,
.kp-booking-service-card small,
.kp-booking-slot-card small {
    display: block;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 13px;
    line-height: 1.35;
}

.kp-booking-animal-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.kp-booking-choice-card em,
.kp-booking-service-card em {
    display: inline-flex;
    margin-top: 6px;
    min-height: 20px;
    align-items: center;
    border-radius: 6px;
    padding: 2px 7px;
    font-family: var(--kp-font-heading);
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
}

.kp-booking-choice-card .kp-booking-animal-badge {
    margin-top: 0;
    border: 1px solid transparent;
}

.kp-booking-choice-card em.is-success {
    background: var(--kp-color-success-bg);
    border-color: var(--kp-color-success-border);
    color: var(--kp-color-success-fg);
}

.kp-booking-choice-card em.is-warning {
    background: var(--kp-color-warning-bg);
    border-color: var(--kp-color-warning-border);
    color: var(--kp-color-warning-fg);
}

.kp-booking-choice-card .kp-booking-animal-badge--weight {
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-booking-service-card b,
.kp-booking-slot-card b {
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    white-space: nowrap;
}

.kp-booking-slot-card b {
    align-self: center;
    font-size: 17px;
    font-weight: 900;
}

.kp-booking-context-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 8px;
    margin-bottom: 18px;
}

.kp-booking-context-chip {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 12px;
    background: var(--kp-color-surface-blue);
    color: inherit;
    text-decoration: none;
}

.kp-booking-context-chip span {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
}

.kp-booking-context-chip strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-booking-animal-context {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--kp-color-surface-blue);
}

.kp-booking-animal-context__icon {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
}

.kp-booking-animal-context strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-booking-animal-context a {
    flex: 0 0 auto;
    margin-left: auto;
    border: 0;
    background: none;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-booking-week-nav {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.kp-booking-week-arrow {
    display: inline-flex;
    height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
}

.kp-booking-week-arrow.is-disabled {
    cursor: not-allowed;
    border-color: transparent;
    background: transparent;
    color: transparent;
    opacity: .45;
    pointer-events: none;
}

.kp-booking-week-nav div {
    text-align: center;
}

.kp-booking-week-nav strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-booking-week-nav span {
    display: block;
    margin-top: 2px;
    color: var(--kp-color-text-soft);
    font-size: 11px;
}

.kp-booking-week-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.kp-booking-week-quick-actions a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-booking-date-picker {
    position: relative;
    height: 0;
    overflow: visible;
}

.kp-booking-date-picker input {
    position: absolute;
    right: 24%;
    bottom: 12px;
    width: 1px;
    height: 1px;
    border: 0;
    padding: 0;
    opacity: 0;
    pointer-events: none;
}

.kp-booking-info-alert {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
}

.kp-booking-info-alert p {
    margin: 0;
}

.kp-booking-info-alert__icon {
    display: inline-grid;
    width: 22px;
    height: 22px;
    margin-top: 8px;
    place-items: center;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 999px;
    background: #F8FCFF;
    color: var(--kp-color-info-fg);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.kp-booking-info-alert--mobile-only {
    display: none;
}

.kp-booking-day-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 22px;
}

.kp-booking-day-card {
    display: grid;
    min-height: 86px;
    justify-items: center;
    align-content: center;
    border: 1.5px solid var(--kp-color-border-soft);
    border-radius: 10px;
    padding: 10px 6px;
    background: #fff;
    color: var(--kp-color-text-main);
    text-align: center;
    text-decoration: none;
}

.kp-booking-day-card span,
.kp-booking-day-card strong {
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-booking-day-card span {
    font-size: 10px;
    text-transform: uppercase;
}

.kp-booking-day-card strong {
    font-size: 17px;
}

.kp-booking-day-card i {
    display: block;
    width: 4px;
    height: 4px;
    margin-top: 4px;
    border-radius: 50%;
    background: var(--kp-color-brand-primary);
}

.kp-booking-day-card.is-selected {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: #fff;
}

.kp-booking-day-card.is-selected i {
    background: #fff;
}

.kp-booking-day-card.is-today:not(.is-selected) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    box-shadow: 0 8px 18px rgba(43, 53, 112, .1);
}

.kp-booking-day-card.is-today:not(.is-selected) i {
    width: 6px;
    height: 6px;
}

.kp-booking-day-card.is-disabled {
    background: #f8fafc;
    color: var(--kp-color-text-muted);
}

.kp-booking-day-card.is-disabled i {
    opacity: .45;
}

.kp-booking-day-card.is-disabled.is-selected {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
    color: #fff;
}

.kp-booking-day-card.is-disabled.is-selected i {
    background: #fff;
    opacity: 1;
}

.kp-booking-day-card.is-disabled.is-today:not(.is-selected) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
}

.kp-booking-availability-region {
    transition: opacity .16s ease;
}

.kp-booking-availability-region.is-loading {
    opacity: .55;
    pointer-events: none;
}

.kp-booking-empty-date {
    display: grid;
    min-height: 360px;
    justify-items: center;
    align-content: center;
    gap: 12px;
    text-align: center;
}

.kp-booking-empty-date > span {
    font-size: 64px;
}

.kp-booking-empty-date h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 24px;
    font-weight: 800;
}

.kp-booking-empty-date p {
    margin: 0;
}

.kp-booking-empty-slots {
    display: grid;
    min-height: 150px;
    justify-items: center;
    align-content: center;
    gap: 8px;
    margin: 10px 0 6px;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 10px;
    background: #fff;
    text-align: center;
}

.kp-booking-empty-slots h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 20px;
    font-weight: 800;
}

.kp-booking-empty-slots p {
    margin: 0;
    color: var(--kp-color-text-soft);
}

.kp-booking-selected-date {
    margin: 0 0 10px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-booking-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-booking-actions:has(> :only-child) {
    justify-content: flex-end;
}

.kp-booking-recap {
    position: sticky;
    top: 90px;
}

.kp-booking-recap dl {
    display: grid;
    gap: 10px;
    margin: 0 0 14px;
}

.kp-booking-recap dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.kp-booking-recap dt,
.kp-booking-recap dd {
    margin: 0;
    font-family: var(--kp-font-body);
    font-size: 13px;
}

.kp-booking-recap dt {
    color: var(--kp-color-text-soft);
}

.kp-booking-recap dd {
    color: var(--kp-color-text-main);
    font-weight: 800;
    text-align: right;
}

.kp-booking-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.kp-booking-summary-grid > div,
.kp-booking-price-panel {
    padding: 16px;
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
}

.kp-booking-summary-grid span,
.kp-booking-price-panel span {
    display: block;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-booking-summary-grid strong,
.kp-booking-price-panel strong {
    display: block;
    margin-top: 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-booking-price-panel {
    margin-bottom: 18px;
}

.kp-booking-price-panel strong {
    color: var(--kp-color-brand-primary);
    font-size: 28px;
    font-weight: 900;
}

.kp-booking-price-panel em {
    display: block;
    margin-top: 6px;
    color: var(--kp-color-text-soft);
    font-style: normal;
}

.kp-booking-recap-block {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.kp-booking-summary-grid .kp-booking-recap-block__icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 12px;
    background: var(--kp-color-surface-blue);
    color: inherit;
    font-family: var(--kp-font-body);
    font-size: 24px;
    font-weight: 400;
    text-transform: none;
}

.kp-booking-summary-grid .kp-booking-recap-block > span:not(.kp-booking-recap-block__icon) {
    display: block;
    min-width: 0;
    color: inherit;
    font-family: var(--kp-font-body);
    font-size: inherit;
    font-weight: inherit;
    text-transform: none;
}

.kp-booking-recap-block small {
    display: block;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.kp-booking-summary-grid .kp-booking-recap-block strong {
    margin-top: 4px;
    overflow-wrap: anywhere;
    line-height: 1.2;
}

.kp-booking-recap-block em {
    display: block;
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-style: normal;
    line-height: 1.25;
}

.kp-card.kp-booking-verification-state {
    padding: 28px;
}

.kp-booking-verification-state .kp-booking-verification-summary {
    margin: 18px 0 16px;
}

.kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #fff;
    font-size: 20px;
}

.kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block {
    grid-template-columns: 40px minmax(0, 1fr);
}

.kp-booking-verification-state > .kp-alert {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.kp-booking-verification-state > .kp-alert > div {
    min-width: 0;
    flex: 1;
}

.kp-booking-verification-state > .kp-alert strong {
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-booking-verification-alert__icon {
    flex: 0 0 auto;
    font-size: 16px;
    line-height: 20px;
}

.kp-booking-verification-summary--compact {
    padding: 18px;
    background: var(--kp-color-surface-soft);
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 16px;
}

.kp-booking-verification-summary--compact > .kp-booking-recap-block {
    padding: 16px;
    background: transparent;
}

.kp-booking-price-panel--recap {
    padding: 18px;
}

.kp-booking-price-row,
.kp-booking-price-total {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
}

.kp-booking-price-panel--recap .kp-booking-price-row span,
.kp-booking-price-panel--recap .kp-booking-price-row strong,
.kp-booking-price-panel--recap .kp-booking-price-total span,
.kp-booking-price-panel--recap .kp-booking-price-total strong {
    display: block;
    margin: 0;
    text-transform: none;
}

.kp-booking-price-panel--recap .kp-booking-price-row span,
.kp-booking-price-panel--recap .kp-booking-price-row strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 15px;
    font-weight: 700;
}

.kp-booking-price-panel--recap .kp-booking-price-total span {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 18px;
    font-weight: 900;
}

.kp-booking-price-panel--recap .kp-booking-price-total strong {
    color: var(--kp-color-brand-primary);
    font-size: 24px;
    font-weight: 900;
}

.kp-booking-price-divider {
    height: 1px;
    margin: 12px 0;
    background: var(--kp-color-border-soft);
}

.kp-booking-panel .kp-alert--warning p span {
    display: block;
}

.kp-booking-warning-title-icon {
    display: inline-block;
    margin-right: 6px;
}

.kp-booking-refusal-cta {
    margin-top: 12px;
}

.kp-booking-actions--recap {
    justify-content: flex-start;
    align-items: center;
}

.kp-booking-panel .kp-legal-consents {
    margin: 20px 0 22px;
}

.kp-booking-panel .kp-legal-consent-field {
    --kp-booking-consent-check-size: 20px;
    --kp-booking-consent-error: #991b1b;

    display: grid;
    grid-template-columns: var(--kp-booking-consent-check-size) minmax(0, 1fr);
    gap: 8px 12px;
    padding: 14px 16px;
    border: 1.5px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: var(--kp-color-surface-card);
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.kp-booking-panel .kp-legal-consent {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: var(--kp-booking-consent-check-size) minmax(0, 1fr);
    min-height: 24px;
    align-items: start;
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--kp-color-text-main);
    line-height: normal;
    cursor: pointer;
}

.kp-booking-panel .kp-legal-consent input {
    width: var(--kp-booking-consent-check-size);
    height: var(--kp-booking-consent-check-size);
    margin: 2px 0 0;
    accent-color: var(--kp-color-brand-primary);
    cursor: pointer;
}

.kp-booking-panel .kp-legal-consent input:focus-visible {
    outline: 3px solid var(--kp-color-brand-primary);
    outline-offset: 3px;
}

.kp-booking-panel .kp-legal-consent__copy {
    display: inline;
    color: inherit;
    font-family: var(--kp-font-body);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.45;
    text-transform: none;
}

.kp-booking-panel .kp-legal-consent__copy label {
    cursor: pointer;
}

.kp-booking-panel .kp-legal-consent__copy a {
    color: var(--kp-color-brand-primary);
    font-weight: 800;
    text-underline-offset: 3px;
}

.kp-booking-panel .kp-legal-consent-field:focus-within {
    border-color: var(--kp-color-brand-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--kp-color-brand-primary) 12%, transparent);
}

.kp-booking-panel .kp-legal-consent-field--error {
    border-color: var(--kp-booking-consent-error);
    background: var(--kp-color-error-bg);
}

.kp-booking-panel .kp-legal-consent-field--error:focus-within {
    border-color: var(--kp-booking-consent-error);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--kp-booking-consent-error) 22%, transparent);
}

.kp-booking-panel .kp-legal-consent-field--error .kp-legal-consent,
.kp-booking-panel .kp-legal-consent-field--error .kp-legal-consent__copy a,
.kp-booking-panel .kp-legal-consent-field--error .kp-legal-consent__error {
    color: var(--kp-booking-consent-error);
}

.kp-booking-panel .kp-legal-consent-field--error .kp-legal-consent input {
    box-shadow: inset 0 0 0 2px var(--kp-booking-consent-error);
    accent-color: var(--kp-booking-consent-error);
}

.kp-booking-panel .kp-legal-consent-field--error .kp-legal-consent input:focus-visible {
    outline: 3px solid var(--kp-booking-consent-error);
    outline-offset: 3px;
    box-shadow:
        inset 0 0 0 2px var(--kp-booking-consent-error),
        0 0 0 5px var(--kp-color-surface-card);
}

.kp-booking-panel .kp-legal-consent__error {
    display: flex;
    grid-column: 2;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--kp-booking-consent-error);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.kp-booking-panel .kp-legal-consent__error-icon {
    display: inline-grid;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    place-items: center;
    border-radius: 50%;
    background: var(--kp-booking-consent-error);
    color: var(--kp-color-surface-card);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.kp-booking-payment-methods {
    display: grid;
    gap: 10px;
    margin: 18px 0;
}

.kp-booking-payment-method {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 18px;
    gap: 12px;
    align-items: center;
    min-height: 74px;
    padding: 15px;
    border: 1.5px solid var(--kp-color-border-soft);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.kp-booking-payment-method input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.kp-booking-payment-method:has(input:checked) {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-surface-blue);
    box-shadow: 0 10px 24px rgba(43, 53, 112, .08);
}

.kp-booking-payment-method__icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 10px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-size: 24px;
    line-height: 1;
}

.kp-booking-payment-method__body {
    min-width: 0;
}

.kp-booking-payment-method strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
}

.kp-booking-payment-method small {
    display: block;
    margin-top: 3px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-booking-payment-hand-alert {
    display: none;
    margin-top: 18px;
}

.kp-booking-payment:has(input[name="payment_method"][value="manual"]:checked) .kp-booking-payment-hand-alert {
    display: grid;
}

.kp-booking-payment-method__radio {
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    border: 1.5px solid var(--kp-color-border-soft);
    border-radius: 999px;
    background: #fff;
}

.kp-booking-payment-method:has(input:checked) .kp-booking-payment-method__radio {
    border-color: var(--kp-color-brand-primary);
    background: var(--kp-color-brand-primary);
}

.kp-booking-payment-method:has(input:checked) .kp-booking-payment-method__radio::after {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #fff;
    content: "";
}

.kp-booking-success {
    display: grid;
    justify-items: center;
    gap: 18px;
    padding: clamp(28px, 5vw, 56px);
    text-align: center;
}

.kp-booking-success__check {
    display: grid;
    width: 84px;
    height: 84px;
    place-items: center;
    border-radius: 999px;
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-booking-success__check svg {
    width: 46px;
    height: 46px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.8;
}

.kp-booking-success__check--pending {
    border: 1px solid var(--kp-color-info-border);
    background: var(--kp-color-info-bg);
    color: var(--kp-color-info-fg);
}

.kp-booking-success__check--pending svg {
    animation: kp-booking-pending-pulse 1.4s ease-in-out infinite;
}

.kp-booking-success__check--warning {
    border: 1px solid var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
}

.kp-booking-success__notice {
    display: flex;
    width: min(100%, 700px);
    gap: 14px;
    align-items: flex-start;
    padding: 14px 18px;
    border: 1px solid var(--kp-color-info-border);
    border-radius: 14px;
    background: var(--kp-color-info-bg);
    color: var(--kp-color-info-fg);
    text-align: left;
}

.kp-booking-success__notice p {
    margin: 0;
    font-size: 0.94rem;
    font-weight: 650;
    line-height: 1.35;
}

@keyframes kp-booking-pending-pulse {
    0%,
    100% {
        transform: scale(1);
        opacity: 0.72;
    }

    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

.kp-booking-success h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: clamp(1.75rem, 3.2vw, 2.35rem);
    font-weight: 900;
    line-height: 1.08;
}

.kp-booking-success > p {
    margin: -6px 0 6px;
    color: var(--kp-color-text-soft);
    font-size: 0.98rem;
    font-weight: 650;
}

.kp-booking-success__details {
    display: grid;
    width: min(100%, 700px);
    overflow: hidden;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 14px;
    margin: 0;
    text-align: left;
}

.kp-booking-success__details div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: center;
    min-height: 50px;
    padding: 13px 20px;
    border-bottom: 1px solid var(--kp-color-border-soft);
}

.kp-booking-success__details div:last-child {
    border-bottom: 0;
}

.kp-booking-success__details dt,
.kp-booking-success__details dd {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 0.95rem;
    line-height: 1.25;
}

.kp-booking-success__details dd {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-weight: 900;
    text-align: right;
}

.kp-booking-success__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.kp-booking-success__actions .kp-button {
    min-width: 210px;
}

.kp-booking-hold__timer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: -4px 0 18px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-heading);
    font-weight: 800;
}

.kp-booking-hold__timer strong {
    font-size: 24px;
}

.kp-booking-expired {
    text-align: center;
}

.kp-booking-expired__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 78px;
    height: 78px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: var(--kp-color-warning-bg);
    color: var(--kp-color-warning-fg);
    font-size: 36px;
}

@media (max-width: 900px) {
    .kp-client-booking-flow {
        padding: 18px 16px 124px;
    }

    .kp-client-booking-flow__back {
        display: none;
    }

    .kp-client-booking-flow__header {
        display: none;
    }

    .kp-client-booking-flow__grid {
        display: block;
    }

    .kp-booking-recap {
        display: none;
    }

    .kp-booking-stepper {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 0;
        overflow: visible;
        padding: 16px 12px 14px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 18px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 8px 24px rgba(43, 53, 112, .07);
    }

    .kp-booking-stepper__item {
        gap: 5px;
        min-width: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        font-size: 10px;
    }

    .kp-booking-stepper__item:not(:last-child)::after {
        top: 13px;
        left: calc(50% + 17px);
        right: calc(-50% + 17px);
    }

    .kp-booking-stepper__item strong {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
    }

    .kp-booking-stepper__item span {
        max-width: 100%;
        font-size: 10px;
        line-height: 1.1;
        white-space: nowrap;
    }

    .kp-client-booking-flow.is-booking-standalone .kp-booking-stepper {
        display: none;
    }

    .kp-card.kp-booking-panel,
    .kp-booking-panel {
        padding: 20px 16px 18px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 18px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 8px 24px rgba(43, 53, 112, .07);
    }

    .kp-booking-choice-grid,
    .kp-booking-summary-grid {
        grid-template-columns: 1fr;
    }

    .kp-booking-choice-card,
    .kp-booking-service-card {
        grid-template-columns: 44px minmax(0, 1fr) 18px;
        padding: 12px;
    }

    .kp-booking-service-card {
        grid-template-columns: 44px minmax(0, 1fr) auto;
    }

    .kp-booking-service-card b {
        grid-column: 3;
        align-self: start;
        justify-self: end;
    }

    .kp-booking-choice-card__icon {
        width: 44px;
        height: 44px;
        font-size: 22px;
    }

    .kp-booking-slot-list {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .kp-booking-slot-list-wrap::after,
    .kp-booking-slot-list-wrap.has-more-slots::after,
    .kp-booking-slot-list-wrap.has-more-slots .kp-booking-slot-scroll-hint {
        display: none;
    }

    .kp-card.kp-booking-contact-fallback,
    .kp-booking-contact-fallback {
        margin-top: 14px;
        padding: 20px 16px 18px;
        border: 1px solid var(--kp-color-info-border);
        border-radius: 18px;
        background: var(--kp-color-surface-blue);
        box-shadow: 0 8px 24px rgba(43, 53, 112, .06);
    }

    .kp-booking-actions {
        position: fixed;
        right: 0;
        bottom: calc(64px + env(safe-area-inset-bottom));
        left: 0;
        z-index: 9;
        flex-direction: column-reverse;
        margin: 0;
        padding: 10px 16px 12px;
        border: 0;
        border-top: 1px solid var(--kp-color-border-soft);
        border-bottom: 1px solid #d8cfbd;
        border-radius: 16px 16px 0 0;
        background: rgba(255, 255, 255, .97);
        box-shadow:
            0 -12px 24px rgba(43, 53, 112, .1),
            0 1px 0 rgba(255, 255, 255, .86) inset;
        backdrop-filter: blur(10px);
    }

    .kp-client-shell--booking .kp-bottom-nav--client {
        z-index: 12;
        box-shadow: 0 -14px 24px rgba(43, 53, 112, .2), 0 -1px 0 #d8cfbd;
    }

    .kp-booking-context-grid {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .kp-booking-context-chip {
        padding: 10px 11px;
    }

    .kp-booking-info-alert--mobile-only {
        display: grid;
    }

    .kp-booking-day-grid {
        display: flex;
        overflow-x: auto;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .kp-booking-day-card {
        min-width: 58px;
        min-height: 74px;
        flex: 0 0 58px;
        box-shadow: 0 6px 14px rgba(43, 53, 112, .07);
    }

    .kp-booking-empty-date {
        min-height: 260px;
    }

    .kp-booking-empty-date h3 {
        font-size: 22px;
    }

    .kp-booking-actions .kp-button,
    .kp-booking-actions form {
        width: 100%;
    }

    .kp-card.kp-booking-verification-state {
        padding: 0 0 calc(76px + env(safe-area-inset-bottom));
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .kp-booking-verification-state .kp-booking-verification-summary {
        grid-template-columns: 1fr;
        gap: 8px;
        margin-bottom: 16px;
    }

    .kp-booking-verification-summary--compact {
        padding: 14px;
    }

    .kp-booking-verification-summary--compact > .kp-booking-recap-block,
    .kp-booking-verification-state .kp-booking-verification-summary:not(.kp-booking-verification-summary--compact) > .kp-booking-recap-block {
        padding: 12px;
        border: 1px solid var(--kp-color-border-soft);
        background: #fff;
    }

    .kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block__icon {
        width: 34px;
        height: 34px;
        border-radius: 10px;
        background: var(--kp-color-surface-blue);
        font-size: 18px;
    }

    .kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .is-booking-verification-page .kp-booking-actions {
        position: static;
        right: auto;
        bottom: auto;
        left: auto;
        z-index: auto;
        margin-top: 18px;
        padding-inline: 20px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 16px;
    }

}

/* The verification screens keep their desktop anatomy at the 768px gate.
 * Only the narrow mobile viewport switches to the stacked cards/action tray. */
@media (min-width: 768px) and (max-width: 900px) {
    .kp-card.kp-booking-verification-state {
        padding: 28px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 18px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 8px 24px rgba(43, 53, 112, .07);
    }

    .kp-booking-verification-state .kp-booking-verification-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        margin: 18px 0 16px;
    }

    .kp-booking-verification-summary--compact {
        padding: 18px;
    }

    .kp-booking-verification-summary--compact > .kp-booking-recap-block,
    .kp-booking-verification-state .kp-booking-verification-summary:not(.kp-booking-verification-summary--compact) > .kp-booking-recap-block {
        padding: 16px;
        border: 0;
        background: transparent;
    }

    .kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block__icon {
        width: 40px;
        height: 40px;
        background: #fff;
        font-size: 20px;
    }

    .kp-booking-verification-state .kp-booking-verification-summary .kp-booking-recap-block {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .is-booking-verification-page .kp-booking-actions {
        flex-direction: row;
        margin-top: 22px;
        padding: 16px 0 0;
        border: 0;
        border-top: 1px solid var(--kp-color-border-soft);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .is-booking-verification-page .kp-booking-actions .kp-button,
    .is-booking-verification-page .kp-booking-actions form {
        width: auto;
    }
}

.kp-client-profile-card {
    display: grid;
    gap: 16px;
    padding: 20px;
}

.kp-client-profile-card__head {
    display: flex;
    gap: 14px;
    align-items: center;
}

.kp-client-profile-card__avatar {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    font-size: 18px;
}

.kp-client-profile-card h2 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 800;
}

.kp-client-profile-list {
    display: grid;
    margin: 0;
}

.kp-client-profile-list > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-client-profile-list dt {
    color: var(--kp-color-text-soft);
    font-size: 14px;
}

.kp-client-profile-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 700;
    text-align: right;
}

.kp-client-profile-tabs {
    display: flex;
    gap: 34px;
    overflow-x: auto;
}

.kp-client-profile-tabs-separator {
    width: 100%;
    margin: -16px 0 0;
    border: 0;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-client-profile-tabs a {
    position: relative;
    flex: 0 0 auto;
    min-height: 48px;
    padding: 0 0 12px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.kp-client-profile-tabs a::after {
    content: "";
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    border-radius: 999px;
    background: transparent;
}

.kp-client-profile-tabs a.is-active {
    color: var(--kp-color-brand-primary);
    font-weight: 800;
}

.kp-client-profile-tabs a.is-active::after {
    background: var(--kp-color-brand-primary);
}

.kp-client-profile-workspace {
    display: block;
    border-radius: 18px;
    padding: 36px;
}

.kp-client-profile-tab-panel {
    display: none;
}

.kp-client-profile-tab-panel.is-active {
    display: grid;
    gap: 18px;
}

.kp-client-profile-tab-panel h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 28px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-client-profile-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 10px;
}

.kp-client-profile-hero .kp-client-profile-card__avatar {
    width: 86px;
    height: 86px;
    flex-basis: 86px;
    font-size: 28px;
    font-weight: 900;
}

.kp-client-profile-hero h3,
.kp-client-profile-hero p,
.kp-client-profile-panel-copy,
.kp-client-profile-info p,
.kp-client-profile-animal-card h3,
.kp-client-profile-animal-card p,
.kp-client-profile-document-card h3,
.kp-client-profile-document-card p,
.kp-client-profile-mail-card span,
.kp-client-profile-mail-card strong {
    margin: 0;
}

.kp-client-profile-hero h3 {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 28px;
    font-weight: 800;
    line-height: 1.15;
}

.kp-client-profile-hero p,
.kp-client-profile-panel-copy {
    color: var(--kp-color-text-soft);
    font-size: 14px;
}

.kp-client-readonly-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.kp-client-readonly-field {
    display: grid;
    gap: 7px;
}

.kp-client-readonly-field--wide {
    grid-column: 1 / -1;
}

.kp-client-readonly-field > span,
.kp-client-readonly-field > label,
.kp-client-phone-form > label {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 800;
}

.kp-client-readonly-field > div,
.kp-client-phone-form > div {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--kp-color-border-default);
    border-radius: 10px;
    padding: 10px 13px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-text-main);
    font-size: 14px;
}

.kp-client-readonly-field a,
.kp-client-phone-form button {
    flex: 0 0 auto;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.kp-client-phone-form button {
    font-size: 0;
}

.kp-client-phone-form button::after {
    content: "Modifier";
    font-size: 12px;
}

.kp-client-phone-form {
    display: grid;
    gap: 7px;
}

.kp-client-phone-form input {
    min-width: 0;
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--kp-color-text-main);
    font: inherit;
    outline: none;
}

.kp-client-profile-info {
    margin-top: 0;
}

.kp-client-profile-info p {
    font-size: 12.5px;
    line-height: 1.45;
}

.kp-client-profile-mobile-pending {
    display: none;
}

.kp-client-profile-mobile-pending__content {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.kp-client-profile-mobile-pending__content strong {
    display: block;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-client-profile-mobile-pending__content span {
    display: block;
    overflow: hidden;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-client-profile-mobile-pending__action {
    flex: 0 0 auto;
    color: var(--kp-color-warning-fg);
    font-family: var(--kp-font-heading);
    font-size: 12px;
    font-weight: 800;
}

.kp-client-profile-animal-grid,
.kp-client-profile-document-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}

.kp-card.kp-client-profile-animal-card {
    display: grid;
    grid-template-rows: auto auto 1fr;
    gap: 0;
    padding: 18px;
    box-shadow: none;
}

.kp-client-profile-animal-mini {
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: 12px;
    padding: 10px;
    background: var(--kp-color-surface-soft);
}

.kp-client-profile-animal-mini__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 12px;
    font-size: 22px;
}

.kp-client-profile-animal-mini__icon--chien {
    background: var(--kp-color-warning-bg);
}

.kp-client-profile-animal-mini__icon--chat {
    background: var(--kp-color-surface-blue);
}

.kp-client-profile-animal-mini__icon--nac {
    background: var(--kp-color-success-bg);
}

.kp-client-profile-animal-mini > div {
    min-width: 0;
    flex: 1;
}

.kp-client-profile-animal-card h3,
.kp-client-profile-document-card h3,
.kp-client-profile-document-card__title {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-client-profile-animal-card p,
.kp-client-profile-document-card p,
.kp-client-profile-document-card__copy {
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.35;
}

.kp-client-profile-document-card__title,
.kp-client-profile-document-card__copy {
    display: block;
}

.kp-client-profile-animal-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.kp-client-profile-animal-card__badges .kp-badge {
    min-height: 22px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 600;
}

.kp-client-profile-animal-card__badges .kp-client-profile-animal-card__cat-badge {
    justify-content: center;
    width: 96px;
    min-height: 23px;
    padding: 2px 10px;
    font-size: 11px;
    line-height: 1.2;
}

p.kp-client-profile-animal-card__notes {
    align-self: end;
    min-height: 20px;
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.5;
}

.kp-client-profile-document-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    box-shadow: none;
}

.kp-client-profile-document-card--button {
    width: 100%;
    border-color: var(--kp-color-border-soft);
    color: inherit;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.kp-client-profile-document-card--button:hover {
    border-color: var(--kp-color-brand-primary);
}

.kp-client-profile-mail-card {
    display: grid;
    gap: 4px;
    background: var(--kp-color-surface-soft);
    box-shadow: none;
}

.kp-client-profile-mail-card span {
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-profile-mail-card strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
}

.kp-client-profile-tab-panel.kp-client-profile-password-panel {
    gap: 0;
}

.kp-client-profile-workspace .kp-client-profile-password-panel > h2 {
    margin: 0 0 6px;
    font-size: 28px;
    line-height: 1.15;
}

.kp-client-profile-password-panel .kp-client-profile-panel-copy {
    margin: 0 0 20px;
    color: var(--kp-color-text-soft);
    font-size: 14px;
    line-height: 1.5;
}

.kp-client-profile-password-panel .kp-card.kp-client-profile-mail-card {
    padding: 18px;
    border-radius: 12px;
    background: var(--kp-color-surface-soft);
    box-shadow: none;
}

.kp-client-profile-info--with-icon {
    display: flex;
    align-items: center;
    gap: 10px;
}

.kp-client-profile-password-panel .kp-alert.kp-client-profile-info {
    margin-bottom: 18px;
    padding: 12px 16px;
    border-radius: 12px;
}

.kp-client-profile-info__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
}

.kp-client-profile-info--with-icon p {
    margin: 0;
}

.kp-client-profile-password-panel .kp-client-profile-info strong {
    display: block;
    margin: 0 0 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 14px;
    font-weight: 800;
}

.kp-client-profile-password-panel form {
    display: flex;
}

.kp-client-profile-password-panel .kp-button {
    min-height: 44px;
    border-radius: 12px;
    padding: 10px 20px;
    font-size: 14px;
}

.kp-client-profile-side-panel {
    box-shadow: none;
}

[data-client-side-panel]:not(.is-active) {
    display: none;
}

.kp-card.kp-client-profile-side-panel--warning {
    gap: 0;
    border-width: 1.5px;
    border-color: var(--kp-color-warning-border);
    background: var(--kp-color-warning-bg);
    padding: 18px;
}

.kp-client-profile-pending-email__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.kp-client-profile-pending-email__head > div {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.kp-client-profile-pending-email__head h2 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.kp-client-profile-pending-email__head p {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--kp-color-text-soft);
    font-size: 13px;
    line-height: 1.35;
}

.kp-client-profile-side-panel--warning > p {
    margin: 0 0 12px;
    color: var(--kp-color-text-soft);
    font-size: 12px;
    line-height: 1.4;
}

.kp-client-profile-side-panel--warning .kp-badge {
    flex: 0 0 auto;
}

.kp-client-profile-side-panel--warning .kp-client-email-change__actions {
    gap: 8px;
}

.kp-card.kp-client-profile-side-panel--warning .kp-client-email-change__actions .kp-button {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 13px;
}

.kp-card.kp-client-profile-side-panel--warning.is-highlighted {
    animation: kp-client-pending-email-highlight 520ms ease;
}

@keyframes kp-client-pending-email-highlight {
    0% {
        transform: translateY(0);
        box-shadow: 0 0 0 color-mix(in srgb, var(--kp-color-warning-border) 0%, transparent);
    }

    35% {
        transform: translateY(-2px);
        box-shadow: 0 0 0 4px color-mix(in srgb, var(--kp-color-warning-border) 28%, transparent);
    }

    100% {
        transform: translateY(0);
        box-shadow: 0 0 0 color-mix(in srgb, var(--kp-color-warning-border) 0%, transparent);
    }
}

.kp-card.kp-client-profile-help-panel {
    border-color: transparent;
    background: var(--kp-color-surface-blue);
    box-shadow: none;
}

.kp-client-profile-help-panel h2 {
    margin-bottom: 6px;
}

.kp-client-profile-help-panel p {
    margin-bottom: 14px;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-profile-session-panel {
    box-shadow: none;
}

.kp-client-profile-session-panel .kp-button--outline {
    border-color: var(--kp-color-error-fg);
    background: var(--kp-color-surface-card);
    color: var(--kp-color-error-fg);
}

.kp-client-contact-modal__dialog {
    width: min(100%, 620px);
    gap: 16px;
    padding: 26px;
}

.kp-client-contact-modal__header {
    margin-bottom: 0;
}

.kp-client-contact-modal__header h2 {
    font-size: 26px;
}

.kp-client-contact-modal__header p {
    font-size: 14px;
}

.kp-modal-close,
.kp-client-contact-modal__close {
    border: 0;
    border-radius: 10px;
    padding: 8px 12px;
    background: var(--kp-color-surface-card);
    color: var(--kp-color-brand-primary);
    cursor: pointer;
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-client-contact-modal__options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.kp-client-contact-modal__form {
    display: grid;
    gap: 16px;
}

.kp-client-contact-option {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 8px 10px;
    min-width: 0;
    border: 1px solid var(--kp-color-border-soft);
    border-radius: 12px;
    padding: 13px;
    background: var(--kp-color-surface-card);
    color: inherit;
    text-align: left;
    text-decoration: none;
}

.kp-client-contact-option__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--kp-color-surface-blue);
    font-size: 19px;
}

.kp-client-contact-option strong,
.kp-client-contact-option small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-client-contact-option strong {
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-client-contact-option small {
    color: var(--kp-color-text-soft);
    font-size: 12px;
}

.kp-client-contact-option em {
    grid-column: 1 / -1;
    justify-self: stretch;
    border-radius: 8px;
    padding: 7px 8px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-heading);
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    text-align: center;
}

.kp-client-contact-modal__request {
    display: grid;
    gap: 12px;
    padding: 18px;
    box-shadow: none;
}

.kp-client-contact-modal__request h3 {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 17px;
    font-weight: 800;
}

.kp-client-contact-modal__request p {
    margin: 0;
    color: var(--kp-color-text-soft);
    font-size: 13px;
}

.kp-client-contact-modal__request .kp-field {
    margin-top: 0;
}

.kp-client-contact-modal__status {
    margin: 0;
    border-radius: 10px;
    padding: 10px 12px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-size: 13px;
    font-weight: 700;
}

.kp-client-contact-modal__status[data-state="success"] {
    background: var(--kp-color-success-bg);
    color: var(--kp-color-success-fg);
}

.kp-client-contact-modal__status[data-state="error"] {
    background: var(--kp-color-error-bg);
    color: var(--kp-color-error-fg);
}

.kp-client-contact-modal__actions {
    margin-top: -6px;
}

.kp-client-document-modal__dialog {
    width: min(100%, 520px);
    gap: 16px;
    padding: 26px;
}

.kp-client-document-modal__dialog .kp-client-profile-info {
    margin: 0;
}

.kp-client-document-modal__actions {
    display: flex;
    justify-content: flex-end;
}

.kp-client-profile-edit-modal__dialog {
    width: min(100%, 460px);
    gap: 14px;
    border-radius: 18px 18px 12px 12px;
    padding: 20px;
}

.kp-client-profile-edit-modal__header {
    margin-bottom: 0;
}

.kp-client-profile-edit-modal__header h2 {
    font-size: 20px;
}

.kp-client-profile-edit-modal__header p {
    font-size: 12px;
}

.kp-client-profile-edit-modal__form {
    display: grid;
    gap: 14px;
}

.kp-client-profile-edit-modal__form .kp-field {
    display: grid;
    gap: 7px;
}

.kp-client-profile-edit-modal__form .kp-client-profile-info {
    margin: 0;
}

.kp-client-profile-edit-modal__form .kp-client-profile-info strong {
    display: block;
    margin-bottom: 4px;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-heading);
    font-size: 13px;
    font-weight: 800;
}

.kp-client-profile-edit-modal__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kp-client-profile-edit-modal__actions button[type="submit"] {
    font-size: 0;
}

.kp-client-profile-edit-modal__actions button[type="submit"]::after {
    content: "Enregistrer";
    font-size: 14px;
}

.kp-client-phone-form .kp-field__error {
    margin-bottom: 0;
    font-size: 13px;
}

.kp-client-email-change {
    display: grid;
    gap: 14px;
    padding-top: 16px;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-client-email-change h3 {
    margin: 0 0 4px;
    font-family: var(--kp-font-heading);
    font-size: 18px;
    line-height: 1.2;
}

.kp-client-email-change__form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: end;
}

.kp-client-email-change__form .kp-field {
    display: grid;
    gap: 6px;
}

.kp-client-email-change__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.kp-client-email-change__actions .kp-button,
.kp-client-email-change__form .kp-button {
    min-height: 48px;
    white-space: normal;
}

.kp-client-security-actions {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--kp-color-border-soft);
}

.kp-client-security-actions h3 {
    margin: 0 0 4px;
    font-family: var(--kp-font-heading);
    font-size: 18px;
    line-height: 1.2;
}

.kp-client-security-actions form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.kp-client-security-actions .kp-button {
    min-height: 48px;
    white-space: normal;
}

.kp-client-logout-form {
    padding-top: 16px;
    border-top: 1px solid var(--kp-color-border-soft);
}

@media (max-width: 1024px) {
    .kp-admin-catalogue-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-admin-catalogue-states {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-admin-service-category-layout {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-layout {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-catalogue-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-admin-service-exception-layout {
        grid-template-columns: 1fr;
    }

    .kp-admin-rule-simulator-layout {
        grid-template-columns: 1fr;
    }

    .kp-admin-payment-settings-summary,
    .kp-admin-payment-settings-overview,
    .kp-admin-payment-settings-env-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 859px) {
    .kp-admin-shell__sidebar--proto {
        display: none;
    }

    .kp-admin-payment-review-page {
        --kp-admin-payment-review-width: 100%;
        gap: 16px;
        padding-top: 0;
    }

    .kp-admin-payment-review-back {
        display: none;
    }

    .kp-admin-payment-review-alert,
    .kp-admin-payment-review-mode {
        padding: 12px 14px;
        border-radius: 12px;
    }

    .kp-admin-payment-review-alert strong {
        margin-bottom: 4px;
        font-size: 0.875rem;
    }

    .kp-admin-payment-review-alert p {
        font-size: 0.83rem;
        line-height: 1.4;
    }

    .kp-card.kp-admin-payment-action-card {
        padding: 14px;
    }

    .kp-admin-payment-action-card__layout {
        grid-template-columns: 1fr;
        gap: 12px;
        align-items: center;
    }

    .kp-admin-payment-action-card[data-review-category="validations"] {
        min-height: 301px;
    }

    .kp-admin-payment-action-card__summary {
        font-size: 0.82rem;
    }

    .kp-admin-payment-action-card__reason {
        font-size: 0.78rem;
    }

    .kp-admin-payment-action-card__side {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .kp-admin-payment-action-card[data-review-category="validations"] .kp-admin-payment-action-card__side {
        gap: 11px;
    }

    .kp-admin-payment-action-card[data-review-category="manual"] {
        min-height: 316px;
    }

    .kp-admin-payment-action-card__value {
        min-width: 0;
        text-align: left;
    }

    .kp-admin-payment-action-card__actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .kp-admin-payment-action-card__actions form {
        width: 100%;
    }

    .kp-admin-payment-action-card__actions .kp-button {
        width: 100%;
        gap: 6px;
    }

    .kp-admin-payment-action-card[data-review-category="refunds"] {
        min-height: 341px;
        margin-top: 0;
        padding-bottom: 14px;
    }

    .kp-admin-payment-action-card h2 {
        line-height: normal;
    }

    .kp-admin-payment-action-card .kp-admin-payment-action-card__title-row {
        margin-bottom: 4px;
    }

    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__reason,
    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__meta {
        margin-top: 5px;
    }

    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__side,
    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__actions {
        gap: 10px;
    }

    .kp-admin-payment-action-card[data-review-category="refunds"] .kp-admin-payment-action-card__side {
        margin-top: 0;
    }

    .kp-admin-payment-confirm-sheet {
        inset: 56px 0 0;
        align-items: flex-end;
        padding: 0;
    }

    .kp-admin-payment-confirm-sheet__panel {
        width: 100%;
        max-height: calc(100vh - 56px);
        margin: 0;
        border-radius: 20px 20px 0 0;
        gap: 14px;
        padding: 0 16px calc(20px + env(safe-area-inset-bottom));
        background: var(--kp-color-surface-page);
    }

    .kp-admin-payment-confirm-sheet__head {
        position: sticky;
        top: 0;
        z-index: 2;
        align-items: flex-start;
        gap: 12px;
        margin: 0 -16px;
        border-bottom: 1px solid var(--kp-color-border-soft);
        padding: 16px;
        background: var(--kp-color-surface-page);
    }

    .kp-admin-payment-confirm-sheet__head h2 {
        margin-bottom: 4px;
        font-size: 22px;
    }

    .kp-admin-payment-confirm-sheet__head p {
        font-size: 13px;
    }

    .kp-admin-payment-confirm-sheet__details {
        margin: 0;
        padding: 16px;
    }

    .kp-admin-payment-confirm-sheet__details > div {
        padding: 6px 0;
    }

    .kp-admin-payment-followup-form textarea {
        min-height: 84px;
    }

    .kp-admin-payment-confirm-sheet__actions {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 0;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__panel {
        display: block;
        max-height: calc(100vh - 72px);
        padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__details > div {
        padding: 7px 0;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__head {
        position: static;
        margin: 0 0 16px;
        border-bottom: 0;
        padding: 0;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__head h2 {
        margin-bottom: 6px;
        font-weight: 800;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__head p {
        font-size: 14px;
        line-height: 1.35;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-alert {
        margin-bottom: 16px;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__details {
        display: block;
        margin-bottom: 12px;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__actions {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    [data-testid="admin-reservation-cancel-sheet"] .kp-admin-payment-confirm-sheet__actions .kp-button {
        min-height: 0;
        padding: 10px 20px;
        line-height: normal;
        white-space: nowrap;
    }

    .kp-admin-payment-action-card__summary {
        font-size: 13px;
        line-height: normal;
    }

    .kp-admin-payment-action-card__reason {
        margin-top: 4px;
        font-size: 12px;
        line-height: 1.35;
    }

    .kp-admin-payment-action-card__meta {
        margin-top: 4px;
        font-family: "JetBrains Mono", monospace;
        line-height: normal;
    }

    .kp-admin-payment-action-card__value {
        font-weight: 800;
    }

    .kp-admin-payment-action-card__actions .kp-button {
        gap: 8px;
        line-height: normal;
        white-space: nowrap;
    }

    .kp-admin-payment-action-card__actions .kp-button--light,
    .kp-admin-payment-action-card__actions .kp-button--outline {
        min-height: 0;
        color: var(--kp-color-brand-primary);
    }

    .kp-admin-payment-action-card__actions .kp-button--primary {
        border: 0;
    }

    .kp-admin-payment-followup-form {
        margin: 0;
    }

    .kp-admin-service-catalogue__desktop-title,
    .kp-admin-service-catalogue__desktop-new {
        display: none !important;
    }

    .kp-admin-service-catalogue__mobile-title {
        display: inline;
    }

    .kp-admin-service-catalogue__mobile-new {
        display: inline-flex !important;
        grid-column: 2;
        order: -1;
        min-height: 40px;
        align-items: center;
        justify-self: end;
        border-radius: 8px;
        padding-inline: 14px;
        white-space: nowrap;
    }

    .kp-admin-service-catalogue-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
        border: 0;
        background: transparent;
        box-shadow: none;
        max-height: none;
        overflow: visible;
        padding: 0;
    }

    .kp-admin-service-catalogue-search {
        max-width: none;
        flex-basis: auto;
        grid-column: 1;
        order: -1;
    }

    .kp-admin-service-catalogue-select--category {
        display: block;
        grid-column: 1 / -1;
        width: 100%;
    }

    .kp-admin-service-catalogue-select--visibility {
        display: none !important;
    }

    .kp-admin-service-catalogue-search input {
        min-height: 40px;
        font-size: 13px;
    }

    .kp-admin-service-catalogue-chips {
        display: none;
    }

    .kp-admin-service-page--compact > .kp-admin-service-catalogue-count {
        display: none;
    }

    .kp-admin-service-catalogue-grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-card {
        box-shadow: 0 2px 8px color-mix(in srgb, var(--kp-color-text-main) 7%, transparent);
    }

    .kp-admin-service-card__link {
        padding: 13px;
    }

}

@media (max-width: 700px) {
    .kp-admin-page {
        padding: 24px 16px 52px;
    }

    .kp-admin-payment-review-page {
        padding-bottom: 112px;
    }

    .kp-admin-service-page--compact {
        gap: 6px;
        padding-right: 12px;
        padding-left: 12px;
    }

    .kp-admin-service-page--compact > .kp-admin-service-catalogue-count {
        margin-top: -4px;
        margin-bottom: -4px;
    }

    .kp-admin-service-page--compact .kp-admin-service-catalogue-toolbar {
        margin-bottom: -2px;
    }

    .kp-admin-service-page--compact .kp-admin-service-catalogue-grid {
        gap: 12px;
    }

    .kp-admin-service-page--compact .kp-card.kp-admin-service-card {
        padding: 0;
    }

    .kp-admin-service-page--compact .kp-admin-service-card__link {
        gap: 9px;
        padding: 13px;
    }

    .kp-admin-service-page--compact .kp-admin-service-card__head {
        gap: 10px;
    }

    .kp-admin-service-page--compact .kp-admin-service-card__identity {
        gap: 12px;
    }

    .kp-admin-service-page--compact .kp-admin-service-card__icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
        font-size: 18px;
    }

    .kp-admin-service-page--compact .kp-admin-service-card__footer {
        padding-top: 8px;
    }

    .kp-admin-page__header,
    .kp-admin-form-actions {
        display: grid;
    }

    .kp-admin-customer-form--create .kp-admin-form-actions {
        position: fixed;
        right: 0;
        bottom: calc(64px + env(safe-area-inset-bottom));
        left: 0;
        z-index: 80;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        justify-content: center;
        justify-items: stretch;
        width: 100%;
        margin: 0;
        border-top: 1px solid var(--kp-color-border-soft);
        background: var(--kp-color-surface-page);
        box-shadow: 0 -10px 24px color-mix(in srgb, var(--kp-color-text-main) 10%, transparent);
        padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
    }

    .kp-admin-customer-form--create .kp-admin-form-actions .kp-button {
        justify-content: center;
        width: 100%;
    }

    .kp-admin-payment-settings-topbar {
        display: none;
    }

    .kp-admin-payment-settings-topbar--mobile-return {
        display: flex;
    }

    .kp-admin-payment-settings-mobile-hero {
        display: grid;
        gap: 6px;
    }

    .kp-admin-payment-settings-layout {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .kp-admin-payment-settings-page,
    .kp-admin-payment-settings-page *,
    .kp-admin-payment-settings-topbar,
    .kp-admin-payment-settings-topbar * {
        box-sizing: border-box;
    }

    .kp-admin-payment-settings-page {
        overflow-x: hidden;
    }

    .kp-admin-payment-settings-layout,
    .kp-admin-payment-settings-layout > *,
    .kp-admin-payment-settings-status,
    .kp-admin-payment-settings-status__head,
    .kp-admin-payment-settings-status__head > div,
    .kp-admin-payment-settings-summary,
    .kp-admin-payment-settings-summary > div,
    .kp-admin-payment-settings-env-card,
    .kp-admin-payment-settings-env-card dl,
    .kp-admin-payment-settings-env-card dl > div,
    .kp-admin-flash-alert,
    .kp-admin-payment-settings-mode-alert,
    .kp-admin-payment-settings-webhook-help {
        max-width: 100%;
        min-width: 0;
    }

    .kp-admin-payment-settings-status__head p,
    .kp-admin-payment-settings-summary dd,
    .kp-admin-payment-settings-env-card dd,
    .kp-admin-flash-alert p,
    .kp-admin-payment-settings-mode-alert p,
    .kp-admin-payment-settings-webhook-help p {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .kp-admin-payment-settings-status,
    .kp-admin-payment-settings-env-card,
    .kp-admin-payment-settings-guardrails,
    .kp-admin-payment-settings-environment-switch {
        padding: 16px;
    }

    .kp-admin-payment-settings-status__head,
    .kp-admin-payment-settings-env-card__head {
        display: grid;
    }

    .kp-admin-payment-settings-env-actions,
    .kp-admin-payment-settings-environment-switch {
        grid-template-columns: 1fr;
    }

    .kp-admin-payment-settings-switch-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .kp-admin-payment-settings-env-actions .kp-button,
    .kp-admin-payment-settings-switch-actions .kp-button {
        width: 100%;
    }

    .kp-admin-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 10px;
    }

    .kp-admin-service-category-page .kp-admin-form-grid,
    .kp-admin-service-page .kp-admin-form-grid,
    .kp-admin-service-exception-page .kp-admin-form-grid,
    .kp-admin-rule-simulator-page .kp-admin-form-grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-animal-form__identity-grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-animal-form__profile-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-admin-form-grid__mobile-wide {
        grid-column: 1 / -1;
    }

    .kp-admin-detail-list {
        grid-template-columns: 1fr;
    }

    .kp-admin-catalogue-page {
        gap: 16px;
    }

    .kp-admin-catalogue-hero h2 {
        font-size: 24px;
    }

    .kp-admin-catalogue-grid,
    .kp-admin-catalogue-states {
        grid-template-columns: 1fr;
    }

    .kp-admin-catalogue-entry,
    .kp-admin-catalogue-state {
        min-height: 0;
    }

    .kp-admin-catalogue-entry__head {
        align-items: flex-start;
    }

    .kp-admin-service-category-card dl,
    .kp-admin-service-category-form__capacity-grid,
    .kp-admin-service-card dl,
    .kp-admin-service-exception-card dl,
    .kp-admin-service-form__meta-grid,
    .kp-admin-service-pricing-grid,
    .kp-admin-service-form__readonly,
    .kp-admin-service-duration-help,
    .kp-admin-prototype-summary {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-category-page,
    .kp-admin-service-page {
        gap: 14px;
        padding-bottom: 128px;
    }

    .kp-admin-service-category-page.kp-admin-rules-page {
        gap: 24px;
        padding: 80px 20px 128px;
    }

    .kp-admin-rules-page.has-drafts {
        padding-bottom: calc(232px + env(safe-area-inset-bottom));
    }

    .kp-admin-service-page--form {
        padding-bottom: 0;
    }

    .kp-admin-rules-tabs {
        display: none;
    }

    .kp-admin-rules-page > .kp-admin-rules-tabs {
        justify-self: stretch;
        width: 100%;
        max-width: none;
    }

    .kp-admin-rules-layout,
    .kp-admin-rules-page > .kp-alert,
    .kp-admin-rules-page > .kp-admin-back-link,
    .kp-admin-rules-page > .kp-admin-draft-panel,
    .kp-admin-rules-page > .kp-admin-flash-alert,
    .kp-admin-rules-page > .kp-error-summary {
        width: 100%;
        max-width: none;
    }

    .kp-admin-rules-layout,
    .kp-admin-rules-layout.has-drafts {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .kp-admin-rules-section-title {
        font-size: 16px;
        font-weight: 700;
    }

    .kp-admin-rules-panel {
        padding: 14px;
    }

    .kp-admin-rules-section-panel.is-inactive-desktop {
        display: grid;
    }

    .kp-admin-rules-section-panel {
        scroll-margin-top: 84px;
    }

    .kp-admin-rules-panel__head {
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
    }

    .kp-admin-rules-panel__actions {
        width: 100%;
        justify-content: flex-start;
    }

    .kp-admin-rules-panel__head h3,
    .kp-admin-rules-mobile-panel h3 {
        min-width: 0;
        font-size: 16px;
        font-weight: 700;
    }

    .kp-admin-rules-panel__alert,
    .kp-admin-rules-boundary-alert {
        padding: 12px 16px;
    }

    .kp-admin-rules-panel__alert-copy strong {
        font-size: 13px;
        font-weight: 700;
    }

    .kp-admin-rules-panel__alert-copy > span {
        font-size: 13px;
        line-height: 1.5;
    }

    .kp-admin-rules-mobile-stack {
        display: grid;
        width: 100%;
        gap: 24px;
    }

    .kp-admin-rules-mobile-panel {
        padding: 14px;
    }

    .kp-admin-rules-panel__head .kp-admin-rules-add-button,
    .kp-admin-rules-mobile-panel .kp-admin-service-exception-add-button {
        min-height: 38px;
        width: auto;
        flex: 0 0 auto;
        border-radius: 10px;
        padding: 8px 12px;
        font-size: 13px;
        line-height: 1.15;
    }

    .kp-admin-rules-panel__head .kp-admin-rules-add-button--desktop-label {
        width: auto;
    }

    .kp-admin-rules-add-button__desktop {
        display: inline;
    }

    .kp-admin-rules-add-button__mobile {
        display: none;
    }

    .kp-admin-rules-availability-period-card {
        padding: 10px;
    }

    .kp-admin-calendar-exception-card {
        padding: 10px;
    }

    .kp-admin-calendar-exception-card__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .kp-admin-calendar-exception-form__grid,
    .kp-admin-calendar-exception-form__choices {
        grid-template-columns: 1fr;
    }

    .kp-admin-rules-availability-period-card__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .kp-admin-rules-availability-period-card__actions > a {
        min-height: 38px;
        padding: 10px 12px;
        font-size: 13px;
    }

    .kp-admin-availability-time-summary {
        display: grid;
        gap: 10px;
    }

    .kp-admin-availability-time-summary .kp-button {
        width: 100%;
    }

    .kp-admin-availability-time-summary p span {
        white-space: normal;
    }

    .kp-admin-availability-time-settings__head {
        display: grid;
        gap: 10px;
    }

    .kp-admin-availability-time-settings__head .kp-button {
        width: 100%;
    }

    .kp-admin-availability-time-settings__grid {
        gap: 8px;
    }

    .kp-admin-availability-time-settings__grid label {
        grid-template-columns: minmax(0, 1fr) 94px 16px 94px;
        gap: 8px;
    }

    .kp-admin-availability-time-settings__grid small {
        grid-column: 2 / -1;
        justify-self: start;
    }

    .kp-admin-availability-time-settings__grid input {
        width: 94px;
    }

    .kp-admin-service-exception-card__actions .kp-admin-rules-inline-action {
        min-height: 38px;
        padding: 10px 12px;
        font-size: 13px;
    }

    .kp-admin-settings-page {
        padding: 0 0 86px;
        background: var(--kp-color-surface-page);
    }

    .kp-admin-settings-desktop-topbar {
        display: none;
    }

    .kp-admin-settings-mobile-hero {
        display: none;
    }

    .kp-admin-settings-content {
        width: 100%;
        padding: 8px 6px 0;
        gap: 0;
    }

    .kp-admin-settings-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .kp-admin-settings-card {
        grid-template-columns: 42px minmax(0, 1fr) 18px;
        align-items: center;
        border-radius: 12px;
        padding: 10px 12px;
        order: var(--kp-settings-mobile-order);
    }

    .kp-admin-settings-card__icon {
        width: 42px;
        height: 42px;
        background: var(--kp-color-surface-alt);
        font-size: 22px;
    }

    .kp-admin-settings-card__head strong {
        font-size: 14px;
    }

    .kp-admin-settings-card__head {
        justify-content: flex-start;
        gap: 8px;
        margin-bottom: 0;
    }

    .kp-admin-settings-card__body > span:last-child {
        font-size: 12.5px;
        line-height: 1.35;
    }

    .kp-admin-settings-logout {
        margin-top: 26px;
    }

    .kp-admin-rules-category-card {
        padding: 14px;
    }

    .kp-admin-rules-category-card__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 8px;
    }

    .kp-admin-rules-category-card__head > div:first-child {
        min-width: 0;
    }

    .kp-admin-rules-category-card__actions {
        flex-wrap: nowrap;
        gap: 6px;
    }

    .kp-admin-rules-category-card__actions > a {
        min-height: 34px;
        padding: 7px 10px;
        white-space: nowrap;
    }

    .kp-admin-rules-capacity-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
    }

    .kp-admin-rules-drawer {
        left: 0;
        z-index: 85;
        width: 100vw;
        align-items: flex-end;
        justify-content: center;
        background: rgb(43 53 112 / 0.55);
        padding: 88px 0 0;
    }

    .kp-admin-rules-drawer__panel {
        width: 100%;
        max-width: 430px;
        max-height: calc(100vh - 88px);
        border-radius: 18px 18px 0 0;
        background: var(--kp-color-surface-page);
        box-shadow: 0 -10px 40px rgb(0 0 0 / 0.25);
        padding: 0 16px calc(24px + env(safe-area-inset-bottom));
    }

    .kp-admin-rules-drawer__head {
        margin-bottom: 12px;
        padding: 16px 0 12px;
    }

    .kp-admin-rules-drawer__head h2 {
        font-size: 22px;
    }

    .kp-admin-rules-drawer__close {
        background: #fff;
        padding: 8px 12px;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form {
        padding: 0;
    }

    .kp-admin-rules-drawer .kp-admin-form-section--card {
        margin: 0 0 12px;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__single-card .kp-admin-form-section__card {
        gap: 14px;
        border: 1px solid var(--kp-color-border-soft);
        padding: 14px;
    }

    .kp-admin-rules-drawer .kp-admin-open-period-form .kp-admin-service-category-form__single-card .kp-admin-form-section__card {
        gap: 0;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 14px;
        padding: 14px;
        background: #fff;
        box-shadow: none;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__group {
        gap: 10px;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__group h2 {
        font-size: 14px;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__group + .kp-admin-service-category-form__group {
        padding-top: 12px;
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__capacity-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .kp-admin-open-period-form__month-head {
        align-items: flex-start;
    }

    .kp-admin-open-period-calendar {
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 4px;
    }

    .kp-admin-open-period-form__days {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .kp-admin-open-period-form__plages {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kp-admin-open-period-form__days label,
    .kp-admin-open-period-form__plages label {
        min-height: 38px;
        padding: 8px 4px;
        font-size: 11px;
    }

    .kp-admin-open-period-form__plages label {
        min-height: 56px;
    }

    .kp-admin-open-period-form__category {
        padding: 10px 12px;
    }

    .kp-admin-open-period-form__capacity-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__actions {
        position: sticky;
        bottom: calc(-24px - env(safe-area-inset-bottom));
        z-index: 6;
        grid-template-columns: 1fr;
        border-top: 0;
        background: var(--kp-color-surface-page);
        margin: 0 -16px calc(-24px - env(safe-area-inset-bottom));
        padding: 10px 16px calc(24px + env(safe-area-inset-bottom));
        box-shadow: 0 -12px 24px rgb(43 53 112 / 0.12);
    }

    .kp-admin-rules-drawer .kp-admin-service-category-form__actions .kp-button {
        height: 41px;
        min-height: 0;
    }

    .kp-admin-rules-delete-dialog:target {
        inset: 56px 0 0;
        align-items: flex-end;
        padding: 0;
    }

    .kp-admin-rules-delete-dialog__panel {
        width: 100%;
        border-radius: 20px 20px 0 0;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    }

    .kp-admin-rules-delete-dialog__head h2 {
        font-size: 22px;
    }

    .kp-admin-rules-delete-dialog__actions,
    .kp-admin-rules-delete-dialog__secondary {
        grid-template-columns: 1fr;
    }

    .kp-admin-payment-settings-dialog:target,
    .kp-admin-payment-settings-dialog[data-dialog-open] {
        inset: 0;
        align-items: flex-end;
        justify-content: center;
        background: rgb(15 23 42 / 0.55);
        padding: 0;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel {
        width: 100%;
        max-width: 430px;
        max-height: 88vh;
        border-radius: 18px 18px 0 0;
        background: #fff;
        padding: 0;
        overflow-y: auto;
        box-shadow: 0 -12px 32px rgb(15 23 42 / 0.22);
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__panel {
        gap: 18px;
        background: var(--kp-color-surface-page);
        padding: 20px 20px calc(26px + env(safe-area-inset-bottom));
    }

    .kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__panel {
        width: 100%;
        max-width: 430px;
        max-height: 88vh;
        overflow-y: auto;
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__panel {
        width: 100%;
        max-width: 430px;
        max-height: 88vh;
        gap: 18px;
        border-radius: 18px 18px 0 0;
        background: var(--kp-color-surface-page);
        padding: 20px 20px calc(26px + env(safe-area-inset-bottom));
        overflow-y: auto;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head {
        position: static;
        padding: 20px 20px 0;
        border-bottom: 0;
        background: #fff;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head h2 {
        font-size: 18px;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__head p {
        font-size: 14px;
        line-height: 1.5;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-drawer__close {
        min-height: 36px;
        border-radius: 8px;
        background: var(--kp-color-surface-page);
        padding: 0 10px;
        font-size: 13px;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-drawer__close {
        display: inline-flex;
        background: #fff;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel > label,
    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__panel > input[type="hidden"] + label {
        margin-right: 20px;
        margin-left: 20px;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__head {
        padding: 0;
        background: transparent;
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__head {
        padding: 0;
        background: transparent;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__head h2 {
        max-width: 14ch;
        font-size: 28px;
        line-height: 1.08;
    }

    .kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__head h2 {
        max-width: 14ch;
        font-size: 28px;
        line-height: 1.08;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__head p {
        margin-top: 10px;
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card {
        grid-template-columns: 1fr;
        gap: 14px;
        border-radius: 16px;
        background: #fff;
        padding: 16px;
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-payment-settings-secret-card label {
        grid-column: auto;
        margin: 0;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-payment-settings-secret-card {
        display: grid;
        gap: 14px;
        border-radius: 16px;
        background: #fff;
        padding: 16px;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-payment-settings-secret-card label {
        margin: 0;
    }

    .kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-secret-card label {
        grid-column: auto;
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-payment-settings-secret-warning {
        margin: 0;
        border-color: #FDE68A;
        border-radius: 12px;
        background: #FEF3C7;
        color: #D97706;
    }

    .kp-admin-payment-settings-dialog--stripe-config .kp-admin-payment-settings-secret-warning {
        margin: 0;
        padding: 14px 16px;
    }

    .kp-admin-payment-settings-dialog .kp-admin-rules-delete-dialog__actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding: 0 20px calc(26px + env(safe-area-inset-bottom));
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__actions {
        position: sticky;
        bottom: calc(-26px - env(safe-area-inset-bottom));
        z-index: 3;
        margin: 0 -20px calc(-26px - env(safe-area-inset-bottom));
        background: var(--kp-color-surface-page);
        padding: 10px 20px calc(26px + env(safe-area-inset-bottom));
        box-shadow: 0 -12px 24px rgb(43 53 112 / 0.10);
    }

    .kp-admin-payment-settings-dialog--stripe-config .kp-admin-rules-delete-dialog__actions {
        margin: 0 -20px calc(-26px - env(safe-area-inset-bottom));
        border-top: 0;
        padding: 10px 20px calc(26px + env(safe-area-inset-bottom));
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__actions {
        position: sticky;
        bottom: calc(-26px - env(safe-area-inset-bottom));
        z-index: 3;
        margin: 0 -20px calc(-26px - env(safe-area-inset-bottom));
        border-top: 0;
        background: var(--kp-color-surface-page);
        padding: 10px 20px calc(26px + env(safe-area-inset-bottom));
        box-shadow: 0 -12px 24px rgb(43 53 112 / 0.10);
    }

    .kp-admin-payment-settings-dialog--stripe .kp-admin-rules-delete-dialog__actions .kp-button--secondary {
        border: 1.5px solid var(--kp-color-brand-primary);
        background: #fff;
        color: var(--kp-color-brand-primary);
    }

    .kp-admin-payment-settings-dialog--brevo .kp-admin-rules-delete-dialog__actions .kp-button--secondary {
        border: 1.5px solid var(--kp-color-brand-primary);
        background: #fff;
        color: var(--kp-color-brand-primary);
    }

    .kp-admin-service-exception-page {
        gap: 14px;
        padding-bottom: 128px;
    }

    .kp-admin-service-exception-panel {
        padding: 16px;
    }

    .kp-admin-service-exception-panel__head,
    .kp-admin-service-exception-card,
    .kp-admin-service-exception-card__actions {
        display: grid;
    }

    .kp-admin-service-exception-card__actions {
        grid-template-columns: 1fr 1fr;
    }

    .kp-admin-rule-simulator-page {
        gap: 14px;
        padding-bottom: 128px;
    }

    .kp-admin-service-page .kp-alert {
        padding: 14px 16px;
    }

    .kp-admin-service-form__layout {
        display: block;
    }

    .kp-admin-service-form__main {
        gap: 10px;
    }

    .kp-admin-service-form__aside {
        position: static;
        gap: 10px;
    }

    .kp-admin-service-preview-panel {
        margin-top: 16px;
        border: 0;
        background: transparent;
        box-shadow: none;
        padding: 0;
    }

    .kp-admin-service-lifecycle--prototype {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-lifecycle__actions,
    .kp-admin-service-lifecycle__actions .kp-button {
        width: 100%;
        justify-items: stretch;
    }

    .kp-card.kp-admin-service-completion-panel {
        position: fixed;
        right: 0;
        bottom: calc(64px + env(safe-area-inset-bottom));
        left: 0;
        z-index: 80;
        border-width: 1px 0 0;
        border-color: var(--kp-color-border-soft);
        border-radius: 18px 18px 0 0;
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
        background: var(--kp-color-surface-page);
        box-shadow: 0 -10px 24px color-mix(in srgb, var(--kp-color-text-main) 10%, transparent);
        padding: 10px 16px 14px;
    }

    .kp-admin-service-completion-panel .kp-admin-service-form__actions {
        gap: 10px;
        grid-template-columns: 1fr;
        margin: 0;
    }

    .kp-admin-service-completion-panel .kp-admin-service-form__actions .kp-button--outline {
        display: none;
    }

    .kp-admin-service-completion-panel h2,
    .kp-admin-service-completion-panel dl,
    .kp-admin-service-completion-panel > p {
        display: none;
    }

    .kp-admin-service-delete-dialog {
        align-items: end;
        place-items: end stretch;
        padding: 0;
    }

    .kp-admin-service-delete-dialog__panel {
        width: 100%;
        max-width: none;
        border-radius: 20px 20px 0 0;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    }

    .kp-admin-service-delete-dialog__actions {
        grid-template-columns: 1fr;
    }

    .kp-admin-service-catalogue__desktop-new,
    .kp-admin-service-catalogue-toolbar .kp-button[type="submit"] {
        display: none;
    }

    .kp-admin-service-catalogue__mobile-new {
        display: inline-flex;
        grid-column: 2;
        order: -1;
        min-height: 40px;
        align-items: center;
        justify-self: end;
        white-space: nowrap;
    }

    .kp-admin-service-catalogue-toolbar {
        grid-template-columns: minmax(0, 1fr) auto;
        display: grid;
        gap: 8px;
        border: 0;
        background: transparent;
        box-shadow: none;
        max-height: none;
        overflow: visible;
        padding: 0;
    }

    .kp-admin-service-catalogue-search {
        flex-basis: auto;
        grid-column: 1;
        order: -1;
    }

    .kp-admin-service-catalogue-select--category {
        display: block;
        grid-column: 1 / -1;
        width: 100%;
    }

    .kp-admin-service-catalogue-select--visibility {
        display: none !important;
    }

    .kp-admin-service-catalogue-search input {
        min-height: 40px;
        font-size: 13px;
    }

    .kp-admin-service-catalogue-chips {
        display: none;
    }

    .kp-admin-service-catalogue-grid {
        gap: 12px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__link {
        gap: 9px;
        padding: 13px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__head {
        display: flex;
        gap: 10px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__identity {
        gap: 12px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
        font-size: 18px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__title {
        font-size: 13px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__group,
    .kp-admin-service-catalogue-grid .kp-admin-service-card__description {
        font-size: 12px;
        line-height: 1.25;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__chips {
        gap: 4px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__chip {
        min-height: 19px;
        padding: 2px 6px;
        font-size: 10px;
    }

    .kp-admin-service-catalogue-grid .kp-admin-service-card__footer {
        padding-top: 8px;
    }

    .kp-admin-service-form {
        gap: 10px;
        padding-bottom: max(16px, calc(var(--kp-service-mobile-action-offset, 96px) - 88px));
    }

    .kp-admin-service-form .kp-admin-form-section--card {
        gap: 4px;
        margin-bottom: 10px;
    }

    .kp-admin-service-form .kp-admin-form-section--card h2,
    .kp-admin-service-preview-panel h2 {
        margin-bottom: 8px;
        font-size: 15px;
        line-height: 1.15;
    }

    .kp-admin-service-preview-panel h2 {
        margin-bottom: 12px;
        font-size: 16px;
        font-weight: 700;
    }

    .kp-admin-service-form .kp-admin-form-section__card {
        border-radius: 12px;
        padding: 12px;
    }

    .kp-admin-service-form .kp-field {
        gap: 5px;
    }

    .kp-admin-service-form .kp-field__label,
    .kp-admin-service-species legend {
        font-size: 12px;
        line-height: 1.25;
    }

    .kp-admin-service-species legend {
        font-weight: 600;
    }

    .kp-admin-service-form .kp-field__control {
        min-height: 40px;
        padding: 9px 12px;
        font-size: 14px;
        line-height: 1.25;
    }

    .kp-admin-service-boundary,
    .kp-admin-service-duration-help,
    .kp-admin-service-pricing-warning,
    .kp-admin-service-ok-cats {
        padding: 10px 12px;
    }

    .kp-admin-service-boundary,
    .kp-admin-service-pricing-warning {
        gap: 8px;
    }

    .kp-admin-service-boundary strong,
    .kp-admin-service-duration-help strong,
    .kp-admin-service-pricing-warning strong,
    .kp-admin-service-ok-cats strong {
        font-size: 12px;
        line-height: 1.2;
    }

    .kp-admin-service-boundary > div span,
    .kp-admin-service-duration-help span,
    .kp-admin-service-pricing-warning > div span,
    .kp-admin-service-ok-cats span {
        font-size: 12px;
        line-height: 1.35;
    }

    .kp-admin-service-boundary__icon,
    .kp-admin-service-pricing-warning__icon {
        width: 20px;
        height: 20px;
        font-size: 12px;
    }

    .kp-admin-service-species__choices {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 12px;
    }

    .kp-admin-service-species__choice {
        min-height: 40px;
        border-radius: 10px;
        padding: 8px 6px;
    }

    .kp-admin-service-species__choice span {
        font-size: 12px;
        font-weight: 800;
    }

    .kp-admin-service-ok-cats {
        gap: 10px;
        margin-top: 0;
        border-color: #BAE6FD;
        background: #E0F2FE;
    }

    .kp-admin-service-ok-cats input {
        width: 18px;
        height: 18px;
        margin-top: 1px;
    }

    .kp-admin-service-ok-cats small {
        margin-top: 2px;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.35;
    }

    .kp-admin-service-choice-card__body {
        gap: 10px;
        padding: 9px 10px;
    }

    .kp-admin-service-choice-card__head strong {
        font-size: 12px;
    }

    .kp-admin-service-choice-card__content > span:last-child {
        font-size: 11.5px;
        line-height: 1.3;
    }

    .kp-admin-service-form .kp-admin-form-section__intro {
        display: none;
    }

    .kp-admin-service-form textarea.kp-field__control {
        min-height: 84px;
    }

    .kp-admin-service-preview {
        gap: 10px;
        padding: 12px;
    }

    .kp-admin-service-preview__head {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 9px;
    }

    .kp-admin-service-preview__icon {
        width: 34px;
        height: 34px;
        font-size: 17px;
    }

    .kp-admin-service-preview h3 {
        font-size: 13.5px;
    }

    .kp-admin-service-preview .kp-admin-service-card__chips {
        gap: 5px;
    }

    .kp-admin-service-preview .kp-admin-service-card__chips span {
        padding: 3px 7px;
        font-size: 10.5px;
    }

    .kp-admin-service-form__readonly {
        margin-top: 10px;
        padding-top: 10px;
    }

    .kp-admin-service-category-card > div:first-child,
    .kp-admin-service-category-form__actions,
    .kp-admin-service-card__head,
    .kp-admin-service-form__actions,
    .kp-admin-service-exception-card__head,
    .kp-admin-service-exception-form__actions,
    .kp-admin-rule-simulator-actions,
    .kp-admin-rule-simulator-result__head {
        display: grid;
        justify-content: stretch;
    }

    .kp-admin-service-category-form__actions,
    .kp-admin-service-form__actions,
    .kp-admin-service-exception-form__actions,
    .kp-admin-rule-simulator-actions {
        grid-template-columns: 1fr;
    }

    .kp-admin-rule-simulator-form .kp-admin-form-grid,
    .kp-admin-rule-simulator-result dl {
        grid-template-columns: 1fr;
    }

    .kp-admin-rule-simulator-form--mobile-inline {
        gap: 10px;
    }

    .kp-admin-rule-simulator-form--mobile-inline .kp-admin-form-grid {
        gap: 10px;
    }

    .kp-admin-rules-mobile-panel .kp-field__control--select {
        padding-right: 46px;
    }

    .kp-admin-rule-simulator-form--mobile-inline .kp-admin-rule-simulator-note,
    .kp-admin-rule-simulator-form--mobile-inline .kp-admin-rule-simulator-empty {
        padding: 10px;
    }

    .kp-admin-rule-simulator-result {
        gap: 8px;
        padding: 12px;
    }

    .kp-admin-rule-simulator-result-lines {
        gap: 5px;
    }

    .kp-admin-rule-simulator-result-lines p {
        font-size: 12px;
        line-height: 1.35;
    }

    .kp-admin-rule-simulator-trace {
        display: none;
    }

    .kp-admin-rule-simulator-form--mobile-inline .kp-admin-rule-simulator-actions {
        margin-top: 6px;
    }

    .kp-admin-rule-simulator-form--mobile-inline .kp-admin-rule-simulator-actions .kp-button {
        width: 100%;
    }

    .kp-admin-draft-panel:not(.has-drafts) {
        display: none;
    }

    .kp-admin-draft-panel {
        position: fixed;
        right: 0;
        bottom: 62px;
        left: 0;
        top: auto;
        z-index: 70;
        max-height: none;
        overflow: visible;
        border-width: 1px 0 0;
        border-color: var(--kp-color-border-soft);
        border-radius: 0;
        background: var(--kp-color-surface-page);
        box-shadow: 0 -10px 24px color-mix(in srgb, var(--kp-color-text-main) 10%, transparent);
        margin-top: 0;
        padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    }

    .kp-admin-draft-panel p,
    .kp-admin-draft-panel .kp-section-label,
    .kp-admin-draft-panel h2,
    .kp-admin-draft-panel__summary,
    .kp-admin-draft-panel__list {
        display: none;
    }

    .kp-admin-draft-panel__actions,
    .kp-admin-draft-panel__actions form,
    .kp-admin-draft-panel__actions .kp-button {
        width: 100%;
    }

    .kp-admin-draft-panel__action-copy {
        justify-items: center;
        text-align: center;
    }

    .kp-admin-draft-guard__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
        margin-top: 10px;
        align-items: stretch;
    }

    .kp-admin-draft-guard__action,
    .kp-admin-draft-guard__action form {
        display: grid;
        width: 100%;
        min-width: 0;
    }

    .kp-admin-draft-guard__actions [data-draft-guard-stay] {
        border-color: var(--kp-color-brand-primary);
        border-width: 2px;
        background: var(--kp-color-surface-card);
    }

    .kp-admin-draft-guard__actions .kp-button {
        width: 100%;
        max-width: none;
        min-height: 62px;
        height: 62px;
        padding-right: 10px;
        padding-left: 10px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        line-height: 1.15;
    }

    .kp-admin-customer-detail__split {
        display: grid;
    }

    .kp-admin-panel-heading {
        display: grid;
    }

    .kp-admin-choice-grid {
        grid-template-columns: 1fr;
    }

    .kp-admin-animal-list {
        grid-template-columns: 1fr;
    }

    .kp-admin-status-badge {
        justify-self: start;
        white-space: normal;
    }

    .kp-admin-customer-layout {
        display: block;
    }

    .kp-admin-customer-profile {
        display: none;
    }

    .kp-admin-customer-page > .kp-admin-back-link,
    .kp-admin-page > .kp-admin-back-link {
        display: none;
    }

    .kp-admin-dirty-alert {
        margin-top: 12px;
        margin-bottom: 18px;
    }

    .kp-admin-dirty-bottom-bubble {
        position: fixed;
        z-index: 12;
        right: 16px;
        bottom: calc(78px + env(safe-area-inset-bottom));
        left: 16px;
        display: block;
        border: 1px solid var(--kp-color-warning-border);
        border-radius: 12px;
        padding: 12px 14px;
        background: var(--kp-color-warning-bg);
        box-shadow: 0 8px 24px color-mix(in srgb, var(--kp-color-text-main) 16%, transparent);
        color: var(--kp-color-warning-fg);
        font-family: var(--kp-font-heading);
        font-size: 13px;
        font-weight: 800;
        text-align: center;
    }

    .kp-admin-ajax-toast {
        position: fixed;
        right: 16px;
        left: 16px;
        top: 70px;
        margin-bottom: 16px;
        box-shadow: 0 8px 22px color-mix(in srgb, var(--kp-color-text-main) 10%, transparent);
    }

    .kp-admin-customer-tabs {
        display: none;
    }

    .kp-admin-tab-panel:not(.is-active),
    .kp-admin-tab-panel {
        display: grid;
    }

    .kp-admin-customer-workspace {
        display: grid;
        gap: 24px;
    }

    .kp-admin-customer-profile__account--top {
        display: none;
    }

    .kp-admin-customer-mobile-invitation {
        display: grid;
    }

    .kp-admin-mobile-section-card {
        display: grid;
        gap: 14px;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 12px;
        padding: 14px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    }

    .kp-admin-mobile-hide {
        display: none;
    }

    .kp-admin-customer-form[data-admin-tab-panel="contact"] {
        order: 1;
    }

    .kp-admin-customer-mobile-invitation {
        order: 2;
    }

    .kp-admin-customer-payment-section {
        order: 3;
    }

    .kp-admin-customer-status-section {
        order: 4;
    }

    [data-testid="admin-customer-animals-summary"] {
        order: 5;
    }

    .kp-admin-customer-reservations {
        order: 6;
    }

    .kp-admin-customer-reservations__title-desktop {
        display: none;
    }

    .kp-admin-customer-reservations__title-mobile {
        display: inline;
    }

    .kp-admin-customer-workspace [data-testid="admin-customer-animals-summary"].kp-admin-customer-detail {
        gap: 14px;
    }

    .kp-admin-customer-workspace .kp-admin-customer-reservations.kp-admin-customer-detail {
        gap: 14px;
    }

    .kp-admin-customer-reservation-card.kp-client-history-card {
        grid-template-columns: minmax(0, 1fr) 14px;
        gap: 8px;
        min-height: 0;
        padding: 12px;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__date,
    .kp-admin-customer-reservation-card .kp-client-history-card__animal {
        display: none;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__main {
        display: block;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__main > strong {
        font-size: 13px;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__schedule {
        margin-top: 2px;
        font-size: 12px;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__status {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        grid-template-columns: minmax(0, 1fr) max-content;
        align-items: start;
        column-gap: 10px;
        margin-top: 4px;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__badges {
        grid-column: 1;
        grid-row: 1;
        max-width: none;
        min-width: 0;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__badges > .kp-client-history-badge {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__status > strong {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        align-self: start;
        overflow-wrap: normal;
        white-space: nowrap;
    }

    .kp-admin-customer-reservation-card .kp-client-history-card__arrow {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .kp-admin-customer-workspace .kp-admin-customer-form,
    .kp-admin-customer-workspace .kp-admin-customer-detail,
    .kp-admin-customer-form--create {
        width: 100%;
        margin: 0;
        border-radius: 12px;
        padding: 14px;
    }

    .kp-admin-customer-form--create {
        padding-bottom: calc(104px + env(safe-area-inset-bottom));
    }

    .kp-admin-customer-workspace .kp-admin-customer-form,
    .kp-admin-customer-workspace .kp-admin-customer-detail {
        border: 0;
        border-radius: 0;
        padding: 0;
        background: transparent;
        box-shadow: none;
    }

    .kp-admin-customer-workspace .kp-admin-customer-form {
        gap: 14px;
    }

    .kp-admin-customer-workspace .kp-admin-customer-detail {
        margin-top: 0;
        gap: 14px;
    }

    .kp-admin-customer-form h2,
    .kp-admin-customer-detail h2,
    .kp-admin-form-section--card h2 {
        margin: 0;
        font-size: 18px;
    }

    .kp-admin-customer-form > .kp-admin-form-grid,
    .kp-admin-customer-form > .kp-admin-info-bubble,
    .kp-admin-customer-detail > .kp-admin-form-grid,
    .kp-admin-customer-detail > .kp-admin-choice-grid,
    .kp-admin-customer-detail > .kp-admin-status-badge,
    .kp-admin-customer-detail > .kp-admin-animal-list {
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 12px;
        padding: 14px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    }

    .kp-admin-customer-form > .kp-admin-info-bubble {
        margin-top: -2px;
    }

    .kp-admin-customer-detail > .kp-admin-panel-heading {
        margin-bottom: 12px;
    }

    .kp-admin-customer-contact-card .kp-admin-form-grid {
        border: 0;
        padding: 0;
        background: transparent;
        box-shadow: none;
    }

    .kp-admin-customer-contact-card .kp-admin-info-bubble {
        margin-top: 2px;
    }

    .kp-admin-info-bubble {
        justify-self: stretch;
        width: auto;
    }

    .kp-admin-panel-heading {
        display: flex;
        align-items: center;
    }

    .kp-admin-panel-heading .kp-button {
        min-height: 36px;
        padding: 8px 12px;
        font-size: 12px;
    }

    [data-testid="admin-customer-animals-summary"] .kp-admin-panel-heading {
        width: 100%;
        gap: 10px;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 0;
    }

    [data-testid="admin-customer-animals-summary"] .kp-admin-animal-list {
        width: 100%;
        border: 0;
        border-radius: 0;
        gap: 10px;
        padding: 0;
        background: transparent;
        box-shadow: none;
    }

    [data-testid="admin-customer-animals-summary"].kp-admin-customer-detail .kp-admin-panel-heading h2 {
        margin: 0;
        font-weight: 800;
    }

    [data-testid="admin-customer-animals-summary"] .kp-admin-panel-heading .kp-button {
        min-height: auto;
        margin-top: 0;
        margin-right: 2px;
        border: 0;
        border-radius: 0;
        padding: 0;
        background: transparent;
        color: var(--kp-color-brand-primary);
        box-shadow: none;
        font-size: 12px;
        font-weight: 800;
    }

    [data-testid="admin-customer-animals-summary"] .kp-admin-panel-heading .kp-button:hover {
        filter: none;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    .kp-admin-invitation-modal {
        inset: 56px 0 0;
        align-items: flex-end;
        padding: 0;
    }

    .kp-admin-invitation-modal__dialog {
        width: 100%;
        border-radius: 20px 20px 0 0;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    }

    .kp-admin-invitation-modal__header h2 {
        font-size: 22px;
    }

    .kp-client-contact-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 72px);
        overflow-y: auto;
        gap: 16px;
        padding: 20px 16px 0;
    }

    .kp-client-contact-modal__header {
        align-items: flex-start;
    }

    .kp-client-contact-modal__header h2 {
        font-size: 22px;
    }

    .kp-client-contact-modal__options {
        grid-template-columns: 1fr;
    }

    .kp-client-contact-modal__request {
        padding: 16px;
    }

    .kp-client-contact-modal__actions {
        grid-template-columns: 1fr;
        position: sticky;
        bottom: 0;
        z-index: 2;
        margin: 0 -16px;
        padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--kp-color-border-soft);
        background: var(--kp-color-surface-card);
        box-shadow: 0 -14px 28px color-mix(in srgb, var(--kp-color-shadow) 14%, transparent);
    }

    .kp-client-profile-edit-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 72px);
        overflow-y: auto;
        border-radius: 20px 20px 0 0;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    }

    .kp-client-profile-edit-modal__header h2 {
        font-size: 20px;
    }

    .kp-client-profile-edit-modal__actions {
        grid-template-columns: 1fr;
    }

    .kp-admin-animal-card {
        min-height: 0;
        border-radius: 12px;
        padding: 13px;
        text-align: left;
        cursor: pointer;
        box-shadow: 0 1px 3px color-mix(in srgb, var(--kp-color-text-main) 4%, transparent);
    }

    .kp-admin-animal-card__summary {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
        column-gap: 8px;
        min-height: 0;
        margin-bottom: 0;
        padding-right: 0;
    }

    .kp-admin-animal-card__image {
        display: none;
    }

    .kp-admin-animal-card__notes {
        display: none;
    }

    .kp-admin-animal-card > .kp-admin-muted {
        display: none;
    }

    .kp-admin-animal-card__delete {
        display: none;
    }

    .kp-admin-animal-card__edit-link {
        display: none;
    }

    .kp-admin-animal-card h3 {
        margin: 0;
        font-size: 14px;
        font-weight: 800;
    }

    .kp-admin-animal-card h3 a::after {
        content: "";
        position: absolute;
        inset: 0;
    }

    .kp-admin-animal-card__mobile-species {
        display: inline;
    }

    .kp-admin-animal-card__mobile-chevron {
        display: inline-flex;
        width: 20px;
        height: 20px;
        align-items: center;
        justify-content: center;
        color: var(--kp-color-text-soft);
    }

    .kp-admin-animal-card__mobile-chevron svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.5;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .kp-admin-animal-card__summary > .kp-admin-status-badge {
        min-height: 22px;
        border-radius: 6px;
        padding: 2px 7px;
        font-size: 10px;
        line-height: 1;
    }

    .kp-admin-animal-card__desktop-species {
        display: none;
    }

    .kp-admin-animal-card__identity p {
        display: inline;
        margin-top: 3px;
        font-size: 12px;
    }

    .kp-admin-animal-card__metrics {
        display: inline-flex;
        gap: 0;
        margin: 3px 0 0;
    }

    .kp-admin-animal-card__metrics::before {
        content: " · ";
        white-space: pre;
    }

    .kp-admin-animal-card__cat-badge {
        display: flex;
        margin-top: 8px;
        border-radius: 6px;
        padding: 2px 8px;
        font-size: 11px;
        font-weight: 800;
    }

    .kp-admin-animal-form-shell,
    .kp-admin-page > .kp-admin-animal-readonly-alert {
        width: 100%;
        max-width: none;
    }

    .kp-admin-form-section--card {
        display: grid;
        gap: 6px;
        margin-bottom: 24px;
    }

    .kp-admin-animal-form .kp-admin-form-section--card h2 {
        margin: 0;
    }

    .kp-admin-form-section__card {
        padding: 14px;
        border-radius: 12px;
    }

    .kp-admin-animal-form:not(.kp-admin-animal-form--readonly) {
        padding-bottom: 104px;
    }

    .kp-admin-shell[data-testid="admin-customer-animal-new-page"] .kp-admin-animal-form:not(.kp-admin-animal-form--readonly) {
        padding-bottom: 52px;
    }

    .kp-admin-animal-form__actions {
        position: fixed;
        z-index: 12;
        right: 0;
        bottom: calc(64px + env(safe-area-inset-bottom));
        left: 0;
        grid-template-columns: 1fr;
        gap: 10px;
        margin: 0;
        border-top: 1px solid var(--kp-color-border-soft);
        padding: 10px 16px 14px;
        background: var(--kp-color-surface-page);
        box-shadow: 0 -10px 24px color-mix(in srgb, var(--kp-color-text-main) 10%, transparent);
    }

    .kp-admin-animal-form__actions > span[aria-hidden="true"] {
        display: none;
    }

    .kp-admin-animal-form__action-buttons {
        display: flex;
        flex-direction: column-reverse;
        gap: 10px;
    }

    .kp-admin-animal-form__action-buttons .kp-button--ghost {
        display: none;
    }

    .kp-admin-animal-form__action-buttons .kp-button {
        width: 100%;
    }

    .kp-admin-animal-form--readonly .kp-admin-animal-form__actions {
        display: none;
    }

    .kp-admin-animal-form--readonly .kp-admin-form-section--card:last-of-type {
        margin-bottom: 0;
    }

    .kp-client-dashboard {
        width: 100%;
        gap: 18px;
        padding: 7px 16px 96px;
    }

    #client-reservations {
        margin-top: 0;
    }

    .kp-client-profile-page {
        width: 100%;
        gap: 14px;
        padding: 18px 16px 92px;
    }

    .kp-client-section-page {
        width: 100%;
        gap: 18px;
        padding: 18px 16px 96px;
    }

    .kp-client-section-page__header h1 {
        font-size: 24px;
    }

    .kp-client-section-card {
        max-width: none;
    }

    .kp-client-section-card h2 {
        font-size: 20px;
    }

    .kp-client-hero {
        margin: 0;
        padding: 0;
    }

    .kp-client-hero h1 {
        font-size: 28px;
        font-weight: 800;
        line-height: 1.12;
    }

    .kp-client-hero strong {
        margin-top: 8px;
        font-size: 15px;
    }

    .kp-client-hero span:not(.kp-client-hero__avatar) {
        font-size: 14px;
    }

    .kp-client-dashboard__layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .kp-client-profile-page__layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .kp-client-dashboard__main,
    .kp-client-dashboard__side,
    .kp-client-profile-page__main,
    .kp-client-profile-page__side,
    .kp-client-section,
    .kp-client-account-card {
        gap: 14px;
    }

    .kp-client-dashboard__main,
    .kp-client-dashboard__side {
        grid-column: auto;
        grid-row: auto;
    }

    .kp-client-booking-card {
        display: flex;
        padding: 20px;
        border-radius: 12px;
    }

    .kp-client-booking-card h2 {
        font-size: 20px;
    }

    .kp-client-booking-card > span {
        display: none;
    }

    .kp-client-section--mobile-first {
        order: 0;
    }

    .kp-client-activity-card {
        display: none;
    }

    .kp-client-section__header h2 {
        font-size: 18px;
    }

    .kp-client-animals-card {
        padding: 16px;
    }

    .kp-client-animals-card__header {
        margin-bottom: -2px;
    }

    .kp-client-animals-card > p {
        display: none;
    }

    .kp-client-animal-strip {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        padding-bottom: 2px;
    }

    .kp-client-animal-pill {
        flex: 0 0 auto;
        min-width: 92px;
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 6px;
        padding: 10px 12px;
        text-align: center;
    }

    .kp-client-animal-pill__icon {
        width: 42px;
        height: 42px;
        font-size: 21px;
    }

    .kp-client-animal-pill__body {
        justify-items: center;
        gap: 0;
    }

    .kp-client-animal-pill strong {
        font-size: 13px;
        line-height: 1.2;
    }

    .kp-client-animal-pill small {
        display: none;
    }

    .kp-client-animal-pill__cat-badge {
        display: none;
    }

    .kp-client-profile-card {
        padding: 0;
        overflow: hidden;
    }

    .kp-client-profile-tabs {
        gap: 22px;
        margin-right: -16px;
        margin-left: -16px;
        padding: 0 16px;
    }

    .kp-client-profile-tabs-separator {
        margin-right: -16px;
        margin-left: -16px;
        width: calc(100% + 32px);
    }

    .kp-client-profile-tabs a {
        font-size: 14px;
    }

    .kp-client-profile-workspace {
        border-radius: 14px;
        padding: 18px;
    }

    .kp-client-profile-tab-panel {
        gap: 14px;
    }

    .kp-client-profile-tab-panel h2 {
        font-size: 22px;
    }

    .kp-client-profile-workspace .kp-client-profile-password-panel > h2 {
        font-size: 22px;
    }

    .kp-client-profile-hero {
        gap: 12px;
        margin-bottom: 6px;
    }

    .kp-client-profile-hero .kp-client-profile-card__avatar {
        width: 62px;
        height: 62px;
        flex-basis: 62px;
        font-size: 22px;
    }

    .kp-client-profile-hero h3 {
        font-size: 22px;
    }

    .kp-client-profile-hero p,
    .kp-client-profile-panel-copy {
        font-size: 13px;
    }

    .kp-client-profile-password-panel form,
    .kp-client-profile-password-panel .kp-button {
        width: 100%;
    }

    .kp-client-readonly-grid,
    .kp-client-profile-animal-grid,
    .kp-client-profile-document-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .kp-alert.kp-client-profile-mobile-pending {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin: 0 0 14px;
        padding: 10px 12px;
        border-radius: 12px;
        color: var(--kp-color-text-main);
        font: inherit;
        text-align: left;
        cursor: pointer;
    }

    .kp-client-profile-page__side {
        display: grid;
        margin-top: 0;
    }

    .kp-card.kp-client-profile-help-panel,
    .kp-card.kp-client-profile-session-panel {
        gap: 0;
        padding: 18px;
        border-radius: 14px;
    }

    .kp-client-profile-help-panel h2,
    .kp-client-profile-session-panel h2 {
        margin: 0 0 6px;
        font-size: 16px;
        line-height: 1.25;
    }

    .kp-client-profile-help-panel p,
    .kp-client-profile-session-panel p {
        margin: 0 0 14px;
        font-size: 13px;
        line-height: 1.35;
    }

    .kp-client-profile-session-panel p {
        white-space: nowrap;
    }

    .kp-client-profile-help-panel .kp-button,
    .kp-client-profile-session-panel .kp-button {
        min-height: 44px;
        padding: 10px 14px;
        font-size: 14px;
    }

    .kp-client-profile-card__head {
        padding: 20px;
        background: var(--kp-color-surface-soft);
    }

    .kp-client-profile-list > div {
        padding: 12px 20px;
    }

    .kp-client-phone-form,
    .kp-client-email-change__form {
        grid-template-columns: 1fr;
    }

    .kp-client-status {
        justify-self: start;
        white-space: normal;
    }
}

@media (max-width: 859px) {
    .kp-public-hero {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 42px 20px 52px;
        text-align: center;
    }

    .kp-home__title {
        font-size: 34px;
        line-height: 1.16;
    }

    .kp-public-hero__subtitle {
        margin-inline: auto;
        font-size: 24px;
    }

    .kp-desktop-copy {
        display: none;
    }

    .kp-mobile-copy {
        display: inline;
    }

    .kp-public-kickers,
    .kp-public-hero__actions {
        justify-self: center;
    }

    .kp-public-kickers {
        justify-content: center;
    }

    .kp-public-kicker {
        white-space: normal;
    }

    .kp-public-hero__lead {
        max-width: 340px;
        margin: 18px auto 30px;
        font-size: 16px;
    }

    .kp-public-hero__media {
        display: none;
    }

    .kp-public-hero__image {
        max-height: 240px;
    }

    .kp-public-hero__mobile-card {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 14px;
        align-items: center;
        width: min(100%, 330px);
        margin: 0 auto 24px;
        padding: 12px;
        border-radius: 18px;
        background: var(--kp-color-surface-card);
        box-shadow: 0 12px 30px color-mix(in srgb, var(--kp-color-text-main) 12%, transparent);
        text-align: left;
    }

    .kp-public-hero__mobile-image {
        display: block;
        width: 92px;
        height: 92px;
        border-radius: 14px;
        object-fit: cover;
        object-position: center;
    }

    .kp-public-hero__mobile-card p {
        margin: 0 0 4px;
        font-family: var(--kp-font-heading);
        font-size: 13px;
        font-weight: 800;
    }

    .kp-public-hero__mobile-card span {
        color: var(--kp-color-text-soft);
        font-size: 12px;
        line-height: 1.4;
    }

    .kp-public-hero__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: min(100%, 330px);
        gap: 10px;
        margin: 0 auto;
    }

    .kp-public-hero__actions .kp-button {
        min-width: 0;
        padding: 12px;
        font-size: 13px;
        white-space: normal;
    }

    .kp-public-hero__mobile-trust {
        display: flex;
        width: calc(100% + 40px);
        gap: 8px;
        margin: 22px -20px 0;
        padding: 0 20px 4px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .kp-public-hero__mobile-trust span {
        flex: 0 0 auto;
        padding: 6px 14px;
        border-radius: 999px;
        background: var(--kp-color-surface-card);
        color: var(--kp-color-brand-primary);
        font-size: 13px;
        font-weight: 800;
        white-space: nowrap;
    }

    .kp-public-hero__note {
        position: static;
        width: auto;
        margin-top: 12px;
    }

    .kp-trust-strip__inner {
        display: none;
    }

    .kp-landing-section h2 {
        font-weight: 800;
        font-size: 24px;
        line-height: 1.12;
    }

    .kp-landing-section > .kp-section-label {
        font-size: 13px;
    }

    .kp-landing-band .kp-landing-section h2 {
        font-size: 24px;
        line-height: 1.12;
    }

    #prestations.kp-landing-section h2 {
        font-size: 24px;
        line-height: 1.12;
    }

    #temoignages .kp-landing-section h2 {
        font-size: 21px;
        line-height: 1.15;
    }

    #delphine.kp-landing-section h2 {
        font-size: 25px;
        line-height: 1.12;
    }

    .kp-shell-section.kp-landing-section {
        padding: 32px 20px;
    }

    .kp-landing-section__lead {
        font-size: 13px;
        line-height: 1.55;
    }

    .kp-landing-section__split-heading {
        display: grid;
        gap: 12px;
    }

    .kp-landing-section__split-heading .kp-landing-section__lead {
        max-width: none;
    }

    .kp-landing-grid--services,
    .kp-landing-grid--testimonials {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .kp-landing-grid--services-with-compact {
        grid-template-columns: 1fr;
    }

    #prestations > .kp-landing-section__lead {
        font-size: 16px;
    }

    .kp-landing-service-tabs__list {
        width: 100%;
        gap: 4px;
        margin-top: 20px;
        padding: 4px;
    }

    .kp-landing-service-tabs__tab {
        min-height: 44px;
        padding: 9px 8px;
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .kp-landing-service-groups {
        gap: 32px;
        margin-top: 8px;
    }

    .kp-landing-service-group {
        gap: 16px;
    }

    .kp-landing-service-group__layout {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .kp-landing-service-group__purpose {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 10px;
    }

    .kp-landing-service-group__media {
        min-height: 0;
        aspect-ratio: 16 / 9;
        border-radius: 14px;
    }

    .kp-landing-service-group__content {
        gap: 16px;
    }

    .kp-landing-service-group__heading h3 {
        font-size: 22px;
    }

    .kp-landing-service-group__heading p {
        font-size: 16px;
    }

    .kp-landing-card {
        padding: 16px;
        border-radius: 14px;
        box-shadow: none;
    }

    .kp-landing-service-card {
        display: flex;
        gap: 16px;
    }

    .kp-landing-service-card--compact {
        grid-column: auto;
        display: flex;
        flex-direction: column;
    }

    .kp-landing-service-card h4 {
        font-size: 20px;
    }

    .kp-landing-service-card__heading p,
    .kp-landing-service-card__duration {
        font-size: 16px;
        line-height: 1.55;
    }

    .kp-landing-service-card__tariffs > div,
    .kp-landing-service-conditions__list > div {
        gap: 12px;
        padding: 12px 0;
    }

    .kp-landing-service-card__tariffs dt,
    .kp-landing-service-conditions__list dt {
        font-size: 16px;
    }

    .kp-landing-service-card__tariffs dd,
    .kp-landing-service-conditions__list dd {
        font-size: 18px;
    }

    .kp-landing-service-conditions {
        gap: 16px;
        margin-top: 8px;
        padding: 16px;
        border-radius: 16px;
    }

    .kp-landing-service-conditions > h3 {
        font-size: 21px;
    }

    .kp-landing-service-conditions__layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .kp-landing-service-conditions__travel h4 {
        font-size: 16px;
    }

    .kp-landing-services-cta {
        margin-top: 16px;
    }

    .kp-landing-steps {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .kp-landing-step {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 14px;
    }

    .kp-landing-step__number {
        margin-bottom: 0;
    }

    .kp-landing-step h3 {
        font-size: 16px;
    }

    .kp-landing-step p {
        font-size: 13px;
        line-height: 1.55;
    }

    .kp-testimonial-card blockquote {
        font-size: 13px;
        line-height: 1.6;
    }

    .kp-testimonial-card figcaption strong {
        font-size: 13px;
    }

    .kp-testimonial-card small {
        font-size: 11px;
    }

    .kp-landing-grid--testimonials .kp-testimonial-card {
        min-height: auto;
        padding-bottom: 12px;
    }

    .kp-landing-operator {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .kp-landing-operator__story {
        gap: 12px;
    }

    .kp-landing-operator__highlights {
        grid-template-columns: 1fr;
    }

    .kp-landing-operator__image {
        aspect-ratio: 4 / 3;
        min-height: 220px;
        border-radius: 18px;
    }

    .kp-landing-operator__image img {
        object-position: 50% 38%;
    }

    .kp-operator-checks {
        grid-template-columns: 1fr;
    }

    .kp-landing-operator p,
    .kp-landing-contact__copy p:not(.kp-section-label) {
        font-size: 14px;
    }

    .kp-landing-contact {
        padding: 0 20px 48px;
        margin-top: -16px;
    }

    .kp-public-testimonials + .kp-landing-contact {
        padding-top: 36px;
        margin-top: 0;
    }

    .kp-landing-contact__inner {
        grid-template-columns: 1fr;
        gap: 26px;
        padding: 28px 20px;
        border-radius: 20px;
    }

    .kp-landing-contact__form {
        padding: 18px;
        border-radius: 16px;
    }

    .kp-landing-contact h2 {
        font-size: 24px;
        line-height: 1.12;
    }

    .kp-access-request-form {
        grid-template-columns: 1fr;
    }

    .kp-landing-contact .kp-access-request-form--compact {
        grid-template-columns: 1fr;
    }

    .kp-landing-contact .kp-access-request-form--compact textarea.kp-field__control {
        min-height: 102px;
    }

    .kp-anchor-section {
        scroll-margin-top: 84px;
    }

    .kp-anchor-alias {
        top: calc(-1 * 84px);
    }

    .kp-auth-shell {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 34px 20px 48px;
    }

    .kp-auth-shell__intro,
    .kp-auth-shell__panel {
        padding: 20px;
        border-radius: 16px;
    }

    .kp-auth-shell .kp-operator-checks {
        display: none;
    }

    .kp-auth-shell__intro h1 {
        font-size: 24px;
    }

    .kp-auth-shell__panel h2 {
        font-size: 24px;
    }
}

@media (max-width: 767px) {
    .kp-admin-service-exception-drawer {
        align-items: flex-end;
        padding: 88px 0 0;
    }

    .kp-admin-service-exception-drawer .kp-admin-rules-drawer__panel {
        width: 100%;
        max-width: 430px;
        max-height: calc(100vh - 88px);
        border-radius: 18px 18px 0 0;
        padding: 0;
    }

    .kp-admin-service-exception-drawer .kp-admin-rules-drawer__head {
        margin: 0 0 12px;
        padding: 16px 20px 12px;
        border-bottom: 1px solid var(--kp-color-border-soft);
    }

    .kp-admin-service-exception-drawer .kp-admin-rules-drawer__head h2 {
        font-size: 16px;
        line-height: 1.2;
    }

    .kp-admin-service-exception-drawer .kp-admin-service-exception-form {
        gap: 0;
        padding: 0 16px;
    }

    .kp-admin-service-exception-drawer .kp-admin-form-section--card {
        margin: 0 0 12px;
    }

    .kp-admin-service-exception-drawer .kp-admin-form-section__card {
        gap: 10px;
        border-radius: 12px;
        padding: 14px;
    }

    .kp-admin-service-exception-form__grid {
        gap: 10px;
    }

    .kp-admin-service-exception-form__grid .kp-field {
        gap: 6px;
    }

    .kp-admin-service-exception-form__grid .kp-field__label {
        margin: 0;
        font-size: 11px;
        line-height: 1.2;
    }

    .kp-admin-service-exception-form__grid .kp-field__control {
        min-height: 42px;
        padding: 10px 12px;
        border-radius: 10px;
        font-size: 14px;
        line-height: 1.25;
    }

    .kp-admin-service-exception-form__grid textarea.kp-field__control {
        min-height: 86px;
    }

    .kp-admin-service-exception-choice,
    .kp-admin-service-exception-animal-choice {
        border-radius: 10px;
        padding: 10px 12px;
    }

    .kp-admin-service-exception-choice__title,
    .kp-admin-service-exception-animal-choice__name {
        font-size: 13px;
        line-height: 1.25;
    }

    .kp-admin-service-exception-choice__hint,
    .kp-admin-service-exception-animal-choice__meta {
        font-size: 12px;
        line-height: 1.3;
    }

    .kp-admin-service-exception-form .kp-field.is-hidden,
    .kp-admin-service-exception-form .kp-field[hidden] {
        display: none !important;
    }

    .kp-admin-service-exception-form__actions {
        margin: 0 -16px;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-top: 0;
        box-shadow: none;
        isolation: isolate;
        padding: 8px 16px calc(10px + env(safe-area-inset-bottom));
    }

    .kp-admin-service-exception-form__actions::after {
        position: absolute;
        right: 0;
        bottom: -2px;
        left: 0;
        height: 3px;
        background: var(--kp-color-surface-page);
        content: "";
        pointer-events: none;
    }
}

@media (max-width: 700px) {
    .kp-admin-rules-section-panel.kp-admin-rules-panel.kp-admin-cancellation-policy {
        width: calc(100% + 8px);
        margin-inline: -4px;
        padding: 16px;
    }

    .kp-admin-rules-drawer .kp-admin-cancellation-policy-form {
        padding: 0 16px 14px;
    }
}
/* Epic 11 — Avis clients, file de modération admin. */
.kp-admin-reviews,
.kp-admin-review-detail {
    max-width: 1280px;
    margin-inline: auto;
    font-family: var(--kp-font-body);
}

.kp-admin-reviews h1,
.kp-admin-reviews h2,
.kp-admin-reviews h3,
.kp-admin-review-detail h1,
.kp-admin-review-detail h2,
.kp-admin-review-detail h3 {
    font-family: var(--kp-font-heading);
    font-weight: 400;
}

.kp-admin-review-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.kp-admin-review-metrics article {
    min-width: 0;
    padding: 18px;
    border-color: #efe8d6;
    background: #fff;
}

.kp-admin-review-metrics i {
    display: block;
    width: 28px;
    height: 5px;
    margin-bottom: 10px;
    border-radius: 999px;
    background: #3b4a8c;
}

.kp-admin-review-metrics i.is-warning { background: #c97c10; }
.kp-admin-review-metrics i.is-rating { background: #d6a900; }
.kp-admin-review-metrics i.is-success { background: #16a34a; }
.kp-admin-review-metrics strong { display: block; color: #2b3570; font-family: var(--kp-font-heading); font-size: 25px; font-weight: 400; }
.kp-admin-review-metrics h2 { margin: 2px 0 0; color: #2b3570; font-family: var(--kp-font-body); font-size: 12px; font-weight: 800; }
.kp-admin-review-metrics p { margin: 2px 0 0; color: #616b8d; font-size: 11px; }

.kp-admin-review-tabs {
    display: flex;
    gap: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #efe8d6;
}

.kp-admin-review-tabs a,
.kp-admin-review-tabs span {
    min-height: 46px;
    padding: 10px 4px;
    color: #5b6490;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.kp-admin-review-tabs .is-active { color: #3b4a8c; border-bottom: 3px solid #3b4a8c; }

.kp-card.kp-admin-review-filters {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 180px 150px;
    gap: 10px;
    margin-bottom: 14px;
    padding: 18px;
    border-color: #efe8d6;
    background: #fff;
}

.kp-admin-review-filters input,
.kp-admin-review-filters select {
    width: 100%;
    height: 44px;
    padding: 0 12px;
    border: 1px solid #e4ddc8;
    border-radius: 10px;
    background: #fff;
    color: #2b3570;
    font-size: 14px;
}
.kp-admin-review-search { position: relative; }
.kp-admin-review-search::before {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 13px;
    width: 17px;
    height: 17px;
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6490' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
}
.kp-admin-review-search input { padding-left: 40px; }

.kp-admin-review-result-count { margin: 0 0 10px; color: #2b3570; font-weight: 800; }
.kp-admin-review-list { display: grid; gap: 10px; }
.kp-card.kp-admin-review-row { display: block; min-height: 110px; padding: 18px; border-color: #efe8d6; border-radius: 14px; background: #fff; color: inherit; text-decoration: none; }
.kp-admin-review-row:hover { box-shadow: 0 5px 16px rgba(43, 53, 112, .08); }
.kp-admin-review-row__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.kp-admin-review-row__head > div { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.kp-admin-review-row__head strong { color: #2b3570; font-size: 14px; font-weight: 800; }
.kp-admin-review-updated { color: #824600; font-size: 10px; font-weight: 800; }
.kp-admin-review-row__head > b { color: #3b4a8c; font-family: var(--kp-font-body); font-size: 22px; line-height: 1; }
.kp-admin-review-row__stars { display: flex; gap: 2px; margin-top: 7px; font-size: 16px; line-height: 1; }
.kp-admin-review-row__stars i,
.kp-admin-review-stars i { color: #d8d2c2; font-style: normal; }
.kp-admin-review-row__stars i.is-filled,
.kp-admin-review-stars i.is-filled { color: #d6a900; }
.kp-admin-review-row__detail { display: block; color: inherit; text-decoration: none; }
.kp-admin-review-row__detail > p { display: -webkit-box; overflow: hidden; margin: 8px 0 0; color: #5b6490; font-size: 13px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.kp-admin-review-row__detail > small { display: block; margin-top: 8px; color: #616b8d; font-size: 11px; }
.kp-admin-review-row__detail:focus-visible,
.kp-admin-review-row__detail-link:focus-visible { outline: 3px solid rgba(59,74,140,.28); outline-offset: 4px; }
.kp-admin-review-row__quick-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.kp-admin-review-row__quick-actions .kp-button { min-height: 36px; padding: 7px 12px; font-size: 12px; }
.kp-admin-review-row__quick-actions .kp-button--primary { background: #3b4a8c; color: #fff; }
.kp-admin-review-row__detail-link { min-height: 36px; display: inline-flex; align-items: center; padding: 7px 4px; color: #3b4a8c; font-size: 12px; font-weight: 800; }
.kp-admin-review-quick-confirm { position: fixed; z-index: 160; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(15,23,42,.55); }
.kp-admin-review-quick-confirm:target { display: flex; }
.kp-admin-review-quick-confirm__backdrop { position: absolute; inset: 0; }
.kp-admin-review-quick-confirm__panel { position: relative; z-index: 1; width: min(100%, 440px); padding: 24px; border-radius: 18px; background: #f5f0e3; box-shadow: 0 -12px 38px rgba(43,53,112,.24); }
.kp-admin-review-quick-confirm h2 { margin: 0 0 7px; color: #2b3570; font-family: var(--kp-font-heading); font-size: 20px; font-weight: 400; }
.kp-admin-review-quick-confirm p { margin: 0 0 18px; color: #5b6490; font-size: 13.5px; line-height: 1.5; }
.kp-admin-review-quick-confirm form > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kp-admin-review-quick-confirm .kp-button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; text-decoration: none; }
.kp-admin-review-quick-confirm .kp-button--primary { background: #3b4a8c; color: #fff; }

.kp-review-status { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border: 1px solid #d9d5c6; border-radius: 999px; background: #f7f5ee; color: #5b6490; font-size: 11px; font-weight: 800; }
.kp-review-status.is-pending_review { border-color: #fde68a; background: #fef3c7; color: #824600; }
.kp-review-status.is-published { border-color: #bbf7d0; background: #dcfce7; color: #15803d; }
.kp-review-status.is-rejected { border-color: #fecaca; background: #fee2e2; color: #b91c1c; }
.kp-review-status.is-selected { border-color: #c7d2fe; background: #eef2ff; color: #3b4a8c; }
.kp-admin-review-empty { padding: 36px; text-align: center; }
.kp-admin-review-more { margin-top: 16px; }

.kp-admin-review-detail > .kp-back-link { display: inline-flex; margin-bottom: 16px; }
.kp-admin-review-detail > .kp-admin-flash-alert {
    width: 100%;
    max-width: 1040px;
    margin-bottom: 20px;
}
.kp-admin-review-detail__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: 18px; align-items: start; max-width: 1040px; }
.kp-card.kp-admin-review-detail__content { padding: 26px; border-color: #efe8d6; background: #fff; }
.kp-admin-review-detail__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.kp-admin-review-detail__head h2 { margin: 0 0 3px; color: #2b3570; font-size: 20px; font-weight: 800; }
.kp-admin-review-detail__head p { margin: 0; color: #616b8d; font-size: 12px; }
.kp-admin-review-stars { display: flex; gap: 3px; margin: 0; font-size: 24px; }
.kp-admin-review-comment { margin: 18px 0 0; white-space: pre-wrap; color: #2b3570; font-size: 15px; line-height: 1.65; }
.kp-admin-review-evidence { display: grid; gap: 8px; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #efe8d6; }
.kp-admin-review-evidence div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 12px; }
.kp-admin-review-evidence dt { color: #5b6490; font-size: 12px; font-weight: 800; }
.kp-admin-review-evidence dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #2b3570; font-size: 12px; }
.kp-admin-review-history { margin-top: 22px; padding-top: 18px; border-top: 1px solid #efe8d6; }
.kp-admin-review-history h3 { margin: 0 0 8px; color: #2b3570; font-size: 14px; }
.kp-admin-review-history ul { margin: 0; padding-left: 20px; color: #5b6490; font-size: 12px; }
.kp-admin-review-actions { display: flex; gap: 10px; margin-top: 24px; }
.kp-admin-review-actions .kp-button { min-height: 42px; padding: 10px 20px; border-radius: 10px; font-size: 14px; }
.kp-admin-review-actions .kp-button--primary { background: #3b4a8c; color: #fff; }
.kp-card.kp-admin-review-moderation { display: grid; gap: 10px; margin: 0; padding: 20px; border-color: #efe8d6; background: #fff; }
.kp-admin-review-moderation label { display: grid; gap: 3px; color: #2b3570; }
.kp-admin-review-moderation label span { color: #5b6490; font-size: 12px; }
.kp-admin-review-moderation textarea { width: 100%; padding: 12px; border: 1px solid #e4ddc8; border-radius: 10px; color: #2b3570; font-size: 13px; line-height: 1.45; resize: vertical; }
.kp-admin-review-moderation > .kp-button { width: 100%; }
.kp-admin-review-moderation > .kp-button--secondary { border: 1.5px solid #3b4a8c; background: #fff; color: #3b4a8c; }
.kp-admin-review-moderation > .kp-button--secondary { min-height: 38px; padding: 8px 14px; font-size: 13px; }
.kp-button--danger-outline { border: 1.5px solid #dc2626; background: #fff; color: #dc2626; }
.kp-admin-review-actions .kp-button--danger-outline { border: 1.5px solid #dc2626; background: #fff; color: #dc2626; }
.kp-admin-review-detail__aside { display: grid; gap: 14px; }
.kp-card.kp-admin-review-public-data { padding: 18px; border: 0; background: #e8f3fa; }
.kp-admin-review-public-data h3 { margin: 0 0 5px; color: #2b3570; font-size: 13px; }
.kp-admin-review-public-data p { margin: 0; color: #5b6490; font-size: 12px; line-height: 1.45; }
.kp-admin-review-deleted { display: grid; min-height: 70vh; place-items: center; }
.kp-admin-review-deleted .kp-card { max-width: 520px; padding: 32px; text-align: center; }

.kp-admin-dashboard-action-card[data-priority-label="Avis à modérer"] h3 {
    color: #2b3570;
    font-family: var(--kp-font-heading);
    font-size: 12.5px;
    font-weight: 800;
    line-height: 1.2;
}
.kp-admin-dashboard-action-card[data-priority-label="Avis à modérer"] p { color: #5b6490; font-family: var(--kp-font-body); font-size: 11.5px; line-height: 1.25; }
.kp-admin-dashboard-action-card[data-priority-label="Avis à modérer"] .kp-admin-dashboard-action-card__button { font-family: var(--kp-font-heading); font-size: 11px; font-weight: 800; }
.kp-admin-dashboard-action-card[data-priority-label="Avis à modérer"] .kp-admin-dashboard-action-card__button.is-warning { background: #965600; }

/* Epic 11 — verified public testimonials */
.kp-public-testimonials {
    border-top: 1px solid var(--kp-color-border-soft);
    border-bottom: 1px solid var(--kp-color-border-soft);
    background: var(--kp-color-surface-soft);
    overflow: hidden;
    scroll-margin-top: 88px;
}
.kp-shell-section.kp-public-testimonials__inner { max-width: 1200px; padding-top: 72px; padding-bottom: 72px; }
.kp-public-testimonials__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.kp-public-shell .kp-public-testimonials__heading h2 { margin: 0; color: var(--kp-color-text-main); font-family: var(--kp-font-heading) !important; font-size: 36px; font-weight: 400; line-height: 1.15; }
.kp-public-testimonials__summary { min-width: 250px; padding: 12px 15px; border: 1px solid var(--kp-color-border-soft); border-radius: 14px; background: var(--kp-color-surface-card); }
.kp-public-testimonials__summary > div { display: flex; align-items: center; gap: 8px; }
.kp-public-testimonials__summary strong { color: var(--kp-color-text-main); font-family: var(--kp-font-heading); font-size: 23px; font-weight: 400; }
.kp-public-testimonials__summary p { margin: 2px 0 0; color: var(--kp-color-text-soft); font-size: 12px; }
.kp-public-review-stars { display: inline-flex; gap: 2px; color: #d8d2c2; font-size: 18px; line-height: 1; }
.kp-public-review-stars i { font-style: normal; }
.kp-public-review-stars i.is-filled { color: #d6a900; }
.kp-public-testimonials__rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 20px; }
.kp-public-testimonials__rail.has-expanded-review { align-items: start; }
.kp-public-review-card { display: flex; min-width: 0; flex-direction: column; padding: 24px; border: 1px solid var(--kp-color-border-soft); border-radius: 16px; background: var(--kp-color-surface-card); box-shadow: 0 10px 28px color-mix(in srgb, var(--kp-color-text-main) 7%, transparent); }
.kp-public-review-card__comment { margin: 14px 0 8px; white-space: pre-wrap; color: var(--kp-color-text-main); font-size: 15px; line-height: 1.62; overflow-wrap: anywhere; }
.js .kp-public-review-card__comment.is-collapsible:not(.is-expanded) { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.kp-public-review-card__toggle { display: none; width: fit-content; min-width: 44px; min-height: 44px; padding: 3px 0; border: 0; background: transparent; color: var(--kp-color-brand-primary); font-family: var(--kp-font-body); font-size: 12px; font-weight: 800; cursor: pointer; }
.js .kp-public-review-card__toggle { display: block; }
.js .kp-public-review-card__toggle[hidden] { display: none; }
.kp-public-review-card__toggle:focus-visible { border-radius: 4px; outline: 3px solid #d6a900; outline-offset: 3px; }
.kp-public-review-card footer { display: flex; align-items: center; gap: 12px; padding-top: 14px; margin-top: auto; border-top: 1px solid var(--kp-color-border-soft); }
.kp-public-review-card footer > span { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; color: var(--kp-color-text-main); font-family: var(--kp-font-body); font-weight: 800; }
.kp-public-review-card footer > span.is-color-1 { background: #f7d9e4; }
.kp-public-review-card footer > span.is-color-2 { background: #cfe8ee; }
.kp-public-review-card footer > span.is-color-3 { background: #f8e8a6; }
.kp-public-review-card footer strong { display: block; color: var(--kp-color-text-main); font-family: var(--kp-font-heading); font-size: 17px; font-weight: 400; }
.kp-public-review-card footer small { display: block; margin: 0; color: var(--kp-color-text-soft); font-size: 12px; }
.kp-public-testimonials__rail-help { display: none; }

/* Story 11.5 — configuration commune de l'affichage public. */
/* `overflow-x: hidden` on the document creates a scrolling ancestor that
   prevents native sticky positioning. Keep horizontal clipping without
   creating that ancestor, and scope the exception to the reviews admin. */
html:has([data-testid="admin-reviews-page"]),
body:has([data-testid="admin-reviews-page"]) { overflow-x: clip; }

.kp-admin-review-display { display: grid; gap: 16px; }
.kp-admin-review-display [hidden] { display: none !important; }
.kp-alert[data-testid="admin-review-display-error"] { color: #b91c1c; }
[data-testid="admin-reviews-page"] .kp-admin-shell__topbar h1 { font-family: var(--kp-font-heading); font-weight: 400; }
.kp-card.kp-admin-review-display__draft { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; border: 1.5px solid #f1c27d; background: #fff8e8; box-shadow: 0 8px 22px rgba(201,124,16,.10); }
.kp-admin-review-display__draft h2 { margin: 0 0 3px; color: #2b3570; font-size: 14px; }
.kp-admin-review-display__draft p { margin: 0; color: #5b6490; font-size: 12.5px; }
.kp-admin-review-display__draft > div:last-child { display: flex; width: min(100%, 210px); flex: 0 0 210px; flex-direction: column; gap: 8px; }
.kp-admin-review-display__draft > div:last-child .kp-button { width: 100%; white-space: nowrap; }
.kp-admin-review-display__draft .kp-button--primary,
.kp-review-display-exit .kp-button--primary { background: #3b4a8c; color: #fff; }
.kp-admin-review-display__draft .kp-button--secondary,
.kp-review-display-exit .kp-button--secondary { border: 1.5px solid #3b4a8c; background: #fff; color: #3b4a8c; }
.kp-admin-review-display__grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); gap: 18px; align-items: stretch; }
.kp-admin-review-display__settings { display: grid; gap: 16px; }
.kp-card.kp-admin-review-display__mode { padding: 24px; border-color: #efe8d6; background: #fff; }
.kp-admin-review-display__mode > h2 { margin: 0 0 5px; color: #2b3570; font-size: 18px; }
.kp-admin-review-display__mode > p { margin: 0 0 18px; color: #5b6490; font-size: 13px; }
.kp-admin-review-display__mode-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kp-admin-review-display__mode-option { display: grid; min-height: 104px; padding: 15px; border: 1.5px solid #e4ddc8; border-radius: 13px; background: #fff; cursor: pointer; }
.kp-admin-review-display__mode-option.is-active { border-color: #3b4a8c; background: #e8f3fa; }
.kp-admin-review-display__mode-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kp-admin-review-display__mode-option > span { display: grid; gap: 6px; }
.kp-admin-review-display__mode-option strong { display: flex; align-items: center; gap: 8px; color: #2b3570; font-size: 14px; }
.kp-admin-review-display__mode-option strong::before { width: 18px; height: 18px; border: 2px solid #8a92b0; border-radius: 50%; content: ""; box-shadow: inset 0 0 0 4px #fff; }
.kp-admin-review-display__mode-option.is-active strong::before { border-color: #3b4a8c; background: #3b4a8c; }
.kp-admin-review-display__mode-option small { color: #5b6490; font-size: 12.5px; line-height: 1.4; }
.kp-admin-review-display__mode-option:focus-within { outline: 3px solid rgba(59,74,140,.28); outline-offset: 2px; }
.kp-admin-review-display__limits { margin: 20px 0 0; padding: 0; border: 0; }
.kp-admin-review-display__limits legend { margin-bottom: 9px; color: #2b3570; font-family: var(--kp-font-body); font-size: 13px; font-weight: 800; }
.kp-admin-review-display__limits > div { display: flex; flex-wrap: wrap; gap: 8px; }
.kp-admin-review-display__limits label { cursor: pointer; }
.kp-admin-review-display__limits input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kp-admin-review-display__limits span { display: grid; width: 46px; height: 44px; place-items: center; border: 1.5px solid #e4ddc8; border-radius: 10px; background: #fff; color: #2b3570; font-family: var(--kp-font-body); font-size: 14px; font-weight: 800; }
.kp-admin-review-display__limits input:checked + span { border-color: #3b4a8c; background: #3b4a8c; color: #fff; }
.kp-admin-review-display__limits input:focus-visible + span { outline: 3px solid rgba(59,74,140,.28); outline-offset: 2px; }
.kp-admin-review-display__manual-summary { padding: 13px; margin-top: 20px; border: 1px solid #9eb8e5; border-radius: 12px; background: #e8f3fa; }
.kp-admin-review-display__manual-summary strong { display: block; color: #2b3570; font-family: var(--kp-font-body); font-size: 13px; }
.kp-admin-review-display__manual-summary p { margin: 3px 0 0; color: #5b6490; font-size: 12px; line-height: 1.4; }
.kp-admin-review-display__no-js-save { width: 100%; margin-top: 18px; background: #3b4a8c; color: #fff; }
.kp-card.kp-admin-review-manual { display: grid; gap: 14px; padding: 24px; border-color: #efe8d6; background: #fff; }
.kp-admin-review-manual[hidden],
.js .kp-admin-review-manual[data-review-manual-initially-hidden] { display: none !important; }
.kp-admin-review-manual__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.kp-admin-review-manual__head h2 { margin: 0 0 4px; color: #2b3570; font-size: 18px; }
.kp-admin-review-manual__head p { margin: 0; color: #5b6490; font-size: 12.5px; line-height: 1.45; }
.kp-admin-review-manual__head > strong { flex: 0 0 auto; padding: 5px 10px; border: 1px solid #f2d675; border-radius: 999px; background: #fff4c7; color: #a45b00; font-size: 11px; }
.kp-admin-review-manual__filters { display: none; }
.js .kp-admin-review-manual__filters { display: grid; grid-template-columns: minmax(0,1.5fr) 1fr 1fr; gap: 8px; }
.kp-admin-review-manual__filters input,
.kp-admin-review-manual__filters select { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #e4ddc8; border-radius: 10px; background: #fff; color: #2b3570; font: inherit; font-size: 12px; }
/* The generic manual-filter padding above must leave room for this field's
   decorative magnifier; otherwise it overlays the placeholder text. */
.kp-admin-review-manual__filters .kp-admin-review-search input { padding-left: 40px; }
.kp-admin-review-manual__filter-result { display: none; }
.js .kp-admin-review-manual__filter-result { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: -4px; }
.kp-admin-review-manual__result { margin: 0; color: #2b3570; font-size: 12px; font-weight: 800; }
.kp-admin-review-manual__filter-result button { min-width: 44px; min-height: 44px; padding: 4px 0; border: 0; background: transparent; color: #3b4a8c; font-family: var(--kp-font-body); font-size: 11.5px; font-weight: 800; cursor: pointer; }
.kp-admin-review-manual__list { display: grid; gap: 8px; }
.kp-admin-review-manual__empty { padding: 24px 16px; border: 1px dashed #c9c1aa; border-radius: 12px; text-align: center; color: #5b6490; }
.kp-admin-review-manual__empty > span { display: block; margin-bottom: 5px; font-size: 24px; }
.kp-admin-review-manual__empty strong { display: block; color: #2b3570; font-family: var(--kp-font-body); font-size: 14px; }
.kp-admin-review-manual__empty p { margin: 4px 0 0; font-size: 12px; }
.kp-admin-review-manual__item { display: block; padding: 13px; border: 1.5px solid #e4ddc8; border-radius: 12px; background: #fff; cursor: pointer; }
.kp-admin-review-manual__item.is-selected { border-color: #3b4a8c; background: #e8f3fa; }
.kp-admin-review-manual__item > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kp-admin-review-manual__item-content { position: relative; display: block; padding-left: 28px; }
.kp-admin-review-manual__item-content::before { position: absolute; top: 0; left: 0; display: grid; width: 18px; height: 18px; place-items: center; border: 1.5px solid #8a92b0; border-radius: 3px; background: #fff; content: ""; color: #fff; font-size: 12px; }
.kp-admin-review-manual__item.is-selected .kp-admin-review-manual__item-content::before { border-color: #3b4a8c; background: #3b4a8c; content: "✓"; }
.kp-admin-review-manual__item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.kp-admin-review-manual__item:focus-within { outline: 3px solid rgba(59,74,140,.28); outline-offset: 2px; }
.kp-admin-review-manual__item strong { display: block; color: #2b3570; font-size: 13px; }
.kp-admin-review-manual__item small { display: block; margin-top: 2px; color: #616b8d; font-size: 11px; }
.kp-admin-review-manual__item p { display: -webkit-box; overflow: hidden; margin: 5px 0 0; color: #5b6490; font-size: 12px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.kp-admin-review-manual__item .kp-public-review-stars { align-self: start; white-space: nowrap; font-size: 15px; }
.kp-admin-review-manual__incomplete { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 9px; margin: 0; color: #a45b00; }
.kp-admin-review-manual__incomplete p { margin: 3px 0 0; font-size: 11.5px; line-height: 1.4; }
.kp-admin-review-display__preview-column { display: grid; gap: 14px; align-content: start; }
/* Keep the unsaved-state controls below the fixed admin bar while the manual
   pool scrolls. The preview itself remains in the normal reading flow. */
.kp-admin-review-display__preview-column .kp-admin-review-display__draft:not([hidden]) { position: sticky; z-index: 2; top: 140px; }
.kp-card.kp-admin-review-display__preview { padding: 22px; border-color: #efe8d6; background: #c9ddef; }
.kp-admin-review-display__preview-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.kp-admin-review-display__preview-head p { margin: 0; color: #3b4a8c; font-family: var(--kp-font-body); font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.kp-admin-review-display__preview-head h2 { margin: 3px 0 0; color: #2b3570; font-size: 18px; }
.kp-admin-review-display__preview-head a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; align-self: start; justify-content: center; padding: 0 8px; margin: -10px -8px 0 0; color: #3b4a8c; font-size: 12px; font-weight: 800; text-decoration: none; }
.kp-admin-review-display__preview-head a[aria-disabled="true"] { color: #8a92b0; pointer-events: none; }
.kp-admin-review-display__preview-list { display: grid; gap: 9px; }
.kp-admin-review-display__preview-list article { padding: 13px; border: 1px solid #efe8d6; border-radius: 12px; background: #fff; }
.kp-admin-review-display__preview-list article > div { display: flex; justify-content: space-between; gap: 8px; }
.kp-admin-review-display__preview-list article strong { color: #2b3570; font-size: 13px; }
.kp-admin-review-display__preview-list article small { color: #616b8d; font-size: 10.5px; }
.kp-admin-review-display__preview-list article p { display: -webkit-box; overflow: hidden; margin: 7px 0 0; color: #5b6490; font-size: 12px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.kp-review-display-exit { position: fixed; z-index: 150; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(15,23,42,.55); }
.kp-review-display-exit[hidden] { display: none; }
.kp-review-display-exit > div { width: min(100%,470px); padding: 24px; border-radius: 18px; background: #f5f0e3; box-shadow: 0 -12px 38px rgba(43,53,112,.24); }
.kp-review-display-exit h2 { margin: 0 0 7px; color: #2b3570; font-family: var(--kp-font-heading); font-size: 21px; font-weight: 400; }
.kp-review-display-exit > div > p { margin: 0 0 16px; color: #5b6490; font-size: 13.5px; line-height: 1.5; }
.kp-review-display-exit .kp-alert p { margin: 3px 0 0; }
.kp-review-display-exit .kp-alert.kp-alert--warning { display: grid; align-items: start; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; }
.kp-review-display-exit__warning { color: #a45b00; font-size: 20px; line-height: 1; }
.kp-review-display-exit > div > div:last-child { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* The canonical 768px prototype keeps the desktop three-column rail, while
   giving the editorial heading and long preview the extra vertical rhythm
   visible at that intermediate width. */
@media (min-width: 701px) and (max-width: 850px) {
    .kp-shell-section.kp-public-testimonials__inner { padding-inline: 28px; }
    .kp-public-testimonials__heading > div:first-child { max-width: 330px; }
    .js .kp-public-review-card__comment.is-collapsible:not(.is-expanded) { -webkit-line-clamp: 4; }
}

@media (max-width: 700px) {
    .kp-public-testimonials { scroll-margin-top: 84px; }
    .kp-shell-section.kp-public-testimonials__inner { padding: 38px 20px 42px; }
    .kp-public-testimonials__heading { display: block; margin-bottom: 20px; }
    .kp-public-shell .kp-public-testimonials__heading h2 { font-size: 23px; }
    .kp-public-testimonials__summary { min-width: 0; padding: 10px 12px; margin-top: 13px; }
    .kp-public-testimonials__summary strong { font-size: 20px; }
    .js .kp-public-testimonials__rail-help { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
    .kp-public-testimonials__rail-help p { margin: 0; color: #4b557e; font-size: 12px; }
    .kp-public-testimonials__rail-help > div { display: flex; gap: 7px; }
    .kp-public-testimonials__rail-help button { position: relative; isolation: isolate; width: 44px; height: 44px; margin-block: -3px; border: 0; background: transparent; color: #3b4a8c; font-size: 19px; cursor: pointer; }
    .kp-public-testimonials__rail-help button::before { position: absolute; z-index: -1; inset: 3px; border: 1px solid #e4ddc8; border-radius: 50%; background: #fff; content: ""; }
    .kp-public-testimonials__rail { grid-template-columns: 1fr; gap: 12px; }
    .js .kp-public-testimonials__rail { display: flex; width: auto; min-width: 0; gap: 12px; padding: 0 20px 10px; margin: 0 -20px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .kp-public-review-card { min-height: 0; padding: 17px; }
    .js .kp-public-review-card { flex: 0 0 calc(100% - 36px); scroll-snap-align: start; }
    .kp-public-review-card__comment { font-size: 13.5px; }
    .kp-public-review-card footer > span { width: 38px; height: 38px; flex-basis: 38px; }
    .kp-public-review-card footer strong { font-size: 13px; }
    .kp-public-review-card footer small { font-size: 11px; }
}

@media (max-width: 900px) {
    .kp-admin-review-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-card.kp-admin-review-filters { grid-template-columns: 1fr; }
    .kp-admin-review-filters label:first-child { grid-column: auto; }
    .kp-admin-review-detail__grid { grid-template-columns: 1fr; }
    .kp-admin-review-actions { flex-direction: column; }
    .kp-admin-review-actions .kp-button { width: 100%; }
}

@media screen and (max-width: 859px) {
    .kp-admin-review-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
    .kp-admin-review-metrics article { padding: 13px; }
    .kp-admin-review-metrics strong { font-size: 19px; }
    .kp-admin-review-metrics h2,
    .kp-admin-review-metrics p { font-size: 11px; }
    .kp-card.kp-admin-review-filters { grid-template-columns: 1fr; padding: 14px; }
    .kp-admin-review-filters label:first-child { grid-column: auto; }
    .kp-card.kp-admin-review-row { min-height: 0; padding: 14px; }
    .kp-admin-review-row__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .kp-card.kp-admin-review-detail__content { padding: 18px; }
    .kp-card.kp-admin-review-moderation { padding: 18px; }
    .kp-admin-review-detail__head { align-items: flex-start; }
    .kp-admin-review-evidence div { grid-template-columns: 1fr; gap: 2px; }
    .kp-admin-review-actions { flex-direction: column; }
    .kp-admin-review-actions .kp-button { width: 100%; }
    .kp-admin-review-row__quick-actions { align-items: stretch; flex-direction: column; }
    .kp-admin-review-row__quick-actions .kp-button,
    .kp-admin-review-row__detail-link { width: 100%; justify-content: center; }
    .kp-admin-review-quick-confirm { inset: 56px 0 0; align-items: flex-end; padding: 0; }
    .kp-admin-review-quick-confirm__panel { width: 100%; max-width: none; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; }
    .kp-card.kp-admin-review-display__draft { align-items: stretch; flex-direction: column; padding: 14px; }
    .kp-admin-review-display__draft > div:last-child { width: 100%; flex: 0 0 auto; flex-direction: column-reverse; }
    .kp-admin-review-display__grid { grid-template-columns: 1fr; }
    .kp-card.kp-admin-review-display__mode { padding: 18px; }
    .kp-admin-review-display__mode-options { grid-template-columns: 1fr; }
    .kp-admin-review-display__preview-column { align-self: auto; }
    /* A dirty configuration must remain actionable while the manual pool is
       scrolled. Keep it clear of the fixed mobile navigation. */
    .kp-admin-review-display:has(.kp-admin-review-display__draft:not([hidden])) { padding-bottom: 220px; }
    .kp-admin-review-display__preview-column .kp-admin-review-display__draft:not([hidden]) { position: fixed; z-index: 20; top: auto; right: 12px; bottom: calc(68px + env(safe-area-inset-bottom)); left: 12px; }
    .kp-card.kp-admin-review-display__preview { padding: 18px; }
    .kp-card.kp-admin-review-manual { padding: 18px; }
    .js .kp-admin-review-manual__filters { grid-template-columns: 1fr; }
    .kp-review-display-exit { inset: 56px 0 0; align-items: flex-end; padding: 0; }
    .kp-review-display-exit > div { width: 100%; max-width: none; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; }
    .kp-review-display-exit > div > div:last-child { grid-template-columns: 1fr; }
}

/*
 * The Seasons is deliberately reserved for titles and the brand name. Compact
 * interface text is kept in Nunito, including legacy variants that declare a
 * font locally.
 */
:where(
    button,
    input,
    select,
    textarea,
    label,
    .kp-button,
    .kp-badge,
    [class*="badge"],
    [class*="tag"],
    [class*="kicker"],
    [class*="label"]:not(.kp-shell-brand__label),
    [class*="filter"]
) {
    font-family: var(--kp-font-body) !important;
}
