/* Authoritative shared UI rules. See docs/design-fidelity-2026-10-03/RULEBOOK.md.
   Screen files own layout and approved variants; they do not resize these actions. */
body:is(.is-customer,.is-staff) :is(.primary,.entry-primary,.secondary,.entry-secondary,.destructive,.attention,.save-action):not(:where(.scan,.activity-link,#recent-visits,#all-recent-visits,#email-resend)){
 display:flex;align-items:center;justify-content:center;gap:var(--space-2);
 min-height:var(--action-height);border-radius:var(--radius-pill);
 padding:var(--action-padding-y) var(--space-4);
 font-family:var(--sans);font-size:var(--text-body);font-weight:600;line-height:var(--action-line-height);
 letter-spacing:0;text-transform:none;text-align:center;
}
/* A border occupies part of the same 52px box. It must not add two pixels. */
body:is(.is-customer,.is-staff) :is(.secondary,.entry-secondary,.destructive,.attention,#make-recovery,#save-worked-days):not(:where(.activity-link,#email-resend)){padding-block:calc(var(--action-padding-y) - 1px)}
/* Compact actions and device choices keep their accepted size, with pill geometry. */
body :is(.device-picker button,.card-corner-action,#refresh-shifts,[data-reserve-member]:not(.member-action-tile),.receipt-drinks,.entry-link){border-radius:var(--radius-pill);text-align:center}
body #taste-form legend,body #seat-form .arrival-picker legend,body .party-picker h3{font-size:var(--text-section);font-weight:600;line-height:1.35}
body .party-picker h3{margin:0 0 var(--space-3)!important}
/* The form variant used to subtract 4px twice from the common inner-page rhythm. */
body #modal.page-sheet:has(#seat-form) .sheet-toolbar{padding-bottom:var(--space-5)}
body #modal.page-sheet:has(#seat-form) .sheet-content>h2{margin-bottom:var(--space-5)}
/* Shared reservation geometry belongs to the card, never its outer pager. */
body .reservation-panel{padding:0;margin:0;background:none;border:0;border-radius:0}
body #modal .member-booking-summary{margin-bottom:20px}
body #modal .booking-guest-name{font-size:28px;line-height:1.35}

body .calendar-night small{font-weight:500}
body #modal.qr-sheet .sheet-content>h2{line-height:1.35}
body #modal.qr-sheet .sheet-content>.qr-caption{font-size:var(--text-meta);line-height:1.35}
body #modal .used-rewards-heading{font-size:var(--text-section);line-height:1.35}
body .reward-grid-ready .reward-counter-label{font-weight:500}
/* Signup has a compact introduction; login and verification retain 16px copy. */
body .email-entry:has(input[name=birthday]) .entry-description{font-size:var(--text-small);line-height:20px}
body #manage-steps{font-size:var(--text-small);font-weight:500;line-height:1.35;justify-content:center}
body #owner-content .staff-access-note{font-size:var(--text-small);line-height:21px}
body #owner-content .numbers-grid span{font-size:var(--text-small);font-weight:500;line-height:1.35}
body #owner-content>.numbers-grid~h3{font-size:var(--text-section);line-height:1.35}
body .visit-type-options button,body.is-staff .tags .tag,body .search-mode button{font-weight:500}

/* Preserve the accepted compact worked-days action; only its outline was requested. */
body.is-staff #save-worked-days{min-height:48px;padding:11px 16px}
body.is-customer .welcome-actions .entry-primary{padding-block:calc(var(--action-padding-y) - 1px)}

/* S05/S06: the card gap owns this space; do not add the generic choice margin. */
body .visit-drinks .preference-choices{margin-top:0;padding:0}

/* M09: unavailable milestones share the empty card's muted treatment.
   Their remaining-visit values still come from the unchanged reward journey. */
body .reward-grid.is-empty>.reward-milestone{color:var(--muted)}

/* Named 44px action: S01 recent visits keeps its compact height and pill. */
body.is-staff .service-home #all-recent-visits{height:44px;min-height:44px;padding:10px 16px;border-radius:var(--radius-pill)}
/* M10 keeps its 24px type and existing close-button clearance. */
body #modal.reward-ticket-sheet .sheet-content>h2{text-wrap:balance}

/* Approved Figma 517:2336: equal optical slots, 64px count / 58px QR glyph. */
body .foundation-reward-row :is(.foundation-reward,.foundation-qr){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}
body .foundation-reward-row .member-tile-symbol{display:flex;align-items:center;justify-content:center;flex:none;width:100%;height:64px;padding:0;border:0;min-width:0}
body .foundation-home .foundation-reward .member-tile-symbol>strong{font-size:54px;font-weight:500;line-height:70.2px}
body .foundation-reward-row .member-tile-symbol>.material-symbols-rounded{font-size:48px;line-height:58px;width:48px;height:64px}
body .foundation-reward-row .member-tile-label{margin:0;padding:0;border:0;min-width:0;font-size:15px;font-weight:600;line-height:20px;text-align:center}

/* Busy state belongs to the visible profile control, without replacing its icon. */
body [data-profile-trigger]{position:relative}
body [data-profile-trigger][aria-busy=true]::after{content:'';position:absolute;right:4px;bottom:4px;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:profile-loading .8s linear infinite}
body [data-profile-trigger][aria-current=page]{cursor:default}
@keyframes profile-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body [data-profile-trigger][aria-busy=true]::after{animation:none}}
/* Approved 602:2872 flows: existing controls, one row structure and shared states. */
body .dated-visits{display:grid;gap:16px}
body .dated-visit{display:flex;flex-direction:column;gap:12px;background:var(--surface);border-radius:24px;padding:16px;min-width:0}
body .dated-visit h3{font-size:22px;line-height:1.45;margin:0}
body .dated-visit p{font-size:14px;line-height:1.45;color:var(--muted);margin:0}
body .dated-visit .entry-secondary{margin:0}
body .wording-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;border:0;margin:0}
body .wording-scope label{position:relative;margin:0;min-width:0}
body .wording-scope input{position:absolute;opacity:0;width:1px;height:1px}
body .wording-scope span{display:flex;justify-content:center;align-items:center;text-align:center;border:1px solid var(--line);border-radius:999px;padding:12px;min-height:52px;font-size:16px;line-height:24px}
body .wording-scope input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--black)}
body .wording-scope input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}
body .wording-preview{padding:16px;background:var(--cream);color:var(--black);border-radius:24px;display:grid;gap:12px;overflow-wrap:anywhere}
body .wording-preview small{font-size:11px;font-weight:600}
body .wording-preview h3{font-size:26px;line-height:1.45;margin:0}
body #wording-preview-content{display:grid;gap:12px}
body #wording-preview-content [data-night-slot]{font-size:16px;line-height:1.45;color:inherit}
body #wording-scope-label{color:var(--orange)}
body .diary-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;margin-bottom:8px}
body .diary-controls #diary-date{min-width:0;margin:0}
body .diary-controls #diary-date summary{padding:14px 12px;font-size:16px;line-height:24px}
body .diary-controls #add-reservation{margin:0;padding-inline:8px;min-height:52px}
body .diary-refresh{display:block;width:auto;font-size:14px;color:var(--muted);margin:0 0 16px;padding:4px 0;text-align:left}
body .diary-pending-panel{display:flex;gap:16px;align-items:center;width:100%;padding:16px;border-radius:24px;background:var(--pink);color:var(--black);text-align:left;margin:16px 0}
body .diary-pending-panel>strong{font-size:40px;line-height:1.35;font-weight:500;min-width:64px}
body .diary-pending-panel>span{display:flex;flex-direction:column;gap:8px;min-width:0}
body .diary-pending-panel b{font-size:16px;line-height:1.45;font-weight:600}
body .diary-pending-panel small{font-size:12px;line-height:1.45;text-decoration:underline}
body .diary-no-pending{margin:16px 0}
body .pending-date-list{display:grid;gap:12px}
body .reservation-diary .booking-row{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:24px;background:var(--surface);color:var(--ink);text-align:left}
body .reservation-diary .booking-row .booking-time{flex:0 0 54px;min-width:54px;white-space:nowrap;font-size:16px;line-height:1.35;font-weight:500;padding:0}
body .reservation-diary .booking-row .booking-row-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
body .reservation-diary .booking-row .booking-row-main>strong{font-size:22px;line-height:1.35;font-weight:600}
body .reservation-diary .booking-row .booking-row-main>small{font-size:14px;line-height:1.35;color:var(--muted)}
body .reservation-diary .booking-status{display:inline;background:none;color:inherit;font-size:inherit;font-weight:400;border:0;border-radius:0;padding:0}
body .reservation-diary .booking-row--pending .booking-row-main>small:first-of-type{color:var(--attention)}
body .reservation-diary .booking-labels:empty{display:none}
@media(max-width:359px){body .diary-controls{grid-template-columns:1fr}body .diary-controls #add-reservation{width:100%}}

body #wording-date{margin-bottom:16px}

/* Approved 616 / 656 shared member renderer and role-specific date selection. */
body .foundation-tonight{display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:24px;background:var(--cream);color:var(--black);width:100%;box-sizing:border-box}
body .foundation-tonight-main{display:flex;gap:16px;align-items:flex-start;width:100%}
body .foundation-tonight .night-icon{flex:0 0 48px;padding-top:30px}
body .foundation-tonight .night-content{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1;overflow-wrap:anywhere}
body .foundation-tonight .night-content small{font-size:12px;line-height:18px;margin-bottom:4px;color:inherit}
body .foundation-tonight .night-title{font-size:28px;line-height:33.6px;min-height:40px;font-weight:600;letter-spacing:0;margin:0;color:inherit}
body .foundation-tonight .night-description,body .foundation-tonight .night-also,body .foundation-tonight .night-ending,body .foundation-tonight .night-status{font-size:14px;line-height:1.35;color:inherit}
body .foundation-tonight .night-also{font-weight:500;margin-top:12px}
body .foundation-tonight .foundation-seat{width:100%;min-height:52px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;padding:12px 16px;margin:0;font-size:16px;line-height:24px;font-weight:600}
body .foundation-tonight .foundation-seat:disabled{opacity:.65}
body .booking-month-grid>button[aria-pressed=true]{background:transparent;color:inherit;outline:2px solid var(--attention);outline-offset:-2px}
body .booking-month-grid>button[aria-current=date]{background:#e66c32;color:var(--black)}
body .booking-month-grid>button.is-closed{color:var(--muted)}
body .booking-month-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
body .booking-month-grid>button{width:44px;max-width:100%;height:44px;min-width:0;justify-self:center;border-radius:50%}
body .diary-controls:has(details[open]){grid-template-columns:minmax(0,1fr)}
body #owner-calendar-date details>summary{font-size:18px}
body .wording-preview{padding:0;background:transparent;border-radius:0}
body #wording-preview-content{display:block}
body #wording-preview-content .night-title{font-size:28px;line-height:1.35}
body .night-icon-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:0;padding:0}
body .night-icon-choices button{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--surface);border-radius:16px;padding:12px;font-size:12px;border:1px solid transparent}
body .night-icon-choices button[aria-pressed=true]{border-color:var(--attention)}
body .night-editor-panel{padding:16px;border-radius:24px;background:var(--surface);display:grid;gap:8px}
body .night-editor-panel h3,body .night-editor-panel p{margin:0}
body .calendar-night .night-title{font-size:22px;line-height:30px;font-weight:600;overflow-wrap:anywhere}
body .summary-row{display:flex;flex-direction:row;align-items:center;gap:12px;width:100%;padding:20px;border:0;border-radius:24px;text-align:left;min-width:0}
body .summary-row-content{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0;overflow-wrap:anywhere}
body .summary-row-content small{font-size:12px;line-height:18px}
body .summary-row-content strong{font-size:18px;line-height:25px;font-weight:600}
body .summary-row-content>span{font-size:14px;line-height:21px}
body .summary-row-arrow{flex:0 0 24px;display:flex;align-items:center;justify-content:center}
body .rota-page.my-attendance .attendance-dates button[aria-current=date] .material-symbols-rounded{color:var(--black)}
body .rota-dates.attendance-grid button.is-worked{background:var(--attention);color:var(--black)}
body .rota-dates.attendance-grid button.is-leave{background:#aec987;color:var(--black)}
body .rota-dates.attendance-grid button[aria-pressed=true]{outline:2px solid var(--attention);outline-offset:2px}
body .shared-visit-detail{display:flex;flex-direction:column;gap:20px;width:100%;min-width:0}
body .shared-visit-detail .staff-member-head h1{font-size:34px;line-height:44px;font-weight:600;overflow-wrap:anywhere}
body .shared-visit-detail p{margin:0;font-size:14px;line-height:21px}
body .shared-visit-detail .visit-detail-state{font-weight:600}
body .visit-detail-section{display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--surface);border-radius:24px;min-width:0}
body .visit-detail-section h3{font-size:18px;line-height:25px;margin:0}
body .visit-detail-section .entry-secondary{margin:0}
body .reward-choice{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;min-height:104px;padding:20px;border:0;border-radius:24px;background:var(--bg);color:var(--ink);text-align:left;width:100%;overflow-wrap:anywhere;box-shadow:none}
body .reward-choice strong{font-size:18px;line-height:1.35;font-weight:600}
body .reward-choice span{font-size:14px;line-height:1.35}
body .reward-choice[aria-pressed=true]{background:var(--ink);color:var(--black);border:0;box-shadow:none}
body .reward-choice:disabled{opacity:.65}
body .member-taste-summary .drinks-action{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px}
body .visit-drinks [data-expand-drinks]{width:100%;height:auto;min-height:44px;background:transparent;border:0;border-radius:16px;color:inherit;font-size:16px}
body .foundation-tonight .night-note{font-size:14px;line-height:1.35;color:inherit}
body .booking-night-card:not(.is-requested){background:var(--attention);color:var(--black)}
body .used-reward{padding:20px;background:var(--bg);border-radius:24px;display:grid;gap:8px}

/* 646:4073 uses full-width text controls inside the shared visit sections. */
body.is-staff .shared-visit-detail .visit-drinks{padding:0;margin:0;gap:16px;background:transparent}
body.is-staff .shared-visit-detail .visit-detail-control{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:auto;min-height:44px;margin:0;padding:12px 16px;border:0;border-radius:16px;background:transparent;color:inherit;font-size:14px;line-height:20px;font-weight:500;cursor:pointer}
body .experience-picker[open]>.tags{margin-top:12px}

/* Scope saved-reward selection so older wallet rules cannot override its state. */
body .shared-visit-detail .reward-choice{background:var(--surface);color:var(--ink);margin:0}
body .shared-visit-detail .reward-choice span{color:inherit}
body .shared-visit-detail .reward-choice[aria-pressed=true]{background:var(--ink);color:var(--black);border:0;box-shadow:none}
/* Shared summary rows use status text, without legacy status badge fills. */
body .summary-row-content>small[class^="status-"]{background:transparent;color:inherit;padding:0;border:0;border-radius:0}
body .summary-row-content>small.status-pending{color:var(--pink)}

/* Keep shared night/editor sections on the existing 20px rhythm. */
body .night-detail-stack,body .review-queue,body #wording-edit,body #wording-review,body #wording-period{display:flex;flex-direction:column;gap:var(--space-5)}
body .night-detail-stack>.entry-secondary,body .review-queue>.diary-pending-panel{margin:0}
body .review-queue>label,body #wording-edit>label,body #wording-review>label,body #wording-period>label{display:flex;flex-direction:column;gap:var(--space-2);margin:0}
body #wording-review>label.check{flex-direction:row;align-items:center;gap:var(--space-3)}
body #owner-calendar-date,body #edit-night-wording{margin-bottom:var(--space-5)}
body .booking-proposal .fine{color:var(--black)}
body .booking-proposal .entry-secondary{color:var(--black);border-color:currentColor}

/* Keep wording actions in the usable viewport; only the editor content scrolls. */
body #modal.page-sheet:has(:is(#night-wording-form,#leave-form)){top:var(--visual-top,0px);bottom:auto;overflow:hidden;padding-bottom:var(--space-3)}
body #modal.page-sheet:has(:is(#night-wording-form,#leave-form)) .sheet-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--space-5)}
body #modal :is(#wording-actions,#leave-actions){flex:none;display:grid;gap:var(--space-2);padding-top:var(--space-3);background:var(--bg)}
body :is(#wording-actions,#leave-actions)>button{width:100%;margin:0;min-height:48px}
body :is(#wording-actions,#leave-actions) .form-save-status{margin:0}

/* Approved narrow feedback addendum: shared attendance dates and compact success. */
body #leave-edit,body #leave-review{display:grid;gap:var(--space-5)}
body #leave-edit p,body #leave-review p,body #leave-selection h3,body #leave-count{margin:0}
body #leave-calendar .rota-dates.attendance-grid{display:flex;flex-direction:column;gap:12px;margin:0}
body #leave-calendar .attendance-weekdays,body #leave-calendar .attendance-dates{display:grid;grid-template-columns:repeat(7,minmax(0,44px));justify-content:center;gap:4px}
body #leave-calendar .attendance-weekdays{text-align:center;color:var(--muted);font-size:12px;line-height:24px}
body #leave-calendar .attendance-dates button{display:grid;place-items:center;min-width:0;width:100%;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:14px;outline:0}
body #leave-calendar .attendance-dates button:disabled{opacity:.45}
body #leave-calendar .attendance-dates button.is-worked{background:var(--attention);color:var(--black);opacity:1}
body #leave-calendar .attendance-dates button[aria-current=date]{background:var(--calendar-today-fill);color:var(--black)}
body #leave-calendar .attendance-dates button.is-leave{background:var(--calendar-holiday-fill);color:var(--black);opacity:1}
body #leave-calendar .attendance-dates button[aria-pressed=true]{outline:2px solid var(--attention);outline-offset:-2px}
body #leave-calendar .attendance-dates button:focus-visible{box-shadow:0 0 0 2px var(--ink)}
body #leave-dates{display:grid;gap:var(--space-2)}
body #toast.toast-compact{width:fit-content;max-width:calc(100vw - 32px);min-height:44px;padding:10px 12px;border-radius:14px;background:var(--surface);color:var(--ink);font-size:14px;line-height:20px;font-weight:500;bottom:calc(max(var(--safe-area-bottom,0px),var(--bottom-bar-height,0px)) + 16px);box-shadow:none}

/* Approved retained visit page and focused section sheets, Figma 682:4427. */
body .shared-visit-detail{gap:24px}
body .visit-section-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body .visit-section-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;aspect-ratio:1;min-width:0;padding:16px;background:var(--surface);color:var(--ink);border:0;border-radius:var(--radius-card);text-align:left}
body .visit-section-tile strong{font-size:14px;line-height:1.35;font-weight:600}
body .visit-section-tile strong span{display:block}
body .visit-section-tile>.material-symbols-rounded:last-child{position:absolute;right:16px;top:16px}
body .experience-correction-choices{display:flex;flex-direction:column;gap:8px}
body #draft-section-form{display:flex;flex-direction:column;gap:16px}
/* Shared title row keeps arrows aligned independently of supporting copy. */
body .calendar-night>.night-content{padding-right:0;width:100%}
body .night-title-row{display:flex;align-items:center;gap:12px;width:100%}
body .night-title-row .night-title{flex:1;min-width:0;font-size:18px;line-height:25.2px}
body .night-title-row>.material-symbols-rounded{flex:none}
body .calendar-night{gap:12px}
body .calendar-night small{font-size:14px;line-height:21px}
body .calendar-night [data-night-slot]{line-height:21px}
body .night-icon-grid{display:grid;grid-template-columns:repeat(6,50px);gap:10px;width:100%;justify-content:start}
body .night-icon-grid button{display:grid;place-items:center;width:50px;height:50px;min-height:50px;padding:0;border:0;border-radius:16px;background:var(--black);color:var(--ink)}
body .night-icon-grid button[aria-pressed=true]{background:var(--cream);color:var(--black)}
@media(max-width:389px){body .night-icon-grid{grid-template-columns:repeat(auto-fit,50px)}}
body .booking-date-picker summary{box-sizing:border-box;height:52px}
body .booking-date-picker summary:after{display:flex;align-items:center;justify-content:center;flex:0 0 20px;line-height:20px}

body .booking-date-picker summary:after{content:none}
body .booking-date-picker summary>span:first-child{flex:1;min-width:0}
body .booking-date-picker summary>.material-symbols-rounded{flex:none}
/* These approved editors are bottom sheets over the retained visit/night page. */
body #modal.focused-sheet{box-sizing:border-box;width:100%;max-width:430px;max-height:calc(100dvh - 80px);inset:auto 0 0;margin:0 auto;padding:24px 20px max(20px,env(safe-area-inset-bottom));border:0;border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--surface);overflow-y:auto}
body #modal.focused-sheet .sheet-toolbar{display:none}
body #modal.focused-sheet .sheet-content{display:flex;flex-direction:column;gap:16px;padding:0;min-width:0}
body #modal.focused-sheet .sheet-content>h2{padding:0;margin:0;min-height:0;font-size:22px;line-height:27.5px;font-weight:700}
body #modal.focused-sheet p{font-size:14px;line-height:21px;margin:0}
body #modal.focused-sheet form{display:flex;flex-direction:column;gap:16px;margin:0}
body #modal.focused-sheet :is(.primary,.sheet-back){margin:0;min-height:52px}
body #modal.focused-sheet .drinks-save-bar{display:flex;flex-direction:column;gap:16px;position:static;padding:0;margin:0;background:transparent;border:0}
body #modal.focused-sheet .drink-pill-group{padding:16px;margin:0}
body #modal.focused-sheet .experience-correction-choices .drink-check{position:relative;display:block;margin:0;min-height:44px}
body #modal.focused-sheet:not(.page-sheet):not(.qr-sheet) .sheet-content>h2{padding:0;margin:0;min-height:0;font-size:22px;line-height:27.5px}
body #modal.focused-sheet .sheet-content>p{font-size:14px!important;line-height:21px!important;margin:0!important}
body #modal.focused-sheet:has(.night-icon-grid) .sheet-content{gap:20px}

body .night-symbol{display:inline-block;flex:none;background:currentColor;-webkit-mask:var(--night-symbol) center / contain no-repeat;mask:var(--night-symbol) center / contain no-repeat}

body #modal.focused-sheet:not(.page-sheet):not(.qr-sheet){padding:24px 20px max(20px,env(safe-area-inset-bottom))}

/* Keep disabled form actions discernible against a sheet without implying readiness. */
body #modal.focused-sheet button.save-action:disabled{padding-block:calc(var(--action-padding-y) - 1px);border:1px solid var(--muted);background:transparent;color:var(--muted)}
body #modal.focused-sheet .sheet-back{border:1px solid var(--muted);color:var(--cream);border-radius:999px}
body .booking-proposal{background:var(--surface);color:var(--primary-action)}
body .booking-proposal .fine{color:var(--cream)}
body .booking-proposal .entry-secondary{border-color:var(--muted);color:var(--primary-action)}
body .dated-visit .summary-row-arrow{align-self:flex-start;margin-top:26px}
body .dated-visit .visit-experiences-summary{display:block;color:var(--muted);margin-top:8px}

body #modal:has(#reservation-status) .modal-back{display:inline-flex}
body .owner-night-main{display:flex;align-items:flex-start;gap:16px;margin-top:12px}
body .owner-night-main .night-content{flex:1;min-width:0;overflow-wrap:anywhere}
body .owner-night-main .night-icon{flex:0 0 48px}
body #modal.focused-sheet .sheet-back:disabled{color:var(--muted);border-color:var(--line)}

/* Approved 711 shared cards and explicit label/value summaries. */
body .booking-row .summary-row-content>small.status-pending{color:var(--attention)}
body .member-reservation-list .reservation-card{width:100%;text-align:left}
body .dated-visit .summary-row-content{gap:16px}
body .dated-visit .summary-row-arrow{margin-top:0}
body .dated-visit:has(.summary-row-content>small) .summary-row-arrow{margin-top:34px}
body .visit-summary-slot,body .visit-summary-slot>span{display:block}
body .visit-summary-slot+.visit-summary-slot{margin-top:16px}
body .foundation-tonight .night-support{display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:20px;color:inherit}
body .foundation-tonight .night-support>span{font-size:14px;line-height:20px;color:inherit}
body .owner-tonight{background:transparent;padding:0}
body .menu-drink.is-hidden{opacity:.5}
body .experience-fields{display:flex;flex-direction:column;gap:24px}
body .experience-core{padding:20px;background:var(--surface);border-radius:24px}
body .experience-lifecycle{font-size:14px;color:var(--muted)}
body .holiday-list{display:flex;flex-direction:column;gap:24px}
body .holiday-list .summary-row{align-items:flex-start}
body #modal:has(.holiday-list) .sheet-content{display:flex;flex-direction:column;gap:24px}

body #modal:has(.holiday-list) .sheet-content>h2{font-size:28px;line-height:1.35;margin:0}
body #modal:has(.holiday-list) .sheet-content>.search-mode,body #modal:has(.holiday-list) .sheet-content>label{margin:0}
body .holiday-list .summary-row{background:var(--surface);border-radius:24px;padding:20px;margin:0}
body .holiday-list .summary-row-content{gap:16px}
body .holiday-list .summary-row-arrow{margin:0}
body .holiday-request-status{display:block;color:var(--muted);margin-top:16px}

/* Figma307:2562: one shape, native checked state, caller-owned width.
   The selected padding replaces the unselected 1px border inside the same box,
   preserving text bounds and wrapping without a hidden outline underneath. */
body :is(#modal,.trends-period) label.selection-control{
 --selection-fill:var(--ink);--selection-outline:var(--line);
 --selection-text:var(--ink);--selection-background:var(--surface);
 position:relative;display:block;margin:0;padding:0;border:0;
 min-width:0;min-height:var(--selection-height,45px);border-radius:var(--radius-pill);
 background:transparent;color:inherit;cursor:pointer;box-shadow:none;
}
body :is(#modal,.trends-period) label.selection-control[data-selection-tone=flavour]{
 --selection-fill:var(--flavour);--selection-outline:var(--flavour);
 --selection-text:var(--flavour);--selection-background:transparent;
}
body #modal .weekday-options .selection-control{--selection-min-width:60px}
body :is(#modal,.trends-period) .selection-control>span.selection-pill{
 box-sizing:border-box;display:flex;align-items:center;justify-content:center;
 width:100%;min-width:var(--selection-min-width,0px);min-height:var(--selection-height,45px);
 padding:var(--space-3);border:1px solid var(--selection-outline);
 border-radius:var(--radius-pill);background:var(--selection-background);
 color:var(--selection-text);font-family:var(--sans);font-size:14px;
 font-weight:500;line-height:1.35;text-align:center;overflow-wrap:break-word;
 box-shadow:none;
}
body :is(#modal,.trends-period) .selection-control>input:checked+span.selection-pill{
 padding:calc(var(--space-3) + 1px);border:0;outline:0;
 background:var(--selection-fill);color:var(--black);box-shadow:none;
}
body :is(#modal,.trends-period) .selection-control>span.selection-pill::before,
body :is(#modal,.trends-period) .selection-control>span.selection-pill::after{content:none;display:none}
body :is(#modal,.trends-period) .selection-control:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:3px}
body :is(#modal,.trends-period) .selection-control:has(input:disabled){opacity:.6;cursor:default}

/* Approved Undo dialog1201:4005; canonical52px actions remain shared. */
body #modal.focused-sheet.undo-sheet:not(.page-sheet):not(.qr-sheet){width:calc(100% - 40px);max-width:350px;inset:auto 0 20px;padding:20px;border-radius:var(--radius-card)}
body #modal.undo-sheet .undo-dialog{display:flex;flex-direction:column;gap:16px;min-width:0}
body #modal.undo-sheet .undo-dialog>h2{margin:0;font-size:24px;font-weight:600;line-height:1.4;letter-spacing:0;overflow-wrap:break-word}
body #modal.undo-sheet .undo-dialog>.undo-description{margin:0;font-size:16px;line-height:24px;font-weight:400}
body #modal.undo-sheet .undo-receipt p,body #modal.undo-sheet .undo-feedback{font-size:14px;line-height:24px;font-weight:400;overflow-wrap:break-word}
body #modal.undo-sheet .undo-receipt,body #modal.undo-sheet .undo-member{display:flex;flex-direction:column;gap:16px}
body #modal.undo-sheet .undo-dialog>button{width:100%;margin:0}
body #modal.undo-sheet .sheet-pending{display:none}

/* Approved custom-target1202:4617/4656/4689; shared fields/navigation/actions. */
body #modal.page-sheet:has(.reward-target-screen){padding-top:20px}
body #modal .reward-target-screen,body #modal .reward-target-screen form{display:flex;flex-direction:column;gap:20px;margin:0;min-width:0}
body #modal .reward-target-screen h2{margin:0;padding:0;font-size:28px;line-height:33.6px;font-weight:600;letter-spacing:0}
body #modal .reward-target-screen label{font-size:14px;line-height:20px;font-weight:600}
body #modal .reward-target-screen label input{margin-top:0;height:54px;min-height:54px;padding:14px 16px;font-size:16px;line-height:24px}
body #modal .reward-target-screen :is(.primary,.secondary){margin:0;min-height:52px}
body #modal .reward-target-note,body #modal .reward-impact p{margin:0;font-size:14px;line-height:21px;font-weight:400;color:var(--muted)}
body #modal .reward-impact{display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:24px;background:var(--surface)}
body #modal .reward-impact h3{margin:0;font-size:16px;line-height:24px;font-weight:600;letter-spacing:0}

/* Current canonical reservation974:44: date-first facts in every role/variant. */
body .reservation-card{position:relative;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;min-width:0;min-height:0;margin:0;padding:20px;border:0;border-radius:24px;background:var(--attention);color:var(--black);text-align:left}
body .reservation-card .reservation-header{display:flex;align-items:center;gap:12px;width:100%}
body .reservation-card .reservation-facts{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0}
body .reservation-card .reservation-state{font-size:12px;line-height:18px;font-weight:500;color:inherit}
body .reservation-card .reservation-date{margin:0;font-size:22px;line-height:30px;font-weight:600;overflow-wrap:anywhere}
body .reservation-card .reservation-time{display:flex;flex-direction:row;align-items:baseline;gap:0;width:auto;flex:none;color:inherit;white-space:pre-wrap}
body .reservation-card .reservation-time>span{font-size:16px;line-height:26px;font-weight:500}
body .reservation-card .reservation-time>span[hidden]{display:none}
body .reservation-card .reservation-time>span[hidden]+.reservation-detail-separator{display:none}
body .reservation-card .reservation-edit{position:absolute;right:20px;top:50%;transform:translateY(-50%);display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:0;color:inherit}
body .reservation-card:has(.reservation-edit) .reservation-facts,body .reservation-card:has(.reservation-edit)>.reservation-footer{padding-right:56px}
body .reservation-card>.reservation-footer{margin:0;font-size:12px;line-height:18px;font-weight:500;overflow-wrap:anywhere;color:inherit}
body .reservations-sheet .booking-list-heading{font-size:18px;line-height:24.3px;font-weight:600;margin:0 0 20px}
body .reservations-sheet .booking-list{margin-top:0}
body .foundation-reward-row .member-tile-label{display:flex;align-items:center;justify-content:center;height:24px}
body .foundation-reward-row .foundation-reward .member-tile-label{font-size:16px;font-weight:500;line-height:20.8px}
body .foundation-home .foundation-experiences{gap:16px;padding:20px}
body .foundation-home .foundation-experiences>strong{display:grid;place-items:center;flex:none;width:48px;height:48px;font-size:24px;line-height:32px}
body .foundation-home .foundation-taste{padding:20px;gap:16px}
body .foundation-taste .foundation-preference-heading{gap:12px}
body .foundation-taste .foundation-preference-heading strong{font-size:18px;line-height:24px}
body .foundation-taste .taste-group{gap:12px}
body .foundation-taste .taste-group-label{font-weight:500;line-height:18px}
body .foundation-taste .foundation-drink,body .foundation-taste .flavour-chip{width:auto;flex:none;min-height:0;min-width:0;height:32px;padding:6px 12px;border:0;border-radius:999px;font-size:14px;line-height:20px;font-weight:600}
body .foundation-taste .foundation-drink{background:var(--primary-action);color:var(--black)}
/* User correction: retain72x50 logo size; align visible ink, not padded artboard. */
body .wordmark,body .page-logo{transform:translateX(-9.1408px)}
body .page-sheet .sheet-toolbar:not(:has(.page-logo)):before{transform:translateX(-9.1408px)}

body #modal.reservations-sheet.page-sheet,body #modal.reservation-editor.page-sheet,body #modal.member-reservation-detail.page-sheet{padding-top:20px;padding-bottom:20px}
body #modal:is(.reservations-sheet,.reservation-editor,.member-reservation-detail).page-sheet .sheet-toolbar{height:72px;min-height:72px;padding-bottom:20px}
body #modal:is(.reservations-sheet,.reservation-editor,.member-reservation-detail).page-sheet .sheet-content>h2{min-height:0;font-size:28px;line-height:33.6px;padding:0;margin:0 0 20px}
body #modal.reservations-sheet .booking-empty{font-size:18px;line-height:24.3px;margin:0 0 20px}
body #modal.reservations-sheet .booking-list:empty,body #modal.reservations-sheet .booking-pagination:empty{display:none}
body #modal.member-reservation-detail .booking-actions{margin:20px 0;gap:20px}
body #modal.member-reservation-detail #cancel-seat{height:44px;min-height:44px;font-size:14px;font-weight:500;color:var(--orange);text-decoration:underline;padding:0;background:transparent;border:0}
body #modal.member-reservation-detail #all-reservations{margin:0}
body #modal.reservation-editor #seat-back{margin:0;width:100%}

body #modal.reservations-sheet.page-sheet .sheet-content>h2{line-height:39.2px}
body .reservations-sheet .booking-list-heading{line-height:25.2px}
body .member-reservation-list{gap:20px}

/* Shared owner preview/member card text: preserve entered lines and wrap long copy. */
body .foundation-tonight .night-content{min-width:0;overflow-wrap:anywhere}
body .foundation-tonight .night-description{white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;max-height:40px}

/* Attendance actions are separate controls, never status badges. */
body #modal .booking-actions{gap:20px}
body .booking-actions .booking-attendance-action{width:100%;min-height:52px;margin:0;padding:12px 20px;border:1px solid currentColor;border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-align:center}
body .booking-actions .booking-attendance-action:disabled{opacity:.45}

/* Member reservation status cues; confirmed retains the existing yellow. */
body .reservation-card--home.is-requested,body.is-member .reservation-card--interactive.is-requested{background:var(--pink);color:var(--black)}
