:root{
  --wine:#650d25;
  --wine-2:#3d0716;
  --wine-3:#7d1732;
  --wine-soft:#f2d8dd;
  --cream:#fbf7ef;
  --cream-2:#f4ebdf;
  --paper:#fffdfa;
  --gold:#c79a56;
  --gold-2:#e8c98d;
  --ink:#2c2220;
  --muted:#756863;
  --green:#486d51;
  --orange:#b66c2b;
  --danger:#a54b55;
  --shadow:0 18px 48px rgba(62,15,26,.12);
  --shadow-sm:0 8px 22px rgba(62,15,26,.09);
  --radius:22px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{background:#e8ded2}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);min-height:100vh}
button, input, select, textarea{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
#app{min-height:100vh}

.brand{display:flex;align-items:center;gap:10px}.brand img{width:42px;height:42px}.brand-name{font:700 31px/1 var(--serif);color:#f8e5b9;letter-spacing:.2px}.brand-tagline{font:italic 13px/1.2 var(--serif);color:#e8cf9d;margin-top:4px}

.auth-shell{min-height:100vh;background:linear-gradient(180deg,rgba(45,5,18,.15),rgba(45,5,18,.75)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1800") center/cover fixed;display:grid;place-items:center;padding:24px}
.auth-wrap{width:min(1080px,100%);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border-radius:32px;background:rgba(255,255,255,.92);box-shadow:0 30px 80px rgba(20,3,8,.32);backdrop-filter:blur(14px)}
.auth-hero{min-height:690px;padding:44px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,rgba(49,6,19,.18),rgba(49,6,19,.8)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1500") center/cover;color:white}
.auth-hero .brand-name{font-size:46px}.auth-hero .brand img{width:54px;height:54px}.auth-title{font:700 clamp(40px,6vw,72px)/.98 var(--serif);max-width:520px;margin:0}.auth-copy{font:22px/1.45 var(--serif);max-width:520px;color:#f5e9dc}.gold-line{width:58px;height:3px;background:var(--gold);border-radius:99px;margin:26px 0}
.auth-card{padding:48px 44px;background:linear-gradient(180deg,#fffdf9,#f8f0e5)}
.auth-tabs{display:flex;border-bottom:1px solid #ddcec0;margin-bottom:30px}.auth-tab{flex:1;border:0;background:none;padding:14px 4px 16px;font:700 22px var(--serif);color:#8d817b;position:relative}.auth-tab.active{color:var(--wine)}.auth-tab.active:after{content:"";position:absolute;left:8%;right:8%;bottom:-1px;height:3px;background:var(--wine);border-radius:9px}
.auth-card h2{font:700 30px var(--serif);margin:0 0 8px;color:var(--wine-2)}.auth-card p{color:var(--muted);line-height:1.55}.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:13px;font-weight:700;color:#5e4f4c}.input{width:100%;border:1px solid #d8cbc0;background:white;border-radius:14px;padding:14px 16px;outline:none;transition:.2s}.input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(199,154,86,.14)}
.btn{border:0;border-radius:16px;padding:14px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--wine),#7e1835);color:white;box-shadow:0 10px 22px rgba(101,13,37,.22)}.btn-gold{background:linear-gradient(135deg,#d6aa68,#a86e2c);color:white}.btn-light{background:white;color:var(--ink);border:1px solid #e4d9cf}.btn-block{width:100%}.btn-google{background:white;border:1px solid #e1d6cc;color:#2d2725}.google-logo{width:22px;height:22px;display:block;flex:none}.sep{display:flex;align-items:center;gap:12px;color:#94857e;margin:18px 0}.sep:before, .sep:after{content:"";height:1px;background:#ddd1c6;flex:1}.auth-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}.auth-mini div{font:15px/1.3 var(--serif);text-align:center;color:#61514d;padding:12px 8px;border-top:1px solid #e2d8cf}.form-error{background:#f7e5e5;color:#8f2d39;padding:11px 13px;border-radius:12px;font-size:13px;margin:12px 0}.form-note{background:#f3eadb;color:#74542b;padding:11px 13px;border-radius:12px;font-size:13px;margin:12px 0}

.app-shell{min-height:100vh;background:transparent;display:grid;grid-template-columns:285px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:28px 22px;background:linear-gradient(180deg,#430717 0%,#611127 50%,#3a0714 100%);color:white;display:flex;flex-direction:column;z-index:20;overflow:hidden}
.sidebar:after{content:"";position:absolute;inset:auto -70px -60px -70px;height:320px;background:linear-gradient(rgba(49,4,17,.1),rgba(49,4,17,.88)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=70&w=1000") center/cover;opacity:.7;z-index:-1}
.sidebar .brand{margin-bottom:36px}.side-nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:#f9ebe6;border-radius:13px;padding:13px 14px;text-align:left;display:flex;align-items:center;gap:12px;font-weight:650}.nav-btn:hover, .nav-btn.active{background:rgba(255,255,255,.13)}.nav-icon{width:22px;text-align:center;color:#e8c88e;font-size:18px}.sidebar-quote{margin-top:auto;font:italic 17px/1.35 var(--serif);color:#ebcf95;padding:20px 8px 56px;text-align:center}
.main{min-width:0;padding-bottom:40px;min-height:100vh;background:url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=82&w=1800") center/cover fixed}.page{padding:26px 30px 48px;max-width:1420px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.desktop-search{flex:1;max-width:560px;position:relative}.desktop-search input{width:100%;border:0;border-radius:999px;padding:12px 18px 12px 42px;background:#fff;box-shadow:var(--shadow-sm);outline:none}.desktop-search span{position:absolute;left:15px;top:11px;color:#8b7771}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#a86e2c,#5d0f24);color:#fff;font:700 19px var(--serif);border:2px solid #e8c98d}

.hero-brand-mobile{display:none}.hero{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(90deg,rgba(49,5,18,.96),rgba(70,9,27,.66),rgba(70,9,27,.24)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1800") center/cover;color:white;padding:28px 30px 98px;box-shadow:var(--shadow)}
.hero h1{font:700 clamp(34px,4vw,56px)/1 var(--serif);margin:4px 0 8px}.hero p{font:20px/1.4 var(--serif);margin:0;color:#f5dfd6}.hero-quote{position:absolute;right:30px;bottom:104px;font:italic 18px/1.35 var(--serif);color:#e9cf98;text-align:right;max-width:320px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:-70px 18px 18px;position:relative;z-index:2}.stat-card{appearance:none;width:100%;font:inherit;color:inherit;background:rgba(255,253,249,.97);border:1px solid rgba(103,58,41,.08);box-shadow:var(--shadow-sm);border-radius:18px;padding:19px 16px;text-align:center}.stat-card-link{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stat-card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:rgba(199,154,86,.42)}.stat-card-link:focus-visible{outline:3px solid rgba(199,154,86,.45);outline-offset:2px}.stat-icon{font-size:24px;color:var(--wine)}.stat-num{font:700 34px/1 var(--serif);color:var(--wine);margin-top:4px}.stat-label{font:700 16px var(--serif);margin-top:4px}.stat-sub{font-size:12px;color:var(--muted);margin-top:5px}

.meal-card{position:relative;overflow:hidden;border-radius:23px;padding:24px 28px;background:linear-gradient(90deg,rgba(73,7,26,.97),rgba(104,14,41,.82)),url("/api/?action=dish_photo&q=Magret%20de%20canard%20aux%20c%C3%A8pes") center/cover;color:white;box-shadow:var(--shadow-sm);margin-bottom:22px}.meal-card:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(73,7,26,.97),rgba(104,14,41,.74),rgba(104,14,41,.38))}.meal-inner{position:relative;z-index:2;width:100%;max-width:none}.meal-title{font:700 28px var(--serif);margin:0}.meal-sub{margin:5px 0 14px;color:#ecd9d2}.meal-search{display:flex;gap:10px;background:white;padding:7px;border-radius:18px}.meal-search input{flex:1;border:0;outline:none;padding:10px 12px;min-width:0}.meal-search .btn{padding-inline:24px;white-space:nowrap}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:24px 0 13px}.section-head h2{font:700 28px/1.1 var(--serif);margin:0;color:#3f181b}.section-head p{margin:4px 0 0;color:var(--muted)}.link-btn{border:0;background:none;color:var(--wine);font-weight:800}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.wine-card{background:var(--paper);border:1px solid #eadfd4;border-radius:18px;padding:18px;box-shadow:0 5px 15px rgba(52,20,24,.04);display:grid;grid-template-columns:72px 1fr;gap:14px;min-width:0;position:relative;overflow:hidden}.wine-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.wine-info{min-width:0}.status{display:inline-flex;padding:5px 9px;border-radius:99px;font-size:11px;font-weight:800;background:#f3dce1;color:var(--wine);margin-bottom:7px}.status.orange{background:#f8e4cf;color:#a25d1e}.status.green{background:#dceadc;color:#3f6548}.status.gray{background:#e8e5e1;color:#6e6561}.wine-title{font:700 21px/1.05 var(--serif);color:#271b19;margin:0 0 3px}.wine-meta{color:var(--muted);font-size:13px;line-height:1.4}.wine-note{font:italic 14px/1.35 var(--serif);margin:9px 0;color:#5b4844}.score{font:700 22px var(--serif);color:var(--wine)}.score small{font:500 11px var(--sans);color:var(--muted)}
.scan-strip{margin-top:18px;border-radius:20px;padding:20px 22px;color:white;background:linear-gradient(90deg,rgba(40,8,16,.95),rgba(96,20,40,.73)),url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover;display:flex;justify-content:space-between;align-items:center;gap:18px}.scan-strip h3{font:700 22px var(--serif);margin:0 0 5px}.scan-strip p{margin:0;color:#eedfd9}.scan-icon-big{width:70px;height:70px;border-radius:50%;border:2px solid #d8ac64;display:grid;place-items:center;color:#f4d99d;font-size:30px;flex:none}.scan-icon-big svg{width:30px;height:30px;display:block;stroke-width:1.8}

.page-title{font:700 42px/1 var(--serif);color:#4b111f;margin:0}.page-sub{margin:7px 0 22px;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.searchbox{flex:1;min-width:260px}.searchbox input{width:100%;border:1px solid #ded1c5;border-radius:14px;padding:13px 15px;background:white}.chip{border:1px solid #ded2c8;background:white;border-radius:999px;padding:10px 13px;color:#604f4a;font-weight:700;font-size:13px}.chip.active{background:var(--wine);border-color:var(--wine);color:white}.cave-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cave-card{background:white;border:1px solid #ebdfd4;border-radius:18px;padding:16px;box-shadow:0 7px 18px rgba(62,15,26,.05)}.cave-card .wine-title{margin-top:12px}.qty{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #eee3d8;font-size:12px;color:var(--muted)}
.empty{padding:38px;border:1px dashed #d6c6ba;border-radius:18px;text-align:center;color:var(--muted);background:#fffaf5}

.scan-page{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.camera-card{border-radius:24px;min-height:560px;overflow:hidden;background:linear-gradient(145deg,#2d1015,#080707);position:relative;box-shadow:var(--shadow)}.camera-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}.camera-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#f0dfd9;padding:30px;background:radial-gradient(circle at 50% 45%,rgba(120,43,58,.38),transparent 40%)}.scan-frame{position:absolute;left:16%;right:16%;top:16%;bottom:16%;border:2px solid rgba(232,201,141,.22);border-radius:20px}.scan-frame:before, .scan-frame:after{content:"";position:absolute;width:58px;height:58px;border-color:#e1b970}.scan-frame:before{left:-2px;top:-2px;border-left:4px solid;border-top:4px solid;border-radius:18px 0 0 0}.scan-frame:after{right:-2px;bottom:-2px;border-right:4px solid;border-bottom:4px solid;border-radius:0 0 18px 0}.camera-actions{position:absolute;left:18px;right:18px;bottom:18px;display:flex;gap:10px;justify-content:center}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.detect-badge{position:absolute;left:50%;transform:translateX(-50%);bottom:90px;background:rgba(10,8,8,.75);color:white;padding:9px 13px;border-radius:99px;font-size:12px;white-space:nowrap}.edit-panel{background:white;border-radius:24px;padding:22px;box-shadow:var(--shadow-sm)}.edit-panel h2{font:700 29px var(--serif);margin:0 0 5px;color:var(--wine)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.span2{grid-column:1/-1}.mini-note{padding:10px 12px;background:#f7efe3;border-radius:12px;color:#795d34;font-size:12px;margin:10px 0}

.detail-hero{display:grid;grid-template-columns:220px 1fr;gap:25px;border-radius:28px;padding:28px;background:linear-gradient(90deg,rgba(57,5,20,.97),rgba(102,14,40,.78)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=70&w=1800") center/cover;color:white}.detail-title{font:700 42px/1 var(--serif);margin:0}.detail-cuvee{font:26px var(--serif);color:#f1d8c9;margin:8px 0}.detail-vintage{font:34px var(--serif);color:#ebc987}.detail-quote{font:italic 20px/1.35 var(--serif);color:#f2e1d8;max-width:760px}.detail-metrics{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px}.detail-pill{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18)}
.tabs{display:flex;gap:8px;border-bottom:1px solid #e6dbd1;margin:16px 0}.tab{border:0;background:none;padding:12px 14px;font-weight:800;color:#786963}.tab.active{color:var(--wine);border-bottom:3px solid var(--wine)}.panel{background:white;border-radius:22px;padding:22px;box-shadow:var(--shadow-sm);margin-bottom:16px}.panel h2{font:700 30px var(--serif);color:#4b1820;margin:0}.panel-sub{color:var(--muted);margin:5px 0 17px}.curve-wrap{overflow:auto}.curve-svg{width:100%;min-width:680px;height:340px}.curve-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.curve-box{text-align:center;padding:12px;border-radius:14px;background:#f9eee6;font:700 16px var(--serif);color:#7c3d36}.curve-box.gold{background:#f4e2bd;color:#6b4a1f}.curve-box.rose{background:#f5dfe0;color:#8d3c4a}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tag-list{display:flex;gap:9px;flex-wrap:wrap}.food-tag{padding:10px 12px;background:#fff9f2;border:1px solid #eaded4;border-radius:13px;font-weight:700;color:#62453f}.storage{display:grid;grid-template-columns:130px 1fr;gap:15px}.storage-photo{border-radius:16px;background:linear-gradient(rgba(61,12,24,.2),rgba(61,12,24,.45)),url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=70&w=700") center/cover;min-height:145px}.storage ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.storage li{padding-bottom:8px;border-bottom:1px solid #eee1d7}

.pair-hero{border-radius:25px;padding:25px;background:linear-gradient(90deg,rgba(63,7,23,.97),rgba(104,14,41,.78)),url("https://images.unsplash.com/photo-1582391123232-6130296f1fcd?auto=format&fit=crop&fm=jpg&q=75&w=1400") right/cover;color:white;margin-bottom:16px}.pair-hero h1{font:700 38px var(--serif);margin:12px 0 4px}.pair-results{display:grid;gap:13px}.pair-card{display:grid;grid-template-columns:82px 1fr auto;gap:16px;background:white;border:1px solid #eadfd4;border-radius:20px;padding:18px;align-items:center}.pair-card.best{background:linear-gradient(135deg,#5b0b22,#7b1733);color:white;border:0;box-shadow:var(--shadow)}.pair-card.best .wine-title, .pair-card.best .wine-meta, .pair-card.best .wine-note{color:white}.pair-score{text-align:center;font:700 34px var(--serif);color:var(--wine)}.pair-card.best .pair-score{color:#f3d28f}.pair-score small{display:block;font:12px var(--sans);color:inherit;opacity:.8}.crown{display:inline-flex;background:linear-gradient(135deg,#e4bd79,#b7792d);color:#5a1a14;padding:7px 12px;border-radius:10px;font:700 14px var(--serif);margin-bottom:9px}

.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-card{background:white;border-radius:22px;padding:22px;box-shadow:var(--shadow-sm)}.profile-card h2{font:700 26px var(--serif);color:var(--wine);margin:0 0 12px}

.bottom-nav{display:none}
.toast{position:fixed;right:22px;bottom:22px;background:#2c211f;color:#fff;padding:13px 16px;border-radius:13px;box-shadow:var(--shadow);z-index:1000;max-width:360px}.toast.error{background:#8b2636}
.loading{min-height:60vh;display:grid;place-items:center;color:var(--wine);font:700 21px var(--serif)}
.mobile-only{display:none}

@media (max-width:1100px){
  .cave-grid{grid-template-columns:repeat(3,1fr)}.card-grid{grid-template-columns:repeat(2,1fr)}.card-grid .wine-card:nth-child(3){display:none}
  .auth-wrap{grid-template-columns:1fr 1fr}.auth-hero{padding:34px}.auth-card{padding:38px 30px}
}
@media (max-width:820px){
  body{background:var(--cream)}.app-shell{display:block}.sidebar{display:none}.main{padding-bottom:84px;background:url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=82&w=1800") center/cover scroll}.page{padding:0 14px 28px}.topbar{padding:10px 4px 0;margin-bottom:8px;min-height:10px}.desktop-search{display:none}.user-chip{margin-left:auto;padding:0}.user-chip span:not(.avatar){display:none}.user-chip .avatar{display:grid;width:36px;height:36px;font-size:16px}
  .hero{border-radius:0 0 24px 24px;margin:0 -14px;padding:19px 20px 94px;min-height:190px;display:flex;align-items:flex-start;justify-content:center}.hero-greeting{display:none}.hero-brand-mobile{display:flex;justify-content:center;align-items:center;width:100%;padding-top:7px;position:relative}.hero-brand-mobile .brand{justify-content:center}.hero-profile{position:absolute;right:0;top:8px;padding:0;border:0;background:transparent}.hero-profile .avatar{display:grid;width:38px;height:38px;font-size:16px}.hero-brand-mobile .brand img{width:54px;height:54px}.hero-brand-mobile .brand-name{font-size:39px;color:#e1b665}.hero-brand-mobile .brand-tagline{font-size:13px}.hero-quote{display:none}.stats{margin:-70px 4px 15px;gap:6px}.stat-card{padding:13px 5px;border-radius:14px}.stat-num{font-size:26px}.stat-label{font-size:12px}.stat-sub{font-size:9px}.stat-icon{font-size:18px}
  .meal-card{padding:19px;border-radius:18px}.meal-card:after{display:none}.meal-title{font-size:22px}.meal-sub{font-size:13px}.meal-search{display:flex;width:100%;align-items:center}.meal-search input{flex:1;min-width:0}.meal-search .btn{width:auto;flex:0 0 auto}
  .section-head h2{font-size:24px}.card-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.wine-card{min-width:82%;scroll-snap-align:start}.card-grid .wine-card:nth-child(3){display:grid}.scan-strip{padding:16px}.scan-strip .btn{display:none}.scan-icon-big{width:58px;height:58px}
  .bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,253,249,.98);border-top:1px solid #e6d9ce;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -10px 30px rgba(64,16,24,.08);backdrop-filter:blur(15px)}.bottom-btn{border:0;background:none;color:#615d5a;display:grid;place-items:center;gap:3px;font-size:10px}.bottom-btn .nav-icon{font-size:18px}.bottom-btn.active{color:var(--wine);font-weight:800}.bottom-btn.scan-main{margin-top:-23px}.bottom-btn.scan-main .nav-icon{width:54px;height:54px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px rgba(101,13,37,.27);font-size:24px}
  .page-title{font-size:33px;margin-top:16px}.toolbar{overflow:auto;flex-wrap:nowrap}.searchbox{min-width:72%}.cave-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cave-card{padding:13px}.cave-card .wine-title{font-size:17px}.cave-card .wine-meta{font-size:11px}
  .scan-page{grid-template-columns:1fr}.camera-card{min-height:470px}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.detail-hero{grid-template-columns:95px 1fr;gap:14px;padding:20px;margin-top:14px}.detail-title{font-size:30px}.detail-cuvee{font-size:18px}.detail-vintage{font-size:25px}.detail-quote{font-size:15px}.detail-pill{font-size:12px;padding:8px 10px}.tabs{overflow:auto}.tab{white-space:nowrap}.panel{padding:16px}.two-col{grid-template-columns:1fr}.storage{grid-template-columns:105px 1fr}.pair-hero{margin-top:14px}.pair-hero h1{font-size:30px}.pair-card{grid-template-columns:58px 1fr 65px;padding:13px;gap:10px}.pair-card .wine-title{font-size:17px}.pair-card .wine-note{font-size:12px}.pair-score{font-size:26px}.profile-grid{grid-template-columns:1fr}.mobile-only{display:block}
  .auth-shell{padding:0;background:#3f0718}.auth-wrap{display:block;border-radius:0;min-height:100vh;background:var(--cream)}.auth-hero{min-height:390px;padding:25px 20px 30px}.auth-hero .brand-name{font-size:38px}.auth-title{font-size:46px;max-width:340px}.auth-copy{font-size:17px;max-width:320px}.auth-card{padding:25px 18px 35px;border-radius:26px 26px 0 0;margin-top:-24px;position:relative}.auth-tabs{margin-bottom:20px}.auth-tab{font-size:19px}.auth-mini{gap:4px}.auth-mini div{font-size:12px}
}
@media (max-width:430px){
  .stats{margin-inline:0}.stat-card{padding-inline:3px}.stat-num{font-size:24px}.stat-label{font-size:11px}.cave-grid{grid-template-columns:1fr 1fr}.wine-card{min-width:90%}.hero p{max-width:76%}.detail-quote{display:none}.detail-metrics{gap:7px}.detail-pill{font-size:11px}.curve-legend{grid-template-columns:1fr}.pair-card{grid-template-columns:54px 1fr}.pair-score{grid-column:2;text-align:left}.pair-card .wine-note{display:none}.auth-title{font-size:40px}
}
.nav-icon svg{width:22px;height:22px;display:block}.stat-icon svg{width:25px;height:25px;margin:auto}.bottom-btn.scan-main .nav-icon svg{width:26px;height:26px}

/* Epicave V1.1 — scanner intégré, étiquettes photo et filtres mobile */










.cave-tools{display:grid;gap:11px;margin-bottom:18px}.cave-tools .searchbox{width:100%;min-width:0}.filter-row{display:flex;gap:8px;align-items:center;justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:1px 2px 4px}.filter-row::-webkit-scrollbar{display:none}.filter-row .chip{flex:0 0 auto;white-space:nowrap}

.camera-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#060506}
.camera-fallback{position:absolute;inset:0;z-index:3;display:grid;place-items:center;text-align:center;color:#f2dfd7;padding:30px;background:radial-gradient(circle at 50% 42%,rgba(119,37,57,.62),rgba(7,5,6,.95) 65%)}
.camera-fallback[hidden]{display:none}.camera-fallback h2{font:700 27px var(--serif);margin:4px 0 8px}.camera-fallback p{max-width:360px;margin:0 auto 16px;color:#e9d8d0}.camera-fallback-icon{font-size:60px;color:#e3bd78}
.scan-shade{position:absolute;inset:0;pointer-events:none;z-index:4;background:linear-gradient(to bottom,rgba(6,5,6,.38) 0 17%,transparent 17% 80%,rgba(6,5,6,.48) 80% 100%)}
.scan-frame{z-index:5;left:12%;right:12%;top:20%;bottom:25%;border:1px solid rgba(238,207,151,.44);box-shadow:0 0 0 999px rgba(0,0,0,.08),inset 0 0 35px rgba(234,191,113,.08)}
.scan-frame:before, .scan-frame:after{width:72px;height:72px;border-color:#f1c97e}
.scan-frame:before{border-left-width:4px;border-top-width:4px}.scan-frame:after{border-right-width:4px;border-bottom-width:4px}
.scan-hint{position:absolute;left:50%;top:-34px;transform:translateX(-50%);color:#f6e4c1;font-size:12px;font-weight:750;white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.9)}
.scan-line{position:absolute;left:8%;right:8%;height:2px;top:16%;background:linear-gradient(90deg,transparent,#f3c872,transparent);box-shadow:0 0 9px rgba(240,193,103,.85);animation:scanLine 2.1s ease-in-out infinite}
@keyframes scanLine{0%, 100%{top:14%;opacity:.45}50%{top:84%;opacity:1}}
.camera-actions{z-index:7;align-items:center;bottom:20px}.detect-badge{z-index:7;bottom:94px;max-width:88%;overflow:hidden;text-overflow:ellipsis}
.capture-btn{width:70px;height:70px;border-radius:50%;border:3px solid rgba(255,255,255,.92);background:rgba(255,255,255,.13);padding:5px;box-shadow:0 3px 20px rgba(0,0,0,.28)}.capture-btn span{display:block;width:100%;height:100%;border-radius:50%;background:#f8f2e9;border:2px solid rgba(70,18,27,.15)}
.import-btn, .torch-btn{position:relative;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);background:rgba(20,12,14,.58);color:#fff;font-size:20px;backdrop-filter:blur(8px)}.torch-btn{font-size:11px;font-weight:800}.import-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.edit-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.auto-badge{flex:none;padding:7px 10px;border-radius:999px;background:#f4e2bd;color:#6d4a1c;font-size:11px;font-weight:800}
#saveWineBtn:disabled{opacity:.68;cursor:wait;transform:none}

@media (max-width:820px){
  .toolbar{overflow:visible;flex-wrap:wrap}.searchbox{min-width:0}.cave-tools{margin-bottom:14px}.filter-row{margin:0 -2px;padding-left:0}.filter-row .chip{padding:9px 12px;font-size:12px}.filter-row .chip:first-child{margin-left:0}
  .camera-card{min-height:74vh;max-height:760px;border-radius:0;margin:0 -14px}.scan-page{gap:14px}.scan-frame{left:9%;right:9%;top:22%;bottom:27%}.detect-badge{bottom:101px}.camera-actions{bottom:19px}.capture-btn{width:74px;height:74px}.edit-panel{border-radius:21px;padding:18px}.edit-panel-head{display:block}.auto-badge{display:inline-flex;margin:0 0 10px}.camera-preview{object-fit:contain;background:#0a0708}
  
}
@media (max-width:430px){
  .filter-row{gap:6px}.filter-row .chip{padding:8px 10px;font-size:11px}.scan-hint{font-size:11px}.camera-card{min-height:68vh}.scan-frame{top:20%;bottom:29%}
  
}

/* Epicave V1.2 — profil, avis/contact, navigation responsive et signature */
.profile-card-wide{grid-column:1/-1}
.profile-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.profile-actions .btn{min-width:145px}

.feedback-stack{display:grid;gap:18px;max-width:980px}
.feedback-card{padding:26px}
.feedback-card p{color:var(--muted);margin-top:-2px;margin-bottom:18px}
.textarea{resize:vertical;min-height:120px;line-height:1.5;font-family:inherit}
.rating-fieldset{border:0;padding:0;margin:0 0 18px}
.rating-fieldset legend{font-weight:750;color:#5d4d48;margin-bottom:8px}
.rating-stars{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rating-stars input{position:absolute;opacity:0;pointer-events:none}
.rating-stars label{font-size:38px;line-height:1;color:#d8cfc5;cursor:pointer;transition:color .16s ease,transform .16s ease;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.rating-stars label:hover, .rating-stars label:hover~label, .rating-stars input:checked~label{color:#c89438}
.rating-stars label:hover{transform:translateY(-1px)}

.desktop-footer{margin-top:34px;padding:20px 0 4px;border-top:1px solid #e7dcd1;text-align:center;color:#8b7771;font-size:13px}
.desktop-footer a{color:var(--wine);font-weight:700;text-decoration:none}
.desktop-footer a:hover{text-decoration:underline}
.scan-strip-link{cursor:pointer}
.scan-strip-link:focus-visible{outline:3px solid rgba(213,166,89,.7);outline-offset:3px}

@media (min-width:821px){
  .scan-strip{display:none}
}

@media (max-width:820px){
  .desktop-footer{display:none}
  .profile-card-wide{grid-column:auto}
  .profile-actions{flex-wrap:nowrap}
  .profile-actions .btn{min-width:0;flex:1}
  .feedback-stack{gap:14px}
  .feedback-card{padding:18px}
  .rating-stars label{font-size:34px}
  .scan-strip-link{cursor:pointer}
}

@media (max-width:430px){
  .profile-actions{gap:8px}
  .profile-actions .btn{padding-left:10px;padding-right:10px;font-size:12px}
}

/* Epicave V1.5 — cadre portrait, aperçu fidèle et courbe mobile */
.scan-shade{background:rgba(5,4,5,.10)}
.scan-frame{
  left:50%;right:auto;top:49%;bottom:auto;
  width:min(54%,330px);height:auto;aspect-ratio:.68;
  transform:translate(-50%,-50%);
  border:1px solid rgba(238,207,151,.58);
  border-radius:22px;
  box-shadow:0 0 0 999px rgba(0,0,0,.32),inset 0 0 32px rgba(234,191,113,.08)
}
.scan-frame:before, .scan-frame:after{width:62px;height:62px}
.scan-complete .scan-line{display:none}
.scan-complete .scan-frame{border-color:rgba(238,207,151,.78);box-shadow:0 0 0 999px rgba(0,0,0,.16),inset 0 0 28px rgba(234,191,113,.08)}
.camera-preview.camera-preview-camera{object-fit:cover;background:#080607}
.camera-preview.camera-preview-import{object-fit:contain;background:#080607}
.curve-svg-mobile{display:none}

@media (max-width:820px){
  .scan-frame{left:50%;right:auto;top:48%;bottom:auto;width:min(58%,330px);aspect-ratio:.68;transform:translate(-50%,-50%)}
  .camera-preview.camera-preview-camera{object-fit:cover}
  .camera-preview.camera-preview-import{object-fit:contain}
  .curve-wrap{overflow:hidden;margin:0 -4px}
  .curve-svg-desktop{display:none}
  .curve-svg-mobile{display:block;width:100%;min-width:0;height:auto;max-height:none}
}
@media (max-width:430px){
  .scan-frame{top:47%;width:60%;aspect-ratio:.68}
  .curve-svg-mobile{width:100%;height:auto}
}


/* Epicave V1.6 — navigation du tableau de bord, identité mobile et fond commun */
.page-title, .page-sub{position:relative;z-index:1}
.page-title{display:inline-block;padding:8px 12px 6px;margin-left:-12px;border-radius:12px;background:rgba(255,253,249,.80);backdrop-filter:blur(7px)}
.page-sub{display:block;width:max-content;max-width:100%;padding:5px 10px;margin-left:-10px;border-radius:10px;background:rgba(255,253,249,.76);backdrop-filter:blur(7px)}
@media (max-width:820px){
  .page-title{margin-left:0;padding:7px 10px 5px}.page-sub{margin-left:0;padding:4px 8px}
}

@media (max-width:820px){.page-home .topbar{display:none}.page-home .hero{margin-top:0}}


.opening-head{
  position:relative;overflow:hidden;
  align-items:center;
  margin:24px 0 13px;
  padding:20px 24px;
  border-radius:23px;
  background:linear-gradient(90deg,rgba(73,7,26,.98),rgba(104,14,41,.88)),url("/api/?action=dish_photo&q=Magret%20de%20canard%20aux%20c%C3%A8pes") center/cover;
  box-shadow:var(--shadow-sm);
  color:#fff;
}
.opening-head:after{content:"";position:absolute;right:0;top:0;bottom:0;width:31%;background:linear-gradient(90deg,rgba(106,13,41,.55),transparent);pointer-events:none}
.opening-head>div, .opening-head .link-btn{position:relative;z-index:1}
.opening-head h2{font:700 28px var(--serif);margin:0;color:#fff}
.opening-head p{margin:5px 0 0;color:#ecd9d2}
.opening-head .link-btn{color:#f3d294;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:9px 12px;border-radius:12px}









.wine-card, .cave-card, .pair-card{overflow:visible}
.wine-card{align-items:center;min-height:224px;padding-top:20px;padding-bottom:20px}
.cave-card{display:flex;flex-direction:column;min-height:300px;overflow:hidden}





.desktop-footer{
  width:max-content;max-width:100%;margin:34px auto 4px;padding:10px 15px;
  border:1px solid rgba(105,65,52,.12);border-radius:12px;
  background:rgba(255,255,255,.94);box-shadow:0 6px 18px rgba(62,15,26,.08);
  color:#705f59;font-size:13px;text-align:center;
}
.desktop-footer .footer-sep{padding:0 4px;color:#aa9187}

.feedback-card{position:relative;padding-bottom:72px}
.card-feedback{display:none;position:absolute;right:18px;bottom:16px;max-width:min(360px,calc(100% - 36px));padding:10px 13px;border-radius:12px;background:#2f6a45;color:#fff;font-size:13px;font-weight:700;box-shadow:0 7px 20px rgba(33,34,30,.17)}
.card-feedback.show{display:block}.card-feedback.error{background:#8b2636}.card-feedback.warning{background:#9a681d}

@media (max-width:820px){
  .opening-head{padding:18px 19px;border-radius:18px;margin-top:21px}.opening-head:after{display:none}.opening-head h2{font-size:22px}.opening-head p{font-size:13px}.opening-head .link-btn{font-size:12px;padding:8px 9px;white-space:nowrap}
  .wine-card{grid-template-columns:78px 1fr;min-height:226px;overflow:hidden}
  .cave-card{min-height:285px}
  
  .feedback-card{padding-bottom:68px}.card-feedback{right:14px;bottom:14px}
}
@media (max-width:430px){
  .wine-card{grid-template-columns:72px 1fr;min-width:90%}
  .cave-card{min-height:270px;padding:12px}
}


.wine-card, .cave-card, .pair-card{overflow:hidden}



.main{display:flex;flex-direction:column;min-height:100vh;padding-bottom:0}
.page{width:100%;min-height:100vh;display:flex;flex-direction:column}
.desktop-footer{margin-top:auto!important;margin-bottom:4px!important;flex:none}

.page-cave .cave-heading{margin:0 0 22px}
.page-cave .cave-heading .page-title, .page-cave .cave-heading .page-sub{margin-left:0}
.page-cave .cave-tools{margin-left:0;margin-right:0}

















.wine-card, .cave-card, .pair-card{overflow:hidden!important}
.wine-card{grid-template-columns:84px 1fr!important}
.cave-card{min-height:315px!important}

@media (max-width:820px){
  .main{padding-bottom:84px}
  .page{min-height:calc(100vh - 84px);padding-bottom:24px}
  .page-cave .cave-heading{margin:0 0 16px;padding-top:14px}
  .page-cave .cave-heading .page-title{margin:0;padding:0 0 3px;background:transparent;backdrop-filter:none}
  .page-cave .cave-heading .page-sub{margin:0;padding:0;background:transparent;backdrop-filter:none;width:auto}
  .wine-card{grid-template-columns:76px 1fr!important}
  .cave-card{min-height:292px!important}
  
  
}
@media (max-width:430px){
  .wine-card{grid-template-columns:72px 1fr!important}
  .cave-card{min-height:280px!important}
}


/* Epicave V1.0.10 — scanner mobile agrandi et titre compact */
.scan-page-title{white-space:nowrap}
@media (max-width:820px){
  .scan-page-title{display:block;width:100%;font-size:clamp(27px,6.2vw,34px);line-height:1.05;white-space:nowrap}
  .camera-card{min-height:78vh;max-height:820px}
  .scan-frame{width:min(72%,380px);aspect-ratio:.68;top:46%}
}
@media (max-width:430px){
  .scan-page-title{font-size:clamp(24px,7vw,29px);padding-left:8px;padding-right:8px}
  .camera-card{min-height:76vh}
  .scan-frame{width:min(74%,330px);aspect-ratio:.68;top:45%}
}


/* Epicave V1.0.12 — cave mobile, ajout manuel desktop, profil et alignements */
.cave-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cave-heading-copy{min-width:0}
.cave-manual-add{flex:none;white-space:nowrap}
.cave-qty-mobile{display:none}
.scan-page.manual-entry{grid-template-columns:1fr;max-width:920px}
.scan-page.manual-entry .edit-panel{width:100%}
.locations-title{margin-top:28px!important;margin-bottom:8px!important}
.location-add-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:14px 0}
.location-add-form .input{margin:0}
.location-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.location-chip{display:inline-flex;align-items:center;padding:9px 12px;border-radius:999px;background:#fff9f2;border:1px solid #eaded4;color:#62453f;font-weight:700;font-size:13px}
.location-empty{color:var(--muted);font-size:13px}
.page-profile .content-heading .page-title, .page-recommendations .content-heading .page-title{margin-left:0}
.page-profile .content-heading .page-sub, .page-recommendations .content-heading .page-sub{margin-left:0}

@media (min-width:821px){
  .sidebar .brand img{width:60px;height:60px}
  .sidebar .brand{gap:13px}
}

@media (max-width:820px){
  .cave-heading{display:block}
  .cave-manual-add{display:none}
  .cave-card{position:relative}
  .cave-qty-mobile{display:inline-flex;position:absolute;left:10px;top:10px;z-index:8;align-items:center;justify-content:center;min-height:28px;padding:5px 8px;border-radius:10px;background:rgba(101,13,37,.94);color:#fff;font-size:10px;font-weight:800;box-shadow:0 4px 12px rgba(62,15,26,.16)}
  .cave-footer{justify-content:center;text-align:center;margin-top:auto;width:100%}
  .cave-footer .qty-count{display:none}
  .cave-location{display:block;width:100%;text-align:center}
  .cave-card.no-location .cave-footer{display:none}
  .page-scan .topbar{display:none}
  .page-scan .scan-page-title, .page-scan .scan-page-sub{display:none}
  .page-scan .page{padding-top:0}
  .page-scan .scan-page{margin-top:0}
  .page-profile .content-heading .page-title, .page-recommendations .content-heading .page-title{margin-left:0}
  .page-profile .content-heading .page-sub, .page-recommendations .content-heading .page-sub{margin-left:0}
}

@media (max-width:430px){
  .cave-qty-mobile{left:8px;top:8px;padding:4px 7px;min-height:26px;font-size:9px}
  .location-add-form{grid-template-columns:1fr}
  .location-add-form .btn{width:100%}
}


/* Epicave V1.0.13 — fond restauré, fiche vin simplifiée et actions cave */
.cave-card{position:relative}
.cave-edit-btn{position:absolute;right:10px;top:10px;z-index:9;border:1px solid rgba(101,13,37,.16);border-radius:10px;background:rgba(255,253,249,.94);color:var(--wine);padding:6px 8px;font-size:10px;font-weight:800;box-shadow:0 4px 12px rgba(62,15,26,.10);cursor:pointer}
.cave-edit-btn:hover{background:#fff;transform:translateY(-1px)}
.detail-curve-panel{margin-top:16px}
.wine-detail-actions{margin-top:16px}
.footer-spacer{min-height:64px;margin-top:auto;flex:none}
.desktop-footer{margin-top:0!important}
@media (max-width:820px){
  .cave-edit-btn{right:8px;top:8px;padding:5px 7px;font-size:9px}
  .footer-spacer{display:none}
}


/* Epicave V1.0.14 — édition desktop, étiquette de secours et scanner cadré */





.detail-hero{position:relative}
.detail-edit-btn{top:14px;right:14px}
.desktop-label-photo{display:none}

@media (min-width:821px){
  .page-scan .scan-page{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start}
  .page-scan .scan-page.manual-entry{grid-template-columns:1fr}
  .desktop-label-photo{display:flex;position:relative;min-height:180px;border-radius:20px;border:1px solid #e5d8cd;background:rgba(255,253,249,.92);box-shadow:var(--shadow-sm);overflow:hidden;align-items:center;justify-content:center;padding:16px}
  .desktop-label-photo img{display:block;max-width:100%;max-height:300px;width:auto;height:auto;object-fit:contain;border-radius:12px}
  .desktop-photo-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:20px;color:var(--muted);font-size:12px;text-align:center}
  .desktop-label-photo img{position:relative;z-index:1}
  .desktop-label-photo-empty{min-height:390px;padding:16px 16px 58px;color:var(--muted);font-size:13px}
  .desktop-label-change{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:10px;border:1px solid rgba(101,13,37,.16);background:rgba(255,253,249,.95);color:var(--wine);font-size:10px;font-weight:800;box-shadow:0 4px 12px rgba(62,15,26,.10);cursor:pointer}
  .desktop-label-photo-empty .desktop-label-change{position:absolute;right:12px;bottom:12px}
  .desktop-label-simulated{display:flex;align-items:center;justify-content:center;width:100%;min-height:300px;pointer-events:none}
  .desktop-label-simulated-card{width:min(100%,220px);height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 16px;text-align:center;border-radius:12px;background:linear-gradient(180deg,#fbf6ee 0%,#efe4d1 100%);border:1px solid rgba(126,94,61,.16);box-shadow:0 10px 24px rgba(62,15,26,.08), inset 0 0 0 1px rgba(255,255,255,.45);color:#4a2c26;font:700 24px/1.18 var(--serif)}
  .desktop-label-simulated-card strong{display:block;margin-top:10px;color:#6a1028;font:700 30px/1 var(--serif)}
  .desktop-photo-empty-note{position:absolute;left:16px;top:14px;font-size:12px;font-weight:700;color:#8a776f;background:rgba(255,253,249,.9);padding:6px 10px;border-radius:999px;border:1px solid rgba(101,13,37,.08);box-shadow:0 4px 12px rgba(62,15,26,.05)}
}

@media (max-width:820px){
  .scan-line{top:2%;animation:scanLinePhoto 2.15s ease-in-out infinite}
  @keyframes scanLinePhoto{0%{top:2%;opacity:.45}50%{opacity:1}100%{top:calc(100% - 2px);opacity:.65}}
  .detail-edit-btn{right:10px;top:10px}
}

/* Epicave V1.0.17 — quantité mise en avant dans la fiche vin */
.edit-panel-title{min-width:0}
.edit-panel-head-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.quantity-control{display:flex;align-items:center;gap:10px;min-height:44px;padding:7px 8px 7px 13px;border:1px solid rgba(199,154,86,.48);border-radius:15px;background:linear-gradient(135deg,#fff9ee,#f5e6c9);box-shadow:0 5px 16px rgba(91,31,43,.08);color:var(--wine);font-size:12px;font-weight:800;white-space:nowrap}
.quantity-control input{width:58px;height:32px;border:1px solid rgba(93,15,36,.18);border-radius:10px;background:#fff;text-align:center;color:var(--wine);font-weight:850;font-size:15px;outline:none;padding:4px 6px}
.quantity-control input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(199,154,86,.15)}
@media (max-width:820px){
  .edit-panel-head{display:flex;align-items:flex-start}
  .edit-panel-head-actions{flex-direction:column;align-items:flex-end;flex:none}
  .edit-panel-head-actions .auto-badge{margin:0}
  .quantity-control{min-height:42px;padding:6px 7px 6px 11px}
  .quantity-control input{width:52px;height:30px}
}
@media (max-width:430px){
  .edit-panel-head{gap:8px}
  .edit-panel-head h2{font-size:24px}
  .edit-panel-head .panel-sub{font-size:12px}
  .quantity-control{gap:7px;padding-left:9px;font-size:11px}
  .quantity-control input{width:48px}
}


/* Silhouette légèrement plus réaliste : épaules plus progressives, reflets du verre et culot plus marqué. */








/* Même implantation d'étiquette dans l'accueil et Ma cave, avec photo couvrant entièrement son support. */






.detail-bottle-column{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0}

.detail-consume-btn{position:static!important;right:auto!important;top:auto!important;display:inline-flex!important;align-items:center;justify-content:center;text-align:center;line-height:1.15;max-width:170px;margin:0 auto 8px;background:rgba(255,253,249,.96)!important}
.wine-detail-actions.delete-only{display:flex;justify-content:flex-end;margin-top:16px}
.wine-detail-actions.delete-only .btn{min-width:220px}

.remaining-notice-wrap{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;padding:24px;background:rgba(42,5,17,.12);opacity:0;transition:opacity .18s ease;pointer-events:none}
.remaining-notice-wrap.show{opacity:1}
.remaining-notice{min-width:210px;padding:24px 28px;border-radius:22px;background:rgba(255,253,249,.98);border:1px solid rgba(199,154,86,.38);box-shadow:0 18px 46px rgba(54,12,25,.24);text-align:center;color:var(--wine)}
.remaining-notice strong{display:block;font:700 54px/1 var(--serif);color:var(--wine-2);margin-bottom:7px}
.remaining-notice span{font:700 18px/1.2 var(--serif)}

.wine-pairing-hero{position:relative;padding-top:62px}
.pairing-back{position:absolute;left:22px;top:18px;border:1px solid rgba(255,255,255,.23);border-radius:10px;background:rgba(255,255,255,.11);color:#fff;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}
.pairing-back:hover{background:rgba(255,255,255,.18)}
.wine-pairing-heading{display:grid;grid-template-columns:92px 1fr;gap:20px;align-items:center}

.wine-pairing-heading h1{margin:4px 0 8px!important}
.pairing-kicker{margin:0!important;color:#edcc8e!important;font-size:12px!important;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.dish-ideas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.dish-idea-card{display:flex;align-items:center;gap:16px;min-height:128px;padding:20px;border-radius:20px;background:rgba(255,253,249,.97);border:1px solid rgba(118,77,62,.12);box-shadow:var(--shadow-sm)}
.dish-idea-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#f5e2bd,#e9c98e);font-size:25px}
.dish-idea-card h2{margin:0 0 5px;font:700 23px/1.05 var(--serif);color:var(--wine-2)}
.dish-idea-card p{margin:0;color:var(--muted);font-size:13px}

@media (max-width:820px){
  
  .detail-bottle-column{gap:7px}
  
  .detail-consume-btn{max-width:92px;padding:6px 7px!important;font-size:9px!important;margin-bottom:4px}
  .wine-detail-actions.delete-only{justify-content:stretch}.wine-detail-actions.delete-only .btn{width:100%;min-width:0}
  .wine-pairing-hero{padding-top:58px}
  .wine-pairing-heading{grid-template-columns:72px 1fr;gap:12px}
  .dish-ideas-grid{grid-template-columns:1fr;gap:10px}.dish-idea-card{min-height:106px;padding:16px}.dish-idea-card h2{font-size:20px}
}


/* Epicave V1.0.19 — étiquettes photo au format portrait du cadre de prise de vue */


/* Les étiquettes texte de secours conservent leur implantation existante. */



@media (max-width:820px){
  
}

/* Epicave V1.0.20 — étiquette fidèle à la photo et badges Ma cave */



/* Le secours texte reste caché tant que la photo se charge correctement. */


/* Dans Ma cave, l'état du vin est une vignette dans l'angle supérieur gauche. */
.cave-card > .status{
  position:absolute;
  left:10px;
  top:10px;
  z-index:10;
  margin:0;
  max-width:calc(100% - 92px);
  box-shadow:0 4px 12px rgba(62,15,26,.10);
}
@media (max-width:820px){
  .cave-card > .status{left:8px;top:8px;max-width:calc(100% - 82px)}
  /* La quantité demandée précédemment reste visible, juste sous l'état pour éviter la superposition. */
  .cave-qty-mobile{left:8px;top:39px}
}
@media (max-width:430px){
  .cave-card > .status{left:8px;top:8px}
  .cave-qty-mobile{left:8px;top:37px}
}
/* Ne jamais laisser apparaître le support crème derrière une vraie photo. */







/* Epicave V1.0.22 — filtres combinables et quantité alignée avec l’emplacement */
.maturity-filter-row{margin-top:-2px}
.cave-footer{gap:10px}
.cave-footer-qty-only{justify-content:center!important;text-align:center!important}
.cave-footer-qty-only .qty-count{margin-inline:auto}
.cave-qty-mobile{display:none!important}

@media (max-width:820px){
  .cave-footer{display:flex!important;align-items:center;justify-content:space-between!important;text-align:left!important;margin-top:auto;width:100%;gap:8px}
  .cave-footer .qty-count{display:inline!important;flex:0 0 auto}
  .cave-location{display:block;width:auto!important;min-width:0;text-align:right!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cave-card.no-location .cave-footer{display:flex!important;justify-content:center!important;text-align:center!important}
  .cave-card.no-location .qty-count{display:inline!important;margin-inline:auto}
}


/* Epicave V1.0.23 — administration privée du référentiel viticole */
.admin-access-card{display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid #ead8b3;background:linear-gradient(135deg,#fffaf2,#fff)}
.admin-access-card>div{max-width:760px}.admin-access-card p{margin-bottom:0;color:var(--muted)}
.admin-kicker{display:inline-block;margin-bottom:5px;color:#9a6b20;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.admin-back{display:block;padding:0;margin:0 0 8px;color:var(--wine);font-weight:800}
.admin-panel{padding:18px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-tabs{margin:0;flex-wrap:wrap}.admin-search{width:min(390px,100%)}
.admin-count{font-size:12px;color:var(--muted);font-weight:700;margin:14px 2px 9px}.admin-list{display:grid;gap:9px}
.admin-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 14px;border:1px solid #eadfd7;border-radius:15px;background:#fffdfa}
.admin-row-main{min-width:0;display:grid;gap:3px}.admin-row-main strong{color:var(--wine);font:700 18px var(--serif)}.admin-row-main span{color:#675b56;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-row-actions{display:flex;align-items:center;gap:7px;flex:none}.admin-row-actions .btn{padding:8px 11px}.admin-delete{width:34px;height:34px;border-radius:50%;border:1px solid #ecd9d6;background:#fff;color:#9b3040;font-size:21px;cursor:pointer}.admin-delete:hover{background:#faecee}
.admin-empty{text-align:center;padding:36px 15px;color:var(--muted)}.admin-editor{margin-top:16px}.admin-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}.admin-editor-head h2{margin-top:0}.admin-editor .textarea{resize:vertical}.admin-check{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fbf4ea;border-radius:12px;font-weight:700;color:#675347}.admin-check input{width:18px;height:18px;accent-color:var(--wine)}.admin-form-actions{display:flex;justify-content:flex-end;margin-top:14px}
@media (max-width:760px){.admin-access-card, .admin-heading, .admin-toolbar{align-items:stretch;flex-direction:column}.admin-heading .btn{width:100%}.admin-search{width:100%}.admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-tabs .filter{width:100%;text-align:center}.admin-row{align-items:flex-start}.admin-row-main span{white-space:normal}.admin-row-actions{flex-direction:column}.admin-row-actions .btn{font-size:11px;padding:7px 9px}.admin-editor-head{gap:8px}}



.side-nav-admin{margin-top:auto;padding-top:16px}
.side-nav-admin .nav-btn{width:100%;justify-content:flex-start;background:rgba(255,255,255,.08)}
.side-nav-admin .nav-btn:hover, .side-nav-admin .nav-btn.active{background:rgba(255,255,255,.15)}

.wine-detail-hero{position:relative;padding-top:66px}
.wine-back{position:absolute;left:24px;top:18px;border:1px solid rgba(255,255,255,.23);border-radius:10px;background:rgba(255,255,255,.11);color:#fff;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}
.wine-back:hover{background:rgba(255,255,255,.18)}








@media (max-width:820px){
  .wine-detail-hero{padding-top:58px}
  .wine-back{left:18px;top:14px;padding:6px 9px;font-size:10px}
}

.side-nav{display:flex;flex-direction:column;gap:4px}
.sidebar-quote{margin-top:auto}
.side-nav-admin{padding-top:14px}
.side-nav-admin .nav-btn{width:100%;justify-content:flex-start;background:rgba(255,255,255,.08)}
.side-nav-admin .nav-btn.active, .side-nav-admin .nav-btn:hover{background:rgba(255,255,255,.16)}

.back-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
.back-icon svg{width:18px;height:18px}
.wine-back, .pairing-back{display:inline-flex;align-items:center;gap:8px}
.wine-back{left:22px;top:18px}









.gourmet-suggestions-panel{margin-top:16px}
.gourmet-inline-panel{margin-top:18px;padding-top:16px;border-top:1px solid #eadfd4}
.gourmet-inline-panel h3{margin:0 0 12px;font:700 22px var(--serif);color:var(--wine-2)}
.dish-ideas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.dish-ideas-grid.compact, .gourmet-suggestions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dish-idea-card{display:grid;grid-template-columns:128px 1fr;align-items:center;gap:16px;min-height:132px;padding:16px;border-radius:20px;background:rgba(255,253,249,.98);border:1px solid rgba(118,77,62,.12);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.dish-idea-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(47,11,22,.13)}
.dish-idea-card.compact{grid-template-columns:110px 1fr;min-height:118px}
.dish-idea-photo{width:100%;height:100px;border-radius:16px;overflow:hidden;background:#eee2d5}
.dish-idea-card.compact .dish-idea-photo{height:88px}
.dish-idea-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dish-idea-card h2{margin:0 0 6px;font:700 23px/1.05 var(--serif);color:var(--wine-2)}
.dish-idea-card p{margin:0;color:var(--muted);font-size:13px}

.meal-hero-dish{display:flex;align-items:center;gap:14px;margin-top:18px;padding:12px;border-radius:18px;background:rgba(255,255,255,.14);max-width:540px}
.meal-hero-dish strong{display:block;font:700 20px var(--serif)}
.meal-hero-dish span{display:block;color:rgba(255,255,255,.86);font-size:13px;margin-top:4px}
.meal-hero-dish-photo{width:106px;height:76px;border-radius:14px;overflow:hidden;flex:none;border:1px solid rgba(255,255,255,.16)}
.meal-hero-dish-photo img{width:100%;height:100%;object-fit:cover;display:block}

.pair-card{grid-template-columns:150px 1fr auto!important;align-items:stretch!important}
.pair-photo{width:150px;height:160px;border-radius:16px;overflow:hidden;background:#eadfd4}
.pair-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pair-main{display:flex;align-items:center}
.pair-main-head{display:grid;grid-template-columns:60px 1fr;gap:14px;align-items:center;width:100%}


.pair-score{display:flex;flex-direction:column;justify-content:center;min-width:92px}

.admin-tabs{display:flex;flex-wrap:wrap;gap:10px}
.admin-tab{border:1px solid rgba(125,23,50,.13);background:#fffaf5;color:var(--wine-2);padding:10px 16px;border-radius:999px;font:700 14px var(--sans);cursor:pointer;transition:.18s ease}
.admin-tab:hover{border-color:rgba(125,23,50,.25);transform:translateY(-1px)}
.admin-tab.active{background:linear-gradient(135deg,#6c1028,#8a1d39);color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(79,11,31,.18)}

@media (max-width:820px){
  .dish-ideas-grid, .dish-ideas-grid.compact, .gourmet-suggestions-grid{grid-template-columns:1fr}
  .dish-idea-card, .dish-idea-card.compact{grid-template-columns:92px 1fr;min-height:108px;padding:14px}
  .dish-idea-photo, .dish-idea-card.compact .dish-idea-photo{height:78px}
  .dish-idea-card h2{font-size:19px}
  .pair-card{grid-template-columns:1fr!important;gap:12px!important}
  .pair-photo{width:100%;height:150px}
  .pair-main-head{grid-template-columns:50px 1fr;align-items:flex-start}
  
  .pair-score{text-align:left;min-width:0}
  .meal-hero-dish{max-width:none}
}


/* Epicave V2.0.3 — caractéristiques gustatives */
.wine-detail-side{display:grid;gap:14px}
.taste-panel{background:#191919;color:#fff;border:1px solid rgba(255,255,255,.06);box-shadow:0 18px 34px rgba(17,17,17,.18)}
.taste-panel h2{color:#fff}
.taste-panel .panel-sub{color:rgba(255,255,255,.68)}
.taste-card{display:grid;gap:18px}
.taste-axis-list{display:grid;gap:18px}
.taste-axis-track{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 26px;border:2px solid rgba(255,255,255,.16);border-radius:999px;background:#050505;overflow:hidden}
.taste-axis-label{position:relative;z-index:2;font:700 27px/1 var(--sans);letter-spacing:-.01em}
.taste-axis-label.right{color:rgba(255,255,255,.6)}
.taste-axis-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:112px;height:44px;border-radius:999px;background:linear-gradient(135deg,#b70827,#e21133);box-shadow:0 6px 20px rgba(226,17,51,.28)}

.taste-edit-field label{margin-bottom:8px}
.taste-edit-card{display:grid;gap:14px;padding:16px;border-radius:18px;background:#fbf6f1;border:1px solid #eadfd4}
.taste-edit-row{display:grid;gap:8px}
.taste-edit-labels{display:flex;justify-content:space-between;color:var(--wine-2);font-weight:700}
.taste-edit-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}
.taste-range{width:100%}
.taste-range-output{min-width:42px;padding:7px 9px;border-radius:10px;background:#fff;color:var(--wine);font-weight:800;text-align:center;border:1px solid #eadfd4}

@media (max-width:820px){
  .taste-axis-track{min-height:54px;padding:0 18px}
  .taste-axis-label{font-size:21px}
  .taste-axis-thumb{width:84px;height:36px}
}


/* Epicave V2.0.4 — graphique gustatif modernisé */
.taste-panel{
  background:
    radial-gradient(circle at top left, rgba(184,35,70,.18), transparent 28%),
    linear-gradient(180deg,#18181b 0%,#0f1013 100%);
  color:#fff;
  border:1px solid rgba(255,255,255,.06);
  box-shadow:0 22px 44px rgba(10,10,12,.28);
}
.taste-panel h2{color:#fff;letter-spacing:-.02em}
.taste-panel .panel-sub{color:rgba(255,255,255,.70)}
.taste-card{display:grid;gap:18px}
.taste-axis-list{display:grid;gap:18px}
.taste-axis-track{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:72px;
  padding:0 28px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(4,4,6,.98) 0%,rgba(9,10,13,.95) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), inset 0 -1px 0 rgba(255,255,255,.03);
  overflow:hidden;
}
.taste-axis-track::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  top:50%;
  height:8px;
  transform:translateY(-50%);
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.08),rgba(255,255,255,.04));
}
.taste-axis-label{
  position:relative;
  z-index:2;
  font:700 25px/1 var(--sans);
  letter-spacing:-.02em;
}
.taste-axis-label.left{color:#fff}
.taste-axis-label.right{color:rgba(255,255,255,.60)}
.taste-axis-thumb{
  position:absolute;
  top:50%;
  transform:translate(-50%,-50%);
  width:108px;
  height:42px;
  border-radius:999px;
  background:linear-gradient(135deg,#680e25 0%,#7e1731 42%,#a32846 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 24px rgba(104,14,37,.38), inset 0 1px 0 rgba(255,255,255,.18);
  z-index:1;
}
.taste-axis-thumb::before{
  content:"";
  position:absolute;
  inset:5px 10px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.02));
}

.taste-edit-card{
  background:linear-gradient(180deg,#fffdfb 0%,#fbf4ee 100%);
  border:1px solid #ead8cc;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.taste-edit-labels{display:flex;justify-content:space-between;color:var(--wine-2);font-weight:700}
.taste-edit-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}
.taste-range{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,#f1dfd6 0%,#e7d0c8 100%);
  outline:none;
}
.taste-range::-webkit-slider-runnable-track{
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,#efdfd9 0%,#e4cec6 100%);
}
.taste-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:24px;
  height:24px;
  margin-top:-8px;
  border-radius:50%;
  background:linear-gradient(135deg,#680e25 0%,#7e1731 45%,#a32846 100%);
  border:2px solid #fff;
  box-shadow:0 8px 18px rgba(104,14,37,.28);
  cursor:pointer;
}
.taste-range::-moz-range-track{
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,#efdfd9 0%,#e4cec6 100%);
  border:none;
}
.taste-range::-moz-range-thumb{
  width:24px;
  height:24px;
  border-radius:50%;
  background:linear-gradient(135deg,#680e25 0%,#7e1731 45%,#a32846 100%);
  border:2px solid #fff;
  box-shadow:0 8px 18px rgba(104,14,37,.28);
  cursor:pointer;
}
.taste-range-output{
  min-width:44px;
  padding:8px 10px;
  border-radius:12px;
  background:linear-gradient(180deg,#fff 0%,#f6ece5 100%);
  color:var(--wine);
  font-weight:800;
  text-align:center;
  border:1px solid #ead8cc;
  box-shadow:0 4px 10px rgba(91,34,41,.06);
}

@media (max-width:820px){
  .taste-axis-track{min-height:58px;padding:0 18px}
  .taste-axis-track::after{left:12px;right:12px;height:6px}
  .taste-axis-label{font-size:20px}
  .taste-axis-thumb{width:82px;height:34px}
}



.wine-equal-panels{align-items:stretch}
.wine-equal-panels>.equal-panel, .wine-equal-panels>.panel.equal-panel{display:flex;flex-direction:column}
.wine-equal-panels>.equal-panel>.panel, .wine-equal-panels>.panel.equal-panel{height:100%}
.storage-panel-below{margin-top:14px}


















/* Graphique gustatif plus intégré au site */
.taste-panel{
  background:linear-gradient(180deg,#fffaf5 0%,#fbf4ee 100%)!important;
  color:var(--ink)!important;
  border:1px solid #eadfd4!important;
  box-shadow:var(--shadow-sm)!important;
}
.taste-panel h2{color:var(--wine-2)!important}
.taste-panel .panel-sub{color:var(--muted)!important}
.taste-axis-track{
  min-height:62px!important;
  padding:0 22px!important;
  border:1px solid #e4d7cb!important;
  background:linear-gradient(180deg,#fffdfb 0%,#faf2ea 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65)!important;
}
.taste-axis-track::after{left:14px!important;right:14px!important;height:6px!important;background:linear-gradient(90deg,#efe1d7,#e4d2c7,#efe1d7)!important}
.taste-axis-label.left{color:var(--wine-2)!important}
.taste-axis-label.right{color:#8b7a73!important}
.taste-axis-label{font-size:22px!important}
.taste-axis-thumb{
  width:92px!important;
  height:36px!important;
  background:linear-gradient(135deg,#6a1028 0%,#7b1732 46%,#9e2f48 100%)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 8px 16px rgba(106,16,40,.20), inset 0 1px 0 rgba(255,255,255,.20)!important;
}

@media (max-width:820px){
  .wine-equal-panels{grid-template-columns:1fr!important}
  .storage-panel-below{margin-top:0}
  .taste-axis-label{font-size:18px!important}
  .taste-axis-thumb{width:76px!important;height:32px!important}
}



.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:12px}
.sidebar-quote{margin-top:0}
.side-nav-admin{padding-top:0}

.opening-panel{
  margin-top:22px;
  padding:18px;
  border-radius:26px;
  background:linear-gradient(135deg,#6a1028 0%,#7d1732 55%,#4d0c1d 100%);
  box-shadow:0 18px 36px rgba(64,9,22,.18);
}
.opening-panel .opening-head{margin:0 0 16px;padding:0;background:transparent;box-shadow:none;border:0;overflow:visible}
.opening-panel .opening-head:after{display:none}
.opening-card-grid{padding:0}
.opening-card-grid .wine-card{background:rgba(255,251,247,.98)}
.opening-card-grid .empty{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:16px;color:#fff}


















@media (max-width:820px){
  .opening-panel{padding:16px;border-radius:22px}
  
  
  
  
}





















@media (max-width:820px){
  
  
  
  
}





/* Epicave V2.0.9 — rendu unique des bouteilles réalistes */
.wine-bottle{
  --label-left:18.75%;
  --label-right:18.75%;
  --label-top:43.180%;
  --label-height:31.20%;
  position:relative;
  width:78px;
  height:196px;
  margin:0 auto;
  flex:none;
}
.wine-bottle.white{
  --label-left:18.40%;
  --label-right:18.40%;
  --label-top:43.185%;
  --label-height:31.15%;
}
.wine-bottle.rose{
  --label-left:18.60%;
  --label-right:18.60%;
  --label-top:43.180%;
  --label-height:31.10%;
}
.wine-bottle.sparkling{
  --label-left:18.40%;
  --label-right:18.40%;
  --label-top:43.185%;
  --label-height:31.15%;
}
.wine-bottle-base{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
  pointer-events:none;
  z-index:1;
}
.wine-bottle-label{
  position:absolute;
  z-index:2;
  left:var(--label-left);
  right:var(--label-right);
  top:var(--label-top);
  height:var(--label-height);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f3eadc;
  border:0;
  border-radius:1px;
  box-shadow:none;
}
.wine-bottle-label-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  display:block;
  background:#f3eadc;
}
.wine-bottle-label-fallback,
.wine-bottle-label-text{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:3px;
  color:#3f2922;
  background:#f3eadc;
  font:700 6.4px/1.05 var(--serif);
}
.wine-bottle-label-fallback strong,
.wine-bottle-label-text strong{font:700 8px/1 var(--serif);margin-top:3px;color:#6a1028}
.wine-bottle-label-photo .wine-bottle-label-fallback{display:none}
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{display:flex}

.wine-card .wine-bottle{width:78px;height:196px}
.cave-card .wine-bottle{width:76px;height:192px;margin:8px auto 4px}
.detail-hero .wine-bottle{width:108px;height:272px;margin:8px auto}
.pair-card .wine-bottle,.wine-pairing-heading .wine-bottle{width:62px;height:158px;margin:0 auto}
.pair-mini-bottle .wine-bottle{width:52px;height:132px;margin:0 auto}

@media (max-width:820px){
  .sidebar{display:none!important}
  .app-shell{display:block!important}
  .main{margin-left:0!important;width:100%!important}
  .bottom-nav{display:grid!important}
  .wine-card .wine-bottle{width:70px;height:176px}
  .cave-card .wine-bottle{width:68px;height:172px}
  .detail-hero .wine-bottle{width:84px;height:212px}
  .pair-card .wine-bottle,.wine-pairing-heading .wine-bottle{width:56px;height:142px}
}


/* Epicave V2.0.11 — en-têtes sans fond crème */
.page-cave .cave-heading .page-title,
.page-cave .cave-heading .page-sub,
.page-recommendations .content-heading .page-title,
.page-recommendations .content-heading .page-sub,
.page-profile .content-heading .page-title,
.page-profile .content-heading .page-sub{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-radius:0!important;
  padding:0!important;
  margin-left:0!important;
}

/* Epicave V2.0.12 — étiquettes réelles et en-tête Référentiel */
.wine-bottle-label.wine-bottle-label-photo{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.wine-bottle-label.wine-bottle-label-photo img{
  background:transparent!important;
  object-fit:contain!important;
  object-position:center center!important;
}
.wine-bottle-label.wine-bottle-label-photo.label-photo-missing{
  background:transparent!important;
}
.wine-bottle-label.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  display:flex!important;
  background:#f3eadc!important;
}

.page-admin .admin-heading .page-title,
.page-admin .admin-heading .page-sub{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-radius:0!important;
  padding:0!important;
  margin-left:0!important;
}
.page-admin .admin-heading{margin:0 0 18px}
.page-admin .admin-heading .page-sub{margin-top:7px;margin-bottom:0}
.page-admin .admin-editor{margin:0 0 16px}
.page-admin .admin-panel{margin-top:0}

/* Epicave V2.0.13 — Référentiels : formulaire compact + flèche de retour standard */
.back-icon{
  width:20px;
  height:20px;
  flex:0 0 20px;
}
.back-icon svg{
  width:20px;
  height:20px;
  stroke-width:2.8;
}
.wine-back,.pairing-back{
  gap:9px;
}

.page-admin .admin-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:14px;
  row-gap:0;
  align-items:start;
}
.page-admin .admin-editor .field{
  margin:8px 0;
}
.page-admin .admin-editor .input{
  min-height:44px;
  padding:11px 13px;
  border-radius:12px;
}
.page-admin .admin-editor-new .admin-form-actions{
  margin-top:10px;
}
@media (max-width:760px){
  .page-admin .admin-form-grid{grid-template-columns:1fr}
  .page-admin .admin-form-grid .span2{grid-column:auto}
  .page-admin .admin-editor .field{margin:7px 0}
}

/* Epicave V2.0.16 — étiquette simulée alignée comme une vraie photo */
@media (min-width:821px){
  .desktop-label-photo:not(.desktop-label-photo-empty){min-height:390px;padding:16px 16px 58px}
}

/* Epicave V2.0.17 — l’étiquette simulée utilise exactement le même cadre que la photo réelle. */
.wine-bottle-label-simulated{
  background:#f3eadc;
}
.wine-bottle-label-simulated .wine-bottle-label-text{
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  height:100%;
  width:68%;
  max-width:68%;
}

/* Epicave V2.0.19 — accueil : sous-titre des recommandations non rogné */
.opening-panel .opening-head p{padding-left:1px}

/* Epicave V2.0.20 — l’étiquette simulée reprend la largeur visuelle d’une photo. */
.wine-bottle-label-simulated .wine-bottle-label-text{padding:3px 2px}

/* Epicave V2.0.21 — recherche supérieure uniquement sur l’accueil */
@media (min-width:821px){.topbar-profile-only{justify-content:flex-end}}

/* Epicave V2.0.22 — largeur de l’étiquette simulée resserrée pour correspondre au rendu des photos. */
.wine-bottle-label-simulated .wine-bottle-label-text{min-width:0}


/* Epicave V2.0.23 — caractéristiques gustatives alignées sur les cartes voisines. */
.wine-equal-panels{
  align-items:stretch;
}
.wine-equal-panels>.panel.equal-panel,
.wine-equal-panels>.equal-panel>.panel{
  height:100%;
  margin-bottom:0;
}
.wine-equal-panels .taste-panel{
  background:#fff!important;
  color:var(--ink)!important;
  border:0!important;
  box-shadow:var(--shadow-sm)!important;
  border-radius:22px!important;
  padding:22px!important;
}
.wine-equal-panels .taste-panel h2{
  color:#4b1820!important;
}
.wine-equal-panels .taste-panel .panel-sub{
  color:var(--muted)!important;
}
.wine-equal-panels .taste-card,
.wine-equal-panels .taste-axis-list{
  gap:14px;
}
.wine-equal-panels .taste-axis-track{
  display:grid!important;
  grid-template-columns:minmax(58px,auto) minmax(120px,1fr) minmax(58px,auto)!important;
  align-items:center!important;
  column-gap:14px!important;
  min-height:54px!important;
  padding:0 16px!important;
  overflow:visible!important;
  border:1px solid #eaded4!important;
  border-radius:14px!important;
  background:#fff9f2!important;
  box-shadow:none!important;
}
.wine-equal-panels .taste-axis-track::after{
  display:none!important;
}
.wine-equal-panels .taste-axis-label{
  position:relative!important;
  z-index:2!important;
  font:700 15px/1.1 var(--sans)!important;
  letter-spacing:0!important;
  white-space:nowrap;
}
.wine-equal-panels .taste-axis-label.left{
  color:#62453f!important;
  text-align:left;
}
.wine-equal-panels .taste-axis-label.right{
  color:#786963!important;
  text-align:right;
}
.wine-equal-panels .taste-axis-line{
  position:relative;
  display:block;
  width:100%;
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,#efe1d7 0%,#e4d2c7 50%,#efe1d7 100%);
}
.wine-equal-panels .taste-axis-thumb{
  top:50%!important;
  width:22px!important;
  height:22px!important;
  transform:translate(-50%,-50%)!important;
  border-radius:50%!important;
  background:linear-gradient(135deg,#6a1028 0%,#8d2340 100%)!important;
  border:2px solid #fff!important;
  box-shadow:0 4px 10px rgba(106,16,40,.22)!important;
}
@media (max-width:820px){
  .wine-equal-panels .taste-axis-track{
    grid-template-columns:minmax(52px,auto) minmax(78px,1fr) minmax(52px,auto)!important;
    column-gap:9px!important;
    min-height:50px!important;
    padding:0 12px!important;
  }
  .wine-equal-panels .taste-axis-label{
    font-size:13px!important;
  }
  .wine-equal-panels .taste-axis-thumb{
    width:20px!important;
    height:20px!important;
  }
}


/* Epicave V2.0.24 — installation PWA dans Mon profil. */
.install-app-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid #eee1d7;
}
.install-app-logo{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:block;
  object-fit:cover;
  border-radius:15px;
  box-shadow:0 6px 16px rgba(62,15,26,.12);
}
.install-app-btn{min-width:170px}
.install-app-btn:disabled{opacity:.62;cursor:default}
@media (max-width:520px){
  .install-app-row{gap:12px}
  .install-app-logo{width:52px;height:52px;flex-basis:52px;border-radius:14px}
  .install-app-btn{min-width:0;flex:1}
}

/* Epicave V2.0.24 — le fond simulé ne doit jamais dépasser le corps de la bouteille. */
.wine-bottle-label-simulated{
  background:transparent!important;
}
.wine-bottle-label-simulated .wine-bottle-label-text{
  right:auto!important;
  width:68%!important;
  max-width:68%!important;
  height:100%!important;
  background:#f3eadc!important;
  overflow:hidden;
}
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  top:0!important;
  bottom:0!important;
  left:50%!important;
  right:auto!important;
  width:68%!important;
  max-width:68%!important;
  height:100%!important;
  transform:translateX(-50%)!important;
  overflow:hidden;
}


/* Epicave V2.0.28 — accueil et suggestions avec le langage visuel du scanner. */
.opening-panel,
.gourmet-suggestions-panel{
  color:#fff;
  background:
    linear-gradient(90deg,rgba(40,8,16,.95),rgba(96,20,40,.73)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover;
  border:1px solid rgba(216,172,100,.18);
  box-shadow:0 18px 36px rgba(64,9,22,.18);
}
.opening-panel .opening-head h2,
.gourmet-suggestions-panel .section-head h2{color:#fff}
.opening-panel .opening-head p,
.gourmet-suggestions-panel .section-head p{color:#eedfd9}
.opening-panel .opening-head .link-btn{color:#f4d99d}
.gourmet-suggestions-panel .dish-idea-card{
  background:rgba(255,253,249,.60);
  border-color:rgba(255,255,255,.34);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.gourmet-suggestions-panel .dish-idea-photo,
.gourmet-suggestions-panel .dish-idea-photo img{opacity:1}
.gourmet-suggestions-panel .dish-idea-card h2{color:#4b1820}
.gourmet-suggestions-panel .dish-idea-card p{color:#594844}

/* Epicave V2.0.28 — bloc d'installation dans Mon profil. */
.install-app-title{margin:24px 0 0}
.install-app-row{
  margin-top:12px;
  padding-top:0;
  border-top:0;
}
.install-app-logo{
  border:2px solid #d8ac64;
  border-radius:29%;
  background:#fff;
  box-shadow:0 6px 16px rgba(62,15,26,.10),0 0 0 1px rgba(216,172,100,.18);
}

/* Epicave V2.0.29 — scanner plein écran, panneau d'informations coulissant */
body.scan-capture-active{overflow:hidden;overscroll-behavior:none}
.scan-sheet-handle{display:none}
@media (min-width:821px){
  .page-scan .scan-page:not(.manual-entry){grid-template-columns:minmax(0,440px) minmax(0,1fr)}
}
.scan-capture-mode .camera-card{
  position:fixed;inset:0;z-index:200;width:100vw;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;max-height:none;
  margin:0;border-radius:0;box-shadow:none;background:#050405
}
.scan-capture-mode .camera-video,
.scan-capture-mode .camera-preview{object-fit:cover;background:#050405}
.scan-capture-mode .scan-frame{
  left:50%;right:auto;top:42%;bottom:auto;transform:translate(-50%,-50%);
  width:min(68vw,590px);height:min(67vh,720px);height:min(67dvh,720px);aspect-ratio:auto;
  border-radius:24px;border-color:rgba(240,205,139,.72);
  box-shadow:0 0 0 999px rgba(0,0,0,.28),inset 0 0 38px rgba(234,191,113,.09)
}
.scan-capture-mode .scan-frame:before,.scan-capture-mode .scan-frame:after{width:78px;height:78px}
.scan-capture-mode .camera-actions{position:fixed;z-index:230;bottom:132px;left:50%;right:auto;transform:translateX(-50%);width:min(430px,84vw)}
.scan-capture-mode .detect-badge{position:fixed;z-index:230;bottom:220px;max-width:min(640px,88vw)}
.scan-capture-mode .scan-info-sheet{
  position:fixed;z-index:220;left:50%;right:auto;bottom:0;width:min(760px,calc(100vw - 24px));max-height:min(72vh,760px);max-height:min(72dvh,760px);
  overflow:auto;transform:translate(-50%,calc(100% - 112px));border-radius:26px 26px 0 0;padding:10px 18px calc(22px + env(safe-area-inset-bottom));
  box-shadow:0 -18px 42px rgba(20,4,10,.28);transition:transform .34s cubic-bezier(.22,.75,.2,1);animation:epicaveScanSheetIn .42s cubic-bezier(.22,.75,.2,1)
}
.scan-capture-mode.scan-sheet-expanded .scan-info-sheet{transform:translate(-50%,0)}
.scan-capture-mode:not(.scan-sheet-expanded) .scan-info-sheet{overflow:hidden}
.scan-capture-mode:not(.scan-sheet-expanded) .scan-info-sheet>.edit-panel-head,
.scan-capture-mode:not(.scan-sheet-expanded) .scan-info-sheet>.form-grid,
.scan-capture-mode:not(.scan-sheet-expanded) .scan-info-sheet>.mini-note,
.scan-capture-mode:not(.scan-sheet-expanded) .scan-info-sheet>#saveWineBtn{opacity:0;pointer-events:none}
.scan-capture-mode .scan-sheet-handle{
  appearance:none;display:grid;width:100%;grid-template-columns:1fr;justify-items:center;gap:3px;border:0;background:transparent;color:var(--wine);padding:0 4px 14px;cursor:pointer;text-align:center
}
.scan-capture-mode .scan-sheet-handle>span{display:block;width:46px;height:5px;border-radius:999px;background:#d5c8bd;margin:0 0 5px}
.scan-capture-mode .scan-sheet-handle strong{font:700 19px/1.15 var(--serif)}
.scan-capture-mode .scan-sheet-handle small{font:600 11px/1.2 var(--sans);color:var(--muted)}
.scan-capture-mode .edit-panel-head{padding-top:4px}
@keyframes epicaveScanSheetIn{from{transform:translate(-50%,100%)}to{transform:translate(-50%,calc(100% - 112px))}}

@media (max-width:820px){
  .scan-capture-mode .camera-card{margin:0}
  .scan-capture-mode .scan-frame{top:39%;width:86vw;height:min(60vh,650px);height:min(60dvh,650px);max-width:520px}
  .scan-capture-mode .scan-frame:before,.scan-capture-mode .scan-frame:after{width:68px;height:68px}
  .scan-capture-mode .camera-actions{bottom:130px;width:min(390px,88vw)}
  .scan-capture-mode .detect-badge{bottom:220px;font-size:11px}
  .scan-capture-mode .scan-info-sheet{width:100vw;border-radius:24px 24px 0 0;padding-left:16px;padding-right:16px;max-height:70dvh}
}
@media (max-width:430px){
  .scan-capture-mode .scan-frame{top:38%;width:88vw;height:min(57dvh,590px)}
  .scan-capture-mode .camera-actions{bottom:126px}
  .scan-capture-mode .detect-badge{bottom:214px}
}
.scan-capture-mode.scan-sheet-expanded .camera-actions,
.scan-capture-mode.scan-sheet-expanded .detect-badge{opacity:0;pointer-events:none;transition:opacity .18s ease}
.scan-capture-mode.scan-sheet-expanded .scan-sheet-handle strong,
.scan-capture-mode.scan-sheet-expanded .scan-sheet-handle small{display:none}
.scan-capture-mode.scan-sheet-expanded .scan-sheet-handle{padding-bottom:8px}

/* Epicave V2.1.0 — photos de plats cohérentes, icône scanner et logo mobile */
@media (max-width:820px){.scan-icon-big svg{width:27px;height:27px}}


/* Epicave V2.1.1 — courbe, en-têtes mobiles, notes personnelles et recherche externe */
.wine-label-rating{position:absolute;z-index:4;left:50%;bottom:2px;transform:translateX(-50%);display:block;white-space:nowrap;color:#c8953f;font-size:7px;line-height:1;letter-spacing:-.35px;text-shadow:0 1px 2px rgba(45,18,18,.7);pointer-events:none}
.wine-bottle.small .wine-label-rating{font-size:6px;bottom:1px}
.personal-wine-rating-panel{margin-top:0}
.wine-rating-stars{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px;margin:2px 0 18px}
.wine-rating-stars input{position:absolute;opacity:0;pointer-events:none}
.wine-rating-stars label{cursor:pointer;color:#ded3c8;font-size:36px;line-height:1;transition:transform .15s,color .15s;text-shadow:0 1px 1px rgba(70,32,20,.08)}
.wine-rating-stars label:hover{transform:translateY(-1px)}
.wine-rating-stars input:checked~label,.wine-rating-stars label:hover,.wine-rating-stars label:hover~label{color:#c99743}
.external-search-panel{min-height:280px}
.external-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:20px}
.external-search-form .input{margin:0}
.external-search-loading{display:grid;place-items:center;text-align:center;min-height:220px;color:#614942}
.external-search-loading p{margin:5px 0 0;color:var(--muted)}
.external-search-spinner{width:38px;height:38px;border-radius:50%;border:4px solid #eadfd4;border-top-color:var(--wine);animation:spin .8s linear infinite;margin-bottom:12px}
@keyframes spin{to{transform:rotate(360deg)}}
.external-wine-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;padding:22px;border-radius:20px;background:#fffaf5;border:1px solid #eadfd4}
.external-wine-bottle{display:grid;place-items:center;min-height:280px}.external-wine-bottle .wine-bottle{width:105px;height:265px}
.external-wine-main h2{font:700 34px/1 var(--serif);color:#4b1820;margin:5px 0 4px}.external-wine-cuvee{font:21px var(--serif);color:#8b654f;margin:0 0 16px}
.external-wine-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.external-wine-facts span{padding:10px 12px;border-radius:12px;background:white;border:1px solid #eee2d8;color:#66534e}.external-wine-facts strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#9a8178;margin-bottom:3px}.external-wine-tags{margin-top:12px}.external-search-actions{margin-top:18px}.external-search-note{font-size:12px;color:var(--muted);margin:12px 0 0}.external-search-empty{margin-top:12px}
@media (max-width:820px){
  .page-cave .cave-heading,.page-recommendations .content-heading,.page-profile .content-heading{position:relative;overflow:hidden;border-radius:24px;margin:8px 0 18px!important;padding:22px 20px!important;min-height:116px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(90deg,rgba(49,5,18,.91),rgba(70,9,27,.57),rgba(70,9,27,.22)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1200") center/cover;box-shadow:var(--shadow-sm)}
  .page-cave .cave-heading .page-title,.page-recommendations .content-heading .page-title,.page-profile .content-heading .page-title{color:#e1b665!important;font-size:34px!important;margin:0!important;padding:0!important;background:transparent!important;text-shadow:0 2px 10px rgba(37,9,17,.34)!important}
  .page-cave .cave-heading .page-sub,.page-recommendations .content-heading .page-sub,.page-profile .content-heading .page-sub{color:#f2ded6!important;margin:7px 0 0!important;padding:0!important}
  .external-search-form{grid-template-columns:1fr}.external-search-form .btn{width:100%}
  .external-wine-card{grid-template-columns:1fr;padding:16px}.external-wine-bottle{min-height:210px}.external-wine-bottle .wine-bottle{width:82px;height:208px}.external-wine-main h2{font-size:28px}.external-wine-facts{grid-template-columns:1fr 1fr}
}
@media (max-width:430px){.external-wine-facts{grid-template-columns:1fr}.wine-rating-stars label{font-size:32px}}


/* Epicave V2.1.2 — fiche vin et édition mobile */
.mobile-edit-label{display:none}
@media (max-width:820px){
  .wine-detail-hero .wine-back,
  .wine-detail-hero .detail-edit-btn{top:14px;width:98px;height:34px;min-width:98px;padding:0 9px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1}
  .wine-detail-hero .wine-back{left:18px}
  .wine-detail-hero .detail-edit-btn{right:18px}
  .page-wine .wine-detail-hero,
  .page-wine .detail-curve-panel,
  .page-wine .wine-equal-panels,
  .page-wine .wine-rating-panel,
  .page-wine .storage-panel-below,
  .page-wine .wine-detail-actions{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
  .page-wine input,.page-wine textarea,.page-wine select{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
  .page-scan .mobile-edit-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:8px auto 2px;padding:0 12px;width:100%}
  .page-scan .mobile-edit-label img{display:block;width:auto;height:auto;max-width:112px;max-height:150px;object-fit:contain;border:0;border-radius:5px;background:transparent;box-shadow:none}
  .page-scan .mobile-edit-label-btn{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 11px;border:1px solid rgba(101,13,37,.16);border-radius:10px;background:#fffdfa;color:var(--wine);font-size:10px;font-weight:800;box-shadow:0 3px 10px rgba(62,15,26,.07);cursor:pointer}
  .page-scan .mobile-edit-label-empty{min-height:42px}
  .page-scan .mobile-edit-label + .scan-info-sheet{margin-top:2px}
}


/* Epicave V2.1.3 — avis, fiche vin, panneaux mobiles et scanner par glissement */
.personal-wine-rating-panel{margin-top:16px!important}
.cave-card .wine-label-rating{
  z-index:8;
  left:50%;
  top:auto;
  bottom:6px;
  transform:translateX(-50%);
  min-width:max-content;
  padding:1px 3px;
  border-radius:4px;
  background:rgba(255,253,249,.92);
  color:#c28b2f;
  font-size:9px;
  letter-spacing:-.35px;
  text-shadow:0 1px 1px rgba(255,255,255,.95),0 1px 2px rgba(50,22,12,.18)
}
@media (min-width:821px){
  .wine-detail-hero .wine-back,
  .wine-detail-hero .detail-edit-btn{
    top:18px;
    width:116px;
    min-width:116px;
    height:38px;
    padding:0 12px;
    box-sizing:border-box;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    line-height:1
  }
  .wine-detail-hero .wine-back{left:22px}
  .wine-detail-hero .detail-edit-btn{right:22px}
}
.scan-capture-mode .scan-sheet-handle{cursor:ns-resize;touch-action:none;user-select:none;-webkit-user-select:none}
.scan-capture-mode .scan-sheet-handle>span{width:52px;height:5px;background:#cbbcaf}
@media (max-width:820px){
  .page-cave .page,.page-recommendations .page,.page-profile .page{position:relative}
  .page-cave .topbar,.page-recommendations .topbar,.page-profile .topbar{
    position:absolute;
    z-index:35;
    top:10px;
    right:14px;
    width:auto;
    min-height:0;
    margin:0;
    padding:0
  }
  .page-cave .cave-heading,.page-recommendations .content-heading,.page-profile .content-heading{
    width:auto;
    min-height:164px;
    margin:0 -14px 18px!important;
    padding:58px 20px 26px!important;
    border-radius:0 0 24px 24px!important;
    justify-content:center;
    background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
    box-shadow:var(--shadow)!important
  }
  .page-cave .cave-heading .page-title,.page-recommendations .content-heading .page-title,.page-profile .content-heading .page-title{font-size:35px!important;color:#e1b665!important}
  .cave-card .wine-label-rating{font-size:9px;bottom:5px}
}


/* Epicave V2.1.4 — dialogues internes à la place des fenêtres natives du navigateur */
.site-dialog-wrap,.site-notice-wrap{position:fixed;inset:0;z-index:3600;display:grid;place-items:center;padding:22px;background:rgba(42,5,17,.22);opacity:0;transition:opacity .18s ease}
.site-dialog-wrap.show,.site-notice-wrap.show{opacity:1}
.site-dialog{width:min(100%,430px);padding:27px 26px 24px;border-radius:24px;background:rgba(255,253,249,.99);border:1px solid rgba(199,154,86,.42);box-shadow:0 22px 58px rgba(54,12,25,.3);text-align:center;color:var(--ink);transform:translateY(10px) scale(.985);transition:transform .18s ease}
.site-dialog-wrap.show .site-dialog{transform:translateY(0) scale(1)}
.site-dialog-icon{width:48px;height:48px;margin:0 auto 13px;border-radius:50%;display:grid;place-items:center;background:#f5e7cc;border:1px solid #d7ad6c;color:#a86e2c;font:700 25px/1 var(--serif)}
.site-dialog h2{margin:0;color:var(--wine);font:700 27px/1.08 var(--serif)}
.site-dialog p{margin:10px auto 0;max-width:350px;color:var(--muted);line-height:1.45}
.site-dialog-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
.site-dialog-actions .btn{min-width:132px}
.site-dialog-danger{background:linear-gradient(135deg,#7c1832,#591020)}
.site-dialog-prompt{text-align:left}
.site-dialog-prompt .site-dialog-icon,.site-dialog-prompt h2,.site-dialog-prompt>p{text-align:center}
.site-dialog-prompt .site-dialog-icon{margin-left:auto;margin-right:auto}
.site-dialog-prompt .field{margin-top:20px}
.site-dialog-inline-error{min-height:18px;margin-top:6px;color:#9a2d40;font-size:12px}
.site-notice-wrap{pointer-events:none;background:rgba(42,5,17,.12)}
.site-notice{min-width:230px;max-width:min(88vw,420px);padding:23px 28px;border-radius:22px;background:rgba(255,253,249,.99);border:1px solid rgba(199,154,86,.4);box-shadow:0 18px 46px rgba(54,12,25,.24);text-align:center;color:var(--wine);transform:translateY(8px) scale(.985);transition:transform .18s ease}
.site-notice-wrap.show .site-notice{transform:translateY(0) scale(1)}
.site-notice strong{display:block;font:700 25px/1.15 var(--serif);color:var(--wine-2)}
.site-notice span{display:block;margin-top:7px;color:var(--muted);font-size:14px;line-height:1.35}
@media(max-width:520px){.site-dialog{padding:24px 18px 20px}.site-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.site-dialog-actions .btn{min-width:0;padding-inline:12px}}

/* Epicave V2.1.9 — titres dorés et ajustements visuels */
.hero-brand-mobile .brand-name,.sidebar .brand-name{color:#e1b665}

/* Epicave V2.1.11 — note visible sous la bouteille dans Ma cave */
.wine-label-rating{display:none!important}
.cave-card .cave-rating{
  display:block;
  width:100%;
  margin:1px auto 8px;
  text-align:center;
  color:#c99743;
  font:700 19px/1 var(--serif);
  letter-spacing:1px;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 2px 5px rgba(95,56,18,.18);
  pointer-events:none;
}
@media (max-width:820px){
  .cave-card .cave-rating{
    margin:0 auto 7px;
    font-size:18px;
    letter-spacing:.8px;
  }
}


/* Epicave V2.1.12 — notes contextuelles et conservation détaillée */
.cave-card .cave-rating{
  margin:5px 0 9px;
  width:auto;
  text-align:left;
  color:#c99743;
  font:700 19px/1 var(--serif);
  letter-spacing:1px;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 2px 5px rgba(95,56,18,.14)
}
.opening-rating{
  margin-top:4px;
  color:#c99743;
  font:700 18px/1 var(--serif);
  letter-spacing:1px;
  text-shadow:0 1px 0 rgba(255,255,255,.9)
}
.detail-origin{margin:8px 0 4px;color:#f0ded6}
.detail-rating{
  display:inline-block;
  margin:4px 0 10px;
  color:#efc875;
  font:700 23px/1 var(--serif);
  letter-spacing:1.5px;
  text-shadow:0 2px 5px rgba(34,8,16,.34)
}
.detail-rate-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:5px 0 10px;
  padding:7px 12px;
  border:1px solid rgba(232,201,141,.7);
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#efc875;
  font-weight:800;
  cursor:pointer
}
.detail-rate-btn:hover{background:rgba(255,255,255,.15)}
.storage-panel-below .storage{align-items:stretch}
.storage-panel-below .storage ul{gap:8px}
.storage-panel-below .storage li{line-height:1.4}
@media (max-width:820px){
  .cave-card .cave-rating{font-size:17px;margin:4px 0 8px;text-align:left}
  .detail-rating{font-size:21px;margin-bottom:8px}
  .detail-rate-btn{font-size:11px;padding:6px 10px}
  .storage-panel-below .storage{grid-template-columns:88px 1fr}
}


/* Epicave V2.1.13 — filtre 4★+ et statut de maturité */
.rating-filter-chip{color:#8a642b}
.rating-filter-chip.active{color:#fff}

/* Epicave V2.1.15 — alignement bas des informations dans Ma cave */
.cave-card .cave-footer{
  margin-top:auto!important;
  width:100%;
}


/* Epicave V2.1.20 — emplacements et conservation idéale */
.profile-card-wide>.locations-title{margin-top:0!important}
.location-chip{gap:8px;padding-right:7px}
.location-delete{
  width:24px;
  height:24px;
  flex:0 0 24px;
  display:inline-grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(101,13,37,.09);
  color:var(--wine);
  font-size:18px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
  transition:.16s ease;
}
.location-delete:hover{background:var(--wine);color:#fff;transform:scale(1.04)}

.storage-list{display:grid!important;gap:8px!important}
.storage-panel-below .storage-item{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:9px 10px!important;
  border:1px solid #eee1d7!important;
  border-radius:13px;
  background:#fffaf5;
}
.storage-item-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#f4e2bd;
  font-size:20px;
  line-height:1;
}
.storage-panel-below .storage-item strong{color:#5b2731}
.storage-location-item{grid-template-columns:38px minmax(0,1fr) auto!important}
.storage-location-copy{min-width:0}
.storage-location-edit{
  border:1px solid rgba(101,13,37,.18);
  border-radius:11px;
  background:#fff;
  color:var(--wine);
  padding:8px 11px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.storage-location-edit:hover{background:#fff5ef}

@media(max-width:520px){
  .storage-panel-below .storage-item{grid-template-columns:34px minmax(0,1fr);padding:8px!important}
  .storage-item-icon{width:34px;height:34px;font-size:18px}
  .storage-location-item{grid-template-columns:34px minmax(0,1fr) auto!important}
  .storage-location-edit{padding:7px 9px;font-size:11px}
}


/* Epicave V2.1.21 — icône d’emplacement professionnelle */
.epicave-location-icon{
  width:21px;
  height:21px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.location-storage-icon{
  color:#9b6a2f;
}
.location-storage-icon .epicave-location-icon{
  width:22px;
  height:22px;
}
.site-dialog-icon .epicave-location-icon{
  width:24px;
  height:24px;
}




/* Epicave V2.1.23 — taille historique des étiquettes + choix photo mobile */
.wine-bottle-label.wine-bottle-label-photo img{
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.mobile-edit-photo-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
@media(max-width:430px){
  .mobile-edit-photo-actions{width:100%;gap:7px}
  .mobile-edit-photo-actions .mobile-edit-label-btn{flex:1 1 135px;max-width:190px;white-space:nowrap}
}


/* Epicave V2.1.24 — rendu étiquette V2.1.10 strict + maturité */
.wine-bottle-label.wine-bottle-label-photo img{
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.status.decline{
  background:#efd7d8;
  color:#8d2635;
}


/* Epicave V2.1.25 — harmonisation photos, cave et fiche vin */
/* La zone historique V2.1.10 reste inchangée. La photo réelle garde une
   marge interne afin que le papier ne puisse jamais dépasser visuellement
   le corps de la bouteille. */
.wine-bottle-label.wine-bottle-label-photo img{
  left:7%!important;
  right:auto!important;
  top:4%!important;
  bottom:auto!important;
  width:86%!important;
  height:92%!important;
  max-width:86%!important;
  max-height:92%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}

/* Le badge de maturité peut maintenant contenir le temps restant : la
   bouteille commence plus bas et ne passe plus sous le badge. */
.cave-card .wine-bottle{margin-top:34px!important}
@media(max-width:820px){.cave-card .wine-bottle{margin-top:32px!important}}

.status.gold{background:#f3dfaa;color:#765018}
.status.urgent{background:#f3d4d8;color:#9b2638}
.status.decline{background:#292727;color:#fff}
.status.green{background:#dceadc;color:#3f6548}
.cave-card>.status.gold{box-shadow:0 4px 12px rgba(144,96,22,.18)}
.cave-card>.status.urgent{box-shadow:0 4px 12px rgba(142,31,50,.14)}
.cave-card>.status.decline{box-shadow:0 4px 12px rgba(20,20,20,.16)}
.cave-card>.status.green{box-shadow:0 4px 12px rgba(52,100,62,.14)}
.rating-filter-chip{letter-spacing:.02em}

/* Les actions de la fiche sont sur une seule ligne : bouton à gauche,
   couleur et quantité à droite et parfaitement alignés verticalement. */
.wine-detail-hero{grid-template-rows:auto auto}
.detail-info-column{min-width:0}
.detail-hero-actions{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  align-items:center;
  gap:25px;
  margin-top:4px;
}
.detail-hero-actions .detail-consume-btn{position:static!important;margin:0 auto!important}
.detail-hero-actions .detail-metrics{margin:0 0 0 18px!important;align-items:center}
@media(max-width:820px){
  .detail-hero-actions{grid-template-columns:95px minmax(0,1fr);gap:14px}
  .detail-hero-actions .detail-metrics{margin-left:10px!important;gap:7px}
  .detail-hero-actions .detail-pill{padding:7px 9px}
}

/* Caméra de remplacement : le bouton Annuler reste lisible sans gêner le
   déclencheur central. */
.edit-camera-cancel{position:absolute;left:0;bottom:0;z-index:3;padding:8px 11px!important;font-size:11px!important}


/* Epicave V2.1.26 — conservation en fond barriques et gestion photo web */
.storage-panel-below{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(110deg,rgba(61,7,24,.94),rgba(92,13,37,.82),rgba(74,9,29,.72)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=78&w=1600") center/cover no-repeat!important;
  color:#fff;
  box-shadow:0 16px 38px rgba(62,15,26,.18);
}
.storage-panel-below>h2{color:#e7bd72!important;position:relative;z-index:1}
.storage-panel-below>.panel-sub{color:#f1ddd5!important;position:relative;z-index:1}
.storage-panel-below .storage{display:block!important;position:relative;z-index:1}
.storage-panel-below .storage-photo{display:none!important}
.storage-panel-below .storage-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}
.storage-panel-below .storage-item{
  background:rgba(255,253,249,.91)!important;
  border:1px solid rgba(232,201,141,.28)!important;
  box-shadow:0 7px 18px rgba(34,4,14,.12);
  backdrop-filter:blur(7px);
}
.storage-panel-below .storage-item-icon{background:rgba(244,226,189,.94)}
.storage-panel-below .storage-location-item{grid-column:1/-1}

@media(max-width:820px){
  .storage-panel-below .storage-list{grid-template-columns:1fr}
  .storage-panel-below .storage-location-item{grid-column:auto}
}

@media(min-width:821px){
  .desktop-label-actions{
    position:absolute;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:4;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
  }
  .desktop-label-actions .desktop-label-change{position:relative!important;right:auto!important;bottom:auto!important}
  .desktop-label-delete{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 10px;
    border-radius:10px;
    border:1px solid rgba(146,47,58,.2);
    background:rgba(255,253,249,.95);
    color:#963443;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 4px 12px rgba(62,15,26,.1);
  }
}
.mobile-edit-label-delete{color:#963443!important;border-color:rgba(146,47,58,.2)!important}


/* Epicave V2.1.27 — photos manuelles, étiquette simulée et lisibilité */
/* L’étiquette simulée est légèrement élargie, sans atteindre la largeur d’une vraie photo. */
.wine-bottle-label-simulated .wine-bottle-label-text{
  width:72%!important;
  max-width:72%!important;
}
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  width:72%!important;
  max-width:72%!important;
}

/* Sur mobile/PWA, une bouteille sans photo conserve toujours son étiquette simulée sur la fiche vin. */
@media(max-width:820px){
  .page-wine .wine-bottle-label-simulated{display:flex!important;background:transparent!important}
  .page-wine .wine-bottle-label-simulated .wine-bottle-label-text{display:flex!important;visibility:visible!important;opacity:1!important}
}

/* Les valeurs de Conservation idéale restent sombres sur les cartes claires. */
.storage-panel-below .storage-item{color:#55433d!important}
.storage-panel-below .storage-item>span:not(.storage-item-icon),
.storage-panel-below .storage-location-copy{color:#55433d!important}
.storage-panel-below .storage-item strong{color:#6a1028!important}


/* Epicave V2.1.28 — étiquette simulée plus proche d’une vraie photo */
.wine-bottle-label-simulated .wine-bottle-label-text{
  width:78%!important;
  max-width:78%!important;
}
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  width:78%!important;
  max-width:78%!important;
}


/* Epicave V2.1.29 — import photo intact + en-tête modification sans cartouche */
.page-scan .edit-wine-heading{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding-left:0!important;
  padding-right:0!important;
  margin-left:0!important;
}

/* Les photos importées restent entièrement visibles dans la zone d'étiquette. */
.wine-bottle-label.wine-bottle-label-photo img{
  object-fit:contain!important;
  object-position:center center!important;
}


/* Epicave V2.1.30 — photos scanner centrées, sans rognage */
.wine-bottle-label.wine-bottle-label-photo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.wine-bottle-label.wine-bottle-label-photo img{
  object-fit:contain!important;
  object-position:50% 50%!important;
  transform:none!important;
}


/* Epicave V2.1.32 — apogée sur deux lignes en mobile/PWA */
.status .maturity-label-main,
.status .maturity-label-remaining{
  display:inline;
}
.status .maturity-label-remaining::before{
  content:" · ";
}

@media (max-width: 760px){
  .cave-card .status .maturity-label-main,
  .cave-card .status .maturity-label-remaining{
    display:block;
    line-height:1.12;
  }
  .cave-card .status .maturity-label-remaining{
    margin-top:3px;
    font-size:.88em;
    font-weight:600;
    white-space:nowrap;
  }
  .cave-card .status .maturity-label-remaining::before{
    content:"";
  }
}


/* Epicave V2.1.33 — apogée réellement sur deux lignes en mobile/PWA */
@media (max-width:760px){
  .cave-card > .status.gold{
    display:inline-flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
    line-height:1.08!important;
  }
  .cave-card > .status.gold .maturity-label-main,
  .cave-card > .status.gold .maturity-label-remaining{
    display:block!important;
    width:100%!important;
    white-space:nowrap!important;
  }
  .cave-card > .status.gold .maturity-label-remaining{
    margin-top:3px!important;
    font-size:.86em!important;
    font-weight:600!important;
  }
  .cave-card > .status.gold .maturity-label-remaining::before{
    content:""!important;
  }
}


/* Epicave V2.1.34 — SOURCE UNIQUE DE VÉRITÉ POUR LES ÉTIQUETTES
   Référence photo : 1182 × 1616 (ratio 0,7314356).
   Import, caméra et rendu bouteille utilisent désormais le même gabarit. */

/* Le cadre caméra a exactement le ratio du fichier sauvegardé. */
.scan-frame{
  aspect-ratio:1182 / 1616!important;
}

/* Une vraie photo occupe toute la zone disponible mais ne peut jamais
   déborder : aucun retrait interne, aucun zoom, aucun crop. */
.wine-bottle-label.wine-bottle-label-photo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:transparent!important;
}
.wine-bottle-label.wine-bottle-label-photo img{
  position:absolute!important;
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  transform:none!important;
  background:transparent!important;
}

/* Le gabarit photo 1182×1616 remplit visuellement ~91 % de la largeur
   du cadre historique de la bouteille. L'étiquette simulée suit ce rendu. */
.wine-bottle-label-simulated{
  background:transparent!important;
}
.wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  left:50%!important;
  right:auto!important;
  top:0!important;
  bottom:0!important;
  width:91%!important;
  max-width:91%!important;
  height:100%!important;
  margin:0!important;
  transform:translateX(-50%)!important;
  overflow:hidden!important;
  background:#f3eadc!important;
}

/* L'aperçu d'une photo normalisée montre toujours le fichier en entier. */
.camera-preview.camera-preview-camera,
.camera-preview.camera-preview-import{
  object-fit:contain!important;
  object-position:50% 50%!important;
  background:#080607!important;
}


/* Epicave V2.1.35 — harmonisation largeur vraies photos / étiquette simulée
   La largeur de référence devient celle de l'étiquette simulée (91 %).
   Les vraies photos importées ou photographiées sont contenues dans cette
   même largeur visuelle afin d'éviter tout débordement latéral. */
.wine-bottle-label.wine-bottle-label-photo{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:transparent!important;
}

.wine-bottle-label.wine-bottle-label-photo img{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:91%!important;
  height:100%!important;
  max-width:91%!important;
  max-height:100%!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  transform:translate(-50%,-50%)!important;
  background:transparent!important;
}

/* On garde explicitement la même largeur pour la version simulée. */
.wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  width:91%!important;
  max-width:91%!important;
}


/* Epicave V2.1.36 — les vraies photos utilisent exactement la même zone utile
   que l’étiquette simulée. La largeur visuelle de référence est donc 91 %,
   mais on l’applique via la boîte du conteneur, pas via un redimensionnement
   absolu de l’image, pour éviter tout décalage ou dépassement. */
.wine-bottle-label.wine-bottle-label-photo{
  position:absolute!important;
  left:var(--label-left)!important;
  right:var(--label-right)!important;
  top:var(--label-top)!important;
  height:var(--label-height)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding-left:6.5%!important;
  padding-right:6.5%!important;
  background:transparent!important;
}

.wine-bottle-label.wine-bottle-label-photo img{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0 auto!important;
  padding:0!important;
  display:block!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  background:transparent!important;
}

/* Réaffirmation explicite du gabarit simulé de référence. */
.wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle-label-photo.label-photo-missing .wine-bottle-label-fallback{
  width:91%!important;
  max-width:91%!important;
  left:50%!important;
  transform:translateX(-50%)!important;
}


/* Epicave V2.1.37 — région sous millésime / appellation */
.wine-region{
  margin-top:2px;
  font-size:.92em;
  line-height:1.2;
  color:#765d55;
}
.cave-card .wine-region,
.opening-card-grid .wine-region{
  min-height:1.15em;
}


/* Epicave V2.1.38 — scan IA pur, champs obligatoires et aperçu caméra stable */
.required-mark{color:var(--wine);font-weight:800}
.wine-equal-panels-single{display:block!important}
.wine-equal-panels-single>.equal-panel{width:100%!important}

/* Le cadre et la photo sauvegardée ont strictement le même ratio. */
.scan-capture-mode .scan-frame{
  width:min(68vw, calc(60dvh * .7314356), 520px)!important;
  height:auto!important;
  aspect-ratio:1182 / 1616!important;
}
@media (max-width:820px){
  .scan-capture-mode .scan-frame{
    width:min(86vw, calc(57dvh * .7314356), 430px)!important;
    height:auto!important;
    aspect-ratio:1182 / 1616!important;
  }
}
@media (max-width:430px){
  .scan-capture-mode .scan-frame{
    width:min(88vw, calc(55dvh * .7314356), 380px)!important;
    height:auto!important;
    aspect-ratio:1182 / 1616!important;
  }
}
.camera-freeze{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  z-index:1;
}


/* Epicave V3.18 — pied de page mobile uniquement sur Contact */
.mobile-contact-footer{display:none}

@media (max-width:820px){
  .page-recommendations .mobile-contact-footer{
    display:block;
    width:max-content;
    max-width:100%;
    margin:20px auto calc(84px + env(safe-area-inset-bottom));
    padding:10px 15px;
    border:1px solid rgba(105,65,52,.12);
    border-radius:12px;
    background:rgba(255,255,255,.94);
    box-shadow:0 6px 18px rgba(62,15,26,.08);
    color:#705f59;
    font-size:13px;
    text-align:center;
  }
  .page-recommendations .mobile-contact-footer a{
    color:var(--wine);
    font-weight:700;
    text-decoration:none;
  }
  .page-recommendations .mobile-contact-footer .footer-sep{
    padding:0 4px;
    color:#aa9187;
  }
}


/* Epicave V3.18 — guide de classement des vins dans Mon profil */
.maturity-guide-card{
  padding-bottom:22px;
}
.maturity-guide-card>h2{
  margin-bottom:16px;
}
.maturity-guide-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.maturity-guide-item{
  min-width:0;
  padding:14px 15px;
  border:1px solid #eadfd4;
  border-radius:14px;
  background:rgba(255,255,255,.62);
}
.maturity-guide-item .status{
  margin:0 0 9px;
}
.maturity-guide-item p{
  margin:0;
  color:#62504b;
  font-size:14px;
  line-height:1.5;
}
.maturity-guide-note{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid #eadfd4;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
@media(max-width:820px){
  .maturity-guide-list{
    grid-template-columns:1fr;
    gap:10px;
  }
  .maturity-guide-item{
    padding:13px 14px;
  }
}


/* Epicave V3.18 — gestion directe des emplacements dans Ajouter/Modifier un vin */
.wine-location-picker{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.wine-location-options{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.wine-location-chip{
  appearance:none;
  border:1px solid #e7d9cf;
  border-radius:999px;
  background:#fff9f2;
  color:#62453f;
  padding:9px 13px;
  font:700 13px/1.15 inherit;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.wine-location-chip:hover{
  border-color:#c89a75;
}
.wine-location-chip.selected{
  border-color:var(--wine);
  background:var(--wine);
  color:#fff;
  box-shadow:0 4px 12px rgba(75,15,32,.16);
}
.wine-location-add{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
}
.wine-location-add .input{
  margin:0;
}
.wine-location-help{
  margin:0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.4;
}
@media(max-width:620px){
  .wine-location-add{
    grid-template-columns:1fr;
  }
  .wine-location-add .btn{
    width:100%;
  }
}


/* Epicave V3.18 — messages œnologiques pendant l'analyse IA */
.detect-badge.scan-message-pop{
  animation:scanMessagePop .28s ease;
}
@keyframes scanMessagePop{
  0%{opacity:.35;transform:translateX(-50%) translateY(3px)}
  100%{opacity:1;transform:translateX(-50%) translateY(0)}
}


/* Epicave V3.18 — reprise photo sans relancer l'analyse */
.retake-circle-btn{
  position:relative;
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(20,12,14,.58);
  color:#fff;
  font-size:25px;
  line-height:1;
  font-weight:500;
  backdrop-filter:blur(8px);
  cursor:pointer;
}
.retake-circle-btn:hover{
  background:rgba(72,18,31,.78);
}
.retake-circle-btn[hidden]{
  display:none!important;
}


/* Epicave V3.18 — troisième ligne de filtres : régions FR / pays étrangers */
.origin-filter-row{
  margin-top:-2px;
}
.origin-filter-row .chip[data-origin-kind="region"]{
  border-style:solid;
}
.origin-filter-row .chip[data-origin-kind="country"]{
  border-style:solid;
}

.scan-ai-diagnostic{grid-column:1/-1;margin:0 0 14px;padding:11px 13px;border:1px solid rgba(139,38,54,.22);border-radius:13px;background:#fff3f5;color:#7c1f30;font-size:12px;line-height:1.45;overflow-wrap:anywhere}


/* Epicave V3.18 — scan holographique premium pendant l'analyse IA */
.ai-holo-map{
  position:absolute;
  inset:0;
  z-index:5;
  overflow:hidden;
  border-radius:18px;
  pointer-events:none;
  opacity:0;
  transform:scale(.992);
  transition:opacity .18s ease,transform .18s ease;
  background:
    radial-gradient(circle at 50% 50%,rgba(224,181,102,.05),transparent 48%),
    linear-gradient(180deg,rgba(79,18,34,.08),rgba(16,3,8,.12));
}
.ai-holo-map.active{opacity:1;transform:scale(1)}
.ai-holo-map.leaving{opacity:0;transform:scale(1.006)}
.ai-holo-halo{
  position:absolute;
  inset:0;
  border:1px solid rgba(234,198,117,.18);
  border-radius:18px;
  box-shadow:
    inset 0 0 36px rgba(236,196,111,.08),
    0 0 0 1px rgba(255,233,181,.04);
}
.ai-holo-links{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.ai-holo-link{
  vector-effect:non-scaling-stroke;
  stroke:rgba(237,199,118,.38);
  stroke-width:.32;
  stroke-linecap:round;
  stroke-dasharray:1.8 2.4;
  filter:drop-shadow(0 0 1.6px rgba(242,199,112,.48));
  animation:aiHoloLink 2.6s linear infinite;
}
.ai-holo-link-1{animation-delay:-.45s}
.ai-holo-link-2{animation-delay:-.9s}
.ai-holo-link-3{animation-delay:-1.35s}
.ai-holo-node{
  position:absolute;
  width:6px;
  height:6px;
  margin:-3px 0 0 -3px;
  border-radius:50%;
  background:#f0ca7b;
  box-shadow:
    0 0 0 1px rgba(255,239,204,.34),
    0 0 10px rgba(241,198,112,.85),
    0 0 18px rgba(129,36,55,.45);
  opacity:.5;
  animation:aiHoloNode 1.9s ease-in-out infinite;
}
.ai-holo-node::before{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  border:1px solid rgba(240,202,123,.22);
  animation:aiHoloRipple 2.3s ease-out infinite;
}
.ai-holo-node-1{animation-delay:-.35s}
.ai-holo-node-2{animation-delay:-.7s}
.ai-holo-node-3{animation-delay:-1.05s}
.ai-holo-node-4{animation-delay:-1.4s}

.ai-holo-scan{
  position:absolute;
  left:8%;
  right:8%;
  height:3px;
  top:12%;
  background:linear-gradient(90deg,transparent,rgba(255,234,189,.95),rgba(240,198,111,.98),transparent);
  box-shadow:
    0 0 8px rgba(242,199,112,.95),
    0 0 22px rgba(233,189,104,.45);
  animation:aiHoloSweep 2.4s cubic-bezier(.33,0,.2,1) infinite;
}
.ai-holo-scan::before{
  content:"";
  position:absolute;
  inset:-12px 0;
  background:linear-gradient(180deg,transparent,rgba(242,199,112,.09),transparent);
}
.ai-holo-scan-secondary{
  animation-duration:3.1s;
  animation-delay:-1.15s;
  opacity:.42;
  transform:scaleX(.86);
}

.scan-frame.scan-analysis-active .scan-hint{
  opacity:0;
  transition:opacity .15s ease;
}

@keyframes aiHoloSweep{
  0%{top:12%;opacity:0}
  10%{opacity:1}
  78%{opacity:1}
  100%{top:86%;opacity:0}
}
@keyframes aiHoloLink{
  from{stroke-dashoffset:0;opacity:.22}
  50%{opacity:.68}
  to{stroke-dashoffset:-12;opacity:.22}
}
@keyframes aiHoloNode{
  0%,100%{transform:scale(.74);opacity:.4}
  45%{transform:scale(1.22);opacity:1}
  70%{transform:scale(.92);opacity:.68}
}
@keyframes aiHoloRipple{
  0%{transform:scale(.5);opacity:.65}
  80%,100%{transform:scale(1.45);opacity:0}
}

@media (prefers-reduced-motion:reduce){
  .ai-holo-scan,.ai-holo-link,.ai-holo-node,.ai-holo-node::before{
    animation:none!important;
  }
  .ai-holo-map.active{opacity:.82}
}

/* Epicave V3.19 — doublons et notation après dégustation */
.duplicate-wine-dialog,.consumed-rating-dialog{max-width:520px}
.duplicate-wine-actions{flex-wrap:wrap}
.duplicate-wine-actions .btn{flex:1 1 190px}
.duplicate-wine-cancel{margin-top:12px;border:0;background:transparent;color:var(--muted,#766b65);text-decoration:underline;cursor:pointer}
.consumed-rating-stars{display:flex;flex-direction:row-reverse;justify-content:center;gap:8px;margin:18px 0 22px}
.consumed-rating-stars input{position:absolute;opacity:0;pointer-events:none}
.consumed-rating-stars label{font-size:40px;line-height:1;color:#d8d0c8;cursor:pointer;transition:transform .15s ease,color .15s ease}
.consumed-rating-stars label:hover,.consumed-rating-stars label:hover~label,.consumed-rating-stars input:checked~label{color:#b79246;transform:translateY(-1px)}
.optional-label{font-weight:400;opacity:.65}


/* Epicave V3.20 — fiabilité du scan et commandes caméra espacées */
.scan-field-confidence{display:inline-flex;vertical-align:middle;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;font:800 10px/1.35 var(--sans);letter-spacing:.01em;white-space:nowrap}
.scan-field-confidence.certain{background:#edf7ef;color:#2d6b3b;border:1px solid #cce6d2}
.scan-field-confidence.estimated{background:#fff4df;color:#8a5b17;border:1px solid #ecd3a5;font-style:italic}
.scan-field-confidence[hidden]{display:none!important}
.scan-capture-mode .camera-actions{width:min(540px,92vw)!important;justify-content:center;position:fixed}
.scan-capture-mode .camera-actions .capture-btn{position:absolute;left:50%;transform:translateX(-50%)}
.scan-capture-mode .camera-actions .torch-btn{margin-right:auto}
.scan-capture-mode .camera-actions .import-btn{margin-left:auto}
.import-btn{width:auto;min-width:72px;padding:0 12px;grid-auto-flow:column;gap:6px;border-radius:24px;font-size:17px}
.import-btn small{font:800 10px/1 var(--sans);color:inherit}
@media(max-width:430px){.scan-capture-mode .camera-actions{width:94vw!important}.import-btn{min-width:68px;padding:0 10px}}

/* Epicave V3.22 — Historique */
.history-home-strip{display:none}
@media(max-width:760px){.history-home-strip{display:flex;margin-bottom:14px}.page-history .topbar{display:none}}
.history-card .status{background:#efe4d5;color:#6a1028}
.wine-detail-actions:not(.delete-only){display:flex;gap:12px}


/* Epicave V3.22 — en-tête Historique aligné sur les autres pages */
.page-history .cave-heading{margin:0 0 22px}
.page-history .cave-heading .page-title,
.page-history .cave-heading .page-sub{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-radius:0!important;
  padding:0!important;
  margin-left:0!important;
}
@media (max-width:820px){
  .page-history .cave-heading{margin:0 0 16px;padding-top:14px}
  .page-history .cave-heading .page-title{margin:0;padding:0 0 3px!important}
  .page-history .cave-heading .page-sub{margin:0;padding:0!important;width:auto}
}


/* Epicave V3.51 — Historique vide pleine largeur */
.page-history .history-grid > .empty{grid-column:1 / -1;width:100%;box-sizing:border-box}

/* Epicave V3.51 — logo web : affichage explicite de la grappe dans la barre latérale */
.sidebar .brand .brand-logo{
  display:block!important;
  width:80px!important;
  height:80px!important;
  min-width:80px!important;
  flex:0 0 80px!important;
  object-fit:contain!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Epicave V3.51 — logo agrandi sur mobile et PWA */
@media (max-width:820px){
  .brand .brand-logo{
    display:block!important;
    width:68px!important;
    height:68px!important;
    min-width:68px!important;
    flex:0 0 68px!important;
    object-fit:contain!important;
  }
}

/* Epicave V3.51 — classement Repas & accords sans répétition de la photo du plat */
.page-meal .pair-results{
  display:grid;
  gap:14px;
  width:100%;
}
.page-meal .pair-card{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 124px!important;
  align-items:center!important;
  gap:20px!important;
  width:100%!important;
  min-height:166px;
  padding:18px 20px!important;
  overflow:hidden;
}
.page-meal .pair-card .pair-main{
  min-width:0;
  width:100%;
}
.page-meal .pair-card .pair-main-head{
  display:grid!important;
  grid-template-columns:92px minmax(0,1fr)!important;
  align-items:center!important;
  gap:20px!important;
}
.page-meal .pair-card .pair-mini-bottle{
  width:92px;
  min-width:92px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.page-meal .pair-card .pair-mini-bottle .wine-bottle{
  width:72px!important;
  height:182px!important;
  margin:0 auto!important;
}
.page-meal .pair-card .wine-title{
  margin-top:6px;
}
.page-meal .pair-card .wine-note{
  max-width:760px;
  margin-bottom:0;
}
.page-meal .pair-card .pair-score{
  position:static!important;
  width:112px!important;
  min-width:112px;
  height:112px!important;
  margin-left:auto;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:50%!important;
  box-sizing:border-box;
}
.page-meal .pair-card .pair-score small{
  display:block;
  max-width:82px;
  margin-top:3px;
  line-height:1.15;
}
.page-meal .pair-card.best{
  min-height:178px;
}

/* Mobile/PWA : carte plus compacte, bouteille à gauche et score en haut à droite. */
@media(max-width:820px){
  .page-meal .pair-results{gap:12px}
  .page-meal .pair-card{
    position:relative!important;
    display:block!important;
    min-height:164px;
    padding:15px 14px!important;
  }
  .page-meal .pair-card .pair-main{
    padding-right:0;
  }
  .page-meal .pair-card .pair-main-head{
    display:grid!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    align-items:center!important;
    gap:12px!important;
    padding-right:64px;
  }
  .page-meal .pair-card .pair-mini-bottle{
    width:68px;
    min-width:68px;
  }
  .page-meal .pair-card .pair-mini-bottle .wine-bottle{
    width:58px!important;
    height:148px!important;
  }
  .page-meal .pair-card .pair-score{
    position:absolute!important;
    top:14px!important;
    right:12px!important;
    width:58px!important;
    min-width:58px!important;
    height:58px!important;
    margin:0!important;
    font-size:17px!important;
  }
  .page-meal .pair-card .pair-score small{
    max-width:48px;
    margin-top:1px;
    font-size:7px!important;
    line-height:1.05;
  }
  .page-meal .pair-card .crown{
    display:inline-flex;
    max-width:calc(100% - 2px);
    white-space:normal;
  }
  .page-meal .pair-card .wine-title{
    padding-right:0;
    font-size:17px;
    line-height:1.15;
  }
  .page-meal .pair-card .wine-meta{
    line-height:1.3;
  }
  .page-meal .pair-card .wine-note{
    margin-top:7px;
    font-size:11px;
    line-height:1.35;
  }
}
@media(max-width:430px){
  .page-meal .pair-card{
    padding:13px 11px!important;
  }
  .page-meal .pair-card .pair-main-head{
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:9px!important;
    padding-right:58px;
  }
  .page-meal .pair-card .pair-mini-bottle{
    width:60px;
    min-width:60px;
  }
  .page-meal .pair-card .pair-mini-bottle .wine-bottle{
    width:52px!important;
    height:134px!important;
  }
  .page-meal .pair-card .pair-score{
    top:12px!important;
    right:9px!important;
    width:54px!important;
    min-width:54px!important;
    height:54px!important;
    font-size:16px!important;
  }
}

/* Epicave V3.51 — score Accord mets-vin plus lisible */
.page-meal .pair-card{
  grid-template-columns:minmax(0,1fr) 154px!important;
}
.page-meal .pair-card .pair-score{
  width:142px!important;
  min-width:142px!important;
  height:118px!important;
  border-radius:24px!important;
  font-size:30px!important;
  line-height:1!important;
  font-weight:800!important;
}
.page-meal .pair-card .pair-score small{
  display:block!important;
  width:auto!important;
  max-width:none!important;
  margin-top:7px!important;
  white-space:nowrap!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:600!important;
}

/* Mobile et PWA */
@media(max-width:820px){
  .page-meal .pair-card .pair-main-head{
    padding-right:82px!important;
  }
  .page-meal .pair-card .pair-score{
    top:13px!important;
    right:10px!important;
    width:76px!important;
    min-width:76px!important;
    height:72px!important;
    border-radius:17px!important;
    font-size:22px!important;
  }
  .page-meal .pair-card .pair-score small{
    margin-top:4px!important;
    font-size:8px!important;
    letter-spacing:-0.15px;
    white-space:nowrap!important;
  }
}
@media(max-width:430px){
  .page-meal .pair-card .pair-main-head{
    padding-right:78px!important;
  }
  .page-meal .pair-card .pair-score{
    top:11px!important;
    right:8px!important;
    width:72px!important;
    min-width:72px!important;
    height:68px!important;
    font-size:21px!important;
  }
  .page-meal .pair-card .pair-score small{
    font-size:7.5px!important;
  }
}

/* Epicave V3.51 — bouton Ajouter à ma cave lisible sur mobile/PWA */
@media(max-width:820px){
  #restoreWine,
  #addExternalWineBtn,
  #saveWineBtn{
    min-width:138px;
    max-width:190px;
    line-height:1.15!important;
    white-space:normal!important;
    text-wrap:balance;
    padding-left:14px!important;
    padding-right:14px!important;
  }
  #restoreWine{min-height:48px}
}

/* Statuts de garde : titre + délai, deux lignes propres. */
.status .maturity-label-main,
.status .maturity-label-remaining{
  display:block;
  white-space:nowrap;
}
.status .maturity-label-remaining{
  margin-top:2px;
  font-size:.78em;
  line-height:1.05;
  font-weight:600;
  opacity:.9;
}

/* Epicave V3.51 — fiche vin web : bouton consommation aligné sur les vignettes */
@media(min-width:821px){
  .detail-hero-actions .detail-consume-btn{
    min-height:44px!important;height:44px!important;padding:0 18px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    box-sizing:border-box!important;white-space:nowrap!important;
  }
  .detail-hero-actions .detail-metrics .detail-pill{
    min-height:44px!important;height:44px!important;display:inline-flex!important;
    align-items:center!important;box-sizing:border-box!important;
  }
}

/* Epicave V3.51 — même verre de vin et même taille visuelle que la pastille couleur */
.detail-consume-btn .consume-wine-icon{
  display:inline-block;
  font-size:1.15em;
  line-height:1;
  margin-right:5px;
  vertical-align:-0.06em;
}

/* Epicave V3.51 — pastilles maturité : statut et délai parfaitement alignés */
.status:has(.maturity-label-main){
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  min-height:46px;
  box-sizing:border-box;
  line-height:1!important;
}
.status .maturity-label-main{
  display:block!important;
  width:100%;
  margin:0!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  text-align:center!important;
}
.status .maturity-label-remaining{
  display:block!important;
  width:100%;
  margin:4px 0 0!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  text-align:center!important;
}

/* Mobile/PWA : toujours exactement deux lignes pour En garde et À l'apogée. */
@media(max-width:820px){
  .status:has(.maturity-label-main){
    min-height:44px;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
  .status .maturity-label-main,
  .status .maturity-label-remaining{
    display:block!important;
    width:100%!important;
    white-space:nowrap!important;
  }
  .status .maturity-label-remaining{
    margin-top:3px!important;
  }
}

/* Epicave V3.51 — la fiche vin conserve le séparateur médian, jamais les vignettes */
.detail-maturity-status{
  display:inline-flex!important;
  flex-direction:row!important;
  width:auto!important;
  min-height:0!important;
  white-space:nowrap!important;
}

/* Epicave V3.51 — aucune puce/séparateur sur les vignettes de maturité.
   L'ancienne règle V2.1.32 ajoutait " · " via ::before. */
.wine-card .status .maturity-label-remaining::before,
.cave-card .status .maturity-label-remaining::before,
.pair-card .status .maturity-label-remaining::before,
.history-card .status .maturity-label-remaining::before{
  content:""!important;
  display:none!important;
}

/* La fiche détaillée conserve son séparateur dans le texte lui-même. */
.detail-maturity-status::before,
.detail-maturity-status::after{
  content:none!important;
}

/* Epicave V3.51 — Repas & accords : maturité sur une seule ligne */
.page-meal .pair-card .meal-maturity-status{
 display:inline-flex!important;flex-direction:row!important;align-items:center!important;
 justify-content:center!important;width:auto!important;min-height:0!important;
 white-space:nowrap!important;line-height:1.1!important;
}
@media(min-width:821px){
 .page-meal .pair-card.best .crown{display:block!important;width:max-content;margin-bottom:8px!important}
 .page-meal .pair-card.best .meal-maturity-status{display:flex!important;width:max-content!important;margin-left:0!important}
}
@media(max-width:820px){
 .page-meal .pair-card .meal-maturity-status{
  display:inline-flex!important;flex-direction:row!important;width:auto!important;
  white-space:nowrap!important;font-size:10px!important;padding-left:9px!important;padding-right:9px!important;
 }
}

/* Epicave V3.51 — cépages dans les caractéristiques gustatives */
.taste-grapes{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(111,21,46,.12);
}
.taste-grapes h3{
  margin:0 0 10px;
  color:#4b0f20;
  font-family:var(--serif);
  font-size:18px;
}
.taste-grape-pills{display:flex;flex-wrap:wrap;gap:8px}
.taste-grape-pill{
  display:inline-flex;align-items:center;
  padding:7px 12px;border-radius:999px;
  background:#6f1530;color:#fff8f1;
  border:1px solid rgba(75,15,32,.16);
  font-size:12px;font-weight:750;line-height:1;
}

/* Epicave V3.51 — panneaux d'avis avec identité photographique bordeaux */
.page-recommendations .feedback-card,
.personal-wine-rating-panel{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:#fff!important;
  background:
    linear-gradient(90deg,rgba(40,8,16,.96),rgba(96,20,40,.80),rgba(73,7,26,.72)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  border:1px solid rgba(216,172,100,.20)!important;
  box-shadow:0 18px 36px rgba(64,9,22,.18)!important;
}
.page-recommendations .feedback-card h2,
.personal-wine-rating-panel h2{color:#e7bd72!important}
.page-recommendations .feedback-card p,
.page-recommendations .feedback-card label,
.page-recommendations .feedback-card legend,
.personal-wine-rating-panel .panel-sub,
.personal-wine-rating-panel .field label{color:#f3e4dc!important}
.page-recommendations .feedback-card .input,
.personal-wine-rating-panel .input{
  background:rgba(255,251,247,.96)!important;
  color:#3d1720!important;
  border-color:rgba(231,189,114,.36)!important;
}
.page-recommendations .feedback-card .rating-stars label,
.personal-wine-rating-panel .wine-rating-stars label{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}

/* Epicave V3.51 — Profil : emplacements et classement sur fond photographique bordeaux */
.page-profile .locations-profile-card,
.page-profile .maturity-guide-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:#fff!important;
  background:
    linear-gradient(90deg,rgba(40,8,16,.96),rgba(96,20,40,.80),rgba(73,7,26,.72)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  border:1px solid rgba(216,172,100,.20)!important;
  box-shadow:0 18px 36px rgba(64,9,22,.18)!important;
}
.page-profile .locations-profile-card h2,
.page-profile .maturity-guide-card>h2{color:#e7bd72!important}
.page-profile .locations-profile-card>p,
.page-profile .maturity-guide-card .maturity-guide-note,
.page-profile .locations-profile-card .location-empty{color:#f3e4dc!important}
.page-profile .locations-profile-card .input{
  background:rgba(255,251,247,.97)!important;
  color:#3d1720!important;
  border-color:rgba(231,189,114,.36)!important;
}
.page-profile .locations-profile-card .location-list{
  margin:16px 0 4px!important;
}
.page-profile .locations-profile-card .location-chip{
  background:rgba(255,251,247,.97)!important;
  color:#62453f!important;
  border-color:rgba(231,189,114,.42)!important;
}
.page-profile .locations-profile-card .location-delete{
  background:rgba(101,13,37,.10)!important;
  color:var(--wine)!important;
}
.page-profile .locations-profile-card .location-delete:hover{
  background:linear-gradient(135deg,#d6aa68,#a86e2c)!important;
  color:#fff!important;
}
.page-profile .locations-profile-card .location-add-form{margin-top:14px!important;margin-bottom:0!important}
.page-profile .maturity-guide-card .maturity-guide-item{
  background:rgba(255,251,247,.95)!important;
  border-color:rgba(231,189,114,.28)!important;
}
.page-profile .maturity-guide-card .maturity-guide-item p{color:#5f4a45!important}
.page-profile .maturity-guide-card .maturity-guide-note{border-top-color:rgba(255,255,255,.18)!important}

/* Epicave V3.51 — cépages plus lisibles et conseils de dégustation */
.taste-grapes{margin-top:12px!important;padding-top:12px!important}
.taste-grapes h3{
  font-size:22px!important;
  line-height:1.1!important;
  margin:0 0 12px!important;
  font-weight:700!important;
}
.tasting-advice>h2{margin-bottom:14px!important}
.tasting-advice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tasting-advice-item{
  display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;
  padding:10px 11px;border:1px solid rgba(255,255,255,.18);border-radius:13px;
  background:rgba(255,250,245,.96);color:#5b2731;
}
.tasting-advice-item strong{color:#5b2731}
.storage-section-separator{height:1px;background:rgba(255,255,255,.20);margin:20px 0 18px}
@media(max-width:620px){.tasting-advice-list{grid-template-columns:1fr}}

/* Epicave V3.51 — titre Conseils de dégustation aligné sur Conservation idéale */
.storage-panel-below .tasting-advice > h2{
  color:#e7bd72!important;
}

/* Epicave V3.51 — nouveau référentiel central des vins */
.admin-wine-filters{display:grid;grid-template-columns:minmax(150px,220px) minmax(150px,220px) minmax(240px,1fr);gap:10px;align-items:center}
.admin-wine-filters .input{margin:0}
.admin-wine-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 12px;border:1px solid #eadfd7;border-radius:15px;background:#fffdfa}
.admin-reference-label{width:54px;height:72px;border-radius:8px;background:#f5eee8;border:1px solid #eadfd7;display:grid;place-items:center;overflow:hidden;text-align:center;color:#8a7770;font-size:10px;line-height:1.15}
.admin-reference-label img{width:100%;height:100%;object-fit:contain;background:#fff}
.admin-wine-row .admin-row-main{display:grid;gap:3px}.admin-wine-row .admin-row-main small{color:#8a7770}
.admin-reference-image-field{padding-top:4px}
.admin-reference-preview{display:flex;align-items:center;gap:14px;padding:10px;border-radius:13px;background:#fbf4ea;margin:6px 0 10px}
.admin-reference-preview img{width:74px;height:98px;object-fit:contain;background:#fff;border-radius:8px}
.admin-reference-preview span,.admin-reference-image-empty{color:#675b56;font-size:13px;line-height:1.45}
@media(max-width:760px){
  .admin-wine-filters{grid-template-columns:1fr}
  .admin-wine-row{grid-template-columns:52px minmax(0,1fr)}
  .admin-reference-label{width:46px;height:62px}
  .admin-wine-row .admin-row-actions{grid-column:1/-1;display:flex;flex-direction:row;justify-content:flex-end}
}

/* Epicave V3.51 — import des vins existants */
.admin-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.admin-heading-actions{width:100%;justify-content:stretch}.admin-heading-actions .btn{flex:1 1 100%}}

/* Epicave V3.51 — filtres du référentiel alignés sur Ma cave */
.admin-wine-filters{display:flex!important;flex-direction:column;align-items:stretch;gap:12px!important}
.admin-reference-search{width:100%}
.admin-region-filter-row,.admin-color-filter-row{width:100%}

/* Epicave V3.51 — bouteilles Bourgogne et pétillants
   Les deux silhouettes 793×1983 ont leur propre zone d'étiquette. */
.wine-bottle.burgundy{
  --label-left:17.2%;
  --label-right:17.2%;
  --label-top:47.8%;
  --label-height:29.4%;
}
.wine-bottle.sparkling{
  --label-left:17.6%;
  --label-right:17.6%;
  --label-top:48.4%;
  --label-height:29.0%;
}


/* Epicave V3.51 — bouteille Alsace
   Silhouette plus fine : étiquette plus basse et plus étroite que les autres. */
.wine-bottle.alsace{
  --label-left:24.0%;
  --label-right:24.0%;
  --label-top:48.5%;
  --label-height:28.8%;
}


/* Epicave V3.2 — continuité visuelle entre le splash Android et l'application.
   Aucun second écran de démarrage : seulement le fond natif pendant l'initialisation. */
body.app-booting,
body.app-booting #app{
  min-height:100vh;
  background:#4b0f20!important;
}

/* Epicave V3.2 — caractéristiques gustatives modifiables dans le référentiel */
.admin-taste-heading{margin-top:4px;padding-top:10px;border-top:1px solid rgba(111,21,46,.12)}
.admin-taste-heading label{font-weight:800;color:#4b0f20}
.admin-taste-heading small{font-weight:600;color:#8b7771}

/* Epicave V3.2.1 — caractéristiques gustatives graphiques dans le référentiel */
.admin-taste-editor{margin-top:-4px}
.admin-taste-editor .taste-edit-card{
  padding:16px;
  border-radius:16px;
  display:grid;
  gap:14px;
}
.admin-taste-control{
  grid-template-columns:minmax(0,1fr) 72px;
}
.admin-taste-number{
  width:72px!important;
  min-width:72px!important;
  height:42px;
  padding:8px 6px!important;
  font:800 15px/1 var(--sans);
  text-align:center;
}
@media(max-width:520px){
  .admin-taste-control{grid-template-columns:minmax(0,1fr) 64px;gap:10px}
  .admin-taste-number{width:64px!important;min-width:64px!important}
}

/* Epicave V3.2.2 — actualisation ciblée des données manquantes du référentiel */
.admin-row-actions{flex-wrap:wrap;justify-content:flex-end}
.admin-refresh-missing{white-space:nowrap}
@media(max-width:760px){
  .admin-row-actions{width:100%;justify-content:stretch}
  .admin-refresh-missing{flex:1 1 100%}
}

/* Epicave V3.2.3 — en-tête Référentiel mobile identique à Ma cave / Contact */
@media (max-width:820px){
  .page-admin .page{position:relative}
  .page-admin .topbar{
    position:absolute;z-index:35;top:10px;right:14px;width:auto;min-height:0;margin:0;padding:0;
  }
  .page-admin .admin-heading{
    width:auto;min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;
    border-radius:0 0 24px 24px!important;justify-content:center!important;align-items:flex-start!important;
    background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),
      url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
    box-shadow:var(--shadow)!important;
  }
  .page-admin .admin-heading .page-title{
    font-size:35px!important;color:#e1b665!important;margin:0!important;padding:0!important;
    background:transparent!important;text-shadow:0 2px 10px rgba(37,9,17,.34)!important;
  }
  .page-admin .admin-heading .page-sub{
    color:#f2ded6!important;margin:7px 0 0!important;padding:0!important;background:transparent!important;
  }
  .page-admin .admin-heading-actions{margin-top:12px;width:100%}
}

/* Données manquantes visibles sur chaque référence */
.admin-row-actions{max-width:430px}
.admin-missing{
  flex:1 1 100%;width:100%;padding:8px 10px;border-radius:10px;
  background:#fff7e8;border:1px solid #ead8b3;color:#6a513f;font-size:11px;line-height:1.35;
}
.admin-missing strong{display:block;color:#8b5d1d;margin-bottom:3px}
.admin-missing span{display:block}
.admin-missing-complete{background:#eef7f0;border-color:#cfe2d3;color:#42684c}
.admin-missing-complete strong{color:#42684c;margin:0}
.admin-refresh-missing:disabled{opacity:.5;cursor:default}
@media(max-width:760px){
  .admin-row-actions{max-width:none}
}

/* Epicave V3.2.4 — étiquettes Bourgogne et pétillant plus basses et plus larges */
.wine-bottle.burgundy{
  --label-left:11.5%!important;
  --label-right:11.5%!important;
  --label-top:50.5%!important;
  --label-height:28.0%!important;
}
.wine-bottle.sparkling{
  --label-left:12.5%!important;
  --label-right:12.5%!important;
  --label-top:51.3%!important;
  --label-height:27.8%!important;
}

/* Recherche d'étiquette depuis le référentiel */
.admin-reference-label{aspect-ratio:3/4;height:auto;min-height:72px;grid-template-rows:1fr auto;padding:5px 3px;box-sizing:border-box}
.admin-reference-label img{grid-row:1/-1;width:100%;height:100%;aspect-ratio:3/4;object-fit:contain}
.admin-reference-label>span{align-self:end}
.admin-label-refresh{
  width:28px;height:28px;margin:2px auto 0;border:0;border-radius:50%;
  display:grid;place-items:center;background:transparent;color:var(--wine);
  font-size:24px;line-height:1;cursor:pointer;
}
.admin-label-refresh:hover{background:rgba(101,13,37,.08)}
.admin-label-refresh.searching{animation:adminLabelSpin .8s linear infinite}
.admin-label-refresh:disabled{cursor:wait;opacity:.7}
@keyframes adminLabelSpin{to{transform:rotate(360deg)}}
@media(max-width:760px){
  .admin-reference-label{min-height:62px}
  .admin-label-refresh{width:24px;height:24px;font-size:21px}
}

/* Epicave V3.2.5 — gestion d'étiquette latérale et sticky */
.admin-reference-edit-layout{
  display:grid;
  grid-template-columns:minmax(250px,300px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.admin-reference-fields{min-width:0}
.admin-reference-media{min-width:0}
.admin-reference-media-card{
  border:1px solid #e5d8cd;
  border-radius:20px;
  background:rgba(255,253,249,.96);
  box-shadow:var(--shadow-sm);
  padding:16px;
}
.admin-reference-media-card h3{
  margin:0 0 12px;
  color:var(--wine-2);
  font:700 21px/1.1 var(--serif);
}
.admin-reference-media-preview,
.admin-reference-media-empty{
  width:100%;
  aspect-ratio:3/4;
  border-radius:14px;
  border:1px solid #eadfd7;
  background:#fff9f2;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.admin-reference-media-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.admin-reference-media-empty{
  padding:18px;
  box-sizing:border-box;
  color:var(--muted);
  text-align:center;
  font-weight:700;
}
.admin-reference-media-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:12px;
}
.admin-reference-media-actions .admin-reference-upload{grid-column:1/-1}
.admin-reference-media-actions .btn{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.admin-reference-delete-image{color:#9b3040!important;border-color:#ecd9d6!important}
.admin-reference-media-card>small{display:block;margin-top:10px;color:var(--muted);line-height:1.35}

@media (min-width:821px){
  .page-admin .admin-reference-media{
    position:sticky;
    top:24px;
    align-self:start;
  }
  .page-scan .desktop-label-photo{
    position:sticky!important;
    top:24px;
    align-self:start;
  }
}
@media (max-width:820px){
  .admin-reference-edit-layout{grid-template-columns:1fr}
  .admin-reference-media{position:static}
  .admin-reference-media-card{max-width:420px;width:100%;margin:0 auto}
}

/* Epicave V3.2.6 — correction effective des étiquettes Bourgogne / pétillant */
.wine-bottle.burgundy{
  --label-left:7.5%!important;
  --label-right:7.5%!important;
  --label-top:53.2%!important;
  --label-height:26.8%!important;
}
.wine-bottle.sparkling{
  --label-left:8.5%!important;
  --label-right:8.5%!important;
  --label-top:54.0%!important;
  --label-height:26.4%!important;
}
.wine-bottle.burgundy .wine-bottle-label.wine-bottle-label-photo,
.wine-bottle.sparkling .wine-bottle-label.wine-bottle-label-photo{
  padding-left:1.5%!important;
  padding-right:1.5%!important;
}
.wine-bottle.burgundy .wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle.sparkling .wine-bottle-label-simulated .wine-bottle-label-text{
  width:92%!important;
  max-width:92%!important;
}

/* Titre et bloc sticky de l'étiquette personnalisée */
.desktop-label-column{min-width:0}
.desktop-label-title{
  margin:0 0 10px;
  color:var(--wine-2);
  font:700 22px/1.1 var(--serif);
}
@media(min-width:821px){
  .page-scan .desktop-label-column{
    position:sticky;
    top:24px;
    align-self:start;
  }
  .page-scan .desktop-label-column .desktop-label-photo{
    position:relative!important;
    top:auto!important;
  }
}

/* Epicave V3.2.7 — géométrie réellement élargie et abaissée Bourgogne / pétillant */
.wine-bottle.burgundy{
  --label-left:3.5%!important;
  --label-right:3.5%!important;
  --label-top:56.2%!important;
  --label-height:22.8%!important;
}
.wine-bottle.sparkling{
  --label-left:4.5%!important;
  --label-right:4.5%!important;
  --label-top:57.0%!important;
  --label-height:22.4%!important;
}
.wine-bottle.burgundy .wine-bottle-label.wine-bottle-label-photo,
.wine-bottle.sparkling .wine-bottle-label.wine-bottle-label-photo{
  padding-left:0!important;
  padding-right:0!important;
}
.wine-bottle.burgundy .wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle.sparkling .wine-bottle-label-simulated .wine-bottle-label-text{
  width:98%!important;
  max-width:98%!important;
}

.admin-save-reference{transition:transform .16s ease,filter .16s ease,opacity .16s ease,box-shadow .16s ease}
.admin-save-reference.saving{
  filter:saturate(.72) brightness(.96);
  opacity:.88;
  transform:translateY(1px);
  box-shadow:inset 0 2px 5px rgba(68,15,28,.18)!important;
  cursor:wait;
}
.admin-save-reference.saving::after{
  content:"";
  display:inline-block;
  width:12px;height:12px;margin-left:8px;vertical-align:-2px;
  border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff;border-radius:50%;
  animation:adminSaveSpin .75s linear infinite;
}
@keyframes adminSaveSpin{to{transform:rotate(360deg)}}

/* Epicave V3.2.7 — bandeaux photo premium cohérents web + PWA */
.page-cave .cave-heading,
.page-history .cave-heading,
.page-recommendations .content-heading,
.page-profile .content-heading,
.page-admin .admin-heading{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),
    url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1600") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-cave .cave-heading .page-title,
.page-history .cave-heading .page-title,
.page-recommendations .content-heading .page-title,
.page-profile .content-heading .page-title,
.page-admin .admin-heading .page-title{
  color:#e1b665!important;
  background:transparent!important;
  text-shadow:0 2px 10px rgba(37,9,17,.34)!important;
}
.page-cave .cave-heading .page-sub,
.page-history .cave-heading .page-sub,
.page-recommendations .content-heading .page-sub,
.page-profile .content-heading .page-sub,
.page-admin .admin-heading .page-sub{
  color:#f2ded6!important;
  background:transparent!important;
}

@media(min-width:821px){
  .page-cave .cave-heading,
  .page-history .cave-heading,
  .page-recommendations .content-heading,
  .page-profile .content-heading,
  .page-admin .admin-heading{
    min-height:150px;
    margin:8px 0 22px!important;
    padding:30px 34px!important;
    border-radius:26px!important;
    display:flex;
    align-items:center;
    justify-content:space-between;
    box-sizing:border-box;
  }
  .page-cave .cave-heading .page-title,
  .page-history .cave-heading .page-title,
  .page-recommendations .content-heading .page-title,
  .page-profile .content-heading .page-title,
  .page-admin .admin-heading .page-title{
    font-size:38px!important;
    margin:0!important;
    padding:0!important;
  }
  .page-cave .cave-heading .page-sub,
  .page-history .cave-heading .page-sub,
  .page-recommendations .content-heading .page-sub,
  .page-profile .content-heading .page-sub,
  .page-admin .admin-heading .page-sub{
    margin:8px 0 0!important;
    padding:0!important;
  }
  .admin-heading-wrap{margin-bottom:18px}
  .admin-heading-wrap .admin-heading{margin-bottom:12px!important}
  .admin-heading-actions{justify-content:flex-end}
}

@media(max-width:820px){
  .page-history .page{position:relative}
  .page-history .topbar{
    position:absolute;z-index:35;top:10px;right:14px;width:auto;min-height:0;margin:0;padding:0;
  }
  .page-history .cave-heading{
    width:auto;min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;
    border-radius:0 0 24px 24px!important;display:flex;justify-content:center;
  }
  .page-history .cave-heading .page-title{font-size:35px!important;margin:0!important;padding:0!important}
  .page-history .cave-heading .page-sub{margin:7px 0 0!important;padding:0!important}

  .page-admin .admin-heading-wrap{margin-bottom:18px}
  .page-admin .admin-heading-wrap .admin-heading{margin-bottom:12px!important}
  .page-admin .admin-heading-actions{
    width:100%;
    margin:0!important;
    padding:0 0 2px!important;
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .page-admin .admin-heading-actions .btn{width:100%}
}

/* Epicave V3.2.8 — Contact / Profil et étiquettes Bourgogne */
@media(min-width:821px){
  .page-recommendations .content-heading,
  .page-profile .content-heading{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .page-recommendations .content-heading .page-title,
  .page-profile .content-heading .page-title,
  .page-recommendations .content-heading .page-sub,
  .page-profile .content-heading .page-sub{
    display:block!important;
    width:100%!important;
  }

  .page-recommendations .feedback-stack{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    max-width:none!important;
    align-items:start!important;
  }
}
@media(max-width:820px){
  .page-recommendations .feedback-stack{
    grid-template-columns:1fr!important;
  }
}

/* Correction du rendu réel des photos d'étiquette Bourgogne et pétillant.
   Les versions précédentes avaient réduit la hauteur, ce qui rapetissait les
   images portrait malgré un cadre plus large. */
.wine-bottle.burgundy{
  --label-left:8%!important;
  --label-right:8%!important;
  --label-top:50.8%!important;
  --label-height:32.5%!important;
}
.wine-bottle.sparkling{
  --label-left:8.5%!important;
  --label-right:8.5%!important;
  --label-top:51.5%!important;
  --label-height:32.0%!important;
}
.wine-bottle.burgundy .wine-bottle-label.wine-bottle-label-photo,
.wine-bottle.sparkling .wine-bottle-label.wine-bottle-label-photo{
  padding:0!important;
}
.wine-bottle.burgundy .wine-bottle-label.wine-bottle-label-photo img,
.wine-bottle.sparkling .wine-bottle-label.wine-bottle-label-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.wine-bottle.burgundy .wine-bottle-label-simulated .wine-bottle-label-text,
.wine-bottle.sparkling .wine-bottle-label-simulated .wine-bottle-label-text{
  width:96%!important;
  max-width:96%!important;
  height:100%!important;
}

/* Epicave V3.2.9 — position finale Bourgogne / pétillant et cartes Contact alignées */
.wine-bottle.burgundy{
  --label-top:53.2%!important;
}
.wine-bottle.sparkling{
  --label-top:53.9%!important;
}

@media(min-width:821px){
  .page-recommendations .feedback-stack{
    align-items:stretch!important;
  }
  .page-recommendations .feedback-card{
    height:100%;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
  }
  .page-recommendations .feedback-card form{
    display:flex;
    flex-direction:column;
    flex:1;
  }
  .page-recommendations .feedback-card form .btn[type="submit"]{
    margin-top:auto;
    align-self:flex-start;
  }
}

/* Epicave V3.2.10 — référentiel : étiquettes, actions et texte neutre */
.admin-wine-row{
  grid-template-columns:92px minmax(0,1fr) auto!important;
  gap:16px!important;
}
.admin-reference-label{
  width:82px!important;
  min-width:82px!important;
  height:auto!important;
  min-height:108px!important;
  aspect-ratio:3/4!important;
  padding:4px!important;
}
.admin-reference-label img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.admin-row-main,
.admin-row-main strong,
.admin-row-main span,
.admin-row-main small{
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  cursor:default!important;
}
.admin-row-manage{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
  width:100%;
}
.admin-row-manage .btn{
  white-space:nowrap;
}
.admin-row-manage .admin-delete{
  width:auto!important;
  height:auto!important;
  border-radius:10px!important;
  font-size:12px!important;
  line-height:1.1!important;
  padding:8px 11px!important;
  color:#9b3040!important;
  border:1px solid #ecd9d6!important;
  background:#fff!important;
}
.admin-row-manage .admin-delete:hover{background:#faecee!important}

@media(max-width:760px){
  .admin-wine-row{
    grid-template-columns:78px minmax(0,1fr)!important;
    gap:12px!important;
  }
  .admin-reference-label{
    width:70px!important;
    min-width:70px!important;
    min-height:94px!important;
  }
  .admin-wine-row .admin-row-actions{
    grid-column:1/-1;
  }
  .admin-row-manage{
    justify-content:flex-end;
  }
}

/* Epicave V3.2.11 — actions de référence homogènes et résultat d'actualisation détaillé */
.admin-row-manage .admin-edit,
.admin-row-manage .admin-delete{
  height:36px!important;
  min-height:36px!important;
  padding:8px 11px!important;
  font-size:12px!important;
  line-height:1!important;
  border-radius:10px!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.site-notice-list ul{
  list-style:none;
  margin:9px 0 0;
  padding:0;
  display:grid;
  gap:4px;
  text-align:left;
}
.site-notice-list li{
  position:relative;
  padding-left:13px;
  font-size:12px;
  line-height:1.35;
}
.site-notice-list li::before{
  content:"•";
  position:absolute;
  left:0;
  top:0;
  color:var(--gold);
}

/* Epicave V3.2.12 — Classement des vins : cadres blancs 50 % plus transparents */
.page-profile .maturity-guide-card .maturity-guide-item{
  background:rgba(255,251,247,.48)!important;
}

/* Epicave V3.2.13 — palette des états de maturité */
.status.gold{
  background:#c59643!important;
  color:#fff!important;
}
.status.green{
  background:#2f9e55!important;
  color:#fff!important;
}
.status.urgent{
  background:#d83a48!important;
  color:#fff!important;
}

/* Classement des vins : descriptions en blanc, titre et pastilles inchangés dans leur structure */
.page-profile .maturity-guide-card .maturity-guide-item p{
  color:#fff!important;
}

/* Epicave V3.2.14 — relais visuel après le splash natif Android */
.epicave-boot-splash{
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  background:#4b0f20;
  opacity:1;
  visibility:visible;
  transition:opacity .30s ease,visibility 0s linear .30s;
  pointer-events:auto;
}
.epicave-boot-splash.is-hiding{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.epicave-boot-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  transform:translateY(-2vh);
}
.epicave-boot-logo{
  display:block;
  width:118px;
  height:118px;
  object-fit:contain;
}
.epicave-boot-name{
  color:#c99a52;
  font:700 32px/1 var(--serif);
  letter-spacing:.015em;
  text-align:center;
}
@media(max-width:520px){
  .epicave-boot-logo{width:108px;height:108px}
  .epicave-boot-name{font-size:30px}
}
@media(prefers-reduced-motion:reduce){
  .epicave-boot-splash{transition:opacity .12s linear,visibility 0s linear .12s}
}

/* Epicave V3.2.15 — continuité harmonisée entre splash natif et relais */
.epicave-boot-brand{
  gap:10px!important;
  transform:none!important;
}
.epicave-boot-logo{
  width:96px!important;
  height:96px!important;
  object-fit:contain!important;
}
.epicave-boot-name{
  opacity:0;
  transform:translateY(4px);
  animation:epicaveBootNameIn .28s ease .12s forwards;
}
@keyframes epicaveBootNameIn{
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:520px){
  .epicave-boot-logo{width:96px!important;height:96px!important}
}
@media(prefers-reduced-motion:reduce){
  .epicave-boot-name{
    opacity:1;
    transform:none;
    animation:none;
  }
}

/* Epicave V3.2.17 — splash : retour à la transition V3.2.15, grappe relais agrandie */
.epicave-boot-logo{
  width:156px!important;
  height:156px!important;
}
@media(max-width:520px){
  .epicave-boot-logo{
    width:156px!important;
    height:156px!important;
  }
}

/* Epicave V3.2.18 — splash natif/relais, menu web et page Repas */
.epicave-boot-logo{
  width:272px!important;
  height:272px!important;
}
@media(max-width:520px){
  .epicave-boot-logo{
    width:272px!important;
    height:272px!important;
  }
}

/* Le PNG PWA contient lui-même son fond bordeaux : le bloc plus grand rapproche
   la taille visible de la grappe de celle dessinée par le splash Android. */
.epicave-boot-brand{
  gap:0!important;
}
.epicave-boot-name{
  margin-top:-28px!important;
}

/* Version web : menu un peu plus large et libellés toujours sur une ligne. */
@media(min-width:821px){
  .app-shell{
    grid-template-columns:310px minmax(0,1fr)!important;
  }
  .sidebar .nav-btn{
    white-space:nowrap!important;
  }
}

/* Page Repas : la recherche vient après le titre et son sous-titre. */
.page-meal .meal-hero > .meal-search{
  margin-top:18px!important;
}

/* Epicave V3.2.19 — slogan du menu web équilibré sur deux lignes */
@media(min-width:821px){
  .sidebar .brand-tagline{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
    white-space:nowrap;
    line-height:1.25;
  }
  .sidebar .brand-tagline span{
    display:block;
  }
}

/* Epicave V3.2.21 — page Réglages des bouteilles */
.page-settings .settings-heading{
  position:relative;overflow:hidden;min-height:150px;margin:8px 0 22px;padding:30px 34px;border-radius:26px;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),
    url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-settings .settings-heading .page-title{color:#e1b665!important;margin:0!important}
.page-settings .settings-heading .page-sub{color:#f2ded6!important;margin:7px 0 0!important}
.bottle-settings-panel{padding:18px}
.bottle-settings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.bottle-settings-toolbar p{margin:0;color:var(--muted);font-size:13px}
.bottle-settings-grid{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:12px;align-items:stretch}
.bottle-settings-card{
  min-width:0;padding:14px 11px 12px;border:1px solid #eadfd7;border-radius:16px;background:rgba(255,253,249,.97);
  display:flex;flex-direction:column;align-items:stretch;
}
.bottle-settings-card h2{min-height:38px;margin:0 0 10px;color:var(--wine-2);font:700 16px/1.15 var(--serif);text-align:center}
.bottle-settings-preview{min-height:292px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:12px}
.bottle-settings-preview .wine-bottle{width:112px!important;height:280px!important;margin:0 auto!important}
.bottle-settings-preview .wine-bottle-label-text,.bottle-settings-preview .wine-bottle-label-fallback{font-size:8px!important}
.bottle-settings-preview .wine-bottle-label-text strong,.bottle-settings-preview .wine-bottle-label-fallback strong{font-size:10px!important}
.bottle-settings-fields{display:grid;gap:8px;margin-top:auto}
.bottle-settings-fields label{display:grid;gap:5px;color:#675b56;font-size:11px;font-weight:800;line-height:1.25}
.bottle-settings-fields .input{width:100%;min-width:0;margin:0;padding:9px 8px;text-align:center;font-weight:800}
.side-nav-admin{display:grid;gap:5px}
.settings-access-card{border-color:rgba(216,172,100,.34)!important}
@media(max-width:1200px) and (min-width:821px){.bottle-settings-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:820px){
  .page-settings .topbar{position:absolute;z-index:35;top:10px;right:14px;width:auto;min-height:0;margin:0;padding:0}
  .page-settings .settings-heading{min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;border-radius:0 0 24px 24px!important}
  .page-settings .settings-heading .page-title{font-size:35px!important}
  .bottle-settings-toolbar{align-items:stretch;flex-direction:column}.bottle-settings-toolbar .btn{width:100%}
  .bottle-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bottle-settings-preview{min-height:240px}.bottle-settings-preview .wine-bottle{width:92px!important;height:230px!important}
}
@media(max-width:460px){
  .bottle-settings-grid{grid-template-columns:1fr}
  .bottle-settings-card{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:12px;align-items:center}
  .bottle-settings-card h2{grid-column:1/-1;min-height:0}.bottle-settings-preview{min-height:220px;margin:0}.bottle-settings-fields{margin:0}
}

/* Epicave V3.2.22 — Réglages : titre sans fond interne, cadre photo conservé */
.page-settings .settings-heading .page-title,
.page-settings .settings-heading .page-sub{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
}

/* Epicave V3.2.35 — mobile/PWA : noms des vins alignés sur deux lignes dans Ma cave */
@media(max-width:820px){
  .page-cave .cave-card .wine-title{
    line-height:1.2!important;
    height:2.4em!important;
    min-height:2.4em!important;
    max-height:2.4em!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    margin-bottom:0!important;
  }
}

/* Epicave V3.2.36 — mobile/PWA : réservation réelle de deux lignes pour le nom du vin */
@media(max-width:820px){
  .page-cave .cave-card .wine-title{
    display:block!important;
    box-sizing:border-box!important;
    font-size:17px!important;
    line-height:1.18!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    margin-top:12px!important;
    margin-bottom:0!important;
    overflow:hidden!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:unset!important;
  }
}

/* Epicave V3.2.37 — Contact & avis : étoiles cliquables sur web, mobile et PWA */
.page-recommendations .rating-stars{
  position:relative;
  z-index:2;
}
.page-recommendations .rating-stars input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:auto!important;
}
.page-recommendations .rating-stars label{
  position:relative;
  z-index:3;
  pointer-events:auto!important;
  touch-action:manipulation;
  user-select:none;
  -webkit-user-select:none;
}
.page-recommendations .rating-stars label:focus-visible{
  outline:2px solid #c89438;
  outline-offset:3px;
  border-radius:4px;
}

/* Epicave V3.2.38 — sélection d'avis indépendante du rendu natif des radios */
.page-recommendations .rating-stars label.is-selected{
  color:#c89438!important;
}
.page-recommendations .rating-stars label{
  -webkit-tap-highlight-color:transparent;
}

/* Epicave V3.2.39 — Contact & avis : vraies étoiles-boutons indépendantes des labels */
.page-recommendations .review-rating-buttons{
  display:flex!important;
  flex-direction:row!important;
  justify-content:flex-start!important;
  gap:4px!important;
}
.page-recommendations .review-rating-buttons .review-star{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  margin:0!important;
  color:#d8cfc5!important;
  font:400 38px/1 var(--serif)!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  text-shadow:0 1px 0 rgba(255,255,255,.8)!important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));
}
.page-recommendations .review-rating-buttons .review-star.is-selected{
  color:#c89438!important;
}
.page-recommendations .review-rating-buttons .review-star:focus-visible{
  outline:2px solid #c89438!important;
  outline-offset:3px!important;
  border-radius:4px!important;
}
@media(max-width:820px){
  .page-recommendations .review-rating-buttons .review-star{
    font-size:34px!important;
  }
}

/* Epicave V3.2.40 — Contact & avis : notation native, sans dépendance JavaScript */
.page-recommendations .feedback-card .review-rating-native{
  display:inline-flex!important;
  flex-direction:row-reverse!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:4px!important;
}
.page-recommendations .feedback-card .review-rating-native .review-rating-radio{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  pointer-events:none!important;
}
.page-recommendations .feedback-card .review-rating-native .review-rating-label{
  display:inline-block!important;
  margin:0!important;
  padding:0!important;
  font-size:38px!important;
  line-height:1!important;
  color:#d8cfc5!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  transition:color .15s ease,transform .15s ease!important;
  text-shadow:0 1px 0 rgba(255,255,255,.8)!important;
}
.page-recommendations .feedback-card .review-rating-native .review-rating-radio:checked ~ .review-rating-label,
.page-recommendations .feedback-card .review-rating-native .review-rating-label:hover,
.page-recommendations .feedback-card .review-rating-native .review-rating-label:hover ~ .review-rating-label{
  color:#c89438!important;
}
.page-recommendations .feedback-card .review-rating-native .review-rating-label:hover{
  transform:translateY(-1px)!important;
}
@media(max-width:820px){
  .page-recommendations .feedback-card .review-rating-native .review-rating-label{
    font-size:34px!important;
  }
}

/* Epicave V3.2.41 — Contact & avis : radios visibles directement sous forme d'étoiles */
.page-recommendations .feedback-card .review-rating-direct{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:4px!important;
  margin:0!important;
  padding:0!important;
}
.page-recommendations .feedback-card .review-rating-direct .review-star-radio{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:relative!important;
  display:block!important;
  width:38px!important;
  height:40px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
.page-recommendations .feedback-card .review-rating-direct .review-star-radio::before{
  content:"★"!important;
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#d8cfc5!important;
  font:400 38px/1 var(--serif)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.8)!important;
}
.page-recommendations .feedback-card .review-rating-direct .review-star-radio:checked::before,
.page-recommendations .feedback-card .review-rating-direct .review-star-radio:has(~ .review-star-radio:checked)::before{
  color:#c89438!important;
}
.page-recommendations .feedback-card .review-rating-direct .review-star-radio:focus-visible{
  outline:2px solid #c89438!important;
  outline-offset:2px!important;
  border-radius:4px!important;
}
@media(max-width:820px){
  .page-recommendations .feedback-card .review-rating-direct .review-star-radio{
    width:34px!important;
    height:36px!important;
  }
  .page-recommendations .feedback-card .review-rating-direct .review-star-radio::before{
    font-size:34px!important;
  }
}

.page-recommendations .feedback-card .review-rating-direct .review-star-radio.is-before-selected::before{
  color:#c89438!important;
}


/* Epicave V3.2.45 — Historique indépendant, édition premium et outils administrateur */
.history-card{position:relative}
.history-remove-btn{
  position:absolute;right:10px;top:10px;z-index:12;
  width:31px;height:31px;display:grid;place-items:center;
  padding:0;border:1px solid rgba(101,13,37,.16);border-radius:50%;
  background:rgba(255,253,249,.96);color:var(--wine);
  font:700 21px/1 var(--sans);cursor:pointer;
  box-shadow:0 4px 12px rgba(62,15,26,.10)
}
.history-remove-btn:hover{background:#fff;transform:translateY(-1px)}

.page-scan .scan-edit-heading-frame{
  position:relative;overflow:hidden;
  margin:8px 0 22px;padding:30px 34px;min-height:150px;
  border-radius:26px;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  background:
    linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),
    url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1600") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-scan .scan-edit-heading-frame .scan-page-title{
  display:block!important;width:100%!important;margin:0!important;padding:0!important;
  color:#e1b665!important;background:transparent!important;
  font-size:38px!important;text-shadow:0 2px 10px rgba(37,9,17,.34)!important;
}
.page-scan .scan-edit-heading-frame .scan-page-sub{
  display:block!important;width:100%!important;margin:8px 0 0!important;padding:0!important;
  color:#f2ded6!important;background:transparent!important;
}

.page-scan .desktop-label-photo-edit{padding-top:58px!important}
.page-scan .desktop-label-photo .desktop-label-title-inside{
  position:absolute;left:16px;top:16px;z-index:4;margin:0;
  color:var(--wine-2);font:700 22px/1.1 var(--serif)
}
.page-scan .desktop-label-photo-edit.desktop-label-photo-empty .desktop-photo-empty-note{top:52px!important}

.wine-edit-form-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
.wine-edit-form-actions.has-admin-refresh{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.wine-edit-form-actions .btn{width:100%;min-height:46px}

@media(max-width:820px){
  .history-remove-btn{right:8px;top:8px;width:29px;height:29px;font-size:20px}
  .page-scan .scan-edit-heading-frame{
    width:auto;min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;
    border-radius:0 0 24px 24px!important;
  }
  .page-scan .scan-edit-heading-frame .scan-page-title{font-size:35px!important}
  .page-scan .scan-edit-heading-frame .scan-page-sub{margin-top:7px!important}
  .page-scan .mobile-edit-label{
    background:rgba(255,253,249,.96);border:1px solid #e5d8cd;border-radius:18px;
    padding:15px 12px 12px!important;box-shadow:var(--shadow-sm)
  }
  .page-scan .mobile-edit-label-title{
    width:100%;margin:0 0 9px;color:var(--wine-2);text-align:left;
    font:700 19px/1.1 var(--serif)
  }
  .wine-edit-form-actions.has-admin-refresh{gap:8px}
  .wine-edit-form-actions.has-admin-refresh .btn{font-size:12px;padding-left:8px;padding-right:8px}
}

/* Epicave V3.2.47 — fiche vin : ajout administrateur au référentiel */
.page-wine .wine-detail-actions.delete-only:has(.add-reference-btn){
  justify-content:space-between!important;
  align-items:center!important;
  gap:16px!important;
}
.page-wine .wine-detail-actions.delete-only .add-reference-btn{
  margin-right:auto!important;
}
.page-wine .wine-detail-actions.delete-only #deleteWine{
  margin-left:auto!important;
}
@media(max-width:820px){
  .page-wine .wine-detail-actions.delete-only:has(.add-reference-btn){
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
  }
  .page-wine .wine-detail-actions.delete-only .add-reference-btn,
  .page-wine .wine-detail-actions.delete-only #deleteWine{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .page-wine .wine-detail-actions.delete-only .add-reference-btn{
    order:1!important;
  }
  .page-wine .wine-detail-actions.delete-only #deleteWine{
    order:2!important;
  }
}

/* Epicave V3.2.48 — fiche vin admin : actualisation des informations */
.page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn){
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;
  gap:16px!important;
}
.page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .add-reference-btn{
  justify-self:start!important;
  margin:0!important;
}
.page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .refresh-detail-wine-btn{
  justify-self:center!important;
  margin:0!important;
}
.page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) #deleteWine{
  justify-self:end!important;
  margin:0!important;
}
@media(max-width:820px){
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn){
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
  }
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .refresh-detail-wine-btn,
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .add-reference-btn,
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) #deleteWine{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .refresh-detail-wine-btn{order:1!important}
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) .add-reference-btn{order:2!important}
  .page-wine .wine-detail-actions.delete-only:has(.refresh-detail-wine-btn) #deleteWine{order:3!important}
}


/* Epicave V3.2.54 — moteur d'étiquette unifié
   Les marges de Réglages sont des limites absolues pour TOUTES les étiquettes. */
.wine-bottle .wine-bottle-label{
  box-sizing:border-box!important;
}
.wine-bottle .wine-bottle-label.wine-bottle-label-photo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
  border:0!important;
}
.wine-bottle .wine-bottle-label.wine-bottle-label-photo > img{
  flex:0 1 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:transparent!important;
}
.wine-bottle .wine-bottle-label.wine-bottle-label-simulated{
  box-sizing:border-box!important;
}

/* Epicave V3.2.55 — zone utile identique pour simulée, photo et référentiel */
.wine-bottle .wine-bottle-label{
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.wine-bottle .wine-bottle-label-content{
  width:91%!important;
  max-width:91%!important;
  height:100%!important;
  max-height:100%!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.wine-bottle .wine-bottle-label-content > img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
.wine-bottle .wine-bottle-label-content > .wine-bottle-label-text,
.wine-bottle .wine-bottle-label-content > .wine-bottle-label-fallback{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  max-height:100%!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}


/* Epicave V3.2.56 — Référentiel des plats */
.page-dishesAdmin .admin-heading{
  position:relative;overflow:hidden;
  background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1600") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-dishesAdmin .admin-heading .page-title{color:#e1b665!important;background:transparent!important;text-shadow:0 2px 10px rgba(37,9,17,.34)!important}
.page-dishesAdmin .admin-heading .page-sub{color:#f2ded6!important;background:transparent!important}
.dish-admin-list{display:grid;gap:10px;margin-top:16px}
.dish-admin-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px;border:1px solid #eaded4;border-radius:16px;background:#fffdfb}
.dish-admin-thumb{width:92px;height:74px;border-radius:12px;overflow:hidden;background:#f3eadc}
.dish-admin-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dish-admin-main{min-width:0;display:grid;gap:4px}.dish-admin-main strong{font:700 17px/1.15 var(--serif);color:var(--wine)}.dish-admin-main span,.dish-admin-main small{color:var(--muted)}
.dish-admin-actions{display:flex;gap:8px}.dish-admin-delete{color:#9b3040!important}
@media(min-width:821px){.page-dishesAdmin .admin-heading{min-height:150px;margin:8px 0 22px!important;padding:30px 34px!important;border-radius:26px!important;display:flex;align-items:center}.page-dishesAdmin .admin-heading .page-title{font-size:38px!important;margin:0!important;padding:0!important}.page-dishesAdmin .admin-heading .page-sub{margin:8px 0 0!important;padding:0!important}}
@media(max-width:820px){.page-dishesAdmin .admin-heading{width:auto;min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;border-radius:0 0 24px 24px!important;display:flex;justify-content:center}.page-dishesAdmin .admin-heading .page-title{font-size:35px!important;margin:0!important;padding:0!important}.page-dishesAdmin .admin-heading .page-sub{margin:7px 0 0!important;padding:0!important}.dish-admin-row{grid-template-columns:72px minmax(0,1fr);gap:11px}.dish-admin-thumb{width:72px;height:62px}.dish-admin-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.dish-admin-actions .btn{width:100%}}

/* Epicave V3.2.57 — citation sidebar légèrement remontée sur web */
@media(min-width:821px){
  .sidebar-quote{
    transform:translateY(-32px);
  }
}


/* Epicave V3.2.59 — rendu final unifié des vraies étiquettes */
.wine-bottle .wine-bottle-label-content > img{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:50%!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:translateY(-50%)!important;
  background:transparent!important;
}


/* Epicave V3.2.60 — accueil web : citations manuscrites et équilibrées */
@media(min-width:821px){
  .sidebar-quote,
  .hero-quote{
    font-family:"Segoe Script","Snell Roundhand","Apple Chancery","Brush Script MT",cursive!important;
    font-style:normal!important;
    font-weight:500!important;
    letter-spacing:.15px!important;
    line-height:1.42!important;
  }
  .sidebar-quote{font-size:18px!important}
  .hero-quote{font-size:21px!important;max-width:390px!important;white-space:nowrap}
  .hero-greeting p{white-space:nowrap}
}

/* Référentiel des vins : retour visuel immédiat pendant le chargement d'une étiquette officielle */
.admin-reference-media-visual{position:relative;min-height:180px}
.admin-reference-media-loader{
  position:absolute;inset:0;z-index:5;display:none;place-items:center;align-content:center;gap:10px;
  padding:18px;text-align:center;border-radius:16px;
  background:rgba(255,253,249,.92);backdrop-filter:blur(3px);color:var(--wine);
}
.admin-reference-media-card.is-loading .admin-reference-media-loader{display:grid}
.admin-reference-media-spinner{
  width:34px;height:34px;border-radius:50%;border:3px solid rgba(101,13,37,.18);border-top-color:var(--wine);
  animation:epicaveReferenceLabelSpin .75s linear infinite;
}
@keyframes epicaveReferenceLabelSpin{to{transform:rotate(360deg)}}
.admin-reference-media-card.is-loading .admin-reference-media-actions{pointer-events:none;opacity:.58}

/* Référentiel des plats : plus de ligne réservée à l'ancienne description courte */
.dish-admin-main{align-content:center}


/* Epicave V3.2.61 — citations web plus raffinées */
@media(min-width:821px){
  .sidebar-quote,
  .hero-quote{
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif!important;
    font-style:italic!important;
    font-weight:400!important;
    letter-spacing:.1px!important;
    line-height:1.38!important;
  }
  .sidebar-quote{
    font-size:17px!important;
    white-space:nowrap!important;
  }
  .hero-quote{
    font-size:20px!important;
    white-space:nowrap!important;
  }
}

/* Epicave V3.2.62 — citations web en écriture manuscrite raffinée */

@media(min-width:821px){
  .sidebar-quote,
  .hero-quote{
    font-family:"Parisienne","Snell Roundhand","Bickham Script Pro","Apple Chancery",cursive!important;
    font-style:normal!important;
    font-weight:400!important;
    letter-spacing:.15px!important;
    line-height:1.22!important;
    text-rendering:optimizeLegibility;
  }

  .sidebar-quote{
    font-size:20px!important;
    white-space:nowrap!important;
  }

  .hero-quote{
    font-size:25px!important;
    white-space:nowrap!important;
  }
}

/* Epicave V3.2.63 — citations avec Always in the Star */
@font-face{
  font-family:"Always in the Star";
  src:url("/api/?action=font_asset&name=always-in-the-star.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

@media(min-width:821px){
  .sidebar-quote,
  .hero-quote{
    font-family:"Always in the Star","Snell Roundhand","Apple Chancery",cursive!important;
    font-style:normal!important;
    font-weight:400!important;
    letter-spacing:.1px!important;
    line-height:1.18!important;
    text-rendering:optimizeLegibility;
  }

  .sidebar-quote{
    font-size:21px!important;
    white-space:nowrap!important;
  }

  .hero-quote{
    font-size:27px!important;
    white-space:nowrap!important;
  }
}


/* Epicave V3.2.71 — plat sélectionné mis en avant */
.meal-hero-dish{
  width:min(100%,620px)!important;
  max-width:620px!important;
  margin:28px auto 0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  background:transparent!important;
  text-align:center!important;
}

.meal-hero-dish-photo{
  width:min(100%,520px)!important;
  height:300px!important;
  border-radius:24px!important;
  overflow:hidden!important;
  flex:none!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 18px 38px rgba(28,8,15,.24)!important;
  background:rgba(255,255,255,.08)!important;
}

.meal-hero-dish-photo img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  object-position:center center!important;
}

.meal-hero-dish strong{
  display:block!important;
  margin:0!important;
  color:#fff!important;
  font:700 30px/1.08 var(--serif)!important;
  text-align:center!important;
}

@media(max-width:820px){
  .meal-hero-dish{
    width:100%!important;
    max-width:none!important;
    margin-top:22px!important;
  }
  .meal-hero-dish-photo{
    width:100%!important;
    max-width:440px!important;
    height:220px!important;
    border-radius:20px!important;
  }
  .meal-hero-dish strong{
    font-size:25px!important;
  }
}


/* Epicave V3.2.75 — 5 états de maturité */
.status.urgent{
  background:#D9822B!important;
  color:#fff!important;
}
.status.decline{
  background:#9E3B3B!important;
  color:#fff!important;
}
.status.end-life{
  background:#1C1C1C!important;
  color:#fff!important;
}
.cave-card>.status.urgent{box-shadow:0 4px 12px rgba(217,130,43,.18)}
.cave-card>.status.decline{box-shadow:0 4px 12px rgba(158,59,59,.18)}
.cave-card>.status.end-life{box-shadow:0 4px 12px rgba(28,28,28,.20)}



/* Epicave V3.2.76 — apogée scintillante + À boire vite plus sombre */
.status.gold.apogee-highlight{
  background:linear-gradient(110deg,#A97828 0%,#BF9138 30%,#E0BF71 44%,#F1D98D 50%,#D2AA55 57%,#B5822F 72%,#A97828 100%)!important;
  background-size:260% 100%!important;
  color:#fff!important;
  text-shadow:0 1px 2px rgba(67,43,7,.42);
  box-shadow:0 0 0 rgba(213,174,87,0),0 4px 12px rgba(144,96,22,.18)!important;
  animation:epicave-apogee-shimmer 3.1s ease-in-out infinite,epicave-apogee-glow 3.1s ease-in-out infinite;
  will-change:background-position,box-shadow;
}

@keyframes epicave-apogee-shimmer{
  0%,18%{background-position:100% 50%}
  58%,100%{background-position:-110% 50%}
}
@keyframes epicave-apogee-glow{
  0%,100%{box-shadow:0 0 0 rgba(213,174,87,0),0 4px 12px rgba(144,96,22,.18)}
  45%{box-shadow:0 0 13px rgba(235,199,112,.52),0 5px 15px rgba(144,96,22,.24)}
}

.status.urgent{
  background:#BE671E!important;
  color:#fff!important;
}
.cave-card>.status.urgent{box-shadow:0 4px 12px rgba(190,103,30,.20)!important}

@media(prefers-reduced-motion:reduce){
  .status.gold.apogee-highlight{
    animation:none!important;
    background:#B88932!important;
  }
}


/* Epicave V3.2.77 — statut S’ouvre + cycle de vie enrichi */
.status.opening{
  background:#9BCB8F!important;
  color:#24482D!important;
  text-shadow:none!important;
}
.cave-card>.status.opening{
  box-shadow:0 4px 12px rgba(79,127,75,.18)!important;
}

.maturity-life-component{width:100%;min-width:0}
.maturity-life-chart{display:block}
.life-stage-strip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}
.life-stage-summary{
  min-width:0;
  min-height:88px;
  border-radius:14px;
  padding:10px 8px 9px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  border:1px solid rgba(91,54,47,.08);
  box-shadow:0 3px 10px rgba(74,43,38,.05);
  font-family:var(--serif);
}
.life-stage-summary strong{font-size:14px;line-height:1.12;margin-bottom:4px}
.life-stage-summary span{font:700 11px/1.2 var(--sans);margin-bottom:5px;opacity:.88}
.life-stage-summary small{font:500 10px/1.25 var(--sans);opacity:.82}
.life-stage-keep{background:#E6F3E8;color:#2F6E3D}
.life-stage-opening{background:#EAF5E6;color:#4F7F4B}
.life-stage-peak{background:#F8E7B9;color:#765018;box-shadow:0 0 15px rgba(213,174,87,.18)}
.life-stage-urgent{background:#F4D9C2;color:#8E4611}
.life-stage-decline{background:#EED2D2;color:#843232}
.life-stage-end{background:#2B2929;color:#fff}

@media(max-width:820px){
  .life-stage-strip{
    display:flex;
    overflow-x:auto;
    gap:8px;
    margin:8px -2px 0;
    padding:2px 2px 7px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .life-stage-summary{
    flex:0 0 132px;
    min-height:84px;
    scroll-snap-align:start;
  }
  .life-stage-summary strong{font-size:13px}
  .life-stage-summary small{font-size:9.5px}
}


/* Epicave V3.2.78 — carte “Meilleur choix ce soir” retravaillée */
.status.opening{
  color:#fff!important;
  text-shadow:0 1px 1px rgba(25,63,34,.16)!important;
}

.page-meal .pair-card.best{
  position:relative;
  grid-template-columns:minmax(0,1fr) 236px!important;
  gap:22px!important;
  min-height:286px;
  padding:54px 24px 22px!important;
  background:
    radial-gradient(circle at 13% 48%, rgba(255,255,255,.18) 0%, rgba(255,255,255,.06) 11%, rgba(255,255,255,0) 23%),
    linear-gradient(135deg,#5a091f 0%,#73112c 52%,#4e071a 100%)!important;
  border:1px solid rgba(231,193,120,.28)!important;
  box-shadow:0 22px 42px rgba(44,7,18,.30)!important;
}
.page-meal .pair-card.best::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 82% 50%, rgba(255,255,255,.08), rgba(255,255,255,0) 34%);
  pointer-events:none;
}
.page-meal .pair-card.best .crown{
  position:absolute!important;
  top:14px;
  left:14px;
  z-index:3;
  display:inline-flex!important;
  align-items:center;
  gap:10px;
  padding:11px 20px;
  border-radius:0 0 18px 18px;
  background:linear-gradient(135deg,#F1DB9B 0%,#DBB467 48%,#C79342 100%)!important;
  color:#5A1A14!important;
  box-shadow:0 12px 24px rgba(24,6,10,.24);
  font:700 17px/1 var(--serif)!important;
  margin:0!important;
}
.page-meal .pair-card.best .crown .crown-icon{
  font-size:18px;
  line-height:1;
}
.page-meal .pair-card.best .pair-main{
  align-self:stretch;
}
.page-meal .pair-card.best .pair-main-head{
  grid-template-columns:112px minmax(0,1fr)!important;
  gap:22px!important;
  align-items:center!important;
}
.page-meal .pair-card.best .pair-mini-bottle{
  width:112px;
  min-width:112px;
  position:relative;
}
.page-meal .pair-card.best .pair-mini-bottle::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:116px;
  height:204px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:radial-gradient(circle, rgba(255,255,255,.90) 0%, rgba(255,255,255,.72) 22%, rgba(255,255,255,.28) 42%, rgba(255,255,255,0) 72%);
  filter:blur(8px);
  pointer-events:none;
}
.page-meal .pair-card.best .pair-mini-bottle .wine-bottle{
  position:relative;
  z-index:1;
  width:86px!important;
  height:220px!important;
  margin:0 auto!important;
}
.page-meal .pair-card.best .meal-maturity-status{
  margin-bottom:12px!important;
}
.page-meal .pair-card.best .wine-title{
  margin-top:0!important;
  font-size:32px;
  line-height:1.04;
}
.page-meal .pair-card.best .wine-meta-best{
  display:grid;
  gap:2px;
  margin-top:8px;
  font-family:var(--serif);
  font-size:17px;
  line-height:1.18;
  color:rgba(255,255,255,.92);
}
.page-meal .pair-card.best .wine-note{
  margin-top:16px;
  max-width:820px;
  color:rgba(255,255,255,.97)!important;
  font:italic 400 20px/1.24 var(--serif)!important;
}
.page-meal .pair-card.best .pair-score{
  position:relative!important;
  width:214px!important;
  min-width:214px!important;
  height:164px!important;
  padding:18px 16px 8px!important;
  border-radius:30px!important;
  background:transparent!important;
  color:#fff!important;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
}
.page-meal .pair-card.best .pair-score::before,
.page-meal .pair-card.best .pair-score::after{
  content:"";
  position:absolute;
  top:16px;
  width:54px;
  height:104px;
  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;
  opacity:.96;
  pointer-events:none;
}
.page-meal .pair-card.best .pair-score::before{
  left:8px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 110'%3E%3Cg fill='%23E2C06F' stroke='%23E2C06F' stroke-width='2'%3E%3Cpath d='M44 96 C30 79 20 58 19 14' fill='none'/%3E%3Cellipse cx='20' cy='20' rx='5' ry='12' transform='rotate(-35 20 20)'/%3E%3Cellipse cx='25' cy='33' rx='5' ry='12' transform='rotate(-25 25 33)'/%3E%3Cellipse cx='28' cy='47' rx='5' ry='12' transform='rotate(-15 28 47)'/%3E%3Cellipse cx='31' cy='61' rx='5' ry='12' transform='rotate(-5 31 61)'/%3E%3Cellipse cx='34' cy='75' rx='5' ry='12' transform='rotate(8 34 75)'/%3E%3Cellipse cx='37' cy='88' rx='5' ry='12' transform='rotate(16 37 88)'/%3E%3C/g%3E%3C/svg%3E");
}
.page-meal .pair-card.best .pair-score::after{
  right:8px;
  transform:scaleX(-1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 110'%3E%3Cg fill='%23E2C06F' stroke='%23E2C06F' stroke-width='2'%3E%3Cpath d='M44 96 C30 79 20 58 19 14' fill='none'/%3E%3Cellipse cx='20' cy='20' rx='5' ry='12' transform='rotate(-35 20 20)'/%3E%3Cellipse cx='25' cy='33' rx='5' ry='12' transform='rotate(-25 25 33)'/%3E%3Cellipse cx='28' cy='47' rx='5' ry='12' transform='rotate(-15 28 47)'/%3E%3Cellipse cx='31' cy='61' rx='5' ry='12' transform='rotate(-5 31 61)'/%3E%3Cellipse cx='34' cy='75' rx='5' ry='12' transform='rotate(8 34 75)'/%3E%3Cellipse cx='37' cy='88' rx='5' ry='12' transform='rotate(16 37 88)'/%3E%3C/g%3E%3C/svg%3E");
}
.page-meal .pair-card.best .pair-score-value{
  display:block;
  color:#fff;
  font:700 58px/.94 var(--serif);
  letter-spacing:-.02em;
}
.page-meal .pair-card.best .pair-score small{
  max-width:none!important;
  margin-top:6px!important;
  font-size:16px!important;
  line-height:1.1!important;
  font-family:var(--serif);
  color:rgba(255,255,255,.96)!important;
}
.page-meal .pair-card.best .pair-cta{
  grid-column:1 / -1;
  margin-top:4px;
  min-height:62px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  background:linear-gradient(135deg,#F1DB9B 0%,#DAB164 48%,#C79241 100%);
  color:#5A1A14;
  font:700 22px/1 var(--serif);
  box-shadow:0 10px 24px rgba(24,6,10,.20);
}
.page-meal .pair-card.best .pair-cta span{
  margin-left:10px;
}

@media(max-width:820px){
  .page-meal .pair-card.best{
    grid-template-columns:1fr!important;
    min-height:0;
    padding:48px 16px 16px!important;
    gap:14px!important;
  }
  .page-meal .pair-card.best .crown{
    top:10px;
    left:10px;
    padding:9px 15px;
    font-size:15px!important;
  }
  .page-meal .pair-card.best .pair-main-head{
    grid-template-columns:76px minmax(0,1fr)!important;
    gap:14px!important;
    padding-right:0!important;
  }
  .page-meal .pair-card.best .pair-mini-bottle{
    width:76px;
    min-width:76px;
  }
  .page-meal .pair-card.best .pair-mini-bottle::before{
    width:84px;
    height:152px;
    filter:blur(6px);
  }
  .page-meal .pair-card.best .pair-mini-bottle .wine-bottle{
    width:62px!important;
    height:162px!important;
  }
  .page-meal .pair-card.best .wine-title{
    font-size:23px;
  }
  .page-meal .pair-card.best .wine-meta-best{
    font-size:15px;
  }
  .page-meal .pair-card.best .wine-note{
    margin-top:11px;
    font-size:16px!important;
  }
  .page-meal .pair-card.best .pair-score{
    width:100%!important;
    min-width:0!important;
    height:112px!important;
    padding:10px 58px 4px!important;
    border-radius:20px!important;
  }
  .page-meal .pair-card.best .pair-score::before,
  .page-meal .pair-card.best .pair-score::after{
    top:10px;
    width:40px;
    height:74px;
  }
  .page-meal .pair-card.best .pair-score-value{
    font-size:42px;
  }
  .page-meal .pair-card.best .pair-score small{
    font-size:13px!important;
  }
  .page-meal .pair-card.best .pair-cta{
    min-height:54px;
    font-size:20px;
  }
}
@media(max-width:430px){
  .page-meal .pair-card.best .crown{font-size:14px!important;padding:8px 13px}
  .page-meal .pair-card.best .pair-main-head{grid-template-columns:68px minmax(0,1fr)!important;gap:12px!important}
  .page-meal .pair-card.best .pair-mini-bottle{width:68px;min-width:68px}
  .page-meal .pair-card.best .pair-mini-bottle .wine-bottle{width:56px!important;height:146px!important}
  .page-meal .pair-card.best .wine-title{font-size:21px}
  .page-meal .pair-card.best .wine-note{font-size:15px!important}
  .page-meal .pair-card.best .pair-score{height:100px!important;padding-left:46px!important;padding-right:46px!important}
  .page-meal .pair-card.best .pair-score-value{font-size:38px}
  .page-meal .pair-card.best .pair-cta{font-size:18px}
}


/* Epicave V3.2.79 — courbe unique pleine largeur + meilleur choix peaufiné */
.curve-wrap{
  overflow:hidden!important;
}
.curve-wrap .maturity-life-component{
  width:100%;
}
.curve-wrap .curve-svg.curve-svg-desktop{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  aspect-ratio:920/330;
}
.curve-wrap .curve-svg.curve-svg-mobile{
  display:none!important;
}
.curve-wrap .maturity-life-chart{
  width:100%;
  height:auto;
}
@media(max-width:820px){
  .curve-wrap .curve-svg.curve-svg-desktop{
    display:none!important;
  }
  .curve-wrap .curve-svg.curve-svg-mobile{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    aspect-ratio:360/276;
  }
}

.page-meal .pair-card.best{
  padding-top:58px!important;
}
.page-meal .pair-card.best .crown{
  top:0!important;
  left:14px!important;
  margin-top:0!important;
  border-radius:0 0 18px 18px!important;
}
.page-meal .pair-card.best .pair-score{
  width:226px!important;
  min-width:226px!important;
  height:170px!important;
  padding:10px 8px!important;
  border-radius:0!important;
  background:transparent!important;
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px;
  align-items:center;
  justify-items:center;
  column-gap:8px;
}
.page-meal .pair-card.best .pair-score::before,
.page-meal .pair-card.best .pair-score::after{
  content:none!important;
  display:none!important;
}
.page-meal .pair-card.best .pair-score-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.page-meal .pair-card.best .pair-laurel{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:104px;
}
.page-meal .pair-card.best .pair-laurel svg{
  width:44px;
  height:100px;
  overflow:visible;
}
.page-meal .pair-card.best .pair-laurel path{
  fill:none;
  stroke:#E5C16D;
  stroke-width:2.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-laurel path + path,
.page-meal .pair-card.best .pair-laurel path + path + path,
.page-meal .pair-card.best .pair-laurel path + path + path + path,
.page-meal .pair-card.best .pair-laurel path + path + path + path + path{
  fill:#E5C16D;
  stroke:#E5C16D;
  stroke-width:2;
}
.page-meal .pair-card.best .pair-laurel-right svg{
  transform:scaleX(-1);
}
.page-meal .pair-card.best .pair-cta{
  width:auto!important;
  max-width:none!important;
  min-height:54px!important;
  padding:0 28px!important;
  justify-self:center;
  justify-content:center;
  align-self:start;
  font-size:21px!important;
}

@media(max-width:820px){
  .page-meal .pair-card.best .crown{
    top:0!important;
    left:10px!important;
  }
  .page-meal .pair-card.best .pair-score{
    width:auto!important;
    min-width:0!important;
    height:112px!important;
    grid-template-columns:38px minmax(0,1fr) 38px;
    column-gap:4px;
    padding:6px 8px!important;
  }
  .page-meal .pair-card.best .pair-laurel{
    width:34px;
    height:74px;
  }
  .page-meal .pair-card.best .pair-laurel svg{
    width:30px;
    height:70px;
  }
  .page-meal .pair-card.best .pair-cta{
    min-height:48px!important;
    padding:0 22px!important;
    font-size:18px!important;
  }
}


/* Epicave V3.2.80 — épuration courbe + lauriers détaillés */
.page-meal .pair-card.best .pair-score{
  width:236px!important;
  min-width:236px!important;
  height:180px!important;
  grid-template-columns:58px minmax(0,1fr) 58px;
}
.page-meal .pair-card.best .pair-laurel{
  width:56px;
  height:122px;
}
.page-meal .pair-card.best .pair-laurel svg{
  width:52px;
  height:118px;
}
.page-meal .pair-card.best .pair-laurel .laurel-stem{
  fill:none;
  stroke:#E5C16D;
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-laurel .laurel-leaf{
  fill:#E5C16D;
  stroke:#D7AF53;
  stroke-width:1.25;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-laurel .laurel-vein{
  fill:none;
  stroke:#C99B3D;
  stroke-width:1.15;
  stroke-linecap:round;
}
@media(max-width:820px){
  .page-meal .pair-card.best .pair-score{
    width:auto!important;
    min-width:0!important;
    height:118px!important;
    grid-template-columns:42px minmax(0,1fr) 42px;
  }
  .page-meal .pair-card.best .pair-laurel{
    width:38px;
    height:84px;
  }
  .page-meal .pair-card.best .pair-laurel svg{
    width:34px;
    height:80px;
  }
}


/* Epicave V3.2.81 — lauriers affinés, navigation repas, courbe épurée */
.page-meal .pair-card.best .pair-cta{
  cursor:pointer!important;
}
.pair-hero-back{
  display:inline-flex;
  margin:0 0 12px;
}
.page-meal .pair-card.best .pair-score{
  width:238px!important;
  min-width:238px!important;
  height:182px!important;
  grid-template-columns:56px minmax(0,1fr) 56px;
  column-gap:6px;
}
.page-meal .pair-card.best .pair-laurel{
  width:52px;
  height:120px;
}
.page-meal .pair-card.best .pair-laurel svg{
  width:48px;
  height:116px;
  overflow:visible;
}
.page-meal .pair-card.best .pair-laurel .laurel-stem{
  fill:none;
  stroke:#E3BF69;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-laurel .laurel-leaf{
  fill:#E7C36B;
  stroke:#D3A347;
  stroke-width:1.1;
  stroke-linejoin:round;
  filter:drop-shadow(0 1px 0 rgba(255,249,220,.15));
}
.page-meal .pair-card.best .pair-laurel-right svg{transform:scaleX(-1)}
@media(max-width:820px){
  .page-meal .pair-card.best .pair-score{width:auto!important;min-width:0!important;height:114px!important;grid-template-columns:38px minmax(0,1fr) 38px}
  .page-meal .pair-card.best .pair-laurel{width:34px;height:80px}
  .page-meal .pair-card.best .pair-laurel svg{width:30px;height:76px}
}


/* Epicave V3.3.5 — lauriers réalistes, résultats repas immédiats, courbe pleine largeur */
.page-wine .detail-curve-panel{
  overflow:hidden;
}
.page-wine .detail-curve-panel .curve-wrap{
  width:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
.page-wine .detail-curve-panel .maturity-life-component{
  width:100%;
}
.page-wine .detail-curve-panel .life-stage-strip{
  width:100%;
  margin-left:0;
  margin-right:0;
}

.page-meal .pair-card.best .pair-score{
  width:300px!important;
  min-width:300px!important;
  height:190px!important;
  grid-template-columns:82px minmax(0,1fr) 82px;
  column-gap:8px;
}
.page-meal .pair-card.best .pair-laurel{
  width:78px;
  height:142px;
}
.page-meal .pair-card.best .pair-laurel svg{
  width:74px;
  height:138px;
}
.page-meal .pair-card.best .pair-laurel .laurel-stem{
  fill:none;
  stroke:#E7C35E;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-laurel .laurel-leaf{
  fill:#E7C35E;
  stroke:#D4A842;
  stroke-width:1.05;
  stroke-linejoin:round;
}
.page-meal .pair-card.best .pair-score-value{
  font-size:58px!important;
}
.page-meal .pair-card.best .pair-score small{
  font-size:16px!important;
  white-space:nowrap;
}

.pair-results-loading{
  min-height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  border-radius:20px;
  background:#fff;
  border:1px solid #eadfd4;
  color:var(--wine-2);
  box-shadow:var(--shadow-sm);
}
.pair-results-spinner{
  width:22px;
  height:22px;
  border-radius:50%;
  border:3px solid rgba(125,23,50,.16);
  border-top-color:var(--wine);
  animation:epicave-spin .75s linear infinite;
}
@keyframes epicave-spin{to{transform:rotate(360deg)}}

@media(max-width:820px){
  .page-meal .pair-card.best .pair-score{
    width:100%!important;
    min-width:0!important;
    height:122px!important;
    grid-template-columns:52px minmax(0,1fr) 52px;
    column-gap:4px;
  }
  .page-meal .pair-card.best .pair-laurel{width:48px;height:94px}
  .page-meal .pair-card.best .pair-laurel svg{width:44px;height:90px}
  .page-meal .pair-card.best .pair-score-value{font-size:42px!important}
  .page-meal .pair-card.best .pair-score small{font-size:13px!important}
}


/* Epicave V3.3.5 — ajustements lauriers, badge meilleur choix et couleurs courbe */
.life-stage-keep{background:#D7F0DE!important;color:#2F6E3D}
.life-stage-opening{background:#DDEFD4!important;color:#4F7F4B}
.life-stage-peak{background:#F5DE96!important;color:#765018;box-shadow:0 0 15px rgba(213,174,87,.22)}
.life-stage-urgent{background:#F0C6A2!important;color:#8E4611}
.life-stage-decline{background:#E7BBBB!important;color:#843232}
.life-stage-end{background:#201E1E!important;color:#fff}

@media(min-width:821px){
  .page-meal .pair-card.best{
    grid-template-columns:minmax(0,1fr) 274px!important;
    overflow:hidden;
  }
  .page-meal .pair-card.best .crown{
    top:0!important;
    left:0!important;
    width:278px;
    max-width:calc(100% - 306px);
    justify-content:flex-start;
    padding-left:18px!important;
    padding-right:18px!important;
    border-radius:0 0 18px 0!important;
  }
  .page-meal .pair-card.best .pair-score{
    width:258px!important;
    min-width:258px!important;
    height:188px!important;
    grid-template-columns:58px minmax(0,1fr) 58px;
    column-gap:0!important;
    justify-self:start;
    margin-left:-18px;
    padding:8px 0!important;
  }
  .page-meal .pair-card.best .pair-score-center{
    transform:translateX(-2px);
  }
  .page-meal .pair-card.best .pair-laurel{
    width:52px;
    height:132px;
  }
  .page-meal .pair-card.best .pair-laurel svg{
    width:50px;
    height:128px;
  }
  .page-meal .pair-card.best .pair-score-value{
    font-size:56px!important;
  }
}


/* Epicave V3.3.5 — retour Repas standard + badge meilleur choix mobile/PWA */
.page-meal .meal-results-hero{
  position:relative;
  padding-top:62px;
}
.page-meal .meal-results-hero .pair-hero-back{
  margin:0!important;
}

@media(max-width:820px){
  .page-meal .meal-results-hero{
    padding-top:58px;
  }
  .page-meal .pair-card.best .crown{
    top:0!important;
    left:0!important;
    margin:0!important;
    border-radius:0 0 18px 0!important;
  }
}


/* Epicave V3.3.5 — repositionnement Retour mobile/PWA sur résultats Repas */
@media(max-width:820px){
  .page-meal .meal-results-hero{
    padding-top:20px!important;
  }
  .page-meal .meal-results-hero .pair-hero-back{
    position:static!important;
    left:auto!important;
    top:auto!important;
    display:inline-flex!important;
    width:max-content!important;
    max-width:100%;
    margin:0 0 16px 0!important;
    transform:none!important;
  }
}

/* Epicave V3.3.8 — Administration des utilisateurs */
.user-admin-panel,
.user-admin-log-panel,
.user-admin-detail-card{
  border:1px solid rgba(91,54,47,.10);
}
.user-admin-search{max-width:560px}
.user-admin-list{display:grid;gap:8px;margin-top:12px}
.user-admin-table-head,
.user-admin-row{
  display:grid;
  grid-template-columns:minmax(170px,1.45fr) .68fr .82fr .88fr .52fr .56fr .56fr .72fr .66fr .70fr;
  gap:10px;
  align-items:center;
}
.user-admin-table-head{
  padding:0 14px 8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.user-admin-row{
  width:100%;
  min-height:70px;
  padding:12px 14px;
  border:1px solid #eadfd4;
  border-radius:15px;
  background:#fffdf9;
  color:#4f3f3a;
  text-align:left;
  font:600 12px/1.25 var(--sans);
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.user-admin-row:hover{
  transform:translateY(-1px);
  border-color:rgba(125,23,50,.22);
  box-shadow:0 8px 22px rgba(47,11,22,.08);
}
.user-admin-identity{display:grid;gap:3px;min-width:0}
.user-admin-identity strong{font:700 16px/1.08 var(--serif);color:var(--wine-2);overflow:hidden;text-overflow:ellipsis}
.user-admin-identity em{font-style:normal;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-admin-cell{min-width:0}
.user-admin-cell small{display:none}
.user-admin-number{text-align:center;font-weight:800;color:var(--wine-2)}
.user-account-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:66px;
  padding:5px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
.user-account-status.active{background:#e5f3e8;color:#2f6e3d}
.user-account-status.suspended{background:#f0d9da;color:#8c3036}
.user-admin-log-panel h2,
.user-admin-detail-card h2{font-size:25px}
.user-admin-log-list{display:grid;gap:8px}
.user-admin-log-row{
  display:grid;
  grid-template-columns:135px 180px minmax(220px,1fr) minmax(180px,.8fr);
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border-radius:13px;
  background:#fbf6f1;
  border:1px solid rgba(125,23,50,.08);
  font-size:12px;
}
.user-admin-log-row time,
.user-admin-log-row small{color:var(--muted)}
.user-admin-log-row strong{color:var(--wine-2)}
.user-admin-log-empty{color:var(--muted);font-size:13px}
.user-admin-detail-heading{position:relative;padding-top:42px}
.user-admin-detail-heading .user-admin-back{position:absolute;left:0;top:0}
.user-admin-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.user-admin-detail-card{margin-bottom:0}
.user-admin-actions-card{grid-column:1/-1}
.user-admin-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:16px}
.user-admin-facts>div{
  display:grid;
  gap:4px;
  padding:12px 0;
  border-bottom:1px solid #eee1d7;
}
.user-admin-facts span{color:var(--muted);font-size:11px;font-weight:700}
.user-admin-facts strong{color:var(--wine-2);font-size:14px;overflow-wrap:anywhere}
.user-admin-usage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.user-admin-usage>div{
  min-height:92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:12px;
  border-radius:16px;
  background:#fbf6f1;
  border:1px solid #eadfd4;
  text-align:center;
}
.user-admin-usage strong{font:700 28px/1 var(--serif);color:var(--wine)}
.user-admin-usage span{font-size:11px;color:var(--muted);font-weight:700}
.user-admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.user-admin-suspend{border-color:#b87e48!important;color:#7d4e25!important}
.user-admin-delete{background:#8f243b!important}
.user-admin-protected-note{
  margin:14px 0 0;
  padding:13px 15px;
  border-radius:14px;
  background:#fbf3df;
  color:#72511b;
  border:1px solid rgba(184,137,50,.22);
  font-size:13px;
}

@media(max-width:1100px) and (min-width:821px){
  .user-admin-table-head,
  .user-admin-row{
    grid-template-columns:minmax(160px,1.3fr) .64fr .76fr .82fr .48fr .52fr .52fr .64fr .62fr .66fr;
    gap:7px;
  }
  .user-admin-row{font-size:11px;padding-inline:10px}
  .user-admin-table-head{font-size:10px;padding-inline:10px}
}

@media(max-width:820px){
  .user-admin-heading-wrap{margin-top:14px}
  .user-admin-panel{padding:15px}
  .user-admin-search{max-width:none}
  .user-admin-table-head{display:none}
  .user-admin-list{gap:11px}
  .user-admin-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 14px;
    min-height:0;
    padding:15px;
    border-radius:18px;
  }
  .user-admin-identity{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid #eee1d7}
  .user-admin-identity strong{font-size:19px}
  .user-admin-identity em{font-size:12px}
  .user-admin-cell{display:grid;gap:4px;font-size:12px}
  .user-admin-cell small{display:block;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
  .user-admin-number{text-align:left}
  .user-admin-log-row{grid-template-columns:1fr;gap:4px;padding:12px}
  .user-admin-log-row time{font-size:10px}
  .user-admin-detail-heading{padding-top:46px}
  .user-admin-detail-grid{grid-template-columns:1fr;gap:12px}
  .user-admin-actions-card{grid-column:auto}
  .user-admin-facts{grid-template-columns:1fr;gap:0}
  .user-admin-usage{grid-template-columns:1fr 1fr}
  .user-admin-actions{display:grid;grid-template-columns:1fr}
  .user-admin-actions .btn{width:100%}
}

@media(max-width:430px){
  .user-admin-row{grid-template-columns:1fr}
  .user-admin-identity{grid-column:auto}
  .user-admin-usage{grid-template-columns:1fr 1fr}
}


/* Epicave V3.3.8 — Administration utilisateurs sans fond derrière les titres */
.page-usersAdmin .user-admin-heading-wrap .page-title,
.page-usersAdmin .user-admin-heading-wrap .page-sub,
.page-usersAdmin .user-admin-detail-heading .page-title,
.page-usersAdmin .user-admin-detail-heading .page-sub{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}
.page-usersAdmin .user-admin-heading-wrap .page-title,
.page-usersAdmin .user-admin-detail-heading .page-title{
  padding:0!important;
  margin-left:0!important;
}
.page-usersAdmin .user-admin-heading-wrap .page-sub,
.page-usersAdmin .user-admin-detail-heading .page-sub{
  padding:0!important;
  margin-left:0!important;
  width:auto!important;
}


/* Epicave V3.3.8 — administration utilisateurs, navigation et références cliquables */
@media(min-width:821px){
  .sidebar-profile-quote{
    margin:30px 10px 0!important;
    padding:20px 8px 0!important;
    transform:none!important;
    color:#ebcf95;
    text-align:center;
    font:italic 16px/1.42 var(--serif);
    border-top:1px solid rgba(235,207,149,.22);
  }
}
@media(max-width:820px){.sidebar-profile-quote{display:none!important}}

/* Même bandeau premium que Réglages / Référentiels */
.page-usersAdmin .user-admin-heading-wrap .admin-heading,
.page-usersAdmin .user-admin-detail-heading-wrap .admin-heading{
  position:relative;
  overflow:hidden;
  background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1600") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-usersAdmin .user-admin-heading-wrap .page-title,
.page-usersAdmin .user-admin-detail-heading-wrap .page-title{
  color:#e1b665!important;
  background:transparent!important;
  text-shadow:0 2px 10px rgba(37,9,17,.34)!important;
}
.page-usersAdmin .user-admin-heading-wrap .page-sub,
.page-usersAdmin .user-admin-detail-heading-wrap .page-sub{
  color:#f2ded6!important;
  background:transparent!important;
}
@media(min-width:821px){
  .page-usersAdmin .user-admin-heading-wrap .admin-heading,
  .page-usersAdmin .user-admin-detail-heading-wrap .admin-heading{
    min-height:150px;
    margin:8px 0 22px!important;
    padding:30px 34px!important;
    border-radius:26px!important;
    display:flex;
    align-items:center;
    box-sizing:border-box;
  }
  .page-usersAdmin .user-admin-heading-wrap .page-title,
  .page-usersAdmin .user-admin-detail-heading-wrap .page-title{font-size:38px!important;margin:0!important;padding:0!important}
  .page-usersAdmin .user-admin-heading-wrap .page-sub,
  .page-usersAdmin .user-admin-detail-heading-wrap .page-sub{margin:8px 0 0!important;padding:0!important}
  .page-usersAdmin .user-admin-detail-heading{padding-left:118px!important}
  .page-usersAdmin .user-admin-detail-heading .user-admin-back{left:34px!important;top:50%!important;transform:translateY(-50%)!important}
}
@media(max-width:820px){
  .page-usersAdmin .user-admin-heading-wrap .admin-heading,
  .page-usersAdmin .user-admin-detail-heading-wrap .admin-heading{
    width:auto;
    min-height:164px;
    margin:0 -14px 18px!important;
    padding:58px 20px 26px!important;
    border-radius:0 0 24px 24px!important;
    display:flex;
    justify-content:center;
  }
  .page-usersAdmin .user-admin-heading-wrap .page-title,
  .page-usersAdmin .user-admin-detail-heading-wrap .page-title{font-size:35px!important;margin:0!important;padding:0!important}
  .page-usersAdmin .user-admin-detail-heading{padding-top:70px!important}
  .page-usersAdmin .user-admin-detail-heading .user-admin-back{left:20px!important;top:18px!important}
}

/* Séparation nette Administrateurs / Utilisateurs */
.user-admin-group-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:8px;
  padding:9px 13px;
  border-radius:12px;
  font:800 12px/1 var(--sans);
  letter-spacing:.045em;
  text-transform:uppercase;
}
.user-admin-group-label.admin{background:#F3E2B9;color:#6B4A1F;border:1px solid #E4C77F}
.user-admin-group-label.users{background:#F3E8E9;color:#7D1732;border:1px solid #E5CDD1;margin-top:18px}
.user-admin-group-label strong{font-size:11px}
.user-admin-row.role-admin{background:#FFF8E9;border-color:#E3C982;box-shadow:0 3px 10px rgba(174,127,43,.09)}
.user-admin-row.role-user{background:#fffdfb}
.user-role-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}
.user-role-badge.admin{background:#EAD09A;color:#694817}
.user-role-badge.user{background:#F0E4E6;color:#7D1732}

/* Les noms des références ouvrent directement l'éditeur */
.admin-reference-title,
.dish-admin-title{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  text-align:left;
  cursor:pointer;
  font:700 17px/1.15 var(--serif);
  color:var(--wine);
}
.admin-reference-title:hover,
.dish-admin-title:hover{text-decoration:underline;text-underline-offset:3px}
.admin-reference-title:focus-visible,
.dish-admin-title:focus-visible{outline:2px solid rgba(125,23,50,.35);outline-offset:3px;border-radius:4px}


/* Epicave V3.3.8 — fiche utilisateur, rôles, citation et bouton historique */
.page-usersAdmin .user-admin-detail-back-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin:8px 0 12px;
}
.page-usersAdmin .user-admin-detail-back-row .user-admin-back{
  position:static!important;
  transform:none!important;
  margin:0!important;
}
.page-usersAdmin .user-admin-detail-heading{
  padding-left:34px!important;
  padding-top:30px!important;
}
@media(max-width:820px){
  .page-usersAdmin .user-admin-detail-back-row{
    margin:12px 0 10px;
  }
  .page-usersAdmin .user-admin-detail-heading{
    padding:58px 20px 26px!important;
  }
}
.user-admin-role-control{
  margin-top:16px;
  padding:14px;
  border-radius:16px;
  background:#fbf6f1;
  border:1px solid #eadfd4;
}
.user-admin-role-control>label{
  display:block;
  margin-bottom:8px;
  color:var(--wine-2);
  font-size:12px;
  font-weight:800;
}
.user-admin-role-row{
  display:flex;
  align-items:center;
  gap:10px;
}
.user-admin-role-row .input{max-width:260px}
@media(max-width:620px){
  .user-admin-role-row{display:grid;grid-template-columns:1fr}
  .user-admin-role-row .input{max-width:none}
  .user-admin-role-row .btn{width:100%}
}
@media(min-width:821px){
  .sidebar-profile-quote{
    margin-top:48px!important;
  }
}
.detail-hero-actions #restoreWine{
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  padding-left:16px!important;
  padding-right:16px!important;
  margin:0!important;
  justify-self:start!important;
}
@media(max-width:820px){
  .detail-hero-actions #restoreWine{
    min-width:0!important;
    width:max-content!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
}


/* Epicave V3.3.13 — nom des références vin réellement cliquable */
.page-admin .admin-wine-row .admin-row-main{
  pointer-events:auto!important;
  cursor:default!important;
}
.page-admin .admin-wine-row .admin-row-main .admin-reference-title{
  pointer-events:auto!important;
  cursor:pointer!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.page-admin .admin-wine-row .admin-row-main > span,
.page-admin .admin-wine-row .admin-row-main > small{
  pointer-events:none!important;
}


/* Epicave V3.3.13 — style des pastilles sans modifier leur géométrie historique */
/* Reflet intégré au fond : aucune bordure, aucune position, aucun padding ou dimension ajoutés. */
.status.gold::before,
.status.green::before,
.status.opening::before,
.status.urgent::before,
.status.decline::before,
.status.end-life::before{
  content:none!important;
}

.status.green{
  background:
    linear-gradient(180deg,rgba(255,255,255,.24) 0%,rgba(255,255,255,.08) 42%,rgba(255,255,255,0) 43%),
    linear-gradient(180deg,#4E9A5D 0%,#357545 100%)!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(24,60,34,.28)!important;
}
.status.opening{
  background:
    linear-gradient(180deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.08) 42%,rgba(255,255,255,0) 43%),
    linear-gradient(180deg,#B4C95B 0%,#8EA23A 100%)!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(58,68,17,.28)!important;
}
.status.urgent{
  background:
    linear-gradient(180deg,rgba(255,255,255,.24) 0%,rgba(255,255,255,.07) 42%,rgba(255,255,255,0) 43%),
    linear-gradient(180deg,#D17A29 0%,#B55E18 100%)!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(72,34,8,.28)!important;
}
.status.decline{
  background:
    linear-gradient(180deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,.06) 42%,rgba(255,255,255,0) 43%),
    linear-gradient(180deg,#B24D4D 0%,#8E3535 100%)!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(63,18,18,.28)!important;
}
.status.end-life{
  background:
    linear-gradient(180deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.04) 42%,rgba(255,255,255,0) 43%),
    linear-gradient(180deg,#3B3838 0%,#1C1C1C 100%)!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(0,0,0,.34)!important;
}

/* Apogée : scintillement existant conservé, sans toucher à sa géométrie. */
.status.gold.apogee-highlight{
  border:0!important;
}

/* Géométrie Ma cave restaurée exactement comme avant V3.3.13. */
.cave-card > .status{
  position:absolute!important;
  left:10px!important;
  top:10px!important;
  z-index:10!important;
  margin:0!important;
  max-width:calc(100% - 92px)!important;
  border:0!important;
  overflow:visible!important;
}
@media(max-width:820px){
  .cave-card > .status{
    left:8px!important;
    top:8px!important;
    max-width:calc(100% - 82px)!important;
  }
}
@media(max-width:430px){
  .cave-card > .status{
    left:8px!important;
    top:8px!important;
  }
}

.cave-card>.status.green{box-shadow:0 4px 12px rgba(52,100,62,.18)!important}
.cave-card>.status.opening{box-shadow:0 4px 12px rgba(120,141,46,.20)!important}
.cave-card>.status.urgent{box-shadow:0 4px 12px rgba(181,94,24,.20)!important}
.cave-card>.status.decline{box-shadow:0 4px 12px rgba(142,53,53,.20)!important}
.cave-card>.status.end-life{box-shadow:0 4px 12px rgba(28,28,28,.22)!important}


/* Epicave V3.3.17 — mode démo */
.auth-demo-btn{
  margin-top:12px;
  color:var(--wine);
  border-color:rgba(101,13,37,.22);
  background:rgba(255,255,255,.74);
}
.auth-demo-btn:hover{border-color:rgba(101,13,37,.38)}
.demo-mode-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 18px;
  padding:10px 14px;
  border:1px solid rgba(183,139,67,.28);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(250,241,220,.96),rgba(255,252,246,.96));
  box-shadow:0 5px 16px rgba(68,30,24,.06);
  color:#675044;
  font-size:13px;
}
.demo-mode-bar strong{color:var(--wine);font-family:var(--serif);font-size:15px}
.demo-mode-actions{display:flex;align-items:center;gap:8px;flex:none}
.demo-mode-actions .link-btn{padding:8px 10px;color:var(--wine);font-weight:800}
.demo-mode-actions .btn{padding:9px 13px;border-radius:12px;font-size:12px}
.demo-account-card{max-width:760px}
.demo-account-card .profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.demo-rating-panel .btn{margin-top:8px}
@media(max-width:820px){
  .demo-mode-bar{margin:0 0 14px;padding:10px 12px;align-items:flex-start;flex-direction:column;gap:8px}
  .demo-mode-actions{width:100%;justify-content:flex-start}
  .demo-mode-actions .btn,.demo-mode-actions .link-btn{flex:1}
}


/* Epicave V3.3.21 — taille des données et nettoyage utilisateur */
.user-admin-size{font-weight:800;color:var(--wine-2);white-space:nowrap}
.user-admin-data-card{align-self:stretch}
.user-admin-data-total{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  margin-top:16px;padding:15px 16px;border-radius:15px;
  background:#f8efe8;border:1px solid rgba(125,23,50,.10);
}
.user-admin-data-total strong{font:700 31px/1 var(--serif);color:var(--wine)}
.user-admin-data-total span{font-size:11px;font-weight:800;color:var(--muted);text-align:right}
.user-admin-data-breakdown{display:grid;gap:8px;margin-top:10px}
.user-admin-data-breakdown>div{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:12px;background:#fffaf6;border:1px solid #eee1d7}
.user-admin-data-breakdown span{font-size:11px;color:var(--muted);font-weight:700}
.user-admin-data-breakdown strong{font-size:12px;color:var(--wine-2)}
.user-admin-clean{border-color:#b99048!important;color:#76551f!important;background:#fff9ec!important}
@media(max-width:820px){
  .user-admin-data-total{align-items:flex-start;flex-direction:column}
  .user-admin-data-total span{text-align:left}
}


/* Epicave V3.3.21 — citation web légèrement descendue */
@media(min-width:821px){
  .sidebar-profile-quote{
    margin-top:62px!important;
  }
}


/* Epicave V3.3.23 — Safari iPhone + nettoyage utilisateurs */
.camera-ios-native{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:linear-gradient(180deg,#211619 0%,#120d0f 100%);
  z-index:1;
}
.camera-ios-native-inner{
  position:relative;
  z-index:3;
  width:min(360px,100%);
  display:grid;
  gap:12px;
  justify-items:center;
  text-align:center;
  color:#fff;
}
.camera-ios-native-inner h2{margin:2px 0 0;font:700 25px/1.08 var(--serif);color:#fff}
.camera-ios-native-inner p{margin:0 0 5px;color:rgba(255,255,255,.76);font-size:13px;line-height:1.45}
.camera-ios-native-inner .btn{min-width:210px;justify-content:center}
.camera-native-ios .scan-frame{pointer-events:none;opacity:.38}
.camera-native-ios .scan-shade{opacity:.22}
.camera-native-ios .detect-badge{z-index:4}

.user-admin-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.user-admin-toolbar .user-admin-search{flex:1;min-width:0;margin:0}
.user-admin-clean-all{flex:none;white-space:nowrap;border-color:#b99048!important;color:#76551f!important;background:#fff9ec!important}
.user-admin-clean-control{
  margin-top:16px;
  padding:14px;
  border-radius:16px;
  background:#fbf6f1;
  border:1px solid #eadfd4;
}
.user-admin-clean-control>label{
  display:block;
  margin-bottom:8px;
  color:var(--wine-2);
  font-size:12px;
  font-weight:800;
}
.user-admin-clean-control .btn{width:max-content}
@media(min-width:821px){
  .user-admin-actions{width:100%;justify-content:space-between;align-items:center}
  .user-admin-actions .user-admin-delete{margin-left:auto}
}
@media(max-width:820px){
  .user-admin-toolbar{align-items:stretch;flex-direction:column}
  .user-admin-clean-all{width:100%}
  .user-admin-clean-control .btn{width:100%}
}


/* Epicave V3.3.28 — citation ancrée en bas du menu web */
@media(min-width:821px){
  .sidebar-bottom{
    margin-top:auto!important;
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    min-height:0;
  }
  .sidebar-bottom .sidebar-profile-quote{
    margin:28px 10px 0!important;
    padding:18px 8px 4px!important;
    border-top:0!important;
    transform:none!important;
  }
}


/* Epicave V3.3.28 — citation au-dessus des boutons d’administration */
@media(min-width:821px){
  .sidebar-bottom .sidebar-profile-quote{
    margin:28px 10px 20px!important;
  }
}


/* Epicave V3.3.28 — citation légèrement remontée + marque cliquable */
@media(min-width:821px){
  .sidebar-bottom .sidebar-profile-quote{
    margin-bottom:30px!important;
  }
}
.brand-home-link{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.brand-home-link:visited{color:inherit}


/* Epicave V3.3.28 — citation remontée, sans barre de séparation */
@media(min-width:821px){
  .sidebar-bottom .sidebar-profile-quote{
    margin-bottom:44px!important;
    border-top:0!important;
    padding-top:0!important;
  }
}


/* Epicave V3.3.28 — fiche utilisateur pleine largeur */
.page-usersAdmin .user-admin-account-card,
.page-usersAdmin .user-admin-usage-data-card{
  grid-column:1/-1;
}
.page-usersAdmin .user-admin-usage-data-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:24px;
  align-items:start;
}
.page-usersAdmin .user-admin-data-block{
  min-width:0;
  padding-left:24px;
  border-left:1px solid #eadfd4;
}
@media(max-width:820px){
  .page-usersAdmin .user-admin-account-card,
  .page-usersAdmin .user-admin-usage-data-card{grid-column:auto;}
  .page-usersAdmin .user-admin-usage-data-grid{grid-template-columns:1fr;gap:22px;}
  .page-usersAdmin .user-admin-data-block{padding-left:0;padding-top:20px;border-left:0;border-top:1px solid #eadfd4;}
}


/* Epicave V3.3.30 — fond cave / historique + style harmonisé des cadres de vins */

/* Même fond voûté pour Ma cave et Historique. */
.page-cave .main,
.page-history .main{
  background:
    linear-gradient(rgba(37,8,17,.13),rgba(37,8,17,.23)),
    url("/image/fond-cave.jpg?v=3.3.30") center/cover fixed!important;
}
@media(max-width:820px){
  .page-cave .main,
  .page-history .main{
    background:
      linear-gradient(rgba(37,8,17,.13),rgba(37,8,17,.23)),
      url("/image/fond-cave.jpg?v=3.3.30") center/cover scroll!important;
  }
}

/* Même identité pour tous les cadres représentant un vin.
   La géométrie existante n'est pas modifiée. */
.wine-card,
.cave-card,
.pair-card,
.external-wine-card{
  background:rgba(75,15,32,.60)!important;
  border-color:rgba(221,184,105,.92)!important;
  box-shadow:
    0 8px 22px rgba(32,7,15,.18),
    inset 0 1px 0 rgba(255,231,181,.08)!important;
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}

/* Le meilleur choix conserve sa mise en page spéciale mais adopte la même matière. */
.page-meal .pair-card.best{
  background:rgba(75,15,32,.60)!important;
  border:1px solid rgba(221,184,105,.92)!important;
}

/* Textes auparavant noirs/foncés -> blancs. */
.wine-card .wine-title,
.wine-card .wine-meta,
.wine-card .wine-region,
.wine-card .wine-note,
.cave-card .wine-title,
.cave-card .wine-meta,
.cave-card .wine-region,
.cave-card .wine-note,
.cave-card .qty,
.cave-card .qty-count,
.cave-card .cave-footer,
.pair-card .wine-title,
.pair-card .wine-meta,
.pair-card .wine-region,
.pair-card .wine-note,
.pair-card:not(.best) .pair-score,
.external-wine-card .external-wine-main h2,
.external-wine-card .external-wine-cuvee,
.external-wine-card .external-search-note{
  color:#fff!important;
}

/* Informations secondaires légèrement adoucies, sans redevenir grises/foncées. */
.wine-card .wine-meta,
.wine-card .wine-region,
.wine-card .wine-note,
.cave-card .wine-meta,
.cave-card .wine-region,
.cave-card .wine-note,
.cave-card .qty,
.cave-card .qty-count,
.pair-card .wine-meta,
.pair-card .wine-region,
.pair-card .wine-note,
.external-wine-card .external-wine-cuvee,
.external-wine-card .external-search-note{
  color:rgba(255,255,255,.88)!important;
}

/* Séparateurs internes assortis au contour doré. */
.cave-card .qty{
  border-top-color:rgba(221,184,105,.38)!important;
}

/* Recherche de vin : les petits blocs internes restent lisibles sur le fond bordeaux. */
.external-wine-card .external-wine-facts span{
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(221,184,105,.42)!important;
  color:#fff!important;
}
.external-wine-card .external-wine-facts strong{
  color:#efd498!important;
}

/* Le score spécial du meilleur choix garde son or existant. */
.page-meal .pair-card.best .pair-score{
  color:#f3d28f!important;
}


/* Epicave V3.3.30 — avis communautaires d'un vin */
.community-rating-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  text-align:left;
}
.community-rating-static{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.community-rating-loading{
  letter-spacing:0;
  font-size:16px;
}
.detail-rating-stars{
  font:700 23px/1 var(--serif);
  letter-spacing:1.5px;
}
.detail-rating-meta{
  font:700 14px/1.2 var(--sans);
  letter-spacing:0;
  color:#f6e9cb;
}
.community-rating-btn:hover .detail-rating-meta{
  color:#fff1d2;
}
.wine-reviews-heading{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:18px;
}
.wine-reviews-intro{margin-bottom:16px}
.wine-community-reviews-panel{margin-top:16px}
.community-review-list{display:grid;gap:14px}
.community-review-card{
  border:1px solid rgba(221,184,105,.32);
  border-radius:22px;
  padding:18px 18px 16px;
  background:rgba(75,15,32,.36);
  color:#fff;
}
.community-review-card.mine{
  border-color:rgba(221,184,105,.62);
  box-shadow:0 10px 24px rgba(38,7,16,.14);
}
.community-review-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:10px;
}
.community-review-head h3{
  margin:0 0 5px;
  color:#f3d28f;
  font:700 20px/1.15 var(--serif);
}
.community-review-stars{
  color:#efc875;
  font:700 18px/1 var(--serif);
  letter-spacing:1px;
}
.community-review-date{
  color:rgba(255,255,255,.78);
  font-size:13px;
  white-space:nowrap;
}
.community-review-comment{
  margin:0;
  color:rgba(255,255,255,.92);
  line-height:1.6;
}
.community-review-comment.empty-comment{
  color:rgba(255,255,255,.72);
  font-style:italic;
}
@media (max-width:820px){
  .detail-rating-stars{font-size:21px}
  .detail-rating-meta{font-size:13px}
  .community-review-head{flex-direction:column;align-items:flex-start}
  .community-review-date{white-space:normal}
}


/* Epicave V3.4.0 — préférences de notifications de maturité */
@media(min-width:821px){
  .page-profile .account-profile-card{grid-column:1;grid-row:1}
  .page-profile .notifications-profile-card{grid-column:1;grid-row:2}
  .page-profile .personal-data-card{grid-column:2;grid-row:1 / span 2}
}
.page-profile .notifications-profile-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:#fff!important;
  background:
    linear-gradient(90deg,rgba(40,8,16,.96),rgba(96,20,40,.80),rgba(73,7,26,.72)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  border:1px solid rgba(216,172,100,.20)!important;
  box-shadow:0 18px 36px rgba(64,9,22,.18)!important;
}
.page-profile .notifications-profile-card h2{color:#e7bd72!important}
.page-profile .notifications-profile-card>p{color:#f3e4dc!important;margin:0 0 16px}
.notification-settings-list{display:grid;gap:10px}
.notification-setting-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(231,189,114,.24);
  background:rgba(255,255,255,.08);
  cursor:pointer;
}
.notification-setting-row>span{display:grid;gap:3px;min-width:0}
.notification-setting-row strong{color:#fff;font-size:14px}
.notification-setting-row small{color:#eadbd5;font-size:12px;line-height:1.35}
.notification-setting-row input{position:absolute;opacity:0;pointer-events:none}
.notification-setting-row i{
  position:relative;
  flex:0 0 48px;
  width:48px;
  height:27px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
  transition:.18s ease;
}
.notification-setting-row i::after{
  content:"";
  position:absolute;
  width:21px;
  height:21px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.24);
  transition:.18s ease;
}
.notification-setting-row input:checked+i{
  background:linear-gradient(180deg,#d3ad60,#ae7a28);
}
.notification-setting-row input:checked+i::after{transform:translateX(21px)}
.notification-setting-row:focus-within{outline:2px solid rgba(239,200,117,.65);outline-offset:2px}
.notification-device-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(231,189,114,.20);
}
.notification-device-row span{color:#eadbd5;font-size:12px;line-height:1.4}
.notification-permission-btn{flex:0 0 auto}
@media(max-width:820px){
  .notification-device-row{align-items:flex-start;flex-direction:column}
  .notification-permission-btn{width:auto}
}

/* Epicave V3.4.19 — profil web en deux lignes équilibrées + cave plus lisible */
@media(min-width:821px){
  .page-profile .account-profile-card{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0;
  }
  .page-profile .personal-data-card{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0;
  }
  .page-profile .notifications-profile-card{
    grid-column:1!important;
    grid-row:2!important;
    min-width:0;
  }
  .page-profile .locations-profile-card{
    grid-column:2!important;
    grid-row:2!important;
    min-width:0;
  }
}

/* Ma cave uniquement : bordeaux un peu moins transparent, géométrie inchangée. */
.page-cave .cave-card{
  background:rgba(75,15,32,.72)!important;
}


/* Epicave V3.4.19 — cartes cave plus opaques + fond mobile dédié */
.page-cave .cave-card{
  background:rgba(75,15,32,.85)!important;
}

@media(max-width:820px){
  .page-cave .main{
    background:
      linear-gradient(rgba(37,8,17,.08),rgba(37,8,17,.16)),
      url("/image/fond-cave-mobile.jpg?v=3.4.19") center top / cover no-repeat fixed!important;
  }
}

/* Journal administratif : titre + action sur la même ligne. */
.user-admin-log-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
.user-admin-log-head-copy{min-width:0}
.user-admin-log-head-copy h2{margin-top:0}
.user-admin-clear-log{
  flex:0 0 auto;
  margin-left:auto;
}
@media(max-width:820px){
  .user-admin-log-head{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  .user-admin-clear-log{
    align-self:flex-start;
    margin-left:0;
  }
}


/* Epicave V3.4.19 — étoiles pleines or dans Ma cave et Historique */
.page-cave .cave-card .cave-rating,
.page-history .cave-card .cave-rating{
  color:#E6B84F!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Petit reflet doré sans halo blanc. */
.page-cave .cave-card .cave-rating,
.page-history .cave-card .cave-rating{
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}


/* Epicave V3.4.19 — nettoyage déplacé sous Utilisation / Taille des données */
.user-admin-usage-data-card>.user-admin-clean-control{
  margin-top:22px;
  padding:18px 0 0;
  border-radius:0;
  border:0;
  border-top:1px solid #eadfd4;
  background:transparent;
}
.user-admin-usage-data-card>.user-admin-clean-control>label{
  margin-bottom:10px;
  font-size:16px;
  font-weight:800;
  color:var(--wine-2);
}
@media(max-width:820px){
  .user-admin-usage-data-card>.user-admin-clean-control{margin-top:18px;padding-top:16px}
}


/* Epicave V3.4.19 — statut du compte visible en haut à droite */
.page-usersAdmin .user-admin-account-card{
  position:relative;
}
.page-usersAdmin .user-admin-account-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.page-usersAdmin .user-admin-account-head h2{
  margin:0;
}
.page-usersAdmin .user-admin-account-status{
  flex:0 0 auto;
}
@media(max-width:520px){
  .page-usersAdmin .user-admin-account-head{
    align-items:flex-start;
  }
}


/* Epicave V3.4.19 — rendu unique des étoiles de notation
   Référence visuelle : étoiles de Ma cave / Historique. */

/* Notes déjà attribuées : même or plein, dégradé et reflet partout. */
.opening-rating,
.detail-rating:not(.community-rating-btn),
.detail-rating-stars,
.community-review-stars,
.page-cave .cave-card .cave-rating,
.page-history .cave-card .cave-rating{
  color:#E6B84F!important;
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  )!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Note moyenne cliquable de la fiche vin. */
.community-rating-btn .detail-rating-stars,
.community-rating-static .detail-rating-stars{
  color:#E6B84F!important;
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  )!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Formulaire "Mon avis sur ce vin" :
   seules les étoiles sélectionnées / survolées prennent le rendu de référence. */
.wine-rating-stars input:checked~label,
.wine-rating-stars label:hover,
.wine-rating-stars label:hover~label{
  color:#E6B84F!important;
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  )!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Modale après consommation. */
.consumed-rating-stars input:checked~label,
.consumed-rating-stars label:hover,
.consumed-rating-stars label:hover~label{
  color:#E6B84F!important;
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  )!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Contact & avis : même finition pour les étoiles choisies,
   sans modifier les étoiles non sélectionnées. */
.page-recommendations .rating-stars label.is-selected,
.page-recommendations .review-rating-buttons .review-star.is-selected,
.page-recommendations .feedback-card .review-rating-native .review-rating-radio:checked ~ .review-rating-label,
.page-recommendations .feedback-card .review-rating-native .review-rating-label:hover,
.page-recommendations .feedback-card .review-rating-native .review-rating-label:hover ~ .review-rating-label{
  color:#E6B84F!important;
  background:linear-gradient(
    180deg,
    #FFF0A6 0%,
    #E8BC55 34%,
    #C9912B 72%,
    #F0C75D 100%
  )!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
  filter:none!important;
}

/* Variante radio directe utilisée sur Contact & avis.
   Un pseudo-élément ne peut pas reprendre proprement le clip de texte partout,
   on reproduit donc la même teinte/reflet sans contour blanc. */
.page-recommendations .feedback-card .review-rating-direct .review-star-radio:checked::before,
.page-recommendations .feedback-card .review-rating-direct .review-star-radio:has(~ .review-star-radio:checked)::before,
.page-recommendations .feedback-card .review-rating-direct .review-star-radio.is-before-selected::before{
  color:#E6B84F!important;
  text-shadow:
    0 -1px 0 rgba(255,242,183,.28),
    0 1px 2px rgba(91,54,10,.34),
    0 0 5px rgba(230,184,79,.22)!important;
}


/* Epicave V3.4.19 — Commande de vin */
.page-wineOrders .wine-orders-heading{
  position:relative;overflow:hidden;min-height:150px;margin:8px 0 22px;padding:30px 34px;border-radius:26px;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  background:linear-gradient(90deg,rgba(49,5,18,.94),rgba(70,9,27,.62),rgba(70,9,27,.25)),
    url("https://images.unsplash.com/photo-1662624335971-57960e9e669f?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  box-shadow:var(--shadow)!important;
}
.page-wineOrders .wine-orders-heading .page-title{color:#e1b665!important;margin:0!important;background:transparent!important;box-shadow:none!important}
.page-wineOrders .wine-orders-heading .page-sub{color:#f2ded6!important;margin:7px 0 0!important;background:transparent!important;box-shadow:none!important}
.wine-orders-access-card{border-color:rgba(216,172,100,.34)!important}
.wine-orders-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}
.wine-orders-panel{padding:20px}
.wine-orders-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}
.wine-orders-toolbar h2{margin:0;color:var(--wine-2);font:700 26px/1.1 var(--serif)}
.wine-orders-toolbar p{margin:6px 0 0;color:var(--muted)}
.wine-order-clients{display:grid;gap:16px}
.wine-order-client{border:1px solid #eadfd4;border-radius:20px;background:#fffdf9;padding:18px;box-shadow:0 7px 20px rgba(62,25,25,.06)}
.wine-order-client-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-bottom:14px}
.wine-order-client-head .field{margin:0}.wine-order-client-name{font-weight:800}
.wine-order-lines{display:grid;gap:10px}
.wine-order-line{display:grid;grid-template-columns:minmax(260px,1fr) 82px 150px 115px 38px;gap:10px;align-items:end;padding:11px;border-radius:15px;background:#faf5ef;border:1px solid #eee2d8}
.wine-order-line .field{margin:0}.wine-order-line label{font-size:11px}.wine-order-line-total{align-self:center;text-align:right;color:var(--wine);font-weight:900;white-space:nowrap}
.wine-order-price-input{position:relative}.wine-order-price-input .input{padding-right:28px}.wine-order-price-input span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#8c7770;font-weight:800}
.wine-order-remove-line{width:34px;height:34px;border:1px solid #dfcfc7;border-radius:50%;background:#fff;color:#8e3145;font-size:20px;cursor:pointer;align-self:center}
.wine-order-add-line{margin-top:12px}
.wine-order-client-footer{display:flex;align-items:center;justify-content:flex-end;gap:28px;margin-top:16px;padding-top:14px;border-top:1px solid #eadfd4}
.wine-order-client-footer>div{display:flex;align-items:baseline;gap:10px}.wine-order-client-footer small{color:var(--muted)}.wine-order-client-footer strong{color:var(--wine);font-size:20px}
.wine-order-paid{display:flex;align-items:center;gap:9px;font-weight:850;color:var(--wine);cursor:pointer}.wine-order-paid input{width:19px;height:19px;accent-color:#a7772f}
.wine-order-empty-lines{padding:14px;border:1px dashed #dccbc0;border-radius:13px;color:var(--muted);text-align:center}
.wine-order-totals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.wine-order-totals>div{padding:18px;border:1px solid #ead8b3;border-radius:18px;background:linear-gradient(135deg,#fffaf2,#fff)}.wine-order-totals small{display:block;color:var(--muted);margin-bottom:5px}.wine-order-totals strong{display:block;color:var(--wine);font:700 30px/1 var(--serif)}
.wine-order-submit-row{display:flex;justify-content:flex-end;margin-top:18px}.wine-order-submit-row .btn{min-width:210px}
.wine-order-history-list{display:grid;gap:12px}.wine-order-history-card{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:22px;align-items:center;padding:17px;border:1px solid #eadfd4;border-radius:18px;background:#fffdf9}.wine-order-history-card h2{margin:4px 0;color:var(--wine);font:700 21px/1.1 var(--serif)}.wine-order-history-card p{margin:0;color:var(--muted)}
.wine-order-history-money{display:flex;gap:20px}.wine-order-history-money span{display:grid;gap:3px;min-width:105px}.wine-order-history-money small{color:var(--muted)}.wine-order-history-money strong{color:var(--wine);font-size:17px}.wine-order-history-actions{display:flex;gap:8px}
.wine-order-summary-dialog{width:min(96vw,820px)!important;max-height:88vh;overflow:auto;text-align:left!important}.wine-order-summary-dialog>.site-dialog-icon,.wine-order-summary-dialog>h2{text-align:center}.wine-order-summary-meta{display:flex;justify-content:space-between;gap:12px;margin:14px 0;color:var(--muted);font-weight:700}.wine-order-summary-clients{display:grid;gap:12px}.wine-order-summary-clients section{padding:14px;border:1px solid #eadfd4;border-radius:15px;background:#fffaf5}.wine-order-summary-client-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.wine-order-summary-client-head h3{margin:0;color:var(--wine);font:700 20px/1 var(--serif)}.wine-order-summary-client-head .paid{color:#347646;font-weight:850}.wine-order-summary-client-head .unpaid{color:#9a3f2c;font-weight:850}.wine-order-summary-lines{margin-top:10px}.wine-order-summary-lines>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:7px 0;border-bottom:1px solid #eee2d8}.wine-order-summary-lines>div:last-child{border-bottom:0}.wine-order-summary-client-total{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;color:var(--wine)}.wine-order-summary-totals{display:flex;justify-content:flex-end;gap:24px;margin-top:15px;padding-top:14px;border-top:2px solid #d0aa62;color:var(--wine);font-size:16px}
@media(max-width:900px){.wine-order-line{grid-template-columns:minmax(180px,1fr) 72px 130px 100px 34px}.wine-order-history-card{grid-template-columns:1fr}.wine-order-history-money,.wine-order-history-actions{justify-content:flex-start}}
@media(max-width:820px){.page-wineOrders .topbar{position:absolute;z-index:35;top:10px;right:14px;width:auto;min-height:0;margin:0;padding:0}.page-wineOrders .wine-orders-heading{min-height:164px;margin:0 -14px 18px!important;padding:58px 20px 26px!important;border-radius:0 0 24px 24px!important}.page-wineOrders .wine-orders-heading .page-title{font-size:35px!important}.wine-orders-toolbar{align-items:stretch;flex-direction:column}.wine-orders-toolbar .btn{width:100%}.wine-order-client-head{grid-template-columns:1fr}.wine-order-line{grid-template-columns:1fr 78px 1fr}.wine-order-line-total{grid-column:1/3;text-align:left}.wine-order-remove-line{grid-column:3;grid-row:2;justify-self:end}.wine-order-client-footer{justify-content:space-between}.wine-order-totals{grid-template-columns:1fr 1fr}.wine-order-submit-row .btn{width:100%}}
@media(max-width:520px){.wine-order-line{grid-template-columns:1fr 72px}.wine-order-price-field{grid-column:1}.wine-order-line-total{grid-column:1}.wine-order-remove-line{grid-column:2;grid-row:3}.wine-order-client-footer{align-items:flex-end}.wine-order-totals{grid-template-columns:1fr}.wine-order-history-money{display:grid;grid-template-columns:1fr 1fr}.wine-order-history-actions{display:grid;grid-template-columns:1fr 1fr}.wine-order-summary-lines>div{grid-template-columns:1fr auto}.wine-order-summary-lines>div strong{grid-column:2}.wine-order-summary-totals{flex-direction:column;gap:6px}}

/* Epicave V3.4.19 — Commande de vin : catalogue de références + onglets harmonisés */
.wine-orders-tabs{
  display:flex;
  gap:12px;
  margin:0 0 18px;
  flex-wrap:wrap;
}
.wine-orders-tab{
  appearance:none;
  min-height:46px;
  padding:10px 20px;
  border:1px solid rgba(183,139,65,.72);
  border-radius:14px;
  background:rgba(255,248,239,.88);
  color:var(--wine);
  font:800 14px/1.1 var(--sans);
  letter-spacing:.01em;
  box-shadow:0 5px 14px rgba(72,18,35,.08),inset 0 1px 0 rgba(255,255,255,.72);
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease;
}
.wine-orders-tab:hover{
  transform:translateY(-1px);
  border-color:#c89b4a;
  box-shadow:0 8px 18px rgba(72,18,35,.12),inset 0 1px 0 rgba(255,255,255,.72);
}
.wine-orders-tab.active{
  background:linear-gradient(145deg,#65162e,#4a0f20);
  color:#fff7e6;
  border-color:#d5ab59;
  box-shadow:0 8px 18px rgba(72,18,35,.22),inset 0 1px 0 rgba(255,226,158,.16);
}
.wine-orders-tab.active span{
  color:inherit;
}
.wine-order-catalog{
  padding-bottom:22px;
  margin-bottom:22px;
  border-bottom:1px solid #eadfd4;
}
.wine-order-catalog-list{
  display:grid;
  gap:10px;
}
.wine-order-catalog-row{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 170px 40px;
  gap:12px;
  align-items:end;
  padding:13px;
  border:1px solid #eadfd4;
  border-radius:16px;
  background:#fffaf5;
}
.wine-order-catalog-row .field{margin:0}
.wine-order-catalog-price{max-width:190px}
.wine-order-reference-empty{margin:0}
.wine-order-catalog-hint{
  margin:0 0 15px;
  padding:12px 14px;
  border:1px solid rgba(183,139,65,.4);
  border-radius:13px;
  background:#fff8ed;
  color:#735849;
  font-size:13px;
}
.wine-order-clients-toolbar{margin-top:0}
.wine-order-line{
  grid-template-columns:minmax(280px,1fr) 84px 140px 120px 38px;
}
.wine-order-line select.input{
  cursor:pointer;
  appearance:auto;
}
.wine-order-line-price{
  align-self:end;
  min-height:42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  padding:4px 8px 4px 0;
}
.wine-order-line-price small{
  color:var(--muted);
  font-size:11px;
}
.wine-order-line-price strong{
  color:var(--wine);
  font-size:15px;
  white-space:nowrap;
}
@media(max-width:900px){
  .wine-order-catalog-row{grid-template-columns:minmax(180px,1fr) 150px 38px}
  .wine-order-line{grid-template-columns:minmax(180px,1fr) 72px 120px 100px 34px}
}
@media(max-width:820px){
  .wine-orders-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .wine-orders-tab{width:100%;padding:10px 12px;font-size:13px}
  .wine-order-catalog-row{grid-template-columns:1fr 140px 38px}
  .wine-order-line{grid-template-columns:1fr 78px}
  .wine-order-reference-field{grid-column:1/-1}
  .wine-order-line-price{grid-column:1}
  .wine-order-line-total{grid-column:1;text-align:left}
  .wine-order-remove-line{grid-column:2;grid-row:3;justify-self:end}
}
@media(max-width:520px){
  .wine-orders-tabs{grid-template-columns:1fr}
  .wine-order-catalog-row{grid-template-columns:1fr 82px}
  .wine-order-catalog-price{grid-column:1}
  .wine-order-catalog-row .wine-order-remove-line{grid-column:2;grid-row:2;justify-self:end}
}


/* Epicave V3.4.19 — Commande de vin : cadres séparés + historique répétable */
.wine-orders-current-layout{display:grid;gap:16px}
.wine-order-accent-panel{
  background:rgba(75,15,32,.35)!important;
  border:1px solid rgba(214,170,104,.68)!important;
  box-shadow:0 14px 36px rgba(45,8,18,.18), inset 0 1px 0 rgba(255,235,205,.12)!important;
  backdrop-filter:blur(10px);
}
.wine-order-accent-panel h2,
.wine-order-accent-panel .panel-sub,
.wine-order-accent-panel .wine-orders-toolbar h2,
.wine-order-accent-panel .wine-orders-toolbar p,
.wine-order-accent-panel .field label,
.wine-order-accent-panel .wine-order-client-footer small,
.wine-order-accent-panel .wine-order-line-price small,
.wine-order-accent-panel .wine-order-history-money small,
.wine-order-accent-panel .empty,
.wine-order-accent-panel .wine-order-empty-lines{color:#fff7ea!important}
.wine-order-accent-panel .wine-order-client,
.wine-order-accent-panel .wine-order-catalog-row{
  background:rgba(255,248,239,.92);
  border-color:rgba(214,170,104,.32);
}
.wine-order-accent-panel .wine-order-catalog-hint{
  background:rgba(255,248,239,.18);
  border-color:rgba(214,170,104,.45);
  color:#fff4df;
}
.wine-order-accent-panel .wine-order-totals>div{
  background:linear-gradient(135deg,rgba(255,248,239,.96),rgba(255,255,255,.92));
}
.wine-order-accent-panel .wine-order-remove-line{background:#fff8f3}
.wine-order-history-actions{flex-wrap:wrap}
.wine-order-history-actions .btn{white-space:nowrap}
@media(max-width:520px){
  .wine-order-history-actions{grid-template-columns:1fr!important}
}


/* Epicave V3.4.19 — lisibilité des libellés Commande de vin */
.wine-order-accent-panel .wine-orders-toolbar h2{
  color:#D8AE5C!important;
}
.wine-order-accent-panel .wine-order-catalog-row .field label,
.wine-order-accent-panel .wine-order-client .field label,
.wine-order-accent-panel .wine-order-client-footer small,
.wine-order-accent-panel .wine-order-line-price small{
  color:var(--muted)!important;
}
.wine-order-accent-panel .wine-order-client-footer strong,
.wine-order-accent-panel .wine-order-line-price strong{
  color:var(--wine)!important;
}


/* Epicave V3.4.19 — commandes : résumé références + modale repasser */
.wine-order-reference-sales{
  margin-top:18px;
  padding-top:16px;
  border-top:2px solid #d0aa62;
}
.wine-order-reference-sales h3{
  margin:0 0 10px;
  color:var(--wine);
  font:700 20px/1.1 var(--serif);
}
.wine-order-reference-sales>div{
  display:grid;
  gap:7px;
}
.wine-order-reference-sales p{
  max-width:none!important;
  margin:0!important;
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:7px 0;
  border-bottom:1px solid #eee2d8;
  color:var(--ink)!important;
}
.wine-order-reference-sales p:last-child{border-bottom:0}
.wine-order-reference-sales strong{
  color:var(--wine);
  white-space:nowrap;
}
.site-dialog.site-dialog-wide{
  width:min(100%,560px);
}
@media(min-width:521px){
  .site-dialog.site-dialog-wide #siteDialogTitle{
    white-space:nowrap;
    font-size:26px;
  }
}


/* Epicave V3.4.19 — résumé des références placé avant le détail clients */
.wine-order-summary-meta + .wine-order-reference-sales{
  margin-top:10px;
  margin-bottom:16px;
  padding-top:14px;
}


/* Epicave V3.4.19 — résumé commande : totaux sous références + séparation dorée */
.wine-order-summary-top-totals{
  display:flex;
  justify-content:flex-end;
  gap:24px;
  margin:8px 0 12px;
  color:var(--wine);
  font-size:16px;
}
.wine-order-summary-top-totals strong{
  margin-left:5px;
}
.wine-order-summary-separator{
  height:5px;
  margin:12px 0 18px;
  border-radius:999px;
  background:linear-gradient(90deg,#b8862d,#dfbb68,#b8862d);
  box-shadow:0 1px 0 rgba(255,255,255,.45),0 2px 5px rgba(92,58,15,.18);
}
@media(max-width:520px){
  .wine-order-summary-top-totals{
    flex-direction:column;
    gap:4px;
    align-items:flex-end;
  }
}


/* Epicave V3.4.19 — épaisseur unique des séparateurs dorés des résumés */
.wine-order-summary-meta{
  border-bottom:5px solid #d0aa62!important;
  padding-bottom:12px;
}
.wine-order-reference-sales{
  border-top:5px solid #d0aa62!important;
}
.wine-order-summary-totals{
  border-top:5px solid #d0aa62!important;
}
.wine-order-summary-separator{
  height:5px!important;
}


/* Epicave V3.4.19 — suppression du double séparateur sous numéro/date */
.wine-order-summary-meta + .wine-order-reference-sales{
  border-top:0!important;
  padding-top:0!important;
  margin-top:12px!important;
}


/* Epicave V3.4.19 — transparence commandes + historique clients */
.wine-order-accent-panel{background:rgba(75,15,32,.25)!important}
.wine-orders-client-history-panel{background:rgba(255,253,249,.96)}
.wine-order-client-history-heading{margin-bottom:18px}
.wine-order-client-history-heading h2{margin:0;color:var(--wine);font:700 30px/1 var(--serif)}
.wine-order-client-history-heading p{margin:6px 0 0;color:var(--muted)}
.wine-order-client-history-list{display:grid;gap:12px}
.wine-order-client-history-card{padding:17px;border:1px solid #eadfd4;border-radius:18px;background:#fffdf9}
.wine-order-client-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.wine-order-client-history-head h2{margin:4px 0;color:var(--wine);font:700 22px/1.1 var(--serif)}
.wine-order-client-history-head p{margin:0;color:var(--muted)}
.wine-order-client-history-head>strong{color:var(--wine);font-size:18px;white-space:nowrap}
.wine-order-client-history-refs{display:grid;gap:0;margin-top:14px;border-top:1px solid #eadfd4}
.wine-order-client-history-refs>div{display:flex;justify-content:space-between;gap:18px;padding:10px 2px;border-bottom:1px solid #eee4dc}
.wine-order-client-history-refs>div:last-child{border-bottom:0}
.wine-order-client-history-refs span{color:var(--ink)}
.wine-order-client-history-refs strong{color:var(--wine);white-space:nowrap}
@media(max-width:820px){.wine-orders-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.wine-orders-tab{font-size:12px!important;padding:9px 8px!important}}
@media(max-width:620px){.wine-orders-tabs{grid-template-columns:1fr!important}.wine-order-client-history-head{flex-direction:column;gap:8px}}


/* Epicave V3.4.19 — conditionnement des références de commande */
.wine-order-catalog-row{
  grid-template-columns:minmax(250px,1fr) 190px 190px 40px!important;
}
.wine-order-catalog-pack{min-width:0}
.wine-order-catalog-pack select{cursor:pointer}
@media(max-width:1050px){
  .wine-order-catalog-row{
    grid-template-columns:minmax(220px,1fr) 180px 165px 38px!important;
  }
}
@media(max-width:820px){
  .wine-order-catalog-row{
    grid-template-columns:1fr 1fr 38px!important;
  }
  .wine-order-catalog-row>.field:first-child{grid-column:1/-1}
}
@media(max-width:560px){
  .wine-order-catalog-row{
    grid-template-columns:1fr 38px!important;
  }
  .wine-order-catalog-row>.field{grid-column:1}
  .wine-order-catalog-row>.wine-order-remove-line{grid-column:2;grid-row:2}
}


/* Epicave V3.4.19 — historique clients + champ conditionnement */
.wine-order-catalog-row{
  grid-template-columns:minmax(250px,1fr) 240px 190px 40px!important;
}
.wine-order-catalog-pack{
  min-width:220px;
}
.wine-order-catalog-pack select.input{
  width:100%;
}
@media(max-width:1050px){
  .wine-order-catalog-row{
    grid-template-columns:minmax(220px,1fr) 220px 165px 38px!important;
  }
  .wine-order-catalog-pack{min-width:0}
}
@media(max-width:820px){
  .wine-order-catalog-row{
    grid-template-columns:1fr 1fr 38px!important;
  }
  .wine-order-catalog-pack{min-width:0}
}


/* Epicave V3.4.45 — lignes client simplifiées */
.wine-order-line{
  grid-template-columns:minmax(280px,1fr) 110px 130px 38px!important;
  align-items:center!important;
}
.wine-order-line .field{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.wine-order-line-total{
  align-self:center!important;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:42px;
  text-align:right!important;
}
@media(max-width:900px){
  .wine-order-line{grid-template-columns:minmax(190px,1fr) 90px 110px 34px!important}
}
@media(max-width:820px){
  .wine-order-line{grid-template-columns:1fr 90px!important}
  .wine-order-reference-field{grid-column:1/-1}
  .wine-order-line-total{grid-column:1;justify-content:flex-start;text-align:left!important}
  .wine-order-remove-line{grid-column:2;grid-row:2;justify-self:end}
}
@media(max-width:520px){
  .wine-order-line{grid-template-columns:1fr 72px!important}
  .wine-order-line-total{grid-column:1}
  .wine-order-remove-line{grid-column:2;grid-row:2}
}


/* Epicave V3.4.45 — alignement vertical total + suppression sur lignes clients */
.wine-order-line{
  align-items:center!important;
}
.wine-order-line .field{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.wine-order-line-total{
  align-self:center!important;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:42px;
}
.wine-order-line .wine-order-remove-line{
  align-self:center!important;
  justify-self:center;
  margin:0!important;
}


/* Epicave V3.4.45 — sidebar web légèrement translucide sur fond de grands tonneaux */
@media(min-width:821px){
  .sidebar{
    background:
      linear-gradient(180deg, rgba(67,7,23,.84) 0%, rgba(97,17,39,.80) 48%, rgba(58,7,20,.86) 100%),
      url('/image/fond-cave.jpg') center center / cover no-repeat !important;
    backdrop-filter: blur(4px);
    box-shadow: inset -1px 0 0 rgba(255,255,255,.08), 10px 0 30px rgba(28,4,12,.16);
  }
  .sidebar:after{
    content:"";
    position:absolute;
    inset:0;
    height:auto;
    background:
      linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 18%, rgba(35,4,13,.18) 55%, rgba(35,4,13,.38) 100%),
      radial-gradient(circle at 50% 0%, rgba(255,227,183,.10), transparent 48%);
    opacity:1;
    z-index:0;
    pointer-events:none;
  }
  .sidebar > *{position:relative; z-index:1;}
  .nav-btn{background:rgba(255,255,255,.035);}
  .nav-btn:hover,
  .nav-btn.active{background:rgba(255,255,255,.15);}
}


/* Epicave V3.4.45 — accès commandes dans le menu web + sidebar plus sombre */
@media(min-width:821px){
  .sidebar{
    background:
      linear-gradient(180deg, rgba(61,6,21,.93) 0%, rgba(82,12,33,.91) 48%, rgba(48,5,17,.95) 100%),
      url('/image/fond-cave.jpg') center center / cover no-repeat !important;
    backdrop-filter:blur(3px) saturate(.95);
  }
  .sidebar:after{
    background:
      linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,0) 16%, rgba(28,3,11,.18) 52%, rgba(28,3,11,.48) 100%),
      radial-gradient(circle at 50% 0%, rgba(224,182,101,.035), transparent 46%)!important;
  }
  .sidebar-bottom .sidebar-profile-quote{
    margin-top:18px!important;
    margin-bottom:38px!important;
  }
  .side-nav-admin .nav-btn .nav-icon svg{width:20px;height:20px;}
}


/* Epicave V3.4.45 — Commandes mobile/PWA */
.wine-order-accent-panel{background:rgba(75,15,32,.25)!important;position:relative;isolation:isolate}
.wine-order-accent-panel::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(92,18,42,.16),rgba(65,8,27,.10))}
.wine-order-current-reference-summary{display:none}
@media(max-width:820px){
.page-wineOrders .wine-orders-panel{padding:14px!important;border-radius:20px!important}
.page-wineOrders .wine-order-accent-panel{backdrop-filter:blur(8px) saturate(1.08);-webkit-backdrop-filter:blur(8px) saturate(1.08)}
.wine-order-accent-panel::before{background:linear-gradient(145deg,rgba(92,18,42,.20),rgba(65,8,27,.14))}
.wine-order-catalog-list{gap:12px}
.wine-order-catalog-row{grid-template-columns:minmax(0,1fr) 46px!important;gap:11px!important;padding:15px!important;align-items:end!important}
.wine-order-catalog-row>.field:first-child{grid-column:1/-1!important}
.wine-order-catalog-pack{grid-column:1/-1!important;min-width:0!important}
.wine-order-catalog-pack select.input{width:100%!important;max-width:none!important}
.wine-order-catalog-price{grid-column:1!important;max-width:none!important}
.wine-order-catalog-row>.wine-order-remove-line{grid-column:2!important;grid-row:3!important;align-self:center!important;justify-self:center!important}
.wine-order-clients{gap:14px}
.wine-order-client{padding:15px!important;border-radius:18px!important}
.wine-order-client-head{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;align-items:end!important}
.wine-order-client-head .wine-order-remove-client{width:auto!important;min-width:0!important;padding:11px 14px!important;white-space:nowrap}
.wine-order-line{grid-template-columns:minmax(0,1fr) auto auto!important;gap:10px!important;padding:13px!important;align-items:center!important}
.wine-order-reference-field{grid-column:1/-1!important}
.wine-order-reference-field select.input{width:100%!important;min-width:0!important}
.wine-order-qty-field{grid-column:1!important;min-width:0}
.wine-order-line-total{grid-column:2!important;grid-row:2!important;min-width:88px;text-align:right!important;justify-content:center!important;align-self:center!important}
.wine-order-line>.wine-order-remove-line{grid-column:3!important;grid-row:2!important;align-self:center!important;justify-self:center!important;margin:0!important}
.wine-order-add-line{width:auto!important;max-width:100%}
.wine-order-totals{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;margin-top:16px!important}
.wine-order-totals>div{padding:14px 12px!important;min-width:0}
.wine-order-totals strong{font-size:clamp(22px,6vw,29px)!important;white-space:nowrap}
.wine-order-current-reference-summary{display:block;margin-top:10px;padding:14px;border:1px solid rgba(214,170,104,.42);border-radius:16px;background:rgba(255,248,239,.94);color:var(--wine)}
.wine-order-current-reference-summary h3{margin:0 0 9px;color:var(--wine);font:700 19px/1.1 var(--serif)}
.wine-order-current-reference-summary-list{display:grid;gap:7px}
.wine-order-current-reference-summary-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding-top:7px;border-top:1px solid rgba(117,74,65,.13)}
.wine-order-current-reference-summary-list>div:first-child{padding-top:0;border-top:0}
.wine-order-current-reference-summary-list span{min-width:0;overflow-wrap:anywhere}
.wine-order-current-reference-summary-list strong{white-space:nowrap;color:var(--wine)}
.wine-order-current-reference-summary-empty{color:var(--muted)}
.site-dialog-wrap:has(.wine-order-summary-dialog){display:flex!important;align-items:center!important;justify-content:center!important;padding:12px!important;overflow:hidden}
.wine-order-summary-dialog{width:100%!important;max-width:calc(100vw - 24px)!important;margin:0 auto!important;box-sizing:border-box!important;max-height:calc(100dvh - 24px)!important;overflow-x:hidden!important}
}
@media(max-width:520px){
.wine-order-client-head{grid-template-columns:1fr!important}
.wine-order-client-head .wine-order-remove-client{justify-self:start!important}
.wine-order-line{grid-template-columns:minmax(0,1fr) auto auto!important}
.wine-order-totals{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
.wine-order-summary-dialog{padding:20px 14px 18px!important}
.wine-order-summary-meta{gap:8px!important;font-size:13px}
.wine-order-summary-top-totals,.wine-order-summary-totals{align-items:stretch!important}
}


/* Epicave V3.4.45 — filtres bordeaux renforcés + administration utilisateurs + résumé web */
.wine-order-accent-panel{background:rgba(75,15,32,.25)!important}
.wine-order-accent-panel::before{background:linear-gradient(145deg,rgba(92,18,42,.30),rgba(65,8,27,.24))!important}
.page-usersAdmin .user-admin-panel,
.page-usersAdmin .user-admin-log-panel,
.page-usersAdmin .user-admin-detail-card{
  position:relative;isolation:isolate;background:rgba(75,15,32,.20)!important;
  border-color:rgba(214,170,104,.50)!important;
  box-shadow:0 12px 30px rgba(45,8,18,.14),inset 0 1px 0 rgba(255,235,205,.10)!important;
  backdrop-filter:blur(9px) saturate(1.05);-webkit-backdrop-filter:blur(9px) saturate(1.05)
}
.page-usersAdmin .user-admin-panel::before,
.page-usersAdmin .user-admin-log-panel::before,
.page-usersAdmin .user-admin-detail-card::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.24),rgba(65,8,27,.18))
}
.wine-order-current-reference-summary{
  display:block!important;margin-top:12px;padding:15px 16px;border:1px solid rgba(214,170,104,.42);
  border-radius:16px;background:rgba(255,248,239,.94);color:var(--wine)
}
.wine-order-current-reference-summary h3{margin:0 0 10px;color:var(--wine);font:700 20px/1.1 var(--serif)}
.wine-order-current-reference-summary-list{display:grid;gap:8px}
.wine-order-current-reference-summary-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding-top:8px;border-top:1px solid rgba(117,74,65,.13)}
.wine-order-current-reference-summary-list>div:first-child{padding-top:0;border-top:0}
.wine-order-current-reference-summary-list span{min-width:0;overflow-wrap:anywhere}
.wine-order-current-reference-summary-list strong{white-space:nowrap;color:var(--wine)}
.wine-order-current-reference-summary-empty{color:var(--muted)}
@media(max-width:820px){
  .wine-order-accent-panel::before{background:linear-gradient(145deg,rgba(92,18,42,.34),rgba(65,8,27,.28))!important}
  .wine-order-current-reference-summary{margin-top:10px;padding:14px}
}


/* Epicave V3.4.45 — Administration utilisateurs lisible sur fond bordeaux + accès admin accueil mobile */
.page-usersAdmin .user-admin-heading-wrap .page-sub{color:rgba(255,246,235,.92)!important;text-shadow:0 1px 2px rgba(40,4,15,.28)}
.page-usersAdmin .user-admin-heading-wrap .page-sub strong{color:#e1b665!important;font-weight:800}
.page-usersAdmin .user-admin-panel .admin-count{color:rgba(255,246,235,.90)!important}
.page-usersAdmin .user-admin-table-head{color:#ead29f!important;text-shadow:0 1px 1px rgba(45,5,16,.22)}
.page-usersAdmin .user-admin-log-panel h2{color:#e1b665!important}
.page-usersAdmin .user-admin-log-panel .panel-sub{color:rgba(255,246,235,.90)!important}
.page-usersAdmin .user-admin-log-panel .user-admin-log-empty{color:rgba(255,246,235,.82)!important}
.page-usersAdmin .user-admin-toolbar input::placeholder{color:#8c7772}
.home-mobile-admin-access{display:none}
@media(max-width:820px){
  .home-mobile-admin-access{display:grid;gap:14px;margin-top:14px}
  .home-mobile-admin-access .mobile-admin-home-strip{margin:0!important}
  .home-mobile-admin-access .mobile-admin-home-strip .scan-icon-big{color:#e1b665}
  .home-mobile-admin-access .mobile-admin-home-strip h3{margin-bottom:4px}
}


/* Epicave V3.4.45 — fond Ma cave pour Commande de vin / Utilisateurs + bandeaux mobiles au sommet */
.page-wineOrders .main,
.page-usersAdmin .main{
  background:
    linear-gradient(rgba(37,8,17,.13),rgba(37,8,17,.23)),
    url("/image/fond-cave.jpg?v=3.4.45") center/cover fixed!important;
}

@media(max-width:820px){
  .page-wineOrders .main,
  .page-usersAdmin .main{
    background:
      linear-gradient(rgba(37,8,17,.08),rgba(37,8,17,.16)),
      url("/image/fond-cave-mobile.jpg?v=3.4.45") center top / cover no-repeat fixed!important;
  }

  .page-dishesAdmin .page,
  .page-usersAdmin .page{
    position:relative;
  }
  .page-dishesAdmin .topbar,
  .page-usersAdmin .topbar{
    position:absolute!important;
    z-index:35!important;
    top:10px!important;
    right:14px!important;
    width:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  .page-dishesAdmin .admin-heading,
  .page-usersAdmin .user-admin-heading-wrap .admin-heading,
  .page-usersAdmin .user-admin-detail-heading-wrap .admin-heading{
    margin-top:0!important;
  }
}


/* Epicave V3.4.45 — cohérence visuelle Historique commandes / Historique clients */
/* Référence visuelle : Commande en cours */

.page-wineOrders [data-order-view="history"] .wine-order-history-card,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.50)!important;
  box-shadow:0 12px 30px rgba(45,8,18,.14), inset 0 1px 0 rgba(255,235,205,.08)!important;
  backdrop-filter:blur(8px) saturate(1.06);
  -webkit-backdrop-filter:blur(8px) saturate(1.06);
  color:rgba(255,246,235,.94)!important;
}

.page-wineOrders [data-order-view="history"] .wine-order-history-card::before,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.26),rgba(65,8,27,.20));
}

/* Titres en doré, comme demandé. */
.page-wineOrders [data-order-view="history"] .wine-order-history-card h2,
.page-wineOrders [data-order-view="history"] .wine-order-history-card h3,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card h2,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card h3{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.30);
}

/* Sous-titres et métadonnées lisibles sur le filtre bordeaux. */
.page-wineOrders [data-order-view="history"] .wine-order-history-card p,
.page-wineOrders [data-order-view="history"] .wine-order-history-card small,
.page-wineOrders [data-order-view="history"] .wine-order-history-card .muted,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card p,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card small,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card .muted{
  color:rgba(255,246,235,.86)!important;
}

/* Valeurs importantes : crème clair / doré. */
.page-wineOrders [data-order-view="history"] .wine-order-history-card strong,
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-card strong{
  color:#f7ead2!important;
}

/* Kicker et éléments de synthèse en doré doux. */
.page-wineOrders [data-order-view="history"] .admin-kicker,
.page-wineOrders [data-order-view="clients"] .admin-kicker{
  color:#d9b46f!important;
}

/* Lignes internes des références dans Historique clients. */
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-refs{
  background:rgba(255,248,239,.08)!important;
  border-color:rgba(214,170,104,.22)!important;
}
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-refs>div{
  border-color:rgba(255,246,235,.12)!important;
}
.page-wineOrders [data-order-view="clients"] .wine-order-client-history-refs span{
  color:rgba(255,246,235,.92)!important;
}

/* Historique des commandes : blocs internes et résumé. */
.page-wineOrders [data-order-view="history"] .wine-order-history-meta,
.page-wineOrders [data-order-view="history"] .wine-order-history-summary{
  color:rgba(255,246,235,.90)!important;
}
.page-wineOrders [data-order-view="history"] .wine-order-history-total{
  color:#e1b665!important;
}

/* Boutons sur fond sombre : conserver le code visuel de Commande en cours. */
.page-wineOrders [data-order-view="history"] .btn-light,
.page-wineOrders [data-order-view="clients"] .btn-light{
  background:rgba(255,248,239,.96)!important;
  color:var(--wine)!important;
}
.page-wineOrders [data-order-view="history"] .btn-primary,
.page-wineOrders [data-order-view="clients"] .btn-primary{
  box-shadow:0 8px 18px rgba(41,4,14,.20);
}

@media(max-width:820px){
  .page-wineOrders [data-order-view="history"] .wine-order-history-card,
  .page-wineOrders [data-order-view="clients"] .wine-order-client-history-card{
    border-radius:18px!important;
  }
}


/* Epicave V3.4.45 — correction réelle des fonds Historique commandes / Historique clients */

/* Cadres principaux des deux onglets : même langage visuel que Commande en cours. */
.page-wineOrders .wine-orders-history-panel,
.page-wineOrders .wine-orders-client-history-panel{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.50)!important;
  box-shadow:0 12px 30px rgba(45,8,18,.14), inset 0 1px 0 rgba(255,235,205,.08)!important;
  backdrop-filter:blur(8px) saturate(1.06);
  -webkit-backdrop-filter:blur(8px) saturate(1.06);
  color:rgba(255,246,235,.94)!important;
}
.page-wineOrders .wine-orders-history-panel::before,
.page-wineOrders .wine-orders-client-history-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.27),rgba(65,8,27,.21));
}

/* Cartes internes : même tonalité, légèrement plus lisibles pour garder la hiérarchie. */
.page-wineOrders .wine-orders-history-panel .wine-order-history-card,
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.42)!important;
  box-shadow:0 8px 20px rgba(45,8,18,.10), inset 0 1px 0 rgba(255,235,205,.06)!important;
  color:rgba(255,246,235,.94)!important;
}
.page-wineOrders .wine-orders-history-panel .wine-order-history-card::before,
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.22),rgba(65,8,27,.17));
}

/* Titres des deux onglets en doré. */
.page-wineOrders .wine-orders-history-panel h2,
.page-wineOrders .wine-orders-history-panel h3,
.page-wineOrders .wine-orders-client-history-panel h2,
.page-wineOrders .wine-orders-client-history-panel h3{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.28);
}

/* Sous-titres, métadonnées et textes descriptifs en clair. */
.page-wineOrders .wine-orders-history-panel p,
.page-wineOrders .wine-orders-history-panel small,
.page-wineOrders .wine-orders-client-history-panel p,
.page-wineOrders .wine-orders-client-history-panel small,
.page-wineOrders .wine-orders-client-history-heading p{
  color:rgba(255,246,235,.86)!important;
}

/* Valeurs fortes et montants. */
.page-wineOrders .wine-orders-history-panel strong,
.page-wineOrders .wine-orders-client-history-panel strong{
  color:#f7ead2!important;
}
.page-wineOrders .wine-orders-history-panel .admin-kicker,
.page-wineOrders .wine-orders-client-history-panel .admin-kicker{
  color:#d9b46f!important;
}

/* Lignes internes de l'historique client : plus de bloc blanc. */
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs{
  background:rgba(255,248,239,.07)!important;
  border-color:rgba(214,170,104,.24)!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs>div{
  border-color:rgba(255,246,235,.12)!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs span{
  color:rgba(255,246,235,.92)!important;
}

/* Empty states adaptés au fond sombre. */
.page-wineOrders .wine-orders-history-panel .empty,
.page-wineOrders .wine-orders-client-history-panel .empty{
  color:rgba(255,246,235,.82)!important;
}

/* Neutralise explicitement l'ancien fond clair de l'historique clients. */
.page-wineOrders .wine-orders-client-history-panel{
  background-color:rgba(75,15,32,.20)!important;
}

@media(max-width:820px){
  .page-wineOrders .wine-orders-history-panel,
  .page-wineOrders .wine-orders-client-history-panel{
    border-radius:20px!important;
  }
  .page-wineOrders .wine-orders-history-panel .wine-order-history-card,
  .page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card{
    border-radius:18px!important;
  }
}


/* Epicave V3.4.45 — hiérarchie visuelle commune aux 3 onglets Commande de vin */
/*
   Principe :
   - grands cadres des onglets : conservent le bordeaux translucide à 20 % ;
   - cartes internes : bordeaux nettement plus opaque pour mieux détacher les contenus.
*/

/* 1. Commande en cours : références proposées + clients */
.page-wineOrders .wine-order-catalog-panel .wine-order-catalog-row,
.page-wineOrders .wine-order-clients-panel .wine-order-client{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.46)!important;
  box-shadow:0 10px 24px rgba(38,5,15,.18), inset 0 1px 0 rgba(255,235,205,.08)!important;
  color:rgba(255,246,235,.96)!important;
}
.page-wineOrders .wine-order-catalog-panel .wine-order-catalog-row::before,
.page-wineOrders .wine-order-clients-panel .wine-order-client::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(111,22,49,.34),rgba(55,5,22,.26));
}
.page-wineOrders .wine-order-catalog-panel .wine-order-catalog-row .field label,
.page-wineOrders .wine-order-clients-panel .wine-order-client .field label,
.page-wineOrders .wine-order-clients-panel .wine-order-client-footer small{
  color:rgba(255,246,235,.88)!important;
}
.page-wineOrders .wine-order-clients-panel .wine-order-client-footer strong{
  color:#f7ead2!important;
}

/* 2. Historique des commandes : chaque commande devient la carte interne opaque. */
.page-wineOrders .wine-orders-history-panel .wine-order-history-card{
  background:rgba(75,15,32,.66)!important;
  border-color:rgba(214,170,104,.46)!important;
  box-shadow:0 10px 24px rgba(38,5,15,.18), inset 0 1px 0 rgba(255,235,205,.08)!important;
}
.page-wineOrders .wine-orders-history-panel .wine-order-history-card::before{
  background:linear-gradient(145deg,rgba(111,22,49,.34),rgba(55,5,22,.26))!important;
}

/* 3. Historique clients : chaque client devient la carte interne opaque. */
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card{
  background:rgba(75,15,32,.66)!important;
  border-color:rgba(214,170,104,.46)!important;
  box-shadow:0 10px 24px rgba(38,5,15,.18), inset 0 1px 0 rgba(255,235,205,.08)!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card::before{
  background:linear-gradient(145deg,rgba(111,22,49,.34),rgba(55,5,22,.26))!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-head h2{
  margin-top:0!important;
}

/* Références d'un client : filtre clair arrondi, avec davantage de marge latérale. */
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs{
  margin-top:14px!important;
  padding:4px 0!important;
  background:transparent!important;
  border:0!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs>div{
  margin:8px 14px!important;
  padding:12px 14px!important;
  border:1px solid rgba(255,246,235,.10)!important;
  border-radius:14px!important;
  background:rgba(255,248,239,.11)!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs>div:first-child{
  margin-top:4px!important;
}
.page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs>div:last-child{
  margin-bottom:4px!important;
}

/* Les champs de saisie restent clairs, pour conserver leur lisibilité et leur affordance. */
.page-wineOrders .wine-order-catalog-panel .wine-order-catalog-row .input,
.page-wineOrders .wine-order-clients-panel .wine-order-client .input{
  background:rgba(255,255,255,.97)!important;
  color:var(--ink)!important;
}

/* Sur mobile, un peu plus de respiration sans sacrifier la largeur utile. */
@media(max-width:820px){
  .page-wineOrders .wine-order-catalog-panel .wine-order-catalog-row,
  .page-wineOrders .wine-order-clients-panel .wine-order-client,
  .page-wineOrders .wine-orders-history-panel .wine-order-history-card,
  .page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-card{
    background:rgba(75,15,32,.70)!important;
  }
  .page-wineOrders .wine-orders-client-history-panel .wine-order-client-history-refs>div{
    margin-left:12px!important;
    margin-right:12px!important;
    border-radius:13px!important;
  }
}


/* Epicave V3.4.45 — Payé doré + suppression depuis la modification d'une bouteille */

/* Commande en cours : le libellé Payé reste lisible sur le fond bordeaux. */
.page-wineOrders .wine-order-paid span{
  color:#e1b665!important;
}

/* Bouton placé sous le cadre "Vérifiez les informations", jamais dans le formulaire. */
.wine-edit-delete-below{
  display:flex;
  justify-content:center;
  width:100%;
  margin:16px auto 0;
}
.wine-edit-delete-below .btn{
  width:auto!important;
  min-width:0!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding-left:22px;
  padding-right:22px;
  white-space:nowrap;
}

@media(max-width:820px){
  .wine-edit-delete-below{
    margin-top:14px;
    padding:0 14px;
    box-sizing:border-box;
  }
}


/* Epicave V3.4.45 — centrage suppression modification + libellé Référence du vin */

/* Le bouton reste hors du cadre blanc mais dans la même grille que Vérifiez les informations. */
.scan-page .wine-edit-delete-below{
  width:auto!important;
  margin:16px 0 0!important;
  display:flex;
  justify-content:center;
  align-items:center;
}

/* Sur desktop, il se place exactement sous la colonne du cadre Vérifiez les informations. */
@media(min-width:821px){
  .scan-page:not(.manual-entry) .wine-edit-delete-below{
    grid-column:2;
  }
  .scan-page.manual-entry .wine-edit-delete-below{
    grid-column:1;
  }
}

/* Sur mobile/PWA, le cadre est pleine largeur : le bouton suit exactement le même axe. */
@media(max-width:820px){
  .scan-page .wine-edit-delete-below{
    grid-column:1/-1;
    padding:0!important;
    margin-top:14px!important;
  }
}

/* Commande en cours : "Référence du vin" reprend exactement la présentation de "Client". */
.page-wineOrders .wine-order-client-head .field>label,
.page-wineOrders .wine-order-reference-field>.wine-order-reference-label{
  display:block;
  margin:0 0 7px!important;
  padding:0!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:700!important;
  color:rgba(255,246,235,.88)!important;
  text-align:left!important;
}

/* Le libellé reste clairement au-dessus du champ blanc. */
.page-wineOrders .wine-order-reference-field{
  display:grid!important;
  grid-template-rows:auto auto;
  align-content:start;
  gap:0!important;
}


/* Epicave V3.4.45 — correction présentation Commande en cours */

/* Références proposées : la croix s'aligne sur le champ Prix à l'unité. */
.page-wineOrders .wine-order-catalog-row{
  align-items:end!important;
}
.page-wineOrders .wine-order-catalog-row>.wine-order-remove-line{
  align-self:end!important;
  justify-self:center!important;
  margin:0 0 4px!important;
}

/* Client : on supprime le grand aplat blanc de la ligne et on retrouve une vraie hiérarchie. */
.page-wineOrders .wine-order-line{
  grid-template-columns:minmax(280px,1fr) 110px 130px 38px!important;
  gap:10px!important;
  align-items:end!important;
  padding:12px!important;
  background:rgba(255,248,239,.08)!important;
  border:1px solid rgba(214,170,104,.22)!important;
  border-radius:15px!important;
}

/* Les champs gardent leur label au-dessus, sans stretch qui masque le libellé. */
.page-wineOrders .wine-order-line .field{
  align-self:auto!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  min-width:0;
}

.page-wineOrders .wine-order-client-head .field>label,
.page-wineOrders .wine-order-reference-field>.wine-order-reference-label,
.page-wineOrders .wine-order-qty-field>label{
  display:block!important;
  position:static!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  margin:0 0 7px!important;
  padding:0!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:700!important;
  color:rgba(255,246,235,.88)!important;
  text-align:left!important;
}

/* Référence du vin est explicitement au-dessus du select. */
.page-wineOrders .wine-order-reference-field{
  display:flex!important;
  flex-direction:column!important;
  grid-column:auto!important;
}
.page-wineOrders .wine-order-reference-field select.input{
  width:100%!important;
  min-width:0!important;
}

/* Total et croix alignés sur la ligne des champs, pas sur les libellés. */
.page-wineOrders .wine-order-line-total{
  align-self:end!important;
  min-height:50px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  margin:0!important;
}
.page-wineOrders .wine-order-line>.wine-order-remove-line{
  align-self:end!important;
  justify-self:center!important;
  margin:0 0 5px!important;
}

/* Mobile/PWA : même logique, mais référence sur toute la largeur. */
@media(max-width:820px){
  .page-wineOrders .wine-order-line{
    grid-template-columns:minmax(0,1fr) auto auto!important;
    align-items:end!important;
  }
  .page-wineOrders .wine-order-reference-field{
    grid-column:1/-1!important;
  }
  .page-wineOrders .wine-order-qty-field{
    grid-column:1!important;
  }
  .page-wineOrders .wine-order-line-total{
    grid-column:2!important;
    grid-row:2!important;
    align-self:end!important;
    min-height:50px!important;
  }
  .page-wineOrders .wine-order-line>.wine-order-remove-line{
    grid-column:3!important;
    grid-row:2!important;
    align-self:end!important;
    margin-bottom:5px!important;
  }

  /* Références proposées : croix toujours alignée sur le champ Prix. */
  .page-wineOrders .wine-order-catalog-row>.wine-order-remove-line{
    grid-row:3!important;
    align-self:end!important;
    margin-bottom:4px!important;
  }
}


/* Epicave V3.4.45 — Clients : suppression du voile autour de Référence du vin + couleur du total */

/* La ligne client ne doit plus avoir ce cadre/bloc blanc translucide autour de la référence. */
.page-wineOrders .wine-order-line{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Le champ blanc reste uniquement le select lui-même. */
.page-wineOrders .wine-order-reference-field,
.page-wineOrders .wine-order-qty-field{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* Le total à droite reprend la même teinte que le montant Somme due. */
.page-wineOrders .wine-order-line-total{
  color:#f7ead2!important;
}
.page-wineOrders .wine-order-line-total strong{
  color:#f7ead2!important;
}


/* Epicave V3.4.45 — résumé commandes + cohérence administration utilisateurs */

/* Références vendues : Référence | Quantité | Sous-total. */
.wine-order-reference-sales p{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  gap:14px!important;
  align-items:center!important;
}
.wine-order-reference-sales-qty{
  color:inherit;
  white-space:nowrap;
  text-align:right;
}
.wine-order-reference-sales-subtotal{
  min-width:86px;
  color:var(--wine)!important;
  white-space:nowrap;
  text-align:right;
}
@media(max-width:620px){
  .wine-order-reference-sales p{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:5px 10px!important;
  }
  .wine-order-reference-sales p>span:first-child{
    grid-column:1;
    grid-row:1/3;
    align-self:center;
  }
  .wine-order-reference-sales-qty{
    grid-column:2;
    grid-row:1;
  }
  .wine-order-reference-sales-subtotal{
    grid-column:2;
    grid-row:2;
  }
}

/* Mobile : aucun espace parasite au-dessus du bandeau Administration des utilisateurs. */
@media(max-width:820px){
  .page-usersAdmin .user-admin-heading-wrap{
    margin-top:0!important;
    padding-top:0!important;
  }
  .page-usersAdmin .user-admin-heading-wrap .admin-heading{
    margin-top:0!important;
  }
}

/* ================================================================
   Administration utilisateurs : Commande de vin devient la référence
   - cadre principal : bordeaux 20 %
   - sous-cadres : bordeaux plus opaque
   - titres dorés
   - textes secondaires clairs
   ================================================================ */

/* Cadres principaux de la liste et du journal : équivalent des panneaux Commande de vin. */
.page-usersAdmin .user-admin-panel,
.page-usersAdmin .user-admin-log-panel,
.page-usersAdmin .user-admin-detail-card{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.50)!important;
  box-shadow:0 12px 30px rgba(45,8,18,.14), inset 0 1px 0 rgba(255,235,205,.08)!important;
  backdrop-filter:blur(8px) saturate(1.06);
  -webkit-backdrop-filter:blur(8px) saturate(1.06);
  color:rgba(255,246,235,.94)!important;
}
.page-usersAdmin .user-admin-panel::before,
.page-usersAdmin .user-admin-log-panel::before,
.page-usersAdmin .user-admin-detail-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.27),rgba(65,8,27,.21))!important;
}

/* Titres : même doré que Commande de vin. */
.page-usersAdmin .user-admin-panel h2,
.page-usersAdmin .user-admin-log-panel h2,
.page-usersAdmin .user-admin-detail-card h2,
.page-usersAdmin .user-admin-detail-card h3{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.28);
}
.page-usersAdmin .user-admin-log-panel h2{
  color:#e1b665!important;
}

/* Sous-textes et libellés sur fond bordeaux. */
.page-usersAdmin .user-admin-panel p,
.page-usersAdmin .user-admin-log-panel p,
.page-usersAdmin .user-admin-detail-card p,
.page-usersAdmin .user-admin-detail-card label,
.page-usersAdmin .user-admin-detail-card span{
  color:rgba(255,246,235,.86);
}

/* Liste utilisateurs : chaque ligne devient un sous-cadre opaque,
   comme les cartes clients / références de Commande de vin. */
.page-usersAdmin .user-admin-row.role-admin,
.page-usersAdmin .user-admin-row.role-user{
  background:rgba(75,15,32,.68)!important;
  border:1px solid rgba(214,170,104,.44)!important;
  box-shadow:0 9px 22px rgba(38,5,15,.16), inset 0 1px 0 rgba(255,235,205,.06)!important;
  color:rgba(255,246,235,.94)!important;
}
.page-usersAdmin .user-admin-row:hover{
  background:rgba(86,18,39,.76)!important;
}
.page-usersAdmin .user-admin-identity{
  border-color:rgba(255,246,235,.12)!important;
}
.page-usersAdmin .user-admin-identity strong{
  color:#f7ead2!important;
}
.page-usersAdmin .user-admin-identity em,
.page-usersAdmin .user-admin-cell{
  color:rgba(255,246,235,.88)!important;
}
.page-usersAdmin .user-admin-cell small{
  color:#d9b46f!important;
}

/* Séparateurs Administrateurs / Utilisateurs intégrés au même langage visuel. */
.page-usersAdmin .user-admin-group-label.admin,
.page-usersAdmin .user-admin-group-label.users{
  background:rgba(75,15,32,.56)!important;
  color:#e1b665!important;
  border:1px solid rgba(214,170,104,.40)!important;
}
.page-usersAdmin .user-admin-group-label strong{
  color:#f7ead2!important;
}

/* Journal : chaque action = sous-cadre opaque. */
.page-usersAdmin .user-admin-log-row{
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.36)!important;
  border-radius:14px!important;
  color:rgba(255,246,235,.92)!important;
}
.page-usersAdmin .user-admin-log-row strong{
  color:#f7ead2!important;
}
.page-usersAdmin .user-admin-log-row time,
.page-usersAdmin .user-admin-log-row small,
.page-usersAdmin .user-admin-log-row span{
  color:rgba(255,246,235,.78)!important;
}

/* Fiche d'un utilisateur : sous-cadres internes plus opaques. */
.page-usersAdmin .user-admin-facts>div,
.page-usersAdmin .user-admin-usage>div,
.page-usersAdmin .user-admin-data-breakdown>div,
.page-usersAdmin .user-admin-role-control,
.page-usersAdmin .user-admin-clean-control{
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.34)!important;
  box-shadow:none!important;
}
.page-usersAdmin .user-admin-facts span,
.page-usersAdmin .user-admin-usage span,
.page-usersAdmin .user-admin-data-total span,
.page-usersAdmin .user-admin-data-breakdown span,
.page-usersAdmin .user-admin-role-control>label,
.page-usersAdmin .user-admin-clean-control>label{
  color:rgba(255,246,235,.78)!important;
}
.page-usersAdmin .user-admin-facts strong,
.page-usersAdmin .user-admin-usage strong,
.page-usersAdmin .user-admin-data-total strong,
.page-usersAdmin .user-admin-data-breakdown strong{
  color:#f7ead2!important;
}

/* Les séparations internes ne doivent plus redevenir beige/blanc. */
.page-usersAdmin .user-admin-data-block{
  border-color:rgba(214,170,104,.25)!important;
}

/* Champs et sélecteurs restent clairs, comme les inputs de Commande de vin. */
.page-usersAdmin .input{
  background:rgba(255,255,255,.97)!important;
  color:var(--ink)!important;
}
.page-usersAdmin .input::placeholder{
  color:#8c7772!important;
}

/* Badges conservés lisibles sur le nouveau fond. */
.page-usersAdmin .user-role-badge.admin{
  background:#e1b665!important;
  color:#4b0f20!important;
}
.page-usersAdmin .user-role-badge.user{
  background:rgba(255,248,239,.90)!important;
  color:#7d1732!important;
}

/* Le statut reste immédiatement identifiable. */
.page-usersAdmin .user-account-status.active{
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
}
.page-usersAdmin .user-account-status.suspended{
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
}

@media(max-width:820px){
  .page-usersAdmin .user-admin-panel,
  .page-usersAdmin .user-admin-log-panel,
  .page-usersAdmin .user-admin-detail-card{
    border-radius:20px!important;
  }
  .page-usersAdmin .user-admin-row.role-admin,
  .page-usersAdmin .user-admin-row.role-user,
  .page-usersAdmin .user-admin-log-row{
    background:rgba(75,15,32,.70)!important;
  }
}


/* Epicave V3.4.45 — fiche Administration utilisateur : arrondis, marges et contrastes */

/* Tous les sous-cadres de données suivent désormais la même géométrie. */
.page-usersAdmin .user-admin-detail-card .user-admin-facts>div,
.page-usersAdmin .user-admin-detail-card .user-admin-usage>div,
.page-usersAdmin .user-admin-detail-card .user-admin-data-total,
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown>div,
.page-usersAdmin .user-admin-detail-card .user-admin-role-control,
.page-usersAdmin .user-admin-detail-card .user-admin-clean-control{
  border-radius:14px!important;
  padding:13px 15px!important;
  box-sizing:border-box;
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.34)!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Les textes ne viennent plus toucher les bords. */
.page-usersAdmin .user-admin-detail-card .user-admin-facts,
.page-usersAdmin .user-admin-detail-card .user-admin-usage,
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown{
  gap:10px!important;
}
.page-usersAdmin .user-admin-detail-card .user-admin-data-total{
  margin-top:14px!important;
}
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown{
  margin-top:10px!important;
}

/* Libellés et valeurs sur fonds bordeaux. */
.page-usersAdmin .user-admin-detail-card .user-admin-facts span,
.page-usersAdmin .user-admin-detail-card .user-admin-usage span,
.page-usersAdmin .user-admin-detail-card .user-admin-data-total span,
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown span,
.page-usersAdmin .user-admin-detail-card .user-admin-role-control>label,
.page-usersAdmin .user-admin-detail-card .user-admin-clean-control>label{
  color:rgba(255,246,235,.80)!important;
}
.page-usersAdmin .user-admin-detail-card .user-admin-facts strong,
.page-usersAdmin .user-admin-detail-card .user-admin-usage strong,
.page-usersAdmin .user-admin-detail-card .user-admin-data-total strong,
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown strong{
  color:#f7ead2!important;
}

/* La taille totale des données doit ressortir nettement. */
.page-usersAdmin .user-admin-data-total strong{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.28);
}

/* Boutons : décollés des bordures des cadres. */
.page-usersAdmin .user-admin-detail-card .user-admin-actions{
  gap:12px!important;
  padding:4px 2px 2px!important;
  margin-top:18px!important;
}
.page-usersAdmin .user-admin-detail-card .user-admin-role-control .btn,
.page-usersAdmin .user-admin-detail-card .user-admin-clean-control .btn{
  margin-top:10px!important;
}
.page-usersAdmin .user-admin-detail-card .user-admin-clean-control{
  margin-top:18px!important;
}

/* Sections internes Usage / Taille des données : respiration supplémentaire. */
.page-usersAdmin .user-admin-usage-block,
.page-usersAdmin .user-admin-data-block{
  padding:2px 4px!important;
}
.page-usersAdmin .user-admin-data-block{
  border-radius:16px!important;
}

/* Évite tout ancien fond blanc résiduel sur les blocs de taille. */
.page-usersAdmin .user-admin-detail-card .user-admin-data-total,
.page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown>div{
  background:rgba(75,15,32,.66)!important;
}

/* Sur mobile, conserver de vraies marges intérieures. */
@media(max-width:820px){
  .page-usersAdmin .user-admin-detail-card{
    padding:16px!important;
  }
  .page-usersAdmin .user-admin-detail-card .user-admin-facts>div,
  .page-usersAdmin .user-admin-detail-card .user-admin-usage>div,
  .page-usersAdmin .user-admin-detail-card .user-admin-data-total,
  .page-usersAdmin .user-admin-detail-card .user-admin-data-breakdown>div,
  .page-usersAdmin .user-admin-detail-card .user-admin-role-control,
  .page-usersAdmin .user-admin-detail-card .user-admin-clean-control{
    padding:13px 14px!important;
    border-radius:14px!important;
  }
}


/* Epicave V3.4.45 — statut utilisateur plus lisible */
.page-usersAdmin .user-account-status.active{
  background:#2f7d4a!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 4px 12px rgba(24,83,46,.24)!important;
}
.page-usersAdmin .user-account-status.suspended{
  background:#8f2f3e!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 4px 12px rgba(76,12,28,.24)!important;
}
.page-usersAdmin .user-account-status.active *,
.page-usersAdmin .user-account-status.suspended *{
  color:#fff!important;
}


/* Epicave V3.4.45 — fiche administrateur principal : Actions administratives lisibles */
.page-usersAdmin .user-admin-actions-card .user-admin-protected-note{
  margin:16px 0 0!important;
  padding:14px 16px!important;
  border-radius:14px!important;
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.34)!important;
  color:rgba(255,246,235,.90)!important;
  box-shadow:inset 0 1px 0 rgba(255,235,205,.06)!important;
  line-height:1.45;
}
.page-usersAdmin .user-admin-actions-card .user-admin-protected-note strong{
  color:#e1b665!important;
}

/* Le cadre Actions administratives garde le même langage visuel que les autres sections. */
.page-usersAdmin .user-admin-actions-card{
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.50)!important;
}
.page-usersAdmin .user-admin-actions-card h2{
  color:#e1b665!important;
}


/* Epicave V3.4.45 — Référentiels vins/plats : cadres blancs à 15 % de transparence */

/* Référentiel des vins */
.page-admin .admin-card,
.page-admin .admin-panel,
.page-admin .reference-card,
.page-admin .reference-editor,
.page-admin .reference-list-card,

/* Référentiel des plats */
.page-dishesAdmin .admin-card,
.page-dishesAdmin .admin-panel,
.page-dishesAdmin .dish-card,
.page-dishesAdmin .dish-editor,
.page-dishesAdmin .dish-list-card{
  background:rgba(255,255,255,.85)!important;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}


/* Epicave V3.4.45 — Référentiels vins/plats harmonisés avec Gestion des utilisateurs */

/* Cadres principaux : bordeaux translucide à la place du filtre blanc. */
.page-admin .admin-card,
.page-admin .admin-panel,
.page-admin .reference-editor,
.page-admin .reference-list-card,
.page-dishesAdmin .admin-card,
.page-dishesAdmin .admin-panel,
.page-dishesAdmin .dish-editor,
.page-dishesAdmin .dish-list-card{
  position:relative;
  isolation:isolate;
  background:rgba(75,15,32,.20)!important;
  border:1px solid rgba(214,170,104,.50)!important;
  box-shadow:0 12px 30px rgba(45,8,18,.14), inset 0 1px 0 rgba(255,235,205,.08)!important;
  backdrop-filter:blur(8px) saturate(1.06);
  -webkit-backdrop-filter:blur(8px) saturate(1.06);
  color:rgba(255,246,235,.94)!important;
}
.page-admin .admin-card::before,
.page-admin .admin-panel::before,
.page-admin .reference-editor::before,
.page-admin .reference-list-card::before,
.page-dishesAdmin .admin-card::before,
.page-dishesAdmin .admin-panel::before,
.page-dishesAdmin .dish-editor::before,
.page-dishesAdmin .dish-list-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(92,18,42,.27),rgba(65,8,27,.21));
}

/* Sous-cadres / lignes : plus opaques, comme les cartes internes de Gestion des utilisateurs. */
.page-admin .reference-card,
.page-admin .admin-row,
.page-admin .reference-row,
.page-admin .reference-item,
.page-dishesAdmin .dish-card,
.page-dishesAdmin .admin-row,
.page-dishesAdmin .dish-row,
.page-dishesAdmin .dish-item{
  background:rgba(75,15,32,.66)!important;
  border:1px solid rgba(214,170,104,.40)!important;
  border-radius:14px!important;
  box-shadow:0 9px 22px rgba(38,5,15,.14), inset 0 1px 0 rgba(255,235,205,.06)!important;
  color:rgba(255,246,235,.94)!important;
}

/* Titres principaux et secondaires en doré. */
.page-admin h1,
.page-admin h2,
.page-admin h3,
.page-admin .admin-heading h1,
.page-admin .admin-heading h2,
.page-dishesAdmin h1,
.page-dishesAdmin h2,
.page-dishesAdmin h3,
.page-dishesAdmin .admin-heading h1,
.page-dishesAdmin .admin-heading h2{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.28);
}

/* Libellés et sous-textes en clair. */
.page-admin p,
.page-admin small,
.page-admin label,
.page-admin .muted,
.page-admin .admin-kicker,
.page-dishesAdmin p,
.page-dishesAdmin small,
.page-dishesAdmin label,
.page-dishesAdmin .muted,
.page-dishesAdmin .admin-kicker{
  color:rgba(255,246,235,.84)!important;
}

/* Valeurs / noms importants. */
.page-admin strong,
.page-admin .reference-card strong,
.page-admin .reference-row strong,
.page-dishesAdmin strong,
.page-dishesAdmin .dish-card strong,
.page-dishesAdmin .dish-row strong{
  color:#f7ead2!important;
}

/* Les liens et actions textuelles ne doivent plus ressortir rouge sur rouge. */
.page-admin a:not(.btn),
.page-admin button:not(.btn),
.page-dishesAdmin a:not(.btn),
.page-dishesAdmin button:not(.btn){
  color:#ead29f;
}

/* Champs de saisie : blancs, comme dans Gestion des utilisateurs. */
.page-admin .input,
.page-admin input,
.page-admin select,
.page-admin textarea,
.page-dishesAdmin .input,
.page-dishesAdmin input,
.page-dishesAdmin select,
.page-dishesAdmin textarea{
  background:rgba(255,255,255,.97)!important;
  color:var(--ink)!important;
  border-color:rgba(92,58,50,.22)!important;
}
.page-admin input::placeholder,
.page-admin textarea::placeholder,
.page-dishesAdmin input::placeholder,
.page-dishesAdmin textarea::placeholder{
  color:#8c7772!important;
}

/* Badges et infos secondaires : lisibles sur bordeaux. */
.page-admin .badge,
.page-admin .chip,
.page-dishesAdmin .badge,
.page-dishesAdmin .chip{
  border-color:rgba(214,170,104,.34)!important;
}

/* Éviter tout fond blanc résiduel sur les blocs internes usuels. */
.page-admin .admin-section,
.page-admin .reference-fields,
.page-admin .reference-meta,
.page-dishesAdmin .admin-section,
.page-dishesAdmin .dish-fields,
.page-dishesAdmin .dish-meta{
  background:transparent!important;
}

/* Mobile : mêmes codes couleurs, sans réduire la lisibilité. */
@media(max-width:820px){
  .page-admin .admin-card,
  .page-admin .admin-panel,
  .page-admin .reference-editor,
  .page-admin .reference-list-card,
  .page-dishesAdmin .admin-card,
  .page-dishesAdmin .admin-panel,
  .page-dishesAdmin .dish-editor,
  .page-dishesAdmin .dish-list-card{
    border-radius:20px!important;
  }

  .page-admin .reference-card,
  .page-admin .admin-row,
  .page-admin .reference-row,
  .page-admin .reference-item,
  .page-dishesAdmin .dish-card,
  .page-dishesAdmin .admin-row,
  .page-dishesAdmin .dish-row,
  .page-dishesAdmin .dish-item{
    background:rgba(75,15,32,.70)!important;
  }
}


/* Epicave V3.4.45 — référentiels corrigés, sidebar protégée, paiement historique */
.page-admin .sidebar .nav-btn,.page-dishesAdmin .sidebar .nav-btn{color:#f9ebe6!important;background:transparent!important}
.page-admin .sidebar .nav-btn:hover,.page-admin .sidebar .nav-btn.active,.page-dishesAdmin .sidebar .nav-btn:hover,.page-dishesAdmin .sidebar .nav-btn.active{color:#fff!important;background:rgba(255,255,255,.15)!important}
.page-admin .sidebar .nav-icon,.page-dishesAdmin .sidebar .nav-icon{color:#e8c88e!important}
.page-admin .sidebar .sidebar-profile-quote,.page-dishesAdmin .sidebar .sidebar-profile-quote{color:#ebcf95!important}
.page-admin .main .admin-panel,.page-admin .main .admin-editor{background:rgba(75,15,32,.30)!important;border:1px solid rgba(214,170,104,.50)!important;color:rgba(255,246,235,.94)!important}
.page-admin .main .admin-panel::before,.page-admin .main .admin-editor::before{background:linear-gradient(145deg,rgba(92,18,42,.30),rgba(65,8,27,.24))!important}
.page-admin .main .admin-wine-filters .chip{border:1px solid #ded2c8!important;background:#fff!important;color:#604f4a!important;box-shadow:none!important}
.page-admin .main .admin-wine-filters .chip.active{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important}
.page-admin .main .admin-count{color:rgba(255,246,235,.92)!important}
.page-admin .main .admin-wine-row{background:rgba(75,15,32,.90)!important;border:1px solid rgba(214,170,104,.42)!important;box-shadow:0 8px 20px rgba(38,5,15,.16),inset 0 1px 0 rgba(255,235,205,.06)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.page-admin .main .admin-wine-row .admin-reference-title{color:#e1b665!important}
.page-admin .main .admin-wine-row .admin-row-main>span,.page-admin .main .admin-wine-row .admin-row-main>small,.page-admin .main .admin-wine-row .admin-missing{color:rgba(255,246,235,.86)!important}
.page-dishesAdmin .main .dish-admin-panel,.page-dishesAdmin .main .admin-editor{background:rgba(75,15,32,.30)!important;border:1px solid rgba(214,170,104,.50)!important;color:rgba(255,246,235,.94)!important}
.page-dishesAdmin .main .dish-admin-panel::before,.page-dishesAdmin .main .admin-editor::before{background:linear-gradient(145deg,rgba(92,18,42,.30),rgba(65,8,27,.24))!important}
.page-dishesAdmin .main .admin-count{color:rgba(255,246,235,.92)!important}
.page-dishesAdmin .main .dish-admin-row{background:rgba(75,15,32,.90)!important;border:1px solid rgba(214,170,104,.42)!important;box-shadow:0 8px 20px rgba(38,5,15,.16),inset 0 1px 0 rgba(255,235,205,.06)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.page-dishesAdmin .main .dish-admin-title{color:#e1b665!important}
.page-dishesAdmin .main .dish-admin-main small{color:rgba(255,246,235,.86)!important}
.wine-order-history-paid-toggle{appearance:none;border:0;border-radius:999px;padding:7px 12px;font:800 12px/1 inherit;cursor:pointer;transition:transform .15s ease,opacity .15s ease}
.wine-order-history-paid-toggle:hover{transform:translateY(-1px)}.wine-order-history-paid-toggle:disabled{opacity:.55;cursor:wait}
.wine-order-history-paid-toggle.paid{background:#2f7d4a!important;color:#fff!important}.wine-order-history-paid-toggle.unpaid{background:#f1d8a4!important;color:#6b4716!important}


/* Epicave V3.4.45 — Référentiel des vins : données manquantes sans cadre blanc */
.page-admin .main .admin-missing,
.page-admin .main .admin-missing-data,
.page-admin .main .admin-reference-missing{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
.page-admin .main .admin-missing h3,
.page-admin .main .admin-missing-data h3,
.page-admin .main .admin-reference-missing h3,
.page-admin .main .admin-missing strong,
.page-admin .main .admin-missing-data strong,
.page-admin .main .admin-reference-missing strong{
  color:#e1b665!important;
  text-shadow:0 1px 2px rgba(40,4,15,.24);
}
.page-admin .main .admin-missing,
.page-admin .main .admin-missing p,
.page-admin .main .admin-missing span,
.page-admin .main .admin-missing li,
.page-admin .main .admin-missing-data,
.page-admin .main .admin-missing-data p,
.page-admin .main .admin-missing-data span,
.page-admin .main .admin-missing-data li,
.page-admin .main .admin-reference-missing,
.page-admin .main .admin-reference-missing p,
.page-admin .main .admin-reference-missing span,
.page-admin .main .admin-reference-missing li{
  color:rgba(255,246,235,.88)!important;
}
.page-admin .main .admin-missing .chip,
.page-admin .main .admin-missing-data .chip,
.page-admin .main .admin-reference-missing .chip{
  background:rgba(255,248,239,.10)!important;
  color:#f7ead2!important;
  border:1px solid rgba(214,170,104,.26)!important;
}

/* Epicave V3.5.8 — menu latéral web : voile uniquement sur l'élément actif (et au survol) */
@media(min-width:821px){
  .sidebar .nav-btn,
  .sidebar .side-nav-admin .nav-btn{
    background:transparent!important;
  }

  .sidebar .nav-btn.active,
  .sidebar .side-nav-admin .nav-btn.active{
    background:rgba(255,255,255,.15)!important;
  }

  .sidebar .nav-btn:hover,
  .sidebar .side-nav-admin .nav-btn:hover{
    background:rgba(255,255,255,.15)!important;
  }
}

/* Epicave V3.5.8 — menu latéral web : page active en voile doré */
@media(min-width:821px){
  .sidebar .nav-btn{
    background:transparent!important;
  }

  .sidebar .nav-btn.active{
    background:rgba(225,182,101,.24)!important;
    border-color:rgba(225,182,101,.34)!important;
    color:#fff!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 6px 16px rgba(43,5,17,.12)!important;
  }

  .sidebar .nav-btn.active .nav-icon,
  .sidebar .nav-btn.active .nav-icon svg,
  .sidebar .nav-btn.active .nav-icon svg *{
    color:#fff!important;
    stroke:#fff!important;
  }

  .sidebar .nav-btn:not(.active):hover{
    background:rgba(255,255,255,.10)!important;
  }

  .sidebar .nav-btn.active:hover{
    background:rgba(225,182,101,.30)!important;
  }
}

/* Epicave V3.5.8 — menu web : état actif doré harmonisé sur toutes les pages */
@media(min-width:821px){
  .sidebar .nav-btn,
  .page-wineOrders .sidebar .nav-btn,
  .page-admin .sidebar .nav-btn,
  .page-dishesAdmin .sidebar .nav-btn,
  .page-usersAdmin .sidebar .nav-btn,
  .page-settings .sidebar .nav-btn{
    background:transparent!important;
  }

  .sidebar .nav-btn.active,
  .page-wineOrders .sidebar .nav-btn.active,
  .page-admin .sidebar .nav-btn.active,
  .page-dishesAdmin .sidebar .nav-btn.active,
  .page-usersAdmin .sidebar .nav-btn.active,
  .page-settings .sidebar .nav-btn.active{
    background:rgba(225,182,101,.38)!important;
    border-color:rgba(225,182,101,.52)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 7px 18px rgba(43,5,17,.16)!important;
  }

  .sidebar .nav-btn.active .nav-icon,
  .sidebar .nav-btn.active .nav-icon svg,
  .sidebar .nav-btn.active .nav-icon svg *,
  .page-wineOrders .sidebar .nav-btn.active .nav-icon,
  .page-admin .sidebar .nav-btn.active .nav-icon,
  .page-dishesAdmin .sidebar .nav-btn.active .nav-icon,
  .page-usersAdmin .sidebar .nav-btn.active .nav-icon,
  .page-settings .sidebar .nav-btn.active .nav-icon{
    color:#fff!important;
    stroke:#fff!important;
  }

  .sidebar .nav-btn:not(.active):hover,
  .page-wineOrders .sidebar .nav-btn:not(.active):hover,
  .page-admin .sidebar .nav-btn:not(.active):hover,
  .page-dishesAdmin .sidebar .nav-btn:not(.active):hover,
  .page-usersAdmin .sidebar .nav-btn:not(.active):hover,
  .page-settings .sidebar .nav-btn:not(.active):hover{
    background:rgba(255,255,255,.10)!important;
  }

  .sidebar .nav-btn.active:hover,
  .page-wineOrders .sidebar .nav-btn.active:hover,
  .page-admin .sidebar .nav-btn.active:hover,
  .page-dishesAdmin .sidebar .nav-btn.active:hover,
  .page-usersAdmin .sidebar .nav-btn.active:hover,
  .page-settings .sidebar .nav-btn.active:hover{
    background:rgba(225,182,101,.44)!important;
  }
}


/* Epicave V3.5.8 — menu web : reflets modernes sur l'état actif + identité agrandie */
@media(min-width:821px){
  /* L'identité web (logo + nom + slogan) est agrandie uniformément pour garder ses proportions. */
  .sidebar .brand-home-link{
    transform:scale(1.125);
    transform-origin:left top;
    width:88.8889%;
    margin-bottom:46px!important;
  }

  /* Le voile doré actif reste au même niveau d'opacité, enrichi de reflets blancs discrets. */
  .sidebar .nav-btn.active,
  .page-wineOrders .sidebar .nav-btn.active,
  .page-admin .sidebar .nav-btn.active,
  .page-dishesAdmin .sidebar .nav-btn.active,
  .page-usersAdmin .sidebar .nav-btn.active,
  .page-settings .sidebar .nav-btn.active{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:
      linear-gradient(112deg,transparent 0 32%,rgba(255,255,255,.12) 39%,rgba(255,255,255,.04) 46%,transparent 54%),
      radial-gradient(ellipse at 70% 18%,rgba(255,255,255,.12) 0 10%,transparent 26%),
      rgba(225,182,101,.38)!important;
  }

  /* Reflet supérieur doux, sans gêner le texte ni l'icône. */
  .sidebar .nav-btn.active::before,
  .page-wineOrders .sidebar .nav-btn.active::before,
  .page-admin .sidebar .nav-btn.active::before,
  .page-dishesAdmin .sidebar .nav-btn.active::before,
  .page-usersAdmin .sidebar .nav-btn.active::before,
  .page-settings .sidebar .nav-btn.active::before{
    content:"";
    position:absolute;
    z-index:-1;
    pointer-events:none;
    left:9%;
    right:35%;
    top:2px;
    height:1px;
    border-radius:999px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
    opacity:.75;
  }

  /* Au survol d'un bouton déjà actif, on garde le même langage doré/refleté. */
  .sidebar .nav-btn.active:hover,
  .page-wineOrders .sidebar .nav-btn.active:hover,
  .page-admin .sidebar .nav-btn.active:hover,
  .page-dishesAdmin .sidebar .nav-btn.active:hover,
  .page-usersAdmin .sidebar .nav-btn.active:hover,
  .page-settings .sidebar .nav-btn.active:hover{
    background:
      linear-gradient(112deg,transparent 0 32%,rgba(255,255,255,.14) 39%,rgba(255,255,255,.05) 46%,transparent 54%),
      radial-gradient(ellipse at 70% 18%,rgba(255,255,255,.14) 0 10%,transparent 26%),
      rgba(225,182,101,.44)!important;
  }
}


/* Epicave V3.5.8 — citation web légèrement agrandie */
@media(min-width:821px){
  .sidebar .sidebar-profile-quote{
    font-size:1.06em!important;
    line-height:1.48!important;
  }
}


/* Epicave V3.5.8 — citation web réellement agrandie + actions du référentiel vins harmonisées */
@media(min-width:821px){
  .sidebar .sidebar-profile-quote,
  .sidebar-bottom .sidebar-profile-quote{
    font-size:18px!important;
    line-height:1.46!important;
  }
}

/* Données manquantes au-dessus, puis les trois actions sur une seule ligne. */
.page-admin .main .admin-wine-row .admin-row-actions{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:8px!important;
  max-width:560px!important;
}
.page-admin .main .admin-wine-row .admin-row-manage{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
  width:100%!important;
}
.page-admin .main .admin-wine-row .admin-row-manage .btn{
  height:36px!important;
  min-height:36px!important;
  border-radius:10px!important;
  padding:8px 11px!important;
  font-size:12px!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
.page-admin .main .admin-wine-row .admin-refresh-missing{
  flex:0 1 auto!important;
  background:#d8ad5b!important;
  border:1px solid #e6c77f!important;
  color:#4b0f20!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 10px rgba(54,9,22,.12)!important;
}
.page-admin .main .admin-wine-row .admin-refresh-missing:hover:not(:disabled){
  background:#e1b665!important;
}
.page-admin .main .admin-wine-row .admin-refresh-missing:disabled{
  opacity:.50!important;
  cursor:default!important;
}
.admin-refresh-label-short{display:none}

@media(max-width:760px){
  .page-admin .main .admin-wine-row .admin-row-actions{
    width:100%!important;
    max-width:none!important;
  }
  .page-admin .main .admin-wine-row .admin-row-manage{
    display:grid!important;
    grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr)!important;
    gap:6px!important;
  }
  .page-admin .main .admin-wine-row .admin-row-manage .btn{
    width:100%!important;
    min-width:0!important;
    padding:8px 6px!important;
    font-size:11px!important;
  }
  .admin-refresh-label-full{display:none!important}
  .admin-refresh-label-short{display:inline!important}
}


/* Epicave V3.5.8 — citation réellement agrandie + actualisation conditionnelle harmonisée */
@media(min-width:821px){
  .sidebar-bottom .sidebar-quote.sidebar-profile-quote{
    font:italic 22px/1.42 var(--serif)!important;
    letter-spacing:.01em!important;
  }
}

/* Même doré que le bouton "Envoyer le message" de Contact & avis. */
.page-admin .main .admin-wine-row .admin-refresh-missing{
  background:linear-gradient(135deg,#d6aa68,#a86e2c)!important;
  border:0!important;
  color:#fff!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
.page-admin .main .admin-wine-row .admin-refresh-missing:hover{
  background:linear-gradient(135deg,#dfb978,#b77b34)!important;
  color:#fff!important;
  cursor:pointer!important;
  transform:translateY(-1px);
}

/* Epicave V3.5.8 — citation web agrandie sans modifier sa police ni son centrage */
@media(min-width:821px){
  .sidebar-bottom .sidebar-quote.sidebar-profile-quote{
    font-family:"Always in the Star","Snell Roundhand","Apple Chancery",cursive!important;
    font-style:normal!important;
    font-weight:400!important;
    font-size:23px!important;
    line-height:1.18!important;
    letter-spacing:.1px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
}

/* Epicave V3.5.9 — corrections référentiel + commandes mobile */
.page-admin .admin-reference-media-actions .admin-reference-upload.btn-gold{
  background:linear-gradient(135deg,#d6aa68,#a86e2c)!important;
  border-color:transparent!important;
  color:#fff!important;
  font-weight:800;
  cursor:pointer;
}
.page-admin .admin-reference-media-actions .admin-reference-upload.btn-gold:hover{
  filter:brightness(1.04);
}
.page-admin .admin-reference-media-actions .admin-reference-upload.btn-gold:has(input:disabled){
  opacity:.55;
  cursor:not-allowed;
}
.admin-taste-axis-title{
  margin:0 0 7px;
  text-align:center;
  color:var(--wine-2);
  font:800 15px/1.2 var(--sans);
  letter-spacing:.01em;
}
.admin-taste-row+.admin-taste-row{
  padding-top:12px;
  border-top:1px solid rgba(111,21,46,.10);
}

@media(max-width:820px){
  /* Dans le résumé d'une commande historique, la référence occupe désormais
     toute la première ligne. Quantité/prix et total passent dessous. */
  .wine-order-summary-lines>div{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:5px 12px!important;
    align-items:start!important;
    padding:10px 0!important;
  }
  .wine-order-summary-lines>div>span:first-child{
    grid-column:1/-1!important;
    min-width:0!important;
    width:100%!important;
    font-weight:750;
    line-height:1.3;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .wine-order-summary-lines>div>span:nth-child(2){
    grid-column:1!important;
    min-width:0!important;
    color:var(--muted);
    font-size:13px;
    line-height:1.3;
  }
  .wine-order-summary-lines>div>strong{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    white-space:nowrap;
  }
  .wine-order-summary-client-head{
    gap:10px!important;
    align-items:center!important;
  }
}

@media(max-width:520px){
  .wine-order-summary-dialog{padding-inline:14px!important}
  .wine-order-summary-clients section{padding:13px 12px!important}
  .wine-order-summary-client-head h3{min-width:0;overflow-wrap:anywhere}
  .wine-order-summary-client-total{justify-content:space-between!important;gap:10px!important}
  .wine-order-summary-lines>div>span:nth-child(2){font-size:12px}
}


/* Epicave V3.5.10 — titres des axes gustatifs sur les fiches vins */
.taste-axis-title{
  margin:0 0 7px;
  text-align:center;
  color:#4b1820;
  font:800 14px/1.15 var(--sans);
  letter-spacing:.01em;
}
.wine-equal-panels .taste-axis{display:block}
.wine-equal-panels .taste-axis-title{color:#4b1820!important}

/* Epicave V3.5.10 — éditeur gustatif du référentiel calqué sur la fiche vin */
.admin-taste-editor .taste-edit-card{
  background:#fff!important;
  border:0!important;
  box-shadow:none!important;
  gap:14px!important;
}
.admin-taste-row{
  display:block!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.admin-taste-axis-title{
  margin:0 0 7px!important;
  text-align:center!important;
  color:#4b1820!important;
  font:800 14px/1.15 var(--sans)!important;
  letter-spacing:.01em!important;
}
.admin-taste-axis-track{
  display:grid;
  grid-template-columns:minmax(58px,auto) minmax(120px,1fr) minmax(58px,auto);
  align-items:center;
  column-gap:14px;
  min-height:54px;
  padding:0 16px;
  border:1px solid #eaded4;
  border-radius:14px;
  background:#fff9f2;
}
.admin-taste-axis-track .taste-axis-label{
  position:relative!important;
  z-index:2!important;
  font:700 15px/1.1 var(--sans)!important;
  letter-spacing:0!important;
  white-space:nowrap;
}
.admin-taste-axis-track .taste-axis-label.left{color:#62453f!important;text-align:left}
.admin-taste-axis-track .taste-axis-label.right{color:#786963!important;text-align:right}
.admin-taste-range-wrap{position:relative;display:flex;align-items:center;min-width:0}
.admin-taste-range{
  width:100%!important;
  height:22px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  cursor:pointer;
  accent-color:#761631;
}
.admin-taste-range::-webkit-slider-runnable-track{
  height:8px!important;border:0!important;border-radius:999px!important;
  background:linear-gradient(90deg,#efe1d7 0%,#e4d2c7 50%,#efe1d7 100%)!important;
}
.admin-taste-range::-webkit-slider-thumb{
  -webkit-appearance:none!important;
  width:22px!important;height:22px!important;margin-top:-7px!important;border-radius:50%!important;
  background:linear-gradient(135deg,#6a1028 0%,#8d2340 100%)!important;
  border:2px solid #fff!important;box-shadow:0 4px 10px rgba(106,16,40,.22)!important;
}
.admin-taste-range::-moz-range-track{
  height:8px!important;border:0!important;border-radius:999px!important;
  background:linear-gradient(90deg,#efe1d7 0%,#e4d2c7 50%,#efe1d7 100%)!important;
}
.admin-taste-range::-moz-range-thumb{
  width:18px!important;height:18px!important;border-radius:50%!important;
  background:linear-gradient(135deg,#6a1028 0%,#8d2340 100%)!important;
  border:2px solid #fff!important;box-shadow:0 4px 10px rgba(106,16,40,.22)!important;
}
@media(max-width:820px){
  .taste-axis-title,.admin-taste-axis-title{font-size:13px!important;margin-bottom:6px!important}
  .admin-taste-axis-track{
    grid-template-columns:minmax(52px,auto) minmax(78px,1fr) minmax(52px,auto);
    column-gap:9px;min-height:50px;padding:0 12px;
  }
  .admin-taste-axis-track .taste-axis-label{font-size:13px!important}
}


/* Epicave V3.5.12 — fiche référentiel : Actualiser pleine largeur sans bouton Supprimer */
.page-admin .admin-reference-media-actions.no-official-label #adminReferenceRefresh{
  grid-column:1/-1;
  width:100%;
}
.page-admin .admin-reference-media-actions.has-official-label #adminReferenceRefresh,
.page-admin .admin-reference-media-actions.has-official-label #adminReferenceDelete{
  grid-column:auto;
}

/* Epicave V3.5.12 — adaptation des étiquettes officielles étroites (Vivino notamment).
   Le zoom est calculé en JS uniquement lorsque de larges marges sombres entourent
   l’étiquette. Il reste uniforme afin de conserver strictement le ratio d’origine. */
.wine-bottle-label-official .wine-bottle-label-content{
  overflow:hidden!important;
}
.wine-bottle-label-official .wine-official-label-image{
  transform-origin:center center!important;
  will-change:transform;
}

/* Epicave V3.5.14 — bouteilles +20 % dans Ma cave et dans la fiche d'un vin uniquement. */
.page-cave .cave-card .wine-bottle{
  width:91.2px!important;
  height:230.4px!important;
}
.page-wine .wine-detail-hero .wine-bottle{
  width:129.6px!important;
  height:326.4px!important;
}

@media(max-width:820px){
  .page-cave .cave-card .wine-bottle{
    width:81.6px!important;
    height:206.4px!important;
  }
  .page-wine .wine-detail-hero .wine-bottle{
    width:100.8px!important;
    height:254.4px!important;
  }
}

/* V3.5.15 : animation premium limitée aux actualisations du référentiel. */
.admin-label-refresh{position:relative;isolation:isolate}
.admin-label-refresh.searching{animation:none;opacity:1}
.admin-label-refresh-icon{display:block}
.admin-label-refresh.searching .admin-label-refresh-icon{opacity:0}
.admin-label-refresh-orbit{display:none;position:absolute;inset:3px;border-radius:50%;border:2px solid rgba(177,131,54,.22);border-top-color:#cda453;border-right-color:#8a1536;box-shadow:0 0 10px rgba(205,164,83,.24)}
.admin-label-refresh.searching .admin-label-refresh-orbit{display:block;animation:epicavePremiumOrbit 1.25s cubic-bezier(.55,.18,.45,.82) infinite}
.admin-reference-media-spinner,.admin-premium-mini-loader{border-radius:50%;border:3px solid rgba(188,147,74,.22);border-top-color:#d5ad5b;border-right-color:#7c1937;box-shadow:0 0 16px rgba(201,156,74,.2);animation:epicavePremiumOrbit 1.25s cubic-bezier(.55,.18,.45,.82) infinite}
.admin-premium-mini-loader{display:inline-block;width:15px;height:15px;vertical-align:-3px;margin-right:6px;border-width:2px}
@keyframes epicavePremiumOrbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.admin-label-refresh.searching .admin-label-refresh-orbit,.admin-reference-media-spinner,.admin-premium-mini-loader{animation-duration:3s}}


/* Epicave V3.5.16 — fond vignoble premium sur les pages demandées.
   Exception demandée : le Référentiel des vins garde exactement le même fond que Ma cave. */
.page-home .main,
.page-meal .main,
.page-recommendations .main,
.page-profile .main,
.page-dishesAdmin .main,
.page-settings .main{
  background:
    linear-gradient(rgba(37,8,17,.18),rgba(37,8,17,.34)),
    url("/image/fond-vignoble.png?v=3.5.16") center/cover fixed!important;
}
.page-admin .main{
  background:
    linear-gradient(rgba(37,8,17,.13),rgba(37,8,17,.23)),
    url("/image/fond-cave.jpg?v=3.5.16") center/cover fixed!important;
}
@media(max-width:820px){
  .page-home .main,
  .page-meal .main,
  .page-recommendations .main,
  .page-profile .main,
  .page-dishesAdmin .main,
  .page-settings .main{
    background:
      linear-gradient(rgba(37,8,17,.18),rgba(37,8,17,.34)),
      url("/image/fond-vignoble.png?v=3.5.16") center/cover scroll!important;
  }
  .page-admin .main{
    background:
      linear-gradient(rgba(37,8,17,.13),rgba(37,8,17,.23)),
      url("/image/fond-cave.jpg?v=3.5.16") center/cover scroll!important;
  }
}


/* Epicave V3.5.18 — fond vignoble vertical fixe sur mobile.
   Seules les six pages ayant le fond vignoble sont concernées. */
@media(max-width:820px){
  .page-home .main,
  .page-meal .main,
  .page-recommendations .main,
  .page-profile .main,
  .page-dishesAdmin .main,
  .page-settings .main{
    position:relative;
    isolation:isolate;
    background:transparent!important;
  }
  .page-home .main::before,
  .page-meal .main::before,
  .page-recommendations .main::before,
  .page-profile .main::before,
  .page-dishesAdmin .main::before,
  .page-settings .main::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:
      linear-gradient(rgba(37,8,17,.18),rgba(37,8,17,.34)),
      url("/image/fond-vignoble-mobile.png?v=3.5.18") center center/cover no-repeat;
  }
}


/* Epicave V3.5.19 — valeurs des curseurs du référentiel, identiques à l'éditeur utilisateur. */
.admin-taste-axis-track{
  grid-template-columns:minmax(58px,auto) minmax(92px,1fr) minmax(44px,auto) minmax(58px,auto);
  column-gap:10px;
}
.admin-taste-axis-track .admin-taste-output{
  display:block;
  white-space:nowrap;
}
@media(max-width:820px){
  .admin-taste-axis-track{
    grid-template-columns:minmax(0,auto) minmax(50px,1fr) minmax(42px,auto) minmax(0,auto);
    column-gap:5px;
    padding:0 8px;
  }
  .admin-taste-axis-track .taste-axis-label{font-size:12px!important}
  .admin-taste-axis-track .admin-taste-output{min-width:42px;padding:7px 8px}
}

/* Epicave V3.5.20 — trois statuts cycliques dans le résumé des commandes. */
.wine-order-history-paid-toggle.paid{background:#64ad79!important;color:#fff!important}
.wine-order-history-paid-toggle.delivered{background:#2f7d4a!important;color:#fff!important}

/* Epicave V3.5.21 — statut Livré : texte blanc en gras + scintillement premium. */
.wine-order-history-paid-toggle.delivered{
  position:relative;
  overflow:hidden;
  color:#fff!important;
  font-weight:850!important;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
  box-shadow:0 2px 8px rgba(47,125,74,.24);
}
.wine-order-history-paid-toggle.delivered::after{
  content:"";
  position:absolute;
  top:-45%;
  left:-55%;
  width:34%;
  height:190%;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
  transform:rotate(18deg);
  animation:epicaveDeliveredShimmer 2.4s ease-in-out infinite;
}
@keyframes epicaveDeliveredShimmer{
  0%,58%{left:-55%;opacity:0}
  66%{opacity:.9}
  82%{left:125%;opacity:.75}
  100%{left:125%;opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .wine-order-history-paid-toggle.delivered::after{animation:none;display:none}
}


/* Epicave V3.5.23 — thèmes Classique / Millésime */
.theme-profile-field small{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}
.site-theme-settings-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:24px!important}
.site-theme-settings-copy{max-width:720px}
.site-theme-settings-copy h2{margin:5px 0 7px;font:700 26px var(--serif);color:var(--wine)}
.site-theme-settings-copy p{margin:0;color:var(--muted);line-height:1.5}
.site-theme-settings-control{display:grid;grid-template-columns:minmax(170px,220px) auto;gap:8px 10px;align-items:end;min-width:min(100%,410px)}
.site-theme-settings-control label{grid-column:1/-1;font-size:13px;font-weight:800;color:#5e4f4c}
.site-theme-settings-control .btn{white-space:nowrap}
@media(max-width:820px){.site-theme-settings-panel{display:grid;gap:18px}.site-theme-settings-control{grid-template-columns:1fr;min-width:0}.site-theme-settings-control label{grid-column:auto}.site-theme-settings-control .btn{width:100%}}

/* Millésime : interprétation premium de la proposition visuelle n°4.
   Les fonctions et géométries validées restent inchangées. */
.theme-millesime{
  --wine:#5a071c;
  --wine-2:#27020d;
  --wine-3:#7f1735;
  --cream:#f7efe3;
  --cream-2:#ead9c7;
  --paper:#fff9ef;
  --gold:#d9ad63;
  --gold-2:#f3d89c;
  --ink:#251816;
  --muted:#806b63;
  --shadow:0 22px 60px rgba(25,2,9,.28);
  --shadow-sm:0 10px 28px rgba(25,2,9,.18);
}
.theme-millesime .sidebar{
  background:
    radial-gradient(circle at 50% 0,rgba(231,185,105,.12),transparent 30%),
    linear-gradient(180deg,#21030c 0%,#540719 48%,#22030d 100%);
  border-right:1px solid rgba(230,184,101,.25);
  box-shadow:16px 0 44px rgba(16,1,6,.22);
}
.theme-millesime .sidebar:after{opacity:.34;filter:saturate(.85) contrast(1.08)}
.theme-millesime .brand{position:relative}
.theme-millesime .brand-logo{filter:drop-shadow(0 0 9px rgba(240,194,112,.35));transform:scale(1.05)}
.theme-millesime .brand-name{
  color:#f4d493;
  background:linear-gradient(180deg,#fff0bd 0%,#d9a754 50%,#fff0bd 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:0 7px 25px rgba(228,168,73,.13);
  letter-spacing:.5px;
}
.theme-millesime .brand-tagline{color:#e9c681;letter-spacing:.15px}
.theme-millesime .nav-btn{border:1px solid transparent;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.theme-millesime .nav-btn:hover,.theme-millesime .nav-btn.active{background:linear-gradient(90deg,rgba(137,24,54,.62),rgba(87,9,31,.32));border-color:rgba(224,177,96,.28);box-shadow:inset 0 1px 0 rgba(255,235,190,.08),0 9px 24px rgba(19,1,7,.15)}
.theme-millesime .nav-btn.active{transform:translateX(2px)}
.theme-millesime .hero,.theme-millesime .content-heading,.theme-millesime .settings-heading,.theme-millesime .admin-heading{
  border:1px solid rgba(230,183,100,.30)!important;
  box-shadow:0 22px 55px rgba(20,1,7,.30),inset 0 1px 0 rgba(255,236,195,.09)!important;
}
.theme-millesime .hero{
  background:
    radial-gradient(circle at 84% 28%,rgba(230,174,77,.16),transparent 23%),
    linear-gradient(90deg,rgba(32,2,11,.96),rgba(82,7,28,.78),rgba(55,4,20,.48)),
    url("/image/fond-vignoble.png?v=3.5.17") center/cover!important;
}
.theme-millesime .page-title,.theme-millesime .hero h1{
  color:#f2cf87!important;
  text-shadow:0 3px 18px rgba(10,0,4,.52),0 0 18px rgba(224,171,77,.10)!important;
}
.theme-millesime .stat-card,.theme-millesime .profile-card,.theme-millesime .panel,.theme-millesime .scan-strip,.theme-millesime .wine-card,.theme-millesime .cave-card,.theme-millesime .pair-card:not(.best),.theme-millesime .external-wine-card{
  border-color:rgba(226,181,102,.38)!important;
  box-shadow:0 14px 38px rgba(27,2,10,.20),inset 0 1px 0 rgba(255,255,255,.36)!important;
}
.theme-millesime .wine-card,.theme-millesime .cave-card,.theme-millesime .pair-card:not(.best),.theme-millesime .external-wine-card{
  background:linear-gradient(145deg,rgba(78,8,29,.90),rgba(38,3,13,.92))!important;
}
.theme-millesime .btn-primary{
  background:linear-gradient(135deg,#7b1432,#3b0616)!important;
  border:1px solid rgba(236,190,111,.20);
  box-shadow:0 11px 28px rgba(53,4,18,.28),inset 0 1px 0 rgba(255,230,182,.10);
}
.theme-millesime .btn-gold{
  color:#3b160a!important;
  background:linear-gradient(135deg,#f0d18f 0%,#c88938 52%,#f2d69d 100%)!important;
  box-shadow:0 10px 24px rgba(146,91,30,.24),inset 0 1px 0 rgba(255,248,218,.65);
}
.theme-millesime .input{
  border-color:rgba(171,117,66,.34);
  background:rgba(255,252,246,.94);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.theme-millesime .input:focus{border-color:#d7a653;box-shadow:0 0 0 4px rgba(211,161,77,.16),0 9px 24px rgba(61,9,25,.09)}
.theme-millesime .bottom-nav{
  background:linear-gradient(180deg,rgba(43,3,15,.98),rgba(24,2,8,.99));
  border-top-color:rgba(226,181,102,.35);
  box-shadow:0 -12px 34px rgba(19,1,7,.26);
}
.theme-millesime .bottom-btn{color:#e6d4c5}
.theme-millesime .bottom-btn.active{color:#f0c978}
.theme-millesime .bottom-btn.scan-main .nav-icon{background:linear-gradient(145deg,#8d1738,#4b071b);border:1px solid rgba(239,194,114,.56);box-shadow:0 8px 25px rgba(89,8,31,.50),0 0 0 4px rgba(218,167,80,.08)}
.theme-millesime .desktop-footer,.theme-millesime .mobile-contact-footer{color:rgba(250,231,209,.80)}
.theme-millesime .desktop-footer a,.theme-millesime .mobile-contact-footer a{color:#efc775}
@media(max-width:820px){
    .theme-millesime .hero{background:linear-gradient(180deg,rgba(36,2,13,.66),rgba(69,7,26,.82)),url("/image/fond-vignoble-mobile.png?v=3.5.18") center/cover!important}
  .theme-millesime .brand-name{letter-spacing:.25px}
}

/* Epicave V3.5.23 — finitions Millésime inspirées de la proposition 4 */
.theme-millesime .brand-logo{
  width:48px;height:48px;object-fit:contain;
  filter:drop-shadow(0 0 8px rgba(239,193,111,.36)) drop-shadow(0 8px 18px rgba(21,1,8,.28));
}
.theme-millesime .brand-name{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:.35px;
  transform:translateZ(0);
}
.theme-millesime .brand-name::after{
  content:"";display:block;width:42%;height:1px;margin-top:5px;
  background:linear-gradient(90deg,transparent,#e4b66b,transparent);
  opacity:.72;
}
.theme-millesime .hero{
  position:relative;
  background:
    radial-gradient(circle at 78% 34%,rgba(242,191,99,.19),transparent 25%),
    linear-gradient(90deg,rgba(12,10,11,.76) 0%,rgba(16,12,13,.50) 48%,rgba(14,10,11,.10) 100%),
    url("/image/fond-vignoble.png?v=3.5.17") center 52%/cover no-repeat!important;
  overflow:hidden;
}
.theme-millesime .hero::after{
  content:"";position:absolute;width:310px;height:310px;right:-105px;top:-122px;border-radius:50%;
  border:1px solid rgba(241,195,109,.38);box-shadow:0 0 45px rgba(219,158,62,.12),inset 0 0 28px rgba(219,158,62,.07);
  pointer-events:none;
}
.theme-millesime .meal-card{
  border:1px solid rgba(226,180,98,.26);
  box-shadow:0 18px 42px rgba(24,1,8,.22),inset 0 1px 0 rgba(255,236,193,.08)!important;
}
.theme-millesime .scan-strip{
  color:#fff5e7!important;
}
.theme-millesime .scan-strip h3,.theme-millesime .scan-strip p{color:inherit!important}
.theme-millesime .content-heading,
.theme-millesime .settings-heading,
.theme-millesime .admin-heading{
  background:
    linear-gradient(100deg,rgba(17,12,13,.84),rgba(22,13,16,.46),rgba(25,13,16,.13)),
    url("/image/fond-vignoble.png?v=3.5.17") center/cover no-repeat!important;
}
.theme-millesime .stat-card,
.theme-millesime .profile-card,
.theme-millesime .panel{
  position:relative;overflow:hidden;
}
.theme-millesime .stat-card::before,
.theme-millesime .profile-card::before,
.theme-millesime .panel::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(222,173,91,.72),transparent);
}
.theme-millesime .btn-gold{position:relative;overflow:hidden}
.theme-millesime .btn-gold::after{
  content:"";position:absolute;top:-80%;left:-45%;width:28%;height:250%;transform:rotate(19deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent);opacity:0;transition:left .55s ease,opacity .25s ease;
}
.theme-millesime .btn-gold:hover::after{left:125%;opacity:.72}
.theme-millesime .wine-card:hover,
.theme-millesime .cave-card:hover,
.theme-millesime .pair-card:not(.best):hover{
  border-color:rgba(237,195,117,.70)!important;
  box-shadow:0 18px 42px rgba(21,1,7,.30),0 0 0 1px rgba(227,178,94,.11)!important;
}
@media(max-width:820px){
  .theme-millesime .brand-logo{width:55px;height:55px}
  .theme-millesime .hero{
    background:
      linear-gradient(180deg,rgba(16,12,13,.42),rgba(18,13,14,.62)),
      url("/image/fond-vignoble-mobile.png?v=3.5.18") center/cover no-repeat!important;
  }
  .theme-millesime .hero::after{width:220px;height:220px;right:-92px;top:-92px}
}
@media(prefers-reduced-motion:reduce){
  .theme-millesime .btn-gold::after{display:none}
}


/* Epicave V3.5.24 — logo et titre premium également dans Classique. */
.brand .brand-logo{
  filter:drop-shadow(0 0 8px rgba(239,193,111,.30)) drop-shadow(0 7px 16px rgba(21,1,8,.22));
}
.brand .brand-name{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:.35px;
  color:#f4d493;
  background:linear-gradient(180deg,#fff0bd 0%,#d9a754 50%,#fff0bd 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 7px 25px rgba(228,168,73,.13);
}
.brand .brand-name::after{
  content:"";display:block;width:42%;height:1px;margin-top:5px;
  background:linear-gradient(90deg,transparent,#e4b66b,transparent);opacity:.72;
}

/* Ne pas recolorer les cadres d'origine du thème Millésime : leur contenu
   retrouve les contrastes et les couleurs prévues par chaque page. */
.theme-millesime .site-theme-settings-panel{
  background:rgba(75,15,32,.92)!important;
  border:1px solid rgba(221,184,105,.72)!important;
  box-shadow:0 16px 38px rgba(35,5,16,.22)!important;
}
.theme-millesime .site-theme-settings-panel .site-theme-settings-copy h2{color:#e7bd72}
.theme-millesime .site-theme-settings-panel .site-theme-settings-copy p,
.theme-millesime .site-theme-settings-panel .site-theme-settings-control label{color:#f3e4dc}




/* Epicave V3.5.25 — splash/logo natif harmonisés avec le nouveau logo. */
.epicave-boot-brand{
  gap:10px!important;
}
.epicave-boot-logo{
  width:208px!important;
  height:208px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 28px rgba(13,1,5,.34)) drop-shadow(0 0 14px rgba(229,183,94,.20));
}
.epicave-boot-name{
  margin-top:4px!important;
  letter-spacing:.022em;
  text-shadow:0 7px 24px rgba(26,2,8,.28);
}
@media(max-width:520px){
  .epicave-boot-brand{gap:8px!important}
  .epicave-boot-logo{width:184px!important;height:184px!important}
  .epicave-boot-name{margin-top:6px!important;font-size:28px}
}

/* Epicave V3.5.25 — reliefs 3D recréés pour Millésime sur ordinateur uniquement. */
@media(min-width:1100px){
  .theme-millesime .main{position:relative;isolation:isolate}
  .theme-millesime .main::before{
    content:"";position:fixed;left:-22px;bottom:34px;
    width:clamp(150px,14vw,230px);height:clamp(230px,24vw,360px);
    background:url("/image/verre-3d.png?v=3.5.25") center/contain no-repeat;
    filter:drop-shadow(0 18px 18px rgba(17,4,9,.42)) drop-shadow(0 0 12px rgba(222,171,91,.16));
    pointer-events:none;z-index:0;opacity:.72;
  }
  .theme-millesime .main::after{
    content:"";position:fixed;right:-40px;bottom:10px;
    width:clamp(200px,20vw,320px);height:clamp(200px,20vw,320px);
    background:url("/image/bouteille-angle-3d.png?v=3.5.25") center/contain no-repeat;
    filter:drop-shadow(0 18px 22px rgba(17,5,9,.58)) drop-shadow(0 0 10px rgba(222,171,91,.16));
    transform:rotate(-7deg);
    pointer-events:none;z-index:0;opacity:.86;
  }
  .theme-millesime .main>.page{position:relative;z-index:1}
  .theme-millesime.page-home .hero::before{
    content:"";position:absolute;right:2.2%;bottom:-5%;width:min(26%,280px);height:116%;
    background:url("/image/bouteille-3d.png?v=3.5.25") center bottom/contain no-repeat;
    filter:drop-shadow(0 20px 25px rgba(12,4,7,.62)) drop-shadow(0 0 18px rgba(235,185,96,.18));
    pointer-events:none;z-index:0;opacity:.97;
  }
  .theme-millesime.page-home .hero>.hero-brand-mobile,
  .theme-millesime.page-home .hero>.hero-greeting{position:relative;z-index:1;max-width:min(70%,760px)}
}
@media(max-width:1099px){
  .theme-millesime .main::before,
  .theme-millesime .main::after,
  .theme-millesime.page-home .hero::before{content:none!important}
}


/* Epicave V3.5.27 — cohérence Classique / Millésime et reliefs web visibles. */

/* Le menu web Millésime conserve exactement la géométrie du menu Classique. */
@media(min-width:821px){
  .theme-millesime .sidebar{border-right:0!important}
  .theme-millesime .sidebar .brand-logo{
    width:80px!important;
    height:80px!important;
    min-width:80px!important;
    flex:0 0 80px!important;
    transform:none!important;
  }
  .theme-millesime .side-nav{gap:4px!important}
  .theme-millesime .nav-btn{
    padding:13px 14px!important;
    gap:12px!important;
    border:0!important;
    border-radius:13px!important;
    transform:none!important;
    font-weight:650!important;
  }
  .theme-millesime .nav-btn:hover,
  .theme-millesime .nav-btn.active{
    transform:none!important;
  }
}

/* Footer Millésime = couleurs et finition du footer Classique. */
.theme-millesime .desktop-footer{
  color:#8b7771!important;
  border-top-color:#e7dcd1!important;
}
.theme-millesime .desktop-footer a{
  color:#650d25!important;
}
.theme-millesime .desktop-footer .footer-sep{
  color:#aa9187!important;
}
@media(max-width:820px){
  .theme-millesime.page-recommendations .mobile-contact-footer{
    background:rgba(255,255,255,.94)!important;
    border-color:rgba(105,65,52,.12)!important;
    color:#705f59!important;
    box-shadow:0 6px 18px rgba(62,15,26,.08)!important;
  }
  .theme-millesime.page-recommendations .mobile-contact-footer a{color:#650d25!important}
  .theme-millesime.page-recommendations .mobile-contact-footer .footer-sep{color:#aa9187!important}
}

/* Splash : le relais utilise exactement l'icône native/PWA, puis le titre respirant. */
.epicave-boot-brand{gap:18px!important}
.epicave-boot-logo{
  width:174px!important;
  height:174px!important;
  object-fit:contain!important;
  border-radius:32px;
  filter:drop-shadow(0 14px 30px rgba(13,1,5,.34)) drop-shadow(0 0 14px rgba(229,183,94,.18));
}
.epicave-boot-name{
  margin-top:0!important;
  color:#e2b665!important;
  font:700 32px/1 Georgia,"Times New Roman",serif!important;
  letter-spacing:.028em!important;
}
@media(max-width:520px){
  .epicave-boot-brand{gap:16px!important}
  .epicave-boot-logo{width:156px!important;height:156px!important;border-radius:29px}
  .epicave-boot-name{margin-top:0!important;font-size:29px!important}
}

/* Reliefs Millésime : intégration dans les vrais bandeaux, web uniquement. */
@media(min-width:821px){
  .theme-millesime.page-home .hero,
  .theme-millesime.page-meal .meal-hero,
  .theme-millesime.page-profile .content-heading,
  .theme-millesime.page-recommendations .content-heading,
  .theme-millesime.page-settings .settings-heading{
    position:relative!important;
    isolation:isolate;
  }
  .theme-millesime.page-home .hero::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    right:3%!important;
    bottom:-18%!important;
    top:auto!important;
    width:clamp(145px,18vw,270px)!important;
    height:126%!important;
    background:url("/image/bouteille-3d.png?v=3.5.27") center bottom/contain no-repeat!important;
    filter:drop-shadow(0 22px 24px rgba(14,3,7,.62)) drop-shadow(0 0 14px rgba(234,184,95,.20))!important;
    opacity:.96!important;
    pointer-events:none!important;
    z-index:1!important;
  }
  .theme-millesime.page-home .hero>.hero-greeting,
  .theme-millesime.page-home .hero>.hero-brand-mobile{
    position:relative!important;
    z-index:2!important;
    max-width:68%!important;
  }
  .theme-millesime.page-meal .meal-hero::after,
  .theme-millesime.page-recommendations .content-heading::after{
    content:"";
    position:absolute;
    right:2%;
    bottom:-46%;
    width:clamp(125px,15vw,210px);
    height:165%;
    background:url("/image/verre-3d.png?v=3.5.27") center bottom/contain no-repeat;
    filter:drop-shadow(0 18px 22px rgba(15,3,7,.52)) drop-shadow(0 0 12px rgba(231,177,88,.17));
    opacity:.78;
    pointer-events:none;
    z-index:1;
  }
  .theme-millesime.page-meal .meal-hero>* ,
  .theme-millesime.page-recommendations .content-heading>*{
    position:relative;
    z-index:2;
    max-width:72%;
  }
  .theme-millesime.page-profile .content-heading::after,
  .theme-millesime.page-settings .settings-heading::after{
    content:"";
    position:absolute;
    right:3%;
    top:50%;
    transform:translateY(-50%) rotate(-8deg);
    width:clamp(105px,12vw,170px);
    height:clamp(105px,12vw,170px);
    background:url("/image/bouteille-angle-3d.png?v=3.5.27") center/contain no-repeat;
    filter:drop-shadow(0 18px 20px rgba(17,4,8,.55)) drop-shadow(0 0 10px rgba(227,175,88,.18));
    opacity:.86;
    pointer-events:none;
    z-index:1;
  }
  .theme-millesime.page-profile .content-heading>*,
  .theme-millesime.page-settings .settings-heading>*{
    position:relative;
    z-index:2;
    max-width:75%;
  }
  /* Neutralise l'ancien décor global, source du masquage des images. */
  .theme-millesime .main::before,
  .theme-millesime .main::after{content:none!important}
}
@media(max-width:820px){
  .theme-millesime.page-home .hero::before,
  .theme-millesime.page-meal .meal-hero::after,
  .theme-millesime.page-profile .content-heading::after,
  .theme-millesime.page-recommendations .content-heading::after,
  .theme-millesime.page-settings .settings-heading::after{content:none!important}
}


/* Epicave V3.5.28 — fond Millésime mobile/PWA visible et fixe sur toutes les pages vignoble. */
@media(max-width:820px){
  .theme-millesime.page-home .main,
  .theme-millesime.page-meal .main,
  .theme-millesime.page-recommendations .main,
  .theme-millesime.page-profile .main,
  .theme-millesime.page-dishesAdmin .main,
  .theme-millesime.page-settings .main{
    position:relative!important;
    isolation:isolate!important;
    background:transparent!important;
  }
  .theme-millesime.page-home .main::before,
  .theme-millesime.page-meal .main::before,
  .theme-millesime.page-recommendations .main::before,
  .theme-millesime.page-profile .main::before,
  .theme-millesime.page-dishesAdmin .main::before,
  .theme-millesime.page-settings .main::before{
    content:""!important;
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:0!important;
    pointer-events:none!important;
    background:
      linear-gradient(rgba(37,8,17,.18),rgba(37,8,17,.34)),
      url("/image/fond-vignoble-mobile.png?v=3.5.28") center center/cover no-repeat!important;
  }
  .theme-millesime.page-home .main>.page,
  .theme-millesime.page-meal .main>.page,
  .theme-millesime.page-recommendations .main>.page,
  .theme-millesime.page-profile .main>.page,
  .theme-millesime.page-dishesAdmin .main>.page,
  .theme-millesime.page-settings .main>.page{
    position:relative!important;
    z-index:1!important;
    background:transparent!important;
  }
}


/* Epicave V3.5.29 — relais de chargement aligné sur l'icône native/PWA. */
.epicave-boot-splash{background:#4b0f20!important}
.epicave-boot-brand{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;gap:18px!important}
.epicave-boot-logo{width:160px!important;height:160px!important;object-fit:contain!important;border-radius:0!important;filter:none!important}
.epicave-boot-name{margin-top:0!important}
@media(max-width:520px){
  .epicave-boot-brand{gap:18px!important}
  .epicave-boot-logo{width:160px!important;height:160px!important;border-radius:0!important}
  .epicave-boot-name{margin-top:0!important;font-size:29px!important}
}


/* Epicave V3.5.30 — logo plus net et reliefs Millésime réellement intégrés au DOM. */
.brand .brand-logo{
  filter:drop-shadow(0 0 3px rgba(239,193,111,.24)) drop-shadow(0 5px 10px rgba(21,1,8,.18))!important;
}
.theme-millesime .brand-logo{
  filter:drop-shadow(0 0 3px rgba(239,193,111,.26)) drop-shadow(0 5px 10px rgba(21,1,8,.20))!important;
}

/* Neutralisation définitive des anciens reliefs en pseudo-éléments. */
@media(min-width:821px){
  .theme-millesime.page-home .hero::before,
  .theme-millesime.page-meal .meal-hero::after,
  .theme-millesime.page-recommendations .content-heading::after,
  .theme-millesime.page-profile .content-heading::after,
  .theme-millesime.page-settings .settings-heading::after,
  .theme-millesime .main::after{content:none!important}

  .millesime-web-reliefs{
    position:fixed;
    left:310px;
    right:0;
    top:0;
    bottom:0;
    z-index:18;
    pointer-events:none;
    overflow:hidden;
  }
  .millesime-relief{
    display:none;
    position:absolute;
    object-fit:contain;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
  }
  .millesime-web-reliefs-home .millesime-relief-bottle{
    display:block;
    right:-12px;
    top:118px;
    width:clamp(138px,15vw,225px);
    max-height:68vh;
    opacity:.94;
    filter:drop-shadow(0 18px 22px rgba(15,3,7,.58)) drop-shadow(0 0 10px rgba(232,181,94,.18));
  }
  .millesime-web-reliefs-meal .millesime-relief-glass,
  .millesime-web-reliefs-recommendations .millesime-relief-glass{
    display:block;
    right:-20px;
    top:150px;
    width:clamp(120px,13vw,190px);
    max-height:58vh;
    opacity:.82;
    filter:drop-shadow(0 16px 20px rgba(15,3,7,.50)) drop-shadow(0 0 9px rgba(231,177,88,.16));
  }
  .millesime-web-reliefs-profile .millesime-relief-cork,
  .millesime-web-reliefs-settings .millesime-relief-cork{
    display:block;
    right:8px;
    top:138px;
    width:clamp(105px,11vw,165px);
    opacity:.88;
    transform:rotate(-8deg);
    filter:drop-shadow(0 16px 18px rgba(17,4,8,.52)) drop-shadow(0 0 8px rgba(227,175,88,.17));
  }
  .theme-millesime .main>.page{position:relative;z-index:1}
}
@media(min-width:821px) and (max-width:1099px){
  .millesime-web-reliefs{left:285px}
  .millesime-web-reliefs-home .millesime-relief-bottle{right:-34px;width:145px;opacity:.82}
  .millesime-web-reliefs-meal .millesime-relief-glass,
  .millesime-web-reliefs-recommendations .millesime-relief-glass{right:-36px;width:132px;opacity:.72}
  .millesime-web-reliefs-profile .millesime-relief-cork,
  .millesime-web-reliefs-settings .millesime-relief-cork{right:-18px;width:112px;opacity:.80}
}
@media(max-width:820px){
  .millesime-web-reliefs{display:none!important}
}


/* Epicave V3.5.34 — placement affiné des bouteilles 3D sur l’accueil Millésime web. */
@media(min-width:821px){
  .theme-millesime.page-home .hero{
    position:relative;
    overflow:hidden!important;
    min-height:268px;
    padding-right:clamp(150px,18vw,245px);
  }
  .theme-millesime.page-home .hero .hero-greeting{
    position:relative;
    z-index:3;
    width:min(68%,760px);
    max-width:min(68%,760px);
  }
  .millesime-home-angle-bottle{
    display:block!important;
    position:absolute;
    right:clamp(-38px,-2vw,-14px);
    top:clamp(2px,.7vw,12px);
    width:clamp(190px,19vw,285px);
    height:auto;
    z-index:2;
    opacity:.96;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
    filter:drop-shadow(0 22px 25px rgba(12,3,7,.62)) drop-shadow(0 0 10px rgba(237,187,99,.14));
  }

  .theme-millesime.page-home .meal-card{
    position:relative;
    overflow:hidden!important;
  }
  .theme-millesime.page-home .meal-card .meal-inner{
    position:relative;
    z-index:3;
    padding-right:clamp(125px,15vw,190px);
  }
  .millesime-home-meal-glass{
    display:block!important;
    position:absolute;
    right:clamp(10px,2vw,30px);
    bottom:clamp(-78px,-5vw,-44px);
    width:clamp(108px,11.5vw,162px);
    height:auto;
    z-index:2;
    opacity:.90;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
    transform:rotate(-3deg);
    filter:drop-shadow(0 18px 20px rgba(12,3,7,.52)) drop-shadow(0 0 9px rgba(237,187,99,.12));
  }

  .theme-millesime.page-home .opening-panel{
    position:relative;
    overflow:visible;
  }
  .theme-millesime.page-home .opening-panel .opening-head,
  .theme-millesime.page-home .opening-panel .opening-card-grid{
    position:relative;
    z-index:2;
  }
  .theme-millesime.page-home .opening-panel .opening-head{
    padding-right:0;
  }
  .millesime-home-opening-bottle{
    display:block!important;
    position:absolute;
    right:clamp(108px,10.5vw,150px);
    top:clamp(-88px,-6.5vw,-62px);
    width:clamp(124px,12.5vw,178px);
    height:auto;
    z-index:1;
    opacity:.94;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
    transform:rotate(1deg);
    filter:drop-shadow(0 20px 22px rgba(12,3,7,.56)) drop-shadow(0 0 9px rgba(237,187,99,.12));
  }
  .theme-millesime.page-home .opening-panel .opening-head .link-btn{
    position:relative;
    z-index:3;
  }
  .theme-millesime.page-home .opening-panel .opening-card-grid{
    position:relative;
    z-index:2;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .theme-millesime.page-home .hero{
    min-height:248px;
    padding-right:142px;
  }
  .theme-millesime.page-home .hero .hero-greeting{
    width:min(72%,560px);
    max-width:min(72%,560px);
  }
  .millesime-home-angle-bottle{
    right:-22px;
    top:10px;
    width:176px;
  }
  .theme-millesime.page-home .meal-card .meal-inner{
    padding-right:112px;
  }
  .millesime-home-meal-glass{
    right:4px;
    bottom:-48px;
    width:102px;
    opacity:.82;
  }
  .theme-millesime.page-home .opening-panel .opening-head{
    padding-right:0;
  }
  .millesime-home-opening-bottle{
    right:92px;
    top:-58px;
    width:112px;
    opacity:.90;
  }
}
@media(max-width:820px){
  .millesime-home-angle-bottle,
  .millesime-home-meal-glass,
  .millesime-home-opening-bottle{display:none!important}
}


/* Epicave V3.5.36 — ajustements reliefs accueil + cartes Repas & accords. */
@media(min-width:821px){
  /* Bouteille inclinée : légère remontée sans revenir au rognage excessif. */
  .millesime-home-angle-bottle{
    top:clamp(-4px,.15vw,4px)!important;
  }

  /* Bouteille verticale : à gauche, centrée sur la jonction des deux cadres. */
  .theme-millesime.page-home .opening-panel{
    overflow:visible!important;
  }
  .millesime-home-opening-bottle{
    left:clamp(18px,4.2vw,66px)!important;
    right:auto!important;
    top:clamp(-112px,-8vw,-82px)!important;
    width:clamp(132px,13vw,184px)!important;
    z-index:1!important;
  }
  .theme-millesime.page-home .opening-panel .opening-head,
  .theme-millesime.page-home .opening-panel .opening-card-grid{
    position:relative;
    z-index:2;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .millesime-home-angle-bottle{
    top:2px!important;
  }
  .millesime-home-opening-bottle{
    left:12px!important;
    top:-78px!important;
    width:118px!important;
  }
}

/* Page Repas & accords : cartes plats bordeaux translucides comme les cartes de cave. */
.page-meal .gourmet-suggestions-panel .dish-idea-card{
  background:rgba(75,15,32,.85)!important;
  border-color:rgba(222,178,96,.58)!important;
  box-shadow:0 12px 30px rgba(31,4,13,.24)!important;
  color:#fff!important;
}
.page-meal .gourmet-suggestions-panel .dish-idea-card:hover{
  background:rgba(75,15,32,.92)!important;
  border-color:rgba(232,193,116,.78)!important;
  box-shadow:0 16px 36px rgba(31,4,13,.32)!important;
}
.page-meal .gourmet-suggestions-panel .dish-idea-card h2,
.page-meal .gourmet-suggestions-panel .dish-idea-card h3,
.page-meal .gourmet-suggestions-panel .dish-idea-card p,
.page-meal .gourmet-suggestions-panel .dish-idea-card span,
.page-meal .gourmet-suggestions-panel .dish-idea-card strong{
  color:#fff!important;
}


/* Epicave V3.5.37 — repositionnement plus franc des bouteilles 3D sur l’accueil Millésime web. */
@media(min-width:821px){
  /* Bouteille inclinée : remontée légère mais visible. */
  .millesime-home-angle-bottle{
    top:clamp(-12px,-0.8vw,-6px)!important;
  }

  /* Bouteille verticale : déplacée vers la gauche, au centre visuel des deux cadres. */
  .millesime-home-opening-bottle{
    left:clamp(150px,20vw,295px)!important;
    right:auto!important;
    top:clamp(-132px,-9vw,-96px)!important;
    width:clamp(146px,14.5vw,198px)!important;
    z-index:1!important;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .millesime-home-angle-bottle{
    top:-6px!important;
  }
  .millesime-home-opening-bottle{
    left:clamp(118px,17vw,168px)!important;
    top:-96px!important;
    width:130px!important;
  }
}


/* Epicave V3.5.38 — bouteille 3D centrée dans le cadre repas et au-dessus du champ blanc. */
@media(min-width:821px){
  .theme-millesime.page-home .meal-card{
    overflow:visible!important;
  }
  .theme-millesime.page-home .meal-card .meal-inner{
    position:relative;
    z-index:2;
    padding-right:clamp(118px,14vw,180px);
  }
  .theme-millesime.page-home .meal-card .meal-title,
  .theme-millesime.page-home .meal-card .meal-sub{
    position:relative;
    z-index:2;
  }
  .theme-millesime.page-home .meal-card .meal-search{
    position:relative;
    z-index:2;
    overflow:visible;
  }
  .millesime-home-opening-bottle{
    display:block!important;
    position:absolute;
    left:50%!important;
    right:auto!important;
    top:auto!important;
    bottom:-18px!important;
    transform:translateX(-50%) rotate(1deg)!important;
    width:clamp(146px,14.5vw,196px)!important;
    height:auto;
    z-index:4!important;
    opacity:.95;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
    filter:drop-shadow(0 18px 22px rgba(12,3,7,.56)) drop-shadow(0 0 9px rgba(237,187,99,.12));
  }
}
@media(min-width:821px) and (max-width:1099px){
  .theme-millesime.page-home .meal-card .meal-inner{
    padding-right:104px;
  }
  .millesime-home-opening-bottle{
    bottom:-10px!important;
    width:132px!important;
  }
}


/* Epicave V3.5.39 — bouteille 3D à cheval entre les deux cadres de l'accueil Millésime web. */
@media(min-width:821px){
  .millesime-home-opening-bottle{
    left:50%!important;
    right:auto!important;
    top:auto!important;
    bottom:-112px!important;
    transform:translateX(-50%) rotate(1deg)!important;
    width:clamp(146px,14.5vw,196px)!important;
    z-index:4!important;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .millesime-home-opening-bottle{
    bottom:-92px!important;
    width:132px!important;
  }
}


/* Epicave V3.5.40 — bouteille 3D redescendue entre les deux cadres + verre plus petit. */
@media(min-width:821px){
  .millesime-home-opening-bottle{
    bottom:-148px!important;
  }
  .millesime-home-meal-glass{
    width:clamp(90px,9.4vw,132px)!important;
    right:clamp(10px,1.8vw,26px)!important;
    bottom:clamp(-62px,-4vw,-34px)!important;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .millesime-home-opening-bottle{
    bottom:-118px!important;
  }
  .millesime-home-meal-glass{
    width:86px!important;
    right:2px!important;
    bottom:-34px!important;
  }
}


/* Epicave V3.5.41 — Millésime par défaut, guide de maturité modal et relief Repas & accords. */
/* Mon profil : définitions du classement sur bordeaux avec la même transparence que les anciens cadres blancs. */
.page-profile .maturity-guide-card .maturity-guide-item{
  background:rgba(75,15,32,.48)!important;
  border-color:rgba(231,189,114,.38)!important;
}
.page-profile .maturity-guide-card .maturity-guide-item p{
  color:#fff!important;
}


/* Modale Classement des vins : même contenu que Mon profil. */
.maturity-guide-dialog-wrap{
  background:rgba(30,4,12,.58)!important;
  overflow:auto;
}
.site-dialog.maturity-guide-dialog{
  position:relative;
  width:min(94vw,860px)!important;
  max-height:88vh;
  overflow:auto;
  padding:30px 28px 26px;
  text-align:left;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(40,8,16,.97),rgba(96,20,40,.91),rgba(73,7,26,.88)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  border-color:rgba(231,189,114,.42)!important;
}
.site-dialog.maturity-guide-dialog>h2{
  margin:0 48px 20px 0;
  color:#e7bd72!important;
  font:700 30px/1.08 var(--serif);
}
.maturity-guide-dialog .maturity-guide-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.maturity-guide-dialog .maturity-guide-item{
  padding:14px 15px;
  border:1px solid rgba(231,189,114,.38);
  border-radius:14px;
  background:rgba(75,15,32,.48)!important;
}
.maturity-guide-dialog .maturity-guide-item p{
  margin:0;
  color:#fff!important;
  font-size:14px;
  line-height:1.5;
}
.maturity-guide-dialog-close{
  position:absolute;
  top:16px;
  right:18px;
  width:36px;
  height:36px;
  border:1px solid rgba(231,189,114,.45);
  border-radius:50%;
  background:rgba(75,15,32,.74);
  color:#fff;
  font:400 26px/1 Arial,sans-serif;
  cursor:pointer;
}
.maturity-guide-dialog .site-dialog-actions{
  margin-top:20px;
}
@media(max-width:820px){
  .site-dialog.maturity-guide-dialog{padding:24px 17px 20px}
  .maturity-guide-dialog .maturity-guide-list{grid-template-columns:1fr}
  .site-dialog.maturity-guide-dialog>h2{font-size:27px}
}

/* Accueil Millésime : la bouteille verticale 3D est volontairement supprimée. */
.theme-millesime.page-home .millesime-home-opening-bottle{display:none!important}

/* Repas & accords : bouteille inclinée dans le cadre « Que mangez-vous ce soir ? », web uniquement. */
@media(min-width:821px){
  .theme-millesime.page-meal .meal-hero{
    position:relative!important;
    overflow:hidden!important;
    padding-right:clamp(190px,24vw,310px)!important;
  }
  .theme-millesime.page-meal .meal-hero>*:not(.millesime-meal-angle-bottle){
    position:relative;
    z-index:2;
  }
  .millesime-meal-angle-bottle{
    display:block!important;
    position:absolute;
    right:clamp(-28px,-1.4vw,-8px);
    top:50%;
    width:clamp(170px,18vw,250px);
    height:auto;
    transform:translateY(-50%) rotate(-2deg);
    z-index:1;
    opacity:.96;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
    filter:drop-shadow(0 20px 24px rgba(12,3,7,.58)) drop-shadow(0 0 10px rgba(237,187,99,.14));
  }
}
@media(min-width:821px) and (max-width:1099px){
  .theme-millesime.page-meal .meal-hero{padding-right:155px!important}
  .millesime-meal-angle-bottle{
    right:-28px;
    width:165px;
  }
}
@media(max-width:820px){
  .millesime-meal-angle-bottle{display:none!important}
}


/* Epicave V3.5.42 — rendu historique des pastilles + reliefs 3D ajustés. */
/* Les pastilles restent des spans comme avant V3.5.41 : aucun reset de bouton, donc tailles/polices historiques conservées. */
[data-maturity-guide].status{cursor:pointer}
[data-maturity-guide].status:focus-visible{
  outline:3px solid rgba(231,189,114,.58);
  outline-offset:3px;
}

@media(min-width:821px){
  /* Accueil : même emplacement, bouteille inclinée légèrement agrandie. */
  .theme-millesime.page-home .millesime-home-angle-bottle{
    width:clamp(205px,20.5vw,305px)!important;
  }

  /* Repas & accords : bouteille à droite du champ de recherche, sans modifier la hauteur du hero. */
  .theme-millesime.page-meal .meal-hero{
    position:relative!important;
    overflow:hidden!important;
    padding-right:34px!important;
  }
  .theme-millesime.page-meal .meal-hero > h1,
  .theme-millesime.page-meal .meal-hero > p{
    position:relative;
    z-index:2;
    padding-right:0!important;
    max-width:none!important;
  }
  .theme-millesime.page-meal .meal-hero > .meal-search{
    position:relative;
    z-index:2;
    width:calc(100% - clamp(150px,16vw,220px));
    margin-right:clamp(150px,16vw,220px);
  }
  .millesime-meal-angle-bottle{
    display:block!important;
    position:absolute;
    right:clamp(8px,1.4vw,22px)!important;
    top:auto!important;
    bottom:clamp(10px,1.2vw,18px)!important;
    width:clamp(135px,14vw,190px)!important;
    height:auto;
    transform:rotate(-2deg)!important;
    z-index:1!important;
    opacity:.96;
    pointer-events:none;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .theme-millesime.page-home .millesime-home-angle-bottle{
    width:190px!important;
  }
  .theme-millesime.page-meal .meal-hero > .meal-search{
    width:calc(100% - 145px);
    margin-right:145px;
  }
  .millesime-meal-angle-bottle{
    right:4px!important;
    bottom:8px!important;
    width:128px!important;
  }
}


/* Epicave V3.5.43 — bouteille angle réellement alignée à droite du champ de recherche Repas & accords. */
@media(min-width:821px){
  .page-meal .meal-hero{
    position:relative!important;
    overflow:hidden!important;
    padding-right:34px!important;
  }
  .page-meal .meal-hero > h1,
  .page-meal .meal-hero > p{
    position:relative;
    z-index:2;
    padding-right:0!important;
    max-width:none!important;
  }
  .page-meal .meal-hero > .meal-search{
    position:relative;
    z-index:2;
    width:calc(100% - clamp(118px,12vw,155px))!important;
    margin-right:clamp(118px,12vw,155px)!important;
  }
  .page-meal .millesime-meal-angle-bottle{
    display:block!important;
    position:absolute!important;
    right:clamp(6px,1vw,16px)!important;
    top:auto!important;
    bottom:clamp(-52px,-3.6vw,-38px)!important;
    width:clamp(104px,10.5vw,138px)!important;
    height:auto!important;
    transform:rotate(-2deg)!important;
    z-index:1!important;
    opacity:.96!important;
    pointer-events:none!important;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .page-meal .meal-hero > .meal-search{
    width:calc(100% - 108px)!important;
    margin-right:108px!important;
  }
  .page-meal .millesime-meal-angle-bottle{
    right:2px!important;
    bottom:-42px!important;
    width:98px!important;
  }
}


/* Epicave V3.5.44 — bouteille angle plus grande dans Repas & accords, comme sur l’accueil. */
@media(min-width:821px){
  .page-meal .meal-hero > .meal-search{
    width:calc(100% - clamp(205px,20.5vw,305px))!important;
    margin-right:clamp(205px,20.5vw,305px)!important;
  }
  .page-meal .millesime-meal-angle-bottle{
    right:clamp(4px,.8vw,12px)!important;
    bottom:clamp(-74px,-5vw,-52px)!important;
    width:clamp(205px,20.5vw,305px)!important;
  }
}
@media(min-width:821px) and (max-width:1099px){
  .page-meal .meal-hero > .meal-search{
    width:calc(100% - 190px)!important;
    margin-right:190px!important;
  }
  .page-meal .millesime-meal-angle-bottle{
    right:0!important;
    bottom:-58px!important;
    width:190px!important;
  }
}


/* Epicave V3.5.45 — réglage du focus caméra lorsqu'il est exposé par le navigateur. */
.camera-focus-control{
  position:absolute;
  z-index:8;
  top:18px;
  right:18px;
  width:min(210px,48%);
  padding:10px 12px;
  border:1px solid rgba(232,201,141,.32);
  border-radius:14px;
  background:rgba(38,8,17,.76);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
  backdrop-filter:blur(10px);
}
.camera-focus-control[hidden]{display:none!important}
.camera-focus-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:12px;font-weight:700}
.camera-focus-head button{border:1px solid rgba(232,201,141,.38);border-radius:999px;background:rgba(255,255,255,.09);color:#f4dfb0;font:700 11px/1 inherit;padding:5px 9px;cursor:pointer}
.camera-focus-control.is-manual .camera-focus-head span::after{content:' · manuel';font-weight:500;color:#e9cf98}
.camera-focus-control input[type="range"]{display:block;width:100%;accent-color:#d8aa52}
@media(max-width:820px){
  .camera-focus-control{top:14px;right:12px;width:min(190px,54vw);padding:9px 10px}
}


/* Epicave V3.5.46 — bandeau photo harmonisé pour “Ajouter un vin manuellement”. */
.page-scan .scan-manual-heading-frame{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  margin:8px 0 18px!important;
  padding:22px 24px!important;
  min-height:116px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(90deg,rgba(49,5,18,.92),rgba(70,9,27,.58),rgba(70,9,27,.22)),
    url("/image/fond-vignoble.png?v=3.5.46") center 58%/cover no-repeat;
  box-shadow:var(--shadow-sm);
}
.page-scan .scan-manual-heading-frame .scan-page-title{
  color:#e1b665!important;
  font-size:35px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  text-shadow:0 2px 10px rgba(37,9,17,.34)!important;
}
.page-scan .scan-manual-heading-frame .scan-page-sub{
  color:#f2ded6!important;
  margin:7px 0 0!important;
  padding:0!important;
  background:transparent!important;
}
@media(max-width:820px){
  .page-scan .scan-page.manual-entry + .scan-manual-heading-frame{display:none}
  .page-scan .scan-manual-heading-frame{
    border-radius:0 0 24px 24px;
    margin:0 -14px 14px!important;
    padding:18px 20px 76px!important;
    min-height:178px;
    background:
      linear-gradient(180deg,rgba(36,2,13,.68),rgba(69,7,26,.80)),
      url("/image/fond-vignoble-mobile.png?v=3.5.46") center/cover no-repeat;
  }
  .page-scan .scan-manual-heading-frame .scan-page-title{
    display:block!important;
    font-size:30px!important;
  }
  .page-scan .scan-manual-heading-frame .scan-page-sub{
    display:block!important;
    font-size:13px!important;
  }
}


/* Epicave V3.5.47 — ajout manuel web : titre net, sans halo flou. */
@media(min-width:821px){
  .page-scan .scan-manual-heading-frame .scan-page-title{
    text-shadow:none!important;
    filter:none!important;
  }
}


/* Epicave V3.5.48 — ajout manuel web : suppression réelle du flou + largeur complète. */
@media(min-width:821px){
  .page-scan .scan-manual-heading-frame .scan-page-title,
  .page-scan .scan-manual-heading-frame .scan-page-sub{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    filter:none!important;
  }
  .page-scan .scan-page.manual-entry{
    width:100%!important;
    max-width:none!important;
  }
  .page-scan .scan-page.manual-entry .desktop-label-photo,
  .page-scan .scan-page.manual-entry .edit-panel{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box;
  }
}


/* Epicave V3.5.49 — tap-to-focus caméra, sans curseur manuel. */
.camera-focus-control{display:none!important}
.camera-tap-focus-enabled .camera-video{cursor:crosshair}
.camera-tap-focus-indicator{
  position:absolute;
  z-index:8;
  width:58px;
  height:58px;
  margin:-29px 0 0 -29px;
  border:2px solid rgba(240,194,101,.95);
  border-radius:10px;
  box-shadow:0 0 0 1px rgba(53,7,20,.42),0 0 18px rgba(229,179,82,.20);
  opacity:0;
  transform:scale(1.24);
  pointer-events:none;
}
.camera-tap-focus-indicator::before,
.camera-tap-focus-indicator::after{
  content:"";
  position:absolute;
  background:rgba(240,194,101,.95);
}
.camera-tap-focus-indicator::before{left:50%;top:-7px;width:2px;height:10px;transform:translateX(-50%)}
.camera-tap-focus-indicator::after{top:50%;left:-7px;width:10px;height:2px;transform:translateY(-50%)}
.camera-tap-focus-indicator.is-active{
  animation:epicaveTapFocus .82s ease-out forwards;
}
@keyframes epicaveTapFocus{
  0%{opacity:0;transform:scale(1.28)}
  18%{opacity:1;transform:scale(.94)}
  72%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1)}
}


/* Epicave V3.5.50 — Profil simplifié : deux cadres fusionnés, classement retiré. */
.page-profile .profile-fused-card{
  grid-column:1/-1!important;
  padding:0!important;
  overflow:hidden;
}
.page-profile .profile-fused-columns{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:stretch;
}
.page-profile .profile-fused-section{
  min-width:0;
  padding:24px;
}
.page-profile .profile-fused-section+ .profile-fused-section{
  border-left:1px solid rgba(109,61,48,.13);
}
.page-profile .profile-fused-section h2{
  margin-top:0;
}
.page-profile .profile-personal-section{
  display:flex;
  flex-direction:column;
}
.page-profile .profile-subsection-divider{
  height:1px;
  margin:20px 0;
  background:linear-gradient(90deg,rgba(199,154,86,.12),rgba(199,154,86,.55),rgba(199,154,86,.12));
}
.page-profile .notifications-locations-profile-card{
  color:#fff!important;
  background:
    linear-gradient(90deg,rgba(40,8,16,.96),rgba(96,20,40,.80),rgba(73,7,26,.72)),
    url("https://images.unsplash.com/photo-1643087448435-72f70bd4ce88?auto=format&fit=crop&fm=jpg&q=75&w=1400") center/cover!important;
  border:1px solid rgba(216,172,100,.20)!important;
  box-shadow:0 18px 36px rgba(64,9,22,.18)!important;
}
.page-profile .notifications-locations-profile-card .profile-fused-section+ .profile-fused-section{
  border-left-color:rgba(231,189,114,.24);
}
.page-profile .notifications-locations-profile-card h2{
  color:#e7bd72!important;
}
.page-profile .notifications-locations-profile-card p,
.page-profile .notifications-locations-profile-card .location-empty{
  color:#f3e4dc!important;
}
.page-profile .profile-notifications-section>p,
.page-profile .profile-locations-section>p{
  margin:0 0 16px;
}
.page-profile .profile-locations-section .input{
  background:rgba(255,251,247,.97)!important;
  color:#3d1720!important;
  border-color:rgba(231,189,114,.36)!important;
}
.page-profile .profile-locations-section .location-list{
  margin:16px 0 4px!important;
}
.page-profile .profile-locations-section .location-chip{
  background:rgba(255,251,247,.97)!important;
  color:#62453f!important;
  border-color:rgba(231,189,114,.42)!important;
}
.page-profile .profile-locations-section .location-delete{
  background:rgba(101,13,37,.10)!important;
  color:var(--wine)!important;
}
.page-profile .profile-locations-section .location-delete:hover{
  background:linear-gradient(135deg,#d6aa68,#a86e2c)!important;
  color:#fff!important;
}
.page-profile .profile-locations-section .location-add-form{
  margin-top:14px!important;
  margin-bottom:0!important;
}
@media(max-width:820px){
  .page-profile .profile-fused-columns{
    grid-template-columns:1fr;
  }
  .page-profile .profile-fused-section{
    padding:20px;
  }
  .page-profile .profile-fused-section+ .profile-fused-section{
    border-left:0!important;
    border-top:1px solid rgba(109,61,48,.13);
  }
  .page-profile .notifications-locations-profile-card .profile-fused-section+ .profile-fused-section{
    border-top-color:rgba(231,189,114,.24)!important;
  }
}

/* Epicave V3.5.51 — administration d’une cave partagée depuis Mon profil. */
.cave-share-card{display:grid;gap:18px}
.cave-share-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.cave-share-head h2,.cave-share-members h3,.cave-share-pending h3,.cave-share-incoming h3{margin-top:0}
.cave-share-badge{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:rgba(222,178,96,.18);border:1px solid rgba(222,178,96,.58);color:#8b5f13;font-weight:700;white-space:nowrap}
.cave-share-invite-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:16px;border:1px solid rgba(222,178,96,.32);border-radius:16px;background:rgba(75,15,32,.05)}
.cave-share-invite-form .field{margin:0}
.cave-share-members,.cave-share-pending,.cave-share-incoming{display:grid;gap:10px}
.cave-share-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:14px;background:rgba(75,15,32,.07);border:1px solid rgba(75,15,32,.12)}
.cave-share-row>div:first-child{display:grid;gap:3px;min-width:0}.cave-share-row small{color:var(--muted);overflow-wrap:anywhere}
.cave-share-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cave-share-owner{display:grid;gap:5px;padding:14px;border-radius:14px;background:rgba(75,15,32,.07);border:1px solid rgba(75,15,32,.12)}
.cave-share-owner span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cave-share-empty{margin:0;color:var(--muted)}
@media(max-width:820px){.cave-share-head,.cave-share-row{align-items:stretch;flex-direction:column}.cave-share-invite-form{grid-template-columns:1fr}.cave-share-actions{justify-content:flex-start}}


/* Epicave V3.5.53 — accueil web : salut doré + résumé différencié Millésime/Classique. */
@media(min-width:821px){
  /* Bonjour PRÉNOM en doré sur l'accueil web, quel que soit le thème. */
  .page-home .hero-greeting h1{
    color:#f2cf87!important;
    -webkit-text-fill-color:#f2cf87!important;
  }

  /* Taille légèrement renforcée des textes des 4 cartes de résumé. */
  .page-home .stats .stat-num{
    font-size:38px!important;
  }
  .page-home .stats .stat-label{
    font-size:18px!important;
  }
  .page-home .stats .stat-sub{
    font-size:13px!important;
  }
  .page-home .stats .stat-icon{
    font-size:26px!important;
  }

  /* Millésime : cartes dorées légèrement transparentes. */
  .theme-millesime:not(.theme-classique).page-home .stats .stat-card{
    background:linear-gradient(145deg,rgba(214,168,82,.86),rgba(178,126,48,.78))!important;
    border-color:rgba(255,224,158,.62)!important;
    color:#3f1a0c!important;
    box-shadow:0 14px 34px rgba(64,32,5,.24),inset 0 1px 0 rgba(255,245,209,.45)!important;
  }
  .theme-millesime:not(.theme-classique).page-home .stats .stat-num,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-label,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-sub,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-icon{
    color:#3f1a0c!important;
  }

  /* Classique : cartes bordeaux légèrement transparentes, textes blancs. */
  .theme-classique.page-home .stats .stat-card{
    background:linear-gradient(145deg,rgba(91,13,38,.88),rgba(60,6,23,.80))!important;
    border-color:rgba(223,177,94,.50)!important;
    color:#fff!important;
    box-shadow:0 14px 34px rgba(36,3,14,.28),inset 0 1px 0 rgba(255,255,255,.08)!important;
  }
  .theme-classique.page-home .stats .stat-num,
  .theme-classique.page-home .stats .stat-label,
  .theme-classique.page-home .stats .stat-sub,
  .theme-classique.page-home .stats .stat-icon{
    color:#fff!important;
  }
}


/* Epicave V3.5.55 — accueil web : cartes résumé avec plus de relief et plus de reflets. */
@media(min-width:821px){
  .page-home .stats .stat-card{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    transform:translateZ(0);
  }

  /* Millésime : doré dense, plus de relief et double matière interne. */
  .theme-millesime:not(.theme-classique).page-home .stats .stat-card{
    background:
      linear-gradient(154deg,rgba(239,199,112,.98) 0%,rgba(208,154,68,.97) 48%,rgba(169,116,38,.95) 100%)!important;
    border-color:rgba(255,236,188,.88)!important;
    box-shadow:
      0 20px 40px rgba(69,35,7,.34),
      0 8px 18px rgba(97,59,10,.20),
      inset 0 1px 0 rgba(255,248,225,.82),
      inset 0 -20px 34px rgba(100,58,9,.15),
      inset 0 0 0 1px rgba(255,235,185,.30)!important;
  }

  /* Classique : bordeaux dense, plus de relief et profondeur plus marquée. */
  .theme-classique.page-home .stats .stat-card{
    background:
      linear-gradient(154deg,rgba(118,18,48,.98) 0%,rgba(87,10,36,.97) 52%,rgba(57,5,22,.95) 100%)!important;
    border-color:rgba(235,194,115,.76)!important;
    box-shadow:
      0 20px 40px rgba(31,3,12,.38),
      0 8px 18px rgba(63,7,24,.24),
      inset 0 1px 0 rgba(255,234,226,.18),
      inset 0 -20px 34px rgba(19,0,8,.22),
      inset 0 0 0 1px rgba(255,216,202,.08)!important;
  }

  /* Premier reflet satiné diagonal. */
  .page-home .stats .stat-card::after{
    content:"";
    position:absolute;
    z-index:0;
    pointer-events:none;
    top:-72%;
    left:-18%;
    width:40%;
    height:240%;
    transform:rotate(18deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),rgba(255,255,255,.10),transparent);
    opacity:.72;
  }

  /* Second reflet diffus pour donner plus de matière. */
  .page-home .stats .stat-card::before{
    content:"";
    position:absolute;
    z-index:0;
    pointer-events:none;
    top:-8%;
    right:-10%;
    width:68%;
    height:56%;
    border-radius:50%;
    background:radial-gradient(circle at center, rgba(255,255,255,.28) 0%, rgba(255,255,255,.12) 34%, rgba(255,255,255,0) 72%);
    opacity:.75;
    filter:blur(1px);
  }

  .page-home .stats .stat-card > *{
    position:relative;
    z-index:2;
  }

  /* À l'apogée : scintillement doux et continu. */
  .page-home .stats .stat-card:nth-child(2){
    animation:epicave-home-apogee-glow 3.2s ease-in-out infinite;
  }
  .page-home .stats .stat-card:nth-child(2)::after{
    width:34%;
    left:-55%;
    opacity:.88;
    animation:epicave-home-apogee-sweep 3.2s ease-in-out infinite;
  }
  .page-home .stats .stat-card:nth-child(2)::before{
    opacity:.88;
  }
}

@keyframes epicave-home-apogee-sweep{
  0%,18%{left:-55%;opacity:0}
  28%{opacity:.72}
  62%{left:125%;opacity:.82}
  72%,100%{left:125%;opacity:0}
}
@keyframes epicave-home-apogee-glow{
  0%,100%{filter:brightness(1)}
  48%{filter:brightness(1.08)}
  64%{filter:brightness(1.03)}
}
@media(prefers-reduced-motion:reduce){
  .page-home .stats .stat-card:nth-child(2),
  .page-home .stats .stat-card:nth-child(2)::after{
    animation:none!important;
  }
}


/* Epicave V3.5.56 — accueil web : relief renforcé des quatre cartes résumé. */
@media(min-width:821px){
  .page-home .stats .stat-card{
    transform:translateY(-3px) translateZ(0)!important;
    border-width:1px!important;
    border-style:solid!important;
  }
  .page-home .stats .stat-card:hover{
    transform:translateY(-5px) translateZ(0)!important;
  }

  .theme-millesime:not(.theme-classique).page-home .stats .stat-card{
    box-shadow:
      0 26px 52px rgba(70,35,5,.38),
      0 12px 24px rgba(105,64,12,.24),
      0 3px 0 rgba(104,62,10,.28),
      inset 0 2px 0 rgba(255,252,233,.92),
      inset 0 -26px 40px rgba(103,59,8,.20),
      inset 10px 0 24px rgba(255,238,188,.09),
      inset -10px 0 24px rgba(96,51,5,.08),
      inset 0 0 0 1px rgba(255,237,190,.38)!important;
  }

  .theme-classique.page-home .stats .stat-card{
    box-shadow:
      0 26px 52px rgba(28,2,10,.44),
      0 12px 24px rgba(69,8,27,.28),
      0 3px 0 rgba(38,2,14,.40),
      inset 0 2px 0 rgba(255,237,229,.22),
      inset 0 -26px 40px rgba(16,0,7,.28),
      inset 10px 0 24px rgba(255,226,214,.05),
      inset -10px 0 24px rgba(20,0,8,.14),
      inset 0 0 0 1px rgba(240,196,117,.14)!important;
  }

  .page-home .stats .stat-card::before{
    top:-14%!important;
    right:-8%!important;
    width:76%!important;
    height:64%!important;
    opacity:.88!important;
    filter:blur(.6px)!important;
  }

  .page-home .stats .stat-card::after{
    opacity:.82!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),rgba(255,255,255,.14),transparent)!important;
  }
}


/* Epicave V3.5.57 — mobile : mêmes reliefs/reflets que le web + contenu vertical des cartes résumé. */
@media(max-width:820px){
  .page-home .stats{
    align-items:stretch;
  }
  .page-home .stats .stat-card{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:3px;
    min-height:132px;
    padding:14px 6px 12px!important;
    transform:translateY(-2px) translateZ(0)!important;
    border-width:1px!important;
    border-style:solid!important;
  }

  .page-home .stats .stat-icon,
  .page-home .stats .stat-num,
  .page-home .stats .stat-label,
  .page-home .stats .stat-sub{
    position:relative;
    z-index:2;
    display:block!important;
    width:100%;
    text-align:center!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .page-home .stats .stat-icon{
    order:1;
    margin-top:0!important;
    margin-bottom:3px!important;
    font-size:22px!important;
    line-height:1.05!important;
  }
  .page-home .stats .stat-num{
    order:2;
    margin-top:0!important;
    font-size:28px!important;
    line-height:1.05!important;
  }
  .page-home .stats .stat-label{
    order:3;
    margin-top:1px!important;
    font-size:12.5px!important;
    line-height:1.15!important;
  }
  .page-home .stats .stat-sub{
    order:4;
    margin-top:2px!important;
    font-size:10px!important;
    line-height:1.2!important;
  }

  .theme-millesime:not(.theme-classique).page-home .stats .stat-card{
    background:linear-gradient(154deg,rgba(239,199,112,.98) 0%,rgba(208,154,68,.97) 48%,rgba(169,116,38,.95) 100%)!important;
    border-color:rgba(255,236,188,.88)!important;
    color:#3f1a0c!important;
    box-shadow:
      0 18px 34px rgba(70,35,5,.34),
      0 8px 16px rgba(105,64,12,.22),
      0 2px 0 rgba(104,62,10,.26),
      inset 0 2px 0 rgba(255,252,233,.90),
      inset 0 -22px 34px rgba(103,59,8,.18),
      inset 8px 0 20px rgba(255,238,188,.08),
      inset -8px 0 20px rgba(96,51,5,.07),
      inset 0 0 0 1px rgba(255,237,190,.34)!important;
  }
  .theme-millesime:not(.theme-classique).page-home .stats .stat-num,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-label,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-sub,
  .theme-millesime:not(.theme-classique).page-home .stats .stat-icon{
    color:#3f1a0c!important;
  }

  .theme-classique.page-home .stats .stat-card{
    background:linear-gradient(154deg,rgba(118,18,48,.98) 0%,rgba(87,10,36,.97) 52%,rgba(57,5,22,.95) 100%)!important;
    border-color:rgba(235,194,115,.76)!important;
    color:#fff!important;
    box-shadow:
      0 18px 34px rgba(28,2,10,.40),
      0 8px 16px rgba(69,8,27,.26),
      0 2px 0 rgba(38,2,14,.38),
      inset 0 2px 0 rgba(255,237,229,.20),
      inset 0 -22px 34px rgba(16,0,7,.26),
      inset 8px 0 20px rgba(255,226,214,.05),
      inset -8px 0 20px rgba(20,0,8,.12),
      inset 0 0 0 1px rgba(240,196,117,.14)!important;
  }
  .theme-classique.page-home .stats .stat-num,
  .theme-classique.page-home .stats .stat-label,
  .theme-classique.page-home .stats .stat-sub,
  .theme-classique.page-home .stats .stat-icon{
    color:#fff!important;
  }

  .page-home .stats .stat-card::before{
    content:"";
    position:absolute;
    z-index:0;
    pointer-events:none;
    top:-12%;
    right:-10%;
    width:80%;
    height:62%;
    border-radius:50%;
    background:radial-gradient(circle at center,rgba(255,255,255,.28) 0%,rgba(255,255,255,.12) 34%,rgba(255,255,255,0) 72%);
    opacity:.82;
    filter:blur(.6px);
  }
  .page-home .stats .stat-card::after{
    content:"";
    position:absolute;
    z-index:0;
    pointer-events:none;
    top:-72%;
    left:-18%;
    width:42%;
    height:240%;
    transform:rotate(18deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),rgba(255,255,255,.12),transparent);
    opacity:.78;
  }

  .page-home .stats .stat-card:nth-child(2){
    animation:epicave-home-apogee-glow 3.2s ease-in-out infinite;
  }
  .page-home .stats .stat-card:nth-child(2)::after{
    width:34%;
    left:-55%;
    opacity:.88;
    animation:epicave-home-apogee-sweep 3.2s ease-in-out infinite;
  }
}


/* Epicave V3.5.58 — relief et reflets premium sur les cartes de vins ciblées. */
.page-home .opening-card-grid .wine-card,
.page-cave .cave-grid .cave-card,
.page-history .history-grid .cave-card{
  position:relative;
  isolation:isolate;
  overflow:hidden!important;
  border-color:rgba(226,188,106,.96)!important;
  box-shadow:
    0 16px 34px rgba(28,4,12,.34),
    0 6px 14px rgba(44,8,18,.20),
    inset 0 1px 0 rgba(255,236,193,.18),
    inset 0 -16px 28px rgba(18,0,7,.16),
    inset 0 0 0 1px rgba(255,220,151,.07)!important;
}
.page-home .opening-card-grid .wine-card::before,
.page-cave .cave-grid .cave-card::before,
.page-history .history-grid .cave-card::before{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  top:-18%;
  right:-12%;
  width:74%;
  height:58%;
  border-radius:50%;
  background:radial-gradient(circle at center,rgba(255,255,255,.20) 0%,rgba(255,255,255,.08) 38%,rgba(255,255,255,0) 74%);
  opacity:.78;
}
.page-home .opening-card-grid .wine-card::after,
.page-cave .cave-grid .cave-card::after,
.page-history .history-grid .cave-card::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  top:-72%;
  left:-30%;
  width:34%;
  height:240%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),rgba(255,255,255,.07),transparent);
  opacity:.72;
}
.page-home .opening-card-grid .wine-card > *,
.page-cave .cave-grid .cave-card > *:not(.cave-edit-btn),
.page-history .history-grid .cave-card > *:not(.history-remove-btn){
  position:relative;
  z-index:1;
}
@media(max-width:820px){
  .page-home .opening-card-grid .wine-card,
  .page-cave .cave-grid .cave-card,
  .page-history .history-grid .cave-card{
    box-shadow:
      0 12px 24px rgba(28,4,12,.30),
      0 4px 10px rgba(44,8,18,.16),
      inset 0 1px 0 rgba(255,236,193,.16),
      inset 0 -12px 22px rgba(18,0,7,.14),
      inset 0 0 0 1px rgba(255,220,151,.06)!important;
  }
  .page-home .opening-card-grid .wine-card::after,
  .page-cave .cave-grid .cave-card::after,
  .page-history .history-grid .cave-card::after{
    width:30%;
    opacity:.62;
  }
}


/* Epicave V3.6.1 — animation plein écran pendant l'analyse d'une étiquette. */
.scan-processing-overlay{
  position:fixed;inset:0;z-index:3400;display:grid;place-items:center;padding:22px;
  background:linear-gradient(160deg,rgba(43,4,17,.95),rgba(72,9,29,.92));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;
}
.scan-processing-overlay.show{opacity:1;visibility:visible}
.scan-processing-card{
  width:min(92vw,460px);text-align:center;color:#fff;padding:32px 28px 28px;border-radius:28px;
  border:1px solid rgba(229,183,94,.55);
  background:linear-gradient(155deg,rgba(85,12,36,.94),rgba(55,5,22,.96));
  box-shadow:0 30px 70px rgba(17,0,7,.48),inset 0 1px 0 rgba(255,236,192,.18);
}
.scan-processing-visual{position:relative;width:118px;height:118px;margin:0 auto 18px;display:grid;place-items:center}
.scan-processing-grape{position:relative;z-index:3;font-size:42px;filter:drop-shadow(0 5px 10px rgba(0,0,0,.28));animation:scanProcessingPulse 1.8s ease-in-out infinite}
.scan-processing-ring{position:absolute;inset:8px;border-radius:50%;border:2px solid rgba(226,181,93,.72);box-shadow:0 0 18px rgba(226,181,93,.18)}
.scan-processing-ring.ring-one{animation:scanProcessingSpin 2.5s linear infinite;border-left-color:transparent;border-bottom-color:transparent}
.scan-processing-ring.ring-two{inset:22px;animation:scanProcessingSpinReverse 1.7s linear infinite;border-right-color:transparent;border-top-color:transparent;opacity:.72}
.scan-processing-card h2{margin:0 0 10px;font:700 28px/1.1 var(--serif);color:#e5b75e}
.scan-processing-card p{min-height:26px;margin:0;color:#fff;font:600 16px/1.45 var(--sans);transition:opacity .2s ease,transform .2s ease}
.scan-processing-card p.swap{animation:scanProcessingMessage .35s ease}
.scan-processing-card small{display:block;margin-top:15px;color:rgba(255,244,231,.72);font-size:12px;line-height:1.45}
.scan-processing-steps{display:flex;justify-content:center;gap:7px;margin:18px 0 0}
.scan-processing-steps span{width:7px;height:7px;border-radius:50%;background:#e5b75e;opacity:.3;animation:scanProcessingDots 1.25s ease-in-out infinite}
.scan-processing-steps span:nth-child(2){animation-delay:.16s}.scan-processing-steps span:nth-child(3){animation-delay:.32s}
@keyframes scanProcessingSpin{to{transform:rotate(360deg)}}
@keyframes scanProcessingSpinReverse{to{transform:rotate(-360deg)}}
@keyframes scanProcessingPulse{0%,100%{transform:scale(.96);opacity:.88}50%{transform:scale(1.06);opacity:1}}
@keyframes scanProcessingDots{0%,100%{transform:translateY(0);opacity:.28}50%{transform:translateY(-5px);opacity:1}}
@keyframes scanProcessingMessage{0%{opacity:.25;transform:translateY(4px)}100%{opacity:1;transform:translateY(0)}}
@media(max-width:820px){
  .scan-processing-overlay{padding:16px}
  .scan-processing-card{padding:28px 20px 24px;border-radius:24px}
  .scan-processing-card h2{font-size:25px}
  .scan-processing-card p{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
  .scan-processing-ring,.scan-processing-grape,.scan-processing-steps span,.scan-processing-card p.swap{animation:none!important}
}


/* Epicave V3.6.3 — progression visuelle du scan sur ~45 s, sans boucle de messages. */
.scan-processing-percent{
  margin:2px 0 8px;
  color:#f0ca79;
  font:700 30px/1 var(--serif);
  letter-spacing:.02em;
  text-shadow:0 2px 12px rgba(0,0,0,.28);
}
.scan-processing-progress{
  width:min(390px,86%);
  height:8px;
  margin:0 auto 18px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(229,183,94,.34);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.28),0 0 15px rgba(229,183,94,.08);
}
.scan-processing-progress>span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#a66b2e,#e5b75e 52%,#f6dc9b);
  box-shadow:0 0 12px rgba(229,183,94,.52);
  transition:width .28s linear;
}
.scan-processing-detail{
  display:block;
  min-height:18px;
  margin-top:14px!important;
  color:rgba(255,244,231,.68)!important;
  font-size:12px!important;
  line-height:1.4!important;
}
@media(max-width:520px){
  .scan-processing-percent{font-size:27px}
  .scan-processing-progress{width:92%;margin-bottom:16px}
}

/* Epicave V3.6.4 — Commandes : prix fournisseur + prix client et synthèse de marge. */
@media(min-width:821px){
  .page-wineOrders .wine-order-catalog-row{
    grid-template-columns:minmax(220px,1fr) 160px 138px 138px 40px!important;
    align-items:end!important;
  }
  .page-wineOrders .wine-order-catalog-row>.field:first-child{grid-column:auto!important}
  .page-wineOrders .wine-order-catalog-row>.wine-order-remove-line{
    grid-column:5!important;
    grid-row:1!important;
    align-self:end!important;
  }
  .page-wineOrders .wine-order-totals{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
.wine-order-line-total{flex-direction:column!important;gap:3px!important}
.wine-order-line-total small{display:block;font-size:11px;line-height:1.1;color:rgba(247,234,210,.72);font-weight:700}
.wine-order-line-total strong{display:block;font-size:15px;color:#f7ead2}
.wine-order-current-reference-summary-list>div{align-items:center}
.wine-order-current-reference-summary-list>div small{display:block;color:var(--muted);font-size:11px;text-align:right}
.wine-order-reference-sales p{
  grid-template-columns:minmax(0,1fr) auto auto auto!important;
}
.wine-order-reference-sales-supplier{white-space:nowrap;text-align:right;color:var(--muted)}
.wine-order-summary-top-totals,.wine-order-summary-totals{flex-wrap:wrap}
@media(max-width:820px){
  .page-wineOrders .wine-order-catalog-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px!important;
  }
  .page-wineOrders .wine-order-catalog-row>.field:first-child{grid-column:1/-1!important}
  .page-wineOrders .wine-order-catalog-pack{grid-column:1/-1!important}
  .page-wineOrders .wine-order-supplier-price{grid-column:1!important}
  .page-wineOrders .wine-order-client-price{grid-column:2!important}
  .page-wineOrders .wine-order-catalog-row>.wine-order-remove-line{grid-column:3!important;grid-row:3!important}
  .page-wineOrders .wine-order-totals{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .wine-order-reference-sales p{grid-template-columns:minmax(0,1fr) auto!important}
  .wine-order-reference-sales p>span:first-child{grid-column:1;grid-row:1/4!important}
  .wine-order-reference-sales-qty{grid-column:2;grid-row:1}
  .wine-order-reference-sales-supplier{grid-column:2;grid-row:2}
  .wine-order-reference-sales-subtotal{grid-column:2;grid-row:3}
}
@media(max-width:520px){
  .page-wineOrders .wine-order-totals{grid-template-columns:1fr!important}
}


/* Epicave V3.6.6 — Références proposées : référence +30 %, conditionnement -30 %. */
@media(min-width:1101px){
  .page-wineOrders .wine-order-catalog-row{
    grid-template-columns:minmax(180px,1.755fr) minmax(105px,.63fr) 132px 132px 40px!important;
    gap:12px!important;
    align-items:end!important;
  }
  .page-wineOrders .wine-order-catalog-row>.field{
    min-width:0!important;
  }
  .page-wineOrders .wine-order-catalog-row>.field:first-child{
    min-width:0!important;
  }
  .page-wineOrders .wine-order-catalog-pack{
    min-width:0!important;
  }
  .page-wineOrders .wine-order-catalog-pack select.input,
  .page-wineOrders .wine-order-catalog-price .input{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}
@media(min-width:821px) and (max-width:1100px){
  .page-wineOrders .wine-order-catalog-row{
    grid-template-columns:minmax(160px,1.43fr) minmax(95px,.63fr) 118px 118px 38px!important;
    gap:9px!important;
    align-items:end!important;
  }
  .page-wineOrders .wine-order-catalog-row>.field,
  .page-wineOrders .wine-order-catalog-pack{
    min-width:0!important;
  }
  .page-wineOrders .wine-order-catalog-pack select.input,
  .page-wineOrders .wine-order-catalog-price .input{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .page-wineOrders .wine-order-catalog-row label{
    font-size:12px!important;
  }
}


/* Epicave V3.6.8 — saisie manuelle uniquement pour les prix des références proposées. */
.page-wineOrders .wine-order-catalog-price input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
.page-wineOrders .wine-order-catalog-price input[type="number"]::-webkit-outer-spin-button,
.page-wineOrders .wine-order-catalog-price input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}


/* Epicave V3.6.9 — commandes : résumé global aligné, détails client simplifiés. */
.page-wineOrders .wine-order-current-reference-summary-list{
  display:grid;
  gap:0;
}
.page-wineOrders .wine-order-current-reference-summary-head,
.page-wineOrders .wine-order-current-reference-summary-row{
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) minmax(130px,.65fr) minmax(120px,.55fr) minmax(120px,.55fr)!important;
  gap:16px!important;
  align-items:center!important;
  padding:9px 0!important;
}
.page-wineOrders .wine-order-current-reference-summary-head{
  border-bottom:1px solid rgba(117,74,65,.24)!important;
  color:var(--wine);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.page-wineOrders .wine-order-current-reference-summary-row{
  border-top:1px solid rgba(117,74,65,.13)!important;
}
.page-wineOrders .wine-order-current-reference-summary-head + .wine-order-current-reference-summary-row{
  border-top:0!important;
}
.page-wineOrders .wine-order-current-reference-summary-head>*:not(:first-child),
.page-wineOrders .wine-order-current-reference-summary-row>*:not(:first-child){
  text-align:right;
  white-space:nowrap;
}
.page-wineOrders .wine-order-current-reference-summary-row>span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.page-wineOrders .wine-order-line-total small{display:none!important}

@media(max-width:900px){
  .page-wineOrders .wine-order-current-reference-summary-head{
    display:none!important;
  }
  .page-wineOrders .wine-order-current-reference-summary-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:6px 14px!important;
    padding:10px 0!important;
  }
  .page-wineOrders .wine-order-current-reference-summary-row>span:first-child{
    grid-column:1;
    grid-row:1/4;
    align-self:center;
  }
  .page-wineOrders .wine-order-current-reference-summary-row>span:nth-child(2){grid-column:2;grid-row:1}
  .page-wineOrders .wine-order-current-reference-summary-row>span:nth-child(3){grid-column:2;grid-row:2}
  .page-wineOrders .wine-order-current-reference-summary-row>strong{grid-column:2;grid-row:3}
  .page-wineOrders .wine-order-current-reference-summary-row>span:nth-child(3)::before{content:"Fournisseur · ";color:var(--muted);font-weight:700}
  .page-wineOrders .wine-order-current-reference-summary-row>strong::before{content:"Clients · ";color:var(--muted);font-weight:700}
}


/* Epicave V3.6.11 — scanner plein écran façon viseur mobile, sans altérer le recadrage réel. */
.scan-camera-close{display:none}
@media(max-width:820px){
  body.scan-capture-active .app-shell.page-scan .sidebar,
  body.scan-capture-active .app-shell.page-scan .bottom-nav,
  body.scan-capture-active .app-shell.page-scan .topbar,
  body.scan-capture-active .app-shell.page-scan .desktop-footer{display:none!important}

  .scan-capture-mode .camera-card{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
    background:#050505!important;
    z-index:500!important;
  }
  .scan-capture-mode .camera-video,
  .scan-capture-mode .camera-freeze,
  .scan-capture-mode .camera-preview{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
  .scan-capture-mode .scan-shade{
    position:absolute!important;
    inset:0!important;
    z-index:2!important;
    pointer-events:none!important;
    background:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.01) 20%,rgba(0,0,0,.01) 72%,rgba(0,0,0,.20))!important;
  }
  .scan-capture-mode .scan-frame{
    left:50%!important;
    right:auto!important;
    top:46%!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    width:min(90vw,430px)!important;
    height:auto!important;
    aspect-ratio:1182 / 1616!important;
    border:0!important;
    border-radius:24px!important;
    box-shadow:none!important;
    z-index:5!important;
    background:
      linear-gradient(#fff,#fff) left top/78px 4px no-repeat,
      linear-gradient(#fff,#fff) left top/4px 78px no-repeat,
      linear-gradient(#fff,#fff) right top/78px 4px no-repeat,
      linear-gradient(#fff,#fff) right top/4px 78px no-repeat,
      linear-gradient(#fff,#fff) left bottom/78px 4px no-repeat,
      linear-gradient(#fff,#fff) left bottom/4px 78px no-repeat,
      linear-gradient(#fff,#fff) right bottom/78px 4px no-repeat,
      linear-gradient(#fff,#fff) right bottom/4px 78px no-repeat!important;
  }
  .scan-capture-mode .scan-frame::before,
  .scan-capture-mode .scan-frame::after{display:none!important}
  .scan-capture-mode .scan-hint{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:24px!important;
    color:#fff!important;
    text-align:center!important;
    transform:none!important;
    text-shadow:0 2px 8px rgba(0,0,0,.78)!important;
    pointer-events:none!important;
  }
  .scan-capture-mode .scan-hint small{
    display:block!important;
    font:800 18px/1.1 var(--sans)!important;
    color:#fff!important;
    letter-spacing:0!important;
  }
  .scan-capture-mode .scan-hint strong{
    display:block!important;
    font:800 clamp(27px,8vw,38px)/1.04 var(--sans)!important;
    color:#fff!important;
    letter-spacing:.005em!important;
    white-space:nowrap!important;
  }
  .scan-capture-mode .scan-photo-captured .scan-hint{display:none!important}

  /* Le formulaire ne réduit plus le viseur pendant la capture / analyse. */
  .scan-capture-mode .scan-info-sheet{display:none!important}
  .scan-capture-mode .detect-badge{display:none!important}

  .scan-capture-mode .scan-camera-close{
    appearance:none!important;
    display:grid!important;
    place-items:center!important;
    position:fixed!important;
    left:max(20px,env(safe-area-inset-left))!important;
    top:max(18px,env(safe-area-inset-top))!important;
    z-index:540!important;
    width:58px!important;
    height:58px!important;
    border:0!important;
    border-radius:50%!important;
    background:rgba(55,55,55,.28)!important;
    color:#fff!important;
    font:300 46px/1 var(--sans)!important;
    cursor:pointer!important;
    backdrop-filter:blur(8px)!important;
    -webkit-backdrop-filter:blur(8px)!important;
    text-shadow:0 1px 4px rgba(0,0,0,.45)!important;
  }
  .scan-capture-mode .camera-actions{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:max(22px,env(safe-area-inset-bottom))!important;
    z-index:540!important;
    width:100vw!important;
    height:92px!important;
    transform:none!important;
    margin:0!important;
    pointer-events:none!important;
  }
  .scan-capture-mode .camera-actions > *{pointer-events:auto!important}
  .scan-capture-mode .camera-actions .capture-btn{
    position:absolute!important;
    left:50%!important;
    bottom:0!important;
    transform:translateX(-50%)!important;
    width:78px!important;
    height:78px!important;
    border:4px solid rgba(255,255,255,.80)!important;
    background:rgba(255,255,255,.16)!important;
    box-shadow:0 3px 18px rgba(0,0,0,.34)!important;
  }
  .scan-capture-mode .camera-actions .capture-btn span{
    width:62px!important;
    height:62px!important;
    background:#fff!important;
  }
  .scan-capture-mode .camera-actions .import-btn{
    position:absolute!important;
    left:20px!important;
    bottom:2px!important;
    width:72px!important;
    min-width:72px!important;
    height:72px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid rgba(255,255,255,.75)!important;
    border-radius:50%!important;
    background:rgba(35,35,35,.24)!important;
    color:#fff!important;
    backdrop-filter:blur(7px)!important;
    -webkit-backdrop-filter:blur(7px)!important;
  }
  .scan-capture-mode .camera-actions .import-btn small{display:none!important}
  .scan-capture-mode .camera-actions .torch-btn{
    position:fixed!important;
    right:max(20px,env(safe-area-inset-right))!important;
    top:max(18px,env(safe-area-inset-top))!important;
    z-index:541!important;
    width:58px!important;
    height:58px!important;
    margin:0!important;
    padding:0!important;
    border-radius:50%!important;
    border:0!important;
    background:rgba(55,55,55,.28)!important;
    color:#fff!important;
    backdrop-filter:blur(8px)!important;
    -webkit-backdrop-filter:blur(8px)!important;
  }
  .scan-capture-mode .camera-tap-focus-indicator{z-index:550!important}
}
@media(max-width:430px){
  .scan-capture-mode .scan-frame{
    width:min(91vw,390px)!important;
    top:45%!important;
  }
  .scan-capture-mode .scan-hint strong{font-size:clamp(25px,7.8vw,34px)!important}
  .scan-capture-mode .scan-camera-close,
  .scan-capture-mode .camera-actions .torch-btn{width:54px!important;height:54px!important}
}


/* Epicave V3.6.12 — pictogramme galerie du scanner mobile. */
.scan-gallery-icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  line-height:1;
}
.scan-gallery-icon svg{
  display:block;
  width:30px;
  height:30px;
}


/* Epicave V3.6.13 — repère tap-to-focus Epicave en contours uniquement. */
.camera-tap-focus-indicator{
  width:64px!important;
  height:64px!important;
  margin:-32px 0 0 -32px!important;
  border:0!important;
  border-radius:14px!important;
  box-shadow:none!important;
  background:
    linear-gradient(#e6b85f,#e6b85f) left top/20px 2px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) left top/2px 20px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) right top/20px 2px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) right top/2px 20px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) left bottom/20px 2px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) left bottom/2px 20px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) right bottom/20px 2px no-repeat,
    linear-gradient(#e6b85f,#e6b85f) right bottom/2px 20px no-repeat!important;
  filter:drop-shadow(0 0 5px rgba(75,15,32,.72)) drop-shadow(0 0 3px rgba(230,184,95,.32));
}
.camera-tap-focus-indicator::before,
.camera-tap-focus-indicator::after{
  content:""!important;
  position:absolute!important;
  background:transparent!important;
  border:1.5px solid rgba(230,184,95,.95)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
}
.camera-tap-focus-indicator::before{
  width:16px!important;
  height:16px!important;
  left:24px!important;
  top:24px!important;
  transform:none!important;
}
.camera-tap-focus-indicator::after{
  width:6px!important;
  height:6px!important;
  left:29px!important;
  top:29px!important;
  transform:none!important;
  border-color:rgba(255,241,204,.92)!important;
}
.camera-tap-focus-indicator.is-success{
  filter:drop-shadow(0 0 7px rgba(230,184,95,.75)) drop-shadow(0 0 3px rgba(75,15,32,.70));
}
.camera-tap-focus-indicator.is-failed{
  opacity:.45!important;
}
@keyframes epicaveTapFocus{
  0%{opacity:0;transform:scale(1.34)}
  16%{opacity:1;transform:scale(.90)}
  58%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1)}
}


/* Epicave V3.6.14 — accueil mobile : libellé « À boire vite ! » sur une seule ligne. */
@media(max-width:820px){
  .page-home .stats .stat-card:nth-child(3) .stat-label{
    white-space:nowrap!important;
    font-size:clamp(10px,2.9vw,12px)!important;
    letter-spacing:-.01em;
  }
}


/* Epicave V3.6.17 — logo du splash légèrement agrandi pour correspondre au natif. */
.epicave-boot-splash{
  background:#4b0f20!important;
}
.epicave-boot-brand{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  left:0!important;
  top:0!important;
  transform:none!important;
  display:block!important;
}
.epicave-boot-logo{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:216px!important;
  height:216px!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  object-fit:contain!important;
  border-radius:0!important;
  filter:none!important;
}
.epicave-boot-name{
  position:absolute!important;
  left:50%!important;
  top:calc(50% + 130px)!important;
  margin:0!important;
  transform:translateX(-50%)!important;
  white-space:nowrap!important;
  text-align:center!important;
}
@media(max-width:520px){
  .epicave-boot-logo{
    width:216px!important;
    height:216px!important;
  }
  .epicave-boot-name{
    top:calc(50% + 130px)!important;
    font-size:29px!important;
  }
}

/* Epicave V3.6.19 — largeur responsive des contenus desktop */
@media (min-width:821px){
  .page{
    width:80%;
    max-width:none;
    margin-left:auto;
    margin-right:auto;
  }
}
