:root{font-family:Arial,sans-serif;color:#203e35;background:#f8f7f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,footer{max-width:1180px;margin:auto;padding:20px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}header img{object-fit:contain;width:115px;height:90px}nav{display:flex;align-items:center;gap:18px}a{color:inherit;text-underline-offset:4px}main{max-width:1120px;margin:35px auto 60px;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.intro{padding-top:45px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}h1{font:normal 48px/1.15 Georgia,serif;margin:25px 0}h2{font:normal 30px Georgia,serif;margin:0 0 18px}h3{font-size:18px}p{line-height:1.6}.intro>p{max-width:420px}.pill{background:#e6ebdd;border-radius:24px;padding:10px 16px;display:inline-block;font-size:14px}.panel{min-width:0;background:#fff;border:1px solid #e0e2d8;border-radius:18px;padding:32px;box-shadow:0 12px 40px #203e3508}label{display:block;font-size:14px;margin:18px 0 6px}input,select{width:100%;font:inherit;padding:13px;border:1px solid #9aa99f;border-radius:7px;background:white;color:#203e35;min-height:48px}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #9cae82;outline-offset:3px}button,.button{font:inherit;border:1px solid #c5cbbb;border-radius:8px;padding:13px 18px;min-height:48px;cursor:pointer;color:#203e35;background:#f6f7f0}form button[type=submit]{display:block;width:100%;background:#661b2c;color:white;border-color:#661b2c;margin-top:24px}button:disabled{opacity:.55;cursor:wait}.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.links button{border:0;background:none;padding:5px;min-height:40px;text-decoration:underline}.small{font-size:13px;color:#52635a}.steps{font-size:13px;letter-spacing:1px;color:#647354;margin-bottom:18px}.choices{display:grid;gap:12px}.choices button{text-align:left}.choices strong,.choices span{display:block}.choices span{font-size:13px;margin-top:6px}.error{background:#f8e9e9;color:#802035;padding:13px;border-radius:8px;margin-bottom:18px}.success{background:#e8efdf;padding:13px;border-radius:8px;margin-bottom:18px}.asset{border-bottom:1px solid #e1e6dc;padding:12px 0}.skip{position:absolute;left:10px;top:-100px}.skip:focus{top:5px}footer{font-size:12px;color:#52635a;flex-wrap:wrap}body.workspace main{grid-template-columns:1fr;max-width:860px}body.workspace .intro{display:none}[hidden]{display:none!important}@media(max-width:700px){header,footer{padding:16px 20px}header img{width:86px;height:70px}nav{font-size:13px;gap:8px}main{display:block;margin:0 auto 30px;padding:0 18px}.intro{padding:4px 4px 18px}h1{font-size:34px;margin:14px 0}.intro>p{font-size:14px}.panel{padding:24px 20px}h2{font-size:27px}.pill{margin:5px 0 10px}footer{gap:14px}}

.profile-section{border:1px solid #dfe4d8;border-radius:10px;margin-top:18px;padding:16px}.profile-section summary{cursor:pointer;font-weight:600;line-height:1.6}.profile-section summary span{font-size:12px;font-weight:400;color:#62705d;display:block;margin-left:16px}.profile-section[open] summary{margin-bottom:12px}textarea{width:100%;font:inherit;border:1px solid #9aa99f;border-radius:7px;padding:13px;resize:vertical;color:#203e35;background:#fff}textarea:focus{outline:3px solid #9cae82;outline-offset:3px}

.vine-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin:24px 0}.vine-card{display:flex;flex-direction:column;gap:10px;text-align:left;background:#fff;color:#203e35;border:1px solid #cad2bf;padding:20px}.vine-card strong{font:24px Georgia,serif;overflow-wrap:anywhere}.vine-card span{font-size:14px}.vine-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.vine-data dd{margin:0}@media(max-width:480px){.vine-data{grid-template-columns:1fr}.vine-data dd{margin-bottom:12px}}

#vine-history{margin-top:32px;min-width:0}.vine-timeline{display:flex;gap:16px;overflow-x:auto;padding:12px 4px 20px;scroll-snap-type:x proximity;max-width:100%}.timeline-event{flex:0 0 min(300px,85vw);max-width:90%;border:1px solid #cbd4c2;border-top:3px solid #738851;border-radius:12px;padding:18px;scroll-snap-align:start;background:#fff;min-width:0}.timeline-event h4{font-size:20px;margin:12px 0}.event-icon{display:block;font-size:26px;color:#701c30}.event-notes{white-space:pre-wrap;overflow-wrap:anywhere}.timeline-event.cancelled{border-top-color:#9b7d80;background:#f5f1ee}.timeline-event time{font-size:14px}.vine-timeline:focus-visible{outline:2px solid #203e35;outline-offset:3px}#observation-add{margin-top:12px}

.observation-photo{display:block;margin:12px 0;font-size:13px}.observation-photo img{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:8px;background:#f4f4ed}input[type=file]{max-width:100%;font-size:14px}

.work-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin:24px 0}.work-card{border:1px solid #dce1d4;border-radius:12px;padding:20px;overflow-wrap:anywhere;background:#fff}.work-card h3{margin-top:0}.work-card button{min-height:44px}.task-filters{display:grid;gap:8px;margin-top:24px}.task-filters select{margin-bottom:8px}

.phyto-product{min-width:0;margin:16px 0}.phyto-product legend{font-weight:600;padding:0 8px}.phyto-product input,.phyto-product select{max-width:100%;box-sizing:border-box}

.harvest-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.harvest-tile{padding:1.15rem;border:1px solid #d9dfd0;border-radius:14px;background:#f6f7f0;min-width:0}.harvest-tile h3{font-size:1rem;margin-top:0}.harvest-value{font-size:clamp(1.5rem,3vw,2.3rem);font-weight:600;color:#65172b;overflow-wrap:anywhere;margin:.7rem 0}.harvest-preview{font-size:1.35rem;font-weight:600;color:#65172b}@media(max-width:700px){.harvest-tiles{grid-template-columns:1fr;gap:.75rem}.harvest-tile{padding:1rem}.harvest-tile .small{margin-bottom:0}}

.cellar-card{min-width:0}.cellar-icon{font-size:2.3rem;color:#65172b}meter{display:block;width:100%;height:1.4rem;margin:1rem 0;accent-color:#65172b}meter::-webkit-meter-optimum-value{background:#65172b}meter::-moz-meter-bar{background:#65172b}

.reading-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.reading-chart{min-width:0}.reading-chart svg{display:block;width:100%;height:auto}.reading-chart svg text{font-size:12px;fill:#203e35}.chart-axis{stroke:#ccd5c4}.chart-line{fill:none;stroke:#65172b;stroke-width:2}.chart-point{fill:#65172b}.reading-chart ul{padding-left:1.2rem}@media(max-width:700px){.reading-charts{grid-template-columns:1fr}}

.vine-map-card,.vine-map-empty{border:1px solid #dce3d4;border-radius:12px;padding:20px;margin:24px 0;background:#f7f8f2}.vine-map-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.vine-map-heading h3,.vine-map-empty h3{margin-top:0}.vine-map-heading p{margin-bottom:0}.vine-map-heading a{white-space:nowrap}.vine-map-card > svg{display:block;width:100%;height:auto;max-height:360px;margin:18px 0;background:#edf2e7;border-radius:9px}.map-grid{fill:none;stroke:#d6dfce;stroke-width:1}.parcel-boundary{fill:#79965b55;stroke:#385c42;stroke-width:4;stroke-linejoin:round}.boundary-marker{fill:#f8f7f1;stroke:#385c42;stroke-width:3}.parcel-marker{fill:#284f3f;stroke:#fff;stroke-width:5}.photo-marker{fill:#761b34;stroke:#fff;stroke-width:4;cursor:pointer}.map-key{display:inline-block;width:11px;height:11px;border-radius:50%;margin:0 5px 0 12px}.map-key.parcel{background:#284f3f}.map-key.photo{background:#761b34}.map-key.boundary{background:#78965b}.vine-position,.vine-boundary{border:1px solid #dce3d4;border-radius:10px;padding:16px;margin:20px 0}.vine-position legend,.vine-boundary legend{font-weight:600;padding:0 6px}.position-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.vine-position button{width:100%}.vine-boundary ol{padding:0;list-style:none;max-height:230px;overflow:auto}.vine-boundary li{padding:9px 0;border-bottom:1px solid #e0e5d9;font-variant-numeric:tabular-nums}.vine-boundary li strong{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:8px;border-radius:50%;background:#e6ecdc}.boundary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.boundary-actions button{font-size:13px;padding:10px}.boundary-actions button:disabled{opacity:.45}@media(max-width:600px){.vine-map-heading{display:block}.vine-map-heading a{display:inline-block;margin-top:8px}.position-grid,.boundary-actions{grid-template-columns:1fr}.vine-map-card{padding:14px}.vine-map-card > svg{min-height:230px}}
.boundary-editor{min-height:110px;border:1px solid #dce3d4;border-radius:9px;background:#edf2e7;display:grid;place-items:center}.boundary-editor svg{display:block;width:100%;max-height:300px;touch-action:none}.boundary-editor .boundary-marker{cursor:grab;touch-action:none}.boundary-editor .boundary-marker:active{cursor:grabbing}.boundary-editor>p{margin:32px 12px}@media(max-width:600px){.boundary-editor svg{min-height:210px}}
.ephy-search{padding:12px;margin-bottom:14px;border-radius:9px;background:#edf2e7}.ephy-search-row{display:grid;grid-template-columns:1fr auto;gap:8px}.ephy-search-row button{margin:0}.ephy-results{display:grid;gap:7px;margin-top:9px}.ephy-result{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;color:#203e35;border:1px solid #bdcbb3}.ephy-result span{font-size:13px;font-weight:400;margin-top:4px}@media(max-width:600px){.ephy-search-row{grid-template-columns:1fr}.ephy-search-row button{width:100%}}

/* L'espace connecté dispose de son propre cadre, plus aéré que l'onboarding. */
body.app-open{background:#f7f7f2;color:#243d34}
body.app-open header{position:sticky;top:0;z-index:15;max-width:none;width:100%;padding:8px clamp(20px,2.2vw,44px);border-bottom:1px solid #e4e8df;background:#f7f7f2}
body.app-open header img{width:104px;height:78px}
body.app-open header nav a{font-size:13px;color:#52635a}
body.app-open header nav button{border:0;background:transparent;font-size:13px;text-decoration:underline}
body.app-open main{display:grid;grid-template-columns:clamp(205px,16vw,260px) minmax(0,1fr);gap:clamp(18px,2vw,36px);align-items:start;max-width:none;width:100%;margin:0 0 48px;padding:26px clamp(20px,2.2vw,44px) 0}
body.app-open .panel{background:transparent;border:0;box-shadow:none;padding:0}
body.app-open #screen{min-width:0}
body.app-open footer{max-width:none;width:100%;border-top:1px solid #e4e8df;padding-inline:clamp(20px,2.2vw,44px)}
body.app-open h2{font-size:clamp(30px,4vw,43px);line-height:1.16;color:#1f382f}
body.app-open h3{font:normal 23px/1.25 Georgia,serif;color:#243d34}
body.app-open .eyebrow{color:#62765d;font-size:11px;letter-spacing:2.1px}
body.app-open .app-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:6px;padding:8px;background:#fff;border:1px solid #e0e6da;border-radius:14px;box-shadow:0 4px 20px #203e3508;margin:0}
body.app-open .app-nav button{display:flex;align-items:center;justify-content:flex-start;gap:12px;background:transparent;border:0;color:#4a5b51;font-weight:600}
body.app-open .app-nav button span{font-size:21px;line-height:1}
body.app-open .app-nav button[aria-current=page]{background:#661b2c;color:#fff}
body.app-open .work-card,body.app-open .vine-card{border-color:#dbe3d7;box-shadow:0 8px 24px #203e3509;border-radius:16px}
body.app-open .work-card{padding:24px}
body.app-open .vine-card{background:#fff;padding:24px}
body.app-open .work-cards{gap:18px}
body.app-open .links button{color:#365a45}
body.app-open form:not(.work-card),body.app-open .vine-data{max-width:850px}
body.app-open form button[type=submit]{border-radius:9px}
.today-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:4px 0 26px}
.today-heading h2{margin:6px 0 8px}
.today-heading p:not(.eyebrow){max-width:680px;margin:0;color:#51645a}
.today-trial{display:inline-block;white-space:nowrap;background:#e9efdf;color:#365443;border:1px solid #dbe5ce;border-radius:40px;padding:10px 15px;font-size:13px}
.today-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 34px;border-radius:18px;background:#203e35;color:#f7f8ed;position:relative;overflow:hidden}
.today-hero:after{content:'';position:absolute;width:210px;height:210px;border:1px solid #ffffff16;border-radius:50%;right:18%;top:-135px;pointer-events:none}
.today-hero .eyebrow,.today-hero h3{color:#fff}
.app-open .today-hero .eyebrow,.app-open .today-hero h3{color:#fff}
.today-hero h3{font-size:31px;margin:8px 0}
.today-hero p:last-child{margin:0;color:#d7e4d5}
.today-hero button{position:relative;white-space:nowrap;background:#f4f1e6;color:#203e35;border:0;font-weight:700}
.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:18px;margin:20px 0}
.today-section,.today-actions{background:#fff;border:1px solid #e0e6db;border-radius:17px;padding:26px 28px;box-shadow:0 8px 28px #203e3508}
.today-section h3,.today-actions h3{margin:5px 0 17px}
.today-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.today-section-head button,.today-attention button{border:0;background:transparent;text-decoration:underline;padding:8px 0;min-height:40px;white-space:nowrap}
.today-task{display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-top:1px solid #e6eae2}
.today-task:first-child{border-top:0}
.today-task-mark{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#e9efe1;color:#31553f;font-weight:700}
.today-task strong{font-size:16px}
.today-task p{margin:4px 0 0;font-size:13px;color:#66776b}
.today-empty{color:#627366;margin:12px 0}
.today-attention{background:#f6f1eb;border-color:#ede1d8}
.today-attention p{border-top:1px solid #e5dbd1;padding-top:14px}
.today-attention p:first-of-type{border-top:0}
.today-actions{margin-top:20px}
.today-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.today-action-grid button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;background:#f8f9f4;border:1px solid #dbe4d7;border-radius:12px;padding:18px;min-height:136px}
.today-action-grid button:hover,.today-action-grid button:focus-visible{border-color:#627d60;background:#edf3e8}
.today-action-grid button span{font-size:28px;color:#681c34}
.today-action-grid button small{font-size:12px;color:#637267}
.today-secondary{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 12px}
.today-secondary button{background:transparent;border:0;text-decoration:underline;padding:8px 0;min-height:40px}
@media(max-width:950px){body.app-open main{display:block;padding:14px 18px 0}body.app-open .app-nav{position:static;flex-direction:row;margin-bottom:24px}body.app-open .app-nav button{flex:1;justify-content:center}.today-grid{grid-template-columns:1fr}.today-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-heading{display:block}.today-trial{margin-top:14px}}
@media(max-width:650px){body.app-open{padding-bottom:80px}body.app-open header{padding:4px 18px}body.app-open header img{width:78px;height:63px}body.app-open header nav a{display:none}body.app-open main{margin:0 auto 24px;padding:14px 14px 0}body.app-open .app-nav{position:fixed;top:auto;z-index:20;bottom:0;left:0;right:0;flex-direction:row;margin:0;border-radius:16px 16px 0 0;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 -8px 30px #203e3520}body.app-open .app-nav button{flex-direction:column;gap:2px;font-size:11px;padding:8px 2px;min-height:54px}body.app-open .app-nav button span{font-size:21px}body.app-open h2{font-size:32px}.today-heading{margin:4px 4px 18px}.today-heading p:not(.eyebrow){font-size:14px}.today-hero{display:block;padding:25px 23px}.today-hero h3{font-size:27px}.today-hero button{margin-top:18px;width:100%}.today-grid{gap:12px;margin:12px 0}.today-section,.today-actions{padding:21px 19px}.today-section-head{align-items:flex-start}.today-section-head button{font-size:12px}.today-action-grid{gap:9px}.today-action-grid button{min-height:122px;padding:14px}.today-action-grid button strong{font-size:14px}body.app-open footer{padding-bottom:24px}}

/* Espace métier : mêmes repères visuels que la démonstration. */
body.app-open{background:#fcfbf9;color:#263c36}
body.app-open header{background:#fff;border-color:#ebe7e3}
body.app-open main{gap:clamp(18px,2.2vw,38px)}
body.app-open h2{color:#263c36}
body.app-open .eyebrow{color:#6c3340}
body.app-open .app-nav{top:104px;border-color:#e9e3df;border-radius:10px;box-shadow:0 7px 28px #2d201309}
body.app-open .app-nav button{border-radius:7px}
body.app-open .work-card,body.app-open .vine-card,body.app-open .today-section,body.app-open .today-actions{border-color:#e9e3df;border-radius:10px;box-shadow:0 6px 24px #2d201307}
body.app-open .today-hero{border-radius:10px}
body.app-open .today-action-grid button{border-color:#e9e3df;border-radius:8px;background:#fcfbf9}
body.app-open footer{border-color:#ebe7e3}
body.app-open .module-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:5px 0 22px}
body.app-open .module-heading h2{margin:7px 0 8px}
body.app-open .module-heading p:last-child{margin:0;color:#65736b}
body.app-open .module-heading>button{flex:none}
body.app-open button.module-primary{background:#591326;border-color:#591326;color:#fff;text-decoration:none;font-weight:600}
body.app-open button.module-primary:hover{background:#74233a}
body.app-open .module-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #ebe7e3;padding:0 0 12px;color:#667369;font-size:13px}
body.app-open .module-toolbar button{border:0;background:transparent;text-decoration:underline;padding:7px 0;min-height:40px;color:#591326}
body.app-open .module-actions{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
body.app-open .module-actions button{background:#fff;border-color:#e3dcd8;color:#4e2631}
body.app-open .module-actions button.module-primary{background:#591326;border-color:#591326;color:#fff}
body.app-open .module-panel{background:#fff;border:1px solid #e9e3df;border-radius:10px;padding:24px;min-width:0}
body.app-open .module-empty{grid-column:1/-1;padding:24px;background:#fff;border:1px dashed #d9d0ca;border-radius:10px}
body.app-open .vine-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:14px;margin:22px 0}
body.app-open .vine-card{position:relative;min-height:205px;padding:22px;text-decoration:none;gap:9px}
body.app-open .vine-card:hover,body.app-open .vine-card:focus-visible{border-color:#9c6c78;box-shadow:0 9px 26px #59132612}
body.app-open .vine-card-icon{display:grid;place-items:center;width:41px;height:41px;border-radius:50%;background:#f0eae8;color:#591326;font-size:25px}
body.app-open .vine-card strong{font-size:23px;color:#263c36}
body.app-open .vine-card-meta,body.app-open .vine-card-appellation{color:#5c6b62}
body.app-open .card-open{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;border-top:1px solid #eee9e5;color:#591326;font-weight:600}
body.app-open .module-pagination{align-items:center;justify-content:flex-end}
body.app-open .module-pagination span{font-size:13px;color:#5e6b62}
body.app-open .vine-detail-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:16px;margin:22px 0;align-items:stretch}
body.app-open .vine-detail-grid .vine-map-card,body.app-open .vine-detail-grid .vine-map-empty{margin:0;background:#fff;border-color:#e9e3df;border-radius:10px}
body.app-open .vine-detail-grid .vine-map-card > svg{max-height:300px}
body.app-open .vine-data{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:12px 0 0;max-width:none}
body.app-open .vine-data div{padding:13px 5px;border-top:1px solid #eee9e5;min-width:0}
body.app-open .vine-data dt{font-size:12px;color:#758076;margin-bottom:5px}
body.app-open .vine-data dd{font-weight:600;overflow-wrap:anywhere}
body.app-open #vine-history{margin-top:24px}
body.app-open .cellar-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin:22px 0}
body.app-open .cellar-card{display:flex;flex-direction:column;padding:22px}
body.app-open .cellar-card-heading{display:flex;align-items:center;gap:13px}
body.app-open .cellar-card-heading h3{margin:0 0 3px}
body.app-open .cellar-card-heading p{margin:0;color:#66736b;font-size:13px}
body.app-open .cellar-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:#f0eae8;color:#591326;font-size:26px}
body.app-open .cellar-level{display:flex;justify-content:space-between;gap:10px;margin-top:25px;font-size:13px}
body.app-open .cellar-card meter{margin:7px 0;height:12px}
body.app-open .cellar-card .small{margin:3px 0 13px}
body.app-open .cellar-lots{padding:10px 0;border-top:1px solid #eee9e5;margin-bottom:15px}
body.app-open .cellar-lots p{margin:3px 0;font-size:13px}
body.app-open .cellar-card>button{margin-top:auto;background:#fff;border-color:#e5dcd8;color:#591326;font-weight:600}
@media(max-width:1050px){body.app-open .vine-detail-grid{grid-template-columns:1fr}}
@media(max-width:950px){body.app-open .app-nav{top:auto}}
@media(max-width:650px){body.app-open main{padding:14px 14px 0}body.app-open .app-nav{top:auto}body.app-open .module-heading{display:block;margin-bottom:16px}body.app-open .module-heading>button{width:100%;margin-top:18px}body.app-open .module-toolbar{margin-bottom:0}body.app-open .module-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}body.app-open .module-actions button{min-width:0;padding:10px 8px;font-size:13px}body.app-open .vine-cards,body.app-open .cellar-grid{grid-template-columns:1fr;gap:11px}body.app-open .vine-card{min-height:170px}body.app-open .vine-detail-grid{grid-template-columns:1fr;gap:12px}body.app-open .vine-data{grid-template-columns:1fr 1fr}body.app-open .module-panel{padding:19px}body.app-open .cellar-card{padding:20px}body.app-open #vine-history{margin-top:16px}}
@media(max-width:380px){body.app-open .module-actions{grid-template-columns:1fr}body.app-open .vine-data{grid-template-columns:1fr}body.app-open .module-pagination{justify-content:space-between}}

/* Tâches : repères rapides et actions tactiles dans le cadre métier. */
body.app-open .task-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:14px;align-items:end;max-width:850px;margin:20px 0 4px}
body.app-open .task-filters label{margin:0 0 8px;font-weight:600;color:#263c36}
body.app-open .task-filters select{margin:0;border-color:#cfcfc7}
body.app-open .task-count{margin:0 0 13px;color:#607066;font-size:13px;white-space:nowrap}
body.app-open .task-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin:22px 0}
body.app-open .task-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:#fff;border:1px solid #e9e3df;border-radius:10px;box-shadow:0 6px 24px #2d201307;overflow-wrap:anywhere}
body.app-open .task-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
body.app-open .task-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#f0eae8;color:#591326;font-size:23px}
body.app-open .task-state{padding:7px 10px;border-radius:20px;background:#eff2e9;color:#435c49;font-size:12px;font-weight:600}
body.app-open .task-state-high{background:#f7e8e9;color:#6c2334}
body.app-open .task-card .eyebrow{font-size:10px;margin:19px 0 6px}
body.app-open .task-card h3{margin:0 0 14px;overflow-wrap:anywhere}
body.app-open .task-card-meta{color:#5b6a60;font-size:13px}
body.app-open .task-card-meta p{margin:5px 0}
body.app-open .task-card-meta strong{color:#263c36}
body.app-open .task-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:20px}
body.app-open .task-card-actions button{min-height:44px;background:#fff;border-color:#e3dcd8;color:#591326;font-size:13px;font-weight:600}
body.app-open .task-card-actions button.module-primary{background:#591326;border-color:#591326;color:#fff}
body.app-open .task-card-actions .task-cancel{border:0;padding-inline:8px;text-decoration:underline;font-weight:400}
body.app-open .task-form{margin:20px 0}
body.app-open .task-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
body.app-open .task-form-grid>div{min-width:0}
body.app-open .task-form-grid label{font-weight:600;color:#263c36}
body.app-open .task-form-grid input,body.app-open .task-form-grid select{border-color:#cfcfc7}
body.app-open .task-form-wide{grid-column:1/-1}
body.app-open .task-form button[type=submit]{max-width:310px;background:#591326;border-color:#591326}
@media(max-width:700px){body.app-open .task-filters{grid-template-columns:1fr 1fr;padding:19px;gap:12px}body.app-open .task-count{grid-column:1/-1;margin:0}body.app-open .task-card-grid{grid-template-columns:1fr;gap:11px}body.app-open .task-card{padding:20px}body.app-open .task-form-grid{grid-template-columns:1fr}body.app-open .task-form button[type=submit]{max-width:none}}
@media(max-width:380px){body.app-open .task-filters{grid-template-columns:1fr}body.app-open .task-card-actions button{flex:1 1 auto}body.app-open .task-card-actions .task-cancel{flex:0 0 100%}}

/* Création du domaine : une seule étape lisible à la fois. */
body.domain-onboarding{background:#fcfbf9;color:#263c36}
body.domain-onboarding:not(.app-open) header,body.domain-onboarding:not(.app-open) footer{max-width:1120px}
body.domain-onboarding:not(.app-open) main{max-width:980px;margin:28px auto 64px}
body.domain-onboarding .panel{background:transparent;border:0;box-shadow:none;padding:0}
body.domain-onboarding .domain-wizard{max-width:880px;margin:0 auto;background:#fff;border:1px solid #e9e3df;border-radius:12px;padding:clamp(25px,4vw,48px);box-shadow:0 14px 38px #2d20130b}
body.domain-onboarding .wizard-progress{display:flex;justify-content:space-between;gap:12px;color:#677369;font-size:13px;font-weight:600}
body.domain-onboarding .wizard-progress-track{height:6px;background:#f0ece7;border-radius:8px;margin:13px 0 39px;overflow:hidden}
body.domain-onboarding .wizard-progress-track span{display:block;height:100%;background:#591326;border-radius:8px}
body.domain-onboarding .eyebrow{color:#6c3340;font-size:11px;letter-spacing:2px}
body.domain-onboarding .domain-wizard h2{font:normal clamp(30px,3.8vw,42px)/1.13 Georgia,serif;color:#263c36;margin:11px 0 14px;max-width:630px}
body.domain-onboarding .wizard-description{color:#5d6b63;margin:0 0 29px;max-width:610px}
body.domain-onboarding .wizard-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
body.domain-onboarding .wizard-field{min-width:0}
body.domain-onboarding .wizard-wide{grid-column:1/-1}
body.domain-onboarding .wizard-field label{font-weight:600;margin:0 0 9px;color:#263c36}
body.domain-onboarding .wizard-field input,body.domain-onboarding .wizard-field select,body.domain-onboarding .wizard-field textarea{border-color:#cfcfc7;background:#fff;border-radius:8px;min-height:50px}
body.domain-onboarding .wizard-field textarea{min-height:110px}
body.domain-onboarding .wizard-extra{border:1px solid #e9e3df;border-radius:8px;padding:15px 18px;margin-top:3px}
body.domain-onboarding .wizard-extra summary{cursor:pointer;color:#591326;font-weight:600;min-height:24px}
body.domain-onboarding .wizard-extra-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;margin-top:19px}
body.domain-onboarding .wizard-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:28px;border-top:1px solid #eee9e5;padding-top:24px}
body.domain-onboarding .wizard-footer button[type=submit]{width:auto;min-width:225px;margin:0;background:#591326;border-color:#591326;color:#fff;font-weight:600}
body.domain-onboarding .wizard-footer button[type=submit]:hover{background:#74233a}
body.domain-onboarding .wizard-footer button[type=button]{background:#fff;border-color:#e3dcd8;color:#591326}
body.domain-onboarding .wizard-secondary{display:flex;justify-content:flex-end;gap:20px;flex-wrap:wrap;margin-top:12px}
body.domain-onboarding .wizard-secondary button{border:0;background:transparent;color:#591326;text-decoration:underline;padding:7px 0;min-height:44px;font-size:13px}
body.domain-onboarding .wizard-reassurance{margin:20px 0 0;color:#617166;font-size:13px}
body.domain-onboarding .wizard-choices{grid-template-columns:repeat(2,minmax(0,1fr));margin:27px 0 20px}
body.domain-onboarding .wizard-choices button{border:1px solid #e9e3df;background:#fff;border-radius:9px;padding:23px;text-align:left;min-height:155px}
body.domain-onboarding .wizard-choices button:hover,body.domain-onboarding .wizard-choices button:focus-visible{border-color:#9c6c78;background:#fcfbf9}
body.domain-onboarding .wizard-choices strong{font:normal 23px Georgia,serif;color:#263c36}
body.domain-onboarding .wizard-choices span:last-child{color:#65736b}
body.domain-onboarding .wizard-choice-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#f0eae8;color:#591326;font-size:24px;margin-bottom:15px}
body.domain-onboarding #skip button[type=submit]{background:#591326;border-color:#591326;color:#fff;border-radius:8px}
@media(max-width:650px){body.domain-onboarding:not(.app-open) main{margin:0 auto 32px;padding:0 14px}body.domain-onboarding header nav a{display:none}body.domain-onboarding .domain-wizard{padding:24px 19px;border-radius:10px}body.domain-onboarding .wizard-progress-track{margin-bottom:30px}body.domain-onboarding .wizard-fields,body.domain-onboarding .wizard-extra-fields,body.domain-onboarding .wizard-choices{grid-template-columns:1fr;gap:18px}body.domain-onboarding .wizard-choices button{min-height:130px}body.domain-onboarding .wizard-footer{display:flex;flex-direction:column-reverse;align-items:stretch}body.domain-onboarding .wizard-footer button[type=submit],body.domain-onboarding .wizard-footer button[type=button]{width:100%}body.domain-onboarding .wizard-secondary{justify-content:center;gap:12px 24px}body.domain-onboarding .wizard-secondary button{padding:8px 5px}}

/* Accès au compte : même palette que l'assistant, formulaire visible d'abord sur téléphone. */
body.auth-open{background:#fcfbf9;color:#263c36}
body.auth-open main:focus{outline:none}
body.auth-open main{max-width:1180px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:center;margin:35px auto 65px}
body.auth-open .intro{padding-top:0}
body.auth-open .intro h1{color:#263c36;font-size:clamp(38px,4vw,58px);line-height:1.12}
body.auth-open .intro .eyebrow,body.auth-open .auth-card .eyebrow{color:#6c3340;font-size:11px;letter-spacing:2px}
body.auth-open .intro>p:not(.eyebrow):not(.pill){color:#5d6b63;font-size:17px}
body.auth-open .intro .pill{background:#edf1e7;color:#365443}
body.auth-open .panel{border:1px solid #e9e3df;border-radius:12px;padding:clamp(25px,3.2vw,42px);box-shadow:0 14px 38px #2d20130b}
body.auth-open .auth-card h2{font:normal clamp(31px,3vw,40px)/1.14 Georgia,serif;color:#263c36;margin:10px 0 12px}
body.auth-open .auth-description{color:#5d6b63;margin:0 0 25px}
body.auth-open .auth-info{background:#f4f5ee;border:1px solid #e5e9db;border-radius:8px;padding:13px 15px;color:#3c5949;font-size:13px;margin:0 0 21px}
body.auth-open .auth-form{margin:0}
body.auth-open .auth-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
body.auth-open .auth-wide{grid-column:1/-1}
body.auth-open .auth-field{min-width:0}
body.auth-open .auth-field label{font-weight:600;margin:16px 0 8px;color:#263c36}
body.auth-open .auth-field input{border-color:#cfcfc7;border-radius:8px;min-height:50px}
body.auth-open .auth-form button[type=submit]{background:#591326;border-color:#591326;border-radius:8px;margin-top:25px;font-weight:600}
body.auth-open .auth-form button[type=submit]:hover{background:#74233a}
body.auth-open .auth-form .small{margin:20px 0 0}
body.auth-open .auth-choice{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #eee9e5;margin-top:25px;padding-top:20px;font-size:13px;color:#5d6b63}
body.auth-open .auth-choice button{background:#fff;border-color:#ded5d0;color:#591326;font-weight:600;white-space:nowrap}
body.auth-open .auth-support{display:flex;flex-wrap:wrap;gap:8px 19px;margin-top:16px}
body.auth-open .auth-support button{min-height:44px;padding:8px 0;background:transparent;border:0;color:#591326;text-decoration:underline;font-size:13px}
@media(max-width:700px){body.auth-open main{display:block;margin:0 auto 35px;padding:0 14px}body.auth-open .intro{display:none}body.auth-open .panel{padding:26px 21px}body.auth-open .auth-form-grid{grid-template-columns:1fr}body.auth-open .auth-choice{align-items:stretch;flex-direction:column}body.auth-open .auth-choice button{width:100%}body.auth-open .auth-support{justify-content:space-between}}
@media(max-width:380px){body.auth-open header{padding:12px 15px}body.auth-open header img{width:75px;height:61px}body.auth-open header nav{font-size:12px}body.auth-open .panel{padding:24px 18px}body.auth-open .auth-support{display:block}body.auth-open .auth-support button{display:block}}

/* Cadre connecté : structure de la démonstration, avec navigation tactile persistante sur téléphone. */
body.app-open{--shell-sidebar:258px;background:#f6f7f1;color:#203e35}
body.app-open .app-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;width:var(--shell-sidebar);min-width:0;padding:26px 18px 22px;background:#fffef9;border-right:1px solid #e0e5d9}
body.app-open .sidebar-brand{display:block;width:max-content;margin:0 10px 24px}
body.app-open .sidebar-brand img{display:block;width:104px;height:83px;object-fit:contain}
body.app-open .sidebar-domain{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 9px;border:1px solid #e0e5d9;border-radius:8px}
body.app-open .sidebar-domain>div{min-width:0}
body.app-open .sidebar-domain strong,body.app-open .sidebar-domain small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.app-open .sidebar-domain strong{font-size:13px}
body.app-open .sidebar-domain small{margin-top:4px;color:#687565;font-size:11px}
body.app-open .sidebar-domain-edit{display:block;min-height:40px;margin:6px 0 0;padding:7px 10px;background:transparent;border:0;color:#385845;font-size:13px;font-weight:600;text-align:left}
body.app-open .sidebar-domain-edit:hover{text-decoration:underline}
body.app-open .domain-seal{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:7px;background:#e9eddd;color:#203e35;font:normal 21px Georgia,serif}
body.app-open .sidebar-label{margin:24px 11px 11px;color:#75816e;font-size:11px;font-weight:700;letter-spacing:1.5px}
body.app-open .app-nav{position:static;display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
body.app-open .app-nav button{display:flex;align-items:center;justify-content:flex-start;gap:13px;min-height:54px;padding:11px 13px;border:0;border-radius:7px;background:transparent;color:#536453;font-size:16px;font-weight:600;text-align:left}
body.app-open .app-nav button span{display:inline-grid;place-items:center;width:30px;font-size:28px;transform:scale(1.18)}
body.app-open .app-nav button[data-section=vines] span{transform:scale(1.5)}
body.app-open .app-nav button:hover{background:#eaf0e5;color:#203e35}
body.app-open .app-nav button[aria-current=page]{background:#203e35;color:#fffef4}
body.app-open .sidebar-account{display:flex;align-items:center;gap:10px;min-width:0;margin-top:auto;padding:20px 9px 0;border-top:1px solid #e0e5d9}
body.app-open .sidebar-account>div{min-width:0}
body.app-open .sidebar-account strong,body.app-open .sidebar-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.app-open .sidebar-account strong{font-size:13px}
body.app-open .sidebar-account small{margin-top:3px;color:#697769;font-size:11px}
body.app-open .account-avatar{display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:50%;background:#eee7e3;color:#591326;font-size:12px;font-weight:700}
body.app-open header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;width:calc(100% - var(--shell-sidebar));max-width:none;height:76px;margin:0 0 0 var(--shell-sidebar);padding:0 clamp(22px,3vw,42px);background:#fffef9;border-bottom:1px solid #e0e5d9}
body.app-open header .header-brand{display:none}
body.app-open .app-header-domain{display:flex;align-items:center;gap:11px;min-width:0;font-size:13px}
body.app-open .app-header-domain strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.app-open header nav{margin-left:auto;gap:16px}
body.app-open header nav .demo-link{display:none}
body.app-open .header-vintage{padding:10px 13px;border:1px solid #e0e5d9;border-radius:20px;color:#586a59;font-size:12px;white-space:nowrap}
body.app-open header nav .header-profile{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;text-decoration:none}
body.app-open header nav .header-profile:hover{background:#f1f3eb}
body.app-open header nav #logout{min-height:44px;padding:8px 0;color:#5d6d60;font-size:12px;text-decoration:underline}
body.app-open main{display:block;width:calc(100% - var(--shell-sidebar));max-width:none;min-height:calc(100vh - 165px);margin:0 0 0 var(--shell-sidebar);padding:30px clamp(20px,3vw,42px) 46px}
body.app-open main:focus{outline:none}
body.app-open .panel{padding:0;background:transparent;border:0;box-shadow:none}
body.app-open footer{width:calc(100% - var(--shell-sidebar));max-width:none;margin:0 0 0 var(--shell-sidebar);padding:20px clamp(20px,3vw,42px);border-top:1px solid #e0e5d9}
body.app-open .today-hero{background:#e9efdf;color:#203e35;border:1px solid #dce5d1}
body.app-open .today-hero .eyebrow,body.app-open .today-hero h3{color:#203e35}
body.app-open .today-hero p:last-child{color:#52634e}
body.app-open .today-hero button{background:#203e35;color:#fffef4}
body.app-open .today-section,body.app-open .today-actions,body.app-open .work-card,body.app-open .module-panel,body.app-open .task-card{background:#fffef9;border-color:#e0e5d9}
@media(max-width:1050px){body.app-open{--shell-sidebar:232px}body.app-open .app-sidebar{padding-inline:12px}body.app-open .sidebar-brand{margin-left:9px}}
@media(max-width:850px){body.app-open{--shell-sidebar:0px;padding-bottom:calc(80px + env(safe-area-inset-bottom))}body.app-open .app-sidebar{inset:auto 0 0 0;z-index:40;width:100%;height:auto;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border:1px solid #e0e5d9;border-bottom:0;border-radius:15px 15px 0 0;box-shadow:0 -8px 28px #203e351b}body.app-open .sidebar-brand,body.app-open .sidebar-domain,body.app-open .sidebar-label,body.app-open .sidebar-account{display:none}body.app-open .app-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin:0;padding:0;border:0;box-shadow:none}body.app-open .app-nav button{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:6px 2px;font-size:10px;line-height:1.2;text-align:center}body.app-open .app-nav button span{font-size:21px;line-height:1}body.app-open header{width:100%;height:68px;margin:0;padding:0 18px}body.app-open header .header-brand{display:block;flex:none}body.app-open header .header-brand img{display:block;width:55px;height:55px}body.app-open .app-header-domain .domain-seal{display:none}body.app-open .app-header-domain strong{font-size:12px}body.app-open .header-vintage,body.app-open header nav .header-profile{display:none}body.app-open header nav{gap:0}body.app-open header nav #logout{font-size:11px;white-space:nowrap}body.app-open main{width:100%;min-height:calc(100vh - 190px);margin:0;padding:20px 18px 34px}body.app-open footer{width:100%;margin:0;padding:20px 18px 26px}}
@media(max-width:380px){body.app-open header{gap:9px;padding-inline:12px}body.app-open header .header-brand img{width:48px;height:48px}body.app-open .app-header-domain strong{max-width:130px}body.app-open main{padding-inline:14px}body.app-open .app-nav button{font-size:9px}}
@media(prefers-reduced-motion:no-preference){body.app-open .app-nav button,body.app-open .today-action-grid button,body.app-open .vine-card,body.app-open .cellar-card{transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}}

/* Profil du domaine : tous les champs sur une page après l'onboarding. */
body.app-open .domain-profile-heading{max-width:780px}
body.app-open .domain-profile-form{display:grid;gap:15px;max-width:1120px}
body.app-open .domain-profile-section{padding:25px 28px}
body.app-open .domain-profile-section-heading{display:flex;align-items:center;gap:13px;margin-bottom:21px}
body.app-open .domain-profile-section-heading .eyebrow{margin:0 0 5px;color:#667564}
body.app-open .domain-profile-section-heading h3{margin:0;color:#243e35;font:normal 23px Georgia,serif}
body.app-open .domain-profile-section>.small{margin:0 0 18px;color:#68766b}
body.app-open .domain-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
body.app-open .domain-profile-field{min-width:0}
body.app-open .domain-profile-field label{display:block;margin-bottom:8px;color:#304a3d;font-size:14px;font-weight:600}
body.app-open .domain-profile-field input,body.app-open .domain-profile-field select,body.app-open .domain-profile-field textarea{display:block;width:100%;min-height:49px;border:1px solid #cdd8ca;border-radius:8px;background:#fff;color:#203e35}
body.app-open .domain-profile-field input,body.app-open .domain-profile-field select{padding:11px 13px}
body.app-open .domain-profile-field textarea{min-height:115px}
body.app-open .domain-profile-wide{grid-column:1/-1}
body.app-open .domain-profile-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;background:#e9efdf;border:1px solid #dce5d1;border-radius:9px}
body.app-open .domain-profile-actions p{margin:0;color:#51654f;font-size:13px}
body.app-open .domain-profile-actions button{min-height:48px;white-space:nowrap}
@media(max-width:850px){body.app-open .sidebar-domain-edit{display:none}}
@media(max-width:700px){body.app-open .domain-profile-section{padding:20px 18px}body.app-open .domain-profile-grid{grid-template-columns:1fr;gap:15px}body.app-open .domain-profile-wide{grid-column:auto}body.app-open .domain-profile-actions{display:block;padding:18px}body.app-open .domain-profile-actions button{width:100%;margin-top:13px;white-space:normal}}

/* Registres et vendanges : cartes éditoriales, filtres compacts et comparaisons lisibles. */
body.app-open .record-notice{display:flex;align-items:flex-start;gap:18px;margin:22px 0;padding:22px 25px;background:#f4eeec;border-left:4px solid #591326;border-radius:8px}
body.app-open .record-notice-icon,body.app-open .record-card-icon,body.app-open .harvest-tile-icon{display:grid;place-items:center;flex:none;width:43px;height:43px;border-radius:50%;background:#eee4e4;color:#591326;font-size:23px}
body.app-open .record-notice .eyebrow{margin:0 0 5px}
body.app-open .record-notice h3{margin:0 0 6px;font-size:22px}
body.app-open .record-notice p:last-child{margin:0;color:#5c6660;font-size:14px}
body.app-open .record-filter{margin:18px 0 24px;max-width:850px}
body.app-open .record-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body.app-open .record-filter-grid>div{min-width:0}
body.app-open .record-filter label{margin:0 0 8px;font-weight:600;color:#263c36}
body.app-open .record-filter input,body.app-open .record-filter select{border-color:#cfcfc7}
body.app-open .record-filter button[type=submit]{width:auto;min-width:205px;margin-top:18px;background:#591326;border-color:#591326}
body.app-open .record-list-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:25px 0 6px}
body.app-open .record-list-heading .eyebrow{margin:0 0 7px}
body.app-open .record-list-heading h3{margin:0}
body.app-open .record-count{margin:6px 0 0;color:#687469;font-size:13px}
body.app-open .record-export{display:flex;flex-wrap:wrap;gap:8px}
body.app-open .record-export button{min-height:42px;background:#fffef9;border:1px solid #e4dad6;color:#591326;font-size:12px;font-weight:600}
body.app-open .record-export-note{margin:8px 0 0}
body.app-open .record-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin:19px 0}
body.app-open .record-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:#fffef9;border:1px solid #e0e5d9;border-radius:9px;box-shadow:0 6px 24px #203e3508;overflow-wrap:anywhere}
body.app-open .record-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
body.app-open .record-card .eyebrow{font-size:10px;margin:18px 0 7px}
body.app-open .record-card h3{margin:0 0 12px;font-size:23px}
body.app-open .record-card-meta{margin:2px 0 9px;color:#657167;font-size:13px}
body.app-open .record-card-detail{margin:0 0 18px;color:#263c36;font-size:14px}
body.app-open .record-status{padding:7px 10px;border-radius:20px;font-size:11px;font-weight:600;text-align:center}
body.app-open .record-status-ok{background:#e9efe2;color:#365443}
body.app-open .record-status-attention{background:#f6e9d8;color:#765028}
body.app-open .record-status-cancelled{background:#f0eeeb;color:#666563}
body.app-open .record-card>button{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;min-height:44px;margin-top:auto;padding:12px 0 0;border:0;border-top:1px solid #eee9e5;border-radius:0;background:transparent;color:#591326;font-size:13px;font-weight:700;text-align:left}
body.app-open .record-card>button:hover{text-decoration:underline}
body.app-open .harvest-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 14px}
body.app-open .harvest-tile{display:flex;gap:14px;min-width:0;padding:21px 19px;background:#fffef9;border-color:#e0e5d9;border-radius:9px}
body.app-open .harvest-tile-icon{background:#edf0e6;color:#536d4f}
body.app-open .harvest-tile>div{min-width:0}
body.app-open .harvest-tile h3{margin:0;font:600 13px Arial,sans-serif;color:#4d5e52}
body.app-open .harvest-tile .harvest-value{margin:10px 0 8px;color:#591326;font:normal clamp(24px,2.6vw,32px) Georgia,serif}
body.app-open .harvest-previous,body.app-open .harvest-difference{margin:4px 0;font-size:11px;color:#687469}
body.app-open .harvest-difference{font-weight:600;color:#3e624b}
body.app-open .harvest-comparison-note{max-width:850px;margin:0 0 20px}
body.app-open .harvest-card-weight{margin:2px 0 9px;color:#591326;font:normal 29px Georgia,serif}
@media(max-width:1050px){body.app-open .harvest-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body.app-open .record-notice{gap:12px;padding:19px 17px}body.app-open .record-notice-icon{width:36px;height:36px;font-size:19px}body.app-open .record-notice h3{font-size:20px}body.app-open .record-filter{padding:19px}body.app-open .record-filter-grid{grid-template-columns:1fr;gap:14px}body.app-open .record-filter button[type=submit]{width:100%}body.app-open .record-list-heading{display:block}body.app-open .record-export{margin-top:17px}body.app-open .record-export button{flex:1}body.app-open .record-grid{grid-template-columns:1fr;gap:11px}body.app-open .record-card{padding:20px}body.app-open .harvest-tiles{grid-template-columns:1fr;gap:10px}body.app-open .harvest-tile{padding:17px}}
@media(max-width:380px){body.app-open .record-notice{display:block}body.app-open .record-notice-icon{margin-bottom:12px}body.app-open .record-export{display:grid;grid-template-columns:1fr 1fr}body.app-open .record-export button{min-width:0;padding-inline:6px}}

/* Fiches et saisies du carnet phyto et des vendanges. */
body.app-open .record-entry-heading{margin:26px 0 22px}
body.app-open .record-entry-heading h2{margin:7px 0 9px}
body.app-open .record-entry-heading>p:last-child{max-width:650px;margin:0;color:#617067}
body.app-open .record-entry-form{max-width:850px}
body.app-open .record-entry-section{margin:16px 0 0;padding:27px}
body.app-open .record-section-heading{display:flex;align-items:center;gap:13px;margin-bottom:20px}
body.app-open .record-section-heading .eyebrow{margin:0 0 5px}
body.app-open .record-section-heading h3{margin:0}
body.app-open .record-section-icon{display:grid;place-items:center;flex:none;width:45px;height:45px;border-radius:50%;background:#f0e8e6;color:#591326;font-size:22px}
body.app-open .record-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 19px}
body.app-open .record-entry-grid>div{min-width:0}
body.app-open .record-entry-form label{font-weight:600;color:#263c36}
body.app-open .record-entry-form input,body.app-open .record-entry-form select,body.app-open .record-entry-form textarea{border-color:#cfcfc7}
body.app-open .record-entry-form .small{margin:7px 0 0}
body.app-open .record-entry-form .record-entry-more-label{margin:27px 0 0}
body.app-open .record-entry-form .profile-section,body.app-open .record-entry-more{margin:11px 0;border-color:#e6ded9;background:#fffef9;border-radius:9px;padding:18px 22px}
body.app-open .record-entry-form details summary{color:#354d3f;font-weight:600;min-height:30px}
body.app-open .record-entry-form .phyto-product{background:#fcfbf8;border-color:#e4e2d9;border-radius:8px;padding:22px}
body.app-open .record-entry-form .phyto-product legend{color:#591326}
body.app-open .record-entry-form .ephy-search{background:#f0f2e9}
body.app-open .record-entry-form .record-add-product{width:100%;margin:3px 0 0;border:1px dashed #ab8b94;background:#fffef9;color:#591326;font-weight:600}
body.app-open .record-entry-form .phyto-remove{margin-top:18px;background:#fff;border-color:#e4d8d8;color:#692438}
body.app-open .record-entry-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 35px;padding:22px 0;border-top:1px solid #e6ded9}
body.app-open .record-entry-submit p{max-width:460px;margin:0}
body.app-open .record-entry-submit button[type=submit]{width:auto;min-width:240px;margin:0;background:#591326;border-color:#591326}
body.app-open #harvest-crate-fields .harvest-preview{margin:18px 0 0;padding:15px;background:#f3f0e8;border-radius:8px;color:#591326}
body.app-open .record-detail-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:25px 0 22px}
body.app-open .record-detail-heading h2{margin:7px 0 8px}
body.app-open .record-detail-heading p:last-child{margin:0;color:#637167}
body.app-open .record-detail-heading .record-status{flex:none;margin-bottom:4px}
body.app-open .record-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:15px;margin:18px 0}
body.app-open .record-detail-main{min-height:245px}
body.app-open .record-detail-main>.eyebrow{margin:16px 0 0}
body.app-open .record-detail-main>p:last-child{margin-bottom:0}
body.app-open .harvest-detail-weight{margin:4px 0 15px;font:normal clamp(38px,5vw,62px) Georgia,serif;color:#591326}
body.app-open .record-detail-muted{color:#67756b;font-size:13px}
body.app-open .record-detail-side h3,body.app-open .record-detail-section h3,body.app-open .record-detail-notes h3{margin:0 0 18px}
body.app-open .record-detail-facts{margin:0}
body.app-open .record-detail-facts>div{padding:11px 0;border-top:1px solid #eee9e5}
body.app-open .record-detail-facts dt{font-size:12px;color:#6b786f}
body.app-open .record-detail-facts dd{margin:4px 0 0;font-size:14px;font-weight:600;overflow-wrap:anywhere}
body.app-open .record-detail-side button{width:100%;margin-top:14px;background:#fff;border-color:#e4d9d8;color:#591326}
body.app-open .record-detail-notes{margin:17px 0}
body.app-open .record-detail-notes p{margin-bottom:0}
body.app-open .record-detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 10px}
body.app-open .record-detail-actions button{background:#fff;border-color:#e4d9d8;color:#591326;font-weight:600}
body.app-open .record-detail-actions button.module-primary{background:#591326;color:#fff;border-color:#591326}
body.app-open .record-phyto-detail>.links{margin-top:0}
body.app-open .record-detail-alert{margin:16px 0 28px;padding:22px 25px;border-left:4px solid #547253;border-radius:8px;background:#edf2e8}
body.app-open .record-detail-alert-attention{border-left-color:#a96f37;background:#f8efe5}
body.app-open .record-detail-alert h3{margin:0 0 9px}
body.app-open .record-detail-alert p,body.app-open .record-detail-alert ul{margin:0}
body.app-open .record-detail-alert li{margin:5px 0}
body.app-open .record-detail-section{margin:18px 0}
body.app-open .record-product-card{display:inline-block;width:min(100%,340px);vertical-align:top;margin:0 12px 12px 0;overflow-wrap:anywhere}
body.app-open .record-product-card>strong{display:block;font:normal 24px Georgia,serif;color:#263c36}
body.app-open .record-product-card>p{margin:9px 0 0;font-size:13px}
body.app-open .record-product-card>p:nth-of-type(2){color:#591326;font-size:21px;font-weight:600}
body.app-open .record-phyto-detail .record-detail-facts{display:grid;grid-template-columns:minmax(120px,.4fr) minmax(0,1fr);gap:0 18px}
body.app-open .record-phyto-detail .record-detail-facts dt,body.app-open .record-phyto-detail .record-detail-facts dd{margin:0;padding:12px 0;border-top:1px solid #eee9e5}
body.app-open .record-phyto-detail .record-detail-facts dd{font-weight:500}
body.app-open .record-detail-disclaimer{margin:0 0 25px}
@media(max-width:700px){body.app-open .record-entry-heading{margin:21px 0}body.app-open .record-entry-section{padding:20px 18px}body.app-open .record-entry-grid{grid-template-columns:1fr;gap:0}body.app-open .record-entry-submit{display:block;padding-bottom:12px}body.app-open .record-entry-submit button[type=submit]{width:100%;margin-top:14px}body.app-open .record-detail-heading{display:block;margin:19px 0}body.app-open .record-detail-heading .record-status{display:inline-block;margin-top:13px}body.app-open .record-detail-grid{grid-template-columns:1fr}body.app-open .record-detail-main{min-height:0}body.app-open .record-detail-alert{padding:19px 17px}body.app-open .record-product-card{display:block;width:100%;margin-right:0}body.app-open .record-phyto-detail .record-detail-facts{grid-template-columns:1fr}body.app-open .record-phyto-detail .record-detail-facts dt{padding-bottom:0}body.app-open .record-phyto-detail .record-detail-facts dd{padding-top:4px;border:0}body.app-open .record-detail-actions{display:grid;grid-template-columns:1fr 1fr}body.app-open .record-detail-actions button{min-width:0}}
@media(max-width:380px){body.app-open .record-detail-actions{grid-template-columns:1fr}body.app-open .record-entry-form .profile-section,body.app-open .record-entry-more{padding:17px}}

/* Cuverie : volume, lots et actions visibles dès l'ouverture d'une fiche. */
body.app-open .cellar-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:15px;margin:19px 0}
body.app-open .cellar-detail-volume .eyebrow{margin:19px 0 4px}
body.app-open .cellar-detail-value{margin:2px 0 17px;font:normal clamp(38px,4.5vw,57px) Georgia,serif;color:#591326}
body.app-open .cellar-detail-value span{font:normal 19px Arial,sans-serif;color:#637168}
body.app-open .cellar-detail-volume meter{height:14px;margin:12px 0 7px}
body.app-open .cellar-detail-volume>p:last-child{margin:0;color:#5f6c62;font-size:14px}
body.app-open .cellar-detail-side h3,body.app-open .cellar-batch-containers h3{margin:0 0 16px}
body.app-open .cellar-detail-lot{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #eee9e5}
body.app-open .cellar-detail-lot>div{min-width:0}
body.app-open .cellar-detail-lot strong,body.app-open .cellar-batch-location strong{font:normal 21px Georgia,serif;color:#263c36}
body.app-open .cellar-detail-lot p,body.app-open .cellar-batch-location p{margin:5px 0 0;color:#667369;font-size:13px}
body.app-open .cellar-detail-lot button,body.app-open .cellar-batch-location button{min-height:42px;background:#fff;border-color:#e5dcd8;color:#591326;font-size:13px;white-space:nowrap}
body.app-open .cellar-detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 32px}
body.app-open .cellar-detail-actions button{background:#fff;border-color:#e5dcd8;color:#591326;font-weight:600}
body.app-open .cellar-detail-actions button.module-primary{background:#591326;border-color:#591326;color:#fff}
body.app-open .cellar-detail-history{margin:25px 0}
body.app-open .cellar-detail-history h3{margin:0}
body.app-open .cellar-detail-history .work-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:13px;margin:16px 0}
body.app-open .cellar-detail-history .work-card{background:#fffef9;padding:21px}
body.app-open .cellar-detail-history .work-card button{background:#fff;border-color:#e5dcd8;color:#591326}
body.app-open .cellar-batch-containers{margin:20px 0}
body.app-open .cellar-batch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
body.app-open .cellar-batch-location{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:16px;border:1px solid #e8e2dc;border-radius:8px}
body.app-open .cellar-batch-location button{grid-column:1/-1;width:100%}
body.app-open .cellar-encuvage-available{display:flex;align-items:center;gap:14px;max-width:850px;margin:0 0 20px;padding:18px 20px;background:#edf2e8;border-radius:9px}
body.app-open .cellar-encuvage-available .record-section-icon{background:#dfe9d9;color:#365443}
body.app-open .cellar-encuvage-available strong{font:normal 26px Georgia,serif}
body.app-open .cellar-encuvage-available p{margin:2px 0 0;color:#5b6b5d;font-size:13px}
body.app-open #cellar-new-batch{margin-top:7px}
@media(max-width:900px){body.app-open .cellar-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){body.app-open .cellar-detail-lot{display:block}body.app-open .cellar-detail-lot button{width:100%;margin-top:12px}body.app-open .cellar-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}body.app-open .cellar-detail-actions button{min-width:0;padding:10px 8px;font-size:13px}body.app-open .cellar-encuvage-available{padding:16px}}
@media(max-width:380px){body.app-open .cellar-detail-actions{grid-template-columns:1fr}}

/* Suivi de cuverie : mesures lisibles et journal d'interventions. */
body.app-open .followup-toolbar{display:flex;justify-content:flex-end;margin:17px 0 0}
body.app-open .followup-toolbar button{background:#fffef9;border-color:#e5dcd8;color:#591326;font-weight:600}
body.app-open .followup-charts{gap:14px;margin:19px 0 29px}
body.app-open .followup-chart{min-width:0;padding:24px}
body.app-open .followup-chart-heading{display:flex;align-items:center;gap:13px}
body.app-open .followup-chart-heading .eyebrow{margin:0 0 4px}
body.app-open .followup-chart h3{margin:0}
body.app-open .followup-chart-value{margin:16px 0 5px;font:normal clamp(32px,3.5vw,44px) Georgia,serif;color:#591326}
body.app-open .followup-chart-value span{font:normal 18px Arial,sans-serif;color:#647268}
body.app-open .followup-chart>svg{margin:12px 0 4px}
body.app-open .followup-chart>details{margin-top:14px;padding-top:12px;border-top:1px solid #eee9e5;font-size:13px}
body.app-open .followup-chart-empty{margin:20px 0 0;color:#647268}
body.app-open .followup-time-note{margin:8px 0 0}
body.app-open .followup-record-grid{margin-top:18px}
body.app-open .followup-record-card .eyebrow{margin:17px 0 5px}
body.app-open .followup-record-card h3{font-size:21px}
body.app-open .followup-record-card .followup-reading{margin:5px 0;color:#263c36;font-size:14px}
body.app-open .followup-record-card .record-card-meta{margin-top:auto;padding-top:12px}
body.app-open .followup-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid #eee9e5}
body.app-open .followup-card-actions button{min-height:42px;background:#fff;border-color:#e5dcd8;color:#591326;font-size:12px;font-weight:600}
body.app-open .followup-record-card.cancelled{opacity:.78}
body.app-open .followup-record-card .error{overflow-wrap:anywhere}
@media(max-width:700px){body.app-open .followup-toolbar button{width:100%}body.app-open .followup-card-actions{display:grid;grid-template-columns:1fr 1fr}body.app-open .followup-card-actions button{min-width:0}}
@media(max-width:380px){body.app-open .followup-card-actions{grid-template-columns:1fr}}

/* Transferts et soutirages : source, bilan des volumes et correction. */
body.app-open .cellar-movement-source{display:flex;align-items:center;gap:16px;max-width:850px;margin:0 0 20px;padding:18px 20px;border:1px solid #dce6d7;border-radius:9px;background:#edf2e8}
body.app-open .cellar-movement-source .record-section-icon{background:#dce8d7;color:#365443}
body.app-open .cellar-movement-source .eyebrow{margin:0 0 4px}
body.app-open .cellar-movement-source strong{font:normal 27px Georgia,serif;color:#263c36}
body.app-open .cellar-movement-source p:last-child{margin:5px 0 0;color:#5b6b5d;font-size:13px}
body.app-open .cellar-movement-preview{margin:17px 0 8px;padding:16px 18px;border-radius:8px;background:#f3f0e8}
body.app-open .record-detail-main .harvest-detail-weight span{font:normal 20px Arial,sans-serif;color:#647268}
@media(max-width:700px){body.app-open .cellar-movement-source{padding:16px}body.app-open .cellar-movement-source strong{font-size:23px}}

/* Assemblage : apports, proportion initiale et bilan du nouveau lot. */
body.app-open #blend-sources{display:grid;gap:13px;margin:18px 0 12px}
body.app-open .record-entry-form .blend-source-card{min-width:0;margin:0;padding:20px 21px;background:#fcfbf8;border:1px solid #e4e2d9;border-radius:8px}
body.app-open .blend-source-card legend{padding:0 7px;color:#591326;font-weight:700}
body.app-open .blend-source-card .record-entry-grid{align-items:start}
body.app-open .blend-source-card [data-source-hint]{margin:5px 0 0;color:#687469;font-size:12px}
body.app-open .blend-source-card details{margin:12px 0 4px}
body.app-open .blend-source-card [data-remove]{margin:11px 0 0;background:#fff;border-color:#e4d8d8;color:#692438}
body.app-open .blend-add-source{width:100%;margin:0;border:1px dashed #ab8b94;background:#fffef9;color:#591326;font-weight:600}
body.app-open .blend-preview{margin:19px 0 8px;padding:16px 18px;border-radius:8px;background:#f3f0e8;font-size:18px;line-height:1.4}
body.app-open .blend-composition,body.app-open .blend-contributions{margin:29px 0}
body.app-open .blend-composition .record-grid,body.app-open .blend-contributions .record-grid{margin-top:15px}
body.app-open .blend-composition-card>p:not(.eyebrow){margin:0 0 15px;color:#591326;font-size:18px;font-weight:600}
body.app-open .blend-proportion{height:9px;margin:0 0 16px;border-radius:9px;background:#e9ece2;overflow:hidden}
body.app-open .blend-proportion span{display:block;height:100%;border-radius:9px;background:#708c61}
body.app-open .blend-contribution-card>p:not(.eyebrow){margin:4px 0;color:#4e5e53;font-size:13px}
@media(max-width:700px){body.app-open .record-entry-form .blend-source-card{padding:17px}body.app-open .blend-preview{font-size:16px}}

/* Fiches de cuves et de lots : état courant, révisions et modification. */
body.app-open .profile-list-heading{margin-top:25px}
body.app-open .profile-list-heading>button{background:#fffef9;border-color:#e4dad6;color:#591326;font-weight:600}
body.app-open .profile-list-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:13px;margin:19px 0}
body.app-open .profile-card{display:flex;flex-direction:column;min-width:0;padding:21px;background:#fffef9;border-color:#e0e5d9}
body.app-open .profile-card .eyebrow{margin:0 0 5px;font-size:10px}
body.app-open .profile-card h3{font:normal 23px Georgia,serif;color:#263c36}
body.app-open .profile-card p{margin:5px 0;color:#5d6a61;font-size:13px}
body.app-open .profile-card .profile-card-volume{margin:14px 0;color:#591326;font-weight:600}
body.app-open .profile-card button{width:100%;margin-top:auto;background:#fff;border-color:#e4d9d8;color:#591326}
body.app-open .profile-history{margin:28px 0}
body.app-open .profile-history>.small{margin:5px 0 0}
body.app-open .profile-history-grid{margin-top:17px}
body.app-open .profile-history-card .eyebrow{margin:0 0 8px}
body.app-open .profile-history-card h3{margin:0 0 7px;font-size:20px}
body.app-open .profile-history-card .record-card-meta{margin:0 0 13px}
body.app-open .profile-history-card .record-detail-facts dd{font-size:13px}
body.app-open .profile-history-card .record-detail-facts>div:last-child{padding-bottom:0}
@media(max-width:700px){body.app-open .profile-list-heading>button{width:100%}body.app-open .profile-history-grid{grid-template-columns:1fr}}

/* Saisies d'élevage : résultat ou intervention, puis date et compléments. */
body.app-open .aging-operation-notes{max-width:850px;margin:14px 0;padding:18px 22px;border:1px solid #e6ded9;border-radius:9px;background:#fffef9}
body.app-open .aging-operation-notes label{display:block;font-weight:600;color:#263c36}
body.app-open .aging-operation-notes textarea{width:100%;border-color:#cfcfc7}
@media(max-width:700px){body.app-open .aging-operation-notes{padding:17px}}

/* Suivi d'élevage : derniers résultats, courbes et historique du lot. */
body.app-open .aging-heading{margin-bottom:10px}
body.app-open .aging-intro{max-width:760px;margin:0 0 21px;color:#607066}
body.app-open .aging-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-width:850px;margin:19px 0}
body.app-open .aging-summary-card{padding:21px}
body.app-open .aging-summary-card .eyebrow{margin:0 0 8px}
body.app-open .aging-summary-card h3{margin:0;color:#4d5e52;font:600 13px Arial,sans-serif}
body.app-open .aging-summary-card>p:last-child{margin:11px 0 0;color:#591326;font:normal 36px Georgia,serif}
body.app-open .aging-main-actions,body.app-open .aging-tools{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
body.app-open .aging-main-actions button:not(.module-primary),body.app-open .aging-tools button{background:#fffef9;border-color:#e4dad6;color:#591326;font-weight:600}
body.app-open .aging-next{max-width:850px;margin:19px 0 28px}
body.app-open .aging-next button{margin:17px 0 0;background:#fff;border-color:#c9d6c3;color:#365443;font-weight:600}
body.app-open .aging-results,body.app-open .aging-trends,body.app-open .aging-history{margin:27px 0}
body.app-open .aging-result-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
body.app-open .aging-result-card .eyebrow{margin:0 0 9px}
body.app-open .aging-result-value{margin:0;color:#591326;font:normal 32px Georgia,serif}
body.app-open .aging-result-value span{font:normal 15px Arial,sans-serif;color:#627168}
body.app-open .aging-result-card .record-card-meta{margin:11px 0 0}
body.app-open .aging-charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),550px));gap:13px;margin:17px 0}
body.app-open .aging-charts .reading-chart{padding:21px;background:#fffef9;border:1px solid #e0e5d9;border-radius:9px}
body.app-open .aging-charts .reading-chart h3{margin:0;font-size:20px}
body.app-open .aging-charts .reading-chart .harvest-value{margin:10px 0 7px;font-size:26px}
body.app-open .aging-history>.small{margin:6px 0 0}
body.app-open .aging-history-grid{margin-top:15px}
body.app-open .aging-history-card .eyebrow{margin:17px 0 7px}
body.app-open .aging-history-card h3{font-size:21px}
body.app-open .aging-history-card>p:not(.eyebrow){overflow-wrap:anywhere}
body.app-open .aging-record-value{color:#591326;font-size:21px;font-weight:600}
body.app-open .aging-history-card .record-card-meta{margin-top:auto;padding-top:12px}
body.app-open .aging-history-card.cancelled{opacity:.78}
body.app-open .aging-document-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:13px;padding-top:12px;border-top:1px solid #eee9e5;overflow-wrap:anywhere}
body.app-open .aging-document-links a{color:#591326;font-size:13px}
body.app-open .aging-document-links button{background:#fff;border-color:#e4dad6;color:#591326;font-size:12px}
body.app-open .aging-history-card .aging-cancel-action{margin-top:13px}
@media(max-width:700px){body.app-open .aging-summary-grid{grid-template-columns:1fr 1fr;gap:8px}body.app-open .aging-summary-card{padding:16px}body.app-open .aging-summary-card>p:last-child{font-size:29px}body.app-open .aging-main-actions,body.app-open .aging-tools{display:grid;grid-template-columns:1fr 1fr}body.app-open .aging-main-actions button,body.app-open .aging-tools button{min-width:0;padding-inline:7px;font-size:12px}}
@media(max-width:380px){body.app-open .aging-main-actions,body.app-open .aging-tools{grid-template-columns:1fr}body.app-open .aging-summary-card h3{font-size:12px}}

/* Mise en bouteille : stock, fiche et saisies. */
body.app-open .bottle-toolbar{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 16px}
body.app-open .bottle-toolbar button{margin:0;background:#fffef9;border-color:#d9ded3;color:#405a49}
body.app-open .bottle-heading{margin-top:16px}
body.app-open .bottle-stock-section,body.app-open .bottle-list-section{margin:26px 0}
body.app-open .bottle-stock-section>h3,body.app-open .bottle-list-heading h3{margin:0 0 14px}
body.app-open .bottle-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}
body.app-open .bottle-metric{min-width:0;padding:20px 22px}
body.app-open .bottle-metric .eyebrow{margin:0 0 10px}
body.app-open .bottle-metric strong{display:block;color:#591326;font:normal clamp(24px,3vw,34px) Georgia,serif;overflow-wrap:anywhere}
body.app-open .bottle-metric>p:last-child:not(.eyebrow){margin:9px 0 0;color:#667368;font-size:13px}
body.app-open .bottle-list-heading{display:flex;align-items:end;justify-content:space-between;gap:15px}
body.app-open .bottle-list-heading .eyebrow{margin:0 0 6px}
body.app-open .bottle-list-heading button{margin-bottom:14px;background:#fffef9;border-color:#d9ded3;color:#591326}
body.app-open .bottle-empty{padding:22px;background:#fffef9;border:1px solid #e0e5d9;border-radius:9px;color:#667368}
body.app-open .bottle-card-count{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;margin:8px 0 15px}
body.app-open .bottle-card-count strong{color:#591326;font-size:19px}
body.app-open .bottle-card-count span{color:#667368;font-size:13px}
body.app-open .bottle-list-card .record-card-meta{overflow-wrap:anywhere}
body.app-open .bottle-detail-metrics{margin:18px 0}
body.app-open .bottle-detail-actions{display:grid;gap:9px}
body.app-open .bottle-detail-actions button{margin:0}
body.app-open .bottle-form-context{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(0,1fr);max-width:850px;gap:12px;margin:20px 0}
body.app-open .bottle-form-context:has(>:only-child){grid-template-columns:minmax(0,320px)}
body.app-open .bottle-aging{padding:20px 22px}
body.app-open .bottle-aging .eyebrow{margin:0 0 8px}
body.app-open .bottle-aging>p:not(.eyebrow){margin:6px 0}
body.app-open .bottle-aging button{margin:12px 0 0;background:#fff;border-color:#d9ded3;color:#591326}
body.app-open .bottle-form .record-entry-section{max-width:850px}
body.app-open .bottle-form .bottle-more{max-width:850px;margin:15px 0}
body.app-open .bottle-form .bottle-more .record-entry-grid{margin-top:13px}
body.app-open .bottle-preview{max-width:850px;margin:17px 0;padding:17px 20px;border-left:4px solid #591326;border-radius:8px;background:#f1ece8;color:#591326;font-weight:600}
body.app-open .bottle-warning{max-width:850px}
@media(max-width:700px){body.app-open .bottle-toolbar{display:grid;grid-template-columns:1fr 1fr}body.app-open .bottle-toolbar button{min-width:0;padding:10px 7px;font-size:12px}body.app-open .bottle-form-context{grid-template-columns:1fr}body.app-open .bottle-list-heading{display:block}body.app-open .bottle-list-heading button{margin:0 0 14px}body.app-open .bottle-metrics{grid-template-columns:1fr 1fr;gap:8px}body.app-open .bottle-metric{padding:17px}body.app-open .bottle-metric strong{font-size:25px}}
@media(max-width:380px){body.app-open .bottle-metrics,body.app-open .bottle-toolbar{grid-template-columns:1fr}body.app-open .bottle-toolbar button{text-align:left}}

.vine-live-map{height:360px;margin:18px 0;border-radius:9px;background:#e7ecdf;overflow:hidden;z-index:0}.vine-live-map .leaflet-container{font-family:inherit}.vine-live-map .leaflet-control-attribution{font-size:11px}.vine-live-map .leaflet-control-zoom a{width:40px;height:40px;line-height:40px}.vine-map-card .vine-live-map svg{max-height:none;margin:0;background:none;width:auto;height:auto}.vine-map-card .vine-live-map .parcel-boundary{stroke:#fff;stroke-width:4;fill:#dceca3;fill-opacity:.18}.vine-map-card .vine-live-map .boundary-marker{stroke:#fff;fill:#294b39}.vine-map-card .vine-live-map .parcel-marker{stroke:#fff;fill:#244e3e}.vine-map-card .vine-live-map .photo-marker{stroke:#fff;fill:#761b34}@media(max-width:600px){.vine-live-map{height:300px;margin:14px 0}.vine-live-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}}

body.app-open .vine-info-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}body.app-open .vine-info-heading .eyebrow{margin:0}body.app-open .vine-info-heading button{min-height:44px;padding:10px 14px;border:1px solid #d7c9ca;border-radius:8px;background:#f8f3f1;color:#591326;font-weight:600;text-align:left}body.app-open .vine-info-heading button:hover,body.app-open .vine-info-heading button:focus-visible{background:#f0e7e4;border-color:#9c6c78}@media(max-width:650px){body.app-open .vine-info-heading{align-items:stretch}body.app-open .vine-info-heading button{width:100%}}

/* Équipe et droits : accès secondaire visible, sans cinquième entrée mobile. */
body.app-open .sidebar-team{display:block;min-height:44px;margin:0 0 4px;padding:8px 10px;border:0;background:transparent;color:#385845;font-size:13px;font-weight:600;text-align:left}
body.app-open .sidebar-team:hover{text-decoration:underline}
body.app-open .sidebar-team[hidden]{display:none}
body.app-open .today-team-entry,body.app-open .domain-team-entry{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:14px 0 20px;padding:21px 24px;border:1px solid #dce5d1;border-radius:10px;background:#e9efdf}
body.app-open .today-team-entry .eyebrow,body.app-open .domain-team-entry .eyebrow{margin:0 0 5px;color:#607052}
body.app-open .today-team-entry strong,body.app-open .domain-team-entry h3{display:block;margin:0;color:#253f35;font:normal 22px Georgia,serif}
body.app-open .today-team-entry p:last-child,body.app-open .domain-team-entry p:last-child{margin:7px 0 0;color:#526451;font-size:14px}
body.app-open .today-team-entry button,body.app-open .domain-team-entry button{flex:none;min-height:46px;padding:10px 15px;border:1px solid #9fb29b;border-radius:8px;background:#fffef9;color:#234334;font-weight:600}
body.app-open .team-role-guide{margin:22px 0;padding:23px}
body.app-open .team-role-guide h3,body.app-open .team-members h3,body.app-open .team-pending h3{margin:0 0 17px;color:#243e35;font:normal 24px Georgia,serif}
body.app-open .team-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.app-open .team-role-grid article{padding:15px;border:1px solid #e4e8dd;border-radius:8px;background:#f8f9f4}
body.app-open .team-role-grid strong{color:#234334}
body.app-open .team-role-grid p{margin:5px 0 0;color:#5c6a60;font-size:13px;line-height:1.5}
body.app-open .team-role-guide>.small{margin:15px 0 0}
body.app-open .team-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:30px 0 15px}
body.app-open .team-section-heading h3{margin:0}
body.app-open .team-section-heading span{color:#65736b;font-size:13px}
body.app-open .team-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.app-open .team-member-card{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:18px;border:1px solid #e0e5d9;border-radius:9px;background:#fffef9}
body.app-open .team-member-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:#e9eddd;color:#203e35;font:normal 17px Georgia,serif}
body.app-open .team-member-main{min-width:0;flex:1}
body.app-open .team-member-main h4{margin:0 0 4px;font-size:15px}
body.app-open .team-member-main p{margin:0 0 10px;color:#65736b;font-size:13px;overflow-wrap:anywhere}
body.app-open .team-role-badge{display:inline-block;padding:5px 8px;border-radius:6px;background:#e9efdf;color:#385845;font-size:12px}
body.app-open .team-role-badge.is-inactive{background:#f2e8e7;color:#743546}
body.app-open .team-member-card button{flex:none;min-height:44px;padding:9px 11px;border:1px solid #d7c9ca;border-radius:7px;background:#fff;color:#591326;font-size:13px}
body.app-open .team-pending{margin-top:22px}
body.app-open .team-invitation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid #e9e7df}
body.app-open .team-invitation strong{overflow-wrap:anywhere}
body.app-open .team-invitation p{margin:4px 0 0;color:#65736b;font-size:13px}
body.app-open .team-invitation button{flex:none;min-height:44px}
@media(max-width:850px){body.app-open .sidebar-team{display:none}}
@media(max-width:700px){body.app-open .today-team-entry,body.app-open .domain-team-entry{display:block;padding:18px}body.app-open .today-team-entry button,body.app-open .domain-team-entry button{width:100%;margin-top:14px}body.app-open .team-role-grid,body.app-open .team-member-grid{grid-template-columns:1fr}body.app-open .team-member-card{flex-wrap:wrap}body.app-open .team-member-card button{width:100%}body.app-open .team-invitation{align-items:stretch;flex-direction:column}body.app-open .team-invitation button{width:100%}}

body.app-open .sidebar-domain-edit,body.app-open .sidebar-team{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;text-decoration:none}
body.app-open .sidebar-domain-edit svg,body.app-open .sidebar-team svg{width:18px;height:18px;flex:none;color:#506b58}
body.app-open .sidebar-domain-edit span:nth-of-type(1),body.app-open .sidebar-team span:nth-of-type(1){flex:1}
body.app-open .sidebar-secondary-arrow{color:#718273;font-size:15px}
body.app-open .sidebar-domain-edit:hover,body.app-open .sidebar-team:hover,body.app-open .sidebar-domain-edit:focus-visible,body.app-open .sidebar-team:focus-visible{background:#eef2e8;border-radius:7px;text-decoration:none}
body.app-open .sidebar-domain-edit[hidden],body.app-open .sidebar-team[hidden]{display:none}

/* Tracé du contour sur le satellite IGN. */
.boundary-satellite{height:360px;border-radius:9px;overflow:hidden;z-index:0;background:#e7ecdf;margin:12px 0}
.boundary-satellite[hidden]{display:none}
.boundary-map-actions{display:flex;flex-wrap:wrap;gap:8px}
.boundary-map-actions button{min-height:44px}
.boundary-map-actions [aria-pressed="true"]{background:#761b34;color:#fff}
.boundary-satellite.drawing{cursor:crosshair}
.boundary-map-handle{display:grid;place-items:center;background:none;border:0;cursor:grab}
.boundary-map-handle span{display:grid;place-items:center;width:26px;height:26px;border:2px solid white;border-radius:50%;background:#294b39;color:white;font:bold 13px sans-serif;box-shadow:0 1px 5px #0006}
.boundary-map-handle:focus-visible{outline:3px solid #761b34;border-radius:50%}
.boundary-satellite .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
#boundary-fallback{margin:16px 0}
@media(max-width:600px){.boundary-satellite{height:300px}.boundary-map-actions button{width:100%}}

.parcel-detail-heading .parcel-edit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;flex-shrink:0;padding:10px 14px}.parcel-edit svg{width:20px;height:20px}.vine-position #vine-position-clear{margin-top:8px}.vine-position #vine-position-clear:disabled{opacity:.45}@media(max-width:600px){.parcel-detail-heading .parcel-edit{margin-left:auto}}

body.app-open .team-entry-heading h2,body.app-open .team-entry-heading p{overflow-wrap:anywhere}

.billing-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem 1rem}.billing-facts dd{margin:0;overflow-wrap:anywhere}.billing-actions,.billing-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1rem}.billing-actions button{min-height:44px}.billing-invoices{display:grid;gap:1rem}.billing-invoices h4{margin-top:0}.billing-invoices article{overflow-wrap:anywhere}@media(max-width:480px){.billing-facts{grid-template-columns:1fr;gap:.25rem}.billing-facts dd{margin-bottom:.6rem}.billing-actions button{width:100%}}

.member-module-access{display:grid;gap:14px;margin:20px 0}.member-module-access>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,1fr);gap:12px;align-items:center}.member-module-access label{margin:0}.member-module-access select{width:100%;min-height:44px}.record-entry-form .checkbox{display:flex;align-items:center;gap:12px}.record-entry-form .checkbox input[type=checkbox]{width:22px;height:22px;min-width:22px;padding:0;margin:0}@media(max-width:500px){.member-module-access>div{grid-template-columns:1fr;gap:6px}}

/* Droits de l’équipe : modules regroupés par niveau, trois groupes maximum. */
body.app-open .team-member-grid{align-items:start}
body.app-open .team-member-card{flex-direction:column;align-items:stretch}
body.app-open .team-member-main,body.app-open .team-invitation-main{width:100%;min-width:0}
body.app-open .team-member-main h3{margin:0 0 7px;font-size:20px}
body.app-open .team-member-card>button{align-self:flex-start;margin-top:auto}
body.app-open .team-invitation{align-items:flex-start;gap:20px;padding:16px 0}
body.app-open .team-invitation-main{flex:1}
body.app-open .team-invitation>button{margin:0}
body.app-open .team-access-summary{display:grid;gap:7px;margin:12px 0 0;padding:0;max-width:600px}
body.app-open .team-access-row{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:baseline;gap:10px;min-width:0;padding:0}
body.app-open .team-access-row dt{font-size:13px;font-weight:400;color:#203e35}
body.app-open .team-access-row dd{margin:0;min-width:0;font-size:13px;line-height:1.5;color:#385347;overflow-wrap:anywhere}
body.app-open .team-access-badge{display:inline-block;padding:4px 8px;border-radius:5px;font-size:12px;line-height:1.4;text-align:left}
body.app-open .team-access-badge.is-write{background:#e3eddf;color:#244a32}
body.app-open .team-access-badge.is-read{background:#e7eef3;color:#284c66}
body.app-open .team-access-badge.is-none{background:#eeeee9;color:#565d54}
body.app-open .team-access-admin{margin:14px 0 0}
body.app-open .team-access-admin p{margin:8px 0 0;font-size:13px;color:#526451}
@media(max-width:700px){body.app-open .team-invitation{gap:16px}body.app-open .team-member-card>button{align-self:stretch}body.app-open .team-access-summary{max-width:none;padding:0}body.app-open .team-access-row{grid-template-columns:124px minmax(0,1fr);gap:8px}body.app-open .team-access-badge{padding:4px 7px}}
