:root {
    color-scheme: light;
    --background: #f6f1e9;
    --surface: #fffdf9;
    --soft: #eee7d8;
    --ink: #18302d;
    --deep: #0f1c1a;
    --accent: #b86b42;
    --sage: #759486;
    --sage-soft: #e0eee5;
    --muted: #53635b;
    --line: #d5ccbb;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.6; }
a { color: inherit; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
button, a { -webkit-tap-highlight-color: transparent; }
code { font-size: .88em; overflow-wrap: anywhere; }
button { font: inherit; border: 0; cursor: pointer; line-height: 1.3; }
input, select { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 10px 12px; min-height: 46px; width: 100%; min-width: 0; }
input:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
label { display: block; font-size: 14px; font-weight: 600; }
.skip-link { position: absolute; z-index: 2; top: 0; left: 24px; padding: 12px 20px; background: var(--ink); color: white; transform: translateY(-110%); }
.skip-link:focus { transform: translateY(0); }
.site-header, .main-nav, .main-content, .site-footer { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.site-header { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding-block: 30px 24px; }
.brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; font-weight: 650; line-height: 1.35; }
.brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: var(--background); font-family: Georgia, serif; font-size: 20px; font-weight: 400; }
.brand-subtitle { display: block; margin-top: 3px; color: var(--muted); font-size: 13px; font-weight: 400; }
.environment-label { display: inline-flex; gap: 8px; align-items: center; font-size: 13px; padding: 7px 12px; background: var(--soft); border-radius: 24px; white-space: nowrap; }
.environment-label span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.staff-header-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.staff-header-actions form { margin: 0; }
.staff-logout { background: transparent; color: var(--ink); padding: 10px; text-decoration: underline; text-underline-offset: 4px; font-size: 14px; }
.main-nav { display: flex; gap: 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding-block: 8px; }
.main-nav a { padding: 10px 16px; border-radius: 6px; text-decoration: none; font-size: 14px; }
.main-nav a[aria-current="page"] { background: var(--ink); color: var(--background); }
.main-nav a:hover:not([aria-current="page"]) { background: var(--soft); }
.main-content { padding-block: 48px 72px; }
.hero { max-width: 780px; margin-bottom: 42px; }
.hero.compact { max-width: 850px; margin-bottom: 30px; }
.eyebrow { color: #925234; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; margin: 0 0 12px; }
h1, h2 { color: var(--deep); font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.2; }
h1 { font-size: clamp(34px, 5vw, 54px); letter-spacing: -.02em; margin: 0 0 20px; }
h2 { font-size: 26px; margin: 0 0 14px; }
p { margin: 0 0 16px; }
.hero > p:not(.eyebrow) { max-width: 680px; font-size: 18px; color: var(--muted); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 13px 22px; min-height: 48px; background: var(--ink); color: var(--surface); text-decoration: none; border-radius: 6px; font-size: 15px; font-weight: 600; margin-top: 10px; }
.button:hover { background: var(--deep); }
.button.secondary { background: var(--soft); color: var(--ink); }
.card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card { padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.summary-card { display: flex; flex-direction: column; align-items: flex-start; }
.summary-card h2 { font-size: 30px; }
.summary-card p:not(.eyebrow) { color: var(--muted); font-size: 15px; }
.badge { display: inline-block; padding: 4px 10px; margin-top: auto; background: #e6eee8; color: var(--ink); border-radius: 4px; font-size: 12px; }
.badge.neutral { background: var(--soft); }
.text-link { margin-top: auto; font-size: 14px; text-underline-offset: 4px; font-weight: 600; }
.next-step { margin-top: 32px; padding: 30px 32px; display: flex; align-items: center; gap: 36px; justify-content: space-between; background: var(--soft); border-radius: 10px; }
.next-step p:last-child { color: var(--muted); margin-bottom: 0; }
.step-number { color: #9b7255; font-family: Georgia, serif; font-size: 64px; line-height: 1; }
.notice { padding: 16px 20px; margin-block: 24px; border-left: 3px solid var(--accent); background: var(--soft); border-radius: 0 6px 6px 0; font-size: 15px; }
.status-panel { display: flex; align-items: flex-start; gap: 18px; padding: 24px 28px; border-radius: 10px; margin-bottom: 24px; }
.status-panel.success { background: #e4ece3; border: 1px solid #bccfba; }
.status-panel.pending { background: var(--soft); border: 1px solid var(--line); }
.status-panel h2 { margin: 0 0 8px; font-size: 25px; }
.status-panel p { margin: 0; color: var(--muted); }
.status-icon { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; color: white; background: var(--ink); font-size: 20px; }
.detail-list { margin: 0; }
.detail-list > div { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--soft); padding-block: 12px; font-size: 14px; }
.detail-list > div:last-child { border-bottom: none; }
.detail-list dt { color: var(--muted); }
.detail-list dd { margin: 0; text-align: right; font-weight: 600; }
.table-status-list { list-style: none; margin: 0; padding: 0; }
.table-status-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-block: 9px; }
.small-status { font-size: 12px; color: var(--muted); white-space: nowrap; }
.availability-card { margin-top: 24px; }
.availability-card > p:not(.eyebrow) { color: var(--muted); }
.availability-list { display: flex; flex-wrap: wrap; list-style: none; gap: 14px; padding: 0; margin: 24px 0; }
.availability-list li { display: flex; align-items: center; gap: 28px; background: var(--soft); border-radius: 6px; padding: 16px 22px; }
.availability-list span { color: var(--muted); font-size: 14px; }
.availability-list strong { font-weight: 600; font-size: 18px; font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); font-size: 14px; }
.site-footer { border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 24px; padding-block: 24px 36px; color: var(--muted); font-size: 12px; }
.site-footer p { margin: 0; }
.page-heading { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-bottom: 28px; }
.page-heading h1 { font-size: clamp(34px, 5vw, 48px); margin-bottom: 10px; }
.page-heading p:last-child { margin: 0; color: var(--muted); }
.page-heading .button { flex-shrink: 0; margin-top: 0; }
.settings-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 20px; align-items: start; }
.stack-form { display: flex; flex-direction: column; gap: 10px; }
.stack-form .button { align-self: flex-start; margin-top: 4px; }
.field-help { display: block; font-size: 13px; color: var(--muted); font-weight: 400; margin: 0; }
.duration-control { display: flex; align-items: center; gap: 12px; }
.duration-control input { max-width: 120px; }
.time-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.time-fields label { margin-bottom: 8px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.section-heading .badge { margin: 0; white-space: nowrap; }
.ranges-card { margin-top: 24px; }
.range-list { padding: 0; list-style: none; margin: 10px 0 0; }
.range-list li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-block: 18px; border-bottom: 1px solid var(--soft); }
.range-time { display: inline-block; margin-left: 18px; font-variant-numeric: tabular-nums; }
.range-list .field-help { margin-top: 4px; }
.range-note { margin-top: 20px; }
.button.small { min-height: 44px; padding: 10px 15px; font-size: 13px; margin: 0; gap: 8px; }
.button.quiet { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.button.quiet:hover { background: var(--soft); }
.week-toolbar { display: flex; gap: 24px; justify-content: space-between; align-items: flex-end; padding-bottom: 20px; }
.week-navigation { display: flex; gap: 10px; }
.agenda-layout { display: grid; grid-template-columns: 316px minmax(0, 1fr); gap: 24px; align-items: start; }
.agenda-main { min-width: 0; }
#agenda-settimanale { scroll-margin-top: 18px; }
.calendar-panel { position: sticky; top: 24px; padding: 20px 16px; }
.calendar-panel .eyebrow { margin-bottom: 14px; }
.calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-bottom: 12px; }
.calendar-heading h2 { margin: 0; font-family: inherit; font-size: 17px; font-weight: 600; text-align: center; }
.calendar-arrow { display: grid; place-items: center; min-width: 36px; min-height: 44px; border-radius: 6px; background: var(--soft); text-decoration: none; font-size: 26px; line-height: 1; }
.calendar-arrow:hover { background: var(--line); }
.calendar-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0 4px; }
.calendar-table th { font-size: 11px; font-weight: 500; color: var(--muted); height: 28px; padding: 0; }
.calendar-table abbr { text-decoration: none; }
.calendar-table td { padding: 0; }
.calendar-date { display: flex; align-items: center; justify-content: center; min-height: 44px; width: 100%; border: 2px solid transparent; border-radius: 6px; font-size: 14px; text-decoration: none; font-variant-numeric: tabular-nums; }
.calendar-date.outside-month { color: #777568; }
.calendar-date:hover { background: var(--soft); }
.calendar-date.is-today { border-color: var(--accent); font-weight: 700; }
.calendar-date:focus-visible { outline-offset: -4px; }
.calendar-date.has-free-slots { background: #e0eee5; color: #1d493b; font-weight: 700; }
.calendar-date.has-free-slots:hover { background: #cee4d6; }
.calendar-table:not(.date-picker-table) .calendar-date.has-free-slots { background: var(--ink); color: var(--surface); }
.calendar-table:not(.date-picker-table) .calendar-date.has-free-slots:hover { background: #2f514a; }
.calendar-table:not(.date-picker-table) tbody tr.is-selected-week td { background: rgba(224, 238, 229, .5); border-top: 1px solid rgba(117, 148, 134, .45); border-bottom: 1px solid rgba(117, 148, 134, .45); }
.calendar-table:not(.date-picker-table) tbody tr.is-selected-week td:first-child { border-left: 1px solid rgba(117, 148, 134, .45); border-radius: 7px 0 0 7px; }
.calendar-table:not(.date-picker-table) tbody tr.is-selected-week td:last-child { border-right: 1px solid rgba(117, 148, 134, .45); border-radius: 0 7px 7px 0; }
.calendar-availability-note { margin: 10px 0 0; display: flex; align-items: center; gap: 9px; font-size: 11px; color: var(--muted); }
.legend-available { display: inline-block; width: 12px; height: 12px; border-radius: 3px; background: var(--ink); }
.date-picker-panel .legend-available { background: #e0eee5; }
.calendar-today-note { margin: 10px 0 0; font-size: 11px; color: var(--muted); display: flex; align-items: center; gap: 9px; }
.calendar-today-note span { display: inline-block; width: 12px; height: 12px; border: 2px solid var(--accent); border-radius: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.week-summary { margin-bottom: 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; padding: 18px 22px; background: var(--soft); border-radius: 8px; font-size: 14px; }
.agenda-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.day-card { scroll-margin-top: 24px; }
.day-card h2 { font-size: 28px; margin-bottom: 10px; }
.day-ranges { color: var(--muted); font-size: 13px; margin-bottom: 8px; }
.slot-list { list-style: none; padding: 0; margin: 0; }
.slot-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 14px; border-bottom: 1px solid var(--soft); }
.slot-info strong { display: block; font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.slot-info span { display: block; color: var(--muted); font-size: 12px; }
.slot-row.is-excluded .slot-info strong { text-decoration: line-through; color: #7c786b; }
.slot-row.is-excluded { background: #f6f0e6; padding-inline: 10px; }
.slot-row.is-past { opacity: .75; }
.slot-state { padding: 5px 9px; border-radius: 4px; background: var(--soft); font-size: 12px; white-space: nowrap; }
.excluded-blocks { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.excluded-blocks h3 { font-size: 15px; margin: 0 0 6px; font-weight: 600; }
.restore-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 10px; font-size: 14px; }
.remainder-note { margin-top: 16px; }
.flash { border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px; margin-bottom: 24px; font-size: 15px; }
.flash.success { background: #e4ece3; border-color: #bccfba; }
.flash.error { background: #fae8dc; border-color: #dba87f; }

@media (max-width: 800px) {
    .agenda-layout { grid-template-columns: 1fr; }
    .calendar-panel { position: static; width: min(100%, 390px); justify-self: center; }
    .settings-grid, .agenda-days { grid-template-columns: 1fr; }
    .week-toolbar { align-items: flex-start; flex-direction: column; gap: 16px; }
    .three-columns { grid-template-columns: 1fr; }
    .summary-card { min-height: 0; }
    .summary-card p:not(.eyebrow) { max-width: 550px; }
}

@media (min-width: 801px) and (max-width: 1100px) {
    .agenda-main .agenda-days { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .page-heading { align-items: flex-start; flex-direction: column; gap: 16px; }
    .range-list li { align-items: flex-start; }
    .range-time { display: block; margin-left: 0; }
    .range-list .button.small { max-width: 125px; }
    .week-summary { gap: 8px; flex-direction: column; padding: 16px 18px; }
    .slot-row { gap: 10px; }
    .slot-info strong { font-size: 16px; }
    .slot-row .button.small { padding-inline: 10px; font-size: 12px; }
    .site-header, .main-nav, .main-content, .site-footer { width: calc(100% - 32px); }
    .site-header { align-items: flex-start; flex-direction: column; gap: 14px; padding-block: 22px 18px; }
    .main-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
    .main-nav a { padding: 10px 12px; min-height: 44px; text-align: center; font-size: 13px; }
    .main-content { padding-block: 32px 46px; }
    .hero { margin-bottom: 28px; }
    .hero > p:not(.eyebrow) { font-size: 16px; }
    .card-grid { grid-template-columns: 1fr; gap: 16px; }
    .card { padding: 22px; }
    .status-panel { padding: 20px; gap: 12px; }
    .next-step { padding: 24px; gap: 18px; }
    .next-step h2 { font-size: 24px; }
    .step-number { font-size: 42px; align-self: flex-start; }
    .availability-list { flex-direction: column; }
    .availability-list li { justify-content: space-between; gap: 12px; }
    .table-status-list li { gap: 8px; }
    .table-status-list code { font-size: 12px; }
    .site-footer { flex-direction: column; gap: 6px; }
}

.availability-layout .range-entry-card { margin-bottom: 24px; }
.availability-layout .duration-card { margin-top: 24px; }
.date-choice { display: block; position: relative; cursor: pointer; font-weight: 400; }
.date-choice .date-checkbox { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 44px; padding: 0; border: 0; margin: 0; opacity: 0; cursor: inherit; }
.date-choice .date-checkbox:checked + .calendar-date { background: var(--ink); color: var(--surface); font-weight: 700; }
.date-choice .date-checkbox:focus-visible + .calendar-date { outline: 3px solid var(--accent); outline-offset: -4px; }
.date-choice.outside-month .calendar-date { color: #777568; }
.date-choice.is-today .calendar-date { border-color: var(--accent); }
.date-choice.is-disabled { cursor: default; }
.date-choice.is-disabled .calendar-date { color: #a9a595; }
.date-choice.is-disabled .calendar-date:hover { background: transparent; }
.selected-dates-section { padding: 16px; background: var(--background); border-radius: 6px; margin-block: 4px 12px; }
.selected-dates-section p { margin-bottom: 8px; font-size: 14px; }
.selected-dates { display: flex; flex-wrap: wrap; gap: 8px; }
.date-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); font-size: 13px; gap: 8px; }
.date-chip:hover { background: var(--soft); }
.text-button { color: var(--ink); background: transparent; min-height: 44px; padding: 8px 0; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
[hidden] { display: none !important; }
.copy-source { color: var(--ink); font-size: 20px; }
.range-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.day-range { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.day-range .range-copy-link { margin: 0; min-height: 44px; display: inline-flex; align-items: center; font-size: 12px; }
@media (max-width: 620px) {
    .availability-layout .range-list li { flex-direction: column; gap: 12px; }
    .date-picker-panel { padding-inline: 16px; }
    .range-entry-card .button { max-width: 100%; }
}

.appointment-name { display: block; margin-block: 4px; font-size: 14px; font-weight: 600; text-underline-offset: 3px; overflow-wrap: anywhere; }
.appointment-status { font-size: 12px; }
.appointment-row.status-completed { background: #edf2e9; padding-inline: 10px; }
.appointment-row.status-no_show { background: #fae8dc; padding-inline: 10px; }
.appointment-actions { flex-shrink: 0; }
.slot-row > form { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
@media (min-width: 801px) { .agenda-main .agenda-days { grid-template-columns: 1fr; } }

/* Agenda settimanale */
.main-content.agenda-page-content { width: min(1480px, calc(100% - 48px)); }
.agenda-week-layout { grid-template-columns: 280px minmax(0, 1fr); }
.agenda-week-toolbar { align-items: center; }
.agenda-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 16px; color: var(--muted); font-size: 12px; }
.agenda-legend span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.legend-swatch { display: inline-block; width: 18px; height: 13px; border-radius: 3px; }
.legend-swatch.is-booked { background: var(--ink); }
.legend-swatch.is-free { border: 2px dashed var(--sage); background: var(--surface); }
.legend-swatch.is-completed { border: 1px solid #bfd0bb; background: #edf2e9; }
.legend-swatch.is-no-show { border: 1px solid #d8a47e; background: #fae8dc; }
.weekly-agenda-scroll { overflow: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); scrollbar-color: var(--line) transparent; }
.weekly-agenda-scroll:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.weekly-agenda-grid { --hour-height: 84px; min-width: 980px; }
.weekly-agenda-header { position: sticky; top: 0; z-index: 30; display: grid; grid-template-columns: 62px repeat(7, minmax(128px, 1fr)); min-height: 66px; border-bottom: 1px solid var(--line); background: var(--surface); }
.agenda-timezone { position: sticky; left: 0; z-index: 32; display: flex; align-items: center; padding-left: 14px; border-right: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: 11px; }
.agenda-day-heading { display: flex; align-items: center; justify-content: center; gap: 8px; border-right: 1px solid var(--line); color: var(--muted); }
.agenda-day-heading:last-child { border-right: 0; }
.agenda-day-heading span { font-size: 11px; font-weight: 700; letter-spacing: .07em; }
.agenda-day-heading strong { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--deep); font-size: 16px; font-weight: 650; }
.agenda-day-heading.is-today strong { border: 2px solid var(--accent); }
.weekly-agenda-timeline { display: grid; grid-template-columns: 62px minmax(0, 1fr); height: 924px; min-height: 520px; }
.agenda-time-axis { position: sticky; left: 0; z-index: 12; display: flex; flex-direction: column; justify-content: space-between; height: 100%; border-right: 1px solid var(--line); background: var(--surface); }
.agenda-hour { display: block; padding-right: 10px; color: var(--muted); font-size: 11px; line-height: 1; text-align: right; transform: translateY(-50%); font-variant-numeric: tabular-nums; }
.agenda-hour.is-first { transform: translateY(10px); }
.agenda-hour.is-last { transform: translateY(-16px); }
.weekly-agenda-days { display: grid; grid-template-columns: repeat(7, minmax(128px, 1fr)); height: 100%; background-image: repeating-linear-gradient(to bottom, transparent 0 calc(var(--hour-height) - 1px), var(--line) calc(var(--hour-height) - 1px) var(--hour-height)); }
.weekly-agenda-day { position: relative; min-width: 0; height: 100%; border-right: 1px solid var(--line); }
.weekly-agenda-day:last-child { border-right: 0; }
.weekly-agenda-day.is-today { background: rgba(184, 107, 66, .035); }
.agenda-event { z-index: 2; display: block; margin: 5px; border-radius: 7px; color: var(--ink); }
.weekly-agenda-grid.is-enhanced .agenda-event { position: absolute; inset-inline: 5px; margin: 0; }
.agenda-event[open] { z-index: 40; }
.agenda-event > summary,
.agenda-event-static { display: flex; flex-direction: column; justify-content: center; height: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; line-height: 1.15; }
.agenda-event > summary { list-style: none; cursor: pointer; }
.agenda-event > summary::-webkit-details-marker { display: none; }
.agenda-event > summary:hover { filter: brightness(.98); }
.agenda-event > summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.agenda-event strong { display: block; min-width: 0; overflow: hidden; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.agenda-event time,
.agenda-event summary span { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.appointment-event.status-booked > summary { border-color: var(--ink); border-left: 4px solid var(--accent); background: var(--ink); color: var(--surface); }
.appointment-event.status-booked time,
.appointment-event.status-booked summary span { color: #dce5de; }
.appointment-event.status-completed > summary { border-color: #bfd0bb; border-left: 4px solid var(--sage); background: #edf2e9; }
.appointment-event.status-no_show > summary { border-color: #d8a47e; border-left: 4px solid var(--accent); background: #fae8dc; }
.free-event > summary { border: 2px dashed var(--sage); background: rgba(224, 238, 229, .35); }
.free-event > summary strong { color: #315e50; }
.blocked-event > summary,
.blocked-event .agenda-event-static { border: 1px dashed #a49e91; background: #f1ede4; color: #716c61; }
.past-event { opacity: .56; }
.past-event .agenda-event-static { border-style: dotted; background: rgba(238, 231, 216, .46); }
.agenda-event-actions { position: absolute; top: calc(100% + 6px); left: 0; z-index: 50; display: flex; flex-wrap: wrap; gap: 8px; width: 224px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: 0 14px 36px rgba(15, 28, 26, .18); }
.agenda-event.is-late .agenda-event-actions { top: auto; bottom: calc(100% + 6px); }
.weekly-agenda-day:nth-child(n+6) .agenda-event-actions { right: 0; left: auto; }
.agenda-event-actions p { flex-basis: 100%; margin: 0 0 2px; font-size: 13px; line-height: 1.35; }
.agenda-event-actions p span { color: var(--muted); font-size: 11px; }
.agenda-event-actions .button { flex: 1 1 auto; min-height: 40px; padding: 8px 11px; }
.agenda-event-actions form { display: flex; flex: 1 1 auto; }
.agenda-event-actions form .button { width: 100%; }

@media (max-width: 1180px) {
    .agenda-week-toolbar { align-items: flex-start; flex-direction: column; }
    .agenda-legend { justify-content: flex-start; }
}

@media (max-width: 800px) {
    .main-content.agenda-page-content { width: min(100% - 32px, 760px); }
    .agenda-week-layout { grid-template-columns: 1fr; }
    .agenda-week-layout .calendar-panel { position: static; }
    .weekly-agenda-grid { min-width: 960px; }
}

@media (max-width: 620px) {
    .agenda-page-heading { margin-bottom: 22px; }
    .agenda-week-toolbar { padding-bottom: 16px; }
    .agenda-legend { gap: 7px 12px; }
    .week-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
    .weekly-agenda-scroll { border-radius: 8px; }
}

/* La vista Giorno usa la stessa agenda, con una sola colonna. */
.agenda-view-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.agenda-view-controls > .button { margin-top: 0; }
.agenda-view-switch { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.agenda-view-switch a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 16px; border-radius: 5px; font-size: 14px; font-weight: 600; text-decoration: none; }
.agenda-view-switch a[aria-current="page"] { background: var(--ink); color: var(--surface); }
.agenda-view-switch a:hover:not([aria-current="page"]) { background: var(--soft); }
.weekly-agenda-grid.is-day-view { min-width: 0; }
.is-day-view .weekly-agenda-header { grid-template-columns: 62px minmax(0, 1fr); }
.is-day-view .weekly-agenda-days { grid-template-columns: minmax(0, 1fr); }
.weekly-agenda-grid.is-enhanced .weekly-agenda-timeline { min-height: 0; }
.is-day-view .agenda-event strong { font-size: 15px; }
.is-day-view .agenda-event-actions { max-width: calc(100% - 10px); width: 300px; }
.calendar-date.is-selected-day { background: var(--sage-soft); box-shadow: inset 0 0 0 2px var(--sage); }
.calendar-table:not(.date-picker-table) .calendar-date.has-free-slots.is-selected-day { box-shadow: inset 0 0 0 2px var(--sage), 0 0 0 2px var(--sage-soft); }
@media (max-width: 620px) {
    .agenda-page-heading { flex-direction: column; align-items: flex-start; gap: 16px; }
    .agenda-view-controls { width: 100%; justify-content: space-between; }
}
