
      body:has(.restaurant-page)>header{display:none}.restaurant-page{width:100%;padding:0 0 5rem;margin-top:0}.restaurant-page .restaurant-hero{margin-top:0}.restaurant-hero{position:relative;min-height:clamp(320px,62vw,520px);overflow:hidden;background:#2b2422;color:#fff}.restaurant-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.restaurant-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,16,14,.72),rgba(24,16,14,.14) 72%,rgba(24,16,14,.04))}.restaurant-hero-copy{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:clamp(5rem,12vw,8rem) clamp(1.3rem,5vw,2.7rem) 2.7rem;text-shadow:0 2px 16px rgba(0,0,0,.35)}.restaurant-hero-brand{position:absolute;top:1.15rem;right:clamp(1.3rem,5vw,2.7rem);display:block;width:min(140px,34vw);height:auto;margin:0;filter:brightness(0) invert(1);opacity:.98}.restaurant-hero-copy .eyebrow{color:#f0d9aa}.restaurant-hero h1{margin:.15rem 0;color:#fff}.restaurant-steps,.restaurant-stage{max-width:760px;margin-left:auto;margin-right:auto}.restaurant-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0}.restaurant-step{display:flex;align-items:center;gap:.4rem;padding:.25rem;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer}.restaurant-step:disabled{cursor:default;opacity:.55}.restaurant-step b{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--crusavia-soft)}.restaurant-step.active{color:var(--wine);font-weight:700}.restaurant-step.active b{background:var(--wine);color:#fff}.restaurant-stage{margin-top:.8rem}.restaurant-image-picker{text-align:center}.restaurant-image-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.restaurant-camera-button{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:4.25rem;padding:1rem 1.25rem;border:1px solid var(--crusavia-line-strong);border-radius:1rem;background:var(--paper);color:var(--wine);cursor:pointer}.restaurant-camera-button span{font-size:1.7rem}.restaurant-image-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:.9rem}.restaurant-image-preview:empty{display:none}.restaurant-preview-button{display:grid;gap:.35rem;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.restaurant-preview-button img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:.8rem;border:1px solid var(--line)}.restaurant-preview-button span{font-size:.82rem;font-weight:700}.restaurant-preview-large{margin-top:1rem;padding:.75rem;border:1px solid var(--line);border-radius:1rem;background:var(--paper)}.restaurant-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.restaurant-preview-toolbar .button{width:auto;padding:.55rem .8rem}.restaurant-preview-large>img{display:block;width:100%;height:auto;max-height:70rem;object-fit:contain;border-radius:.7rem}.restaurant-source-grid,.restaurant-budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.restaurant-choice h3{font-size:1.35rem;margin:.35rem 0 .75rem}.restaurant-choice ul{padding-left:1.2rem}.restaurant-alternatives{padding:.8rem;border-radius:.8rem;background:var(--crusavia-soft);margin:.8rem 0}@media(max-width:620px){body:has(.restaurant-page) main#app{padding-top:0}.restaurant-page{padding-bottom:6rem}.restaurant-source-grid,.restaurant-budget-grid{grid-template-columns:1fr}.restaurant-stage{border-radius:1rem}.restaurant-stage .actions{display:grid;grid-template-columns:1fr}.restaurant-stage .button{width:100%}.restaurant-steps{position:sticky;top:0;z-index:3;background:var(--canvas);padding:.55rem 0}}

      :root {
        color-scheme: light;
        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --crusavia-bordeaux: #704452;
        --crusavia-bordeaux-deep: #2b2422;
        --crusavia-gold: #806337;
        --crusavia-gold-soft: #d8c6a5;
        --crusavia-gold-action: #cf8d05;
        --crusavia-gold-action-light: #e6a51c;
        --crusavia-gold-action-border: #b77900;
        --crusavia-gold-action-ink: #9b6500;
        --crusavia-charcoal: #201d1a;
        --crusavia-cream: #f6f2ea;
        --crusavia-ivory: #fffdf8;
        --wine: var(--crusavia-bordeaux);
        --wine-dark: var(--crusavia-bordeaux-deep);
        --ink: var(--crusavia-charcoal);
        --muted: #71665e;
        --paper: var(--crusavia-ivory);
        --canvas: var(--crusavia-cream);
        --line: #d9cbb9;
        --crusavia-line-strong: #b99b83;
        --crusavia-field: #fffdf8;
        --crusavia-soft: #f8f1e7;
        /* MCN-290 — primitives partagées CRUSAVIA; voir docs/crusavia-design-system.md. */
        --ui-radius-sm: .55rem;
        --ui-radius-md: .7rem;
        --ui-radius-lg: 1rem;
        --ui-control-min-height: 2.35rem;
        --ui-shadow-action: 0 .2rem .55rem rgb(145 96 13 / 16%);
        --success-bg: #dcefe2;
        --success-ink: #153d25;
        --warning-bg: #fff2cc;
        --warning-ink: #5b4300;
      }
      /* MCN-323 — cartes de vins actionnables dans Demander à Mike. */
      .mike-actionable-wines { display: grid; gap: .75rem; margin: 1rem 0; }
      .mike-actionable-wine { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; align-items: center; padding: .85rem; border: 1px solid var(--line); border-radius: var(--ui-radius-lg); background: var(--paper); }
      .mike-actionable-wine strong { min-width: 0; overflow-wrap: anywhere; }
      .mike-actionable-wine span { grid-column: 1; color: var(--muted); }
      .mike-actionable-wine .button { grid-column: 2; grid-row: 1 / span 3; align-self: center; white-space: nowrap; }
      @media (max-width: 560px) {
        .mike-actionable-wine { grid-template-columns: minmax(0, 1fr); }
        .mike-actionable-wine .button { grid-column: 1; grid-row: auto; justify-self: stretch; width: 100%; margin-top: .35rem; }
      }
      /* MCN-370 — Restaurant mobile: contenu entièrement accessible au défilement. */
      .mike-restaurant-panel { max-height: min(68dvh, 42rem); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scroll-padding-bottom: 1.5rem; }
      @media (max-width: 720px) { .mike-restaurant-panel { max-height: 62dvh; padding-bottom: calc(1rem + env(safe-area-inset-bottom)); } }
      * { box-sizing: border-box; }
      /* MCN-360 — identification et contexte de dégustation. */
      .tasting-identification-actions .button { display:inline-flex; align-items:center; justify-content:center; line-height:1.2; text-align:center; }
      .tasting-related { display:grid; gap:.45rem; margin-top:.65rem; }
      .tasting-related > a { color:var(--wine); font-weight:750; }
      .tasting-selected-context { margin-top:.75rem; }
      /* MCN-360 — styles Dégustations globaux, y compris mobile. */
      .tasting-identification-card { position:relative; }
      .tasting-identification-actions { margin-bottom:1rem; }
      .tasting-analysis-overlay { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:1rem; background:rgb(250 246 238 / 88%); backdrop-filter:blur(3px); }
      body.tasting-analysis-busy { overflow:hidden; }
      body.tasting-analysis-busy .analysis-disabled { pointer-events:none!important; opacity:.38!important; filter:grayscale(.35) saturate(.25)!important; box-shadow:none!important; }
      body.tasting-analysis-busy label.analysis-disabled, body.tasting-analysis-busy a.analysis-disabled { color:#9a8f87!important; border-color:#d8cec5!important; background:#f3efea!important; }
      .tasting-analysis-dialog { display:grid; justify-items:center; gap:.55rem; max-width:18rem; padding:1.15rem 1rem; border:1px solid #dfc79d; border-radius:1rem; background:#fffdfa; box-shadow:0 .55rem 1.4rem rgb(67 47 29 / 16%); text-align:center; }
      .tasting-analysis-dialog strong { color:#681126; font-size:1rem; }
      .tasting-analysis-dialog p { margin:0; color:#786d65; font-size:.76rem; line-height:1.35; }
      .tasting-analysis-spinner { width:2rem; height:2rem; border:.22rem solid #eadbc5; border-top-color:#8d1d3a; border-radius:50%; animation:tasting-analysis-spin .8s linear infinite; }
      @keyframes tasting-analysis-spin { to { transform:rotate(360deg); } }
      .tasting-rating-summary { display:grid; gap:.7rem; margin:0 0 1.15rem; padding:1rem; border:1px solid var(--crusavia-gold-soft); border-radius:1rem; background:var(--crusavia-soft); }
      .tasting-rating-row { display:grid; gap:.32rem; }
      .tasting-rating-row>div:first-child { display:flex; justify-content:space-between; gap:1rem; color:#695f58; font-size:.82rem; }
      .tasting-rating-row span { color:var(--crusavia-bordeaux-deep); font-weight:800; }
      .tasting-rating-editor { display:grid; gap:.38rem; }
      .tasting-rating-editor>span { display:flex; justify-content:space-between; align-items:center; gap:1rem; color:#695f58; }
      .tasting-rating-editor output { color:var(--crusavia-bordeaux-deep); font-weight:800; }
      .tasting-rating-editor input[type="range"] { width:100%; margin:0; accent-color:var(--crusavia-bordeaux-deep); }
      .tasting-detail-form { grid-template-columns:1fr; }
      .tasting-detail-form>label:not(.tasting-rating-editor) { display:grid; gap:.35rem; padding:.85rem; border:1px solid var(--crusavia-gold-soft); border-radius:.85rem; background:#fffdfa; }
      .tasting-detail-form .actions { position:sticky; bottom:calc(5.6rem + env(safe-area-inset-bottom)); z-index:4; padding:.65rem; border:1px solid var(--crusavia-gold-soft); border-radius:1rem; background:rgb(255 253 250 / 94%); box-shadow:0 -.35rem 1rem rgb(67 47 29 / 9%); backdrop-filter:blur(8px); }
      .tasting-detail-form .actions .button { width:100%; justify-content:center; }
      .tasting-rating-track { height:.55rem; overflow:hidden; border-radius:999px; background:#e8ddcf; }
      .tasting-rating-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#b58a4c,#7d1835); }
      .tasting-card-ratings { display:grid; gap:.55rem; margin:.85rem 0; padding:.8rem 0; border-top:1px solid var(--crusavia-gold-soft); border-bottom:1px solid var(--crusavia-gold-soft); }
      .tasting-card-rating { display:grid; grid-template-columns:5.2rem minmax(0,1fr) 2.5rem; gap:.55rem; align-items:center; color:#695f58; font-size:.76rem; }
      .tasting-card-rating span { font-weight:750; }
      .tasting-card-rating b { text-align:right; color:var(--crusavia-bordeaux-deep); font-size:.74rem; }

      body { margin: 0; background: var(--canvas); color: var(--ink); }
      header { position: sticky; top: 0; z-index: 10; background: rgb(255 253 249 / 96%); border-bottom: 1px solid var(--line); backdrop-filter: blur(8px); }
      .header-inner { max-width: 72rem; margin: 0 auto; padding: .9rem 1rem .75rem; }
      .brand { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
      .brand-identity { display: grid; justify-items: center; gap: .08rem; width: fit-content; min-width: 0; }
      .brand-logo { display: block; width: clamp(10rem, 21vw, 13.5rem); height: auto; max-height: 5.8rem; object-fit: contain; object-position: center; }
      .brand-tagline { display: flex; align-items: center; justify-content: center; gap: .38rem; width: min(100%, 13.5rem); color: var(--crusavia-gold); }
      .brand-tagline span { flex: 1 1 .85rem; min-width: .85rem; height: 1px; background: currentColor; opacity: .9; }
      .brand-tagline strong { flex: 0 1 auto; color: inherit; font-size: .49rem; font-weight: 700; line-height: 1.15; letter-spacing: .07em; text-align: center; text-transform: uppercase; white-space: nowrap; }
      body:not([data-route-active="/dashboard"]) .brand-tagline { display: none; }
      .environment { margin-top: .3rem; color: var(--muted); font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
      .primary-nav { display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
      .primary-nav a { color: var(--ink); text-decoration: none; padding: .65rem .8rem; border-radius: .7rem; font-weight: 650; white-space: nowrap; }
      .primary-nav a[aria-current="page"] { background: transparent; color: var(--ink); box-shadow: inset 0 -2px 0 var(--crusavia-gold); }
      .mobile-nav { display: none; }
      main { max-width: 72rem; margin: 0 auto; padding: 1.25rem 1rem 3rem; }
      /* MCN-169 — #app reçoit le focus après navigation pour l’accessibilité; supprimer uniquement l’outline natif du conteneur, dont le bord inférieur apparaissait comme une ligne bleue en bas des pages sur Safari/iOS. */
      main#app:focus { outline: none; }
      h1, h2 { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
      h1 { margin: .4rem 0 .35rem; font-size: clamp(1.9rem, 7vw, 2.8rem); line-height: 1.05; letter-spacing: -.02em; }
      h2 { margin: 0; font-size: 1.12rem; letter-spacing: -.01em; }
      p { line-height: 1.5; }
      .hero { margin-bottom: 1rem; }
      .eyebrow { margin: 0 0 .35rem; color: var(--crusavia-gold); font-weight: 800; font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; }
      .muted { color: var(--muted); }
      .status { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .7rem; border-radius: 999px; background: var(--success-bg); color: var(--success-ink); font-size: .84rem; font-weight: 800; }
      .status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: #278a4a; }
      .summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 1.25rem; }
      .metric, .card, .notice { background: var(--paper); border: 1px solid var(--line); border-radius: .9rem; box-shadow: 0 .3rem 1.25rem rgb(54 43 32 / 5%); }
      .metric { padding: 1rem; }
      .metric strong { display: block; color: var(--wine); font-size: 1.7rem; line-height: 1; margin-bottom: .3rem; }
      .metric span { color: var(--muted); font-size: .86rem; }
      .grid { display: grid; gap: .75rem; }
      .card { padding: 1rem; }
      .card-link { display: block; color: inherit; text-decoration: none; }
      .card-link:hover .card, .card-link:focus-visible .card { border-color: var(--crusavia-line-strong); transform: translateY(-1px); }
      .card { transition: transform .12s ease, border-color .12s ease; }
      .meta { display: flex; flex-wrap: wrap; gap: .45rem .85rem; margin-top: .55rem; color: var(--muted); font-size: .9rem; }
      .quantity { color: var(--wine); font-weight: 800; }
      .toolbar { display: grid; gap: .75rem; margin: 1rem 0; padding: 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: 1rem; }
      .search-field { display: grid; gap: .35rem; }
      .search-field label { color: var(--wine-dark); font-size: .82rem; font-weight: 800; }
      .search-field input { width: 100%; min-height: 44px; border: 1px solid var(--crusavia-line-strong); border-radius: .75rem; background: var(--crusavia-field); color: var(--ink); padding: .7rem .8rem; font: inherit; }
      .filters { display: flex; flex-wrap: wrap; gap: .5rem; }
      .filter-button { appearance: none; min-height: 44px; border: 1px solid var(--crusavia-line-strong); border-radius: 999px; background: var(--crusavia-field); color: var(--wine); padding: .55rem .8rem; font: inherit; font-weight: 750; cursor: pointer; }
      .filter-button[aria-pressed="true"] { background: var(--wine); color: white; }
      .card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
      .wine-layout { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: .9rem; align-items: start; }
      .wine-layout.detail { grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); }
      .wine-gallery { display: grid; gap: .65rem; width: min(12rem, 42vw); }
      .wine-gallery-item { display: grid; gap: .3rem; }
      .wine-gallery-label { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
      .wine-image-button { appearance: none; display: block; width: 5rem; padding: 0; border: 0; border-radius: .75rem; background: transparent; cursor: zoom-in; }
      .wine-image-button.large { width: min(12rem, 42vw); }
      .wine-image { display: block; width: 5rem; aspect-ratio: 3 / 4; object-fit: cover; border-radius: .75rem; border: 1px solid var(--line); background: #eee7df; }
      .wine-image.large { width: min(12rem, 42vw); }
      .wine-image-placeholder { display: grid; place-items: center; width: 5rem; aspect-ratio: 3 / 4; border-radius: .75rem; border: 1px dashed #bca99a; background: var(--crusavia-soft); color: var(--muted); font-size: .72rem; text-align: center; padding: .4rem; }
      .wine-image-placeholder.large { width: min(12rem, 42vw); }
      .label-viewer { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 1rem; background: rgb(18 12 10 / 96%); }
      .label-viewer[hidden] { display: none; }
      .label-viewer img { display: block; width: min(96vw, 70rem); height: min(88dvh, 70rem); object-fit: contain; }
      .label-viewer-close { position: fixed; top: max(1rem, env(safe-area-inset-top)); right: max(1rem, env(safe-area-inset-right)); width: 48px; height: 48px; border: 0; border-radius: 999px; background: white; color: var(--wine-dark); font-size: 2rem; line-height: 1; cursor: pointer; }
      .label-viewer-caption { position: fixed; left: 1rem; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); color: white; text-align: center; font-weight: 700; }
      .badge { display: inline-flex; align-items: center; padding: .3rem .55rem; border-radius: 999px; background: #efe5da; color: var(--wine-dark); font-size: .76rem; font-weight: 800; white-space: nowrap; }
      .badge.empty { background: #eceae7; color: #5f5a55; }
      .button.secondary.saq-watch-button.is-watched { background: rgb(220 239 226 / 68%); border-color: rgb(39 138 74 / 52%); color: var(--success-ink); box-shadow: none; }
      .button.secondary.saq-watch-button.is-watched:hover, .button.secondary.saq-watch-button.is-watched:focus-visible { background: rgb(220 239 226 / 86%); border-color: rgb(39 138 74 / 68%); color: var(--success-ink); }
      /* MCN-306 — règle canonique unique du contrôle SAQ dans Détails du vin. */
      .wine-technical-details-content > .saq-watch-control { display:grid; margin:0 0 1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
      .wine-technical-details-content > .saq-watch-control .saq-watch-button { width:100%; min-width:0; min-height:3rem; justify-content:center; }
      .badge-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
      .wine-subtitle { margin: .25rem 0 0; color: var(--muted); }
      .canonical-garde-wrap { width: 100%; min-width: 0; box-sizing: border-box; margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--paper); color: var(--ink); overflow: hidden; }
      .canonical-garde-title { margin-bottom: 2.6rem; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; font-weight: 600; }
      .canonical-garde-bar { position: relative; width: 100%; min-width: 0; box-sizing: border-box; height: 1.6rem; border: 1px solid #cfc3b9; border-radius: 999px; background: #d8d2cb; overflow: visible; }
      .canonical-garde-segment { position: absolute; top: 0; height: 100%; }
      .canonical-garde-segment.first { border-radius: 999px 0 0 999px; }
      .canonical-garde-segment.last { border-radius: 0 999px 999px 0; }
      .canonical-garde-today { position: absolute; top: -.3rem; width: 3px; height: 2.2rem; background: var(--crusavia-gold); z-index: 4; transform: translateX(-50%); }
      .canonical-garde-today-label { position: absolute; top: -2rem; transform: translateX(-50%); padding: .25rem .42rem; border-radius: 999px; background: var(--ink); color: white; font-size: .68rem; font-weight: 900; white-space: nowrap; z-index: 5; }
      .canonical-garde-apogee { position: absolute; top: .2rem; width: .55rem; height: 1.1rem; transform: translateX(-50%); border: 2px solid #1f1a17; border-radius: 999px; background: white; z-index: 3; }
      .canonical-garde-keyyears { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; margin-top: .75rem; }
      .canonical-garde-keyyear { display: flex; flex-direction: column; min-height: 4rem; padding: .45rem; border: 1px solid #e2d7ce; border-radius: .55rem; background: white; text-align: center; }
      .canonical-garde-keyyear-label { color: var(--muted); font-size: .66rem; line-height: 1.2; }
      .canonical-garde-keyyear-value { margin-top: auto; padding-top: .3rem; color: var(--ink); font-size: .9rem; font-weight: 900; }
      .canonical-garde-states { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; margin-top: .55rem; }
      .canonical-garde-state { display: flex; flex-direction: column; min-height: 4rem; padding: .45rem; border: 1px solid #d9cdc3; border-top-width: 4px; border-radius: .55rem; background: white; }
      .canonical-garde-state strong { font-size: .72rem; line-height: 1.2; }
      .canonical-garde-state span { margin-top: auto; padding-top: .25rem; color: var(--muted); font-size: .68rem; }
      .canonical-garde-current { margin-top: .55rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
      .canonical-garde-comment { margin: .55rem 0 0; color: var(--ink); font-size: .78rem; line-height: 1.45; }
      .mike-note { margin-top: .75rem; padding: .75rem .85rem; border-left: 4px solid var(--wine); background: #fbf5ef; border-radius: .5rem; }
      .empty-state { grid-column: 1 / -1; }
      .button[disabled] { opacity: .55; cursor: not-allowed; }
      .form-grid { display: grid; gap: .75rem; min-width: 0; }
      .form-field { display: grid; gap: .35rem; min-width: 0; max-width: 100%; }
      .form-field label { color: var(--wine-dark); font-size: .82rem; font-weight: 800; }
      .form-field input, .form-field select, .form-field textarea { width: 100%; max-width: 100%; min-width: 0; border: 1px solid #bca99a; border-radius: .75rem; background: white; color: var(--ink); padding: .7rem .8rem; font: inherit; }
      .form-field input, .form-field select { min-height: 44px; }
      .form-field input[type="date"] { display: block; inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; -webkit-appearance: none; appearance: none; }
      .form-field textarea { display: block; resize: vertical; }
      .feedback { margin: 1rem 0; padding: .8rem 1rem; border-radius: .75rem; background: var(--success-bg); color: var(--success-ink); font-weight: 700; }
      .feedback.error { background: #f8dddd; color: #6a1717; }
      .analysis-progress { margin-top: 1rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: #fbf8f5; }
      .analysis-progress-head { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .5rem; color: var(--wine-dark); font-size: .84rem; font-weight: 800; }
      .analysis-progress-track { height: .7rem; overflow: hidden; border-radius: 999px; background: #e4d9cf; }
      .analysis-progress-bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--wine), #a94f5e); transition: width .45s ease; }
      .analysis-progress-note { margin: .45rem 0 0; color: var(--muted); font-size: .78rem; }
      .barcode-scanner { display: grid; gap: .75rem; margin-top: 1rem; }
      .barcode-modal { position: fixed; inset: 0; z-index: 120; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 1rem; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); background: rgb(18 12 10 / 97%); color: white; }
      .barcode-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
      .barcode-modal-head strong { font-size: 1.05rem; }
      .barcode-modal-close { appearance: none; min-width: 48px; min-height: 48px; border: 1px solid rgb(255 255 255 / 35%); border-radius: 999px; background: white; color: var(--wine-dark); font: inherit; font-weight: 800; cursor: pointer; }
      .barcode-camera-frame { position: relative; align-self: center; width: min(100%, 42rem); max-height: 70dvh; margin: 0 auto; overflow: hidden; border: 1px solid rgb(255 255 255 / 28%); border-radius: 1rem; background: #171312; }
      .barcode-video { display: block; width: 100%; height: min(68dvh, 38rem); object-fit: cover; background: #171312; }
      .barcode-sight { position: absolute; left: 8%; right: 8%; top: 50%; height: 3px; transform: translateY(-50%); border-radius: 999px; background: #ff3b4f; box-shadow: 0 0 0 1px rgb(0 0 0 / 35%), 0 0 12px rgb(255 59 79 / 75%); pointer-events: none; }
      .barcode-modal-note { width: min(100%, 42rem); margin: 0 auto; color: #f6eee8; text-align: center; font-size: .9rem; line-height: 1.45; }
      .barcode-value { max-width: 100%; overflow-wrap: anywhere; word-break: break-word; white-space: normal; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 800; letter-spacing: .04em; }
      .notice { padding: 1rem; }
      .notice.warning { background: var(--warning-bg); color: var(--warning-ink); border-color: #e5c96d; }
      .actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
      .button { appearance: none; border: 0; border-radius: .75rem; background: var(--wine); color: white; padding: .75rem 1rem; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
      .button.secondary { background: white; color: var(--wine); border: 1px solid #b78e80; }
      .more-tastings-link { display: inline-flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; margin-top: .15rem; }
      .icon-gallery { margin-top: .55rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--crusavia-soft); overflow: hidden; }
      .icon-gallery > summary { cursor: pointer; list-style: none; padding: .8rem; color: var(--wine); font-weight: 850; }
      .icon-gallery > summary::-webkit-details-marker { display: none; }
      .icon-gallery > summary::after { content: '+'; float: right; }
      .icon-gallery[open] > summary::after { content: '−'; }
      .icon-gallery-table { width: 100%; border-collapse: collapse; background: var(--paper); }
      .icon-gallery-table th, .icon-gallery-table td { padding: .7rem .55rem; border-top: 1px solid var(--line); text-align: left; vertical-align: middle; }
      .icon-gallery-table th { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
      .icon-gallery-preview { width: 3.2rem; height: 3.2rem; padding: .45rem; border: 1px solid var(--line); border-radius: .7rem; background: white; }
      .icon-gallery-preview svg { display: block; width: 100%; height: 100%; }
      .icon-gallery-name { font-weight: 800; }
      .icon-gallery-context { color: var(--muted); font-size: .78rem; }
      .saq-card .wine-layout { grid-template-columns: 5.5rem minmax(0, 1fr); }
      .saq-card .wine-image, .saq-card .wine-image-placeholder { width: 5.5rem; }
      .saq-card .actions .button { flex: 1 1 9rem; text-align: center; }
      .saq-source-label { margin: .55rem 0 0; color: var(--muted); font-size: .72rem; font-weight: 750; }
      .saq-source-label.mike { color: var(--wine); }
      .saq-card-title { margin-bottom: .2rem; }
      .saq-card-price { color: var(--wine); font-size: 1.05rem; font-weight: 900; }
      .saq-insights { display: grid; gap: .55rem; margin-top: .75rem; }
      .saq-insight-row { display: flex; flex-wrap: wrap; gap: .4rem; }
      .saq-insight { padding: .55rem .65rem; border-radius: .65rem; background: #f8f3ed; color: var(--ink); font-size: .82rem; line-height: 1.4; }
      .saq-insight strong { color: var(--wine-dark); }
      .saq-mike { padding: .65rem .75rem; border-left: 4px solid var(--wine); border-radius: .55rem; background: #fbf5ef; }
      .saq-mike-title { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; color: var(--wine-dark); font-weight: 900; }
      .saq-mike p { margin: .35rem 0 0; font-size: .82rem; line-height: 1.45; }
      .saq-card-description { margin: .65rem 0 0; color: var(--ink); font-size: .86rem; line-height: 1.45; overflow-wrap: anywhere; word-break: break-word; }
      .saq-card-description.is-clamped { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
      .saq-more, .saq-more-body, .saq-insights, .saq-insight, .saq-mike { min-width: 0; max-width: 100%; }
      .saq-insight, .saq-mike, .saq-mike p { overflow-wrap: anywhere; word-break: break-word; }
      .saq-guard-summary { margin-top: .65rem; color: var(--wine-dark); font-size: .84rem; font-weight: 850; }
      .saq-more { margin-top: .7rem; border: 1px solid #d9cdc3; border-radius: .75rem; background: #fbf8f5; overflow: hidden; }
      .saq-more summary { cursor: pointer; padding: .7rem .8rem; color: var(--wine); font-weight: 850; list-style: none; }
      .saq-more summary::-webkit-details-marker { display: none; }
      .saq-more summary::after { content: '⌄'; float: right; }
      .saq-more[open] summary::after { content: '⌃'; }
      .saq-more-body { padding: 0 .8rem .8rem; }
      .saq-more-body .saq-insights { margin-top: 0; }
      .saq-guard-timeline { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--line); }
      .saq-guard-timeline-title { color: var(--wine-dark); font-size: .84rem; font-weight: 900; }
      .saq-guard-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: .55rem; }
      .saq-guard-stage { min-width: 0; padding: .6rem; border-top: 4px solid #b8b0a8; border-radius: .55rem; background: white; }
      .saq-guard-stage.is-now { border-top-color: #6f9f59; }
      .saq-guard-stage.is-ideal { border-top-color: #87aa68; }
      .saq-guard-stage.is-late { border-top-color: #a76a35; }
      .saq-guard-stage strong, .saq-guard-stage span { display: block; }
      .saq-guard-stage strong { font-size: .76rem; line-height: 1.25; }
      .saq-guard-stage span { margin-top: .25rem; color: var(--muted); font-size: .72rem; line-height: 1.3; }
      .saq-inventory { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
      .saq-inventory-title { display: flex; justify-content: space-between; gap: .75rem; align-items: baseline; margin-bottom: .45rem; }
      .saq-store-list { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
      .saq-store { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .75rem; padding: .55rem .65rem; border-radius: .65rem; background: #f8f3ed; }
      .saq-store > div:first-child { min-width: 0; }
      .saq-store-name { font-weight: 800; overflow-wrap: anywhere; }
      .saq-store-distance { color: var(--muted); font-size: .82rem; overflow-wrap: anywhere; }
      .saq-store-stock { color: var(--wine); font-weight: 900; white-space: nowrap; }
      .saq-store-more { margin-top: .5rem; }
      .saq-inventory-loading { margin: .45rem 0 0; color: var(--muted); font-size: .86rem; }
      @media (max-width: 31rem) {
        .saq-card .wine-layout { grid-template-columns: 4.5rem minmax(0, 1fr); gap: .7rem; }
        .saq-card .wine-image-button, .saq-card .wine-image, .saq-card .wine-image-placeholder { width: 4.5rem; }
        .saq-card .card-head { display: block; }
        .saq-card .card-head > .badge { margin-top: .4rem; }
        .saq-card .actions { display: grid; grid-template-columns: 1fr; }
        .saq-card .actions .button { width: 100%; }
        .saq-inventory-title { display: grid; gap: .15rem; }
        .saq-store { grid-template-columns: minmax(0, 1fr); }
        .saq-store-stock { white-space: normal; }
      }
      .back { display: inline-block; margin-bottom: .8rem; color: var(--wine); font-weight: 700; text-decoration: none; }
      .detail-list { display: grid; gap: .75rem; margin: 1rem 0 0; }
      .detail-list div { padding-top: .75rem; border-top: 1px solid var(--line); }
      .detail-list dt { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
      .detail-list dd { margin: .25rem 0 0; font-weight: 650; }
      .more-tastings-link { display: inline-flex; max-width: 100%; box-sizing: border-box; white-space: normal; text-align: center; }
      @media (max-width: 43.99rem) { .more-tastings-link { width: 100%; justify-content: center; } }
      a:focus-visible, button:focus-visible { outline: 3px solid #1d65a6; outline-offset: 3px; }
      @media (max-width: 43.99rem) {
        body { padding-bottom: calc(5.6rem + env(safe-area-inset-bottom)); }
        header { position: static; }
        .header-inner { padding-bottom: .9rem; }
        .brand { margin-bottom: 0; }
        .primary-nav { display: none; }
        .mobile-nav { position: fixed; z-index: 30; left: .45rem; right: .45rem; bottom: .35rem; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .1rem; padding: .38rem max(.35rem, env(safe-area-inset-right)) calc(.38rem + env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left)); background: rgb(255 253 248 / 97%); border: 1px solid var(--line); border-radius: 1.15rem; box-shadow: 0 -.2rem 1.4rem rgb(40 32 24 / 10%); backdrop-filter: blur(12px); }
        .mobile-nav a::before { display: none; content: none; }
        .mobile-nav a { display: grid; grid-template-rows: 2.55rem 1.05rem; place-items: center; align-content: center; min-width: 0; min-height: 66px; padding: .16rem .02rem; border: 1px solid transparent; border-radius: .78rem; background: transparent; color: var(--ink); text-decoration: none; font-size: clamp(.48rem, 2vw, .62rem); font-weight: 750; line-height: 1; text-align: center; overflow: hidden; transition: background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease; }
        .mobile-nav a > .crusavia-icon, .mobile-nav a > .mobile-nav-icon { display: block; width: 2.55rem; height: 2.55rem; margin: 0; object-fit: contain; background: transparent; }
        .mobile-nav a[aria-current="page"] > .crusavia-icon { filter: brightness(0) invert(1); }
        .mobile-nav a > span:last-child { display: block; width: 100%; white-space: nowrap; text-align: center; }
        .mobile-nav a[aria-current="page"] { background: linear-gradient(145deg, #d9a437 0%, #c28b20 100%); border-color: #b67d14; color: #fff; box-shadow: 0 .28rem .75rem rgb(145 96 13 / 24%), inset 0 1px 0 rgb(255 255 255 / 42%); }
        .mobile-nav a[aria-current="page"]::before { filter: brightness(0) invert(1); }
        .mobile-nav a:active { transform: translateY(1px); }
        .wine-detail-shell { border: 0; box-shadow: none; background: transparent; padding: 0; }
        .wine-detail-shell > .wine-layout.detail:first-child { display: none; }
        .wine-detail-hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); grid-template-rows: auto auto; gap: .35rem 1rem; align-items: start; padding: .15rem 0 .7rem; }
        .wine-detail-hero .wine-gallery, .wine-detail-hero .wine-image-button.large, .wine-detail-hero .wine-image.large, .wine-detail-hero .wine-image-placeholder.large { width: 100%; }
        .wine-detail-hero .wine-gallery { grid-column: 1; grid-row: 1 / span 2; align-self: center; width: 100%; margin-top: 1.45rem; display: grid; justify-items: center; overflow: visible; }
        .wine-detail-hero .wine-detail-identity { grid-column: 2; grid-row: 1; min-width: 0; }
        .wine-detail-hero .wine-detail-facts { grid-column: 2; grid-row: 2; }
        .wine-detail-hero .wine-gallery { position: relative; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
        .wine-detail-hero .wine-gallery::after { display: none; content: none; }
        .wine-detail-hero .wine-gallery-selector { gap: .42rem; }
        .wine-detail-hero .wine-gallery-toggle { display: inline-flex; justify-self: center; gap: .15rem; padding: .16rem; border: 1px solid var(--line); border-radius: 999px; background: rgb(255 253 248 / 94%); box-shadow: 0 .15rem .45rem rgb(74 51 27 / 8%); }
        .wine-detail-hero .wine-gallery-toggle-button { min-height: 1.7rem; padding: .22rem .58rem; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
        .wine-detail-hero .wine-gallery-toggle-button.active { background: var(--crusavia-gold); color: #fff; }
        .wine-detail-hero .wine-gallery-item { position: relative; width: calc(100% - .65rem); margin-inline: auto; }
        .wine-detail-hero .wine-gallery-label { position: absolute; z-index: 2; top: -1.15rem; left: 0; margin: 0; font-size: .72rem; line-height: 1; }
        .wine-detail-hero .wine-image-button.large { position: relative; z-index: 1; display: block; width: 100%; margin: 0; border-radius: 1rem; overflow: hidden; background: transparent; box-shadow: 0 .55rem 1.1rem rgb(74 51 27 / 8%); }
        .wine-detail-hero .wine-image.large, .wine-detail-hero .wine-image-placeholder.large { display: block; width: 100%; height: auto; max-height: 20.5rem; aspect-ratio: auto; object-fit: contain; object-position: center center; background: transparent; mix-blend-mode: normal; filter: none; }
        .wine-detail-hero .wine-image.large { transform: none; border-radius: 1rem; }
        .wine-detail-name { margin: 0; font-family: "Times New Roman", Times, Georgia, serif; font-size: clamp(2rem, 8.2vw, 2.8rem); line-height: 1.01; font-weight: 400; letter-spacing: -.015em; overflow-wrap: normal; word-break: normal; hyphens: none; }
        .wine-detail-vintage { margin: .28rem 0 .15rem; color: var(--crusavia-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; }
        .wine-detail-location { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.35; }
        .wine-detail-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .18rem; margin-top: .12rem; padding-top: .08rem; border-top: 0; min-width: 0; }
        .wine-detail-fact { display: grid; place-items: center; gap: .05rem; min-width: 0; min-height: 3.65rem; padding: .08rem .12rem; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-size: clamp(.62rem, 2.55vw, .72rem); font-weight: 750; line-height: 1.08; text-align: center; box-shadow: none; overflow-wrap: anywhere; }
        .wine-detail-fact + .wine-detail-fact { border-left: 0; }
        .wine-detail-fact::before { color: var(--crusavia-gold); font-size: 1rem; line-height: 1; }
        .wine-detail-fact.fact-stock { grid-column: 1 / -1; display: inline-flex; justify-self: start; max-width: 100%; min-height: 0; margin-bottom: .22rem; padding: .38rem .65rem; border: 1px solid var(--line); border-radius: 999px; background: rgb(255 253 248 / 72%); white-space: normal; overflow-wrap: anywhere; }
        .wine-detail-fact::before { width: 1.35rem; height: 1.35rem; flex: 0 0 1.35rem; background-repeat: no-repeat; background-position: center; background-size: contain; content: ""; }
        .wine-detail-fact.fact-stock::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23936f32' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h16v11H4zM7 8V5h10v3M8 12h2M14 12h2M8 16h2M14 16h2'/%3E%3C/svg%3E"); }
        .wine-detail-fact:not(.fact-stock)::before { display: none; }
        .wine-detail-fact .fact-icon { display: block; width: 3rem; height: 3rem; margin: 0; object-fit: contain; background: transparent; }
        .wine-detail-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin: .1rem 0 .7rem; }
        .wine-detail-actions.actions-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .wine-detail-actions { border: 0; padding: 0; gap: .45rem; }
        .wine-detail-actions .button { display: grid; place-items: center; min-height: 5.35rem; padding: .42rem .35rem; border: 1px solid var(--line); border-radius: 1rem; background: rgb(255 253 248 / 66%); color: var(--ink); font-size: .78rem; font-weight: 800; text-align: center; box-shadow: 0 .15rem .55rem rgb(74 51 27 / 4%); }
        .wine-detail-actions .button + .button { border-left: 1px solid var(--line); }
        .wine-detail-actions .button:first-child { border-color: #d29a24; background: linear-gradient(145deg, #e1aa36 0%, #c98b16 100%); color: #fff; box-shadow: 0 .28rem .8rem rgb(145 96 13 / 18%); }
        .wine-detail-actions .button .crusavia-icon { display: block; width: 3.35rem; height: 3.35rem; margin: 0 0 .04rem; object-fit: contain; background: transparent; }
        .wine-detail-actions .button:first-child .crusavia-icon { filter: none; }
        .wine-detail-actions .legacy-history, .wine-detail-actions .legacy-drink { display: none; }
        .wine-detail-tabs { display: none; }
        .wine-detail-summary-badges { margin: .35rem 0; padding: .06rem .15rem; border: 1px solid var(--line); border-radius: 1.15rem; background: rgb(255 253 248 / 72%); overflow: hidden; box-shadow: 0 .18rem .65rem rgb(74 51 27 / 4%); }
        .wine-detail-summary-badges .badge-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; }
        .wine-detail-summary-badges .badge { display: grid; grid-template-rows: 1.35rem 2.35rem 1.45rem; place-items: center; align-content: center; gap: 0; min-width: 0; min-height: 5.35rem; padding: .06rem .08rem; border: 0; border-radius: 0; background: transparent; color: var(--ink); line-height: 1; text-align: center; overflow: hidden; }
        .wine-detail-summary-badges .badge strong { grid-row: 3; display: grid; place-items: start center; align-self: stretch; max-width: 100%; font-size: clamp(.72rem, 2.75vw, .86rem); font-weight: 800; line-height: 1.08; white-space: normal; overflow-wrap: anywhere; letter-spacing: -.015em; }
        .wine-detail-summary-badges .badge small { grid-row: 1; display: grid; place-items: end center; align-self: stretch; max-width: 100%; margin: 0; color: var(--muted); font-size: clamp(.62rem, 2.25vw, .72rem); font-weight: 700; line-height: 1.08; white-space: normal; overflow-wrap: anywhere; }
        .wine-detail-summary-badges .badge + .badge { border-left: 1px solid var(--line); }
        .wine-detail-summary-badges .summary-icon { grid-row: 2; position: static; width: 2.3rem; height: 2.3rem; margin: 0; transform: none; object-fit: contain; background: transparent; }
        .wine-detail-summary-badges .summary-icon { display: block; filter: none; }
        .wine-detail-section-heading { display: grid; gap: .2rem; margin: .9rem 0 .45rem; padding-bottom: .55rem; border-bottom: 1px solid var(--line); }
        .wine-detail-section-heading span { display: block; color: var(--crusavia-bordeaux-deep); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; font-weight: 700; line-height: 1.1; }
        .wine-detail-section-heading small { display: block; color: var(--muted); font-size: .78rem; line-height: 1.3; }

        .canonical-garde-wrap { width: calc(100% - 1rem); margin: 1rem auto 0; padding: 1.15rem .5rem 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; overflow: visible; }
        .canonical-garde-title { margin: 0 0 .9rem; font-size: 1.3rem; text-align: center; }
        .canonical-garde-bar, .canonical-garde-keyyears, .canonical-garde-states { display: none; }
        .canonical-garde-editorial { position: relative; display: grid; gap: 0; max-width: 35rem; margin: 0 auto; padding-left: 2.35rem; padding-right: .35rem; }
        .canonical-garde-editorial::before { content: ""; position: absolute; left: .72rem; top: .55rem; bottom: .55rem; width: 2px; border-radius: 999px; background: color-mix(in srgb, var(--crusavia-gold) 42%, transparent); }
        .canonical-garde-event { position: relative; display: grid; grid-template-columns: 3.6rem minmax(0, 1fr); gap: .1rem .55rem; align-items: baseline; padding: 0 0 .72rem; }
        .canonical-garde-event::before { content: ""; position: absolute; left: -1.96rem; top: .18rem; width: .68rem; height: .68rem; border: 3px solid var(--paper); border-radius: 50%; background: var(--crusavia-gold); box-shadow: 0 0 0 2px var(--crusavia-gold); }
        .canonical-garde-event.is-today::before { width: .82rem; height: .82rem; left: -2.03rem; top: .1rem; background: var(--ink); box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px var(--ink); }
        .canonical-garde-event-year { display: block; color: var(--crusavia-gold); font-family: Georgia, "Times New Roman", serif; font-size: .95rem; line-height: 1; }
        .canonical-garde-event.is-today .canonical-garde-event-year { color: var(--ink); }
        .canonical-garde-event strong { display: block; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: .95rem; font-weight: 600; }
        .canonical-garde-event p { grid-column: 2; margin: .12rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.3; }
        .canonical-garde-current { margin: .1rem 0 .65rem; }
        .canonical-garde-current .badge { padding: .35rem 0; background: transparent; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1rem; }
        .canonical-garde-current .badge + .badge { display: none; }
        .canonical-garde-comment { margin-top: .2rem; padding-left: 1rem; border-left: 2px solid var(--crusavia-gold); color: var(--ink); font-size: .84rem; line-height: 1.5; }
        .canonical-garde-wrap .mike-note { margin-top: .8rem; padding: .65rem 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; font-size: .8rem; }
        .canonical-garde-wrap .mike-note p { font-size: .78rem; line-height: 1.45; }
        .ui-disclosure { position: relative; z-index: 1; margin: .7rem 0 1rem; border: 1px solid var(--line); border-radius: var(--ui-radius-lg); background: rgb(255 253 248 / 62%); overflow: hidden; box-shadow: 0 .12rem .45rem rgb(74 51 27 / 3%); }
        .ui-disclosure > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; list-style: none; padding: .85rem; color: var(--ink); font-family: system-ui, sans-serif; font-size: .9rem; font-weight: 800; text-align: left; overflow-wrap: anywhere; }
        .ui-disclosure > summary::-webkit-details-marker { display: none; }
        .ui-disclosure > summary::after { content: "›"; margin-left: auto; color: var(--crusavia-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 700; line-height: .8; }
        .ui-disclosure[open] > summary::after { content: "⌄"; font-size: 1.2rem; }
        .ui-disclosure > summary .section-icon { width: 1.8rem; height: 1.8rem; margin-right: .45rem; object-fit: contain; background: transparent; }
        .ui-disclosure-content { border-top: 1px solid var(--line); }
        .wine-more-info-content { padding-bottom: .8rem; }
        .wine-more-info-content::before { content: "Description du vin"; display: block; margin: .55rem .85rem; color: var(--crusavia-gold); font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
        .wine-detail-secondary { margin-top: 1rem; }
        .wine-detail-secondary .detail-list { margin-top: .5rem; }
        .wine-detail-secondary .form-grid { margin-top: .8rem; }
        .cellar-card-link { display: block; }
        .cellar-card-compact { padding: .8rem; }
        .cellar-card-compact .wine-layout { gap: .8rem; align-items: center; }
        .cellar-card-compact .wine-image-button { position: relative; padding: .15rem; border: 0; border-radius: 46% 46% .8rem .8rem / 22% 22% .8rem .8rem; background: radial-gradient(ellipse at 50% 46%, rgb(215 195 154 / 30%) 0 34%, rgb(247 241 229 / 64%) 35% 65%, transparent 66%); box-shadow: none; overflow: hidden; }
        .cellar-card-compact .wine-thumb { width: 74px; height: 104px; object-fit: contain; background: transparent; mix-blend-mode: multiply; filter: saturate(.9) contrast(1.08) drop-shadow(0 .35rem .3rem rgb(58 42 26 / 16%)); transform: scale(1.05); }
        .cellar-card-content { min-width: 0; }
        .cellar-card-compact h2 { margin-bottom: .12rem; font-size: 1.05rem; line-height: 1.15; }
        .cellar-card-vintage { margin: .08rem 0 .18rem; color: var(--crusavia-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-weight: 700; }
        .cellar-card-compact .muted, .cellar-card-compact .wine-subtitle { margin: .08rem 0; font-size: .78rem; line-height: 1.25; }
        .cellar-card-meta { margin-top: .38rem; font-size: .76rem; }
        .cellar-card-open { display: inline-block; margin-top: .42rem; color: var(--crusavia-gold); font-size: .72rem; font-weight: 800; }
        .wine-detail-secondary > .mike-note { display: none; }
        .wine-technical-details-content, .wine-management-details-content { padding: 0 .85rem .9rem; }
        .wine-management-details-content .form-grid { margin-top: 0; padding: .8rem 0; border-top: 0; border-bottom: 1px solid var(--line); }
        .wine-management-details-content .form-grid:last-child { border-bottom: 0; }
        .wine-management-details-content .actions { gap: .45rem; }
        .wine-management-details-content .button { min-height: 2.65rem; border-radius: .75rem; box-shadow: none; }
        .ui-section-title { display: flex; align-items: center; gap: .45rem; padding: .75rem 0 .4rem; color: var(--ink); font-size: .88rem; }
        .ui-section-title .section-icon { width: 1.65rem; height: 1.65rem; margin: 0; }
        .ui-media-picker { display: grid; gap: .45rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
        .ui-media-picker:last-child { border-bottom: 0; }
        .ui-media-picker-head { display: flex; align-items: center; gap: .5rem; min-width: 0; }
        .ui-media-picker-head > div:first-child { display: grid; gap: .1rem; min-width: 0; flex: 1; }
        .ui-media-picker-head strong { font-size: .82rem; }
        .ui-media-picker-head small { color: var(--muted); font-size: .65rem; }
        .ui-media-picker-current, .ui-media-picker-preview { width: 2.9rem; height: 2.9rem; border: 1px solid var(--line); border-radius: var(--ui-radius-sm); overflow: hidden; background: var(--paper); flex: 0 0 auto; }
        .ui-media-picker-current .wine-image-button, .ui-media-picker-current .wine-image, .ui-media-picker-preview img { display: block; width: 100%; height: 100%; margin: 0; border: 0; border-radius: 0; object-fit: cover; }
        .ui-media-picker-preview[hidden] { display: none; }
        .ui-media-picker-select { display: flex; align-items: center; gap: .5rem; min-height: 2.5rem; padding: .5rem .65rem; border: 1px solid var(--line); border-radius: var(--ui-radius-md); background: var(--paper); color: var(--ink); font-size: .74rem; cursor: pointer; }
        .ui-media-picker-select .crusavia-icon { width: 1.35rem; height: 1.35rem; margin: 0; }
        .ui-media-picker-file { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0 !important; }
        .ui-media-picker-compact { grid-template-columns: minmax(4.5rem, 6rem) minmax(7rem, 1fr); align-items: center; gap: .55rem; }
        .ui-media-picker-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
        .ui-media-picker-media { min-width: 0; }
        .ui-media-picker-compact .ui-media-picker-current, .ui-media-picker-compact .ui-media-picker-preview { width: 5rem; height: 5rem; }
        .ui-media-picker-actions { display: grid; grid-template-columns: 1fr; gap: .4rem; }
        .ui-media-picker-save { display: none !important; }
        .ui-media-picker-actions .button { justify-content: center; min-height: var(--ui-control-min-height); padding: .45rem .6rem; font-size: .74rem; }
        .ui-button-primary, .wine-gold-button { border-color: var(--crusavia-gold-action-border) !important; background: linear-gradient(135deg, var(--crusavia-gold-action-light), var(--crusavia-gold-action)) !important; color: #fff !important; box-shadow: var(--ui-shadow-action) !important; }
        .ui-button-primary .crusavia-icon, .wine-gold-button .crusavia-icon { filter: brightness(0) invert(1); }
        .ui-button-secondary, .wine-gold-outline { border-color: var(--crusavia-gold-action) !important; background: transparent !important; color: var(--crusavia-gold-action-ink) !important; }
        .wine-profile { display: grid; gap: .7rem; padding: 0 .85rem .85rem; }
        .wine-profile h3 { margin: 0; color: var(--crusavia-bordeaux-deep); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
        .wine-profile-description { margin: 0; color: var(--ink); font-size: .84rem; line-height: 1.5; }
        .wine-profile-empty { margin: 0; font-size: .76rem; }
        .wine-profile-grapes { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .32rem .75rem; padding: .65rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .8rem; }
        .wine-profile-grapes > strong { grid-column: 1 / -1; color: var(--crusavia-gold); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
        .wine-profile-grape { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; }
        .wine-profile-grape strong { color: var(--ink); }
        .wine-profile-bars { display: grid; gap: .48rem; }
        .wine-profile-bar { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr) 2.1rem; gap: .55rem; align-items: center; font-size: .74rem; }
        .wine-profile-bar > span { color: var(--ink); font-weight: 700; }
        .wine-profile-bar > strong { color: var(--muted); font-size: .7rem; text-align: right; }
        .wine-profile-bar-track { height: .42rem; border-radius: 999px; background: color-mix(in srgb, var(--line) 82%, white); overflow: hidden; }
        .wine-profile-bar-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--crusavia-gold), var(--crusavia-bordeaux)); }
        .card .form-grid, .card .form-field { width: 100%; min-width: 0; max-width: 100%; }
        .card .form-field input, .card .form-field select, .card .form-field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; }
        .wine-layout.detail { grid-template-columns: 1fr; }
        .wine-gallery, .wine-image-button.large, .wine-image.large, .wine-image-placeholder.large { width: min(12rem, 70vw); }
        .canonical-garde-keyyears { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .canonical-garde-states { grid-template-columns: 1fr; }
        .canonical-garde-title { margin-bottom: 3rem; }
        .saq-guard-track { grid-template-columns: 1fr; }
        .saq-guard-stage { display: grid; grid-template-columns: minmax(6.5rem, .8fr) minmax(0, 1.2fr); gap: .4rem .7rem; align-items: baseline; }
        .saq-guard-stage span { margin-top: 0; }
      }
      .crusavia-icon { display: inline-block; width: 1.25rem; height: 1.25rem; object-fit: contain; vertical-align: -.25rem; flex: 0 0 auto; }
      .mike-home { border-top: 3px solid var(--crusavia-gold); }
      .mike-home h2 { margin-bottom: .35rem; font-size: clamp(1.45rem, 5vw, 2rem); }
      .mike-recommendations { margin-top: .75rem; }
      .mike-recommendation { padding: 1rem; border: 1px solid var(--line); border-radius: var(--ui-radius-lg); background: var(--paper); box-shadow: 0 .18rem .65rem rgb(74 51 27 / 4%); }
      .mike-recommendation > strong { color: var(--crusavia-bordeaux); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
      .mike-recommendation p { margin: .55rem 0 0; font-size: .86rem; }
      .mobile-plus-menu { display: none; }
      .classification-toolbar{display:flex;gap:16px;align-items:end;margin-bottom:18px}.classification-toolbar .search-field{flex:1}.classification-edition{margin-bottom:18px}.classification-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.classification-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:14px}.classification-entry{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--border,#e6e0d9)}.classification-entry div{display:flex;flex-direction:column;gap:3px}.classification-entry span{font-size:.86rem;color:var(--muted,#716b65)}.classification-level{font-weight:700;text-align:right;color:var(--ink,#201d1a)!important}.classification-source{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border,#e6e0d9);font-size:.85rem}.classification-source a{color:inherit;font-weight:700}

.classification-cellar-stock{margin-top:5px;color:#17643a!important;font-weight:800;font-size:.8rem!important}

.classification-saq-watch{margin-top:8px;align-self:flex-start;padding:7px 10px;font-size:.78rem}
.saq-watch-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;box-sizing:border-box;text-align:center;white-space:normal;line-height:1.15}

@media (max-width: 720px) {
  .classification-toolbar{align-items:stretch;flex-direction:column}.classification-list{grid-template-columns:1fr}.classification-entry{align-items:start}.classification-source{flex-direction:column}
        body[data-route-active="/more"] main { padding-bottom: calc(7.2rem + env(safe-area-inset-bottom)); }
        .mobile-plus-menu { position: fixed; z-index: 40; right: max(.8rem, env(safe-area-inset-right)); bottom: calc(5.65rem + env(safe-area-inset-bottom)); display: block; width: min(20rem, calc(100vw - 1.6rem)); padding: .75rem 0 .35rem; border-radius: 1.2rem; box-shadow: 0 .8rem 2.2rem rgb(43 36 34 / 18%); }
        .mobile-plus-menu::after { content: ""; position: absolute; z-index: 41; right: 2rem; bottom: -.55rem; width: 1rem; height: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); transform: rotate(45deg); }
        .mobile-plus-menu .eyebrow { margin: 0; padding: 0 1rem .55rem; }
        .mobile-plus-links { display: grid; }
        .mobile-plus-links a { display: grid; gap: .12rem; min-height: 52px; padding: .72rem 1rem; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
        .mobile-plus-links a strong { color: var(--crusavia-bordeaux); font-size: .9rem; }
        .mobile-plus-links a span { color: var(--muted); font-size: .7rem; }
        .mobile-plus-links > button { width: calc(100% - 2rem); min-height: 2.75rem; margin: .65rem 1rem .25rem; padding: .55rem .8rem; font-size: .82rem; }
        body[data-route-active="/more"] .mobile-nav a[href="/more"] { border-color: var(--crusavia-bordeaux); color: var(--crusavia-bordeaux); box-shadow: 0 .25rem .75rem rgb(112 68 82 / 12%); }
      }
      .crusavia-icon.wine-white, .fact-color.wine-white .crusavia-icon { filter: sepia(.75) saturate(.7) hue-rotate(350deg) brightness(1.35); }
      .crusavia-icon.wine-rose, .fact-color.wine-rose .crusavia-icon { filter: sepia(.45) saturate(1.4) hue-rotate(300deg) brightness(1.15); }
      .crusavia-icon.wine-orange, .fact-color.wine-orange .crusavia-icon { filter: sepia(.8) saturate(1.5) hue-rotate(345deg) brightness(1.05); }
      .wine-profile { padding: .85rem; }
      .wine-profile h3 { margin: 0 0 .55rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
      .wine-profile-description { margin: 0 0 .75rem; line-height: 1.55; }
      .wine-profile-source { margin: .65rem 0 0; font-size: .68rem; }
      .wine-gallery-saq .saq-product-image { padding: .2rem; border: 0; background: transparent; box-shadow: none; }
      .wine-gallery-saq .saq-product-image .wine-image { object-fit: contain; background: transparent; }
      .wine-profile-empty { margin: .35rem 0 .75rem; }
      .wine-profile-traits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
      .wine-profile-trait { display: grid; gap: .12rem; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--paper); }
      .wine-profile-trait span { color: var(--muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
      .wine-profile-trait strong { font-size: .82rem; line-height: 1.3; }
      .button .crusavia-icon, .nav-link .crusavia-icon { margin-right: .4rem; }
      .crusavia-icon.icon-only { margin: 0; width: 1.4rem; height: 1.4rem; }
      .dashboard-home { display: grid; gap: 1rem; }
      .dashboard-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.35rem; border: 1px solid var(--crusavia-gold-soft); border-radius: var(--ui-radius-lg); background: linear-gradient(145deg, var(--crusavia-ivory), var(--crusavia-soft)); overflow: hidden; }
      .dashboard-hero h1 { margin: .15rem 0 .35rem; color: var(--crusavia-bordeaux-deep); font-size: clamp(2rem, 9vw, 3.4rem); }
      .dashboard-lead { margin: 0 0 1rem; color: var(--muted); }
      .dashboard-scan { background: var(--crusavia-bordeaux); }
      .dashboard-hero-mark { color: var(--crusavia-gold); font-family: Georgia, "Times New Roman", serif; font-size: clamp(4rem, 20vw, 7rem); line-height: .8; opacity: .8; }
      .dashboard-hero-mark span { color: var(--crusavia-bordeaux); margin-left: -.3em; }
      .dashboard-quick { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
      .dashboard-quick-card { display: grid; gap: .35rem; min-width: 0; padding: .9rem; color: var(--ink); text-decoration: none; }
      .dashboard-quick-card strong { color: var(--crusavia-bordeaux); }
      .dashboard-quick-card span { color: var(--muted); font-size: .72rem; }
      .dashboard-mike { border-top: 3px solid var(--crusavia-gold); background: linear-gradient(135deg,#fffdf8,var(--crusavia-soft)); }
      .dashboard-section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
      .dashboard-section-head h2 { margin: .15rem 0 0; }
      .dashboard-bottles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin-top: 1rem; }
      .dashboard-bottle { display: grid; gap: .4rem; color: var(--ink); text-decoration: none; min-width: 0; }
      .dashboard-bottle .wine-image, .dashboard-bottle .wine-image-placeholder { width: 100%; aspect-ratio: 3/4; object-fit: contain; }
      .dashboard-bottle span { display: grid; gap: .12rem; }
      .dashboard-bottle small { color: var(--muted); }
      .dashboard-secondary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
      .dashboard-secondary a { display: grid; gap: .25rem; color: var(--ink); text-decoration: none; }
      .dashboard-secondary strong { color: var(--crusavia-bordeaux); }
      .dashboard-secondary span { color: var(--muted); font-size: .75rem; }
      .mobile-nav-scan { border-color: var(--crusavia-bordeaux) !important; color: var(--crusavia-bordeaux) !important; font-weight: 800; }
      @media (max-width: 24rem) { .dashboard-quick { grid-template-columns: 1fr; } .dashboard-hero-mark { display:none; } }
      @media (max-width: 43.99rem) {
        .mobile-nav-icon-home { width: 2.55rem !important; height: 2.55rem !important; overflow: visible; }
        .mobile-nav-icon-tasting { transform: none; }
        .mobile-nav-icon-search { width: 2.25rem !important; height: 2.25rem !important; overflow: visible; }
        .mobile-nav-icon-more { display: flex !important; align-items: center; justify-content: center; gap: .3rem; }
        .mobile-nav-icon-more i { width: .46rem; height: .46rem; border-radius: 50%; background: currentColor; }
      }
      @media (max-width: 43.99rem) {
        body[data-route-active="/dashboard"] header { position: relative; }
        body[data-route-active="/dashboard"] .header-inner { padding: .7rem 1rem .6rem; }
        body[data-route-active="/dashboard"] .brand { justify-content: center; margin-bottom: 0; }
        body[data-route-active="/dashboard"] .brand-logo { width: 9.5rem; max-height: 4.8rem; }
        body[data-route-active="/dashboard"] .brand-tagline { margin-top: .15rem; }
        body[data-route-active="/dashboard"] main { padding: .7rem .9rem 7.5rem; }
        body[data-route-active="/dashboard"] main > .hero { display: none; }
        .dashboard-home { gap: .72rem; }
        .dashboard-hero { min-height: 12.5rem; padding: 1.1rem; border: 0; border-radius: 1.35rem; background: linear-gradient(135deg,#fffaf1 0%,#f3e7d7 100%); box-shadow: 0 .55rem 1.6rem rgb(74 51 27 / 9%); }
        .dashboard-hero-copy { position: relative; z-index: 2; }
        .dashboard-hero h1 { font-size: 2.55rem; }
        .dashboard-lead { max-width: 12rem; margin-bottom: .8rem; font-size: .88rem; }
        .dashboard-scan { min-height: 2.85rem; padding: .65rem .85rem; border-radius: .8rem; font-size: .82rem; }
        .dashboard-hero-visual { position: relative; align-self: stretch; width: 6.4rem; }
        .dashboard-hero-mark { position: absolute; right: -.2rem; top: .4rem; font-size: 5.4rem; opacity: .22; }
        .dashboard-hero-bottle { position: absolute; right: .55rem; bottom: .5rem; font-size: 3.5rem; filter: saturate(.7); transform: rotate(-7deg); }
        .dashboard-quick { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; }
        .dashboard-quick-card { min-height: 6.1rem; padding: .7rem .65rem; border-radius: 1rem; box-shadow: none; }
        .dashboard-quick-card .crusavia-icon { width: 1.45rem; height: 1.45rem; }
        .dashboard-quick-card strong { font-size: .78rem; line-height: 1.15; }
        .dashboard-quick-card span { font-size: .62rem; line-height: 1.25; }
        .dashboard-mike { padding: 1rem; border: 0; border-radius: 1.2rem; background: linear-gradient(140deg,var(--crusavia-bordeaux),#54313c); color: #fffdf8; box-shadow: 0 .55rem 1.4rem rgb(72 38 49 / 18%); }
        .dashboard-mike .eyebrow, .dashboard-mike h2, .dashboard-mike p, .dashboard-mike strong { color: #fffdf8; }
        .dashboard-mike .eyebrow { opacity: .78; }
        .dashboard-mike h2 { font-size: 1.35rem; }
        .dashboard-mike p { margin: .5rem 0; font-size: .82rem; }
        .dashboard-mike .button { min-height: 2.45rem; padding: .5rem .8rem; border-color: rgb(255 255 255 / 55%); color: #fff; background: transparent; font-size: .78rem; }
        .dashboard-cellar-summary { padding: .9rem; border-radius: 1.15rem; }
        .dashboard-section-head h2 { font-size: 1.3rem; }
        .dashboard-section-head > a { font-size: .72rem; }
        .dashboard-cellar-summary .summary { display: flex; gap: .45rem; margin: .75rem 0 .85rem; overflow-x: auto; scrollbar-width: none; }
        .dashboard-cellar-summary .summary::-webkit-scrollbar { display: none; }
        .dashboard-cellar-summary .metric { flex: 0 0 6.4rem; min-height: 5rem; padding: .7rem; border-radius: .8rem; box-shadow: none; }
        .dashboard-cellar-summary .metric strong { font-size: 1.35rem; }
        .dashboard-cellar-summary .metric span { font-size: .66rem; line-height: 1.15; }
        .dashboard-bottles { gap: .55rem; }
        .dashboard-bottle strong { font-size: .72rem; line-height: 1.15; }
        .dashboard-bottle small { font-size: .65rem; }
        .dashboard-secondary { gap: .5rem; }
        .dashboard-secondary a { min-height: 5rem; padding: .75rem; border-radius: .9rem; box-shadow: none; }
        .dashboard-secondary strong { font-size: .82rem; }
        .dashboard-secondary span { font-size: .64rem; }
      }
      @media (max-width: 43.99rem) {
        body[data-route-active="/dashboard"] { background: #f7f2e9; }
        body[data-route-active="/dashboard"] header { background: #fffdf9; border-bottom-color: #eadfce; }
        body[data-route-active="/dashboard"] .brand-logo { width: 8.7rem; }
        body[data-route-active="/dashboard"] .brand-tagline strong { font-size: .44rem; letter-spacing: .09em; }
        .dashboard-home { gap: .85rem; }
        .dashboard-hero { min-height: 13.5rem; padding: 1.35rem 1.2rem; border-radius: 1.55rem; background: radial-gradient(circle at 83% 30%,rgb(205 177 129 / 24%),transparent 34%),linear-gradient(135deg,#fffdf7 0%,#efe2d0 100%); box-shadow: 0 .8rem 2rem rgb(72 49 29 / 10%); }
        .dashboard-hero .eyebrow { margin-bottom: .2rem; font-size: .66rem; letter-spacing: .18em; }
        .dashboard-hero h1 { margin-top: 0; color: #4f2935; font-size: 2.7rem; line-height: .98; }
        .dashboard-lead { color: #77675c; font-family: Georgia,"Times New Roman",serif; font-size: .9rem; line-height: 1.35; }
        .dashboard-scan { padding-inline: 1rem; border: 0; border-radius: 999px; background: #713646; box-shadow: 0 .35rem .8rem rgb(93 44 58 / 20%); letter-spacing: .015em; }
        .dashboard-hero-visual { width: 7.4rem; }
        .dashboard-hero-mark { right: -.5rem; top: .15rem; color: #ad8950; font-size: 6.3rem; opacity: .14; }
        .dashboard-hero-bottle { position: absolute; right: 2.55rem; bottom: .25rem; width: 1.35rem; height: 7.2rem; border-radius: .25rem .25rem .5rem .5rem; background: linear-gradient(90deg,#40231e,#7c4937 48%,#301a18); box-shadow: inset .15rem 0 rgb(255 255 255 / 13%),0 .55rem .9rem rgb(45 25 20 / 18%); transform: rotate(-5deg); }
        .dashboard-hero-bottle::before { content: ""; position: absolute; left: .38rem; top: -1.55rem; width: .58rem; height: 1.8rem; border-radius: .12rem .12rem 0 0; background: #5a3026; }
        .dashboard-hero-bottle::after { content: "CRUSAVIA"; position: absolute; left: .14rem; right: .14rem; top: 2.55rem; padding: .28rem .05rem; background: #ead9b8; color: #6d3a45; font-size: .29rem; font-weight: 800; text-align: center; letter-spacing: .05em; }
        .dashboard-hero-glass { position: absolute; right: .1rem; bottom: .2rem; width: 2.6rem; height: 3.3rem; border: .12rem solid rgb(112 68 82 / 55%); border-top: 0; border-radius: 0 0 48% 48%; transform: rotate(4deg); }
        .dashboard-hero-glass::before { content: ""; position: absolute; left: 50%; bottom: -1.55rem; width: .12rem; height: 1.55rem; background: rgb(112 68 82 / 55%); }
        .dashboard-hero-glass::after { content: ""; position: absolute; left: 50%; bottom: -1.65rem; width: 2.1rem; height: .12rem; border-radius: 999px; background: rgb(112 68 82 / 55%); transform: translateX(-50%); }
        .dashboard-quick-card { align-content: start; min-height: 6.6rem; padding: .8rem; border-color: #e8dccb; background: #fffdfa; box-shadow: 0 .35rem .9rem rgb(67 47 29 / 5%); }
        .dashboard-quick-card strong { color: #56313c; font-size: .8rem; }
        .dashboard-mike { position: relative; overflow: hidden; padding: 1.2rem; border-radius: 1.4rem; background: linear-gradient(135deg,#713646,#512936); box-shadow: 0 .7rem 1.6rem rgb(72 38 49 / 20%); }
        .dashboard-mike::after { content: "M"; position: absolute; right: .7rem; top: -.45rem; color: rgb(255 255 255 / 7%); font-family: Georgia,serif; font-size: 7rem; line-height: 1; }
        .dashboard-mike > * { position: relative; z-index: 1; }
        .dashboard-cellar-summary { border-color: #e8dccb; background: #fffdfa; box-shadow: 0 .4rem 1.1rem rgb(67 47 29 / 6%); }
        .dashboard-cellar-summary .metric { border: 0; background: #f8f0e5; }
        .dashboard-cellar-summary .metric strong { color: #653745; }
        .dashboard-bottle .wine-image, .dashboard-bottle .wine-image-placeholder { border: 0; border-radius: .85rem; background: #f7f0e6; }
        .dashboard-secondary a { grid-template-columns: 2rem minmax(0,1fr); grid-template-rows: auto auto; column-gap: .65rem; align-content: center; border-color: #e8dccb; background: #fffdfa; box-shadow: 0 .3rem .8rem rgb(67 47 29 / 5%); }
        .dashboard-secondary .crusavia-icon { grid-row: 1 / 3; align-self: center; width: 1.55rem; height: 1.55rem; }
        .dashboard-secondary strong { color: #56313c; font-size: .82rem; }
        .dashboard-secondary span { line-height: 1.25; }
        .mobile-nav { border-top-color: #e4d7c4; background: rgb(255 253 249 / 98%); box-shadow: 0 -.45rem 1.25rem rgb(62 43 28 / 7%); }
        .mobile-nav a { color: #776b63; font-size: .66rem; }
        .mobile-nav a[aria-current="page"] { color: #713646; }
        .mobile-nav-scan { color: #713646 !important; }
      }
      @media (max-width: 43.99rem) {
        body[data-route-active="/dashboard"] .header-inner { padding: .55rem 1rem .45rem; }
        body[data-route-active="/dashboard"] .brand-logo { width: 7.5rem; max-height: 3.8rem; }
        body[data-route-active="/dashboard"] .brand-tagline { display: none; }
        body[data-route-active="/dashboard"] main { padding: .55rem .9rem calc(6.4rem + env(safe-area-inset-bottom)); }
        .dashboard-home { gap: .7rem; }
        .dashboard-hero { min-height: 11.8rem; padding: 1.1rem; border-radius: 1.25rem; }
        .dashboard-hero h1 { font-size: 2.35rem; }
        .dashboard-lead { margin-bottom: .7rem; font-size: .82rem; }
        .dashboard-scan { width: auto; max-width: 11.8rem; min-height: 2.55rem; font-size: .74rem; white-space: nowrap; }
        .dashboard-hero-visual { width: 6.4rem; transform: scale(.88); transform-origin: right center; }
        .dashboard-cellar-summary { padding: .85rem; }
        .dashboard-section-head { align-items: center; }
        .dashboard-section-head h2 { font-size: 1.15rem; }
        .dashboard-cellar-summary .summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; overflow: visible; }
        .dashboard-cellar-summary .metric { min-width: 0; min-height: 4.25rem; padding: .55rem .4rem; text-align: center; }
        .dashboard-cellar-summary .metric:nth-child(n+4) { display: none; }
        .dashboard-cellar-summary .metric strong { font-size: 1.12rem; }
        .dashboard-cellar-summary .metric span { font-size: .57rem; }
        .dashboard-bottles { margin-top: .65rem; }
        .dashboard-bottle .wine-image, .dashboard-bottle .wine-image-placeholder { aspect-ratio: 1/1; max-height: 6.5rem; }
        .dashboard-bottle strong { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
        .dashboard-mike { padding: 1rem 1.05rem; }
        .dashboard-mike h2 { font-size: 1.18rem; }
        .dashboard-mike p { margin: .35rem 0; line-height: 1.35; }
        .dashboard-mike .button { width: fit-content; min-height: 2.2rem; }
        .dashboard-secondary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem; }
        .dashboard-secondary a { min-height: 4.4rem; padding: .65rem; }
        .mobile-nav { left: .65rem; right: .65rem; bottom: max(.55rem,env(safe-area-inset-bottom)); width: auto; min-height: 4.8rem; padding: .3rem .25rem; border: 1px solid #dfd1bd; border-radius: 1.35rem; box-shadow: 0 .6rem 2rem rgb(54 39 27 / 16%); }
        .mobile-nav a { min-width: 0; min-height: 4.1rem; padding: .3rem .1rem; border: 0 !important; border-radius: 1rem; background: transparent !important; box-shadow: none !important; font-size: .57rem; font-weight: 700; }
        .mobile-nav a[aria-current="page"] { color: #713646; background: #f2e6d5 !important; }
        .mobile-nav-icon { width: 1.35rem; height: 1.35rem; }
        .mobile-nav-icon-home { width: 1.15rem; height: 1rem; margin: .1rem 0 .2rem; border-width: .14rem; }
        .mobile-nav-icon-home::before { top: -.4rem; width: .72rem; height: .72rem; border-width: .14rem; }
        .mobile-nav-icon-search { width: 1.08rem; height: 1.08rem; border-width: .14rem; }
        .mobile-nav-icon-search::after { right: -.46rem; bottom: -.32rem; width: .55rem; height: .14rem; }
        .mobile-nav-icon-more i { width: .27rem; height: .27rem; }
        .mobile-nav-scan { color: #713646 !important; }
        .mobile-nav-scan .mobile-nav-icon { width: 1.45rem; height: 1.45rem; }
      }
      @media (max-width: 43.99rem) {
        .dashboard-hero-cellar-art { position: absolute; right: -.9rem; bottom: -.9rem; width: 8.8rem; height: 10.5rem; object-fit: contain; object-position: center; opacity: .96; filter: drop-shadow(0 .65rem .75rem rgb(51 30 23 / 15%)); }
        .dashboard-hero-glass { right: .15rem; bottom: .3rem; opacity: .75; }
        .dashboard-hero-mark { display: none; }
        .dashboard-section-head .eyebrow { display: inline-flex; align-items: center; gap: .35rem; }
        .dashboard-section-head .eyebrow .crusavia-icon { width: 1.1rem; height: 1.1rem; }
        .dashboard-secondary .crusavia-icon { width: 1.75rem; height: 1.75rem; filter: sepia(.65) saturate(1.15) hue-rotate(350deg) brightness(.8); }
        .dashboard-secondary a { border-color: #e3d3bd; }
        .dashboard-secondary a:active { transform: scale(.985); }
        .dashboard-bottle .wine-image { object-fit: contain; padding: .25rem; background: linear-gradient(180deg,#fffdf9,#f4eadc); }
      }
      .dashboard-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
      .dashboard-photo-card { position:relative; display:grid; min-width:0; overflow:hidden; border-radius:1rem; background:#2d1d20; color:#fff; text-decoration:none; aspect-ratio:4/5; box-shadow:0 .45rem 1rem rgb(56 35 25 / 12%); }
      .dashboard-photo-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
      .dashboard-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgb(25 13 16 / 78%) 100%); }
      .dashboard-photo-card strong { position:absolute; z-index:2; left:.7rem; right:.45rem; bottom:.65rem; color:#fff; font-size:.76rem; line-height:1.1; }
      .dashboard-photo-icon { position:absolute; z-index:2; left:.65rem; bottom:2rem; display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:#713646; box-shadow:0 .25rem .55rem rgb(30 13 18 / 25%); }
      .dashboard-photo-icon .crusavia-icon { width:1.15rem; height:1.15rem; filter:brightness(0) invert(1); }
      @media (max-width:43.99rem) {
        .dashboard-hero { position:relative; display:block; min-height:14rem; overflow:hidden; background:#2f2020; }
        .dashboard-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgb(25 13 15 / 82%) 0%,rgb(25 13 15 / 50%) 48%,rgb(25 13 15 / 8%) 100%); }
        .dashboard-hero-copy { position:relative; z-index:3; max-width:62%; }
        .dashboard-hero .eyebrow,.dashboard-hero h1,.dashboard-lead { color:#fffdf8; }
        .dashboard-hero-visual { position:absolute; inset:0; width:auto; transform:none; }
        .dashboard-hero-cellar-art { inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:1; filter:none; }
        .dashboard-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
        .dashboard-photo-card { aspect-ratio:1.2/1; border-radius:.9rem; }
      }

      /* MCN-298 — Accueil chic et compact, inspiré de la composition approuvée. */
      .dashboard-primary-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
      .dashboard-primary-actions a { display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.6rem; align-items:center; min-width:0; color:var(--ink); text-decoration:none; }
      .dashboard-primary-actions .crusavia-icon { width:1.7rem; height:1.7rem; }
      .dashboard-primary-actions span { display:grid; gap:.15rem; min-width:0; }
      .dashboard-primary-actions strong { color:var(--crusavia-bordeaux-deep); font-size:.78rem; text-transform:uppercase; }
      .dashboard-primary-actions small { color:var(--muted); font-size:.66rem; }
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] { background:#faf6ef; }
        body[data-route-active="/dashboard"] header { background:#faf6ef; }
        .dashboard-home { display:flex; flex-direction:column; gap:.68rem; }
        .dashboard-hero { order:1; min-height:15.2rem; padding:1.25rem 1.05rem; border:0; border-radius:1.35rem; background:linear-gradient(90deg,#fbf5eb 0%,#fbf5eb 47%,#eadfce 100%); box-shadow:0 .65rem 1.6rem rgb(68 42 31 / 9%); }
        .dashboard-hero::after { background:linear-gradient(90deg,#fbf5eb 0%,rgb(251 245 235 / 96%) 39%,rgb(251 245 235 / 50%) 57%,transparent 78%); }
        .dashboard-hero-copy { max-width:59%; }
        .dashboard-hero .eyebrow { color:#a47b42; font-size:.6rem; }
        .dashboard-hero h1 { margin:.25rem 0 .25rem; color:#4b1724; font-family:Georgia,"Times New Roman",serif; font-size:2.5rem; }
        .dashboard-lead { max-width:10.5rem; color:#5f5a57; font-size:.82rem; }
        .dashboard-hero-visual { left:40%; }
        .dashboard-hero-cellar-art { object-position:62% center; }
        .dashboard-scan { min-height:3.2rem; max-width:12.3rem; padding:.7rem .9rem; border-radius:1rem; background:linear-gradient(135deg,#65152a,#4b0d1d); box-shadow:0 .45rem 1rem rgb(76 18 34 / 20%); font-size:.72rem; text-transform:uppercase; letter-spacing:.035em; }
        .dashboard-primary-actions { order:2; gap:.45rem; }
        .dashboard-primary-actions a { grid-template-columns:1.5rem minmax(0,1fr); min-height:4.6rem; padding:.62rem .55rem; border-color:#eadfd2; border-radius:.9rem; background:#fffdfa; box-shadow:0 .3rem .8rem rgb(67 47 29 / 6%); }
        .dashboard-primary-actions .crusavia-icon { width:1.35rem; height:1.35rem; }
        .dashboard-primary-actions strong { font-size:.62rem; line-height:1.15; }
        .dashboard-primary-actions small { font-size:.54rem; line-height:1.2; }
        .dashboard-mike { order:3; min-height:8.5rem; padding:1rem 42% 1rem 1rem; border-radius:1.15rem; background:linear-gradient(110deg,#171313 0%,#211416 55%,#541629 100%); box-shadow:0 .55rem 1.3rem rgb(38 19 23 / 17%); }
        .dashboard-mike::after { content:"MIKE"; right:1rem; top:50%; color:rgb(198 151 78 / 16%); font-size:3.2rem; transform:translateY(-50%); }
        .dashboard-mike h2 { margin:.2rem 0; font-family:Georgia,"Times New Roman",serif; font-size:1.08rem; }
        .dashboard-mike p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; font-size:.7rem; }
        .dashboard-mike .button { min-height:2rem; padding:.35rem .65rem; border-color:#b88b49; color:#f4dcae; font-size:.64rem; }
        .dashboard-cellar-summary { order:4; padding:.75rem .8rem; }
        .dashboard-cellar-summary .dashboard-section-head h2 { font-size:1rem; }
        .dashboard-cellar-summary .summary { margin:.55rem 0 .6rem; }
        .dashboard-cellar-summary .metric { min-height:3.65rem; padding:.45rem .3rem; background:#fbf5ec; }
        .dashboard-cellar-summary .metric strong { font-size:1rem; }
        .dashboard-cellar-summary .metric span { font-size:.52rem; }
        .dashboard-bottles { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; margin-top:.45rem; }
        .dashboard-bottle .wine-image,.dashboard-bottle .wine-image-placeholder { max-height:4.8rem; }
        .dashboard-bottle strong { font-size:.62rem; }
        .dashboard-quick-access { order:5; }
        .dashboard-quick-access .dashboard-section-head h2 { font-size:1rem; }
        .dashboard-photo-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.38rem; }
        .dashboard-photo-card { aspect-ratio:.82/1; border-radius:.75rem; }
        .dashboard-photo-card strong { left:.45rem; bottom:.42rem; font-size:.58rem; }
        .dashboard-photo-icon { left:.42rem; bottom:1.45rem; width:1.55rem; height:1.55rem; }
        .dashboard-photo-icon .crusavia-icon { width:.85rem; height:.85rem; }
        .dashboard-secondary { order:6; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.38rem; }
        .dashboard-secondary a { display:grid; grid-template-columns:1fr; grid-template-rows:auto auto auto; gap:.2rem; min-height:4.1rem; padding:.5rem .4rem; text-align:center; }
        .dashboard-secondary .crusavia-icon { grid-row:auto; justify-self:center; width:1.25rem; height:1.25rem; }
        .dashboard-secondary strong { font-size:.6rem; }
        .dashboard-secondary span { display:none; }
      }

      .dashboard-mike-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
      .dashboard-mike-copy { min-width:0; }
      @media (max-width:43.99rem) {
        .dashboard-mike { display:grid; grid-template-columns:42% minmax(0,1fr); gap:0; min-height:8.8rem; padding:0; background:#fffdfa; color:var(--ink); }
        .dashboard-mike::after { display:none; }
        .dashboard-mike-photo { min-height:8.8rem; object-position:43% center; }
        .dashboard-mike-copy { display:grid; align-content:center; padding:.8rem .85rem; }
        .dashboard-mike-copy .eyebrow { color:#a47b42; }
        .dashboard-mike-copy h2 { color:#4b1724; }
        .dashboard-mike-copy p { color:#625a55; }
        .dashboard-mike-copy .button { color:#65152a; border-color:#b88b49; background:transparent; }
      }

      /* MCN-292 — Ma Cave Accueil mobile, composition approuvée. */
      .dashboard-cellar-details { color:var(--crusavia-bordeaux); text-decoration:none; }
      .dashboard-cellar-extra { display:none; }
      @media (max-width:43.99rem) {
        .dashboard-cellar-summary .summary { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; overflow:hidden; border:1px solid #eadfd2; border-radius:1rem; background:#fffdfa; }
        .dashboard-cellar-summary .metric { display:grid !important; justify-items:center; align-content:center; gap:.18rem; min-width:0; min-height:5.15rem; padding:.48rem .2rem; border:0; border-right:1px solid #eadfd2; border-radius:0; background:#fffdfa; box-shadow:none; text-align:center; }
        .dashboard-cellar-summary .metric:nth-child(4) { border-right:0; }
        .dashboard-cellar-summary .metric strong { margin:0; color:#65152a; font-size:1rem; line-height:1.05; }
        .dashboard-cellar-summary .metric span { color:#6f655e; font-size:.5rem; line-height:1.15; }
        .dashboard-cellar-summary .dashboard-cellar-metric-icon { width:1.2rem; height:1.2rem; color:#8b1d36; }
        .dashboard-cellar-summary .metric:nth-child(even) .dashboard-cellar-metric-icon { color:#a8792c; }
        .dashboard-cellar-summary .dashboard-cellar-details strong { font-size:.68rem; }
        .dashboard-cellar-summary .dashboard-cellar-details span { display:none; }
        .dashboard-cellar-summary .dashboard-cellar-extra { display:none !important; }
        .dashboard-bottles { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(7.2rem,1fr); grid-template-columns:none; gap:.65rem; margin-top:.75rem; overflow-x:auto; padding-bottom:.15rem; scrollbar-width:none; }
        .dashboard-bottles::-webkit-scrollbar { display:none; }
        .dashboard-bottle { min-width:0; }
        .dashboard-bottle .wine-image,.dashboard-bottle .wine-image-placeholder { width:100%; max-height:none; aspect-ratio:1/1.08; border-radius:.85rem; object-fit:cover; padding:0; background:#f7f0e6; }
        .dashboard-bottle strong { margin-top:.38rem; color:#231f1d; font-size:.7rem; line-height:1.08; }
        .dashboard-bottle small { margin-top:.12rem; color:#756a62; font-size:.66rem; }
      }

      /* MCN-292 — finition Accueil mobile approuvée : Mike pleine largeur visuelle et Ma Cave premium. */
      @media (max-width:43.99rem) {
        .dashboard-mike { grid-template-columns:55% minmax(0,1fr); min-height:12.4rem; overflow:hidden; border:1px solid #e2d3bf; border-radius:1.25rem; box-shadow:0 .65rem 1.45rem rgb(60 38 25 / 10%); }
        .dashboard-mike-photo { width:100%; min-height:12.4rem; object-fit:cover; object-position:50% center; }
        .dashboard-mike-copy { position:relative; padding:.9rem .8rem; background:linear-gradient(110deg,#fffdfa 0%,#fffdfa 72%,#f7efe4 100%); }
        .dashboard-mike-copy::before { content:""; position:absolute; left:-2.4rem; top:0; bottom:0; width:2.5rem; background:linear-gradient(90deg,transparent,#fffdfa); pointer-events:none; }
        .dashboard-mike-copy .eyebrow { font-size:.56rem; letter-spacing:.12em; }
        .dashboard-mike-copy h2 { margin:.28rem 0; font-size:1.22rem; line-height:1.08; }
        .dashboard-mike-copy p { font-size:.68rem; }
        .dashboard-mike-copy .button { margin-top:.15rem; border-radius:999px; }
        .dashboard-cellar-summary { overflow:hidden; padding:.9rem; border:1px solid #e4d4bf; border-radius:1.3rem; background:linear-gradient(180deg,#fffefa,#fffaf4); box-shadow:0 .55rem 1.35rem rgb(62 42 27 / 8%); }
        .dashboard-cellar-summary .dashboard-section-head { margin-bottom:.15rem; }
        .dashboard-cellar-summary .dashboard-section-head .eyebrow { color:#87652f; font-size:.68rem; letter-spacing:.12em; }
        .dashboard-cellar-summary .dashboard-section-head h2 { margin-top:.18rem; color:#2d2521; font-family:Georgia,"Times New Roman",serif; font-size:1.28rem; }
        .dashboard-cellar-summary .dashboard-section-head > a { display:inline-flex; align-items:center; color:#65152a; font-size:.68rem; font-weight:800; text-decoration:underline; text-underline-offset:.14rem; }
        .dashboard-cellar-summary .summary { margin:.7rem 0 .85rem; border-color:#ead9c5; box-shadow:inset 0 0 0 1px rgb(255 255 255 / 70%); }
        .dashboard-cellar-summary .metric { min-height:5.45rem; background:linear-gradient(180deg,#fffdfa,#fbf4e9); }
        .dashboard-cellar-summary .dashboard-cellar-metric-icon { display:grid; place-items:center; width:1.7rem; height:1.7rem; padding:.35rem; border-radius:999px; background:#7a1630; color:#fff !important; filter:none; }
        .dashboard-cellar-summary .metric:nth-child(even) .dashboard-cellar-metric-icon { background:#a7782d; color:#fff !important; }
        .dashboard-cellar-summary .metric strong { font-size:1.05rem; font-weight:900; }
        .dashboard-cellar-summary .metric span { font-size:.52rem; }
        .dashboard-cellar-summary .dashboard-cellar-details strong { color:#65152a; font-size:.68rem; }
        .dashboard-bottles { grid-auto-columns:minmax(8rem,1fr); gap:.7rem; margin-top:.7rem; padding:.05rem .05rem .35rem; }
        .dashboard-bottle { display:grid; grid-template-rows:auto 1fr; overflow:hidden; padding:.38rem; border:1px solid #eadfd2; border-radius:1rem; background:#fff; box-shadow:0 .3rem .85rem rgb(62 42 27 / 7%); }
        .dashboard-bottle .wine-image,.dashboard-bottle .wine-image-placeholder { aspect-ratio:1/1.08; border-radius:.78rem; }
        .dashboard-bottle > span { display:grid; align-content:start; padding:.12rem .15rem .2rem; }
        .dashboard-bottle strong { margin-top:.35rem; color:#251f1c; font-size:.72rem; line-height:1.08; }
        .dashboard-bottle small { color:#786c64; font-size:.66rem; }
      }

      /* MCN-292 — Cave mobile: hiérarchie plus compacte, recherche visible et cartes cohérentes avec les primitives CRUSAVIA. */
      @media (max-width: 43.99rem) {
        body[data-route-active="/cave"] { background: #faf6ef; }
        body[data-route-active="/cave"] main { padding: .7rem .85rem calc(6.4rem + env(safe-area-inset-bottom)); }
        body[data-route-active="/cave"] main > .hero { margin-bottom: .65rem; }
        body[data-route-active="/cave"] main > .hero h1 { margin-bottom: .15rem; color: var(--crusavia-bordeaux-deep); font-size: 2.25rem; }
        body[data-route-active="/cave"] main > .hero .muted { margin: 0; font-size: .76rem; }
        body[data-route-active="/cave"] details.card { margin-bottom: .65rem; border-color: var(--crusavia-gold-soft); border-radius: var(--ui-radius-lg); background: var(--paper); box-shadow: none; }
        body[data-route-active="/cave"] details.card > summary { min-height: var(--ui-control-min-height); color: var(--crusavia-bordeaux); font-size: .8rem; }
        body[data-route-active="/cave"] main > .summary { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .4rem; margin: .65rem 0; }
        body[data-route-active="/cave"] main > .summary .metric { min-width: 0; padding: .65rem .35rem; border-color: #eadfd2; border-radius: var(--ui-radius-md); background: #fffdfa; box-shadow: none; text-align: center; }
        body[data-route-active="/cave"] main > .summary .metric strong { color: var(--crusavia-bordeaux); font-size: 1.25rem; }
        body[data-route-active="/cave"] main > .summary .metric span { display: block; font-size: .6rem; line-height: 1.2; }
        body[data-route-active="/cave"] .toolbar { position: sticky; top: .35rem; z-index: 8; gap: .55rem; margin: .65rem 0 .75rem; padding: .7rem; border-color: var(--crusavia-gold-soft); border-radius: var(--ui-radius-lg); background: rgb(255 253 250 / 96%); box-shadow: 0 .35rem 1rem rgb(67 47 29 / 7%); backdrop-filter: blur(8px); }
        body[data-route-active="/cave"] .search-field { gap: .25rem; }
        body[data-route-active="/cave"] .search-field label { display: flex; align-items: center; gap: .3rem; color: var(--crusavia-bordeaux-deep); font-size: .7rem; }
        body[data-route-active="/cave"] .search-field label .crusavia-icon { width: 1rem; height: 1rem; }
        body[data-route-active="/cave"] .search-field input { min-height: 2.7rem; border-color: var(--crusavia-gold-soft); border-radius: var(--ui-radius-md); background: var(--crusavia-ivory); font-size: .82rem; }
        body[data-route-active="/cave"] .filters { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; }
        body[data-route-active="/cave"] .filter-button { min-width: 0; min-height: 2.35rem; padding: .4rem .3rem; border-color: var(--crusavia-gold-soft); background: var(--paper); color: var(--crusavia-bordeaux); font-size: .7rem; }
        body[data-route-active="/cave"] .filter-button[aria-pressed="true"] { border-color: var(--crusavia-bordeaux); background: var(--crusavia-bordeaux); color: #fff; }
        body[data-route-active="/cave"] .grid { gap: .55rem; }
        body[data-route-active="/cave"] .cellar-card-compact { padding: .7rem; border-color: #eadfd2; border-radius: var(--ui-radius-lg); background: #fffdfa; box-shadow: 0 .25rem .75rem rgb(67 47 29 / 5%); }
        body[data-route-active="/cave"] .cellar-card-compact .wine-layout { grid-template-columns: 4.6rem minmax(0,1fr); gap: .7rem; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-image-button, body[data-route-active="/cave"] .cellar-card-compact .wine-image, body[data-route-active="/cave"] .cellar-card-compact .wine-image-placeholder { width: 4.6rem; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-thumb { width: 66px; height: 94px; }
        body[data-route-active="/cave"] .cellar-card-compact h2 { color: var(--crusavia-bordeaux-deep); font-size: 1rem; }
        body[data-route-active="/cave"] .cellar-card-compact .badge { padding: .25rem .45rem; font-size: .62rem; }
        body[data-route-active="/cave"] .cellar-card-open { display: inline-flex; align-items: center; gap: .15rem; color: var(--crusavia-gold-action-ink); }
        body[data-route-active="/cave"] .cellar-card-open .crusavia-icon { width: .95rem; height: .95rem; }
      }

      /* MCN-292 — finition visuelle Cave mobile approuvée : icônes, métriques et cartes plus éditoriales. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-card { overflow:hidden; border:0; background:linear-gradient(135deg,#74283b,#5d1729); box-shadow:0 .35rem .9rem rgb(92 23 41 / 16%); }
        body[data-route-active="/cave"] .cellar-add-card > summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.55rem; min-height:3.25rem; padding:.7rem .85rem; color:#fff; list-style:none; }
        body[data-route-active="/cave"] .cellar-add-card > summary::-webkit-details-marker { display:none; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { width:1.3rem; height:1.3rem; filter:brightness(0) invert(1); }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { width:1.05rem; height:1.05rem; filter:brightness(0) invert(1); transition:transform .15s ease; }
        body[data-route-active="/cave"] .cellar-add-card[open] > summary .cellar-add-chevron { transform:rotate(90deg); }
        body[data-route-active="/cave"] .cellar-add-card > .form-grid { padding:.85rem; background:var(--paper); }
        body[data-route-active="/cave"] main > .summary .metric { display:grid; justify-items:center; align-content:start; gap:.2rem; min-height:6.7rem; padding:.65rem .3rem .55rem; }
        body[data-route-active="/cave"] main > .summary .metric strong { margin:0; font-size:1.35rem; }
        body[data-route-active="/cave"] main > .summary .metric span { max-width:6rem; color:#625a55; font-size:.56rem; font-weight:750; letter-spacing:.035em; text-transform:uppercase; }
        body[data-route-active="/cave"] .toolbar { position:relative; top:auto; z-index:1; padding:.8rem; }
        body[data-route-active="/cave"] .search-field label { font-size:.78rem; }
        body[data-route-active="/cave"] .search-field input { min-height:3rem; padding:.7rem .85rem; font-size:.9rem; }
        body[data-route-active="/cave"] .filter-button { min-height:2.5rem; font-size:.74rem; }
        body[data-route-active="/cave"] .cellar-card-compact { padding:.55rem; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-layout { grid-template-columns:5.15rem minmax(0,1fr); gap:.75rem; align-items:center; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-image-button, body[data-route-active="/cave"] .cellar-card-compact .wine-image, body[data-route-active="/cave"] .cellar-card-compact .wine-image-placeholder { width:5.15rem; border-radius:.7rem; }
        body[data-route-active="/cave"] .cellar-card-content { min-width:0; padding:.15rem .15rem .15rem 0; }
        body[data-route-active="/cave"] .cellar-card-compact h2 { font-size:1.05rem; line-height:1.08; }
        body[data-route-active="/cave"] .cellar-card-vintage { margin:.2rem 0; color:var(--crusavia-bordeaux); font-size:.86rem; font-weight:850; }
        body[data-route-active="/cave"] .cellar-card-compact .card-head { gap:.4rem; }
        body[data-route-active="/cave"] .cellar-card-compact .badge { display:inline-flex; align-items:center; gap:.25rem; flex:0 0 auto; background:#f3eee7; color:#4f4742; }
        body[data-route-active="/cave"] .cellar-status-icon { width:.85rem; height:.85rem; }
        body[data-route-active="/cave"] .cellar-card-meta { gap:.35rem .7rem; margin-top:.35rem; font-size:.72rem; }
        body[data-route-active="/cave"] .cellar-card-meta > span { display:inline-flex; align-items:center; gap:.25rem; }
        body[data-route-active="/cave"] .cellar-meta-icon { width:.9rem; height:.9rem; }
        body[data-route-active="/cave"] .cellar-card-open { margin-top:.35rem; font-size:.72rem; font-weight:850; }
      }

      /* MCN-292 — correction du rendu mobile réel après validation humaine. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] main { padding-top:.35rem; padding-bottom:calc(8.2rem + env(safe-area-inset-bottom)); }
        body[data-route-active="/cave"] main > .hero { display:none; }
        body[data-route-active="/cave"] .cellar-add-card { margin:.15rem 0 .55rem !important; border:0 !important; background:linear-gradient(135deg,#74283b,#5d1729) !important; box-shadow:0 .35rem .9rem rgb(92 23 41 / 16%) !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary { min-height:3.15rem !important; padding:.65rem .8rem !important; color:#fff !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary::marker { content:""; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon, body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { filter:brightness(0) invert(1) !important; }
        body[data-route-active="/cave"] main > .summary { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:.4rem !important; margin:.55rem 0 !important; }
        body[data-route-active="/cave"] main > .summary .metric { min-width:0 !important; min-height:5.45rem !important; padding:.45rem .2rem !important; gap:.08rem !important; }
        body[data-route-active="/cave"] main > .summary .metric strong { font-size:1.18rem !important; line-height:1 !important; }
        body[data-route-active="/cave"] main > .summary .metric span { max-width:100% !important; font-size:.48rem !important; line-height:1.15 !important; }
        body[data-route-active="/cave"] .toolbar { margin:.55rem 0 .6rem !important; padding:.62rem !important; gap:.4rem !important; }
        body[data-route-active="/cave"] .search-field label { font-size:.7rem !important; }
        body[data-route-active="/cave"] .search-field input { min-height:2.55rem !important; padding:.55rem .7rem !important; font-size:.8rem !important; }
        body[data-route-active="/cave"] .filters { gap:.3rem !important; }
        body[data-route-active="/cave"] .filter-button { min-height:2.2rem !important; padding:.3rem .2rem !important; font-size:.66rem !important; }
        body[data-route-active="/cave"] .grid { gap:.48rem !important; }
        body[data-route-active="/cave"] .cellar-card-compact { min-height:0; padding:.5rem !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-layout { grid-template-columns:4.65rem minmax(0,1fr) !important; gap:.6rem !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-image-button, body[data-route-active="/cave"] .cellar-card-compact .wine-image, body[data-route-active="/cave"] .cellar-card-compact .wine-image-placeholder { width:4.65rem !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-thumb { width:4.65rem !important; height:5.8rem !important; object-fit:cover; }
        body[data-route-active="/cave"] .cellar-card-compact h2 { font-size:.92rem !important; }
        body[data-route-active="/cave"] .cellar-card-compact .muted, body[data-route-active="/cave"] .cellar-card-compact .wine-subtitle { font-size:.68rem !important; line-height:1.2; }
        body[data-route-active="/cave"] .cellar-card-meta { margin-top:.25rem !important; font-size:.65rem !important; }
        body[data-route-active="/cave"] .cellar-card-open { margin-top:.2rem !important; font-size:.66rem !important; }
      }

      /* MCN-292 — finition ciblée des cartes de vins Cave mobile, validée sur rendu réel. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .grid { gap:.55rem !important; }
        body[data-route-active="/cave"] .cellar-card-link { border-radius:1.05rem; }
        body[data-route-active="/cave"] .cellar-card-compact { position:relative; overflow:hidden; padding:.48rem !important; border:1px solid #e8dac9 !important; border-radius:1.05rem !important; background:linear-gradient(135deg,#fffefa 0%,#fffaf4 100%) !important; box-shadow:0 .35rem .9rem rgb(62 42 27 / 7%) !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-layout { grid-template-columns:5.05rem minmax(0,1fr) !important; gap:.68rem !important; align-items:start !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-image-button, body[data-route-active="/cave"] .cellar-card-compact .wine-image, body[data-route-active="/cave"] .cellar-card-compact .wine-image-placeholder { width:5.05rem !important; border-radius:.8rem !important; overflow:hidden; background:#f5eee5; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-thumb { width:5.05rem !important; height:6.35rem !important; border-radius:.8rem !important; object-fit:cover !important; }
        body[data-route-active="/cave"] .cellar-card-content { display:grid; align-content:start; gap:.08rem; min-width:0; padding:.1rem .12rem .08rem 0 !important; }
        body[data-route-active="/cave"] .cellar-card-compact .card-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.35rem !important; align-items:start; }
        body[data-route-active="/cave"] .cellar-card-compact h2 { margin:0 !important; color:#2b2220 !important; font-family:Georgia,"Times New Roman",serif; font-size:1rem !important; font-weight:700; line-height:1.05 !important; }
        body[data-route-active="/cave"] .cellar-card-vintage { margin:.2rem 0 .08rem !important; color:#7a2940 !important; font-size:.8rem !important; font-weight:900 !important; letter-spacing:.035em; }
        body[data-route-active="/cave"] .cellar-card-compact .muted { margin:.08rem 0 0 !important; color:#625a55 !important; font-size:.65rem !important; font-weight:700; line-height:1.12 !important; }
        body[data-route-active="/cave"] .cellar-card-compact .wine-subtitle { display:-webkit-box; margin:.08rem 0 0 !important; overflow:hidden; color:#7b716a !important; font-size:.62rem !important; line-height:1.18 !important; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
        body[data-route-active="/cave"] .cellar-card-compact .badge { min-height:1.7rem; padding:.28rem .45rem !important; border:1px solid #eadfd2; border-radius:999px; background:#f4eee6 !important; color:#574d47 !important; font-size:.58rem !important; font-weight:850; white-space:nowrap; }
        body[data-route-active="/cave"] .cellar-status-icon { width:.72rem !important; height:.72rem !important; color:#9b6c25; }
        body[data-route-active="/cave"] .cellar-card-meta { gap:.25rem .55rem !important; margin-top:.22rem !important; color:#625a55; font-size:.61rem !important; }
        body[data-route-active="/cave"] .cellar-meta-icon { width:.75rem !important; height:.75rem !important; color:#8b1d36; }
        body[data-route-active="/cave"] .cellar-card-open { display:inline-flex; justify-self:start; margin-top:.22rem !important; padding-top:.2rem; border-top:1px solid #eee3d7; color:#8a6427 !important; font-size:.61rem !important; font-weight:850 !important; }
      }

      /* MCN-292 — icônes Cave mobile agrandies selon validation visuelle. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { width:1.7rem !important; height:1.7rem !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { width:1.25rem !important; height:1.25rem !important; }
        body[data-route-active="/cave"] .search-field label .crusavia-icon { width:1.25rem !important; height:1.25rem !important; }
        body[data-route-active="/cave"] .cellar-status-icon { width:1rem !important; height:1rem !important; }
        body[data-route-active="/cave"] .cellar-meta-icon { width:1rem !important; height:1rem !important; }
        body[data-route-active="/cave"] .cellar-card-open .crusavia-icon { width:1.1rem !important; height:1.1rem !important; }
      }

      /* MCN-292 — Cave mobile : icônes existantes en présence XL approuvée. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { width:2.35rem !important; height:2.35rem !important; object-fit:contain; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { width:1.5rem !important; height:1.5rem !important; }
        /* Définition canonique unique des trois pastilles statistiques Cave. */
        body[data-route-active="/cave"] main > .summary .metric { position:relative; }
        body[data-route-active="/cave"] main > .summary .cellar-metric-icon { width:3.35rem !important; height:3.35rem !important; padding:.48rem !important; box-sizing:border-box; border:2px solid #ead7b5 !important; border-radius:999px !important; background:linear-gradient(145deg,#8d1d3a,#681126) !important; filter:none !important; object-fit:contain; box-shadow:0 .22rem .5rem rgb(101 21 42 / 18%), inset 0 1px 0 rgb(255 255 255 / 22%); }
        body[data-route-active="/cave"] main > .summary .metric:nth-child(even) .cellar-metric-icon { background:linear-gradient(145deg,#bd8b35,#94651f) !important; box-shadow:0 .22rem .5rem rgb(148 101 31 / 18%), inset 0 1px 0 rgb(255 255 255 / 24%); }
        body[data-route-active="/cave"] main > .summary .metric:first-child .cellar-metric-icon { opacity:0; }
        body[data-route-active="/cave"] main > .summary .metric:first-child::before { content:""; position:absolute; top:0; left:50%; width:3.35rem; height:3.35rem; box-sizing:border-box; border:2px solid #ead7b5; border-radius:999px; background:linear-gradient(145deg,#8d1d3a,#681126); box-shadow:0 .22rem .5rem rgb(101 21 42 / 18%), inset 0 1px 0 rgb(255 255 255 / 22%); transform:translateX(-50%); }
        body[data-route-active="/cave"] main > .summary .metric:first-child::after { content:""; position:absolute; top:.48rem; left:50%; width:2.39rem; height:2.39rem; background:#fff; -webkit-mask:url('/assets/icons/crusavia-wine-glass.svg') center/contain no-repeat; mask:url('/assets/icons/crusavia-wine-glass.svg') center/contain no-repeat; transform:translateX(-50%); }
        body[data-route-active="/cave"] .search-field label .crusavia-icon { width:1.65rem !important; height:1.65rem !important; }
        body[data-route-active="/cave"] .filter-button .crusavia-icon { width:1.45rem !important; height:1.45rem !important; }
        body[data-route-active="/cave"] .cellar-status-icon { width:1.25rem !important; height:1.25rem !important; }
        body[data-route-active="/cave"] .cellar-meta-icon { width:1.2rem !important; height:1.2rem !important; }
        body[data-route-active="/cave"] .cellar-card-open .crusavia-icon { width:1.25rem !important; height:1.25rem !important; }
      }

      /* MCN-292 — Ajouter un vin : préserver le tracé CRUSAVIA 08 original sur le bouton. */
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { filter:none !important; }
      }

      /* MCN-298 — Hero plein haut et identité officielle intégrée; les accès secondaires restent dans Plus. */
      /* MCN-301 — Hero Cave avec photo existante de l’Accueil et action Ajouter un vin intégrée. */
      /* MCN-301 — composition mobile approuvée : le hero remplace l’en-tête Cave et remonte en plein haut. */
      .cellar-hero-brand { display:block; width:min(9.5rem,70%); height:auto; filter:brightness(0) invert(1) drop-shadow(0 .08rem .28rem rgb(0 0 0 / 35%)); }
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] header { display:none !important; }
        body[data-route-active="/cave"] main { padding-top:0 !important; }
        body[data-route-active="/cave"] main > .hero { display:none !important; }
        body[data-route-active="/cave"] .cellar-add-card { margin:0 -.85rem .55rem !important; border-radius:0 0 1.05rem 1.05rem !important; }
        body[data-route-active="/cave"] .cellar-add-hero { min-height:19rem !important; border-radius:0 0 1.05rem 1.05rem; }
        body[data-route-active="/cave"] .cellar-add-hero-photo { object-position:center 48% !important; }
        body[data-route-active="/cave"] .cellar-add-hero-overlay { background:linear-gradient(90deg,rgb(28 8 14 / 82%) 0%,rgb(45 13 23 / 46%) 58%,rgb(28 8 14 / 12%) 100%); }
        body[data-route-active="/cave"] .cellar-add-hero-copy { left:1.15rem; right:5rem; bottom:1.15rem; gap:.18rem; }
        body[data-route-active="/cave"] .cellar-hero-brand { width:min(8.5rem,72%); margin-bottom:.35rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy .eyebrow { font-size:.62rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy strong { font-size:1.85rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy small { font-size:.72rem; }
      }

      body[data-route-active="/cave"] .cellar-add-card { overflow:hidden; padding:0; }
      body[data-route-active="/cave"] .cellar-add-card > summary { padding:0; list-style:none; }
      body[data-route-active="/cave"] .cellar-add-card > summary::-webkit-details-marker { display:none; }
      body[data-route-active="/cave"] .cellar-add-hero { position:relative; display:block; min-height:11.5rem; overflow:hidden; border-radius:inherit; color:#fff; }
      body[data-route-active="/cave"] .cellar-add-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
      body[data-route-active="/cave"] .cellar-add-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgb(35 12 18 / 78%) 0%,rgb(56 17 28 / 48%) 54%,rgb(32 12 17 / 18%) 100%); }
      body[data-route-active="/cave"] .cellar-add-hero-copy { position:absolute; z-index:2; left:1rem; right:5rem; bottom:1rem; display:grid; gap:.12rem; }
      body[data-route-active="/cave"] .cellar-add-hero-copy .eyebrow { color:#e2bd7d; font-size:.58rem; letter-spacing:.13em; }
      body[data-route-active="/cave"] .cellar-add-hero-copy strong { color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; line-height:1.05; }
      body[data-route-active="/cave"] .cellar-add-hero-copy small { color:#f3e8df; font-size:.72rem; }
      body[data-route-active="/cave"] .cellar-add-hero-action { position:absolute; z-index:2; right:.9rem; bottom:.9rem; display:flex; align-items:center; gap:.18rem; padding:.4rem .5rem; border:1px solid rgb(255 255 255 / 34%); border-radius:999px; background:rgb(74 18 35 / 72%); backdrop-filter:blur(5px); }
      body[data-route-active="/cave"] .cellar-add-hero-action .cellar-add-icon { width:2.1rem; height:2.1rem; object-fit:contain; }
      body[data-route-active="/cave"] .cellar-add-hero-action .cellar-add-chevron { width:1.15rem; height:1.15rem; filter:brightness(0) invert(1); }
      body[data-route-active="/cave"] .cellar-add-card[open] > summary { border-bottom:1px solid #eadfd2; }
      body[data-route-active="/cave"] .cellar-add-card > .form-grid { padding:1rem; }
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-card { margin:.15rem 0 .55rem !important; border:0 !important; border-radius:1.05rem !important; background:#fffdfa !important; box-shadow:0 .4rem 1rem rgb(62 42 27 / 10%) !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary { min-height:0 !important; padding:0 !important; color:#fff !important; }
        body[data-route-active="/cave"] .cellar-add-hero { min-height:10.4rem; }
        body[data-route-active="/cave"] .cellar-add-hero-photo { object-position:center 45%; }
        body[data-route-active="/cave"] .cellar-add-hero-copy { left:.85rem; right:4.6rem; bottom:.8rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy strong { font-size:1.38rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy small { font-size:.65rem; }
        body[data-route-active="/cave"] .cellar-add-hero-action { right:.7rem; bottom:.7rem; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { width:2.1rem !important; height:2.1rem !important; filter:none !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { width:1.15rem !important; height:1.15rem !important; filter:brightness(0) invert(1) !important; }
      }

      /* MCN-301 — définition canonique du hero Cave. Ce bloc final neutralise les anciennes règles grid/tailles MCN-292. */
      body[data-route-active="/cave"] .cellar-add-card { overflow:hidden; padding:0; }
      body[data-route-active="/cave"] .cellar-add-card > summary { display:block; width:100%; padding:0; list-style:none; }
      body[data-route-active="/cave"] .cellar-add-card > summary::-webkit-details-marker { display:none; }
      body[data-route-active="/cave"] .cellar-add-card > summary::marker { content:""; }
      body[data-route-active="/cave"] .cellar-add-hero { position:relative; display:block; width:100%; min-height:11.5rem; overflow:hidden; border-radius:inherit; color:#fff; background:#35151e; }
      body[data-route-active="/cave"] .cellar-add-hero-photo { position:absolute; z-index:0; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
      body[data-route-active="/cave"] .cellar-add-hero-overlay { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgb(35 12 18 / 78%) 0%,rgb(56 17 28 / 48%) 54%,rgb(32 12 17 / 18%) 100%); }
      body[data-route-active="/cave"] .cellar-add-hero-copy { position:absolute; z-index:2; left:1rem; right:5rem; bottom:1rem; display:grid; gap:.12rem; }
      body[data-route-active="/cave"] .cellar-hero-brand { display:block; width:min(9.5rem,70%); height:auto; filter:brightness(0) invert(1) drop-shadow(0 .08rem .28rem rgb(0 0 0 / 35%)); }
      body[data-route-active="/cave"] .cellar-add-hero-copy .eyebrow { color:#e2bd7d; font-size:.58rem; letter-spacing:.13em; }
      body[data-route-active="/cave"] .cellar-add-hero-copy strong { color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; line-height:1.05; }
      body[data-route-active="/cave"] .cellar-add-hero-copy small { color:#f3e8df; font-size:.72rem; }
      body[data-route-active="/cave"] .cellar-add-hero-action { position:absolute; z-index:2; right:.9rem; bottom:.9rem; display:flex; align-items:center; gap:.18rem; padding:.4rem .5rem; border:1px solid rgb(255 255 255 / 34%); border-radius:999px; background:rgb(74 18 35 / 72%); backdrop-filter:blur(5px); }
      body[data-route-active="/cave"] .cellar-add-hero-action .cellar-add-icon { width:2.1rem; height:2.1rem; object-fit:contain; }
      body[data-route-active="/cave"] .cellar-add-hero-action .cellar-add-chevron { width:1.15rem; height:1.15rem; filter:brightness(0) invert(1); }
      body[data-route-active="/cave"] .cellar-add-card[open] > summary { border-bottom:1px solid #eadfd2; }
      body[data-route-active="/cave"] .cellar-add-card > .form-grid { padding:1rem; }
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] header { display:none !important; }
        body[data-route-active="/cave"] main { padding-top:0 !important; }
        body[data-route-active="/cave"] main > .hero { display:none !important; }
        body[data-route-active="/cave"] .cellar-add-card { margin:0 -.85rem .55rem !important; border:0 !important; border-radius:0 0 1.05rem 1.05rem !important; background:#35151e !important; box-shadow:0 .4rem 1rem rgb(62 42 27 / 10%) !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary { display:block !important; width:100% !important; min-height:0 !important; padding:0 !important; color:#fff !important; }
        body[data-route-active="/cave"] .cellar-add-hero { display:block !important; width:100% !important; min-height:19rem !important; border-radius:0 0 1.05rem 1.05rem !important; }
        body[data-route-active="/cave"] .cellar-add-hero-photo { display:block !important; width:100% !important; height:100% !important; object-position:center 48% !important; }
        body[data-route-active="/cave"] .cellar-add-hero-overlay { background:linear-gradient(90deg,rgb(28 8 14 / 82%) 0%,rgb(45 13 23 / 46%) 58%,rgb(28 8 14 / 12%) 100%) !important; }
        body[data-route-active="/cave"] .cellar-add-hero-copy { left:1.15rem !important; right:5rem !important; bottom:1.15rem !important; gap:.18rem !important; }
        body[data-route-active="/cave"] .cellar-hero-brand { width:min(8.5rem,72%) !important; margin-bottom:.35rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy .eyebrow { font-size:.62rem; }
        body[data-route-active="/cave"] .cellar-add-hero-copy strong { font-size:1.85rem !important; }
        body[data-route-active="/cave"] .cellar-add-hero-copy small { font-size:.72rem !important; }
        body[data-route-active="/cave"] .cellar-add-hero-action { right:.7rem; bottom:.7rem; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-icon { width:2.1rem !important; height:2.1rem !important; filter:none !important; }
        body[data-route-active="/cave"] .cellar-add-card > summary .cellar-add-chevron { width:1.15rem !important; height:1.15rem !important; filter:brightness(0) invert(1) !important; }
      }

      /* MCN-301 — hiérarchie Cave et première passe éditoriale des filtres. */
      body[data-route-active="/cave"] .cellar-filter-head { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
      body[data-route-active="/cave"] .cellar-filter-title { color:#2b2220; font-family:Georgia,"Times New Roman",serif; font-size:.82rem; font-weight:700; }
      body[data-route-active="/cave"] .cellar-filter-hint { color:#8b7b70; font-size:.58rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
      body[data-route-active="/cave"] .cellar-filter-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
      body[data-route-active="/cave"] .cellar-filter-chips .filter-button { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:.32rem; min-width:auto; padding:.42rem .65rem; border-color:#dfcdb8; border-radius:999px; background:#fffdfa; color:#5b4b43; box-shadow:0 .12rem .35rem rgb(67 47 29 / 4%); }
      body[data-route-active="/cave"] .cellar-filter-chips .filter-button[aria-pressed="true"] { border-color:#7a2940; background:#7a2940; color:#fff; box-shadow:0 .2rem .45rem rgb(122 41 64 / 18%); }
      body[data-route-active="/cave"] .cellar-filter-dot { width:.42rem; height:.42rem; flex:0 0 .42rem; border-radius:999px; background:#a99b91; }
      body[data-route-active="/cave"] .cellar-filter-dot-active { background:#7a2940; }
      body[data-route-active="/cave"] .cellar-filter-dot-ready { background:#9b6c25; }
      body[data-route-active="/cave"] .cellar-filter-dot-watch { background:#c28b3d; }
      body[data-route-active="/cave"] .cellar-filter-dot-empty { background:#8a817b; }
      body[data-route-active="/cave"] .filter-button[aria-pressed="true"] .cellar-filter-dot { background:#fff; }
      @media (max-width:43.99rem) {
        body[data-route-active="/cave"] .cellar-add-hero-copy .eyebrow { font-size:.56rem !important; letter-spacing:.16em; }
        body[data-route-active="/cave"] .cellar-add-hero-copy strong { font-size:2.15rem !important; line-height:.98 !important; }
        body[data-route-active="/cave"] .cellar-add-hero-copy small { margin-top:.08rem; font-size:.68rem !important; }
        body[data-route-active="/cave"] .toolbar { gap:.58rem !important; }
        body[data-route-active="/cave"] .cellar-filter-head { margin-top:.08rem; padding-top:.5rem; border-top:1px solid #eee1d4; }
        body[data-route-active="/cave"] .cellar-filter-title { font-size:.78rem; }
        body[data-route-active="/cave"] .cellar-filter-hint { font-size:.5rem; }
        body[data-route-active="/cave"] .cellar-filter-chips { display:flex !important; gap:.34rem !important; overflow-x:auto; padding:.04rem 0 .18rem; scrollbar-width:none; }
        body[data-route-active="/cave"] .cellar-filter-chips::-webkit-scrollbar { display:none; }
        body[data-route-active="/cave"] .cellar-filter-chips .filter-button { flex:0 0 auto !important; min-width:auto !important; min-height:2.15rem !important; padding:.38rem .62rem !important; font-size:.64rem !important; white-space:nowrap; }
      }

      .dashboard-hero-brand { display:block; width:min(11rem,78%); height:auto; margin:0 0 .18rem; }
      .dashboard-hero-tagline { margin:0 0 .7rem; color:#b88b49; font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] header { display:none; }
        body[data-route-active="/dashboard"] main { padding-top:0; }
        body[data-route-active="/dashboard"] .dashboard-home { margin-top:calc(-1 * var(--space-3, .75rem)); }
        body[data-route-active="/dashboard"] .dashboard-hero { min-height:19rem; margin-inline:-.85rem; padding:1.15rem 1.9rem 1.2rem; border-radius:0 0 1.35rem 1.35rem; }
        body[data-route-active="/dashboard"] .dashboard-hero-copy { max-width:58%; }
        body[data-route-active="/dashboard"] .dashboard-hero-brand { width:min(10rem,92%); filter:drop-shadow(0 .1rem .25rem rgb(255 255 255 / 35%)); }
        body[data-route-active="/dashboard"] .dashboard-hero-tagline { margin-bottom:1rem; }
        body[data-route-active="/dashboard"] .dashboard-hero h1 { font-size:2.15rem; }
        body[data-route-active="/dashboard"] .dashboard-hero-cellar-art { object-position:64% center; }
      }

      /* MCN-298 — raccourcis photo approuvés et Cave du Dashboard plus éditoriale. */
      .dashboard-photo-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
      .dashboard-photo-action { position:relative; min-width:0; overflow:hidden; border-radius:1rem; aspect-ratio:.9/1; color:#fff; text-decoration:none; background:#241719; box-shadow:0 .4rem 1rem rgb(48 28 23 / 12%); }
      .dashboard-photo-action > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
      .dashboard-photo-action::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgb(25 10 14 / 82%) 100%); }
      .dashboard-photo-action > span { position:absolute; z-index:2; left:.65rem; right:.5rem; bottom:.55rem; display:grid; gap:.08rem; }
      .dashboard-photo-action strong { color:#fff; font-size:.76rem; line-height:1.1; text-transform:none; }
      .dashboard-photo-action small { color:#f4e9df; font-size:.58rem; }
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] .dashboard-photo-actions { gap:.4rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action { min-height:7rem; aspect-ratio:.88/1; border-radius:.85rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action > span { left:.55rem; bottom:.5rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action strong { font-size:.7rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action small { font-size:.54rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary { border-color:#eadfd2; border-radius:1.05rem; background:#fffdfa; box-shadow:0 .35rem 1rem rgb(67 47 29 / 7%); }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; overflow:hidden; border:1px solid #eee2d5; border-radius:.85rem; background:#fff; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric { min-width:0; min-height:4rem; padding:.5rem .18rem; border:0; border-right:1px solid #eee2d5; border-radius:0; background:#fff; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:last-child { border-right:0; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric strong { color:#65152a; font-family:Georgia,"Times New Roman",serif; font-size:.9rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric span { font-size:.44rem; line-height:1.1; }
      }

      /* MCN-298 — finition compacte après validation humaine des assets. */
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] .dashboard-home { gap:.5rem; }
        body[data-route-active="/dashboard"] .dashboard-hero { min-height:16.8rem; padding:.85rem 1.25rem .9rem; border-radius:0 0 1.1rem 1.1rem; }
        body[data-route-active="/dashboard"] .dashboard-hero-copy { max-width:56%; }
        body[data-route-active="/dashboard"] .dashboard-hero-brand { width:min(8.6rem,88%); margin-bottom:.05rem; }
        body[data-route-active="/dashboard"] .dashboard-hero-tagline { margin-bottom:.55rem; font-size:.5rem; letter-spacing:.1em; }
        body[data-route-active="/dashboard"] .dashboard-hero h1 { margin:.1rem 0; font-size:1.95rem; }
        body[data-route-active="/dashboard"] .dashboard-lead { margin:.12rem 0 .55rem; font-size:.72rem; line-height:1.25; }
        body[data-route-active="/dashboard"] .dashboard-hero-copy .actions { display:grid; grid-template-columns:1fr; gap:.45rem; width:min(100%,11rem); margin-top:.55rem; }
        body[data-route-active="/dashboard"] .dashboard-scan, body[data-route-active="/dashboard"] .dashboard-search { display:flex; align-items:center; justify-content:flex-start; gap:.42rem; width:100%; max-width:100%; min-height:2.7rem; padding:.5rem .62rem; border-radius:.85rem; font-size:.58rem; line-height:1.15; white-space:normal; overflow-wrap:anywhere; text-align:left; }
        body[data-route-active="/dashboard"] .dashboard-scan .crusavia-icon, body[data-route-active="/dashboard"] .dashboard-search .crusavia-icon { width:1.2rem; height:1.2rem; flex:0 0 1.2rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-actions { gap:.34rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action { min-height:5.8rem; aspect-ratio:1/1; border-radius:.75rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action > span { left:.48rem; bottom:.42rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action strong { font-size:.65rem; }
        body[data-route-active="/dashboard"] .dashboard-photo-action small { font-size:.5rem; }
        body[data-route-active="/dashboard"] .dashboard-mike { min-height:7.4rem; grid-template-columns:38% minmax(0,1fr); border-radius:.95rem; }
        body[data-route-active="/dashboard"] .dashboard-mike-photo { min-height:7.4rem; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy { padding:.62rem .7rem; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy .eyebrow { font-size:.5rem; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy h2 { margin:.1rem 0; font-size:.94rem; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy p { margin:.1rem 0; font-size:.62rem; line-height:1.25; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy .button { min-height:1.8rem; margin-top:.2rem; padding:.28rem .55rem; font-size:.58rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary { padding:.62rem .68rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head { gap:.4rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head h2 { margin:.08rem 0; font-size:.9rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head a { font-size:.62rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .summary { margin:.4rem 0 .45rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric { min-height:3.25rem; padding:.35rem .12rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric strong { font-size:.8rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric span { font-size:.4rem; }
        body[data-route-active="/dashboard"] .dashboard-bottles { margin-top:.3rem; }
        body[data-route-active="/dashboard"] .dashboard-bottle .wine-image, body[data-route-active="/dashboard"] .dashboard-bottle .wine-image-placeholder { max-height:4rem; }
      }

      /* MCN-298 — Mike pleine largeur avec texte superposé + Cave inspirée de la référence approuvée. */
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] .dashboard-mike { position:relative; display:block; min-height:10.5rem; overflow:hidden; padding:0; border:0; border-radius:1rem; background:#241315; box-shadow:0 .45rem 1.1rem rgb(48 28 23 / 14%); }
        body[data-route-active="/dashboard"] .dashboard-mike-photo { position:absolute; inset:0; width:100%; height:100%; min-height:0; object-fit:cover; object-position:58% 42%; }
        body[data-route-active="/dashboard"] .dashboard-mike::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgb(29 12 17 / 94%) 0%,rgb(50 18 27 / 84%) 38%,rgb(56 20 29 / 48%) 62%,rgb(40 15 20 / 8%) 100%); pointer-events:none; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy { position:relative; z-index:2; display:grid; align-content:center; width:64%; min-height:10.5rem; padding:.85rem 1rem; color:#fff; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy .eyebrow { margin:0 0 .18rem; color:#d1a55d; font-size:.52rem; letter-spacing:.09em; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy h2 { margin:.08rem 0 .22rem; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.12rem; line-height:1.08; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy p { margin:.08rem 0; color:#f8eee8; font-size:.61rem; line-height:1.28; text-shadow:0 1px 2px rgb(0 0 0 / 28%); }
        body[data-route-active="/dashboard"] .dashboard-mike-copy .button { position:absolute; z-index:3; top:.7rem; left:calc(100vw - 2rem); right:auto; display:inline-flex; align-items:center; justify-content:center; min-height:2.15rem; margin:0; padding:.35rem .7rem; border-color:#c79b51; color:#f3d8a5; background:rgb(65 20 32 / 72%); font-size:.58rem; line-height:1; transform:translateX(-100%); white-space:nowrap; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary { padding:.55rem 0 0; border:0; background:transparent; box-shadow:none; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head { padding:0 .15rem; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head .eyebrow { display:none; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head h2 { margin:0; color:#65152a; font-family:inherit; font-size:.76rem; font-weight:850; letter-spacing:.025em; text-transform:uppercase; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-section-head a { color:#9c743b; font-size:.6rem; font-weight:800; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .summary { grid-template-columns:repeat(4,minmax(0,1fr)); margin:.45rem 0 0; border:1px solid #eee2d5; border-radius:.95rem; background:#fffdfa; box-shadow:0 .3rem .85rem rgb(67 47 29 / 6%); }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric { display:grid; grid-template-rows:3.35rem 1.35rem 1rem; place-items:center; align-content:start; min-height:6.65rem; padding:.58rem .15rem .5rem; row-gap:.12rem; background:#fffdfa; text-align:center; text-decoration:none; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:nth-child(4) { border-right:0; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:nth-child(n+5) { display:none !important; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-cellar-metric-icon { display:block; grid-row:1; align-self:center; justify-self:center; width:3.35rem; height:3.35rem; margin:0; padding:.48rem; box-sizing:border-box; border:2px solid #ead7b5; border-radius:999px; background:linear-gradient(145deg,#8d1d3a,#681126); color:#fff !important; filter:none !important; object-fit:contain; box-shadow:0 .22rem .5rem rgb(101 21 42 / 18%), inset 0 1px 0 rgb(255 255 255 / 22%); }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:nth-child(even) .dashboard-cellar-metric-icon { background:linear-gradient(145deg,#bd8b35,#94651f); color:#fff !important; box-shadow:0 .22rem .5rem rgb(148 101 31 / 18%), inset 0 1px 0 rgb(255 255 255 / 24%); }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:first-child { position:relative; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:first-child .dashboard-cellar-metric-icon { opacity:0; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:first-child::before { content:""; grid-row:1; grid-column:1; width:3.35rem; height:3.35rem; border:2px solid #ead7b5; border-radius:999px; box-sizing:border-box; background:linear-gradient(145deg,#8d1d3a,#681126); box-shadow:0 .22rem .5rem rgb(101 21 42 / 18%), inset 0 1px 0 rgb(255 255 255 / 22%); }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric:first-child::after { content:""; grid-row:1; grid-column:1; z-index:1; width:2.39rem; height:2.39rem; justify-self:center; align-self:center; background:#fff; -webkit-mask:url('/assets/icons/crusavia-wine-glass.svg') center/contain no-repeat; mask:url('/assets/icons/crusavia-wine-glass.svg') center/contain no-repeat; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric strong { grid-row:2; align-self:end; margin:0; color:#65152a; font-family:Georgia,"Times New Roman",serif; font-size:1.08rem; font-weight:700; line-height:1; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .metric span { grid-row:3; align-self:start; margin:0; color:#514943; font-size:.52rem; font-weight:500; line-height:1.1; }
        body[data-route-active="/dashboard"] .dashboard-cellar-summary .dashboard-cellar-details strong { font-family:Georgia,"Times New Roman",serif; font-size:1.08rem; }
        body[data-route-active="/dashboard"] .dashboard-bottles { display:none; }
      }

      /* MCN-305 — Accueil : rendre les deux derniers pictogrammes sans fond structurel résiduel. */
      body[data-route-active="/dashboard"] .dashboard-search .dashboard-search-icon { padding:0 !important; border:0 !important; background:transparent !important; object-fit:contain; }
      body[data-route-active="/dashboard"] .dashboard-cellar-details .dashboard-cellar-details-icon { padding:.58rem !important; border:2px solid #ead7b5 !important; border-radius:999px !important; background:linear-gradient(145deg,#bd8b35,#94651f) !important; object-fit:contain; }

      /* MCN-298 — icône du CTA Scanner blanche sur fond bordeaux. */
      body[data-route-active="/dashboard"] .dashboard-scan .crusavia-icon { filter:brightness(0) invert(1); }

      /* MCN-298 — finition Accueil approuvée : pictogramme Scanner blanc dans le CTA bordeaux. */
      .dashboard-scan .crusavia-icon { color:#fff; filter:brightness(0) invert(1); }

      /* MCN-298 — corrige le fondu Mike : conserver la photo visible et assombrir seulement sous le texte. */
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] .dashboard-mike::before { background:linear-gradient(90deg,rgb(30 12 17 / 78%) 0%,rgb(42 16 23 / 62%) 32%,rgb(48 18 25 / 28%) 52%,transparent 72%); }
        body[data-route-active="/dashboard"] .dashboard-mike-copy { width:60%; }
        body[data-route-active="/dashboard"] .dashboard-mike-copy h2, body[data-route-active="/dashboard"] .dashboard-mike-copy p { text-shadow:0 1px 3px rgb(0 0 0 / 58%); }
      }

      /* MCN-298 — cause racine du panneau blanc Mike : neutralise l’ancien fond de .dashboard-mike-copy. */
      @media (max-width:43.99rem) {
        body[data-route-active="/dashboard"] .dashboard-mike .dashboard-mike-copy { background:transparent; }
        body[data-route-active="/dashboard"] .dashboard-mike .dashboard-mike-copy::before { content:none; display:none; }
      }

      /* MCN-291 — Plus est un panneau superposé : la page courante reste visible et le fond ferme le menu. */
      .mobile-more-overlay { display:none; }
      @media (max-width:43.99rem) {
        .mobile-more-overlay { position:fixed; z-index:29; inset:0; display:block; }
        .mobile-more-backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgb(32 20 18 / 28%); backdrop-filter:blur(1.5px); }
        .mobile-more-sheet { position:absolute; z-index:1; left:.65rem; right:.65rem; bottom:6rem; max-height:min(72vh,36rem); overflow:auto; padding:.75rem .9rem; border:1px solid #dfcdb8 !important; border-radius:1.15rem; background:#fffdf8 !important; background-color:#fffdf8 !important; opacity:1 !important; box-shadow:0 -.25rem 1.5rem rgb(40 32 24 / 18%); isolation:isolate; }
        .mobile-more-sheet .mobile-plus-menu { position:static !important; z-index:auto; right:auto; bottom:auto; display:block; width:auto; margin:0; padding:0; border:0; border-radius:0; box-shadow:none; background:#fffdf8 !important; }
        .mobile-more-sheet .mobile-plus-menu::after { content:none !important; display:none !important; }
        .mobile-more-sheet .mobile-plus-menu > .eyebrow { margin:.1rem .25rem .45rem; }
        .mobile-more-sheet .mobile-plus-links { margin:0; }
        .mobile-more-sheet .mobile-plus-links a { min-height:3.55rem; padding:.65rem .35rem; }
        .mobile-more-sheet .mobile-plus-links strong { font-size:1rem; }
        .mobile-more-sheet .mobile-plus-links span { font-size:.78rem; }
      }

      /* MCN-415 — Achat mobile : garder la révision lisible au-dessus de la navigation fixe. */
      @media (max-width:43.99rem) {
        body[data-route-active="/achat"] .purchase-page { padding-bottom:6.5rem; }
        body[data-route-active="/achat"] .purchase-review { overflow:hidden; }
        body[data-route-active="/achat"] .purchase-correction-grid { grid-template-columns:minmax(0,1fr); }
        body[data-route-active="/achat"] .purchase-correction-grid .form-field,
        body[data-route-active="/achat"] .purchase-correction-grid input { min-width:0; width:100%; max-width:100%; box-sizing:border-box; }
        body[data-route-active="/achat"] .purchase-review-actions { padding-bottom:.75rem; }
        body[data-route-active="/achat"] .purchase-barcode-product,
        body[data-route-active="/achat"] .purchase-review,
        body[data-route-active="/achat"] .purchase-review .saq-more,
        body[data-route-active="/achat"] .purchase-review .saq-more-body,
        body[data-route-active="/achat"] .purchase-review .wine-profile { min-width:0; max-width:100%; box-sizing:border-box; }
        body[data-route-active="/achat"] .purchase-review .saq-more-body,
        body[data-route-active="/achat"] .purchase-review .wine-profile { overflow-wrap:anywhere; word-break:normal; }
        body[data-route-active="/achat"] .purchase-page,
        body[data-route-active="/achat"] .purchase-page > *,
        body[data-route-active="/achat"] .purchase-review,
        body[data-route-active="/achat"] .purchase-review > *,
        body[data-route-active="/achat"] .purchase-review .saq-more-body > * { min-width:0; max-width:100%; box-sizing:border-box; }
        body[data-route-active="/achat"] .purchase-review { width:100%; margin-left:0; margin-right:0; }
        body[data-route-active="/achat"] .purchase-review .saq-more { width:100%; margin-left:0; margin-right:0; overflow:hidden; }
        body[data-route-active="/achat"] .purchase-review .saq-more-body { width:100%; padding:.85rem; overflow:hidden; }
        body[data-route-active="/achat"] .purchase-review .wine-profile { width:100%; margin:0; padding:0; overflow:hidden; }
        body[data-route-active="/achat"] .purchase-review .wine-profile p,
        body[data-route-active="/achat"] .purchase-review .wine-profile dd { max-width:100%; white-space:normal; overflow-wrap:anywhere; word-break:break-word; }
        body[data-route-active="/achat"] .purchase-review .wine-profile-description { margin:.45rem 0 .75rem; max-width:100%; line-height:1.45; }
        body[data-route-active="/achat"] .purchase-review .wine-profile-structured-summary { color:#5f554e; font-size:.9rem; }
      }

      /* MCN-361 — filtres SAQ compacts dans Achat, selon la maquette mobile approuvée. */
      @media (max-width:43.99rem) {
        body[data-route-active="/achat"] .purchase-watch-filters { display:grid; grid-template-columns:.72fr 1.08fr 1.45fr 2.65rem; gap:.42rem; align-items:center; margin-bottom:.85rem; }
        body[data-route-active="/achat"] .purchase-watch-filters .button { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; min-height:2.35rem; padding:.42rem .38rem; border-radius:.7rem; font-size:.68rem; line-height:1.05; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:clip; }
        body[data-route-active="/achat"] .purchase-watch-filters .purchase-watch-stock { display:grid; place-items:center; width:2.65rem; padding:0; color:var(--crusavia-bordeaux); }
        body[data-route-active="/achat"] .purchase-watch-filters .purchase-watch-stock > span:not(.purchase-watch-stock-icon) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
        body[data-route-active="/achat"] .purchase-watch-stock-icon { position:relative; display:block; width:1.18rem; height:1.18rem; border:.11rem solid currentColor; border-radius:999px; box-sizing:border-box; background:transparent; transform:translate(-.08rem,-.08rem); }
        body[data-route-active="/achat"] .purchase-watch-stock-icon::after { content:""; position:absolute; width:.58rem; height:.11rem; right:-.45rem; bottom:-.25rem; border-radius:999px; background:currentColor; transform:rotate(45deg); transform-origin:left center; }
      }

      /* MCN-323 — fil Mike borné et défilable sur mobile comme sur desktop. */
      .mike-thread { display:grid; gap:.75rem; margin:1rem 0; max-height:min(52vh, 30rem); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; padding-right:.35rem; scroll-behavior:smooth; }
      .mike-thread-message { max-width:88%; padding:.8rem 1rem; border-radius:1rem; background:var(--crusavia-soft); }
      .mike-thread-message.is-user { justify-self:end; background:var(--crusavia-bordeaux); color:#fff; }
      .mike-thread-message.is-mike { justify-self:start; }
      .mike-thread-message p { margin:.25rem 0 0; }
      .mike-answer-decision { white-space:pre-line; }
      .mike-actionable-wines { display:grid; gap:.65rem; margin:.6rem 0 .2rem; }
      .mike-actionable-wine { overflow:hidden; border:1px solid #ddcbb3; border-radius:1rem; background:#fffdfa; box-shadow:0 .22rem .65rem rgb(74 51 27 / 7%); }
      .mike-wine-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; padding:.75rem .8rem .65rem; }
      .mike-wine-card-open { display:grid; gap:.28rem; min-width:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
      .mike-wine-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .4rem; color:var(--crusavia-bordeaux-deep); font-size:1rem; line-height:1.18; }
      .mike-wine-vintage { color:var(--muted); font-weight:650; white-space:nowrap; }
      .mike-wine-price { color:#332b27; font-size:1rem; font-weight:800; }
      .mike-wine-local { display:grid; align-content:center; justify-items:end; gap:.18rem; min-width:6rem; padding-left:.65rem; border-left:1px solid #e3d5c4; text-align:right; }
      .mike-wine-store { display:grid; gap:.08rem; max-width:12rem; color:#514943; font-size:.74rem; line-height:1.12; }
      .mike-wine-store small { color:var(--muted); font-size:.62rem; font-weight:500; }
      .mike-wine-stock { display:flex; align-items:baseline; gap:.25rem; color:var(--crusavia-bordeaux); line-height:1; }
      .mike-wine-stock > strong { font-size:1.25rem; }
      .mike-wine-stock small { color:#655b54; font-size:.6rem; font-weight:700; }
      .mike-wine-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(7rem,.65fr); gap:.45rem; padding:.5rem .65rem .65rem; border-top:1px solid #eee2d4; background:#fbf6ef; }
      .mike-wine-detail-link { display:grid; place-items:center; min-height:2.15rem; padding:.35rem .55rem; border:1px solid #d9b98b; border-radius:.65rem; background:#fffdfa; color:var(--crusavia-bordeaux); font:inherit; font-size:.72rem; font-weight:750; cursor:pointer; }
      .mike-actionable-wine .mike-wine-buy { width:100%; min-height:2.15rem; margin:0; padding:.4rem .65rem; font-size:.78rem; }
      .mike-thread-label { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; opacity:.75; }
      .mike-composer { margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--line); }
      .mike-composer textarea { resize:vertical; }
      .mike-composer-actions { align-items:center; gap:.4rem; }
      .mike-composer-actions .button { width:auto; min-height:2.15rem; padding:.38rem .65rem; font-size:.78rem; }
      .mike-mic-button.is-listening { background:var(--crusavia-bordeaux); color:#fff; animation:mikePulse 1.1s ease-in-out infinite; }
      @keyframes mikePulse { 50% { transform:scale(1.04); box-shadow:0 0 0 .35rem rgb(112 25 48 / 14%); } }

      /* MCN-370 — résultat Restaurant mobile : garder l’en-tête, la réponse et le composeur accessibles. */
      @media (max-width:43.99rem) {
        body[data-route-active="/mike"] .mike-ask:has(.mike-restaurant-panel) { grid-template-rows:auto auto minmax(0,1fr) auto; }
        body[data-route-active="/mike"] .mike-restaurant-panel { min-height:0; max-height:min(34vh,18rem); margin:.35rem 0; padding:.65rem .8rem; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; border-radius:.9rem; }
        body[data-route-active="/mike"] .mike-restaurant-panel .eyebrow { margin:0; }
        body[data-route-active="/mike"] .mike-restaurant-panel h3 { margin:.12rem 0 .25rem; font-size:1rem; }
        body[data-route-active="/mike"] .mike-thread-message { max-width:94%; padding:.75rem .85rem; overflow-wrap:anywhere; }
        body[data-route-active="/mike"] .mike-thread-message.is-mike { width:94%; }
        body[data-route-active="/mike"] .mike-thread-message.is-mike h3 { margin:.45rem 0 .65rem; font-size:1.18rem; line-height:1.18; }
        body[data-route-active="/mike"] .mike-thread-message.is-mike ul { margin:.45rem 0 .7rem; padding-left:1.25rem; }
        body[data-route-active="/mike"] .mike-thread-message.is-mike p { line-height:1.35; }
        body[data-route-active="/mike"] .mike-thread-message.is-mike:has(.mike-actionable-wines) { width:100%; max-width:100%; padding:.55rem; background:#f8f3eb; }
        body[data-route-active="/mike"] .mike-actionable-wines { gap:.5rem; margin:.25rem 0 0; }
        body[data-route-active="/mike"] .mike-actionable-wine { border-radius:.85rem; }
        body[data-route-active="/mike"] .mike-wine-summary { grid-template-columns:minmax(0,1fr) 8.2rem; gap:.45rem; padding:.62rem .68rem .55rem; }
        body[data-route-active="/mike"] .mike-wine-title { font-size:.86rem; }
        body[data-route-active="/mike"] .mike-wine-price { font-size:.9rem; }
        body[data-route-active="/mike"] .mike-wine-local { min-width:0; padding-left:.5rem; }
        body[data-route-active="/mike"] .mike-wine-store { max-width:8rem; font-size:.68rem; }
        body[data-route-active="/mike"] .mike-wine-store small { font-size:.56rem; }
        body[data-route-active="/mike"] .mike-wine-stock > strong { font-size:1.08rem; }
        body[data-route-active="/mike"] .mike-wine-stock small { font-size:.54rem; }
        body[data-route-active="/mike"] .mike-wine-actions { padding:.42rem .55rem .5rem; }
        body[data-route-active="/mike"] .mike-wine-detail-link, body[data-route-active="/mike"] .mike-actionable-wine .mike-wine-buy { min-height:2rem; font-size:.68rem; }
      }

      /* MCN-291 — navigation mobile compacte : cinq destinations sans épaissir la cartouche. */
      @media (max-width:43.99rem) {
        body { padding-bottom:calc(5.7rem + env(safe-area-inset-bottom)); }
        body[data-route-active="/mike"] { overflow:hidden; padding-bottom:0; }
        body[data-route-active="/mike"] header, body[data-route-active="/mike"] .mobile-nav { display:none; }
        body[data-route-active="/mike"] main, body[data-route-active="/mike"] .mike-page { position:static; width:auto; height:auto; max-width:none; padding:0; }
        body[data-route-active="/mike"] .mike-hero, body[data-route-active="/mike"] .mike-intro, body[data-route-active="/mike"] .mike-section-heading, body[data-route-active="/mike"] .mike-recommendations { display:none; }
        body[data-route-active="/mike"] .mike-ask { position:fixed; z-index:40; inset:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; margin:0; padding:calc(.7rem + env(safe-area-inset-top)) .7rem calc(.5rem + env(safe-area-inset-bottom)); overflow:hidden; border:0; border-radius:0; box-shadow:none; background:var(--paper); }
        body[data-route-active="/mike"] .mike-chat-modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.6rem; }
        body[data-route-active="/mike"] .mike-chat-modal-head .section-heading { min-width:0; }
        body[data-route-active="/mike"] .mike-chat-modal-head .section-heading .muted { display:none; }
        body[data-route-active="/mike"] .mike-chat-close { flex:0 0 auto; width:auto; min-height:2rem; padding:.3rem .55rem; font-size:.76rem; }
        body[data-route-active="/mike"] .mike-thread { min-height:0; max-height:none; margin:.45rem 0; overflow-y:auto; overscroll-behavior:contain; padding:0 .1rem; scrollbar-gutter:auto; }
        body[data-route-active="/mike"] .mike-composer { min-width:0; margin:0; padding:.4rem 0 0; border-top:1px solid var(--line); background:var(--paper); }
        body[data-route-active="/mike"] .mike-thread.is-empty { min-height:0; margin:0; }
        body[data-route-active="/mike"] .mike-composer-row { display:grid; grid-template-columns:minmax(0,1fr); gap:.35rem; align-items:center; }
        body[data-route-active="/mike"] .mike-composer textarea { min-width:0; width:100%; min-height:2.8rem; max-height:5rem; padding:.6rem .75rem; resize:none; font-size:16px; line-height:1.25; }
        body[data-route-active="/mike"] .mike-composer-actions { display:flex; width:100%; flex:0 0 auto; flex-wrap:nowrap; justify-content:flex-end; gap:.32rem; margin:0; }
        body[data-route-active="/mike"] .mike-composer-actions .button { display:grid; place-items:center; width:2.35rem; min-width:2.35rem; height:2.35rem; min-height:2.35rem; padding:0; border-radius:999px; font-size:1rem; line-height:1; }
        /* MCN-278 — une seule échelle canonique pour les cinq pictogrammes de navigation mobile. */
        .mobile-nav a > .crusavia-icon,
        .mobile-nav a > .mobile-nav-icon,
        .mobile-nav a > svg.mobile-nav-icon { width:2.55rem; height:2.55rem; max-width:none; max-height:none; flex:0 0 2.55rem; margin:0; object-fit:contain; background:transparent; }
        .mobile-nav a > svg.mobile-nav-icon { stroke-width:2; }
        .mobile-nav a > .mobile-nav-icon-more { display:flex; width:2.55rem; height:2.55rem; }
        .mobile-nav a > .mobile-nav-icon-more i { width:.46rem; height:.46rem; }
      }

      /* MCN-294 — Profil : hiérarchie CRUSAVIA cohérente, sans modifier les contrats fonctionnels. */
      body[data-route-active="/profil"] .profile-page { display:grid; gap:1rem; }
      body[data-route-active="/profil"] .profile-hero { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 1.35rem; border:1px solid #e6d6c2; border-radius:1.2rem; background:linear-gradient(135deg,#65152a 0%,#7f2941 58%,#a77a37 145%); color:#fff; box-shadow:0 .55rem 1.4rem rgb(71 34 31 / 12%); }
      body[data-route-active="/profil"] .profile-hero .eyebrow { margin:0 0 .15rem; color:#e7c68d; }
      body[data-route-active="/profil"] .profile-hero h2 { margin:.08rem 0 .2rem; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:2rem; }
      body[data-route-active="/profil"] .profile-hero p:last-child { margin:0; color:#f8ece7; }
      body[data-route-active="/profil"] .profile-avatar { display:grid; place-items:center; width:4rem; height:4rem; flex:0 0 4rem; border:1px solid #d8bd8e; border-radius:999px; background:linear-gradient(145deg,#7f2941,#65152a); color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.65rem; box-shadow:0 .2rem .55rem rgb(101 21 42 / 16%), inset 0 1px 0 rgb(255 255 255 / 20%); }
      body[data-route-active="/profil"] .profile-identity-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
      body[data-route-active="/profil"] .profile-identity-head .eyebrow { margin-bottom:.1rem; }
      body[data-route-active="/profil"] .profile-grid { display:grid; gap:.85rem; }
      body[data-route-active="/profil"] .profile-card { margin:0; border-color:#eadfce; background:#fffdfa; box-shadow:0 .28rem .8rem rgb(68 45 32 / 5%); }
      body[data-route-active="/profil"] .profile-card h2 { margin:.12rem 0 .45rem; color:#65152a; font-family:Georgia,"Times New Roman",serif; }
      body[data-route-active="/profil"] .profile-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
      body[data-route-active="/profil"] .profile-actions .button { min-width:0; }
      body[data-route-active="/profil"] .profile-preference > .card { margin:0; border-color:#eadfce; background:#fffdfa; box-shadow:0 .28rem .8rem rgb(68 45 32 / 5%); }
      body[data-route-active="/profil"] .profile-danger { border-color:#e2b9b9; background:#fff9f7; }
      body[data-route-active="/profil"] .profile-danger .eyebrow, body[data-route-active="/profil"] .profile-danger h2 { color:#8b2432; }
      body[data-route-active="/profil"] .profile-danger-action { background:#8b2432; }
      body[data-route-active="/profil"] .profile-back { display:flex; justify-content:flex-start; }
      .back .back-icon { transform: rotate(180deg); }
      @media (max-width:43.99rem) {
        body[data-route-active="/profil"] .profile-page { gap:.7rem; }
        body[data-route-active="/profil"] .profile-hero { margin:0 -.15rem; padding:1rem; border-radius:1rem; }
        body[data-route-active="/profil"] .profile-hero h2 { font-size:1.55rem; }
        body[data-route-active="/profil"] .profile-hero p:last-child { max-width:15rem; font-size:.72rem; line-height:1.3; }
        body[data-route-active="/profil"] .profile-avatar { width:3.25rem; height:3.25rem; flex-basis:3.25rem; font-size:1.3rem; }
        body[data-route-active="/profil"] .profile-card, body[data-route-active="/profil"] .profile-preference > .card { padding:.9rem; border-radius:.95rem; }
        body[data-route-active="/profil"] .profile-card h2 { font-size:1.08rem; }
        body[data-route-active="/profil"] .profile-actions { grid-template-columns:1fr; gap:.45rem; }
        body[data-route-active="/profil"] .profile-actions .button { width:100%; }
        body[data-route-active="/profil"] .profile-danger-action { width:100%; white-space:normal; }
      }

      /* Desktop canonical layout: keep all >=44rem overrides in this single block. */
      /* MCN-293 route styles moved to styles-mcn293.css to keep this shared stylesheet stable. */

      @media (min-width: 44rem) {
        .header-inner, main { padding-left: 1.5rem; padding-right: 1.5rem; }
        .summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        body[data-route-active="/more"] main > .card { padding: 2rem 2.25rem; border-color: var(--crusavia-gold-soft); }
        body[data-route-active="/more"] .desktop-more-panel { background: linear-gradient(145deg, #fffdf8 0%, var(--crusavia-soft) 100%); box-shadow: 0 1rem 2.5rem rgb(74 51 27 / 9%); }
        body[data-route-active="/more"] .desktop-more-heading { max-width: 42rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 2px solid var(--crusavia-gold-soft); }
        body[data-route-active="/more"] .desktop-more-heading h2 { margin: .15rem 0 .45rem; color: var(--crusavia-bordeaux-deep); font-size: 2rem; }
        body[data-route-active="/more"] .detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
        body[data-route-active="/more"] .detail-list > div { min-height: 7.25rem; padding: 1.15rem 1.25rem; border: 1px solid var(--crusavia-gold-soft); border-radius: .9rem; background: rgb(255 255 255 / 72%); }
        body[data-route-active="/more"] .detail-list dt { color: var(--crusavia-gold); letter-spacing: .08em; }
        body[data-route-active="/more"] .detail-list dd { margin-top: .65rem; color: var(--muted); }
        body[data-route-active="/more"] .detail-list .button { min-height: 2.7rem; border-color: var(--crusavia-gold-soft); color: var(--crusavia-bordeaux); background: var(--paper); }
        body[data-route-active="/more"] .detail-list .button:hover { border-color: var(--crusavia-gold); background: var(--crusavia-soft); }
        body[data-route-active="/achat"] .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
        body[data-route-active="/achat"] .grid > .card:last-child { grid-column: 1 / -1; }
        body[data-route-active="/achat"] .card { padding: 1.5rem; border-color: var(--crusavia-gold-soft); }
        body[data-route-active="/achat"] .card h2 { color: var(--crusavia-bordeaux); font-size: 1.3rem; }
        .wine-detail-shell { padding: 1.75rem; border-color: var(--crusavia-gold-soft); }
        .wine-detail-hero { display: grid; grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr); gap: 2rem; align-items: start; }
        .wine-detail-hero .wine-gallery, .wine-detail-hero .wine-image-button.large, .wine-detail-hero .wine-image.large, .wine-detail-hero .wine-image-placeholder.large { width: 100%; }
        .wine-detail-hero .wine-image.large { border-color: var(--crusavia-gold-soft); box-shadow: 0 .55rem 1.5rem rgb(74 51 27 / 10%); }
        .wine-detail-name { color: var(--crusavia-bordeaux-deep); font-size: clamp(2.5rem, 4vw, 3.65rem); line-height: 1; }
        .wine-detail-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin-top: 1.15rem; }
        .wine-detail-fact { min-height: 3.7rem; padding: .8rem .9rem; border: 1px solid var(--crusavia-gold-soft); border-radius: .8rem; background: linear-gradient(135deg, var(--crusavia-ivory), var(--crusavia-soft)); }
        .wine-detail-fact .crusavia-icon { width: 1.55rem; height: 1.55rem; }
        .wine-detail-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.15rem 0; }
        .wine-detail-actions .button { min-width: 9rem; min-height: 2.8rem; }
        .wine-detail-actions .button:not(.secondary):not([disabled]) { background: var(--crusavia-bordeaux); }
        .wine-detail-actions .button.secondary { border-color: var(--crusavia-gold); color: var(--crusavia-bordeaux); background: var(--paper); }
        .wine-detail-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.35rem 0 .35rem; padding-bottom: .75rem; border-bottom: 2px solid var(--crusavia-gold-soft); }
        .wine-detail-section-heading span { color: var(--crusavia-bordeaux-deep); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 700; }
        .wine-detail-section-heading small { color: var(--muted); font-size: .78rem; }
        .wine-detail-summary-badges { margin: 1.1rem 0; padding-top: .9rem; border-top: 1px solid var(--crusavia-gold-soft); }
        .wine-detail-summary-badges .badge-row { gap: .55rem; }
        .wine-detail-summary-badges .badge { padding: .42rem .7rem; background: var(--crusavia-soft); color: var(--crusavia-bordeaux-deep); }
        .wine-detail-summary-badges .badge::before { width: 1.1rem; height: 1.1rem; }
        .wine-detail-secondary { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: 1.5rem; align-items: start; margin-top: 1.25rem; }
        .wine-detail-insight-column, .wine-detail-management-column { display: grid; gap: 1rem; min-width: 0; }
        .wine-detail-secondary .ui-disclosure { margin: 0; border-color: var(--crusavia-gold-soft); background: var(--paper); }
        .wine-detail-secondary .ui-disclosure > summary { color: var(--crusavia-bordeaux-deep); }
        .wine-detail-management-column { padding-left: 1.5rem; border-left: 1px solid var(--crusavia-gold-soft); }
        .mike-note { border-left-color: var(--crusavia-gold); background: var(--crusavia-soft); }
        .crusavia-icon { width: 1.4rem; height: 1.4rem; }
        .project-artifact-list { display: grid; gap: 1rem; margin-top: 1rem; }
        .project-artifact-card { display: grid; grid-template-columns: minmax(0, 160px) minmax(0, 1fr); gap: 1rem; align-items: start; }
        .project-artifact-thumb { display: block; width: 100%; max-height: 220px; object-fit: contain; border-radius: 12px; background: var(--crusavia-soft); }
        .project-artifact-card code { overflow-wrap: anywhere; }
        .tasting-detail{border-color:var(--crusavia-gold-soft);background:linear-gradient(180deg,#fffdfa,#fff 72%);box-shadow:0 .5rem 1.25rem rgb(67 47 29 / 10%)}.tasting-detail>.eyebrow{margin-bottom:.2rem;color:#9c743b;letter-spacing:.12em}.tasting-detail>h1{margin:.1rem 0 .3rem;color:var(--crusavia-bordeaux-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,6vw,2.35rem);line-height:1.05}.tasting-detail>.muted{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--crusavia-gold-soft)}.tasting-detail .form-grid{gap:.85rem}.tasting-detail .form-grid label{color:#695f58;font-weight:750}.tasting-detail input,.tasting-detail textarea{margin-top:.3rem;border-color:#e2d2ba;background:#fff}.tasting-detail .actions{padding-top:.25rem}
        /* Mike conversation styles are shared above the breakpoint. */
        .button .crusavia-icon { width: 1.35rem; height: 1.35rem; }
      }
