.admin-page {
  --bg: var(--admin-bg);
  --surface: var(--admin-surface);
  --surface-warm: var(--admin-surface-warm);
  --card: var(--admin-card);
  --ink: var(--admin-ink);
  --text: var(--admin-ink);
  --muted: var(--admin-muted);
  --text-muted: var(--admin-muted);
  --wine: var(--admin-ink);
  --wine-2: var(--admin-ink-strong);
  --brand: var(--admin-accent);
  --brand-text: var(--admin-accent-strong);
  --accent: var(--admin-accent);
  --accent-strong: var(--admin-accent-strong);
  --gold: var(--admin-accent);
  --line: var(--admin-line);
  --focus: var(--admin-focus);
  --success: var(--admin-success);
  --danger: var(--admin-danger);
  --on-brand: var(--admin-on-accent);
  --on-dark: var(--admin-on-accent);
  color-scheme: light;
  min-height: 100vh;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
.admin-page::before { display: none; }
.admin-shell { width: calc(100% - 1rem); max-width: none; margin: 0 auto; padding: .65rem 0 1.5rem; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .35rem; }
.admin-back { display: inline-flex; min-height: 34px; align-items: center; color: var(--wine); font-size: .78rem; font-weight: 700; text-decoration: none; }
.admin-back:hover { text-decoration: underline; }
.admin-heading { max-width: none; margin-bottom: .65rem; }
.admin-heading > p:first-child, .admin-kicker { margin: 0 0 .2rem; color: var(--accent); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-heading h1 { margin: 0 0 .15rem; color: var(--wine); font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1.05; }
.admin-heading > span { color: var(--muted); font-size: .78rem; }
.admin-contact-summary { margin: .3rem 0 0; color: var(--wine); font-size: .75rem; font-weight: 600; }
.admin-login, .admin-form-card, .admin-wine-list { border: 1px solid var(--line); border-radius: 6px; background: var(--card); box-shadow: none; }
.admin-login { max-width: 480px; padding: 1rem; }
.admin-login h2, .admin-form-card h2, .admin-workspace h2 { margin: 0; color: var(--wine); font-size: 1.35rem; line-height: 1.15; }
.admin-login p { color: var(--muted); }
.admin-login label, .admin-field, .admin-list-control { color: var(--wine); font-size: .76rem; font-weight: 700; }
/* Le champ porte une marge haute que le bouton n'a pas : sans cet alignement
   par le bas, « Entrer » flottait cinq pixels au-dessus du champ. */
.admin-login-row { display: flex; align-items: flex-end; gap: .45rem; margin-top: .25rem; }
.admin-login-row input { flex: 1; }
.admin-login input, .admin-field input, .admin-field select, .admin-field textarea, .admin-list-control input, .admin-list-control select { width: 100%; min-height: 36px; margin-top: .2rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--ink); font: inherit; font-size: .84rem; font-weight: 400; padding: .42rem .55rem; }
.admin-login input:focus-visible, .admin-field input:focus-visible, .admin-field select:focus-visible, .admin-field textarea:focus-visible, .admin-list-control input:focus-visible, .admin-list-control select:focus-visible, .admin-upload input:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.admin-field textarea { min-height: 72px; resize: vertical; overflow-y: hidden; line-height: 1.35; }
.admin-field small { display: block; margin-top: .2rem; color: var(--muted); font-size: .66rem; font-weight: 400; }
.admin-primary, .admin-secondary, .admin-danger, .admin-order-button, .admin-reorder-handle { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; border-radius: 4px; padding: .42rem .65rem; border: 1px solid transparent; font: 700 .76rem var(--sans); cursor: pointer; transition: background .12s ease, border-color .12s ease; }
.admin-primary { background: var(--brand); color: var(--on-brand); box-shadow: none; }
.admin-primary:hover { background: var(--wine-2); color: var(--on-dark); }
.admin-secondary { background: var(--card); color: var(--wine); border-color: var(--line); }
.admin-secondary:hover { background: var(--surface-warm); }
.admin-danger { background: transparent; border-color: color-mix(in srgb, var(--danger) 45%, transparent); color: var(--danger); }
.admin-danger:hover { background: var(--admin-danger-soft); }
.admin-primary:focus-visible, .admin-secondary:focus-visible, .admin-danger:focus-visible, .admin-order-button:focus-visible, .admin-reorder-handle:focus-visible, .admin-wine-item:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.admin-primary:disabled, .admin-secondary:disabled, .admin-danger:disabled, .admin-order-button:disabled, .admin-reorder-handle:disabled { cursor: not-allowed; opacity: .5; transform: none; }
.admin-status { min-height: 1.1rem; margin: .35rem 0 0; color: var(--muted); font-size: .74rem; }
.admin-status.is-error { color: var(--danger); }
.admin-status.is-success { color: var(--success); }
.admin-workspace-head { display: flex; align-items: end; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.admin-workspace-actions { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.admin-bookmarks { width: fit-content; max-width: 100%; margin: 0 0 .5rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
/* Les repères visent des blocs situés sous l'en-tête : on garde une marge de défilement. */
#admin-coordonnees, #admin-reglage-catalogue, #admin-retrait, #admin-menus, #admin-collections, #admin-avis, #admin-popups { scroll-margin-top: 1.5rem; }
.admin-bookmarks summary { display: flex; align-items: center; min-height: 34px; padding: .35rem .55rem; color: var(--wine); cursor: pointer; font-size: .75rem; font-weight: 700; }
.admin-bookmarks summary::marker { color: var(--accent); }
.admin-bookmarks nav { display: flex; flex-wrap: wrap; gap: .3rem; padding: 0 .45rem .45rem; }
.admin-bookmarks a { display: inline-flex; align-items: center; min-height: 30px; padding: .28rem .45rem; border: 1px solid var(--line); border-radius: 4px; color: var(--wine); font-size: .7rem; font-weight: 700; white-space: nowrap; text-decoration: none; }
.admin-bookmarks a:hover { background: color-mix(in srgb, var(--wine) 12%, transparent); }
.admin-bookmarks a:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.admin-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .35rem; margin: 0 0 .5rem; }
.admin-summary button { min-height: 40px; padding: .35rem .5rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--wine); font: 700 .72rem var(--sans); cursor: pointer; text-align: left; }
.admin-summary button.is-active { background: var(--wine); color: var(--on-dark); }
.admin-summary strong { display: block; font: 700 1.05rem var(--sans); }
.admin-tools, .admin-bulk { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: 0 0 .5rem; }
.admin-import { display: inline-flex; align-items: center; min-height: 34px; padding: .42rem .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--wine); cursor: pointer; font: 700 .76rem var(--sans); }
.admin-import input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.admin-history { max-height: 240px; overflow: auto; margin: 0 0 .5rem; padding: .6rem .7rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--muted); font-size: .74rem; }
.admin-history ul { margin: .4rem 0 0; padding-left: 1.1rem; }
.admin-settings { margin: 0 0 .5rem; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.admin-settings summary { min-height: 30px; color: var(--wine); cursor: pointer; font-size: .78rem; font-weight: 700; }
.admin-settings > p { margin: .35rem 0 .55rem; color: var(--muted); font-size: .74rem; }
.admin-settings-form { display: grid; gap: .55rem; }
.admin-settings-fieldset { margin: 0; padding: .65rem; border: 1px solid var(--line); border-radius: 4px; }
.admin-settings-fieldset legend { padding: 0 .25rem; color: var(--wine); font: 700 .85rem var(--sans); }
.admin-filter-settings { display: grid; align-content: start; gap: .2rem; color: var(--wine); font-size: .84rem; font-weight: 700; }
.admin-filter-settings > span { margin-bottom: .15rem; }
.admin-filter-settings .admin-checkbox { padding-top: 0; font-weight: 500; }
.admin-featured-settings { margin: 0; padding: .6rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-featured-settings legend { padding: 0 .25rem; color: var(--wine); font: 700 .85rem var(--sans); }
.admin-featured-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-top: .45rem; }
.admin-featured-slots[hidden] { display: none; }
@media (max-width: 780px) { .admin-featured-slots { grid-template-columns: 1fr; } }
.admin-settings-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.admin-settings-actions .admin-status { margin: 0; }
.admin-settings-help { margin: 0 0 .45rem; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.admin-hero-image-editor { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1fr); gap: .55rem; align-items: start; }
.admin-hero-image-editor > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.admin-hero-image-controls { display: grid; gap: .4rem; }
.admin-hero-image-controls input[type="file"] { width: 100%; color: var(--muted); font: .8rem var(--sans); }
.navigation-editor { display: grid; gap: .55rem; }
.navigation-editor-section { padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.navigation-editor-section h3 { margin: 0 0 .25rem; color: var(--wine); font: 1.2rem var(--serif); }
.navigation-editor-section > p { margin: 0 0 .75rem; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.navigation-editor-list { display: grid; gap: .3rem; }
.navigation-editor-row { display: grid; grid-template-columns: minmax(7.5rem, .48fr) minmax(0, 1fr); gap: .35rem .55rem; align-items: end; padding: .4rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.navigation-editor-row .admin-checkbox { min-height: 44px; padding: 0; }
.navigation-editor-row .admin-field { font-size: .76rem; }
.navigation-editor-row .admin-field input { margin-top: .2rem; }
.navigation-editor-row--region { grid-template-columns: minmax(7.5rem, .35fr) minmax(8rem, .45fr) minmax(0, 1fr) auto; }
.navigation-editor-region-copy { min-width: 0; padding-bottom: .25rem; }
.navigation-editor-region-copy strong, .navigation-editor-region-copy small { display: block; }
.navigation-editor-region-copy strong { color: var(--wine); font: 1.1rem var(--serif); }
.navigation-editor-region-copy small { color: var(--muted); font-size: .68rem; }
.navigation-editor-actions { display: flex; gap: .35rem; padding-bottom: .05rem; }
.navigation-editor-actions .admin-secondary { min-width: 44px; min-height: 44px; padding: .45rem; }
.collections-editor { display: grid; gap: .5rem; margin: 0 0 .5rem; }
.pickup-editor { display: grid; gap: .5rem; margin-bottom: .5rem; }
.pickup-cave-settings { padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.pickup-editor-list { display: grid; gap: .45rem; }
.pickup-editor-card { padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.pickup-editor-head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.pickup-editor-head strong { color: var(--wine); font: 1.15rem var(--serif); }
.pickup-editor-head span { color: var(--muted); font-size: .7rem; overflow-wrap: anywhere; }
.pickup-editor-card > .admin-danger { margin-top: .75rem; }
.collection-editor-card { padding: .6rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.collection-editor-head { display: flex; justify-content: space-between; gap: .8rem; align-items: baseline; margin-bottom: .8rem; color: var(--wine); }
.collection-editor-head strong { font: 1.25rem var(--serif); }
.collection-editor-head span { color: var(--muted); font: .72rem var(--sans); }
.collection-editor-card input[type="color"] { padding: .2rem; cursor: pointer; }
.collection-editor-note { margin: .9rem 0 0; color: var(--muted); font-size: .78rem; }
.collection-image-path { display: block; margin-top: .45rem; color: var(--wine); font-size: .78rem; font-weight: 700; }
.collection-image-dropzone { display: grid; gap: .25rem; margin-top: .4rem; padding: .55rem; border: 1px dashed var(--line); border-radius: 4px; background: var(--card); color: var(--wine); outline: none; }
.collection-image-dropzone span, .collection-image-dropzone p { margin: 0; color: var(--muted); font-size: .76rem; font-weight: 400; }
.collection-image-dropzone.is-dragging, .collection-image-dropzone:focus-visible { border-color: var(--accent); background: var(--surface-warm); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 28%, transparent); }
.collection-image-preview { display: block; width: 100%; aspect-ratio: 16 / 7; border: 1px solid var(--line); border-radius: 8px; object-fit: cover; background: var(--surface); }
.collection-image-file { display: grid; gap: .3rem; color: var(--wine); font-size: .8rem; font-weight: 700; }
.collection-image-file input[type="file"] { width: 100%; color: var(--muted); font: .8rem var(--sans); }
.collection-editor-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.collection-editor-actions .admin-secondary, .collection-editor-actions .admin-danger { min-height: 38px; padding: .45rem .75rem; }
.admin-wine-collections { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .25rem; }
.admin-wine-collections .admin-checkbox { min-height: 32px; padding-top: 0; }
.admin-list-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.admin-bulk { position: sticky; bottom: 0; z-index: 2; padding: .4rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); box-shadow: none; }
.admin-bulk select { min-height: 34px; padding: .35rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); font: inherit; }
.admin-layout { display: grid; grid-template-columns: minmax(600px, 48%) minmax(0, 1fr); gap: .5rem; align-items: start; }
.admin-wine-list { padding: .5rem; position: sticky; top: .5rem; max-height: calc(100dvh - 1rem); overflow: auto; }
.admin-list-control { display: block; margin-bottom: .4rem; }
.admin-wine-list > p { margin: .35rem 0; color: var(--muted); font-size: .72rem; }
.admin-order-help { border-top: 1px solid var(--line); padding-top: .4rem; }
.admin-wine-list-items { display: grid; gap: .25rem; }
.admin-wine-row { display: grid; grid-template-columns: 22px 32px minmax(280px, 1fr) auto 30px 30px 42px; gap: .2rem; align-items: stretch; border: 1px solid transparent; border-radius: 4px; }
.admin-row-select { width: 18px; height: 18px; align-self: center; accent-color: var(--wine); }
.admin-order-input { width: 42px; min-height: 32px; border: 1px solid var(--line); border-radius: 4px; padding: .2rem; background: var(--card); color: var(--ink); font: inherit; font-size: .74rem; text-align: center; }
.admin-wine-row.is-dragging { opacity: .45; }
.admin-wine-row.is-drop-target { border-color: var(--accent); background: var(--surface-warm); }
.admin-reorder-handle, .admin-order-button { min-width: 30px; width: 30px; min-height: 32px; padding: 0; border-radius: 4px; background: var(--card); color: var(--wine); border-color: var(--line); }
.admin-reorder-handle { cursor: grab; font-size: .9rem; }
.admin-reorder-handle:active { cursor: grabbing; }
.admin-vintage-button { min-height: 32px; align-self: center; padding: .3rem .45rem; font-size: .66rem; white-space: nowrap; }
.admin-wine-item { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: .45rem; width: 100%; min-width: 0; min-height: 66px; padding: .3rem .4rem; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.admin-wine-item:hover, .admin-wine-item.is-active { border-color: var(--accent); background: var(--surface-warm); }
.admin-wine-item strong, .admin-wine-item span { display: block; }
.admin-wine-thumb { display: grid !important; place-items: center; width: 52px; height: 64px; overflow: hidden; border-radius: 3px; background: var(--surface); }
.admin-wine-thumb img, .admin-wine-thumb svg { display: block; width: 100%; max-width: 100%; height: 100%; max-height: 64px; object-fit: contain; object-position: center; filter: none; }
.admin-wine-copy { min-width: 0; overflow-wrap: anywhere; }
.admin-wine-item strong { color: var(--wine); font-family: var(--sans); font-size: .84rem; line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
.admin-wine-item span { margin-top: .12rem; color: var(--muted); font-size: .68rem; line-height: 1.25; }
.admin-list-badges { display: flex !important; flex-wrap: wrap; gap: .2rem; margin-top: .2rem !important; }
.admin-list-badge { display: inline-flex; width: max-content; padding: .1rem .3rem; border-radius: 3px; background: var(--surface-warm); color: var(--text) !important; font-size: .58rem !important; font-weight: 700; }
.admin-list-badge--hidden { background: color-mix(in srgb, var(--text-muted) 18%, var(--surface)); color: var(--text-muted) !important; }
.admin-list-badge--published { background: color-mix(in srgb, var(--success) 18%, var(--surface)); color: var(--success) !important; }
.admin-form-card { padding: .7rem; }
.admin-form-head, .admin-section-head { display: flex; justify-content: space-between; gap: .55rem; }
.admin-form-head { padding-bottom: .55rem; margin-bottom: .65rem; border-bottom: 1px solid var(--line); }
.admin-form-state { display: flex; flex-direction: column; align-items: end; gap: .2rem; }
.admin-draft, .admin-dirty { align-self: flex-start; padding: .16rem .35rem; border-radius: 3px; background: var(--surface-warm); color: var(--text); font-size: .64rem; font-weight: 700; }
.admin-dirty { background: color-mix(in srgb, var(--brand) 20%, var(--surface)); color: var(--brand-text); }
.admin-form-section { margin: 0; padding: .7rem 0; border: 0; border-top: 1px solid var(--line); }
.admin-form-section:first-of-type { border-top: 0; padding-top: 0; }
.admin-form-section h3 { margin: 0 0 .45rem; color: var(--wine); font-family: var(--sans); font-size: 1rem; }
.admin-form-section > p { color: var(--muted); font-size: .74rem; line-height: 1.35; }
.admin-availability-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .4fr); gap: .55rem; align-items: end; margin-bottom: .55rem; padding: .6rem !important; border: 1px solid var(--line) !important; border-radius: 4px; background: var(--surface); }
.admin-availability-panel h3 { margin-bottom: .2rem; }
.admin-availability-panel p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.admin-dialog { width: min(100% - 2rem, 620px); padding: 0; border: 1px solid var(--line); border-radius: 6px; background: var(--card); color: var(--ink); box-shadow: 0 18px 50px color-mix(in srgb, var(--shadow) 20%, transparent); }
.admin-dialog::backdrop { background: color-mix(in srgb, var(--wine) 70%, transparent); backdrop-filter: blur(4px); }
.admin-dialog form { padding: 1rem; }
.admin-dialog h2 { margin: .15rem 0 .45rem; color: var(--wine); font: 700 clamp(1.35rem, 4vw, 1.8rem)/1.1 var(--sans); }
.admin-dialog form > p:not(.admin-kicker):not(.admin-status) { color: var(--muted); line-height: 1.5; }
.admin-dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.admin-section-head h3 { margin-bottom: .3rem; }
.admin-section-head p { margin: 0; color: var(--muted); font-size: .7rem; }
.admin-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.admin-field { display: block; min-width: 0; }
.admin-field--wide { grid-column: 1 / -1; }

/* Palette de robes : on choisit la couleur à l'œil, en cliquant un rond, sans passer
   par une liste de noms. Le dernier rond est le nuancier complet du système. */
.admin-glass-palette { grid-column: 1 / -1; margin: 0; padding: .55rem .6rem; border: 1px solid var(--line); border-radius: 4px; }
.admin-glass-palette legend { padding: 0 .35rem; color: var(--wine); font-size: .84rem; font-weight: 700; }
.admin-glass-palette-body { display: flex; align-items: center; gap: .55rem; }
.admin-glass-chips { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: .3rem; }
.admin-glass-chip { position: relative; display: grid; place-items: center; width: 34px; height: 34px; cursor: pointer; }
.admin-glass-chip input[type="radio"] { position: absolute; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.admin-glass-chip-face { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; background: var(--robe, var(--surface)); color: var(--wine); font-size: .68rem; font-weight: 700; transition: transform .12s ease; }
.admin-glass-chip:hover .admin-glass-chip-face { transform: scale(1.08); }
/* L'anneau marque la robe retenue : sans repère net, on ne sait plus laquelle est active. */
.admin-glass-chip input[type="radio"]:checked ~ .admin-glass-chip-face { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--accent); }
.admin-glass-chip input[type="radio"]:focus-visible ~ .admin-glass-chip-face { outline: 3px solid var(--focus); outline-offset: 3px; }
.admin-glass-chip--auto .admin-glass-chip-face { background: var(--surface); border-style: dashed; }
.admin-glass-chip--libre .admin-glass-chip-colour { width: 30px; height: 30px; min-height: 0; margin: 0; padding: 0; border: 1px dashed var(--line); border-radius: 50%; cursor: pointer; }
.admin-glass-chip--libre input[type="radio"] { width: 34px; height: 12px; top: -12px; }
.admin-glass-chip--libre input[type="radio"]:checked ~ .admin-glass-chip-colour { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--accent); }
.admin-glass-preview { display: grid; flex: 0 0 auto; place-items: center; width: 72px; height: 72px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-glass-preview img { width: auto; height: 62px; object-fit: contain; }
.admin-glass-palette-foot { display: flex; align-items: center; gap: .6rem; margin-top: .7rem; }
.admin-glass-palette .admin-glass-hex { flex: 0 0 auto; width: 8.5rem; min-width: 0; margin-top: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: lowercase; }
.admin-glass-etat { color: var(--muted); font-size: .78rem; font-weight: 400; }
.admin-fut-duree { display: grid; gap: .45rem; }
.admin-fut-titre { color: var(--wine); font-size: .84rem; font-weight: 700; }
.admin-fut-raccourcis { display: flex; flex-wrap: wrap; gap: .4rem; }
.admin-fut-raccourci { min-height: 36px; padding: .3rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--wine); font-size: .82rem; font-weight: 600; cursor: pointer; }
.admin-fut-raccourci:hover:not(:disabled) { border-color: var(--accent); }
.admin-fut-raccourci:disabled { cursor: not-allowed; opacity: .5; }
.admin-fut-apercu { display: flex; grid-column: 1 / -1; align-items: center; gap: .45rem; padding: .4rem .5rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-fut-dessin { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; color: var(--accent); }
.admin-fut-dessin[hidden] { display: none; }
.admin-fut-dessin svg { width: 100%; height: 100%; }
.admin-fut-etat { color: var(--muted); font-size: .78rem; }
.admin-checkbox { display: flex; align-items: center; gap: .4rem; min-height: 34px; padding-top: .35rem; }
.admin-checkbox input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; min-height: 0; margin: 0; accent-color: var(--wine); }
.admin-private { color: var(--text-muted); font-size: .68rem; font-weight: 600; }
.admin-upload { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; align-items: center; padding: .6rem; border: 1px dashed var(--line); border-radius: 4px; background: var(--surface); }
.admin-upload p { margin: 0 0 .2rem; color: var(--muted); font-size: .72rem; }
.admin-upload input[type="file"] { max-width: 245px; color: var(--muted); font: .8rem var(--sans); }
.admin-upload img { grid-column: 1 / -1; display: block; width: min(100%, 320px); height: 150px; margin: 0 auto; object-fit: contain; filter: none; }
.admin-theme-fields [data-theme-control]:disabled { opacity: .55; }
.price-filter-editor { display: grid; gap: .4rem; }
.price-filter-editor-row { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); gap: .4rem; padding: .5rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-rewards-editor { display: grid; gap: .4rem; margin-top: .45rem; }
.admin-reward-row { padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-reward-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.admin-reward-head strong { color: var(--wine); font: 1.15rem var(--serif); }
.admin-reward-head .admin-danger { min-height: 38px; padding: .45rem .75rem; }
.admin-reward-preview { width: 96px; height: 96px; margin: .2rem 0 .6rem; object-fit: contain; border: 0; border-radius: 0; background: transparent; padding: 0; }
.admin-certification-preview { width: 112px; height: 112px; object-fit: contain; border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: .5rem; }
.admin-certifications-grid { display: grid; gap: .5rem; }
.admin-certification-slot { display: grid; gap: .45rem; min-width: 0; margin: 0; padding: .55rem; border: 1px solid var(--line); border-radius: 4px; }
.admin-certification-slot legend { padding: 0 .35rem; color: var(--wine); font-weight: 800; }
@media (min-width: 980px) { .admin-certifications-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.admin-xavier-minutes-editor { display: grid; gap: .5rem; margin-bottom: .5rem; }
.admin-xavier-minute { display: grid; gap: .45rem; padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.admin-xavier-minute-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; }
.admin-xavier-minute-head strong { color: var(--wine); }
.admin-xavier-minute-head time { color: var(--muted); font-size: .75rem; }
.admin-xavier-minute-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.admin-event-grid { display: grid; gap: .5rem; }
.admin-event-card { display: grid; align-content: start; gap: .45rem; padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.admin-event-card h3 { margin: 0; color: var(--wine); font: 700 1rem var(--sans); }
.admin-event-preview { display: block; width: 100%; height: auto; border-radius: 14px; object-fit: contain; }
.admin-event-preview[hidden] { display: none; }
@media (min-width: 980px) { .admin-event-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.admin-reviews-options { margin-bottom: .5rem; }
.admin-reviews-display-mode { margin: 0; padding: .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-reviews-display-mode > legend { padding: 0 .3rem; color: var(--wine); font: 700 .88rem var(--sans); }
.admin-reviews-mode-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; }
.admin-reviews-mode-options label { display: flex; align-items: center; min-height: 34px; gap: .35rem; padding: .4rem .45rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--wine); cursor: pointer; font-size: .7rem; font-weight: 700; }
.admin-reviews-mode-options label:has(input:checked) { border-color: var(--wine); background: color-mix(in srgb, var(--wine) 9%, var(--card)); }
.admin-reviews-mode-options input { flex: 0 0 auto; width: 1.05rem; height: 1.05rem; margin: 0; accent-color: var(--wine); }
.admin-reviews-threshold { max-width: 380px; margin-top: .75rem; }
.admin-reviews-threshold[hidden] { display: none; }
.admin-reviews-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .5rem; margin: 0 0 .45rem; padding: .45rem .55rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--muted); font-size: .7rem; }
.admin-reviews-summary strong { color: var(--wine); font: 700 1.4rem var(--serif); }
.admin-reviews-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem; align-items: end; margin-bottom: .45rem; }
.admin-reviews-search { margin: 0; }
.admin-reviews-toolbar-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.admin-reviews-list { display: grid; gap: .4rem; margin-bottom: .45rem; }
.admin-reviews-footer { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.admin-reviews-unsaved { width: fit-content; max-width: 100%; margin-top: .65rem; padding: .55rem .7rem; border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--line)); border-radius: 9px; background: color-mix(in srgb, var(--accent) 8%, var(--surface)); color: var(--wine); font-weight: 700; }
.admin-reviews-unsaved[hidden] { display: none; }
.admin-review-card { padding: 0; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); overflow: clip; }
.admin-review-card[hidden] { display: none; }
.admin-review-summary { display: grid; grid-template-columns: auto minmax(8rem, 1fr) auto auto auto; align-items: center; gap: .35rem .5rem; min-height: 40px; padding: .4rem .5rem; color: var(--muted); cursor: pointer; list-style: none; font-size: .7rem; }
.admin-review-summary::-webkit-details-marker { display: none; }
.admin-review-summary::after { content: "⌄"; color: var(--wine); font-size: 1.15rem; line-height: 1; transition: transform .15s ease; }
.admin-review-card[open] > .admin-review-summary::after { transform: rotate(180deg); }
.admin-review-summary-index { color: var(--accent-strong, var(--accent)); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-review-summary strong { min-width: 0; overflow: hidden; color: var(--wine); font-size: .92rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-review-featured { padding: .25rem .45rem; border-radius: 999px; background: color-mix(in srgb, var(--brand) 18%, transparent); color: var(--wine); font-size: .65rem; font-weight: 800; white-space: nowrap; }
.admin-review-featured[hidden] { display: none; }
.admin-review-card-body { padding: 0 .55rem .55rem; border-top: 1px solid var(--line); }
.admin-review-card-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: .75rem 0; }
.admin-review-card-head > span { color: var(--muted); font-size: .76rem; font-weight: 700; }
.admin-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.admin-review-actions .admin-secondary { min-width: 44px; padding: .45rem; }
.admin-review-actions .admin-danger { min-height: 44px; padding: .45rem .75rem; }
@media (max-width: 620px) {
  .admin-reviews-mode-options { grid-template-columns: 1fr; }
  .admin-reviews-toolbar { grid-template-columns: 1fr; }
  .admin-reviews-toolbar-actions .admin-secondary { flex: 1; }
  .admin-reviews-footer > button { width: 100%; }
  .admin-review-summary { grid-template-columns: auto minmax(0, 1fr) auto auto; }
  .admin-review-featured { grid-column: 2 / -1; width: fit-content; }
  .admin-review-card-head { align-items: flex-start; flex-direction: column; }
  .admin-review-actions { width: 100%; justify-content: flex-start; }
}
.admin-contrast { min-height: 1.25rem; margin: .7rem 0 0; color: var(--success); font-size: .8rem; font-weight: 600; }
.admin-contrast.is-error { color: var(--danger); }
.admin-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.admin-live-preview { margin-top: .75rem; padding: .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.admin-live-preview > p { margin: .4rem 0 .55rem; color: var(--muted); font-size: .72rem; }
.admin-card-preview { max-width: 340px; }
.admin-card-preview .wine-card { width: 100%; }
.wine-card--preview { transform: none !important; box-shadow: none !important; }
.wine-card--preview .wine-card-visual-link { cursor: default; }
.admin-preview-details { display: grid; gap: .3rem; margin: .55rem 0 0; }
.admin-preview-details div { display: grid; grid-template-columns: minmax(6rem, .25fr) 1fr; gap: .8rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.admin-preview-details dt { color: var(--wine); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.admin-preview-details dd { min-width: 0; margin: 0; color: var(--muted); font-size: .84rem; white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.admin-security { margin-top: .5rem; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.admin-security summary { color: var(--wine); cursor: pointer; font-weight: 700; }
.admin-security > p { color: var(--muted); font-size: .84rem; }
.admin-password-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; gap: .45rem; margin-top: .5rem; }
.admin-password-form label { color: var(--wine); font-size: .78rem; font-weight: 700; }
.admin-password-form input { width: 100%; min-height: 36px; margin-top: .2rem; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--ink); font: inherit; font-size: .84rem; font-weight: 400; padding: .42rem .55rem; }
.admin-password-form input:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.admin-password-form .admin-status { grid-column: 1 / -1; margin: 0; }

@media (min-width: 1251px) {
  .admin-settings-form > .admin-fields,
  .admin-settings-fieldset > .admin-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page legend { font-family: var(--sans); }

@media (max-width: 1250px) {
  .admin-layout { grid-template-columns: 1fr; }
  .admin-wine-list { position: static; max-height: none; }
  .admin-wine-list-items { max-height: min(65dvh, 720px); overflow: auto; }
}

@media (max-width: 760px) {
  .price-filter-editor-row { grid-template-columns: 1fr; }
  .admin-password-form { grid-template-columns: 1fr; }
  .admin-password-form .admin-status { grid-column: auto; }
  .admin-upload { grid-template-columns: 1fr; }
  .admin-upload input[type="file"] { max-width: 100%; }
  .admin-availability-panel { grid-template-columns: 1fr; }
  .admin-dialog-actions > button { width: 100%; }
}

@media (max-width: 780px) {
  .admin-hero-image-editor { grid-template-columns: 1fr; }
  .admin-shell { width: calc(100% - .6rem); padding-top: .4rem; }
  .admin-login-row, .admin-workspace-head { align-items: stretch; flex-direction: column; }
  .admin-workspace-actions { justify-content: stretch; }
  .admin-workspace-actions button { flex: 1; }
  .admin-form-head, .admin-section-head { align-items: flex-start; flex-direction: column; }
  .admin-form-state { align-items: flex-start; }
  .admin-fields { grid-template-columns: 1fr; }
  .admin-field--wide { grid-column: auto; }
  .admin-form-actions > button { width: 100%; }
  .admin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-list-filters { grid-template-columns: 1fr; }
  .admin-wine-list-items { min-width: 0; overflow-x: clip; }
  .admin-primary, .admin-secondary, .admin-danger, .admin-order-button, .admin-reorder-handle, .admin-import { min-height: 44px; }
  .admin-login input, .admin-field input, .admin-field select, .admin-field textarea, .admin-list-control input, .admin-list-control select, .admin-password-form input { min-height: 44px; }
  .admin-wine-row { width: 100%; max-width: 100%; grid-template-columns: 44px minmax(0, 1fr) 44px 44px; grid-template-areas: "select wine wine wine" "handle vintage up down"; align-items: center; padding: .35rem; border-color: var(--line); background: var(--surface); }
  .admin-row-select { grid-area: select; justify-self: center; }
  .admin-reorder-handle { grid-area: handle; width: 44px; }
  .admin-wine-item { grid-area: wine; min-width: 0; min-height: 72px; }
  .admin-vintage-button { grid-area: vintage; width: 100%; }
  .admin-order-button[data-move="-1"] { grid-area: up; }
  .admin-order-button[data-move="1"] { grid-area: down; }
  .admin-order-input { display: none; }
  .admin-preview-details div { grid-template-columns: 1fr; gap: .2rem; }
  .navigation-editor-row, .navigation-editor-row--region { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .navigation-editor-row .admin-field { grid-column: 1 / -1; }
  .navigation-editor-region-copy { padding: .35rem 0 0; }
  .navigation-editor-actions { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-primary, .admin-secondary, .admin-wine-row, .admin-order-button { transition: none; }
}
