/* Shared single-line field size for public pages, management and dashboard. */
:root{--field-height:32px}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),select:not([multiple]):not([size])){height:var(--field-height)!important;min-height:var(--field-height)!important;padding-block:4px!important;line-height:1.3!important;min-width:0;max-width:100%;box-sizing:border-box}
body input[type=file]{padding-block:4px!important}
body input[type=file]::file-selector-button{height:22px;min-height:22px!important;padding-block:2px!important;margin-block:0;font:inherit}
body textarea{min-height:64px;line-height:1.4;resize:vertical}
/* Keep scrolling available while excluding pinch and double-tap zoom.
   Low specificity preserves dedicated drag controls with touch-action:none. */
html,body,body *{touch-action:pan-x pan-y}
/* Keep one clear focus border on shared form fields, without a second ring
   around their existing border. Native file, checkbox and radio focus is unchanged. */
.booking-field :is(input:where(:not([type=checkbox]):not([type=radio]):not([type=file])),textarea):focus{border-color:var(--gold);outline:none;outline-offset:0}
/* Management search fields share the contact picker's magnifier. Keep the
   existing field height and exclude the picker, which already owns its SVG. */
body.team-body :is(input[type=search],input.dashboard-search):not([data-contact-search]){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8afa5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:10px center!important;background-size:16px 16px!important;padding-left:32px!important}
/* Gestion: draw focus on the control's existing surface, rather than adding
   an outer ring around the 44 px touch area and its inset button border. */
body.team-body :is(input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image])),select,textarea):focus{border-color:var(--gold)!important;outline:none!important;outline-offset:0;box-shadow:none}
/* Native check/radio/file controls have no authored field border to recolour;
   keep a single gold focus line and leave their native operation intact. */
body.team-body :is(input[type=checkbox],input[type=radio],input[type=file]):focus-visible{outline:1px solid var(--gold)!important;outline-offset:2px!important;box-shadow:none;accent-color:var(--gold)}
body.team-body input[type=file]:focus-visible::file-selector-button{outline:none;border-color:var(--gold)}
body.team-body :is(button,.team-nav a,.staff-access,.control-shortcuts a,.dashboard-actions a,.dashboard-toolbar>a,.network-catalogue-tools a,.reservation-back):not(:where(.message-keyboard button,.message-contact-handle,.message-group-name-button,.favicon-preview-button,.app-icon-preview-button,.profile-photo-preview-button)):focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none}
body.team-body :is(button,.team-nav a,.staff-access,.control-shortcuts a,.dashboard-actions a,.dashboard-toolbar>a,.network-catalogue-tools a,.reservation-back):not(:where(.message-keyboard button,.message-contact-handle,.message-group-name-button,.favicon-preview-button,.app-icon-preview-button,.profile-photo-preview-button)):focus-visible::before{border:2px solid var(--gold)!important}
/* A dark border remains visible against a selected or gold-filled surface. */
body.team-body :is(.gold-button,.team-nav a[aria-current],.catalog-tabs button[aria-pressed=true],.collaborator-categories button[aria-pressed=true]):focus-visible::before{border-color:var(--bg)!important}
/* These preview buttons intentionally have no pseudo-element surface. */
body.team-body :is(.favicon-preview-button,.app-icon-preview-button,.profile-photo-preview-button):focus-visible{outline:none!important;box-shadow:none}
body.team-body :is(.favicon-preview-button,.app-icon-preview-button):focus-visible>img,body.team-body .profile-photo-preview-button:focus-visible :is(.profile-avatar,.profile-photo-local){border-color:var(--gold)}
/* Bordered card links retain one inset focus line without changing geometry. */
body.team-body :is(.dashboard-module-grid a,.dashboard-restaurants-grid .dashboard-unit,.dashboard-unit>a,.reservation-restaurant-card,.message-contact-link):focus-visible{border-color:transparent;outline:2px solid var(--gold)!important;outline-offset:-2px!important;box-shadow:none}
/* Password disclosure already highlights its enclosing border on focus. */
body.team-body .account-password>summary:focus-visible{outline:none}
/* Collaborator rows retain their summary focus line; the decorative action
   label keeps its normal closed/open styling instead of a second highlight. */
body.team-body .manager-profile:not([open])>summary:focus-visible .manager-open:not(:hover){background:transparent;border-color:var(--line);color:var(--gold)}
body.team-body .manager-profile[open]>summary:focus-visible .manager-open:not(:hover){background:var(--surface-2);border-color:var(--gold);color:var(--gold)}
/* Closing/dismissing a Gestion panel uses a neutral focus/hover border on
   the same surface. Saving, deleting and signing out keep their action style. */
body.team-body :is(button[data-dialog-close],button[data-close],button[data-rename-cancel],button.close-dialog,button.notification-dismiss,button#cancel-delete):is(:hover,:focus-visible){--team-button-border:var(--text);color:var(--text);outline:none!important;outline-offset:0!important;box-shadow:none}
body.team-body :is(button[data-dialog-close],button[data-close],button[data-rename-cancel],button.close-dialog,button.notification-dismiss,button#cancel-delete):hover::before{border:1px solid var(--text)!important}
body.team-body :is(button[data-dialog-close],button[data-close],button[data-rename-cancel],button.close-dialog,button.notification-dismiss,button#cancel-delete):focus-visible::before{border:2px solid var(--text)!important}
