@font-face {
    font-family: "Jost";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url("/rezerwacja/fonts/jost-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Jost";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url("/rezerwacja/fonts/jost-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    color-scheme: light;
    --ink: #33342e;
    --muted: #686963;
    --paper: #f5f2f0;
    --card: #fff;
    --line: #d6d6d6;
    --accent: #bc9b65;
    --accent-dark: #92703d;
    --danger: #9c3232;
    --success: #2c6e49;
    font-family: "Jost", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background: var(--paper);
    font-size: 16px;
    line-height: 1.5;
}

a { color: var(--accent-dark); }

.site-header {
    position: sticky;
    z-index: 50;
    top: 0;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 24px rgba(51, 52, 46, .045);
    backdrop-filter: blur(12px);
}

.site-header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    width: min(1180px, calc(100% - 48px));
    min-height: 96px;
    margin: 0 auto;
}

.booking-channels { display: flex; min-width: 0; align-items: center; }
.booking-channel {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 6px 17px;
    border-left: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .035em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}
.booking-channel:hover, .booking-channel:focus-visible, .booking-channel.is-current { color: var(--accent-dark); }
.booking-channel-phone { display: grid; gap: 1px; }
.booking-channel-phone strong { color: #123229; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
.site-actions { display: flex; align-items: center; justify-self: end; gap: 20px; }
.site-home-link { color: var(--ink); text-decoration: none; }
.site-home-link:hover, .site-home-link:focus-visible { color: var(--accent-dark); }
.account-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 18px;
    padding: 9px 22px;
    border-radius: 999px;
    color: white;
    background: var(--accent);
    font-weight: 500;
    text-decoration: none;
}
.account-link:hover, .account-link:focus-visible { background: var(--accent-dark); }

.brand {
    display: inline-flex;
    align-items: center;
    color: var(--ink);
    text-decoration: none;
}

.brand img { display: block; width: 160px; height: auto; }

.page-shell {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 64px 0 88px;
}

.hero { max-width: 800px; margin-bottom: 42px; }
.hero.compact { margin-bottom: 30px; }
.hero h1, .card h1 { margin: 6px 0 12px; font: 300 clamp(38px, 6vw, 58px)/1.14 "Jost", sans-serif; }
.hero.compact h1, .card h1 { font-size: clamp(32px, 5vw, 48px); }
.hero p, .card p { color: var(--muted); }
.eyebrow { margin: 0; color: var(--accent-dark) !important; font-size: 13px; font-weight: 500; letter-spacing: .11em; text-transform: uppercase; }

.card-grid, .auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card {
    position: relative;
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 2px;
    background: var(--card);
    box-shadow: 0 18px 48px rgba(51, 52, 46, .055);
}

.card h2 { margin: 5px 0 18px; font: 400 27px/1.25 "Jost", sans-serif; }
.booking-service-grid .card::before, .booking-calendar-card::before {
    position: absolute;
    top: -1px;
    left: -1px;
    width: 72px;
    height: 3px;
    background: var(--accent);
    content: "";
}
.service-card { display: flex; flex-direction: column; }
.service-card .button { margin-top: auto; }
.service-details, .summary-list { margin: 4px 0 26px; }
.service-details div, .summary-list div { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; border-bottom: 1px solid var(--line); }
dt { color: var(--muted); }
dd { margin: 0; text-align: right; font-weight: 650; }

.button, .slot {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 11px 20px;
    border: 1px solid var(--accent);
    border-radius: 999px;
    color: white;
    background: var(--accent);
    font: inherit;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.button:hover, .button:focus-visible, .slot:hover, .slot:focus-visible { border-color: var(--accent-dark); background: var(--accent-dark); }
.button.secondary { color: var(--accent-dark); background: white; }
.button.secondary:hover, .button.secondary:focus-visible { color: white; background: var(--accent-dark); }
.back-link { display: inline-block; margin-bottom: 24px; text-decoration: none; }
.muted { color: var(--muted); }

.booking-hero { margin-bottom: 50px; }
.booking-flow-section { margin-top: 54px; }
.booking-hero + .booking-flow-section { margin-top: 0; }
.booking-section-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 22px; }
.booking-section-heading h2 {
    margin: 2px 0 0;
    color: #123229;
    font: 500 clamp(27px, 3.2vw, 36px)/1.2 "Jost", sans-serif;
}
.booking-step {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    margin-top: -9px;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: var(--accent);
    font-weight: 700;
}
.booking-heading-help { max-width: 700px; margin: 5px 0 0; color: var(--muted); }
.service-list { border-top: 1px solid #d9d3cd; }
.service-list-item { border-bottom: 1px solid #d9d3cd; }
.service-list-row { display: grid; grid-template-columns: minmax(0, 1fr) 42px; gap: 10px; align-items: center; }
.service-list-toggle {
    display: flex;
    min-height: 70px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 4px;
    border: 0;
    color: #123229;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.service-list-toggle strong { font-size: clamp(18px, 1.8vw, 22px); font-weight: 500; line-height: 1.25; }
.service-list-toggle:hover strong, .service-list-toggle:focus-visible strong { color: var(--accent-dark); }
.service-list-chevron {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: #9ba39f;
    transform-origin: center;
    transition: transform .2s ease;
}
.service-list-chevron svg {
    display: block;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.service-list-item.expanded .service-list-chevron { transform: rotate(180deg); }
.service-info-toggle {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #bfc6c2;
    border-radius: 50%;
    color: #486158;
    background: white;
    font: 700 16px/1 "Jost", sans-serif;
    cursor: pointer;
}
.service-info-toggle:hover, .service-info-toggle:focus-visible, .service-info-toggle[aria-expanded="true"] { border-color: var(--accent); color: white; background: var(--accent); }
.service-description { margin: -2px 52px 17px 4px; padding: 13px 16px; border-left: 3px solid var(--accent); color: var(--muted); background: #faf8f6; font-size: 15px; }
.service-variants { display: grid; gap: 10px; padding: 2px 0 22px; }
.service-variants[hidden], .service-description[hidden] { display: none; }
.service-variant-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    min-height: 104px;
    padding: 18px 20px 18px 24px;
    border: 1px solid transparent;
    border-radius: 17px;
    background: #f0ebe8;
}
.service-variant-row.selected { border-color: #d0aa5d; background: #fbf7ef; }
.service-variant-copy {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: baseline;
}
.service-variant-copy strong { min-width: 0; color: #123229; font-size: 19px; font-weight: 400; line-height: 1.3; }
.service-variant-copy span { display: flex; justify-self: end; gap: 6px; align-items: baseline; color: #929a96; font-size: 16px; white-space: nowrap; }
.service-variant-copy b { color: #123229; font-size: 20px; }
.service-variant-copy i {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    align-self: center;
    border-radius: 50%;
    background: #8e9692;
    font-size: 0;
    font-style: normal;
}
.service-variant-cta { min-width: 100px; min-height: 48px; border-radius: 999px; font-weight: 600; }
.service-variant-cta.selected { border-color: var(--accent-dark); background: var(--accent-dark); }
.booking-scheduling-host { min-height: 0; transition: opacity .16s ease; }
.booking-scheduling-host.is-loading { opacity: .55; pointer-events: none; }
.booking-scheduling-step { scroll-margin-top: 110px; }
.booking-scheduling-content { display: grid; gap: 30px; }
.booking-employee-section { padding: 0; }
.booking-subsection-heading { margin-bottom: 18px; }
.booking-subsection-heading h3, .available-slots-heading h3 {
    margin: 0;
    color: #123229;
    font: 500 clamp(23px, 2.8vw, 31px)/1.2 "Jost", sans-serif;
}
.booking-subsection-heading p { margin: 5px 0 0; color: var(--muted); }
.employee-filter-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.employee-choice {
    position: relative;
    display: grid;
    min-width: 0;
    grid-template-columns: 62px minmax(0, 1fr) 22px;
    gap: 13px;
    align-items: center;
    padding: 14px;
    border: 1px solid #ded8d3;
    border-radius: 18px;
    color: #123229;
    background: white;
    text-decoration: none;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.employee-choice:hover, .employee-choice:focus-visible { border-color: var(--accent); box-shadow: 0 10px 24px rgba(51, 52, 46, .07); }
.employee-choice.selected { border-color: var(--accent); background: #fbf7ef; box-shadow: inset 0 0 0 1px var(--accent); }
.employee-avatar {
    display: grid;
    width: 62px;
    height: 62px;
    place-items: center;
    border-radius: 50%;
    object-fit: cover;
    color: #123229;
    background: #e9e4df;
    font-size: 18px;
    font-weight: 700;
}
.employee-avatar-any { color: white; background: var(--accent); font-size: 25px; }
.employee-choice-copy { min-width: 0; }
.employee-choice-copy strong, .employee-choice-copy span { display: block; }
.employee-choice-copy strong { overflow: hidden; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.employee-choice-copy span { margin-top: 2px; color: var(--muted); font-size: 13px; }
.employee-choice-marker { color: transparent; font-weight: 700; }
.employee-choice.selected .employee-choice-marker { color: var(--accent-dark); }
.booking-calendar-section {
    padding: 30px;
    border: 1px solid #ded8d3;
    border-radius: 24px;
    background: white;
    box-shadow: 0 18px 48px rgba(51, 52, 46, .055);
}
.booking-calendar-heading { display: flex; align-items: center; gap: 22px; margin-bottom: 22px; }
.calendar-jump-form { display: grid; gap: 5px; margin-left: auto; }
.calendar-jump-form label { color: var(--muted); font-size: 12px; font-weight: 700; }
.calendar-jump-form > div { display: flex; gap: 8px; }
.calendar-jump-form input { min-width: 158px; border-radius: 10px; }
.calendar-strip-wrap { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 10px; align-items: stretch; }
.calendar-strip { display: grid; grid-template-columns: repeat(7, minmax(74px, 1fr)); gap: 10px; }
.calendar-day {
    display: grid;
    min-height: 132px;
    place-content: center;
    padding: 12px 8px;
    border: 1px solid transparent;
    border-radius: 20px;
    color: #123229;
    background: #f0ebe8;
    text-align: center;
    text-decoration: none;
    transition: color .18s ease, background-color .18s ease, transform .18s ease;
}
.calendar-day:hover, .calendar-day:focus-visible { border-color: var(--accent); transform: translateY(-1px); }
.calendar-day.selected { color: white; background: #d0aa5d; box-shadow: 0 8px 16px rgba(146, 112, 61, .22); }
.calendar-day span { font-weight: 600; }
.calendar-day strong { font-size: 36px; line-height: 1.1; }
.calendar-day small { font-size: 16px; }
.calendar-arrow {
    display: grid;
    place-items: center;
    border: 1px solid #ded8d3;
    border-radius: 18px;
    color: var(--accent-dark);
    background: white;
    font-size: 24px;
    text-decoration: none;
}
.calendar-arrow:hover, .calendar-arrow:focus-visible { color: white; background: var(--accent); }
.calendar-arrow.disabled { color: #c7c1bc; background: #f4f1ef; }
.available-slots-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin: 44px 0 20px; }
.available-slots-heading p { margin: 5px 0 0; color: var(--muted); }
.available-slots-heading time { color: var(--accent-dark); font-weight: 700; }
.day-period-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.day-period h4 { margin: 0 0 14px; color: #929a96; font-size: 14px; font-weight: 400; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.period-slots { display: grid; gap: 10px; }
.period-slots form { margin: 0; }
.booking-slot {
    width: 100%;
    min-height: 88px;
    padding: 13px;
    border: 1px solid transparent;
    border-radius: 18px;
    color: #123229;
    background: #f0ebe8;
    font: inherit;
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease, background-color .18s ease, transform .18s ease;
}
.booking-slot strong, .booking-slot span { display: block; }
.booking-slot strong { font-size: 27px; line-height: 1.15; }
.booking-slot span { margin-top: 3px; color: #66706c; font-size: 15px; font-weight: 600; }
.booking-slot:hover, .booking-slot:focus-visible { border-color: var(--accent); color: white; background: var(--accent-dark); transform: translateY(-1px); }
.booking-slot:hover span, .booking-slot:focus-visible span { color: white; }
.period-empty { margin: 24px 0; color: #c7cdca; font-size: 24px; text-align: center; }
.slots-empty-state { display: grid; gap: 4px; padding: 32px; border-radius: 18px; color: var(--muted); background: #f4f1ef; text-align: center; }
.slots-empty-state strong { color: #123229; font-size: 19px; }

.date-form { max-width: 560px; margin-bottom: 36px; }
.field-row { display: flex; gap: 10px; margin-top: 7px; }
.slot-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.slot-grid form, .slot { width: 100%; }
.slot { color: var(--ink); background: white; }
.slot:hover, .slot:focus-visible { color: white; }

.form-stack { display: grid; gap: 10px; }
.form-stack label:not(.checkbox-row), .date-form label { font-weight: 700; }
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="password"], input[type="date"] {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #bbb3a9;
    border-radius: 0;
    color: var(--ink);
    background: white;
    font: inherit;
}
input[type="number"], input[type="datetime-local"], textarea, select {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #bbb3a9;
    border-radius: 0;
    color: var(--ink);
    background: white;
    font: inherit;
}
textarea { resize: vertical; }

input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(188, 155, 101, .22); border-color: var(--accent); }
.form-stack .button { margin-top: 12px; }
.narrow-card { max-width: 610px; margin: 0 auto; }
.code-input { text-align: center; font-size: 26px !important; font-weight: 750 !important; letter-spacing: .28em; }
.onboarding-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: -5px 0 22px;
    padding: 0;
    list-style: none;
}
.onboarding-preview li { display: grid; justify-items: center; gap: 6px; color: var(--muted); font-size: 12px; text-align: center; }
.onboarding-preview span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #d8cdbf;
    border-radius: 50%;
    color: var(--accent-dark);
    background: #fbf8f3;
    font-weight: 700;
}
.onboarding-preview strong { color: var(--ink); font-weight: 600; }
.account-onboarding-shell { display: grid; gap: 22px; }
.account-onboarding-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0 16px;
    list-style: none;
}
.account-onboarding-progress li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 7px;
    color: #8a8882;
    font-size: 12px;
    text-align: center;
}
.account-onboarding-progress li:not(:first-child)::before {
    position: absolute;
    top: 15px;
    right: 50%;
    width: 100%;
    height: 1px;
    background: #d8d2cb;
    content: "";
}
.account-onboarding-progress span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid #d8d2cb;
    border-radius: 50%;
    color: #77736e;
    background: var(--paper);
    font-weight: 700;
}
.account-onboarding-progress strong { font-weight: 600; }
.account-onboarding-progress .is-complete,
.account-onboarding-progress .is-current { color: var(--ink); }
.account-onboarding-progress .is-complete::before,
.account-onboarding-progress .is-current::before { background: var(--accent); }
.account-onboarding-progress .is-complete span { border-color: var(--success); color: white; background: var(--success); }
.account-onboarding-progress .is-current span { border-color: var(--accent); color: white; background: var(--accent); box-shadow: 0 0 0 5px rgba(188, 155, 101, .14); }
.account-onboarding-card { overflow: hidden; padding: 38px; border-radius: 22px; box-shadow: 0 22px 56px rgba(51, 52, 46, .08); }
.account-onboarding-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-dark), #d9bd8b);
    content: "";
}
.account-onboarding-card > p:not(.eyebrow) { margin: 0 0 26px; }
.account-confirmed-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    padding: 7px 12px 7px 8px;
    border-radius: 999px;
    color: var(--success);
    background: #eff8f2;
    font-size: 13px;
    font-weight: 650;
}
.account-confirmed-badge span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: white; background: var(--success); font-size: 12px; }
.account-password-form { gap: 11px; }
.password-field-control { position: relative; }
.password-field-control input { padding-right: 78px; border-radius: 12px; }
.password-field-control button {
    position: absolute;
    top: 50%;
    right: 7px;
    padding: 7px 9px;
    border: 0;
    border-radius: 8px;
    color: var(--accent-dark);
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
    transform: translateY(-50%);
}
.password-field-control button:hover,
.password-field-control button:focus-visible { background: #f4eee4; outline: none; }
.password-requirements { display: grid; gap: 7px; margin: 4px 0 2px; padding: 0; list-style: none; }
.password-requirements li { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.password-requirements li::before {
    display: grid;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    place-items: center;
    border: 1px solid #c9c2b9;
    border-radius: 50%;
    content: "";
    font-size: 11px;
    font-weight: 800;
}
.password-requirements li[data-valid="true"] { color: var(--success); }
.password-requirements li[data-valid="true"]::before { border-color: var(--success); color: white; background: var(--success); content: "✓"; }
.account-password-submit { width: 100%; gap: 10px; }
.account-password-submit span { font-size: 19px; line-height: 1; }
.account-security-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 4px; text-align: center; }
.account-security-note span { color: var(--success); font-size: 9px; }
.summary-card { max-width: 760px; }
.consent-form { margin-top: 28px; }
.checkbox-row { display: grid; grid-template-columns: 22px 1fr; gap: 11px; align-items: start; cursor: pointer; }
.checkbox-row input { width: 19px; height: 19px; margin-top: 3px; accent-color: var(--accent); }
.required-consent { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.required-consent strong { color: var(--danger); font-size: 12px; text-transform: uppercase; }
.logout-form { margin-top: 20px; text-align: center; }
.text-button { padding: 8px; border: 0; color: var(--accent-dark); background: none; font: inherit; text-decoration: underline; cursor: pointer; }
.field-help { margin: -3px 0 5px; color: var(--muted); font-size: 13px; }
.account-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.customer-appointment-list-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.customer-appointment-list-heading h2 { margin: 0 0 4px; }
.customer-appointment-list-heading p { margin: 0; }
.customer-appointment-list-heading > strong { flex: 0 0 auto; padding: 7px 11px; border-radius: 999px; color: var(--accent-dark); background: #f4eee4; font-size: 13px; }
.customer-appointment-list { display: grid; }
.customer-appointment-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) minmax(210px, auto); gap: 20px; align-items: center; padding: 17px 0; border-bottom: 1px solid var(--line); }
.customer-appointment-row:first-child { padding-top: 0; }
.customer-appointment-row:last-child { padding-bottom: 0; border-bottom: 0; }
.customer-appointment-row time strong, .customer-appointment-row time span { display: block; }
.customer-appointment-row time span, .customer-appointment-row p { color: var(--muted); }
.customer-appointment-row p { margin: 3px 0 0; }
.customer-appointment-row .customer-appointment-source { font-size: 13px; }
.customer-appointment-sequence { align-items: start; }
.customer-appointment-details { min-width: 0; }
.customer-booking-items { display: grid; gap: 0; margin: 10px 0 8px; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.customer-booking-items li { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.customer-booking-items li > span:nth-child(2) { display: grid; min-width: 0; }
.customer-booking-items li strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.customer-booking-items li small { color: var(--muted); }
.customer-booking-item-position { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: #fff; background: var(--accent); font-size: 11px; font-weight: 800; }
.customer-appointment-status { display: grid; justify-items: end; gap: 6px; text-align: right; }
.customer-appointment-status small { max-width: 250px; color: var(--muted); line-height: 1.3; }

.alert { margin: 0 0 22px; padding: 14px 16px; border-radius: 10px; }
.alert-error { border: 1px solid #e7b7b7; color: #7b2424; background: #fff1f1; }
.alert-success { border: 1px solid #b8d8c5; color: #23583c; background: #effaf3; }
.empty-state { max-width: 680px; }
.success-card { text-align: center; }
.success-card .summary-list { text-align: left; }
.success-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 20px; place-items: center; border-radius: 50%; color: white; background: var(--success); font-size: 30px; }

.site-footer { border-top: 1px solid var(--line); background: white; }
.site-footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 24px; align-items: center; width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 27px 0; color: var(--muted); font-size: 14px; }
.site-footer-technology { display: inline-flex; justify-self: center; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; white-space: nowrap; }
.site-footer-technology img { display: block; width: 112px; height: auto; }
.site-footer-contact { justify-self: end; text-align: right; }
.site-footer a { color: var(--ink); text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--accent-dark); }

.panel-body {
    --panel-sidebar-collapsed-width: 78px;
    --panel-sidebar-expanded-width: 250px;
    --panel-sidebar-width: var(--panel-sidebar-expanded-width);
    overflow-x: hidden;
    background: #f3f1ed;
}
html[data-panel-sidebar-state="collapsed"] .panel-body { --panel-sidebar-width: var(--panel-sidebar-collapsed-width); }
.panel-body .panel-layout { display: grid; min-height: 100vh; grid-template-columns: var(--panel-sidebar-width) minmax(0, 1fr); }
.panel-body.panel-navigation-ready .panel-layout { transition: grid-template-columns .2s ease; }
.panel-body .panel-main { min-width: 0; }
.panel-body .panel-sidebar {
    position: sticky;
    z-index: 70;
    top: 0;
    display: flex;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    color: #f8f5ef;
    border-right: 1px solid rgba(255, 255, 255, .1);
    background: #292722;
    box-shadow: 8px 0 24px rgba(38, 34, 29, .08);
}
.panel-body .panel-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.panel-body .panel-icon { width: 23px; height: 23px; flex: 0 0 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.panel-body .panel-sidebar-header { display: flex; min-height: 74px; align-items: center; gap: 8px; padding: 12px; }
.panel-body .panel-sidebar-brand { display: flex; min-width: 0; flex: 1; align-items: center; gap: 11px; color: white; text-decoration: none; }
.panel-body .panel-brand-mark { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 13px; color: #292722; background: var(--accent); font: 600 24px/1 "Jost", sans-serif; }
.panel-body .panel-sidebar-brand-copy { display: grid; min-width: 0; gap: 3px; }
.panel-body .panel-sidebar-brand-copy img { display: block; width: 132px; height: auto; filter: brightness(0) invert(1); }
.panel-body .panel-sidebar-brand-copy span { color: rgba(255, 255, 255, .62); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.panel-body .panel-sidebar-copy { min-width: 0; opacity: 1; white-space: nowrap; transition: width .18s ease, opacity .12s ease; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-sidebar-copy { width: 0; opacity: 0; overflow: hidden; pointer-events: none; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-sidebar-brand,
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-collapse-button,
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-nav-link,
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-user-summary,
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-logout-button { gap: 0; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-sidebar-brand { justify-content: center; }
.panel-body .panel-collapse-button,
.panel-body .panel-drawer-close,
.panel-body .panel-drawer-open,
.panel-body .panel-logout-button { border: 0; font: inherit; cursor: pointer; }
.panel-body .panel-collapse-button { display: flex; min-height: 42px; align-items: center; gap: 12px; margin: 0 11px 8px; padding: 8px 14px; border-radius: 11px; color: rgba(255, 255, 255, .68); background: rgba(255, 255, 255, .06); font-size: 13px; font-weight: 650; }
.panel-body .panel-collapse-button:hover { color: white; background: rgba(255, 255, 255, .11); }
.panel-body .panel-collapse-icon { width: 18px; height: 18px; flex-basis: 18px; transition: transform .2s ease; }
html[data-panel-sidebar-state="expanded"] .panel-body .panel-collapse-icon { transform: rotate(180deg); }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-collapse-button { justify-content: center; padding-inline: 0; }
.panel-body .panel-drawer-close { display: none; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 12px; color: white; background: rgba(255, 255, 255, .08); }
.panel-body .panel-sidebar-nav { display: grid; gap: 4px; padding: 4px 10px 18px; }
.panel-body .panel-nav-link,
.panel-body .panel-logout-button { position: relative; display: flex; min-height: 48px; align-items: center; gap: 14px; padding: 10px 15px; border-radius: 12px; color: rgba(255, 255, 255, .72); background: transparent; font-weight: 650; text-decoration: none; }
.panel-body .panel-nav-link:hover,
.panel-body .panel-nav-link:focus-visible,
.panel-body .panel-logout-button:hover,
.panel-body .panel-logout-button:focus-visible { color: white; background: rgba(255, 255, 255, .1); }
.panel-body .panel-nav-link.is-active { color: white; background: rgba(188, 155, 101, .25); box-shadow: inset 3px 0 0 var(--accent); }
.panel-body .panel-nav-link.is-active .panel-icon { color: #dec18e; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-nav-link,
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-logout-button { justify-content: center; padding-inline: 0; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-nav-link.is-active { box-shadow: inset 0 0 0 1px rgba(222, 193, 142, .68); }
.panel-body .panel-sidebar-footer { display: grid; gap: 6px; margin-top: auto; padding: 13px 10px 16px; border-top: 1px solid rgba(255, 255, 255, .1); }
.panel-body .panel-user-summary { display: flex; min-height: 50px; align-items: center; gap: 12px; padding: 7px 10px; }
.panel-body .panel-user-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; color: #292722; background: #e4c99b; }
.panel-body .panel-user-icon .panel-icon { width: 20px; height: 20px; flex-basis: 20px; }
.panel-body .panel-user-copy { display: grid; min-width: 0; line-height: 1.2; }
.panel-body .panel-user-copy strong { max-width: 150px; overflow: hidden; color: white; font-size: 13px; text-overflow: ellipsis; }
.panel-body .panel-user-copy small { margin-top: 4px; color: rgba(255, 255, 255, .55); font-size: 11px; }
html[data-panel-sidebar-state="collapsed"] .panel-body .panel-user-summary { justify-content: center; padding-inline: 0; }
.panel-body .panel-logout-form { margin: 0; }
.panel-body .panel-logout-button { width: 100%; color: #e9c7c7; }
.panel-body .panel-sidebar-brand:focus-visible,
.panel-body .panel-collapse-button:focus-visible,
.panel-body .panel-drawer-close:focus-visible,
.panel-body .panel-drawer-open:focus-visible { outline: 3px solid rgba(222, 193, 142, .72); outline-offset: 2px; }
.panel-body .panel-mobile-header { display: none; }
.panel-body .panel-sidebar-backdrop { position: fixed; z-index: 60; inset: 0; visibility: hidden; opacity: 0; background: rgba(24, 22, 19, .55); pointer-events: none; transition: opacity .18s ease, visibility .18s ease; }
.panel-body .panel-shell { width: min(1260px, calc(100% - 32px)); margin-right: auto; margin-left: 16px; padding-top: 38px; }
.panel-body .panel-shell-calendar { width: calc(100% - 32px); }
.panel-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.panel-title h1 { margin: 2px 0 0; font: 400 clamp(32px, 5vw, 48px)/1.12 "Jost", sans-serif; }
.metric-row { display: flex; gap: 12px; }
.metric { min-width: 100px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 12px; background: white; text-align: center; }
.metric strong, .metric span { display: block; }
.metric strong { font-size: 25px; }
.metric span { color: var(--muted); font-size: 12px; }
.metric.danger { border-color: #e2aaaa; color: var(--danger); background: #fff2f2; }
.panel-section { margin-top: 38px; }
.panel-section > h2 { margin-bottom: 16px; font: 400 26px/1.2 "Jost", sans-serif; }
.table-card, .appointment-list, .audit-list { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
th { color: var(--muted); background: #faf9f7; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.button.small { min-height: 36px; padding: 7px 12px; font-size: 13px; }
.conflict-list { display: grid; gap: 12px; }
.conflict-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; border: 1px solid #e2aaaa; border-radius: 13px; background: #fff5f5; }
.conflict-card p { margin: 4px 0 0; color: #733; }
.button-row { display: flex; gap: 8px; }
.appointment-row { display: grid; grid-template-columns: 80px 1fr auto; gap: 18px; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.appointment-row:last-child { border-bottom: 0; }
.appointment-row:hover { background: #faf9f7; }
.appointment-time { font-size: 22px; font-weight: 750; }
.status { display: inline-flex; align-items: center; width: fit-content; padding: 6px 9px; border-radius: 999px; color: #564c44; background: #e9e3dc; font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.status-pending_reception { color: #7b5313; background: #fff0ce; }
.status-confirmed { color: #245c3e; background: #dcf2e5; }
.status-cancelled, .status-no_show { color: #812f2f; background: #f8dddd; }
.panel-view-tabs { display: inline-flex; gap: 4px; margin: -8px 0 4px; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: #ebe7e1; }
.panel-view-tabs a { min-width: 150px; padding: 9px 17px; border-radius: 999px; color: var(--muted); font-size: 14px; font-weight: 700; text-align: center; text-decoration: none; }
.panel-view-tabs a:hover, .panel-view-tabs a:focus-visible { color: var(--ink); }
.panel-view-tabs a.active { color: white; background: var(--accent); box-shadow: 0 4px 12px rgba(115, 84, 45, .16); }
.manual-appointment-title { margin-bottom: 20px; }
.manual-appointment-card { max-width: 1080px; margin-top: 24px; }
.manual-appointment-intro { margin-bottom: 24px; }
.manual-appointment-intro h2 { margin: 0 0 6px; font: 500 27px/1.2 "Jost", sans-serif; }
.manual-appointment-intro p { margin: 0; color: var(--muted); }
.manual-appointment-form { display: grid; gap: 26px; }
.manual-appointment-fieldset { margin: 0; padding: 0; border: 0; }
.manual-appointment-fieldset legend { width: 100%; margin-bottom: 14px; padding-bottom: 9px; border-bottom: 1px solid var(--line); font: 500 20px/1.2 "Jost", sans-serif; }
.manual-appointment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.manual-appointment-grid label { display: grid; align-content: start; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.manual-appointment-grid .field-help { margin: 0; font-weight: 400; }
.manual-appointment-full-field { grid-column: 1 / -1; }
.manual-customer-lookup { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(340px, 1.1fr); gap: 16px; padding: 18px; border: 1px solid #ddd5cb; border-radius: 17px; background: linear-gradient(145deg, #fbfaf8, #f4f0ea); box-shadow: 0 10px 30px rgba(51, 52, 46, .045); }
.manual-customer-phone-field { min-width: 0; }
.manual-customer-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); }
.manual-customer-label small { padding: 4px 8px; border-radius: 999px; color: var(--accent-dark); background: #ede3d4; font-size: 10px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.manual-customer-phone-input { position: relative; display: block; }
.manual-customer-phone-input input { width: 100%; padding-right: 46px; border-color: #c9b79f; background: white; font-size: 17px; font-weight: 650; letter-spacing: .02em; }
.manual-customer-phone-input input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(188, 155, 101, .14); }
.manual-customer-spinner { position: absolute; top: 50%; right: 16px; width: 18px; height: 18px; margin-top: -9px; border: 2px solid #dfd5c8; border-top-color: var(--accent-dark); border-radius: 50%; animation: manual-customer-spin .7s linear infinite; }
.manual-customer-spinner[hidden] { display: none; }
.manual-customer-status { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; padding: 14px 16px; border: 1px solid #ddd6ce; border-radius: 13px; color: var(--muted); background: rgba(255, 255, 255, .8); transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.manual-customer-status-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; color: #786e64; background: #ebe6df; font-size: 19px; font-weight: 800; }
.manual-customer-status strong, .manual-customer-status > span > span { display: block; }
.manual-customer-status strong { color: var(--ink); font-size: 14px; }
.manual-customer-status > span > span { margin-top: 2px; font-size: 12px; line-height: 1.35; }
.manual-customer-status.is-loading { border-color: #d0c0aa; background: #fffdf9; box-shadow: 0 8px 20px rgba(146, 112, 61, .08); }
.manual-customer-status.is-loading .manual-customer-status-icon { color: var(--accent-dark); background: #eee4d5; }
.manual-customer-status.is-found { border-color: #b8d1c1; background: #f4fbf6; }
.manual-customer-status.is-found .manual-customer-status-icon { color: white; background: var(--success); }
.manual-customer-status.is-new { border-color: #d4c39e; background: #fffaf0; }
.manual-customer-status.is-new .manual-customer-status-icon { color: #72551f; background: #f1dfb5; }
.manual-customer-status.is-blocked, .manual-customer-status.is-error { border-color: #dfb3b3; background: #fff5f5; }
.manual-customer-status.is-blocked .manual-customer-status-icon, .manual-customer-status.is-error .manual-customer-status-icon { color: white; background: var(--danger); }
@keyframes manual-customer-spin { to { transform: rotate(360deg); } }
.manual-appointment-date-row { max-width: 440px; margin-bottom: 20px; }
.manual-appointment-date-field { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.manual-service-picker { overflow: hidden; border: 1px solid #ded8d0; border-radius: 18px; background: linear-gradient(145deg, #fbfaf8, #f3efe9); }
.manual-service-picker-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 24px 20px; border-bottom: 1px solid #e2ddd6; background: rgba(255, 255, 255, .68); }
.manual-service-picker-heading h3 { margin: 0 0 5px; color: var(--ink); font: 500 22px/1.2 "Jost", sans-serif; }
.manual-service-picker-heading p { margin: 0; color: var(--muted); font-size: 14px; }
.manual-picker-progress { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin: 0; padding: 0; color: var(--muted); font-size: 11px; font-weight: 700; list-style: none; text-transform: uppercase; }
.manual-picker-progress li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.manual-picker-progress li + li::before { margin-right: 2px; color: #c4bdb4; content: "›"; font-size: 17px; font-weight: 400; }
.manual-picker-progress span { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #d4cabd; border-radius: 50%; color: var(--accent-dark); background: white; font-size: 11px; }
.manual-picker-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 20px 20px 14px; }
.manual-picker-steps[hidden], .manual-picker-fallback[hidden], .manual-picker-summary[hidden], [data-manual-summary-details][hidden] { display: none; }
.manual-picker-step { position: relative; display: grid; align-content: start; gap: 8px; min-width: 0; padding: 16px; border: 1px solid #ddd6ce; border-radius: 14px; color: var(--muted); background: rgba(255, 255, 255, .84); box-shadow: 0 8px 24px rgba(51, 52, 46, .035); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.manual-picker-step.is-active { border-color: var(--accent); box-shadow: 0 10px 26px rgba(146, 112, 61, .12); transform: translateY(-1px); }
.manual-picker-step.is-complete { border-color: #b9cfc2; background: #fbfffc; }
.manual-picker-step-label { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 13px; font-weight: 750; }
.manual-picker-step-label b { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 8px; color: white; background: var(--accent); font-size: 12px; }
.manual-picker-step.is-complete .manual-picker-step-label b { background: var(--success); }
.manual-picker-step select { min-width: 0; border-color: #c8bdb1; border-radius: 11px; background-color: white; font-weight: 600; }
.manual-picker-step select:disabled { color: #99938c; border-color: #e1ddd8; background: #f2efeb; cursor: not-allowed; }
.manual-picker-help { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.35; }
.manual-picker-action-row { display: flex; justify-content: flex-end; gap: 10px; padding: 0 20px 20px; }
.manual-picker-action-row .button { min-width: 190px; }
.manual-picker-action-row [hidden], .manual-picker-summary-actions [hidden] { display: none; }
.manual-service-picker .button:disabled, .manual-appointment-submit .button:disabled { cursor: not-allowed; opacity: .48; }
.manual-picker-fallback { display: grid; gap: 7px; padding: 20px; color: var(--muted); font-size: 13px; font-weight: 700; }
.manual-picker-summary { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 14px; margin: 20px; padding: 18px; border: 1px solid #ded8d0; border-radius: 14px; background: white; }
.manual-picker-summary.is-complete { border-color: #b9cfc2; background: #f7fcf8; }
.manual-picker-summary-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; color: white; background: #c7bfb6; font-size: 19px; font-weight: 800; }
.manual-picker-summary.is-complete .manual-picker-summary-icon { background: var(--success); }
.manual-picker-summary p, .manual-picker-summary strong, .manual-picker-summary-heading > span { display: block; }
.manual-picker-summary p { margin: 0 0 2px; color: var(--accent-dark); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.manual-picker-summary strong { color: var(--ink); font-size: 17px; }
.manual-picker-summary-heading > span { margin-top: 2px; color: var(--muted); font-size: 13px; }
.manual-picker-selected-list { display: grid; grid-column: 1 / -1; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.manual-picker-selected-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid #d9e4dc; border-radius: 12px; background: white; }
.manual-picker-selected-list li > div { display: flex; align-items: center; gap: 11px; min-width: 0; }
.manual-picker-selected-list li > div > span { display: grid; flex: 0 0 auto; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: white; background: var(--success); font-size: 12px; font-weight: 800; }
.manual-picker-selected-list strong, .manual-picker-selected-list small { display: block; }
.manual-picker-selected-list strong { overflow-wrap: anywhere; font-size: 14px; }
.manual-picker-selected-list small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.manual-picker-selected-list button { flex: 0 0 auto; padding: 6px 9px; border: 0; color: #8b3d3d; background: transparent; font-size: 12px; font-weight: 750; cursor: pointer; }
.manual-picker-selected-list button:hover, .manual-picker-selected-list button:focus-visible { text-decoration: underline; }
.manual-picker-summary dl { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
.manual-picker-summary dl > div { min-width: 0; padding: 0 14px; border-left: 1px solid var(--line); }
.manual-picker-summary dl > div:first-child { padding-left: 0; border-left: 0; }
.manual-picker-summary dt { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.manual-picker-summary dd { margin: 2px 0 0; color: var(--ink); font-size: 14px; font-weight: 750; text-align: left; }
.manual-picker-summary-actions { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 14px; }
.manual-picker-summary-actions > span { color: var(--muted); font-size: 12px; }
.manual-appointment-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 4px; }
.manual-appointment-submit .field-help { max-width: 520px; margin: 0; }
.manual-appointment-submit .button { flex: 0 0 auto; }
.calendar-page-title { margin-bottom: 20px; }
[data-reception-calendar-page] { transition: opacity .14s ease; }
[data-reception-calendar-page].is-loading { opacity: .58; cursor: progress; pointer-events: none; }
.calendar-control-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.calendar-day-navigation { display: grid; align-items: center; grid-template-columns: 42px 300px 42px; gap: 16px; }
.calendar-day-navigation > div { width: 300px; min-width: 0; text-align: center; }
.calendar-day-navigation span, .calendar-day-navigation strong { display: block; }
.calendar-day-navigation span { margin-bottom: 3px; color: var(--muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.calendar-day-navigation strong { font: 500 22px/1.2 "Jost", sans-serif; }
.calendar-navigation-button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: #faf9f7; font-size: 20px; text-decoration: none; }
.calendar-navigation-button:hover, .calendar-navigation-button:focus-visible { border-color: var(--accent); color: white; background: var(--accent); }
.calendar-date-actions { display: flex; align-items: flex-end; gap: 12px; }
.calendar-date-form { display: grid; gap: 5px; }
.calendar-date-form label { color: var(--muted); font-size: 12px; font-weight: 700; }
.calendar-date-form > div { display: flex; gap: 7px; }
.calendar-date-form input { min-width: 150px; border-radius: 10px; }
.calendar-week-navigation { display: grid; align-items: center; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 10px; margin-top: 14px; }
.calendar-week-navigation-button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent-dark); background: white; box-shadow: 0 5px 14px rgba(115, 84, 45, .1); font-size: 22px; font-weight: 700; text-decoration: none; }
.calendar-week-navigation-button:hover, .calendar-week-navigation-button:focus-visible { color: white; background: var(--accent); }
.calendar-week-strip { display: grid; min-width: 0; grid-template-columns: repeat(7, minmax(92px, 1fr)); gap: 8px; }
.calendar-week-day { display: grid; min-height: 116px; place-items: center; align-content: center; padding: 10px 7px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: white; text-decoration: none; transition: transform .16s ease, border-color .16s ease, background-color .16s ease; }
.calendar-week-day:hover, .calendar-week-day:focus-visible { border-color: var(--accent); transform: translateY(-1px); }
.calendar-week-day span, .calendar-week-day small { color: var(--muted); }
.calendar-week-day strong { margin: 1px 0; font-size: 28px; line-height: 1; }
.calendar-week-day em { margin-top: 7px; color: var(--accent-dark); font-size: 11px; font-style: normal; font-weight: 700; }
.calendar-week-day.today:not(.selected) { border-color: #c5a66e; }
.calendar-week-day.selected { border-color: var(--accent); color: white; background: var(--accent); box-shadow: 0 7px 16px rgba(115, 84, 45, .2); }
.calendar-week-day.selected span, .calendar-week-day.selected small, .calendar-week-day.selected em { color: white; }
.calendar-filter-section { display: grid; align-items: start; grid-template-columns: minmax(220px, .42fr) minmax(0, 1.58fr); gap: 18px 28px; margin: 24px 0 14px; }
.calendar-filter-section h2 { margin: 0 0 3px; font: 500 22px/1.2 "Jost", sans-serif; }
.calendar-filter-section p { margin: 0; color: var(--muted); font-size: 13px; }
.calendar-employee-filter-form { display: grid; min-width: 0; gap: 10px; }
.calendar-employee-filters { display: flex; min-width: 0; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin: 0; padding: 0; border: 0; }
.calendar-employee-filter { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 6px 8px 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: white; font-size: 13px; text-decoration: none; cursor: pointer; transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease; }
.calendar-employee-filter:hover, .calendar-employee-filter:focus-visible, .calendar-employee-filter:has(input:focus-visible), .calendar-employee-filter.active { border-color: var(--employee-border, var(--accent)); background: var(--employee-surface, #f7f1e8); }
.calendar-employee-filter:has(input:focus-visible) { outline: 2px solid var(--employee-accent, var(--accent-dark)); outline-offset: 2px; }
.calendar-employee-filter.active { box-shadow: inset 0 0 0 1px var(--employee-accent, var(--accent)); }
.calendar-employee-filter strong { font-weight: 650; white-space: nowrap; }
.calendar-color-dot, .calendar-all-dot { display: grid; width: 16px; height: 16px; flex: 0 0 16px; place-items: center; border-radius: 50%; }
.calendar-color-dot { border: 2px solid white; background: var(--employee-accent); box-shadow: 0 0 0 1px var(--employee-border); }
.calendar-all-dot { color: white; background: var(--accent); font-size: 9px; }
.calendar-filter-check { display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; border: 1px solid var(--employee-border); border-radius: 50%; color: transparent; background: white; font-size: 11px; font-weight: 800; }
.calendar-employee-filter.active .calendar-filter-check { border-color: var(--employee-accent); color: white; background: var(--employee-accent); }
.calendar-filter-photo, .calendar-heading-photo { display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; object-fit: cover; }
.calendar-filter-photo { width: 30px; height: 30px; margin-left: 2px; font-size: 9px; }
.calendar-filter-actions { display: flex; min-height: 36px; align-items: center; justify-content: flex-end; gap: 10px; }
.calendar-filter-selection { color: var(--muted); font-size: 12px; }
.calendar-filter-clear { color: var(--accent-dark); font-size: 12px; font-weight: 700; text-underline-offset: 3px; }
.calendar-filter-submit { min-width: 128px; }
.calendar-heading-photo { width: 44px; height: 44px; border: 2px solid white; box-shadow: 0 0 0 2px var(--employee-border); font-size: 11px; }
.calendar-photo-placeholder { color: #123229; background: #e9e4df; font-weight: 750; }
.calendar-empty-notice { display: flex; gap: 8px 18px; margin-bottom: 12px; padding: 12px 15px; border: 1px solid #d9d4cd; border-radius: 12px; background: #faf9f7; }
.calendar-empty-notice span { color: var(--muted); }
.reception-calendar-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 12px 30px rgba(36, 30, 25, .05); }
.reception-calendar-scroll { overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.reception-calendar-grid { display: grid; min-width: max(100%, var(--calendar-min-width)); grid-template-columns: 78px minmax(0, 1fr); grid-template-rows: auto var(--calendar-height); }
.calendar-grid-corner, .calendar-employee-headings { position: sticky; top: 0; z-index: 12; border-bottom: 1px solid var(--line); background: #faf9f7; }
.calendar-grid-corner { left: 0; display: grid; min-height: var(--calendar-header-height); place-items: center; border-right: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.calendar-employee-headings { display: flex; min-width: 0; align-items: stretch; }
.calendar-employee-heading { min-width: var(--calendar-column-width); min-height: var(--calendar-header-height); flex: 1 0 var(--calendar-column-width); border-top: 3px solid var(--employee-accent); border-left: 1px solid var(--line); background: #faf9f7; }
.calendar-employee-heading-main { display: grid; min-height: calc(var(--calendar-header-height) - 3px); align-items: center; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 11px; padding: 9px 12px 9px 14px; list-style: none; }
summary.calendar-employee-heading-main { cursor: pointer; }
.calendar-employee-heading-main::-webkit-details-marker { display: none; }
.calendar-employee-heading-main:focus-visible { outline: 2px solid var(--employee-accent); outline-offset: -3px; }
.calendar-employee-heading-copy { display: grid; min-width: 0; gap: 2px; }
.calendar-employee-name { display: flex; min-width: 0; align-items: center; gap: 7px; }
.calendar-employee-name .calendar-color-dot { width: 9px; height: 9px; flex-basis: 9px; border-width: 1px; }
.calendar-employee-name strong { overflow: hidden; min-width: 0; font-size: 15px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.calendar-employee-appointment-count { color: var(--muted); font-size: 11px; }
.calendar-employee-heading-chevron { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: white; transition: color .16s ease, border-color .16s ease; }
.calendar-employee-heading-chevron svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transform-box: fill-box; transform-origin: center; transition: transform .16s ease; }
.calendar-employee-heading[open] .calendar-employee-heading-chevron { border-color: var(--employee-border); color: var(--employee-ink); }
.calendar-employee-heading[open] .calendar-employee-heading-chevron svg { transform: rotate(180deg); }
.calendar-employee-heading-actions { padding: 0 12px 11px 14px; }
.calendar-schedule-edit-link { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 11px; border: 1px solid var(--employee-border); border-radius: 9px; color: var(--employee-ink); background: var(--employee-surface); font-size: 12px; font-weight: 700; text-decoration: none; }
.calendar-schedule-edit-link:hover, .calendar-schedule-edit-link:focus-visible { border-color: var(--employee-accent); box-shadow: inset 0 0 0 1px var(--employee-accent); }
.calendar-time-axis { position: sticky; left: 0; z-index: 8; border-right: 1px solid var(--line); background: white; }
.calendar-time-axis time { position: absolute; right: 12px; height: 16px; color: var(--muted); font-size: 11px; line-height: 16px; transform: translateY(-50%); }
.calendar-time-axis time:first-child { transform: none; }
.calendar-time-axis time:last-child { transform: translateY(-100%); }
.calendar-appointment-columns { position: relative; display: flex; min-width: 0; }
.calendar-appointment-column { position: relative; min-width: var(--calendar-column-width); height: 100%; flex: 1 0 var(--calendar-column-width); border-left: 1px solid var(--line); background-color: #f7f5f2; background-image: repeating-linear-gradient(135deg, transparent 0, transparent 6px, rgba(125, 117, 108, .055) 6px, rgba(125, 117, 108, .055) 8px), repeating-linear-gradient(to bottom, transparent 0, transparent 25px, rgba(109, 103, 96, .09) 25px, rgba(109, 103, 96, .09) 25.5px), repeating-linear-gradient(to bottom, transparent 0, transparent 101px, rgba(91, 86, 80, .16) 101px, rgba(91, 86, 80, .16) 102px); }
.calendar-work-band, .calendar-break-band, .calendar-unavailable-band { position: absolute; top: var(--schedule-band-top); right: 4px; left: 4px; height: var(--schedule-band-height); overflow: hidden; border-radius: 6px; font-size: 10px; line-height: 1.2; }
.calendar-work-band { z-index: 1; border: 1px solid rgba(169, 162, 153, .54); background: rgba(255, 255, 255, .94); }
.calendar-work-band.day-override { border-color: rgba(197, 166, 110, .72); background: rgba(255, 253, 247, .95); }
.calendar-break-band { z-index: 2; display: grid; min-height: 16px; place-items: center; padding: 2px 5px; border: 1px dashed #c99549; color: #6d4a17; background: repeating-linear-gradient(135deg, rgba(255, 244, 215, .96) 0, rgba(255, 244, 215, .96) 7px, rgba(238, 216, 169, .86) 7px, rgba(238, 216, 169, .86) 13px); pointer-events: none; }
.calendar-unavailable-band { z-index: 2; display: grid; min-height: 16px; place-items: center; padding: 2px 5px; border: 1px dashed #9c6262; color: #702f2f; background: repeating-linear-gradient(135deg, rgba(249, 226, 226, .96) 0, rgba(249, 226, 226, .96) 7px, rgba(229, 197, 197, .88) 7px, rgba(229, 197, 197, .88) 13px); pointer-events: none; }
.calendar-break-band span, .calendar-unavailable-band span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-current-time { position: absolute; right: 0; left: 0; z-index: 6; height: 2px; background: #c53c3c; pointer-events: none; }
.calendar-current-time::before { position: absolute; top: -4px; left: -5px; width: 10px; height: 10px; border-radius: 50%; background: #c53c3c; content: ""; }
.calendar-appointment-event { position: absolute; top: var(--event-top); left: calc(var(--event-left) + 3px); z-index: 4; display: grid; width: calc(var(--event-width) - 6px); height: var(--event-height); min-width: 0; align-content: start; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto minmax(0, 1fr); gap: 2px 7px; overflow: hidden; padding: 5px 7px 5px 9px; border: 1px solid var(--employee-border); border-left: 4px solid var(--employee-accent); border-radius: 8px; color: var(--employee-ink); background: var(--employee-surface); box-shadow: 0 2px 5px rgba(40, 35, 31, .08); font-size: 11px; line-height: 1.12; text-decoration: none; }
.calendar-appointment-event:hover, .calendar-appointment-event:focus-visible { z-index: 7; filter: saturate(1.12) brightness(.98); box-shadow: 0 6px 14px rgba(40, 35, 31, .17); }
.calendar-event-time { overflow: hidden; min-width: 0; grid-column: 1; grid-row: 1; font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-name { display: -webkit-box; overflow: hidden; min-width: 0; grid-column: 1 / -1; grid-row: 2; margin: 0; font-size: 12px; font-weight: 650; line-height: 1.22; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.calendar-event-meta { display: flex; min-width: 0; align-items: center; justify-content: flex-end; grid-column: 2; grid-row: 1; gap: 5px; white-space: nowrap; }
.calendar-event-price { color: var(--employee-ink); font-size: 9px; font-weight: 750; opacity: .8; }
.calendar-event-status { margin: 0; padding: 2px 6px; border-radius: 999px; color: #5c4929; background: rgba(255, 255, 255, .82); font-size: 9px; font-weight: 750; line-height: 12px; }
.calendar-appointment-event.is-compact { padding-block: 4px; }
.calendar-appointment-event.is-compact .calendar-event-meta, .calendar-appointment-event.is-narrow .calendar-event-meta { display: none; }
.calendar-appointment-event.is-micro { display: flex; align-items: center; gap: 5px; padding-block: 2px; }
.calendar-appointment-event.is-micro .calendar-event-time { flex: 0 0 auto; font-size: 10px; }
.calendar-appointment-event.is-micro .calendar-event-name { display: block; flex: 1 1 auto; overflow: hidden; font-size: 11px; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.calendar-appointment-event.is-micro .calendar-event-name::before { margin-right: 5px; color: var(--employee-accent); content: "·"; }
.calendar-appointment-event.is-micro .calendar-event-meta { display: none; }
.calendar-appointment-event.status-pending_reception { box-shadow: inset 0 0 0 1px #d6a94d, 0 2px 5px rgba(40, 35, 31, .08); }
.calendar-appointment-event.status-confirmed .calendar-event-status { color: #245c3e; background: #dcf2e5; }
.calendar-appointment-event.status-completed .calendar-event-status { color: #405a4c; background: #e2ebe5; }
.calendar-appointment-event.status-cancelled .calendar-event-status, .calendar-appointment-event.status-no_show .calendar-event-status { color: #812f2f; background: #f8dddd; }
.calendar-appointment-event.status-cancelled, .calendar-appointment-event.status-no_show { border-style: dashed; opacity: .72; }
.calendar-appointment-event.status-completed { opacity: .82; }
.calendar-appointment-event.sequence-start { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; }
.calendar-appointment-event.sequence-middle { border-top-color: var(--employee-accent); border-radius: 3px; }
.calendar-appointment-event.sequence-end { border-top-color: var(--employee-accent); border-top-left-radius: 3px; border-top-right-radius: 3px; }
.calendar-event-sequence-badge { display: inline-flex; min-width: 25px; height: 17px; align-items: center; justify-content: center; margin-right: 5px; padding: 0 4px; border-radius: 8px; color: #fff; background: var(--employee-accent); font-size: 9px; font-weight: 800; vertical-align: 1px; }
.calendar-appointment-event.conflict { outline: 3px solid rgba(187, 44, 44, .75); outline-offset: -2px; }
.calendar-appointment-event.conflict .calendar-event-status { color: white; background: #a53b3b; }
.calendar-appointment-event.outside-schedule:not(.conflict) { outline: 3px solid rgba(207, 132, 36, .82); outline-offset: -2px; }
.calendar-appointment-event.outside-schedule:not(.conflict) .calendar-event-status { color: #71430b; background: #fff0cf; }
.calendar-legend { display: flex; gap: 12px 22px; align-items: center; flex-wrap: wrap; padding: 13px 16px; border-top: 1px solid var(--line); background: #faf9f7; font-size: 12px; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.calendar-legend i { width: 14px; height: 14px; border-radius: 4px; background: #e7eee7; }
.calendar-legend .legend-pending { box-shadow: inset 0 0 0 2px #d6a94d; }
.calendar-legend .legend-cancelled { border: 1px dashed #875c5c; opacity: .55; }
.calendar-legend .legend-conflict { border: 3px solid rgba(187, 44, 44, .75); }
.calendar-legend .legend-working-schedule { border: 1px solid #aaa299; background: white; }
.calendar-legend .legend-schedule-break { border: 1px dashed #c99549; background: #fff1cd; }
.calendar-legend .legend-schedule-unavailable { border: 1px dashed #9c6262; background: #f9e2e2; }
.calendar-legend .legend-outside-schedule { border: 3px solid rgba(207, 132, 36, .82); background: #fff0cf; }
body.calendar-appointment-drawer-open, body.schedule-editor-drawer-open { overflow: hidden; }
.calendar-appointment-drawer { position: fixed; inset: 0 0 0 auto; width: clamp(380px, 33vw, 460px); max-width: calc(100vw - 32px); height: 100dvh; max-height: none; margin: 0 0 0 auto; padding: 0; border: 0; border-left: 1px solid var(--line); border-radius: 18px 0 0 18px; opacity: 0; color: var(--ink); background: white; box-shadow: -18px 0 48px rgba(51, 52, 46, .16); font: inherit; transform: translateX(100%); transition: opacity .2s ease, transform .22s ease; }
.calendar-appointment-drawer[open] { display: block; }
.calendar-appointment-drawer.is-open { opacity: 1; transform: translateX(0); }
.calendar-appointment-drawer::backdrop { background: rgba(24, 22, 19, 0); transition: background-color .2s ease; }
.calendar-appointment-drawer.is-open::backdrop { background: rgba(24, 22, 19, .3); }
.calendar-appointment-drawer-shell { position: relative; height: 100%; min-height: 0; }
.calendar-appointment-drawer-close { position: absolute; top: 18px; right: 18px; z-index: 2; display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: rgba(255, 255, 255, .96); font: 300 27px/1 "Jost", sans-serif; cursor: pointer; }
.calendar-appointment-drawer-close:hover, .calendar-appointment-drawer-close:focus-visible { border-color: var(--accent); color: white; background: var(--accent); }
.calendar-appointment-drawer-body { height: 100%; overflow-y: auto; overscroll-behavior: contain; }
.calendar-appointment-drawer-content { display: flex; min-height: 100%; flex-direction: column; padding: 28px 28px 24px; }
.calendar-appointment-drawer-header { display: flex; min-height: 72px; align-items: flex-start; justify-content: space-between; gap: 14px; padding-right: 48px; border-bottom: 3px solid var(--employee-accent, var(--accent)); }
.calendar-appointment-drawer-header > div { min-width: 0; }
.calendar-appointment-drawer-header h2 { margin: 4px 0 18px; font: 500 27px/1.15 "Jost", sans-serif; }
.calendar-appointment-drawer-header .status { flex: 0 0 auto; margin-top: 2px; }
.calendar-appointment-drawer-source { color: var(--employee-ink, var(--accent-dark)) !important; }
.calendar-appointment-drawer-term { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; margin: 22px 0 20px; padding: 18px; border: 1px solid var(--employee-border, var(--line)); border-radius: 13px; background: var(--employee-surface, #faf8f5); }
.calendar-appointment-drawer-term > span { grid-column: 1 / -1; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.calendar-appointment-drawer-term strong { font: 500 22px/1.2 "Jost", sans-serif; }
.calendar-appointment-drawer-term time { align-self: end; color: var(--employee-ink, var(--accent-dark)); font-size: 15px; font-weight: 750; }
.calendar-appointment-reschedule { overflow: hidden; margin: -6px 0 20px; border: 1px solid #d8c8ae; border-radius: 13px; background: #fffdf9; }
.calendar-appointment-reschedule > summary { display: grid; min-height: 68px; align-items: center; grid-template-columns: 38px minmax(0, 1fr) 22px; gap: 11px; padding: 13px 14px; border-radius: 12px; color: var(--ink); cursor: pointer; list-style: none; }
.calendar-appointment-reschedule > summary::-webkit-details-marker { display: none; }
.calendar-appointment-reschedule > summary:hover, .calendar-appointment-reschedule > summary:focus-visible { background: #faf5ed; }
.calendar-appointment-reschedule[open] > summary { border-radius: 12px 12px 0 0; }
.calendar-appointment-reschedule-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: white; background: var(--accent); font-size: 20px; font-weight: 700; }
.calendar-appointment-reschedule summary strong, .calendar-appointment-reschedule summary small { display: block; }
.calendar-appointment-reschedule summary strong { font-size: 14px; }
.calendar-appointment-reschedule summary small { margin-top: 2px; color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.35; }
.calendar-appointment-reschedule-chevron { display: grid; width: 22px; height: 22px; align-self: center; justify-self: center; place-items: center; color: var(--accent-dark); transform-origin: 50% 50%; transition: transform .16s ease; }
.calendar-appointment-reschedule-chevron svg { display: block; width: 18px; height: 18px; }
.calendar-appointment-reschedule-chevron path { fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.calendar-appointment-reschedule[open] .calendar-appointment-reschedule-chevron { transform: rotate(180deg); }
.calendar-appointment-reschedule-form { display: grid; gap: 9px; padding: 0 14px 15px; border-top: 1px solid #e8dece; }
.calendar-appointment-reschedule-form label { margin-top: 14px; color: var(--muted); font-size: 12px; font-weight: 750; }
.calendar-appointment-reschedule-form input[type="datetime-local"], .calendar-appointment-reschedule-form input[type="number"] { border-radius: 10px; }
.calendar-appointment-reschedule-help, .calendar-appointment-reschedule-warning, .calendar-appointment-reschedule-feedback { margin: 0; font-size: 11px; line-height: 1.4; }
.calendar-appointment-reschedule-help { color: var(--muted); }
.calendar-appointment-reschedule-warning { padding: 9px 10px; border-radius: 8px; color: #704711; background: #fff2d9; }
.calendar-appointment-reschedule-feedback { padding: 9px 10px; border: 1px solid #dfa2a2; border-radius: 8px; color: #702d2d; background: #fff0f0; }
.calendar-appointment-reschedule-feedback[hidden] { display: none; }
.calendar-appointment-reschedule-form .button { width: 100%; margin-top: 3px; }
.calendar-appointment-reschedule-form.is-loading { opacity: .7; }
.calendar-appointment-duration { border-color: var(--employee-border, #d8c8ae); background: var(--employee-surface, #fffdf9); }
.calendar-appointment-duration .calendar-appointment-reschedule-icon { background: var(--employee-accent, var(--accent)); }
.calendar-appointment-drawer-alerts { display: grid; gap: 8px; margin-bottom: 18px; }
.calendar-appointment-drawer-alert { display: grid; gap: 1px; padding: 11px 13px; border: 1px solid; border-radius: 10px; font-size: 12px; }
.calendar-appointment-drawer-alert.conflict { border-color: #dfa2a2; color: #702d2d; background: #fff0f0; }
.calendar-appointment-drawer-alert.outside-schedule { border-color: #e4c48f; color: #704711; background: #fff6e4; }
.calendar-appointment-drawer-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line); }
.calendar-appointment-drawer-details > div { min-width: 0; padding: 15px 0; border-bottom: 1px solid var(--line); }
.calendar-appointment-drawer-details > div:nth-child(odd) { padding-right: 16px; }
.calendar-appointment-drawer-details > div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
.calendar-appointment-drawer-details dt { margin-bottom: 3px; font-size: 11px; font-weight: 700; }
.calendar-appointment-drawer-details dd { overflow-wrap: anywhere; text-align: left; font-size: 14px; }
.calendar-appointment-drawer-details dd a { color: var(--employee-ink, var(--accent-dark)); }
.calendar-appointment-drawer-details dd small { color: var(--muted); font-size: 11px; }
.calendar-appointment-drawer-service { grid-column: 1 / -1; padding-inline: 0 !important; border-left: 0 !important; }
.calendar-appointment-drawer-service + div { padding-left: 0 !important; border-left: 0 !important; }
.calendar-appointment-drawer-service dd { display: grid; gap: 2px; }
.calendar-appointment-drawer-service dd span { color: var(--muted); font-size: 12px; font-weight: 500; }
.calendar-appointment-drawer-sequence-current { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.calendar-appointment-drawer-term small { grid-column: 1 / -1; margin-top: 5px; color: var(--muted); font-size: 11px; }
.calendar-appointment-drawer-sequence dd { display: block; }
.calendar-appointment-drawer-sequence ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.calendar-appointment-drawer-sequence li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 7px; border-bottom: 1px solid var(--line); border-radius: 7px; }
.calendar-appointment-drawer-sequence li:last-child { border-bottom: 0; }
.calendar-appointment-drawer-sequence li.is-current { background: var(--employee-surface); }
.calendar-appointment-drawer-sequence li > span:first-child { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #fff; background: var(--employee-accent); font-size: 10px; font-weight: 800; }
.calendar-appointment-drawer-sequence li > span:nth-child(2) { display: grid; min-width: 0; color: var(--ink); }
.calendar-appointment-drawer-sequence li small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.calendar-appointment-drawer-sequence li time { color: var(--ink); font-size: 11px; font-weight: 750; }
.calendar-appointment-drawer-footer { position: sticky; bottom: -24px; margin: auto -28px -24px; padding: 18px 28px calc(24px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); }
.calendar-appointment-drawer-link { width: 100%; justify-content: space-between; }
.calendar-action-notice { position: fixed; z-index: 100; top: 20px; right: 20px; max-width: min(430px, calc(100vw - 32px)); padding: 14px 18px 14px 44px; border: 1px solid #a8c6b4; border-radius: 13px; opacity: 0; color: #245c3e; background: #f4fbf6; box-shadow: 0 16px 40px rgba(36, 92, 62, .16); font-size: 14px; font-weight: 650; transform: translateY(-10px); transition: opacity .18s ease, transform .18s ease; }
.calendar-action-notice::before { position: absolute; top: 50%; left: 16px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: white; background: var(--success); content: "✓"; font-size: 12px; transform: translateY(-50%); }
.calendar-action-notice.is-visible { opacity: 1; transform: translateY(0); }
.panel-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 20px; }
.sequence-heading-note { max-width: 650px; margin: 7px 0 0; color: var(--muted); }
.reception-sequence-list { display: grid; gap: 0; margin: 2px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.reception-sequence-list li { display: grid; grid-template-columns: 32px 95px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.reception-sequence-position { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: var(--accent); font-size: 12px; font-weight: 800; }
.reception-sequence-time { font-weight: 750; white-space: nowrap; }
.reception-sequence-service { display: grid; min-width: 0; }
.reception-sequence-service small { color: var(--muted); }
.reception-sequence-price { white-space: nowrap; }
.sequence-audit-position { color: var(--muted); font-size: 12px; font-weight: 500; }
.dashboard-sequence-summary { display: grid; gap: 2px; margin: 5px 0 0; padding-left: 20px; color: var(--muted); font-size: 12px; }
.dashboard-sequence-summary span { color: var(--muted); }
.appointment-time small { display: block; color: var(--muted); font-size: 11px; }
.action-card form:first-of-type { margin-top: 0; }
.separated-form { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.reschedule-form h3 { margin: 0; font: 500 21px/1.2 "Jost", sans-serif; }
.form-hint, .form-warning { margin: 0; font-size: 13px; line-height: 1.45; }
.form-hint { color: var(--muted); }
.form-warning { padding: 10px 12px; border: 1px solid #e5d2a8; border-radius: 9px; color: #6c511c; background: #fff8e8; }
.danger-button { border-color: var(--danger); background: var(--danger); }
.audit-row { display: flex; justify-content: space-between; gap: 20px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.audit-row:last-child { border-bottom: 0; }
.audit-row time { color: var(--muted); }
.admin-create-card { margin-bottom: 28px; }
.admin-create-card > summary, .admin-add-row > summary { cursor: pointer; font-weight: 750; }
.admin-create-card[open] > summary { margin-bottom: 22px; }
.admin-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: end; }
.admin-form-grid label:not(.checkbox-row), .admin-inline-entity label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.admin-full { grid-column: 1 / -1; }
.admin-checkbox { align-self: center; padding: 11px 0; }
.admin-stack { display: grid; gap: 22px; }
.admin-entity-card.archived, .admin-inline-entity.archived { background: #f4f1ed; opacity: .78; }
.admin-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.admin-card-heading h2 { margin-bottom: 24px; }
.admin-employee-heading { display: flex; align-items: center; gap: 15px; }
.admin-employee-heading h2 { margin-bottom: 0; }
.admin-employee-photo { display: grid; width: 68px; height: 68px; flex: 0 0 68px; place-items: center; border-radius: 50%; object-fit: cover; }
.admin-employee-photo-placeholder { color: #123229; background: #e9e4df; font-weight: 700; }
.admin-photo-field { grid-column: span 2; }
input[type="file"] { width: 100%; padding: 8px; border: 1px dashed #bbb3a9; background: white; font: inherit; }
input[type="file"]::file-selector-button { margin-right: 10px; padding: 8px 12px; border: 0; border-radius: 8px; color: white; background: var(--accent); font: inherit; cursor: pointer; }
.admin-subsection { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.admin-subsection h3 { margin: 0 0 14px; font: 400 21px/1.2 "Jost", sans-serif; }
.admin-inline-entity { display: grid; grid-template-columns: minmax(170px, 1.6fr) repeat(5, minmax(90px, .7fr)) auto auto; gap: 10px; align-items: end; padding: 14px 0; border-bottom: 1px solid var(--line); }
.admin-inline-entity:last-of-type { border-bottom: 0; }
.admin-add-row { margin-top: 18px; padding: 16px; border: 1px dashed #c8bfb5; border-radius: 10px; }
.admin-add-row[open] > summary { margin-bottom: 14px; }
.admin-assignment-name { display: grid; align-self: center; }
.admin-assignment-name span { color: var(--muted); }
.admin-delete-section { display: grid; gap: 14px; }
.admin-delete-section h3, .admin-delete-section p { margin: 0; }
.admin-delete-form { max-width: 620px; }
.admin-delete-form .button { justify-self: start; }
.equipment-page-title .muted { max-width: 760px; margin-bottom: 0; }
.equipment-admin-layout { display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); gap: 22px; align-items: start; }
.equipment-browser { position: sticky; top: 20px; padding: 0; overflow: hidden; }
.equipment-browser-heading { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.equipment-browser-heading h2 { margin: 0; font: 500 21px/1.2 "Jost", sans-serif; }
.equipment-browser-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.equipment-add-button { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 50%; color: white; background: #292722; font-size: 29px; font-weight: 300; line-height: 1; text-decoration: none; }
.equipment-add-button:hover, .equipment-add-button:focus-visible { color: white; background: var(--accent-dark); }
.equipment-list-search { display: block; padding: 16px 16px 12px; }
.equipment-search-field { position: relative; display: block; }
.equipment-search-field svg { position: absolute; z-index: 1; top: 50%; left: 14px; width: 21px; height: 21px; transform: translateY(-50%); fill: none; stroke: #777872; stroke-width: 1.8; stroke-linecap: round; pointer-events: none; }
.equipment-search-field input[type="search"] { min-height: 50px; padding-left: 45px; border-color: #d6d2cd; border-radius: 12px; }
.equipment-list { max-height: min(650px, calc(100vh - 270px)); padding: 0 12px 14px; overflow-y: auto; }
.equipment-list-item { position: relative; display: grid; min-height: 72px; grid-template-columns: 20px minmax(0, 1fr) 10px; gap: 12px; align-items: center; padding: 12px 10px; border-bottom: 1px solid #e8e4df; color: var(--ink); text-decoration: none; }
.equipment-list-item[hidden], .equipment-service-row[hidden] { display: none; }
.equipment-list-item:hover, .equipment-list-item:focus-visible { color: var(--ink); background: #faf8f5; }
.equipment-list-item.is-selected { margin-inline: -12px; padding-inline: 22px; border-bottom-color: transparent; background: #eeeae5; box-shadow: inset 3px 0 0 var(--accent); }
.equipment-list-item.is-archived { color: #807f79; }
.equipment-drag-mark { display: grid; grid-template-columns: repeat(2, 3px); gap: 3px; justify-content: center; }
.equipment-drag-mark i { width: 3px; height: 3px; border-radius: 50%; background: #aaa59f; }
.equipment-list-copy { min-width: 0; }
.equipment-list-copy strong, .equipment-list-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.equipment-list-copy strong { font-size: 16px; font-weight: 600; }
.equipment-list-copy small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.equipment-status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--success); }
.equipment-list-item.is-archived .equipment-status-dot { background: #a6a19b; }
.equipment-browser-empty { padding: 28px 22px; text-align: center; }
.equipment-browser-empty p { margin: 0 0 4px; color: var(--ink); font-weight: 650; }
.equipment-browser-empty span { color: var(--muted); font-size: 13px; }
.equipment-no-results { margin: 0; padding: 22px; text-align: center; }
.equipment-workspace { min-width: 0; }
.equipment-editor { padding: 0; overflow: hidden; }
.equipment-editor[hidden] { display: none; }
.equipment-editor-heading { display: flex; min-height: 91px; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 28px; border-bottom: 1px solid var(--line); }
.equipment-editor-heading h2 { margin: 3px 0 0; font: 500 27px/1.2 "Jost", sans-serif; }
.equipment-editor-form { display: grid; }
.equipment-settings-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(110px, .45fr); gap: 16px; align-items: end; padding: 24px 28px; background: #faf9f7; }
.equipment-settings-grid > label:not(.checkbox-row) { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.equipment-active-field { align-self: center; }
.equipment-description-field { grid-column: 1 / -1; }
.equipment-assignment-section { padding: 28px; border-top: 1px solid var(--line); }
.equipment-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.equipment-section-heading h3 { margin: 0; font: 500 23px/1.2 "Jost", sans-serif; }
.equipment-section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.equipment-assignment-summary { flex: 0 0 auto; color: var(--accent-dark); font-size: 13px; font-weight: 700; }
.equipment-service-search { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.equipment-service-list { max-height: 570px; margin-top: 18px; border: 1px solid var(--line); border-radius: 12px; overflow-y: auto; }
.equipment-service-row { position: relative; display: grid; min-height: 78px; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #e7e3de; background: white; cursor: pointer; }
.equipment-service-row:last-child { border-bottom: 0; }
.equipment-service-row:hover { background: #faf8f5; }
.equipment-service-row:has(input:checked) { background: #fbf7ef; box-shadow: inset 3px 0 0 var(--accent); }
.equipment-service-row > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.equipment-service-row:has(input:focus-visible) { outline: 3px solid rgba(188, 155, 101, .28); outline-offset: -3px; }
.equipment-service-check { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #aaa49d; border-radius: 5px; color: transparent; background: white; font-size: 14px; font-weight: 750; }
.equipment-service-row input:checked + .equipment-service-check { border-color: var(--accent-dark); color: white; background: var(--accent-dark); }
.equipment-service-copy { display: grid; min-width: 0; }
.equipment-service-copy strong { overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.equipment-service-copy span { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.equipment-service-copy em { font-style: normal; }
.equipment-service-meta { display: flex; align-items: baseline; gap: 16px; white-space: nowrap; }
.equipment-service-meta > span { color: #92918c; font-size: 13px; }
.equipment-service-meta > strong { min-width: 88px; text-align: right; }
.equipment-service-row.is-disabled { opacity: .62; }
.equipment-save-row { position: sticky; z-index: 2; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 28px; border-top: 1px solid var(--line); background: rgba(255, 255, 255, .97); box-shadow: 0 -8px 24px rgba(51, 52, 46, .05); }
.equipment-save-row .button { min-width: 180px; }
.equipment-delete-section { margin: 0 28px 28px; border: 1px solid #e2b7b7; border-radius: 12px; background: #fffafa; }
.equipment-delete-section > summary { padding: 15px 18px; color: var(--danger); font-weight: 700; cursor: pointer; }
.equipment-delete-content { display: grid; gap: 16px; padding: 0 18px 18px; border-top: 1px solid #efd4d4; }
.equipment-delete-content > p { margin: 16px 0 0; color: #733; font-size: 14px; }
.equipment-delete-form { max-width: 620px; }
.equipment-delete-form .button { justify-self: start; }
.service-settings-grid { grid-template-columns: minmax(190px, 1.4fr) minmax(190px, 1fr) minmax(100px, .38fr); }
.service-active-field, .service-description-field { grid-column: 1 / -1; }
.service-details-save-row { position: static; }
.service-variant-section { border-top: 8px solid #f3f1ed; }
.service-variant-search { margin-bottom: 16px; }
.service-variant-list { display: grid; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.service-variant-editor { background: white; }
.service-variant-editor + .service-variant-editor { border-top: 1px solid var(--line); }
.service-variant-editor.is-archived { background: #f4f1ed; opacity: .8; }
.service-variant-editor > summary { position: relative; display: grid; min-height: 74px; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 14px 46px 14px 18px; list-style: none; cursor: pointer; }
.service-variant-editor > summary::-webkit-details-marker { display: none; }
.service-variant-editor > summary::after { position: absolute; right: 19px; color: var(--muted); content: "+"; font-size: 24px; font-weight: 300; }
.service-variant-editor[open] > summary::after { content: "−"; }
.service-variant-editor > summary:hover { background: #faf8f5; }
.service-variant-editor[open] > summary { border-bottom: 1px solid var(--line); background: #faf8f5; }
.service-variant-summary-copy { display: grid; min-width: 0; }
.service-variant-summary-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.service-variant-summary-copy small { margin-top: 3px; color: var(--success); font-size: 12px; font-weight: 700; }
.service-variant-editor.is-archived .service-variant-summary-copy small { color: var(--muted); }
.service-variant-summary-meta { display: flex; align-items: baseline; gap: 18px; padding-right: 6px; white-space: nowrap; }
.service-variant-summary-meta span { color: var(--muted); font-size: 13px; }
.service-variant-summary-meta strong { min-width: 90px; text-align: right; }
.service-variant-form { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 14px; align-items: end; padding: 20px; background: #fff; }
.service-variant-form label:not(.checkbox-row) { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.service-variant-name-field { grid-column: span 2; }
.service-variant-active-field { align-self: center; }
.service-variant-save-row { display: flex; justify-content: flex-end; grid-column: span 2; }
.service-variant-save-row .button { min-width: 150px; }
.service-variant-empty { margin: 0; padding: 18px; border: 1px dashed #c8bfb5; border-radius: 10px; text-align: center; }
.service-variant-add { margin-bottom: 0; background: #faf9f7; }
.service-variant-add > summary { color: var(--accent-dark); }
.service-variant-add .service-variant-form { margin: 0 -16px -16px; border-top: 1px dashed #c8bfb5; border-radius: 0 0 10px 10px; }
.employee-list-item { grid-template-columns: 42px minmax(0, 1fr) 10px; }
.employee-list-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; object-fit: cover; }
.employee-list-avatar-placeholder { color: #123229; background: #e9e4df; font-size: 12px; font-weight: 750; }
.employee-list-item.is-offline .employee-status-dot { background: #c89a45; }
.employee-settings-grid { grid-template-columns: minmax(130px, .7fr) minmax(150px, .85fr) minmax(190px, 1.2fr); }
.employee-booksy-field { grid-column: span 2; }
.employee-photo-field { grid-column: 1 / -1; }
.employee-availability-fields { display: flex; grid-column: 1 / -1; gap: 14px 28px; align-items: center; flex-wrap: wrap; }
.employee-editor-heading .admin-employee-heading { min-width: 0; }
.employee-editor-heading .admin-employee-heading > div { min-width: 0; }
.employee-editor-heading h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.employee-assignment-section { border-top: 8px solid #f3f1ed; }
.employee-assignment-form { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
.employee-assignment-form .service-variant-active-field { align-self: center; }
.employee-assignment-form .service-variant-save-row { grid-column: auto; align-self: center; }
.employee-assignment-add-form { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
.employee-assignment-service-field { grid-column: 1 / -1; }
.employee-assignment-add-form .service-variant-save-row { grid-column: auto; align-self: end; }
.employee-delete-section .equipment-delete-content { padding-top: 18px; }
.employee-delete-section .equipment-delete-content > p { margin-top: 0; }
.admin-upcoming-appointments { display: grid; gap: 8px; }
.admin-upcoming-appointments a { display: grid; gap: 2px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 9px; color: inherit; background: #fff; text-decoration: none; }
.admin-upcoming-appointments a:hover { border-color: var(--accent); }
.admin-upcoming-appointments span { color: var(--muted); font-size: 13px; }
.schedule-business-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.schedule-card h2 { margin-bottom: 8px; }
.schedule-interval-list { display: grid; margin: 12px 0 20px; }
.schedule-interval-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.schedule-interval-row.archived, .schedule-exception-table tr.archived { opacity: .52; }
.schedule-interval-row form { margin: 0; }
.schedule-add-form { display: grid; grid-template-columns: minmax(150px, 1.5fr) 1fr 1fr auto; gap: 10px; align-items: end; }
.schedule-add-form label, .exception-form-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.schedule-employee-card > summary { cursor: pointer; }
.schedule-employee-card[open] > summary { margin-bottom: 18px; }
.schedule-employee-intervals { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.schedule-day-picker { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, .55fr) auto; gap: 12px; align-items: end; margin: 18px 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #faf9f7; }
.schedule-day-picker label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.schedule-employee-card { scroll-margin-top: 18px; }
.schedule-employee-card > summary { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 16px; }
.schedule-employee-card > summary::marker { color: var(--accent); }
.schedule-employee-card > [data-schedule-day-row] { margin-top: 0; padding: 20px 0; }
.schedule-employee-card > [data-schedule-day-row] + [data-schedule-day-row] { margin-top: 0; }
[data-schedule-day-row] > .admin-card-heading { align-items: center; }
[data-schedule-day-row] > .admin-card-heading h2 { margin: 0; font-size: 23px; }
[data-schedule-editor] > label:not(.checkbox-row) { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
[data-schedule-editor] > .admin-subsection { margin-top: 4px; padding: 15px; border: 1px solid #e6e0d9; border-radius: 12px; background: #faf9f7; }
[data-schedule-editor] > .admin-subsection h3 { margin-bottom: 3px; font-size: 18px; }
[data-schedule-editor] .schedule-interval-list { gap: 8px; margin: 12px 0 0; }
[data-schedule-editor] [data-schedule-break-row] { grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) auto; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: white; }
[data-schedule-editor] :disabled { cursor: not-allowed; opacity: .58; }
#dzienny-grafik { scroll-margin-top: 18px; }
.exception-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.exception-reason { grid-column: span 2; }
.schedule-exception-table { margin-top: 18px; }
.schedule-admin-enhanced [data-schedule-admin-page].is-loading { opacity: .62; pointer-events: none; }
.schedule-feedback:empty { display: none; }
.schedule-feedback .alert { margin-bottom: 18px; }
.schedule-page-title { margin-bottom: 18px; }
.schedule-page-title .muted { max-width: 850px; }
.schedule-view-tabs { margin-bottom: 18px; }
.schedule-period-controls { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 22px; padding: 16px 20px; }
.schedule-day-navigation { display: grid; min-width: 450px; grid-template-columns: 44px minmax(240px, 1fr) 44px; gap: 12px; align-items: center; }
.schedule-day-navigation > div { min-width: 0; text-align: center; }
.schedule-day-navigation span, .schedule-day-navigation strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-day-navigation span { color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.schedule-day-navigation strong { margin-top: 2px; font: 500 19px/1.25 "Jost", sans-serif; }
.schedule-month-jump { display: flex; align-items: end; gap: 12px; }
.schedule-month-jump label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.schedule-month-jump label, .schedule-month-jump input { min-width: 0; }
.schedule-month-jump input[type="date"], .schedule-month-jump input[type="month"] { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #cfc3b4; border-radius: 12px; color: var(--ink); background: #fff; font: inherit; font-weight: 650; }
.schedule-month-jump input[type="date"]:focus-visible, .schedule-month-jump input[type="month"]:focus-visible { border-color: var(--accent); }
.schedule-month-jump .schedule-month-submit { min-height: 48px; padding-inline: 18px; white-space: nowrap; }
.schedule-list-layout { grid-template-columns: minmax(290px, 340px) minmax(0, 1fr); }
.schedule-employee-browser { top: 18px; }
.schedule-employee-list { max-height: min(680px, calc(100vh - 315px)); }
.schedule-employee-item .equipment-status-dot { align-self: center; }
.schedule-date-editor { scroll-margin-top: 18px; }
.schedule-editor-heading { align-items: flex-start; }
.schedule-editor-heading h2 { margin-bottom: 2px; }
.schedule-editor-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.schedule-plan-source { max-width: 620px; margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.schedule-hours-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--line); background: #f6f3ef; }
.schedule-hours-summary > div { position: relative; min-width: 0; padding: 18px 24px; }
.schedule-hours-summary > div + div { border-left: 1px solid var(--line); }
.schedule-hours-summary dt { color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.schedule-hours-summary dd { margin: 3px 0 0; font: 500 25px/1.1 "Jost", sans-serif; text-align: left; }
.schedule-hours-summary small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-date-form { padding: 26px 28px 0; }
.schedule-date-form > label:not(.checkbox-row) { align-self: end; }
.schedule-working-toggle { min-height: 48px; }
.schedule-break-section { margin-inline: -28px; padding: 24px 28px; border-top: 8px solid #f3f1ed; background: #fff; }
.schedule-editor-save-row { grid-column: 1 / -1; margin: 0 -28px; }
.schedule-calendar-layout { display: grid; grid-template-columns: minmax(280px, 320px) minmax(0, 1fr); gap: 22px; align-items: start; }
.schedule-month-card { position: sticky; top: 18px; padding: 18px; }
.schedule-month-heading { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 8px; align-items: center; margin-bottom: 15px; }
.schedule-month-heading h2 { margin: 0; font: 500 20px/1.2 "Jost", sans-serif; text-align: center; }
.schedule-month-heading a { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); text-decoration: none; }
.schedule-month-heading a:hover { border-color: var(--accent); background: #faf8f5; }
.schedule-month-weekdays, .schedule-month-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.schedule-month-weekdays { margin-bottom: 6px; }
.schedule-month-weekdays span { color: var(--muted); font-size: 10px; font-weight: 750; text-align: center; text-transform: uppercase; }
.schedule-month-day { display: grid; min-height: 54px; place-content: center; border: 1px solid transparent; border-radius: 9px; color: var(--ink); background: #f8f6f3; text-align: center; text-decoration: none; }
.schedule-month-day:hover, .schedule-month-day:focus-visible { border-color: var(--accent); color: var(--ink); background: #fff; }
.schedule-month-day.is-weekend { background: #f1eeea; }
.schedule-month-day.is-today { box-shadow: inset 0 0 0 1px var(--accent); }
.schedule-month-day.is-selected { border-color: #292722; color: white; background: #292722; box-shadow: none; }
.schedule-month-day span { font-weight: 750; line-height: 1; }
.schedule-month-day small { margin-top: 5px; font-size: 9px; line-height: 1; white-space: nowrap; }
.schedule-month-spacer { min-height: 54px; }
.schedule-month-help { margin: 14px 2px 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.schedule-timeline-card { min-width: 0; padding: 0; overflow: hidden; }
.schedule-timeline-heading { display: flex; min-height: 92px; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.schedule-timeline-heading h2 { margin: 3px 0 0; font: 500 24px/1.2 "Jost", sans-serif; }
.schedule-timeline-scroll { width: 100%; overflow-x: auto; }
.schedule-timeline { display: grid; min-width: 1040px; grid-template-columns: 270px minmax(770px, 1fr); }
.schedule-timeline-axis-label, .schedule-timeline-axis { position: sticky; z-index: 4; top: 0; height: 48px; border-bottom: 1px solid var(--line); background: #fff; }
.schedule-timeline-axis-label { left: 0; display: flex; align-items: center; padding: 0 20px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.schedule-timeline-axis { position: sticky; min-width: 770px; }
.schedule-timeline-axis time { position: absolute; bottom: 10px; transform: translateX(-50%); color: var(--muted); font-size: 11px; }
.schedule-timeline-axis time:first-child { transform: none; }
.schedule-timeline-axis time:last-child { transform: translateX(-100%); }
.schedule-timeline-person { position: sticky; z-index: 2; left: 0; display: grid; min-height: 104px; align-content: center; padding: 15px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.schedule-timeline-person.is-archived { opacity: .58; }
.schedule-timeline-person > strong { overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-timeline-person > span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.schedule-timeline-person dl { display: flex; gap: 9px; margin: 9px 0 0; }
.schedule-timeline-person dl div { display: flex; min-width: 0; gap: 3px; color: var(--muted); font-size: 11px; }
.schedule-timeline-person dt { font-weight: 800; }
.schedule-timeline-person dd { margin: 0; text-align: left; white-space: nowrap; }
.schedule-timeline-track { position: relative; min-height: 104px; border-bottom: 1px solid var(--line); color: inherit; background: #fff; text-decoration: none; }
.schedule-timeline-track > i { position: absolute; z-index: 0; top: 0; bottom: 0; width: 1px; background: #ece9e5; pointer-events: none; }
.schedule-employee-track:hover { background: #fcfbf9; }
.schedule-business-person { min-height: 76px; color: white; background: #292722; }
.schedule-business-person > span { color: #d5d0ca; }
.schedule-business-track { min-height: 76px; background: #292722; }
.schedule-business-track > i { background: rgba(255, 255, 255, .11); }
.schedule-business-bar, .schedule-employee-bar { position: absolute; z-index: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 8px; white-space: nowrap; }
.schedule-business-bar { top: 14px; height: 48px; color: white; background: #3d3a35; font-size: 13px; font-weight: 700; }
.schedule-employee-bar { top: 22px; height: 60px; min-width: 2px; padding: 0 9px; border: 1px solid #cce2bf; color: #294829; background: #dff1d6; font-size: 12px; }
.schedule-employee-bar.is-base-plan { border-color: #dbd1ba; color: #665c48; background: #f3ead7; }
.schedule-employee-bar b { overflow: hidden; text-overflow: ellipsis; }
.schedule-no-plan { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #97938d; font-size: 13px; white-space: nowrap; }
.schedule-no-plan b { color: var(--accent-dark); }
.schedule-no-plan a { color: var(--accent-dark); font-weight: 750; text-decoration: none; }
.schedule-no-plan a:hover, .schedule-no-plan a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.schedule-business-track .schedule-no-plan { color: #d5d0ca; }
.schedule-timeline-empty { grid-column: 1 / -1; padding: 32px; text-align: center; }
.schedule-timeline-legend { display: flex; gap: 12px 24px; padding: 14px 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; flex-wrap: wrap; }
.schedule-timeline-legend span { display: flex; align-items: center; gap: 7px; }
.schedule-timeline-legend i { width: 26px; height: 10px; border: 1px solid #cce2bf; border-radius: 3px; background: #dff1d6; }
.schedule-timeline-legend i.is-base-plan { border-color: #dbd1ba; background: #f3ead7; }
.schedule-drawer-header { flex: 0 0 auto; }
.schedule-drawer-date { margin: 22px 0 0; color: var(--accent-dark); font: 500 21px/1.2 "Jost", sans-serif; }
.schedule-drawer-help { margin: 4px 0 0; font-size: 12px; }
.schedule-editor-drawer .schedule-drawer-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 22px 0 0; }
.schedule-editor-drawer .schedule-working-toggle { grid-column: 1 / -1; }
.schedule-editor-drawer .schedule-break-section { grid-column: 1 / -1; margin: 8px 0 2px; padding: 18px; border: 1px solid #e3ddd5; border-radius: 14px; background: #faf9f7; }
.schedule-editor-drawer .schedule-break-section .admin-card-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; align-items: center; }
.schedule-editor-drawer .schedule-break-section .admin-card-heading h3 { margin: 0 0 4px; font-size: 19px; }
.schedule-editor-drawer .schedule-break-section .admin-card-heading p { margin: 0; font-size: 12px; line-height: 1.4; }
.schedule-editor-drawer .schedule-break-add { min-height: 40px; padding-inline: 14px; align-self: center; white-space: nowrap; }
.schedule-editor-drawer .schedule-interval-list { gap: 10px; margin-top: 16px; }
.schedule-editor-drawer .schedule-interval-list > [data-schedule-no-breaks] { margin: 0; padding: 13px 14px; border: 1px dashed #d8d0c7; border-radius: 10px; background: #fff; }
.schedule-editor-drawer [data-schedule-break-row] { grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 12px; }
.schedule-editor-drawer [data-schedule-break-remove] { grid-column: 1 / -1; justify-self: start; padding: 4px 0; }
.schedule-editor-drawer .schedule-drawer-save-row { grid-column: 1 / -1; justify-content: flex-end; gap: 12px; margin: 4px -28px -24px; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
.schedule-editor-drawer .schedule-drawer-save-row .button { min-width: 0; flex: 1 1 0; }
.schedule-editor-drawer .schedule-drawer-save-row .schedule-drawer-secondary-action { min-height: 48px; padding-inline: 12px; flex: 0 1 auto; font-size: 12px; white-space: nowrap; }
.schedule-editor-drawer .schedule-drawer-save-row .schedule-drawer-primary-action { flex-grow: 1.25; }
.schedule-additional-settings { margin-top: 26px; padding: 0; overflow: hidden; }
.schedule-additional-settings > summary { padding: 19px 24px; cursor: pointer; }
.schedule-additional-settings > summary span { display: grid; gap: 3px; }
.schedule-additional-settings > summary strong { font: 500 20px/1.2 "Jost", sans-serif; }
.schedule-additional-settings > summary small { color: var(--muted); font-size: 12px; }
.schedule-additional-settings[open] > summary { border-bottom: 1px solid var(--line); }
.schedule-additional-content { padding: 4px 26px 28px; }
.schedule-settings-section { padding-top: 26px; scroll-margin-top: 18px; }
.schedule-settings-section + .schedule-settings-section { margin-top: 28px; border-top: 8px solid #f3f1ed; }
.schedule-settings-section > h2 { margin-bottom: 5px; }
.schedule-settings-section > .muted { margin-top: 0; }
.customer-search-form { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(210px, .45fr) auto; gap: 14px; align-items: end; margin-bottom: 20px; }
.customer-search-form label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.customer-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.customer-danger-card { border-color: #dfb1b1; }
.staff-command-card { margin-bottom: 22px; }
.staff-command-card h2 { margin-bottom: 10px; }
.staff-create-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 22px; }
.staff-create-form label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.staff-create-help, .staff-create-submit { grid-column: 1 / -1; }
.staff-create-submit { margin-top: 2px; }
.staff-admin-list { margin-top: 22px; }
.staff-admin-card.archived { background: #f4f1ed; }
.staff-badges { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.staff-action-grid { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(400px, 1.2fr); gap: 28px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.staff-account-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.staff-account-actions form { align-content: start; }
.audit-filter-form { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(240px, 1.35fr) 150px 150px auto; gap: 14px; align-items: end; margin-bottom: 20px; }
.audit-filter-form label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.audit-filter-form .button-row { flex-wrap: nowrap; }
.audit-admin-table time { white-space: nowrap; }
.importer-title .muted { max-width: 680px; }
.importer-fetch-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.importer-fetch-card h2 { margin-bottom: 6px; font: 400 25px/1.2 "Jost", sans-serif; }
.importer-fetch-card p { margin: 0; color: var(--muted); }
.importer-fetch-card form { display: flex; align-items: center; gap: 18px; }
.importer-filter-tabs { margin: 0 0 22px; }
.importer-filter-tabs a { min-width: 125px; }
.importer-list { display: grid; gap: 18px; }
.importer-card { scroll-margin-top: 20px; }
.importer-card-failed { border-color: #dfb1b1; }
.importer-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.importer-card-heading h2 { margin: 2px 0 3px; font: 500 24px/1.2 "Jost", sans-serif; }
.importer-status-processed { color: #245c3e; background: #dcf2e5; }
.importer-status-failed { color: #812f2f; background: #f8dddd; }
.importer-status-ignored { color: #665a50; background: #ebe6e0; }
.importer-data-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 22px 0 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.importer-data-grid div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #faf9f7; }
.importer-data-grid dt { margin-bottom: 3px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.importer-data-grid dd { margin: 0; overflow-wrap: anywhere; }
.importer-service-items { margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.importer-service-items h3 { margin: 0 0 10px; font: 600 16px/1.25 "Jost", sans-serif; }
.importer-service-items ol { display: grid; gap: 8px; margin: 0; padding-left: 24px; }
.importer-service-items li { padding-left: 4px; }
.importer-service-items li > span:first-child { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; }
.importer-service-items small { color: var(--muted); }
.importer-service-item-details { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; }
.importer-reschedule-warning { margin-top: 14px; }
.importer-no-data, .importer-error-row, .importer-result-row { margin: 20px 0 0; padding: 12px 14px; border-radius: 10px; }
.importer-no-data { color: var(--muted); background: #f4f1ed; }
.importer-error-row { color: #733; background: #fff1f1; }
.importer-result-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #245c3e; background: #edf8f1; }
.importer-actions { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: end; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.importer-resolve-form { display: flex; align-items: end; justify-content: flex-end; flex-wrap: wrap; gap: 14px; }
.importer-resolve-field { display: grid; min-width: 260px; flex: 1 1 360px; gap: 6px; }
.importer-resolve-form label { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.importer-resolve-form .form-hint { max-width: 62ch; }
.importer-resolve-form > .button { min-width: 240px; max-width: 300px; flex: 0 0 auto; white-space: normal; }
.status-trusted { color: #245c3e; background: #dcf2e5; }
.status-pending { color: #7b5313; background: #fff0ce; }
.status-blocked { color: #812f2f; background: #f8dddd; }
.legal-status-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .42fr); gap: 34px; align-items: center; }
.legal-status-card h2, .legal-section-heading h2 { margin-bottom: 8px; font: 400 26px/1.2 "Jost", sans-serif; }
.legal-status-card p, .legal-section-heading p { margin: 0; color: var(--muted); }
.legal-status-form { padding-left: 30px; border-left: 1px solid var(--line); }
.legal-section-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-bottom: 18px; }
.legal-review-notice { border: 1px solid #e5d2a8; color: #6c511c; background: #fff8e8; }
.legal-editor-form { gap: 34px; }
.legal-editor-block { display: grid; gap: 14px; }
.legal-editor-block + .legal-editor-block { padding-top: 32px; border-top: 1px solid var(--line); }
.legal-editor-block > label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.legal-editor-block textarea { min-height: 440px; line-height: 1.55; }
.legal-editor-meta { display: flex; gap: 14px 22px; align-items: baseline; flex-wrap: wrap; }
.legal-editor-meta h3 { margin: 0 auto 0 0; font: 400 22px/1.2 "Jost", sans-serif; }
.legal-editor-meta span { color: var(--muted); font-size: 12px; }
.legal-save-row { display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.legal-document-hero { max-width: 900px; }
.legal-document-version { color: var(--muted); }
.legal-document-content { max-width: 900px; white-space: pre-wrap; line-height: 1.7; }

@media (max-width: 1300px) {
    .panel-body .panel-layout { display: block; padding-left: var(--panel-sidebar-collapsed-width); }
    .panel-body.panel-navigation-ready .panel-layout { transition: none; }
    .panel-body .panel-sidebar { position: fixed; left: 0; width: var(--panel-sidebar-collapsed-width); transition: width .2s ease; }
    html[data-panel-sidebar-state="expanded"] .panel-body .panel-sidebar { width: var(--panel-sidebar-expanded-width); box-shadow: 12px 0 32px rgba(38, 34, 29, .2); }
}

@media (max-width: 1240px) {
    .site-header-inner {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 16px;
        padding-top: 14px;
    }
    .booking-channels {
        width: 100%;
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: center;
        border-top: 1px solid #ece9e6;
    }
    .booking-channel:first-child { border-left: 0; }
    .booking-scheduling-step { scroll-margin-top: 165px; }
}

@media (max-width: 850px) {
    .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .slot-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .panel-title { align-items: flex-start; flex-direction: column; }
    .panel-columns { grid-template-columns: 1fr; }
    .table-card { overflow-x: auto; }
    .admin-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-inline-entity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .equipment-admin-layout { grid-template-columns: 1fr; }
    .equipment-browser { position: static; }
    .equipment-list { max-height: 330px; }
    .service-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-active-field, .service-description-field { grid-column: 1 / -1; }
    .service-variant-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-variant-save-row { grid-column: auto; }
    .employee-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .employee-booksy-field { grid-column: span 2; }
    .employee-settings-grid > label:nth-child(3), .employee-photo-field, .employee-availability-fields { grid-column: 1 / -1; }
    .schedule-business-grid { grid-template-columns: 1fr; }
    .schedule-employee-intervals { grid-template-columns: 1fr; }
    .schedule-day-picker { grid-template-columns: 1fr 1fr auto; }
    .schedule-period-controls { align-items: stretch; flex-direction: column; }
    .schedule-day-navigation { width: 100%; min-width: 0; }
    .schedule-month-jump { justify-content: flex-end; }
    .schedule-list-layout, .schedule-calendar-layout { grid-template-columns: 1fr; }
    .schedule-employee-browser, .schedule-month-card { position: static; }
    .schedule-employee-list { max-height: 330px; }
    .schedule-month-card { width: min(100%, 520px); justify-self: center; }
    .exception-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-admin-grid { grid-template-columns: 1fr; }
    .legal-status-card { grid-template-columns: 1fr; }
    .importer-fetch-card, .importer-actions { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
    .importer-fetch-card form, .importer-resolve-form { align-items: stretch; flex-direction: column; }
    .importer-resolve-field, .importer-resolve-form > .button { width: 100%; min-width: 0; max-width: none; flex: 0 0 auto; }
    .importer-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .legal-status-form { padding: 24px 0 0; border-top: 1px solid var(--line); border-left: 0; }
    .legal-section-heading, .legal-save-row { align-items: flex-start; flex-direction: column; }
    .staff-action-grid { grid-template-columns: 1fr; }
    .staff-create-form { grid-template-columns: 1fr; }
    .audit-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .employee-filter-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calendar-strip-wrap { grid-template-columns: 38px minmax(0, 1fr) 38px; gap: 6px; }
    .calendar-strip { overflow-x: auto; grid-template-columns: repeat(7, minmax(82px, 1fr)); padding-bottom: 8px; }
    .calendar-day { min-height: 118px; }
    .day-period-grid { gap: 12px; }
    .calendar-control-card { align-items: flex-start; flex-direction: column; }
    .calendar-filter-section { grid-template-columns: 1fr; }
    .calendar-employee-filter-form { width: 100%; }
    .calendar-date-actions { width: 100%; justify-content: space-between; }
    .calendar-week-strip { overflow-x: auto; grid-template-columns: repeat(7, minmax(92px, 1fr)); padding-bottom: 6px; }
    .calendar-employee-filters { justify-content: flex-start; }
    .reception-calendar-scroll { overflow-x: auto; overflow-y: hidden; }
    .calendar-appointment-drawer { width: min(440px, calc(100vw - 20px)); max-width: none; }
    .manual-customer-lookup { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .panel-body .panel-layout { display: block; padding-left: 0; }
    .panel-body .panel-sidebar { position: relative; width: 100%; height: auto; min-height: 0; transform: none; visibility: visible; transition: none; }
    .panel-body .panel-collapse-button { display: none; }
    .panel-body .panel-sidebar-copy,
    html[data-panel-sidebar-state="collapsed"] .panel-body .panel-sidebar-copy { width: auto; opacity: 1; overflow: visible; pointer-events: auto; }
    .panel-body .panel-nav-link,
    .panel-body .panel-logout-button,
    html[data-panel-sidebar-state="collapsed"] .panel-body .panel-nav-link,
    html[data-panel-sidebar-state="collapsed"] .panel-body .panel-logout-button { justify-content: flex-start; padding-inline: 15px; }
    .panel-body .panel-user-summary,
    html[data-panel-sidebar-state="collapsed"] .panel-body .panel-user-summary { justify-content: flex-start; padding-inline: 10px; }
    html.panel-navigation-js .panel-body .panel-sidebar { position: fixed; width: min(86vw, 300px); height: 100vh; height: 100dvh; transform: translateX(-102%); visibility: hidden; box-shadow: 14px 0 38px rgba(25, 22, 18, .3); transition: transform .2s ease, visibility .2s ease; }
    html.panel-navigation-js .panel-body.panel-drawer-open .panel-sidebar { transform: translateX(0); visibility: visible; }
    html.panel-navigation-js .panel-body .panel-drawer-close { display: grid; }
    html.panel-navigation-js .panel-body .panel-mobile-header { position: sticky; z-index: 40; top: 0; display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .97); box-shadow: 0 6px 18px rgba(51, 52, 46, .06); }
    .panel-body .panel-mobile-brand { display: flex; min-width: 0; align-items: center; gap: 10px; color: var(--muted); font-size: 10px; font-weight: 650; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
    .panel-body .panel-mobile-brand img { display: block; width: 122px; height: auto; }
    .panel-body .panel-drawer-open { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 12px; color: white; background: #292722; }
    .panel-body.panel-drawer-open { overflow: hidden; }
    .panel-body.panel-drawer-open .panel-sidebar-backdrop { visibility: visible; opacity: 1; pointer-events: auto; }
    .panel-body .panel-shell { width: min(100% - 32px, 1260px); padding-top: 28px; }
    .site-header-inner { width: min(100% - 32px, 1180px); min-height: 82px; padding-top: 12px; }
    .brand img { width: 124px; }
    .site-home-link { display: none; }
    .site-actions { gap: 0; }
    .account-link { min-height: 40px; padding: 8px 15px; }
    .booking-channels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 12px; }
    .booking-channel {
        min-width: 0;
        min-height: 52px;
        justify-content: center;
        padding: 7px 8px;
        font-size: 10.5px;
        letter-spacing: .025em;
        text-align: center;
        white-space: normal;
    }
    .booking-channel-phone { gap: 0; }
    .booking-channel-phone strong { font-size: 11.5px; white-space: nowrap; }
    .page-shell { width: min(100% - 32px, 1180px); padding-top: 42px; }
    .card-grid, .auth-grid { grid-template-columns: 1fr; }
    .card { padding: 22px; }
    .account-onboarding-shell { gap: 18px; }
    .account-onboarding-progress { padding: 0; }
    .account-onboarding-progress strong { font-size: 10px; }
    .account-onboarding-progress span { width: 28px; height: 28px; }
    .account-onboarding-progress li:not(:first-child)::before { top: 13px; }
    .account-onboarding-card { padding: 28px 22px; border-radius: 18px; }
    .account-onboarding-card h1 { font-size: clamp(31px, 10vw, 40px); }
    .account-confirmed-badge { margin-bottom: 20px; }
    .account-password-submit { min-height: 52px; }
    .equipment-browser, .equipment-editor { padding: 0; }
    .equipment-browser-heading { min-height: 78px; padding: 15px 16px; }
    .equipment-settings-grid { grid-template-columns: 1fr; padding: 20px; }
    .equipment-description-field { grid-column: auto; }
    .equipment-editor-heading { min-height: 82px; padding: 18px 20px; }
    .equipment-editor-heading h2 { font-size: 23px; }
    .equipment-assignment-section { padding: 22px 20px; }
    .equipment-section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
    .equipment-service-row { grid-template-columns: 24px minmax(0, 1fr); padding: 14px; }
    .equipment-service-meta { grid-column: 2; justify-content: space-between; }
    .equipment-save-row { align-items: stretch; flex-direction: column; padding: 16px 20px; }
    .equipment-save-row .button { width: 100%; }
    .equipment-delete-section { margin: 0 20px 20px; }
    .service-settings-grid, .service-variant-form { grid-template-columns: 1fr; }
    .service-active-field, .service-description-field, .service-variant-name-field, .service-variant-save-row { grid-column: auto; }
    .service-variant-editor > summary { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 14px 42px 14px 15px; }
    .service-variant-summary-meta { justify-content: space-between; padding-right: 0; }
    .service-variant-summary-meta strong { min-width: 0; }
    .service-variant-form { padding: 16px; }
    .service-variant-save-row .button { width: 100%; }
    .employee-settings-grid, .employee-assignment-form, .employee-assignment-add-form { grid-template-columns: 1fr; }
    .employee-booksy-field, .employee-settings-grid > label:nth-child(3), .employee-photo-field, .employee-availability-fields, .employee-assignment-service-field { grid-column: auto; }
    .employee-availability-fields { align-items: stretch; flex-direction: column; }
    .employee-editor-heading { align-items: flex-start; flex-direction: column; }
    .employee-editor-heading h2 { white-space: normal; }
    .slot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .field-row { align-items: stretch; flex-direction: column; }
    .service-details div, .summary-list div { align-items: flex-start; flex-direction: column; gap: 2px; }
    dd { text-align: left; }
    .panel-body .conflict-card { align-items: flex-start; flex-direction: column; }
    .metric-row { width: 100%; }
    .metric { min-width: 0; flex: 1; padding: 10px 6px; }
    .appointment-row { grid-template-columns: 60px 1fr; }
    .appointment-row .status { grid-column: 2; }
    .reception-sequence-list li { grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; }
    .reception-sequence-time { grid-column: 2; color: var(--muted); font-size: 12px; }
    .reception-sequence-service { grid-column: 2; }
    .reception-sequence-price { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
    .reception-sequence-list .status { grid-column: 2 / -1; justify-self: start; }
    .account-heading { flex-direction: column; }
    .customer-appointment-row { grid-template-columns: 80px 1fr; }
    .customer-appointment-list-heading { flex-direction: column; }
    .customer-appointment-status { grid-column: 2; justify-items: start; text-align: left; }
    .customer-booking-items { grid-column: 1 / -1; }
    .customer-booking-items li { grid-template-columns: 25px minmax(0, 1fr); }
    .customer-booking-items li .status { grid-column: 2; justify-self: start; }
    .admin-form-grid, .admin-inline-entity { grid-template-columns: 1fr; }
    .admin-full { grid-column: auto; }
    .schedule-add-form, .exception-form-grid { grid-template-columns: 1fr; }
    .schedule-day-picker, [data-schedule-editor] [data-schedule-break-row] { grid-template-columns: 1fr; }
    .schedule-period-controls { padding: 14px; }
    [data-schedule-admin-page], .schedule-period-controls, .schedule-list-layout, .schedule-editor-workspace { width: 100%; min-width: 0; max-width: 100%; }
    .schedule-day-navigation { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 7px; }
    .schedule-day-navigation strong { font-size: 16px; white-space: normal; }
    .schedule-month-jump { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; }
    .schedule-hours-summary { grid-template-columns: 1fr; }
    .schedule-hours-summary > div { display: grid; grid-template-columns: minmax(80px, .7fr) minmax(0, 1fr); align-items: baseline; padding: 13px 20px; }
    .schedule-hours-summary > div + div { border-top: 1px solid var(--line); border-left: 0; }
    .schedule-hours-summary dd { font-size: 21px; }
    .schedule-hours-summary small { grid-column: 2; }
    .schedule-date-form { padding: 20px 20px 0; }
    .schedule-break-section { margin-inline: -20px; padding-inline: 20px; }
    .schedule-editor-save-row { align-items: stretch; margin-inline: -20px; flex-direction: column-reverse; }
    .schedule-editor-save-row .button { width: 100%; }
    .schedule-month-card { width: 100%; }
    .schedule-month-day { min-height: 50px; }
    .schedule-month-day small { font-size: 8px; }
    .schedule-timeline-heading { align-items: flex-start; flex-direction: column; }
    .schedule-additional-content { padding-inline: 18px; }
    .exception-reason { grid-column: auto; }
    .customer-search-form { grid-template-columns: 1fr; }
    .staff-account-actions, .audit-filter-form { grid-template-columns: 1fr; }
    .staff-badges { justify-content: flex-start; }
    .booking-hero { margin-bottom: 38px; }
    .booking-flow-section { margin-top: 42px; }
    .employee-filter-list { grid-template-columns: 1fr; }
    .service-list-toggle { min-height: 64px; }
    .service-description { margin-right: 0; }
    .service-variant-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; min-height: 96px; padding: 16px; }
    .service-variant-copy { grid-template-columns: minmax(0, 1fr); gap: 6px; align-items: start; }
    .service-variant-copy strong { font-size: 17px; }
    .service-variant-copy span { justify-self: start; flex-wrap: wrap; font-size: 14px; white-space: normal; }
    .service-variant-copy b { font-size: 18px; }
    .service-variant-cta { min-width: 82px; padding-inline: 14px; }
    .booking-calendar-section { margin-inline: -8px; padding: 20px 14px; border-radius: 20px; }
    .booking-calendar-heading { align-items: flex-start; flex-wrap: wrap; }
    .calendar-jump-form { width: 100%; margin-left: 0; }
    .calendar-jump-form > div { align-items: stretch; flex-direction: column; }
    .calendar-strip-wrap { grid-template-columns: 34px minmax(0, 1fr) 34px; }
    .calendar-strip { gap: 7px; }
    .calendar-day { min-height: 108px; border-radius: 16px; }
    .calendar-day strong { font-size: 31px; }
    .calendar-arrow { border-radius: 14px; }
    .available-slots-heading { align-items: flex-start; flex-direction: column; margin-top: 34px; }
    .day-period-grid { grid-template-columns: 1fr; gap: 30px; }
    .day-period h4 { text-align: left; }
    .period-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-slot { min-height: 82px; }
    .admin-photo-field { grid-column: auto; }
    .admin-card-heading { align-items: flex-start; flex-direction: column; }
    .importer-data-grid { grid-template-columns: 1fr; }
    .panel-view-tabs { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .panel-view-tabs a { min-width: 0; padding-inline: 10px; }
    .manual-appointment-grid { grid-template-columns: 1fr; }
    .manual-appointment-full-field { grid-column: auto; }
    .manual-service-picker-heading { align-items: flex-start; flex-direction: column; }
    .manual-picker-progress { width: 100%; justify-content: space-between; }
    .manual-picker-progress li + li::before { display: none; }
    .manual-picker-steps { grid-template-columns: 1fr; }
    .manual-picker-action-row { align-items: stretch; flex-direction: column; }
    .manual-picker-action-row .button { width: 100%; min-width: 0; }
    .manual-picker-summary { margin: 14px; }
    .manual-picker-summary dl { grid-template-columns: 1fr; }
    .manual-picker-summary dl > div, .manual-picker-summary dl > div:first-child { padding: 9px 0; border-top: 1px solid var(--line); border-left: 0; }
    .manual-picker-summary dl > div:first-child { padding-top: 0; border-top: 0; }
    .manual-picker-summary-actions { align-items: stretch; flex-direction: column; }
    .manual-picker-summary-actions .button { width: 100%; }
    .manual-appointment-submit { align-items: stretch; flex-direction: column; }
    .calendar-control-card { padding: 15px; }
    .calendar-day-navigation { width: 100%; grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 8px; }
    .calendar-day-navigation > div { width: auto; min-width: 0; }
    .calendar-day-navigation strong { font-size: 18px; }
    .calendar-date-actions { align-items: stretch; flex-direction: column; }
    .calendar-date-form > div { align-items: stretch; flex-direction: column; }
    .calendar-week-navigation { grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 6px; margin-right: -10px; margin-left: -10px; }
    .calendar-week-navigation-button { width: 36px; height: 36px; font-size: 18px; }
    .calendar-week-strip { margin: 0; padding-right: 6px; padding-left: 6px; }
    .calendar-week-day { min-height: 105px; }
    .calendar-filter-section { margin-top: 20px; }
    .calendar-employee-filters { width: 100%; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; }
    .calendar-employee-filter { flex: 0 0 auto; }
    .calendar-filter-actions { justify-content: flex-start; flex-wrap: wrap; }
    .calendar-filter-selection { margin-right: auto; }
    .calendar-empty-notice { align-items: flex-start; flex-direction: column; }
    .reception-calendar-card { margin-right: -16px; margin-left: -16px; border-radius: 0; }
    .reception-calendar-scroll { height: auto; max-height: none; min-height: 0; }
    .calendar-legend { align-items: flex-start; flex-direction: column; }
    .calendar-appointment-drawer { width: 100vw; max-width: none; border-left: 0; border-radius: 0; }
    .calendar-appointment-drawer-close { top: calc(12px + env(safe-area-inset-top)); right: 14px; }
    .calendar-appointment-drawer-content { padding: calc(20px + env(safe-area-inset-top)) 18px 20px; }
    .calendar-appointment-drawer-header { min-height: 66px; padding-right: 50px; }
    .calendar-appointment-drawer-header h2 { font-size: 24px; }
    .schedule-editor-drawer .schedule-drawer-form { grid-template-columns: 1fr; }
    .schedule-editor-drawer .schedule-break-section { margin-inline: 0; padding: 16px; }
    .schedule-editor-drawer .schedule-break-section .admin-card-heading { grid-template-columns: 1fr; }
    .schedule-editor-drawer .schedule-break-add { width: 100%; }
    .schedule-editor-drawer [data-schedule-break-row] { grid-template-columns: 1fr; }
    .schedule-editor-drawer [data-schedule-break-remove] { grid-column: auto; }
    .schedule-editor-drawer .schedule-drawer-save-row { margin-right: -18px; margin-left: -18px; padding-right: 18px; padding-left: 18px; }
    .calendar-appointment-drawer-term { grid-template-columns: 1fr; }
    .calendar-appointment-drawer-term time { margin-top: 3px; }
    .calendar-appointment-drawer-details { grid-template-columns: 1fr; }
    .calendar-appointment-drawer-details > div { grid-column: 1; padding: 13px 0 !important; border-left: 0 !important; }
    .calendar-appointment-drawer-footer { bottom: -20px; margin: auto -18px -20px; padding: 16px 18px calc(20px + env(safe-area-inset-bottom)); }
    .calendar-action-notice { top: 12px; right: 12px; left: 12px; max-width: none; }
    .site-footer-inner { grid-template-columns: 1fr; justify-items: center; width: min(100% - 32px, 1180px); gap: 10px; text-align: center; }
    .site-footer-technology, .site-footer-contact { justify-self: center; }
}

@media (prefers-reduced-motion: reduce) {
    .panel-body .panel-layout,
    .panel-body .panel-sidebar,
    .panel-body .panel-sidebar-copy,
    .panel-body .panel-collapse-icon,
    .panel-body .panel-sidebar-backdrop,
    .calendar-appointment-drawer,
    .calendar-appointment-drawer::backdrop,
    .calendar-appointment-reschedule-chevron,
    .calendar-action-notice,
    .calendar-employee-heading-chevron,
    .calendar-employee-heading-chevron svg,
    .manual-customer-status { transition: none !important; }
    .manual-customer-spinner { animation-duration: 1.4s; }
}
/* Consecutive treatment booking */
.booking-sequence-start,
.booking-sequence-card {
    margin-top: 20px;
    border: 1px solid rgba(176, 119, 133, .24);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 250, 251, .98), rgba(249, 240, 243, .9));
    box-shadow: 0 14px 36px rgba(71, 43, 50, .07);
}

.booking-sequence-start {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
}

.booking-sequence-start div,
.booking-sequence-list li > div {
    display: grid;
    gap: 4px;
}

.booking-sequence-start span,
.booking-sequence-list li > div span,
.booking-sequence-footer > span {
    color: var(--muted);
    font-size: .92rem;
}

.booking-sequence-card {
    padding: 20px;
}

.booking-sequence-heading,
.booking-sequence-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.booking-sequence-heading h3 {
    margin: 2px 0 0;
}

.booking-sequence-heading > span {
    min-width: 48px;
    padding: 7px 10px;
    border-radius: 999px;
    background: #fff;
    color: var(--accent-dark);
    font-weight: 700;
    text-align: center;
}

.booking-sequence-list {
    display: grid;
    gap: 0;
    margin: 18px 0;
    padding: 0;
    list-style: none;
    counter-reset: sequence;
}

.booking-sequence-list li {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 13px 0;
    border-top: 1px solid rgba(90, 67, 72, .1);
}

.booking-sequence-list li:last-child {
    border-bottom: 1px solid rgba(90, 67, 72, .1);
}

.booking-sequence-position {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
}

.booking-sequence-list nav {
    display: flex;
    gap: 5px;
}

.booking-sequence-list nav a {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgba(90, 67, 72, .14);
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
}

.booking-sequence-list nav a.danger {
    color: #a33b4e;
}

@media (max-width: 680px) {
    .booking-sequence-start,
    .booking-sequence-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .booking-sequence-list li {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .booking-sequence-list nav {
        grid-column: 2;
    }
}

/* Guided customer booking flow */
.booking-flow-host {
    min-height: 120px;
    transition: opacity .16s ease;
}

.booking-flow-host.is-loading {
    opacity: .5;
    pointer-events: none;
}

.booking-selection-card {
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid rgba(176, 119, 133, .25);
    border-radius: 24px;
    background: linear-gradient(135deg, #fff, #fbf4f6);
    box-shadow: 0 20px 52px rgba(71, 43, 50, .08);
    scroll-margin-top: 110px;
}

.booking-selection-heading,
.booking-selection-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.booking-selection-heading h2 {
    margin: 2px 0 0;
    color: #123229;
    font: 500 clamp(27px, 3.2vw, 36px)/1.2 "Jost", sans-serif;
}

.booking-selection-heading p:not(.eyebrow) {
    max-width: 680px;
    margin: 6px 0 0;
    color: var(--muted);
}

.booking-selection-count {
    min-width: 54px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--accent-dark);
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(176, 119, 133, .2);
    font-weight: 750;
    text-align: center;
}

.booking-selection-list {
    display: grid;
    margin: 24px 0;
    padding: 0;
    border-top: 1px solid rgba(90, 67, 72, .12);
    list-style: none;
}

.booking-selection-list li {
    display: grid;
    min-width: 0;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid rgba(90, 67, 72, .12);
}

.booking-selection-service {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.booking-selection-service strong {
    overflow: hidden;
    color: #123229;
    font-size: 18px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.booking-selection-service span {
    color: var(--muted);
    font-size: 14px;
}

.booking-selection-actions {
    display: flex;
    gap: 6px;
}

.booking-selection-actions a,
.booking-selection-change {
    display: grid;
    min-width: 36px;
    height: 36px;
    place-items: center;
    padding: 0 10px;
    border: 1px solid rgba(90, 67, 72, .16);
    border-radius: 10px;
    color: var(--accent-dark);
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.booking-selection-actions a:hover,
.booking-selection-actions a:focus-visible,
.booking-selection-change:hover,
.booking-selection-change:focus-visible {
    border-color: var(--accent-dark);
    color: #fff;
    background: var(--accent-dark);
}

.booking-selection-actions a.danger {
    color: #a33b4e;
}

.booking-selection-footer > div {
    display: grid;
    gap: 2px;
}

.booking-selection-footer > div strong {
    color: #123229;
    font-size: 21px;
}

.booking-selection-footer > div span {
    color: var(--muted);
    font-size: 13px;
}

.booking-add-service-step {
    margin-top: 32px;
    padding: clamp(20px, 3.5vw, 30px);
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(51, 52, 46, .055);
    scroll-margin-top: 110px;
}

.booking-compatible-note {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 22px;
    padding: 14px 16px;
    border: 1px solid #b8d7c5;
    border-radius: 14px;
    color: #245c3e;
    background: #f2faf5;
}

.booking-compatible-note > span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--success);
    font-weight: 800;
}

.booking-compatible-note p {
    margin: 0;
}

.booking-compatible-empty {
    margin-top: 8px;
}

@media (max-width: 1240px) {
    .booking-selection-card,
    .booking-add-service-step {
        scroll-margin-top: 165px;
    }
}

@media (max-width: 620px) {
    .booking-selection-heading,
    .booking-selection-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .booking-selection-count {
        align-self: flex-start;
    }

    .booking-selection-list li {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 10px;
    }

    .booking-selection-actions,
    .booking-selection-change {
        grid-column: 2;
        justify-self: start;
    }

    .booking-selection-footer .button {
        width: 100%;
    }

    .booking-add-service-step {
        margin-right: -8px;
        margin-left: -8px;
        border-radius: 18px;
    }
}
