:root{--green:#146b66;--green2:#0d4d49;--gold:#a56b1f;--ink:#172422;--muted:#63706e;--bg:#f3f8f7;--line:#d3e2df;--white:#fff;--danger:#a12c2c;--shadow:0 14px 38px rgba(13,63,60,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#f8fbfa,#eef6f4);color:var(--ink);font:16px/1.55 Inter,Arial,sans-serif}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:99;background:#fff;padding:10px}.app-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;box-shadow:0 5px 22px rgba(13,63,60,.07)}.app-banner{display:block;background:#fff;text-align:center;padding:6px 20px;border-bottom:1px solid #edf3f2}.app-banner img{display:block;width:min(100%,1180px);height:auto;max-height:185px;object-fit:contain;margin:auto;filter:drop-shadow(0 8px 12px rgba(7,64,61,.14))}.nav-row{width:min(1240px,94vw);min-height:62px;margin:auto;display:flex;align-items:center;gap:22px}.site-return{color:var(--green2);font-weight:800;text-decoration:none;white-space:nowrap}.menu-toggle{display:none}nav{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav a{color:var(--ink);text-decoration:none;font-weight:720;padding:8px 2px;border-bottom:2px solid transparent}nav a:hover{color:var(--green);border-bottom-color:var(--gold)}.button,button{display:inline-block;border:0;border-radius:12px;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff!important;padding:12px 18px;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 7px 17px rgba(20,94,90,.18);transition:.18s transform,.18s box-shadow}.button:hover,button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(20,94,90,.24)}.nav-cta{padding:9px 14px!important;border-bottom:0!important}.secondary{background:#e5f0ee!important;color:var(--green2)!important;box-shadow:none}.danger{background:var(--danger)!important}main{width:min(1180px,92vw);margin:30px auto 64px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}.page-heading h1{margin:0}.back-home{order:2;color:var(--green2);font-weight:750;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 13px}h1{font-size:clamp(30px,5vw,50px);line-height:1.08}h2{margin-top:0;line-height:1.2}.hero,.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(20px,4vw,36px);box-shadow:var(--shadow)}.hero{background:linear-gradient(135deg,#fff,#e5f3f0);border-top:4px solid var(--green)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin:20px 0}.grid.compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stack{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.span-2{grid-column:1/-1}label{font-weight:750}input,select,textarea{width:100%;padding:12px 13px;border:1px solid #afc5c1;border-radius:10px;background:#fff;font:inherit;transition:.15s border,.15s box-shadow}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(20,107,102,.13)}small,.muted{color:var(--muted)}.notice{padding:13px 15px;border-radius:11px;background:#e3f2ef;color:var(--green2);margin:15px 0;border-left:4px solid var(--green)}.warning{background:#fff5df;color:#70460f;border-left-color:var(--gold)}.error{background:#fdeaea;color:#7b2020;border-left-color:var(--danger)}.metric{font-size:30px;font-weight:900;color:var(--green)}.result-card{background:linear-gradient(145deg,#fff,#edf7f5);border-top:4px solid var(--gold)}.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-tile{padding:16px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 6px 16px rgba(13,63,60,.07)}.result-tile b{display:block;font-size:25px;color:var(--green2)}.coefficient{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f2f7f6;border-radius:12px;padding:10px 12px}.coefficient strong{color:var(--gold);font-size:20px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.feature{position:relative;overflow:hidden}.feature:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(var(--green),var(--gold))}.icon-title{display:flex;align-items:center;gap:10px}.icon-title span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e2f1ee;font-size:20px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left}.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line)}.to-top{position:fixed;right:22px;top:52%;width:52px;height:52px;padding:0;border-radius:50%;font-size:25px;z-index:30;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s}.to-top.visible{opacity:1;pointer-events:auto;transform:none}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:20px 0}.admin-stats .card{padding:22px}.admin-stats span{display:block;color:var(--muted);font-weight:700}.admin-stats strong{display:block;font-size:36px;color:var(--green)}.badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#e8f4f1;color:var(--green2);font-size:13px;font-weight:800}.inline-form{display:flex;gap:8px;align-items:center}.inline-form select{min-width:120px}.password-field{display:flex;gap:.5rem;align-items:stretch}.password-field input{flex:1}.password-toggle{width:auto;min-width:6.5rem;padding:.65rem .85rem;background:#e7f1ef;color:#123b39!important;border:1px solid #9cb9b6;box-shadow:none}.food-results{display:grid;gap:10px}.food-row{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(85px,1fr));gap:12px;align-items:center;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:13px}.food-row strong{color:var(--green2)}
@media(max-width:850px){.app-header{position:static}.app-banner img{max-height:105px}.nav-row{padding:8px 0;flex-wrap:wrap}.menu-toggle{display:block;margin-left:auto;padding:9px 13px}.nav-row nav{display:none;width:100%;margin:0;flex-direction:column;align-items:stretch;padding:10px 0}.nav-row nav.open{display:flex}.nav-row nav a{padding:10px 12px;background:#f6faf9;border-radius:9px}.form-grid,.result-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.food-row{grid-template-columns:1fr 1fr}.food-row strong{grid-column:1/-1}.back-home{order:0}table{min-width:680px}.table-wrap table{min-width:680px}}
@media(max-width:520px){.app-banner{padding:4px 8px}.app-banner img{max-height:82px}.site-return{font-size:14px}.food-row{grid-template-columns:1fr}.actions .button,.actions button{width:100%;text-align:center}.password-field{align-items:stretch}.password-toggle{min-width:5.8rem;padding:.55rem}}

.eyebrow{font-size:13px;letter-spacing:.12em;font-weight:900;color:var(--gold)}.journey{margin-top:20px}.journey ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;counter-reset:steps;list-style:none;padding:0}.journey li{padding:16px;border-radius:14px;background:#f1f7f5;border:1px solid var(--line)}.journey strong{display:block;color:var(--green2)}.profile-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}

/* Parcours utilisateur */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.centered{text-align:center}.card-link{display:block;color:inherit;text-decoration:none;min-width:0}.card-link h2{font-size:clamp(20px,2vw,27px);overflow-wrap:anywhere}.card-link strong,.text-link{color:var(--green);text-decoration:none;font-weight:850}.home-hero{padding-block:clamp(28px,5vw,58px)}.home-features .card{min-height:250px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin:20px 0}.action-grid .card{min-height:220px}.daily-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.daily-macros span{padding:15px;border-radius:14px;background:#f1f7f5;text-align:center;color:var(--muted)}.daily-macros b{display:block;color:var(--green2);font-size:22px}

/* Catalogue alimentaire */
.food-search{margin-bottom:30px}.search-bar{display:flex;gap:10px;margin-top:20px}.search-bar input{font-size:18px;padding:15px 17px}.quick-search{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px;color:var(--muted)}.quick-search a{padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--green2);text-decoration:none;font-weight:750}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.section-title h2{margin:0}.result-count{padding:7px 12px;border-radius:999px;background:#e2f1ee;color:var(--green2);font-weight:800}.food-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.food-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(13,63,60,.07)}.food-card-head{display:flex;justify-content:space-between;align-items:start;gap:14px}.food-card h3{margin:5px 0 12px;font-size:19px;line-height:1.3}.food-card-head>strong{white-space:nowrap;color:var(--green2);font-size:20px}.food-card-head small{font-size:13px}.food-category{font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--gold)}.macro-line{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #edf3f2;color:var(--muted);font-size:14px}.macro-line b{color:var(--ink)}.food-add-form{display:grid;grid-template-columns:110px minmax(150px,1fr) auto;gap:10px;align-items:end;margin-top:10px}.food-add-form label{font-size:13px}.food-add-form label:first-of-type{position:relative}.food-add-form label:first-of-type span{position:absolute;right:10px;bottom:11px;color:var(--muted)}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.category-card{display:grid;gap:5px;padding:20px;border-radius:18px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:var(--shadow);overflow:hidden}.category-card>img{width:92px;height:92px;object-fit:contain;filter:drop-shadow(0 9px 10px rgba(13,63,60,.2));transition:transform .18s}.category-card:hover>img{transform:translateY(-3px) scale(1.04)}.category-card strong{font-size:19px}.category-card small{color:var(--muted)}

/* Progression */
.progress-summary,.plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.summary-card,.plan-summary article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:0 8px 22px rgba(13,63,60,.06)}.summary-card span,.plan-summary span{display:block;color:var(--muted);font-weight:750}.summary-card strong,.plan-summary strong{display:block;color:var(--green2);font-size:28px;margin:5px 0}.progress-grid{grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr)}.weight-chart{width:100%;height:280px;color:var(--green);overflow:visible;background:linear-gradient(#f8fbfa,#eff7f5);border-radius:16px;padding:14px}.weight-chart circle{fill:var(--gold);stroke:#fff;stroke-width:1}.chart-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.recommendation{border-top:5px solid var(--green)}.recommendation-warning{border-top-color:var(--gold);background:#fffaf0}.empty-state{text-align:center;padding:35px}.empty-state>span{font-size:42px}.check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.check-row small{display:block}

/* Menus hebdomadaires */
.preference-tags{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.week-plan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.day-card{background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:0 9px 25px rgba(13,63,60,.07)}.day-head{padding:18px 22px;background:linear-gradient(135deg,var(--green2),var(--green));color:#fff}.day-head span{font-size:12px;text-transform:uppercase;letter-spacing:.1em}.day-head h2{margin:2px 0 0}.meal-line{padding:15px 20px;border-bottom:1px solid #edf3f2}.meal-line:last-child{border-bottom:0}.meal-line strong{color:var(--gold)}.meal-line p{margin:3px 0 0}.menu-intro{margin-bottom:22px}

@media(max-width:1100px){.nav-row{width:min(1320px,96vw);gap:12px}.nav-row nav{gap:10px}.nav-row nav a{font-size:14px}.progress-summary,.plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.food-cards,.week-plan,.progress-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.food-add-form{grid-template-columns:1fr 1fr}.food-add-form button{grid-column:1/-1}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.search-bar{flex-direction:column}.food-card-head{display:block}.food-card-head>strong{display:block;margin:8px 0}.food-add-form,.category-grid,.action-grid,.progress-summary,.plan-summary,.daily-macros{grid-template-columns:1fr}.week-plan{gap:12px}.summary-card strong,.plan-summary strong{font-size:24px}}

.meal-shortcuts{margin-bottom:24px}.shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shortcut-grid a{padding:14px;border:1px solid var(--line);border-radius:13px;background:#f4faf8;color:var(--green2);font-weight:850;text-decoration:none;text-align:center}.catalog-heading{margin-top:30px}.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:60;max-width:920px;margin:auto;padding:20px 24px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.24)}.cookie-banner p{margin:5px 0}.cookie-banner[hidden]{display:none}.legal-nav{margin:0 0 20px;display:flex;gap:8px;flex-wrap:wrap}.legal-nav a{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--green2);text-decoration:none;font-weight:800}.legal-section{margin-bottom:18px;scroll-margin-top:190px}.professional-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.professional-summary span{display:block;color:var(--muted);font-weight:750}.professional-summary strong{display:block;font-size:27px;color:var(--green2)}.access-form{display:grid;grid-template-columns:repeat(3,minmax(115px,1fr)) auto;gap:7px;align-items:center}
@media(max-width:850px){.shortcut-grid,.professional-summary{grid-template-columns:1fr 1fr}.access-form{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.shortcut-grid,.professional-summary,.access-form{grid-template-columns:1fr}.cookie-banner{left:8px;right:8px;bottom:8px}}
.client-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.client-card{padding:20px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#fff,#f1f8f6)}.client-card h3{margin:0}.client-metrics{display:flex;gap:10px;margin-top:15px}.client-metrics span{padding:9px 12px;border-radius:11px;background:#fff;border:1px solid var(--line);color:var(--muted)}.client-metrics b{color:var(--green2)}.case-tabs{position:sticky;top:172px;z-index:10;display:flex;gap:8px;flex-wrap:wrap;margin:18px 0;padding:10px;border-radius:15px;background:rgba(255,255,255,.95);border:1px solid var(--line);box-shadow:0 7px 20px rgba(13,63,60,.08)}.case-tabs a{padding:8px 12px;border-radius:999px;background:#e9f4f2;color:var(--green2);text-decoration:none;font-weight:800}.note-list,.message-thread{display:grid;gap:10px;max-height:520px;overflow:auto}.note-item,.program-card{padding:15px;border-radius:13px;background:#f5f9f8;border:1px solid var(--line)}.note-item p,.program-card p{margin:6px 0}.client-reply{padding:10px;border-left:3px solid var(--gold);background:#fff}.program-card{margin-bottom:11px}.message{max-width:88%;padding:12px 14px;border-radius:14px;background:#e8f3f1}.message.sent{margin-left:auto;background:#d8ece8}.message strong,.message small{display:block}.message p{margin:5px 0 0}.card,.food-card,.category-card,.day-card,.client-card,.summary-card,.result-tile,.shortcut-grid a{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card-link:hover,.food-card:hover,.category-card:hover,.day-card:hover,.client-card:hover,.summary-card:hover,.shortcut-grid a:hover{transform:translateY(-4px);border-color:#91b9b3;box-shadow:0 16px 34px rgba(13,63,60,.16)}.case-tabs a:hover{background:var(--green);color:#fff}@media(max-width:850px){.client-cards{grid-template-columns:1fr}.case-tabs{position:static}}@media(max-width:520px){.client-metrics{flex-direction:column}}


.dislike-panel{margin:22px 0;background:linear-gradient(145deg,#fff,#f1f8f6)}.dislike-results{display:grid;gap:8px;margin:14px 0}.dislike-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.dislike-row span,.dislike-row small{display:block}.exclusion-list{display:flex;gap:10px;flex-wrap:wrap}.exclusion-chip{display:flex;align-items:center;gap:9px;padding:9px 10px 9px 14px;border:1px solid #b7cfca;border-radius:999px;background:#edf7f5;color:var(--green2);font-weight:800}.exclusion-chip small{font-weight:500}.exclusion-chip form{display:inline}.exclusion-chip button{width:28px;height:28px;padding:0;border-radius:50%;box-shadow:none}.install-grid .card{border-top:4px solid var(--gold)}.step-number,.exercise-number{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,var(--green),var(--green2));color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(13,63,60,.2)}.exercise-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:center}.exercise-hero img{width:100%;max-height:330px;object-fit:contain;filter:drop-shadow(0 14px 20px rgba(13,63,60,.18))}.exercise-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.exercise-nav a{padding:9px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--green2);font-weight:800;text-decoration:none}.exercise-section{margin:38px 0;scroll-margin-top:190px}.exercise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px}.exercise-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(13,63,60,.08);transition:.2s transform,.2s box-shadow}.exercise-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(13,63,60,.15)}.exercise-card h3{margin:15px 0 5px}.exercise-card strong{color:var(--green)}.simple-session li{margin:10px 0;padding-left:6px}@media(max-width:760px){.exercise-hero{grid-template-columns:1fr}.exercise-hero img{max-height:240px}.dislike-row{align-items:stretch;flex-direction:column}.dislike-row button{width:100%}}
.exercise-title{align-items:center}.exercise-title img{width:150px;height:105px;object-fit:cover;border-radius:16px;border:3px solid #fff;box-shadow:0 10px 25px rgba(13,63,60,.16)}@media(max-width:520px){.exercise-title img{width:110px;height:82px}}
.exercise-directory{margin:28px 0}.exercise-directory h2{margin-top:0}.exercise-link-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.exercise-link-groups>div{padding:18px;border-radius:16px;background:#f1f8f6;border:1px solid var(--line)}.exercise-link-groups strong{display:block;margin-bottom:10px;color:var(--green2);font-size:18px}.exercise-link-groups>div>div{display:flex;flex-wrap:wrap;gap:7px}.exercise-link-groups a{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #c6d9d5;color:var(--green2);font-size:14px;font-weight:750;text-decoration:none}.exercise-link-groups a:hover{background:var(--green);color:#fff}.exercise-detail{scroll-margin-top:80px;position:relative;overflow:hidden}.exercise-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.exercise-motion{position:relative;width:74px;height:48px;border-radius:15px;background:linear-gradient(145deg,#edf8f6,#d7ede9);overflow:hidden}.exercise-motion i,.exercise-motion b{position:absolute;display:block;background:var(--green);border-radius:999px}.exercise-motion i{width:13px;height:13px;left:31px;top:7px;box-shadow:0 0 0 3px rgba(20,107,102,.12)}.exercise-motion b{width:8px;height:25px;left:34px;top:21px;transform-origin:top center}.motion-upper b{animation:nss-upper 1.5s ease-in-out infinite}.motion-lower b{animation:nss-lower 1.5s ease-in-out infinite}.motion-core b{animation:nss-core 1.8s ease-in-out infinite}.motion-mobility b{animation:nss-mobility 1.8s ease-in-out infinite}@keyframes nss-upper{50%{transform:rotate(-42deg)}}@keyframes nss-lower{50%{transform:translateY(8px) scaleY(.72)}}@keyframes nss-core{50%{transform:rotate(60deg)}}@keyframes nss-mobility{50%{transform:rotate(25deg) translateX(5px)}}.exercise-detail details{margin-top:15px;border-top:1px solid var(--line);padding-top:13px}.exercise-detail summary{cursor:pointer;color:var(--green2);font-weight:900;list-style:none}.exercise-detail summary::after{content:" +";float:right}.exercise-detail details[open] summary::after{content:" −"}.exercise-detail details ol{padding-left:20px}.exercise-detail details li{margin:8px 0}.exercise-cue{padding:10px 12px;border-radius:12px;background:#fff6e8;color:#714509}.exercise-back{display:inline-block;margin-top:10px;color:#60716e;font-size:13px;text-decoration:none}.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.program-card{padding:24px;border-radius:20px;background:linear-gradient(145deg,#fff,#eef7f5);border:1px solid var(--line);box-shadow:0 12px 28px rgba(13,63,60,.09)}.program-card>span{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--gold);color:#2e2211;font-weight:900;font-size:12px}.program-card h3{font-size:23px}.program-card li{margin:8px 0}.program-card p{color:#5c6b69;font-size:14px}@media(max-width:760px){.exercise-link-groups,.program-grid{grid-template-columns:1fr}.exercise-grid{grid-template-columns:1fr}.exercise-detail{padding:19px}.exercise-directory{padding:18px}}
.mobile-dock{display:none}.scanner-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:18px;align-items:start}.scanner-window{position:relative;overflow:hidden;min-height:290px;border:2px dashed #8bb8b2;border-radius:20px;background:linear-gradient(145deg,#e8f4f2,#fff);display:grid;place-items:center}.scanner-window video{width:100%;max-height:420px;object-fit:cover}.scanner-frame{position:absolute;width:min(76%,330px);height:130px;border:3px solid #fff;border-radius:17px;box-shadow:0 0 0 999px rgba(5,35,33,.32),0 0 24px rgba(255,255,255,.55);pointer-events:none}.barcode-result img{width:120px;height:120px;object-fit:contain;border-radius:14px;background:#fff}.barcode-product{display:flex;gap:16px;align-items:center}.barcode-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.barcode-macros span{padding:12px;border-radius:12px;background:#eff7f5;text-align:center}.barcode-macros b{display:block;color:var(--green2);font-size:20px}

/* En-tête compact : la bannière disparaît dès que la page défile. */
.app-banner{padding:4px 20px;max-height:132px;overflow:hidden;opacity:1;transition:max-height .22s ease,padding .22s ease,opacity .18s ease}
.app-banner img{width:min(100%,920px);max-height:122px}
.nav-row{width:min(1380px,97vw);min-height:54px;gap:12px}
.nav-row nav{gap:8px}.nav-row nav a{font-size:13px;padding:7px 2px}.mobile-menu-brand{display:none}.nav-account{color:var(--green)!important;font-weight:900!important}.nav-refresh{color:var(--green)!important;font-weight:850!important}
.app-header.is-compact .app-banner{max-height:0;padding-top:0;padding-bottom:0;opacity:0;border-bottom:0}
.app-header.is-compact .nav-row{min-height:48px}
@media(max-width:850px){body{padding-bottom:72px}.app-header{position:sticky;top:0}.app-banner{padding:2px 8px}.app-banner img{max-height:62px}.nav-row{min-height:46px;padding:5px 0}.site-return{max-width:45vw;overflow:hidden;text-overflow:ellipsis}.mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:55;margin:0;padding:7px 4px max(7px,env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -8px 28px rgba(13,63,60,.14);backdrop-filter:blur(12px)}.mobile-dock a{display:grid;gap:1px;place-items:center;color:var(--green2);text-decoration:none;font-size:11px;font-weight:850}.mobile-dock span{font-size:21px;line-height:1}.to-top{top:auto;bottom:86px;right:12px}.cookie-banner{bottom:82px}.scanner-shell{grid-template-columns:1fr}main{width:min(94vw,720px);margin:18px auto 36px}.page-heading{margin-bottom:14px}.page-heading h1{font-size:clamp(28px,9vw,40px)}.hero,.card{padding:20px;border-radius:17px}.grid{gap:12px;margin:14px 0}.actions{gap:8px}.actions .button,.actions button{min-height:46px}.scanner-window{min-height:240px}}

/* Navigation mobile et tablette : panneau de marque plus lisible et plus tactile. */
@media(max-width:1050px){
 .nav-row{padding:7px 0;flex-wrap:wrap;column-gap:14px}
 .menu-toggle{display:block;box-sizing:border-box;flex:0 0 38px;width:38px;height:38px;min-width:38px;margin-left:auto;padding:0;overflow:hidden;font-size:0;background:rgba(219,240,236,.76);border:1px solid rgba(20,107,102,.32);color:var(--green2)!important;box-shadow:0 6px 16px rgba(13,77,73,.12);backdrop-filter:blur(7px)}.menu-toggle::after{content:"☰";font-size:20px;line-height:1}
 .nav-row nav{display:none;width:100%;margin:0;padding:14px;border:1px solid #c9dfdb;border-radius:18px;background:linear-gradient(155deg,#fbfdfc,#eef7f5);box-shadow:0 16px 34px rgba(8,58,55,.16);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .nav-row nav.open{display:grid;animation:nssMenuIn .2s ease-out}
 .nav-row nav .mobile-menu-brand{display:block;grid-column:1/-1;width:min(230px,70vw);max-height:82px;object-fit:contain;margin:0 auto 8px;filter:drop-shadow(0 6px 10px rgba(7,64,61,.13))}
 .nav-row nav a{display:flex;align-items:center;min-height:46px;padding:11px 13px;border:1px solid #c9dfdb;border-radius:11px;background:rgba(255,255,255,.92);color:#173f3c!important;font-weight:800;box-shadow:0 5px 14px rgba(13,77,73,.06)}
 .nav-row nav a:hover,.nav-row nav a:focus,.nav-row nav a:active{border-color:#74aaa4;background:#e8f4f2;color:var(--green2)!important;transform:translateY(-1px)}
 .nav-row nav .nav-refresh{border-style:dashed;background:#f5faf9}.nav-row nav .nav-account{background:#e3f2ef;border-color:#8fbdb7}.nav-row nav .nav-cta{background:#fff9ef!important;color:#86570f!important;border-color:#d8b77f!important}
}
@media(max-width:560px){.nav-row nav{grid-template-columns:1fr}.nav-row nav a{min-height:43px}}
@keyframes nssMenuIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}

/* Scanner : aperçu plein cadre, guide animé et résultat Quagga superposé. */
.scanner-window>video,.scanner-window>canvas{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:1}
.scanner-window canvas.drawingBuffer{z-index:2}
.scanner-frame{z-index:4;display:flex;align-items:flex-end;justify-content:center}
.scanner-frame[hidden]{display:none!important}
.scanner-frame span{transform:translateY(45px);padding:7px 11px;border-radius:999px;background:rgba(6,48,45,.86);color:#fff;font-size:13px;font-weight:800;text-align:center}
.scanner-frame:after{content:"";position:absolute;left:7%;right:7%;top:50%;height:3px;border-radius:9px;background:#e5c17f;box-shadow:0 0 16px #fff;animation:nssScanLine 1.6s ease-in-out infinite}
@keyframes nssScanLine{0%,100%{transform:translateY(-45px);opacity:.55}50%{transform:translateY(45px);opacity:1}}
@media(max-width:850px){.app-banner{padding:1px 8px;max-height:58px}.app-banner img{max-height:54px}.nav-row{min-height:43px;padding:4px 0}.app-header.is-compact .nav-row{min-height:42px}}
@media(max-width:520px){.barcode-product{align-items:flex-start}.barcode-result img{width:86px;height:86px}.barcode-macros{grid-template-columns:repeat(2,1fr)}}
.professional-visual{padding:0;overflow:hidden}.professional-visual img{width:100%;height:230px;object-fit:cover;display:block}.professional-visual>div{padding:24px}
.auth-card{max-width:680px;margin-inline:auto}.auth-links{display:flex;gap:8px 18px;flex-wrap:wrap}.verification-choice{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f7fbfa}.verification-choice label{display:inline-flex;gap:7px;align-items:center;margin:8px 18px 4px 0}.verification-choice input{width:auto}.account-summary{margin-bottom:18px}.account-grid{align-items:start}.public-presence{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 auto 14px;padding:8px 14px;width:max-content;max-width:100%;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.1)}.presence-dot{width:9px;height:9px;border-radius:50%;background:#74e1a5;box-shadow:0 0 0 5px rgba(116,225,165,.13)}.public-presence small{color:#dcecea}

/* Commandes plus légères et liens cohérents avec l'identité visuelle. */
.button,button{border:1px solid #9fc9c3;background:linear-gradient(145deg,rgba(247,252,251,.96),rgba(216,237,233,.94));color:#0d5c57!important;box-shadow:0 7px 18px rgba(13,77,73,.1)}
.button:hover,button:hover{border-color:#6daaa3;background:linear-gradient(145deg,#fff,#cae8e3);box-shadow:0 10px 23px rgba(13,77,73,.15)}
.secondary{background:rgba(248,252,251,.9)!important}.danger{border-color:#d4a3a3!important;background:#fff1f1!important;color:#8b2929!important}.nav-cta{background:rgba(231,244,241,.82)!important;color:#0d5c57!important}
main a:not(.button):not(.back-home):not(.category-card):not(.food-card):not(.feature){color:#0d6e67;text-decoration-color:rgba(13,110,103,.38);text-underline-offset:3px}
.auth-links a{font-weight:750}.to-top{background:rgba(224,241,238,.92);color:#0d5c57!important;border-color:#91bdb7}

@media(max-width:850px){
 .public-presence{position:fixed;left:10px;bottom:82px;z-index:54;margin:0;max-width:calc(100vw - 76px);padding:8px 12px;border:1px solid #a8cec8;background:rgba(250,253,252,.94);color:#174844;box-shadow:0 9px 25px rgba(13,63,60,.16);backdrop-filter:blur(9px);touch-action:none;cursor:grab;user-select:none}
 .public-presence small{color:#506966}.public-presence.is-dragging{cursor:grabbing;box-shadow:0 14px 34px rgba(13,63,60,.25)}
}

/* Compte, saisie alimentaire libre et graphiques de progression. */
.account-status{padding:12px 14px;border-radius:13px;background:#edf8f4;border:1px solid #b7d9cf;color:#185b50}
.account-danger-zone{margin-top:22px;border-color:#e1b7b7;background:linear-gradient(145deg,#fff,#fff7f7)}.account-danger-zone .error{margin-bottom:18px}.account-danger-zone form{max-width:720px}.admin-create-account{margin-top:22px}.admin-create-account form{margin-top:22px}.admin-create-account>form>button{justify-self:start}
.account-save-feedback{margin:16px 0 0}.admin-account-card{scroll-margin-top:280px}
.nutrition-target{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:15px 0;padding:12px 15px;border:1px solid #b8d7d1;border-radius:14px;background:rgba(255,255,255,.72);color:#244b47}
.manual-food{margin:0 0 28px;scroll-margin-top:90px}.manual-food>summary{cursor:pointer;font-size:20px;font-weight:900;color:var(--green2)}.manual-food[open]>summary{margin-bottom:12px}.manual-food summary::after{content:" +";float:right}.manual-food[open] summary::after{content:" −"}
.chart-grid line{stroke:#dbe8e5;stroke-width:.6}.weight-chart .goal-line{stroke:#a56b1f;stroke-width:2;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.weight-chart.progress{color:#16785f}.weight-chart.regression{color:#b33a3a}.weight-chart.neutral{color:#a56b1f}.trend-key{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:9px;font-size:13px;font-weight:800}.trend{padding:5px 10px;border-radius:999px}.trend.progress{background:#e2f4eb;color:#126149}.trend.regression{background:#fde9e9;color:#922d2d}.trend.neutral{background:#fff3dc;color:#7b5116}.target-key{color:#7b5116}.goal-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}

/* Fiches d'exercices en trois étapes */
.delavier-hero{grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);align-items:center}.exercise-image-button{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:1px solid #c5ddd8;border-radius:18px;background:#fff;cursor:zoom-in}.exercise-image-button img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#f8fbfa}.exercise-image-button span{position:absolute;right:12px;bottom:12px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--green2);font-size:13px;font-weight:850;box-shadow:0 5px 18px rgba(12,59,56,.14)}.starter-program{margin:22px 0}.program-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.program-steps article{padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fff,#eff8f6)}.program-steps span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;margin-bottom:10px;background:#dcefeb;color:var(--green2);font-weight:900}.program-steps strong{font-size:18px}.program-steps p{margin:5px 0 0;color:var(--muted)}.exercise-library{margin:34px 0}.delavier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.delavier-card{overflow:hidden;border:1px solid var(--line);border-radius:21px;background:#fff;box-shadow:0 12px 30px rgba(13,63,60,.08)}.delavier-card>.exercise-image-button{border:0;border-radius:0;border-bottom:1px solid var(--line);box-shadow:none}.delavier-card-body{padding:21px}.delavier-card h3{margin:4px 0 7px;font-size:24px}.exercise-category{margin:0;color:var(--gold);font-size:12px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.exercise-dose{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.exercise-dose span{padding:10px 8px;border-radius:12px;background:#eff7f5;color:var(--muted);font-size:12px;text-align:center}.exercise-dose b{display:block;margin-bottom:2px;color:var(--green2);font-size:17px}.delavier-card details{border-top:1px solid var(--line);padding-top:13px}.delavier-card summary{cursor:pointer;color:var(--green2);font-weight:900}.delavier-card ol{padding-left:22px}.exercise-cue{padding:12px;border-left:3px solid var(--gold);border-radius:8px;background:#fff8eb}.book-reference{margin-top:26px;background:linear-gradient(145deg,#fff,#edf7f5)}.exercise-lightbox{width:min(1180px,94vw);max-height:92vh;padding:18px;border:0;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.35)}.exercise-lightbox::backdrop{background:rgba(4,31,29,.78);backdrop-filter:blur(4px)}.exercise-lightbox img{display:block;width:100%;max-height:78vh;object-fit:contain}.exercise-lightbox p{margin:10px 48px 0 0;font-weight:850}.lightbox-close{position:absolute;right:13px;top:13px;z-index:2;width:42px;height:42px;padding:0;border-radius:50%;font-size:28px}
/* Administration lisible */
.admin-section-heading,.admin-account-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.admin-section-heading h2,.admin-account-head h3{margin:0}.admin-count{padding:7px 12px;border-radius:999px;background:#e5f3f0;color:var(--green2);font-weight:850;white-space:nowrap}.admin-account-list{display:grid;gap:16px;margin-top:20px}.admin-account-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f1f8f6);box-shadow:0 7px 20px rgba(13,63,60,.06)}.admin-account-tags{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.admin-account-tags span{padding:5px 9px;border:1px solid #c7dfda;border-radius:999px;background:#fff;color:#315c58;font-size:12px;font-weight:800}.admin-account-tags .is-ok{background:#e5f6ed;color:#146044}.admin-account-tags .is-waiting{background:#fff4df;color:#805611}.admin-account-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.admin-control-grid{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:12px}.admin-password-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;margin-top:14px}.admin-password-row small{display:block;color:var(--muted);font-weight:500}.owner-account{margin-top:16px;padding:15px;border-radius:14px;background:#edf7f5}.owner-account p{margin:5px 0 12px}.professional-review{margin-top:20px}.professional-review-list{display:grid;gap:10px}.professional-review-list article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfa}.professional-review-list small{display:block;color:var(--muted)}.professional-action{display:flex;gap:8px;align-items:center}.professional-action select{min-width:130px}
@media(max-width:1050px){.delavier-hero{grid-template-columns:1fr}.program-steps,.admin-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-row{width:min(1720px,97vw)}}
@media(max-width:760px){.delavier-grid,.program-steps,.admin-control-grid{grid-template-columns:1fr}.admin-section-heading,.admin-account-head,.professional-review-list article{display:block}.admin-account-tags{justify-content:flex-start;margin-top:10px}.admin-password-row{grid-template-columns:1fr}.admin-password-row>button{width:100%}.professional-action{margin-top:12px}.exercise-dose{grid-template-columns:1fr}.exercise-image-button span{font-size:11px}.delavier-card-body{padding:17px}}

/* Validation explicite du scan et animation légère des mouvements */
.barcode-validation{margin-top:18px;padding:16px;border:1px solid #a8d3cc;border-radius:16px;background:linear-gradient(145deg,#f8fcfb,#e8f5f2)}.barcode-validation p{margin-top:0}.barcode-validation .actions{margin-bottom:0}#add-product-form[hidden],.barcode-validation[hidden]{display:none!important}
.exercise-animation{width:min(100%,280px);aspect-ratio:16/27;margin:16px auto 10px;border:1px solid var(--line);border-radius:16px;background-image:var(--exercise-frame);background-repeat:no-repeat;background-size:300% 100%;background-position:0 0;box-shadow:0 10px 24px rgba(13,63,60,.1);animation:nssExerciseFrames 5.4s steps(1,end) infinite}.animation-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.animation-legend span{padding:7px 4px;border-radius:9px;background:#eff7f5;color:var(--green2);font-size:11px;font-weight:850;text-align:center}.exercise-tempo{padding:12px 14px;border-radius:12px;background:linear-gradient(145deg,#f6fbfa,#e8f4f1);line-height:1.55}.delavier-card details:not([open]) .exercise-animation{animation-play-state:paused}
.exercise-video-loop{display:block;width:min(100%,360px);height:auto;aspect-ratio:4/7;margin:16px auto 10px;border:1px solid var(--line);border-radius:16px;background:#f8fbfa;object-fit:cover;box-shadow:0 10px 24px rgba(13,63,60,.1)}
.movement-phases{display:grid;gap:9px;margin:15px 0}.movement-phases article{padding:12px 14px;border:1px solid #cfe3df;border-radius:13px;background:linear-gradient(145deg,#fff,#edf7f5)}.movement-phases b{display:block;color:var(--green2);font-size:15px}.movement-phases p{margin:5px 0 0;line-height:1.55}.exercise-warning{margin:12px 0;padding:12px 14px;border-left:3px solid var(--gold);border-radius:10px;background:#fff7e9;color:#694718;line-height:1.5}
@keyframes nssExerciseFrames{0%,28%{background-position:0 0}33%,61%{background-position:50% 0}66%,100%{background-position:100% 0}}
@media(prefers-reduced-motion:reduce){.exercise-animation{width:100%;aspect-ratio:16/9;background-size:100% 100%;background-position:center;animation:none}.animation-legend{display:none}}

/* Dossier de suivi imprimable / PDF */
.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.report-toolbar h2{margin:4px 0}.report-cover{display:flex;align-items:center;gap:28px;background:linear-gradient(145deg,#fff,#e9f5f2)}.report-cover img{width:min(380px,42%);height:auto}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.report-section{margin:18px 0}.report-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-metrics span,.report-measurements span{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f4faf8}.report-metrics b,.report-measurements b{display:block;color:var(--green2);font-size:21px}.report-measurements{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.report-measurements small{display:block;color:var(--muted)}.report-chart{display:block;width:100%;height:auto;max-height:330px;border-radius:14px;background:linear-gradient(#f8fbfa,#edf7f5)}.report-chart line{stroke:#dbe8e5;stroke-width:1}.report-chart polyline{fill:none;stroke:var(--green);stroke-width:5;stroke-linejoin:round;stroke-linecap:round}.report-chart circle{fill:var(--gold);stroke:#fff;stroke-width:2}.report-chart-labels{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-weight:800}.report-disclaimer{padding:14px;border-left:3px solid var(--gold);background:#fff8eb}
@media(max-width:760px){.report-toolbar,.report-cover{display:block}.report-toolbar .actions{margin-top:14px}.report-cover img{width:100%;max-width:420px}.report-grid{grid-template-columns:1fr}.report-measurements{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body{background:#fff;color:#172b29}main{width:100%;max-width:none;margin:0;padding:0}.report-toolbar{margin:0 0 12mm}.report-cover,.card{box-shadow:none!important;break-inside:avoid}.report-section{break-inside:avoid;page-break-inside:avoid}.report-grid{gap:8mm}.report-disclaimer{font-size:10pt}@page{size:A4;margin:12mm}}

/* Récapitulatif personnel, protection et scanner intégré aux menus. */
.report-periods{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.report-periods .is-active{box-shadow:0 3px 0 var(--gold);pointer-events:none}.report-secure-save,.report-access-banner{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.75fr);align-items:center;gap:24px;margin:18px 0;background:linear-gradient(145deg,#fff,#e8f6f2);border:1px solid #c9e1dc}.report-secure-save form{display:grid;gap:12px}.report-secure-save label{font-weight:800}.report-secure-save select{margin-top:7px}.report-activity-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px}.report-activity-summary span{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f4faf8}.report-activity-summary b{display:block;color:var(--green2);font-size:20px}.report-access-banner{padding:22px;border-radius:22px;box-shadow:var(--shadow)}.report-access-banner h2{margin:3px 0 8px}.menu-scanner-dialog{width:min(980px,calc(100% - 24px));height:min(92vh,900px);padding:0;border:1px solid #bcd9d3;border-radius:22px;box-shadow:0 24px 70px #103f3a55;background:#f5faf8}.menu-scanner-dialog::backdrop{background:#0f312e99;backdrop-filter:blur(3px)}.menu-scanner-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #cfe3df;background:#fff}.menu-scanner-head h2{margin:2px 0}.menu-scanner-dialog iframe{display:block;width:100%;height:calc(100% - 92px);border:0;background:#f5faf8}
@media(max-width:760px){.report-secure-save,.report-access-banner{grid-template-columns:1fr}.report-activity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.report-periods .button{flex:1;text-align:center}.menu-scanner-dialog{height:96vh;width:calc(100% - 12px);border-radius:16px}.menu-scanner-head{align-items:flex-start}.menu-scanner-head h2{font-size:22px}.menu-scanner-dialog iframe{height:calc(100% - 84px)}}
@media print{.report-periods,.report-secure-save,.report-access-banner{display:none!important}}

/* Bibliothèque et dossiers protégés */
.secure-library-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:24px;align-items:center}.folder-state-demo{display:grid;grid-template-columns:auto 1fr;gap:9px 13px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.72)}.folder-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;font-size:28px}.folder-symbol.accessible,.secure-folder.accessible .folder-symbol{background:#dff4ec;color:#126149}.folder-symbol.locked,.secure-folder.locked .folder-symbol{background:#fff0d7;color:#8a5311}.folder-symbol.archived,.secure-folder.archived .folder-symbol{background:#e8eceb;color:#5d6c6a}.secure-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.secure-plans article{padding:19px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#edf7f5)}.secure-plans article.featured{border:2px solid #87bcb5;box-shadow:0 12px 30px rgba(13,63,60,.12)}.secure-plans span{color:var(--gold);font-size:11px;font-weight:950;letter-spacing:.08em}.secure-plans h3{margin:6px 0}.secure-workspace{display:grid;grid-template-columns:minmax(270px,.34fr) minmax(0,1fr);gap:18px;align-items:start}.secure-sidebar{position:sticky;top:170px}.secure-folder-list{display:grid;gap:8px}.secure-folder{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:15px;color:var(--ink);text-decoration:none;background:#fff}.secure-folder:hover,.secure-folder.is-selected{border-color:#76afa8;background:#edf8f5;transform:translateY(-1px)}.secure-folder .folder-symbol{flex:0 0 48px}.secure-folder b,.secure-folder small{display:block}.secure-folder small{margin-top:3px;color:var(--muted)}.secure-folder.locked{border-left:5px solid #c18a39}.secure-folder.archived{border-left:5px solid #8b9997;opacity:.8}.create-folder{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.create-folder>summary,.add-secure-item>summary{cursor:pointer;color:var(--green2);font-size:17px;font-weight:900}.create-folder form,.add-secure-item form{margin-top:15px}.secure-main{display:grid;gap:16px}.secure-folder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-top:6px solid #63a89d}.secure-folder-head.locked{border-top-color:#c18a39;background:linear-gradient(145deg,#fff,#fff8ea)}.secure-folder-head.archived{border-top-color:#8b9997;background:#f5f7f6}.secure-folder-head h2{display:flex;align-items:center;gap:10px}.secure-lock-panel{text-align:center;padding:34px}.big-lock{display:block;font-size:64px}.unlock-form{display:flex;align-items:end;justify-content:center;gap:10px;max-width:560px;margin:20px auto}.unlock-form label{flex:1;text-align:left}.future-auth{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.future-auth b{width:100%}.future-auth span{padding:7px 10px;border-radius:999px;background:#f0f6f5;color:var(--muted);font-size:12px;font-weight:800}.lock-now{display:flex;justify-content:flex-end}.add-secure-item{border-left:5px solid var(--green)}.secure-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.secure-item-head{display:flex;justify-content:space-between;gap:12px}.secure-item-head span{padding:5px 9px;border-radius:999px;background:#e4f3f0;color:var(--green2);font-size:12px;font-weight:900}.secure-item-head small{color:var(--muted)}
@media(max-width:900px){.secure-library-hero,.secure-workspace{grid-template-columns:1fr}.secure-sidebar{position:static}.secure-plans{grid-template-columns:1fr}.secure-items{grid-template-columns:1fr}}
@media(max-width:520px){.folder-state-demo{grid-template-columns:auto 1fr}.secure-folder-head{display:block}.secure-folder-head .actions{margin-top:12px}.unlock-form{display:grid}.scanner-frame{width:82%;height:112px}}
.exercise-index{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.exercise-index a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid #a9cfca;border-radius:999px;background:linear-gradient(145deg,#fff,#e6f3f0);color:var(--green2);font-weight:850;text-align:center;text-decoration:none;box-shadow:0 6px 16px rgba(13,77,73,.08);transition:.18s ease}.exercise-index a:hover,.exercise-index a:focus{border-color:#6fa9a2;background:#dcefeb;transform:translateY(-1px)}.delavier-card{scroll-margin-top:180px}
@media(max-width:760px){.exercise-nav,.exercise-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.exercise-nav a,.exercise-index a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 7px;text-align:center;font-size:13px;line-height:1.25}.delavier-card{scroll-margin-top:120px}}
.admin-subnav{position:sticky;top:196px;z-index:12;display:flex;justify-content:center;gap:8px;width:100%;margin:0 0 20px;padding:10px;border:1px solid #c6ded9;border-radius:16px;background:rgba(248,252,251,.94);box-shadow:0 9px 24px rgba(13,77,73,.09);backdrop-filter:blur(10px)}.admin-subnav a{padding:8px 12px;border:1px solid transparent;border-radius:999px;color:var(--green2);font-size:14px;font-weight:850;text-decoration:none}.admin-subnav a:hover,.admin-subnav a:focus{border-color:#9fc8c2;background:#e3f2ef}.admin-anchor{scroll-margin-top:280px}.admin-quick-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.admin-quick-actions form{margin:0}.admin-quick-actions button{min-height:42px}.admin-maintenance{margin-top:22px}.maintenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.maintenance-grid article{padding:18px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fff,#eff8f6)}.maintenance-grid h3{margin:0 0 6px}.maintenance-grid p{margin:0 0 14px;color:var(--muted)}
@media(max-width:850px){.admin-subnav{position:relative;top:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.admin-subnav a{display:flex;justify-content:center;text-align:center;background:#fff;border-color:#d4e6e2}.admin-anchor{scroll-margin-top:115px}.maintenance-grid{grid-template-columns:1fr}.admin-quick-actions{align-items:stretch;justify-content:stretch}.admin-quick-actions form,.admin-quick-actions button{width:100%}}

/* Téléassistance ponctuelle */
.remote-hero{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:center}.remote-safety{display:grid;gap:9px}.remote-safety span{padding:10px 13px;border:1px solid #bcd8d3;border-radius:12px;background:rgba(255,255,255,.78);color:var(--green2);font-weight:800}.remote-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.remote-steps article{padding:18px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#fff,#edf7f5);box-shadow:0 7px 20px rgba(13,63,60,.06)}.remote-steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dcefeb;color:var(--green2)}.remote-steps h3{margin:10px 0 4px}.remote-steps p{margin:0;color:var(--muted)}.remote-request-card{margin:20px 0}.remote-workspace{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:20px;align-items:start}.remote-list{position:sticky;top:215px;display:grid;gap:9px;padding:20px}.remote-ticket{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#f8fbfa;color:var(--ink);text-decoration:none}.remote-ticket>span{grid-row:1/3;color:var(--green);font-weight:900}.remote-ticket small{color:var(--muted)}.remote-ticket.is-selected{border-color:#6aa9a1;background:#e4f2ef;box-shadow:inset 4px 0 var(--green)}.remote-detail{display:grid;gap:16px}.remote-ticket-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.remote-status{padding:7px 11px;border-radius:999px;background:#e7f0ee;color:var(--green2);font-size:13px;font-weight:900;white-space:nowrap}.status-requested{border-color:#d9bc85!important}.status-prepared,.status-authorized{border-color:#6ba9a1!important}.status-in_progress{border-color:#38a66e!important}.status-ended,.status-expired,.status-cancelled,.status-refused{opacity:.75}.remote-identity ul{display:grid;gap:8px}.remote-consent{border:2px solid #d1a552;background:linear-gradient(145deg,#fff,#fff8e8)}.remote-live-control{border-left:5px solid var(--green)}.remote-live-control.is-live{background:#e4f5ed}.remote-cancel{display:flex;justify-content:flex-end}.remote-download{background:linear-gradient(145deg,#fff,#edf7f5)}.remote-rules{margin-top:20px}.remote-rules p{margin:0;padding:12px;border-radius:12px;background:#fff5f5;color:#742b2b}.secure-assistance-link{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0;background:linear-gradient(145deg,#fff,#edf7f5)}.secure-assistance-link h2,.secure-assistance-link p{margin-bottom:4px}
@media(max-width:900px){.remote-hero,.remote-workspace{grid-template-columns:1fr}.remote-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.remote-list{position:static}.secure-assistance-link{align-items:stretch;flex-direction:column}.secure-assistance-link .button{text-align:center}}
@media(max-width:560px){.remote-steps{grid-template-columns:1fr}.remote-ticket-head{display:block}.remote-status{display:inline-block;margin-top:10px}.remote-cancel button{width:100%}}
.secure-folder-settings{margin:14px 0}.secure-folder-settings summary,.secure-delete summary{cursor:pointer;color:var(--green2);font-weight:850}.secure-item-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.secure-item-meta span{display:grid;min-width:110px;padding:9px 12px;border:1px solid #c8dfda;border-radius:12px;background:#edf7f5;color:var(--green2)}.secure-item-meta b{font-size:11px;letter-spacing:.06em;text-transform:uppercase}.secure-delete{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}.secure-delete form{display:grid;gap:10px;margin-top:10px}.send-folder-code{margin:15px 0}.send-folder-code button{width:100%}
.secure-files-panel{border-left:5px solid #8abeb7}.subfolder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.subfolder-card{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f4faf8}.subfolder-card span{font-size:30px}.subfolder-card b,.subfolder-card small{display:block}.subfolder-card small{color:var(--muted)}.create-subfolder{margin:12px 0}.create-subfolder summary{cursor:pointer;color:var(--green2);font-weight:900}.create-subfolder form{margin-top:12px}.secure-drop-form{display:grid;gap:12px;margin-top:16px}.secure-dropzone{display:grid;place-items:center;gap:5px;min-height:190px;padding:24px;border:2px dashed #78aea7;border-radius:18px;background:linear-gradient(145deg,#fafffe,#e8f5f2);text-align:center;cursor:pointer;transition:.18s ease}.secure-dropzone:hover,.secure-dropzone.is-dragging{border-color:var(--gold);background:#fff9ec;transform:translateY(-2px)}.secure-dropzone input{position:absolute;width:1px;height:1px;opacity:0}.secure-dropzone .drop-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#dcefeb;color:var(--green2);font-size:34px}.secure-dropzone small,.secure-dropzone em{color:var(--muted);font-style:normal}.secure-file-list{display:grid;gap:9px;margin-top:18px}.secure-file-list>article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.secure-file-list b,.secure-file-list small{display:block;overflow-wrap:anywhere}.secure-file-list small{color:var(--muted)}.file-icon{font-size:28px}.report-main-actions{max-width:680px}.report-main-actions .button,.report-main-actions button{white-space:nowrap}
@media(max-width:760px){.subfolder-grid{grid-template-columns:1fr}.secure-file-list>article{grid-template-columns:auto minmax(0,1fr)}.secure-file-list>article>.actions{grid-column:1/-1}.report-main-actions{display:grid;grid-template-columns:1fr}.report-main-actions .button,.report-main-actions button{width:100%}}
.exercise-group{margin:28px 0 42px;scroll-margin-top:180px}.exercise-group-heading{margin:0 0 15px;padding:17px 20px;border-left:4px solid var(--gold);border-radius:0 15px 15px 0;background:linear-gradient(90deg,#e5f3f0,rgba(245,250,249,.35))}.exercise-group-heading .eyebrow{margin:0 0 3px}.exercise-group-heading h2{margin:0;font-size:clamp(25px,3vw,34px)}.exercise-group-heading p:last-child{margin:5px 0 0;color:var(--muted)}
@media(max-width:760px){.exercise-group{margin:24px 0 34px;scroll-margin-top:110px}.exercise-group-heading{padding:14px 15px}.exercise-group-heading h2{font-size:25px}}
.exercise-menu{position:sticky;top:var(--exercise-sticky-top,66px);z-index:24;display:flex;align-items:flex-start;gap:8px;margin:18px 0 26px;padding:10px;border:1px solid #c9dfda;border-radius:18px;background:rgba(249,253,252,.96);box-shadow:0 12px 30px rgba(13,63,60,.11);backdrop-filter:blur(10px)}.exercise-menu a,.exercise-menu summary{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border:1px solid transparent;border-radius:12px;color:var(--green2);font-weight:850;text-decoration:none;cursor:pointer;list-style:none;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.exercise-menu summary::-webkit-details-marker{display:none}.exercise-menu summary span{margin-left:7px;transition:transform .18s ease}.exercise-menu-group{position:relative}.exercise-menu-group[open] summary span{transform:rotate(180deg)}.exercise-menu a:hover,.exercise-menu summary:hover{border-color:#a9ccc5;background:#edf7f5}.exercise-menu a.is-active,.exercise-menu-group.is-active>summary{border-color:#82b9af;background:linear-gradient(145deg,#dff2ee,#f7fcfb);color:#084f4b;box-shadow:inset 0 -3px 0 var(--green),0 5px 14px rgba(13,63,60,.1)}.exercise-submenu{position:absolute;left:0;top:calc(100% + 7px);z-index:30;width:min(300px,82vw);padding:9px;border:1px solid #bedad4;border-radius:15px;background:rgba(255,255,255,.98);box-shadow:0 18px 42px rgba(13,63,60,.18)}.exercise-submenu a{justify-content:flex-start;min-height:39px;margin:3px 0;padding:8px 10px;font-size:13px}.delavier-card:target{border-color:#5da99e;box-shadow:0 0 0 4px rgba(81,164,153,.18),0 16px 36px rgba(13,63,60,.15)}
@media(max-width:1050px){.exercise-menu{top:58px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.exercise-menu-group{position:static}.exercise-submenu{left:10px;right:10px;top:auto;width:auto;margin-top:4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.exercise-menu{position:relative;top:auto;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.exercise-menu a,.exercise-menu summary{min-height:46px;padding:8px 6px;font-size:12px;text-align:center}.exercise-menu-group[open]{grid-column:1/-1}.exercise-submenu{position:static;display:grid;width:auto;margin-top:6px;padding:7px;grid-template-columns:1fr}.exercise-submenu a{justify-content:center;font-size:12px}.delavier-card{scroll-margin-top:24px}}

/* Navigation des exercices : même relief clair que les menus principaux du site. */
.exercise-menu{scroll-margin-top:90px;background:linear-gradient(145deg,rgba(234,247,244,.98),rgba(255,255,255,.98));border-color:#b8d7d2;box-shadow:inset 0 1px 0 #fff,0 12px 28px rgba(13,77,73,.10)}
.exercise-menu a,.exercise-menu summary{border:1px solid #b7d5d0;background:linear-gradient(145deg,#f8fcfb,#dceeea);color:#0b5651;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 5px 13px rgba(13,77,73,.08)}
.exercise-menu a:hover,.exercise-menu summary:hover{border-color:#78ada6;background:linear-gradient(145deg,#edf8f6,#cfe8e4);box-shadow:inset 0 1px 0 #fff,0 8px 17px rgba(13,77,73,.13)}
.exercise-menu a.is-active,.exercise-menu-group.is-active>summary{border-color:#5d9e96;background:linear-gradient(145deg,#cfeae5,#edf8f6);color:#074d48;box-shadow:inset 0 -3px 0 #168078,0 7px 17px rgba(13,77,73,.14)}
.exercise-menu summary::marker,.exercise-menu summary::-webkit-details-marker{display:none;content:""}.exercise-menu summary{list-style:none}
.exercise-submenu{background:linear-gradient(145deg,rgba(248,252,251,.99),rgba(222,239,235,.99));border-color:#a8ccc6;box-shadow:inset 0 1px 0 #fff,0 18px 38px rgba(13,77,73,.18)}
.exercise-submenu a{background:rgba(255,255,255,.72);box-shadow:none}.exercise-submenu a.is-active{background:linear-gradient(145deg,#d4ece8,#f5fbfa);box-shadow:inset 4px 0 0 #168078}
.exercise-menu-back{display:block;width:max-content;max-width:100%;margin:18px auto 0;padding:10px 16px;border:1px solid #82b8b1;border-radius:12px;background:linear-gradient(145deg,#e3f3f0,#f9fcfb);color:#095650;text-align:center;text-decoration:none;font-weight:850;box-shadow:inset 0 1px 0 #fff,0 7px 17px rgba(13,77,73,.10)}.exercise-menu-back:hover{background:linear-gradient(145deg,#d2ebe6,#f1f9f7);box-shadow:inset 0 -3px 0 #168078,0 9px 20px rgba(13,77,73,.14)}
@media(max-width:620px){.exercise-menu-back{width:100%}}
.food-menu-dialog{width:min(980px,94vw);max-height:90vh;padding:0;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fff,#e9f5f2);color:var(--ink);box-shadow:0 28px 80px rgba(7,54,51,.28)}.food-menu-dialog::backdrop{background:rgba(7,35,33,.52);backdrop-filter:blur(4px)}.food-menu-dialog-head{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px 24px 14px;background:rgba(248,252,251,.96);border-bottom:1px solid var(--line)}.food-menu-dialog-head h2,.food-menu-dialog-head p{margin-bottom:5px}.food-menu-dialog form{padding:20px 24px 26px}.food-menu-dialog .menu-item-editor{margin:16px 0}.food-menu-dialog .custom-grand-total{margin:16px 0}.food-menu-dialog [data-close-food-menu]{flex:none}@media(max-width:620px){.food-menu-dialog{width:96vw;max-height:88vh}.food-menu-dialog-head{padding:16px;align-items:center}.food-menu-dialog-head p:not(.eyebrow){display:none}.food-menu-dialog form{padding:16px}.food-menu-dialog .menu-item-editor{grid-template-columns:1fr}}

/* Repère de navigation et soutien : état visible sans vert trop foncé. */
#main-nav a.is-current{border:1px solid #8dbdb7!important;border-radius:9px!important;background:linear-gradient(145deg,#e5f4f1,#cfe8e4)!important;color:#0a5752!important;box-shadow:inset 0 -3px 0 #168078,0 5px 14px rgba(13,77,73,.09)!important;padding-left:9px!important;padding-right:9px!important}
#main-nav a[href$="support.php"]{border:1px solid #d5b16f!important;border-radius:9px!important;background:linear-gradient(145deg,#fffaf0,#f4e4c5)!important;color:#775016!important;padding-left:9px!important;padding-right:9px!important;box-shadow:0 5px 14px rgba(145,96,25,.09)!important}
.mobile-dock a.is-current{border-radius:10px;background:#e0f1ee;color:#07514d!important;box-shadow:inset 0 3px 0 #168078}
.app-update{position:fixed;right:18px;bottom:18px;z-index:10001;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,auto);align-items:center;gap:14px;width:min(780px,calc(100vw - 36px));max-width:calc(100vw - 36px);max-height:calc(100dvh - 36px);overflow-y:auto;box-sizing:border-box;padding:16px 18px;border:1px solid #9fc9c3;border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 18px 55px rgba(6,55,52,.24);backdrop-filter:blur(12px)}.app-update[hidden]{display:none}.app-update p{margin:3px 0 0;color:var(--muted)}.app-update-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0}.app-update button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.2}
@media(max-width:850px){.app-update{left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom));width:auto;max-width:none;max-height:calc(100dvh - 102px);grid-template-columns:1fr;align-items:stretch;padding:14px}.app-update-copy{min-width:0}.app-update-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.app-update button{padding:11px 9px;font-size:14px}}
@media(max-width:380px){.app-update-actions{grid-template-columns:1fr}}

/* Harmonisation v20 : titres lisibles et non masqués par l'en-tête */
.page-heading{align-items:center;margin-top:clamp(10px,2vw,22px);overflow:visible}.page-heading h1{max-width:100%;font-size:clamp(27px,3.4vw,42px);line-height:1.12;overflow-wrap:normal;word-break:normal;hyphens:none}.hero h1,.card h1{font-size:clamp(27px,3.2vw,40px);line-height:1.14}@media(max-width:850px){.page-heading{align-items:flex-start}.page-heading h1{font-size:clamp(26px,7.6vw,34px);line-height:1.14}.back-home{order:0}.app-banner img{max-width:92vw}}@media(max-width:480px){.page-heading h1{font-size:clamp(25px,7vw,31px)}}

/* Signature officielle NS&S et centrage mobile */



@media(max-width:850px){.nav-row{box-sizing:border-box;width:100%;max-width:100%;padding:8px 14px}.site-return{min-width:0}.menu-toggle{flex:0 0 auto}#main-nav{box-sizing:border-box;max-width:100%;overflow-x:hidden}.mobile-menu-brand{max-width:min(250px,78vw)!important;margin-inline:auto!important}}


/* En-tête assorti au pied de page clair */
.app-header,.app-banner{background:linear-gradient(145deg,#f8fcfb,#dceeea)!important}.app-header{border-bottom:2px solid #b6d5d0!important;box-shadow:inset 0 -5px 0 rgba(20,107,102,.08),0 7px 18px rgba(13,77,73,.08)!important}.app-banner{border-bottom-color:#b6d5d0!important}

/* Courbes de progression interactives : SVG local, tactile et sans dépendance externe. */
.interactive-chart-shell{position:relative;padding:16px 16px 10px;border:1px solid #c4ddd8;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(230,243,240,.78));box-shadow:inset 0 1px 0 #fff,0 12px 28px rgba(13,77,73,.08);overflow:hidden}
.chart-series-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 9px}
.chart-series-button{min-height:38px;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.82);box-shadow:none;font-size:13px;font-weight:850}
.chart-series-button.is-active{border-color:#68a8a1;background:linear-gradient(145deg,#def1ed,#c7e5e0);color:#07554f!important;box-shadow:inset 0 -3px 0 #1d8278}
.interactive-progress-chart{position:relative;width:100%;min-height:330px;touch-action:pan-y}
.progress-chart-svg{display:block;width:100%;height:auto;min-height:300px;overflow:visible}
.interactive-chart-grid line{stroke:#cfe0dd;stroke-width:1;stroke-dasharray:3 6}.interactive-chart-grid text,.interactive-date-labels text{fill:#607875;font-size:12px;font-weight:700}
.interactive-chart-area{pointer-events:none}.interactive-chart-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke-dashoffset .9s cubic-bezier(.2,.75,.2,1)}
.interactive-goal-line{stroke:#b27a26;stroke-width:2;stroke-dasharray:8 7;vector-effect:non-scaling-stroke}.interactive-goal-label{fill:#835514;font-size:12px;font-weight:900}
.interactive-hover-line{opacity:0;stroke:#376963;stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke;pointer-events:none;transition:opacity .15s}.interactive-hover-line.is-visible{opacity:.72}
.interactive-chart-points circle{fill:#fff;stroke:var(--series-color);stroke-width:4;vector-effect:non-scaling-stroke;cursor:pointer;transition:r .15s,fill .15s,filter .15s}.interactive-chart-points circle:hover,.interactive-chart-points circle:focus,.interactive-chart-points circle.is-active{r:8;fill:var(--series-color);filter:drop-shadow(0 3px 5px rgba(8,69,64,.24));outline:none}
.progress-chart-tooltip{position:absolute;z-index:4;display:grid;gap:2px;min-width:145px;padding:10px 12px;border:1px solid #a9cdc8;border-radius:13px;background:rgba(255,255,255,.97);color:#173f3c;box-shadow:0 12px 28px rgba(9,60,56,.18);pointer-events:none;transform:translate(13px,-112%);backdrop-filter:blur(8px)}.progress-chart-tooltip.align-right{transform:translate(calc(-100% - 13px),-112%)}.progress-chart-tooltip strong{font-size:12px;color:#667c79}.progress-chart-tooltip span{font-size:14px}.progress-chart-tooltip small{color:#536b68;font-size:11px}.progress-chart-tooltip[hidden]{display:none}
.chart-help{margin:3px 0 0;color:#637b78;font-size:12px;text-align:center}.chart-loading{display:grid;place-items:center;min-height:300px;margin:0;color:#5c7471;font-weight:750}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:700px){.interactive-chart-shell{margin-inline:-8px;padding:12px 5px 8px;border-radius:16px}.chart-series-controls{padding-inline:7px}.chart-series-button{flex:1;min-width:max-content}.interactive-progress-chart{min-height:270px}.progress-chart-svg{min-height:260px}.interactive-chart-grid text,.interactive-date-labels text{font-size:13px}.progress-chart-tooltip{min-width:132px;padding:8px 10px}.chart-help{padding:0 8px}}


/* Parcours bilan > mensurations > menus */
.save-step{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.save-status{width:100%;margin:0;color:var(--green2);font-weight:750}.measurement-form{max-width:1120px;margin-inline:auto}.measurement-form fieldset,.custom-week fieldset{margin:20px 0;padding:18px;border:1px solid #c5ddd9;border-radius:17px;background:rgba(241,249,247,.72)}.measurement-form legend,.custom-week legend{padding:0 8px;color:var(--green2);font-weight:900;font-size:18px}.paired-measurements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.custom-menu-builder{margin:22px 0;background:linear-gradient(145deg,rgba(239,248,246,.96),rgba(255,255,255,.98))}.custom-menu-builder summary{cursor:pointer;list-style:none;padding:4px}.custom-menu-builder summary::-webkit-details-marker{display:none}.custom-menu-builder summary span{display:flex;flex-direction:column}.custom-menu-builder summary strong{font-size:22px;color:var(--green2)}.custom-menu-builder summary small{margin-top:4px;color:var(--muted)}.custom-menu-builder[open] summary{padding-bottom:18px;border-bottom:1px solid var(--line)}.custom-menu-builder form{margin-top:18px}.custom-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.custom-week fieldset{margin:0}.custom-week textarea{min-height:66px}.day-card{background:rgba(255,255,255,.95)}.day-head{background:linear-gradient(135deg,rgba(221,243,239,.98),rgba(241,249,247,.98));color:var(--green2);border-bottom:1px solid #bfd9d4}.meal-line{background:rgba(247,251,250,.72)}.plan-summary article{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,248,246,.9))}
@media(max-width:760px){.paired-measurements,.custom-week{grid-template-columns:1fr}.save-step>*{width:100%;text-align:center}}

/* Menu calculé, validation des repas et suivi de l’activité */
.menu-item-editor{display:grid;grid-template-columns:.75fr .9fr 1.7fr .65fr auto;gap:12px;align-items:end;margin:18px 0}.food-lookup{position:relative}.food-suggestions{position:absolute;z-index:15;top:100%;left:0;right:0;max-height:300px;overflow:auto;padding:6px;background:#fff;border:1px solid #b9d4d0;border-radius:14px;box-shadow:0 14px 35px rgba(13,63,60,.16)}.food-suggestions button{display:flex;width:100%;flex-direction:column;align-items:flex-start;padding:10px 12px;margin:0 0 4px;background:rgba(239,248,246,.9);color:var(--green2);box-shadow:none}.food-suggestions button small{font-weight:500;color:var(--muted)}.custom-menu-items{display:grid;gap:10px;margin:16px 0}.custom-food-row{display:grid;grid-template-columns:1.4fr .8fr 1.2fr auto;gap:12px;align-items:center;padding:13px;border:1px solid #c7ddd9;border-radius:15px;background:rgba(255,255,255,.82)}.custom-food-row>div:first-child{display:flex;flex-direction:column}.custom-food-row label{display:flex;align-items:center;gap:6px}.custom-food-row input{max-width:100px}.custom-macros{display:flex;flex-direction:column}.custom-day-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:16px 0}.custom-day-totals span,.custom-grand-total{display:flex;flex-direction:column;padding:12px;border:1px solid #c7ddd9;border-radius:14px;background:rgba(238,248,246,.8)}.custom-grand-total{margin:16px 0;padding:17px}.custom-grand-total strong{font-size:25px;color:var(--green2)}.day-target{display:flex;flex-direction:column;margin-top:7px}.meal-line{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.meal-line.is-consumed{background:rgba(225,246,237,.86)}.meal-line.is-consumed>div:first-child{opacity:.72}.meal-macros{display:block;color:var(--green2);font-weight:700}.meal-check{min-width:145px}.meal-check.checked{background:rgba(46,139,87,.14);color:#19623c;border:1px solid rgba(46,139,87,.3);box-shadow:none}.day-remaining{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:15px 20px;background:linear-gradient(145deg,rgba(234,247,244,.94),rgba(255,255,255,.96));border-top:1px solid #c7ddd9}.day-remaining>span{display:flex;flex-direction:column;padding:9px;border:1px solid rgba(122,173,166,.25);border-radius:11px}.day-remaining>small,.day-exercise-link{grid-column:1/-1}.day-remaining .activity-credit b{color:#287c74}.day-exercise-link{font-weight:800;color:var(--green2)}.day-extra{padding:13px 20px;border-top:1px solid #dceae8}.day-extra summary{cursor:pointer;font-weight:800;color:var(--green2)}.extra-food-form{display:grid;grid-template-columns:.8fr 1.5fr .7fr auto;gap:10px;align-items:end;margin-top:12px}.extra-food-form label{position:relative}.activity-tracker{margin-bottom:22px;background:linear-gradient(145deg,rgba(238,248,246,.98),rgba(255,255,255,.98));border-color:#b9d8d3}.activity-tracker-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}.activity-burn{display:flex;min-width:240px;flex-direction:column;padding:17px;border:1px solid #a9cec8;border-radius:17px;background:rgba(255,255,255,.82)}.activity-burn strong{font-size:30px;color:var(--green2)}.activity-burn span{font-size:12px;color:var(--muted)}.activity-form{display:grid;grid-template-columns:.7fr 1.6fr;gap:15px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid #c9dfdc}.activity-form fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0;border:0}.activity-form legend{font-weight:800;margin-bottom:6px}.choice-tile{display:flex;gap:9px;padding:11px;border:1px solid #b9d4d0;border-radius:13px;background:rgba(255,255,255,.75)}.choice-tile input{width:auto}.choice-tile span{display:flex;flex-direction:column}.choice-tile small{color:var(--muted)}.activity-fields{grid-column:1/-1;display:grid;grid-template-columns:1.5fr .7fr .8fr 1fr;gap:12px;align-items:end}.activity-estimate{padding:13px;border:1px dashed #8bbab3;border-radius:13px;color:var(--green2);font-weight:700}.activity-form>button{grid-column:1/-1}.today-activities{margin-top:20px}.today-activities article{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:11px 0;border-top:1px solid #d7e7e4}.today-activities article>div{display:flex;flex-direction:column}.status-dot{width:12px;height:12px;border-radius:50%;background:#39a76d;box-shadow:0 0 0 5px rgba(57,167,109,.12)}.status-dot.rest{background:#c89a45;box-shadow:0 0 0 5px rgba(200,154,69,.14)}
@media(max-width:1000px){.menu-item-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.food-lookup{grid-column:1/-1}.custom-day-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.extra-food-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.menu-item-editor,.custom-food-row,.custom-day-totals,.extra-food-form,.activity-tracker-head,.activity-form,.activity-form fieldset,.activity-fields{grid-template-columns:1fr}.custom-food-row input{max-width:none}.meal-line{grid-template-columns:1fr}.meal-check{width:100%}.day-remaining{grid-template-columns:1fr}.activity-burn{min-width:0}.activity-fields,.activity-form>button{grid-column:auto}.food-suggestions{position:static}.today-activities article{grid-template-columns:auto 1fr}.today-activities article form{grid-column:2}}
.context-navigation{display:flex;justify-content:space-between;gap:10px;margin:-8px 0 22px}.removable-tags{display:flex;gap:8px;flex-wrap:wrap}.removable-tags .badge{display:inline-flex;align-items:center;gap:7px;padding:6px 7px 6px 11px}.removable-tags form{display:inline-flex}.removable-tags button{display:grid;place-items:center;width:25px;height:25px;padding:0;border-radius:50%;background:rgba(151,45,45,.1);border:1px solid rgba(151,45,45,.22);color:#8b2525!important;box-shadow:none}.restriction-list .profile-row button{width:36px;height:36px;padding:0;border-radius:50%;font-size:21px}.daily-guidance{margin:0 0 22px;padding:20px;border:1px solid #bad8d3;border-radius:20px;background:linear-gradient(145deg,rgba(237,248,245,.97),rgba(255,255,255,.98));box-shadow:var(--shadow)}.daily-guidance-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.daily-guidance-title h2{margin:0}.guidance-count{padding:7px 11px;border-radius:999px;background:rgba(166,107,31,.12);color:#79501a;font-weight:800}.guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.guidance-item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:12px;border:1px solid #c9dfdc;border-radius:14px;background:rgba(255,255,255,.8);color:var(--ink);text-decoration:none}.guidance-item>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:900}.guidance-item>div{display:flex;flex-direction:column}.guidance-item.alert>span{background:#fff0d4;color:#885710}.guidance-item.success>span{background:#dff3e7;color:#19623c}.guidance-item small{color:var(--muted)}
@media(max-width:700px){.context-navigation,.daily-guidance-title{align-items:stretch;flex-direction:column}.context-navigation .button{text-align:center}.guidance-grid{grid-template-columns:1fr}.guidance-count{text-align:center}}
.secure-library-hero{grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr)}.folder-state-demo{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.folder-category{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:10px;border:1px solid transparent;border-radius:14px;color:var(--ink);text-decoration:none;background:#fff;box-shadow:0 7px 18px rgba(15,70,65,.07);transition:.18s ease}.folder-category .folder-symbol{grid-row:1/3}.folder-category b,.folder-category small{display:block}.folder-category small{color:var(--muted);font-size:12px}.folder-category:hover,.folder-category.is-active{border-color:#7eb5ad;background:#edf8f5;transform:translateY(-2px);box-shadow:0 10px 22px rgba(15,70,65,.12)}.folder-category.locked:hover,.folder-category.locked.is-active{border-color:#d4aa68;background:#fff8e9}.folder-category.archived:hover,.folder-category.archived.is-active{border-color:#aab6b4;background:#f1f4f3}.secure-dropzone{min-height:230px;border-width:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 10px 26px rgba(13,63,60,.08)}
@media(max-width:520px){.folder-state-demo{grid-template-columns:1fr 1fr;padding:8px}.folder-category{grid-template-columns:1fr;justify-items:center;text-align:center}.folder-category .folder-symbol{grid-row:auto}.secure-dropzone{min-height:180px}}
.auto-password-wrap{position:relative;display:block;width:100%}.auto-password-wrap input{width:100%;padding-right:112px}.auto-password-toggle{position:absolute;right:7px;top:50%;display:inline-flex;align-items:center;justify-content:center;gap:5px;width:auto;min-width:96px;padding:8px 10px;transform:translateY(-50%);border:1px solid #9fc9c3;border-radius:11px;background:rgba(232,246,243,.94);color:var(--green2);font-size:13px;box-shadow:none}.auto-password-toggle:hover{transform:translateY(-50%);background:#dff2ee}.auto-password-toggle span{font-size:16px}.auto-password-toggle b{font-weight:850}

.human-check{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.8rem 0}.human-check small{color:#526864}.cf-turnstile{max-width:100%}
.nutrient-priority-panel{margin:0 0 22px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(233,247,243,.94));border-left:5px solid var(--gold)}.nutrient-priority-panel .section-title{align-items:flex-start}.nutrient-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.nutrient-choice-grid label{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #bdd8d3;border-radius:14px;background:rgba(255,255,255,.8);color:var(--green2);font-weight:800;cursor:pointer}.nutrient-choice-grid input{width:auto;accent-color:var(--green)}.nutrient-choice-grid label:has(input:checked){border-color:#5ea89e;background:#e2f3ef;box-shadow:inset 0 -3px 0 var(--green)}
@media(max-width:800px){.nutrient-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.nutrient-choice-grid{grid-template-columns:1fr}}

.version-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.version-grid span{display:flex;flex-direction:column;padding:12px;border:1px solid #bdd8d3;border-radius:13px;background:rgba(255,255,255,.76)}.version-grid small{color:var(--muted)}.version-grid strong{color:var(--green2)}@media(max-width:650px){.version-grid{grid-template-columns:1fr}}


/* Menus sur 1 à 4 semaines et fenêtres d’édition */
.menu-editor-dialog{width:min(760px,calc(100% - 24px));max-height:88vh;overflow:auto;border:1px solid rgba(18,111,103,.24);border-radius:24px;padding:24px;background:linear-gradient(145deg,#fff,#eef9f6);color:#102622;box-shadow:0 24px 70px rgba(7,58,53,.24)}
.menu-editor-dialog::backdrop{background:rgba(7,38,35,.48);backdrop-filter:blur(3px)}
.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-heading h2{margin:.2rem 0}.duration-select{display:flex;align-items:center;gap:8px;margin:0;padding:7px 10px;border:1px solid rgba(18,111,103,.24);border-radius:14px;background:rgba(255,255,255,.7)}.duration-select select{margin:0;min-width:125px}.week-selector{position:sticky;top:76px;z-index:12;display:flex;flex-wrap:wrap;gap:8px;padding:12px;margin:18px 0;background:rgba(239,249,247,.94);border:1px solid rgba(18,111,103,.18);border-radius:18px;backdrop-filter:blur(8px)}.week-selector a{padding:10px 16px;border-radius:14px;background:linear-gradient(145deg,#fff,#dff3ef);border:1px solid rgba(18,111,103,.2);color:#075f58;font-weight:800;text-decoration:none;box-shadow:0 5px 13px rgba(8,76,69,.08)}.week-selector a:hover,.week-selector a:focus{background:#ccece6;transform:translateY(-1px)}.week-heading{grid-column:1/-1;scroll-margin-top:155px;margin:26px 0 4px;padding:14px 18px;border-radius:18px;background:linear-gradient(135deg,#dff4ef,#fff);color:#075f58;border-left:5px solid #c99b3d}.meal-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.meal-actions form{margin:0}.meal-actions button{width:100%}.menu-editor-dialog textarea{width:100%;resize:vertical}.menu-editor-dialog .food-suggestions{position:relative;margin-top:6px;max-height:240px;overflow:auto}.menu-editor-dialog form>button:last-child{margin-top:14px}
@media(max-width:720px){.menu-editor-dialog{padding:18px;border-radius:20px}.dialog-heading{gap:10px}.dialog-heading h2{font-size:1.35rem}.week-selector{top:64px;overflow-x:auto;flex-wrap:nowrap}.week-selector a{white-space:nowrap}.meal-actions{width:100%;flex-direction:row}.meal-actions>*{flex:1}.menu-intro .actions form{width:100%}.duration-select{justify-content:space-between}}
.sharing-consent{display:grid;gap:14px}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.permission-grid label{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid rgba(18,111,103,.22);border-radius:14px;background:rgba(255,255,255,.72);font-weight:700}.permission-grid input{width:18px;height:18px}.sharing-active{border-left-color:#168077}

@media (display-mode:standalone){.site-return{display:none!important}.app-header{padding-top:max(8px,env(safe-area-inset-top))}}
.app-update-copy{min-width:0}.app-update-progress{height:8px;margin-top:10px;overflow:hidden;border-radius:99px;background:rgba(14,91,84,.15)}.app-update-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#35a99c,#d6aa45);transition:width .45s ease}.app-updated{position:fixed;z-index:10002;right:18px;bottom:90px;display:flex;align-items:center;gap:12px;max-width:420px;padding:16px 18px;border:1px solid rgba(20,120,111,.3);border-radius:18px;background:#f8fffd;box-shadow:0 16px 50px rgba(14,72,66,.22);color:#174b47}.app-updated[hidden]{display:none}.app-updated>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#168077;color:#fff;font-weight:900}.app-updated p{margin:3px 0 0}.app-updated button{margin-left:auto;padding:4px 9px;background:transparent;color:#174b47;box-shadow:none;font-size:24px}@media(max-width:700px){.app-updated{left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom))}}


/* ===== Mise à jour 2026-10-03.9 : bandeau compact universel ===== */
.app-update.app-update-strip{
 position:fixed!important;
 inset:0 0 auto 0!important;
 z-index:10050!important;
 display:grid!important;
 grid-template-columns:minmax(0,1fr) auto!important;
 align-items:center!important;
 gap:8px!important;
 width:100%!important;
 max-width:none!important;
 max-height:none!important;
 min-height:44px!important;
 margin:0!important;
 padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left))!important;
 overflow:hidden!important;
 border:0!important;
 border-bottom:1px solid rgba(255,255,255,.28)!important;
 border-radius:0!important;
 background:linear-gradient(90deg,#0d4d49,#146b66)!important;
 box-shadow:0 5px 18px rgba(6,55,52,.22)!important;
 color:#fff!important;
 backdrop-filter:none!important;
}
.app-update.app-update-strip[hidden]{display:none!important}
.app-update-message{min-width:0;overflow:hidden}
.app-update-marquee{
 display:flex;
 width:max-content;
 min-width:100%;
 align-items:center;
 animation:nssUpdateTicker 18s linear infinite;
 will-change:transform;
}
.app-update-marquee[hidden]{display:none!important}
.app-update-marquee span{
 flex:none;
 white-space:nowrap;
 padding-right:56px;
 color:#fff;
 font-size:13px;
 font-weight:850;
 letter-spacing:.01em;
}
.app-update-live{
 display:block;
 min-width:0;
 overflow:hidden;
 color:#fff;
 font-size:13px;
 font-weight:800;
 white-space:nowrap;
 text-overflow:ellipsis;
}
.app-update-live[hidden]{display:none!important}
.app-update.app-update-strip button{
 width:auto!important;
 min-width:0!important;
 max-width:128px!important;
 min-height:32px!important;
 margin:0!important;
 padding:7px 11px!important;
 border:1px solid rgba(255,255,255,.5)!important;
 border-radius:9px!important;
 background:#fff!important;
 color:#0d4d49!important;
 box-shadow:none!important;
 font-size:12px!important;
 font-weight:900!important;
 line-height:1.1!important;
 white-space:nowrap!important;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
}
.app-update.app-update-strip button:hover{transform:none!important;background:#f4fffc!important}
.app-update.app-update-strip button:disabled{opacity:.72;cursor:wait}
.app-update.app-update-strip .app-update-progress{
 position:absolute;
 left:0;right:0;bottom:0;
 height:3px!important;
 margin:0!important;
 border-radius:0!important;
 background:rgba(255,255,255,.18)!important;
}
.app-update.app-update-strip .app-update-progress span{
 background:linear-gradient(90deg,#fff,#e3c27a)!important;
}
body.nss-update-visible{padding-top:44px}
body.nss-update-visible .app-header{top:44px}
@keyframes nssUpdateTicker{
 from{transform:translateX(0)}
 to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
 .app-update-marquee{animation:none}
}
@media(max-width:850px){
 .app-update.app-update-strip{
  min-height:42px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
 }
 body.nss-update-visible{padding-top:42px}
 body.nss-update-visible .app-header{top:42px}
 .app-update-marquee span,.app-update-live{font-size:12px}
 .app-update.app-update-strip button{max-width:108px!important;padding:7px 9px!important;font-size:11px!important}
}
@media(max-width:380px){
 .app-update.app-update-strip{gap:5px!important}
 .app-update.app-update-strip button{max-width:94px!important;padding-inline:7px!important}
 .app-update-marquee span,.app-update-live{font-size:11px}
}

/* Installation/réinstallation : aucun bouton ne doit sortir de l’écran. */
.install-hero,.install-grid,.install-grid .card{min-width:0}
.install-hero .actions>*,
#redownload-app{
 max-width:100%;
 min-width:0;
 white-space:normal;
 overflow-wrap:anywhere;
}
@media(max-width:700px){
 .install-hero .actions{display:grid;grid-template-columns:1fr;align-items:stretch}
 .install-hero .actions>*{width:100%;text-align:center}
 #redownload-app{width:100%}
}

/* Le compteur public en ligne a été retiré du HTML ; sécurité si un cache ancien l’affiche encore. */
.public-presence{display:none!important}


/* ===== Réinstallation : boîte de dialogue universelle ===== */
.app-maintenance-dialog,
.app-restart-complete{
 width:min(92vw,520px);
 max-width:520px;
 max-height:min(82dvh,640px);
 margin:auto;
 padding:26px;
 border:1px solid var(--line);
 border-radius:20px;
 background:#fff;
 color:var(--ink);
 box-shadow:0 24px 70px rgba(7,49,47,.28);
 overflow:auto;
 text-align:center;
}
.app-maintenance-dialog::backdrop,
.app-restart-complete::backdrop{
 background:rgba(8,31,30,.58);
 backdrop-filter:blur(3px);
}
.app-dialog-close{
 position:absolute;
 top:10px;
 right:10px;
 width:38px!important;
 height:38px!important;
 min-width:38px!important;
 padding:0!important;
 border-radius:50%!important;
 display:grid!important;
 place-items:center;
 font-size:22px!important;
 line-height:1!important;
 background:#edf5f3!important;
 color:var(--green2)!important;
 box-shadow:none!important;
}
.app-dialog-icon{
 width:58px;
 height:58px;
 margin:0 auto 14px;
 display:grid;
 place-items:center;
 border-radius:50%;
 background:#e3f2ef;
 color:var(--green2);
 font-size:30px;
 font-weight:900;
}
.app-maintenance-dialog h2,
.app-restart-complete h2{margin:0 44px 10px}
.app-maintenance-dialog p,
.app-restart-complete p{margin:0 0 18px;color:var(--muted)}
.app-maintenance-progress{
 width:100%;
 height:12px;
 margin:18px 0 8px;
 overflow:hidden;
 border-radius:999px;
 background:#dbe9e6;
 box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
}
.app-maintenance-progress span{
 display:block;
 width:0;
 height:100%;
 border-radius:inherit;
 background:linear-gradient(90deg,var(--green),var(--gold));
 transition:width .35s ease;
}
.app-maintenance-dialog small{
 display:block;
 margin-bottom:18px;
 color:var(--muted);
 font-weight:750;
}
.app-maintenance-dialog #redownload-dialog-done,
.app-restart-complete [data-close-restart-complete]{
 max-width:100%;
}
@media(max-width:600px){
 .app-maintenance-dialog,
 .app-restart-complete{
  width:min(94vw,480px);
  max-height:76dvh;
  padding:22px 18px;
  border-radius:17px;
 }
 .app-maintenance-dialog h2,
 .app-restart-complete h2{
  margin-left:34px;
  margin-right:34px;
  font-size:22px;
 }
 .app-maintenance-dialog p,
 .app-restart-complete p{font-size:14px}
 .app-dialog-close{
  top:8px;
  right:8px;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
 }
}


/* ===== Accueil de l'application : simple, compact et lisible ===== */
.dashboard-welcome-simple{
 display:block!important;
 margin:0 0 16px!important;
 padding:16px 20px!important;
 min-height:0!important;
 border-radius:17px!important;
 background:linear-gradient(135deg,#fff,#edf7f5)!important;
}
.dashboard-welcome-simple h2{margin:2px 0 3px!important;font-size:clamp(24px,3vw,32px)!important}
.dashboard-welcome-simple p{margin:0!important;color:var(--muted)!important}
.dashboard-launcher{margin:18px 0 30px!important}
.dashboard-section-heading-simple{margin:0 0 10px!important}
.dashboard-section-heading-simple h2{margin:0!important;font-size:clamp(22px,2.4vw,28px)!important}

.dashboard-visual-grid.dashboard-visual-grid-simple{
 display:grid!important;
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:14px!important;
}
.dashboard-visual-grid-simple .dashboard-visual-card{
 display:block!important;
 min-width:0!important;
 overflow:hidden!important;
 border:1px solid #cbdedb!important;
 border-radius:17px!important;
 background:#fff!important;
 color:var(--ink)!important;
 text-decoration:none!important;
 box-shadow:0 7px 20px rgba(13,63,60,.08)!important;
}
.dashboard-visual-grid-simple .dashboard-visual-card:hover,
.dashboard-visual-grid-simple .dashboard-visual-card:focus-visible{
 transform:translateY(-3px)!important;
 border-color:#77aea7!important;
 box-shadow:0 12px 28px rgba(13,63,60,.14)!important;
}
.dashboard-visual-grid-simple .dashboard-visual-card>img{
 display:block!important;
 width:100%!important;
 height:150px!important;
 max-height:150px!important;
 aspect-ratio:auto!important;
 object-fit:contain!important;
 padding:8px!important;
 background:linear-gradient(145deg,#eef8f6,#fbfdfc)!important;
 border-bottom:1px solid #e0ece9!important;
}
.dashboard-visual-grid-simple .dashboard-visual-card h3{
 margin:0!important;
 min-height:54px!important;
 padding:14px 10px!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 color:#102927!important;
 font-size:18px!important;
 line-height:1.15!important;
 text-align:center!important;
 overflow-wrap:anywhere!important;
}

@media(max-width:900px){
 .dashboard-visual-grid.dashboard-visual-grid-simple{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
 }
 .dashboard-visual-grid-simple .dashboard-visual-card>img{
  height:125px!important;
  max-height:125px!important;
 }
 .dashboard-visual-grid-simple .dashboard-visual-card h3{
  min-height:50px!important;
  padding:11px 7px!important;
  font-size:15px!important;
 }
}

@media(max-width:560px){
 .dashboard-welcome-simple{padding:13px 14px!important}
 .dashboard-welcome-simple .eyebrow{font-size:10px!important}
 .dashboard-welcome-simple h2{font-size:21px!important}
 .dashboard-welcome-simple p{font-size:13px!important}
 .dashboard-section-heading-simple h2{font-size:19px!important}

 .dashboard-visual-grid.dashboard-visual-grid-simple{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:7px!important;
 }
 .dashboard-visual-grid-simple .dashboard-visual-card{
  border-radius:12px!important;
 }
 .dashboard-visual-grid-simple .dashboard-visual-card>img{
  height:78px!important;
  max-height:78px!important;
  padding:4px!important;
 }
 .dashboard-visual-grid-simple .dashboard-visual-card h3{
  min-height:43px!important;
  padding:7px 3px!important;
  font-size:11px!important;
  line-height:1.08!important;
 }
}

/* ===== Scanner caméra plein écran ===== */
.scanner-shell{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}
.scanner-camera-card{position:relative;min-width:0;overflow:hidden;padding:18px}
.scanner-camera-card .scanner-window{min-height:clamp(430px,62vh,720px);border-style:solid;background:linear-gradient(145deg,#dcefeb,#f8fcfb)}
.scanner-placeholder{display:grid;place-items:center;gap:8px;padding:24px;text-align:center;color:var(--green2)}
.scanner-placeholder p{margin:0;color:var(--muted)}
.scanner-placeholder-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:18px;background:#fff;border:1px solid #bfdad5;font-size:34px}
.scanner-live-status{display:none}
.scanner-controls{justify-content:center}
.scanner-help{text-align:center;margin:10px 0 0}
.scanner-frame{width:min(80%,620px);height:clamp(130px,22vh,190px);border-width:4px}
.scanner-frame span{position:absolute;left:50%;bottom:-58px;transform:translateX(-50%);width:max-content;max-width:min(88vw,560px)}

body.scanner-active{overflow:hidden!important;overscroll-behavior:none}
body.scanner-active .scanner-camera-card{position:fixed;inset:0;z-index:10040;width:100vw;height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:#031817;box-shadow:none}
body.scanner-active .scanner-camera-card .scanner-window{position:absolute;inset:0;width:100%;height:100%;min-height:100dvh;border:0;border-radius:0;background:#031817}
body.scanner-active .scanner-camera-card .scanner-window>video,
body.scanner-active .scanner-camera-card .scanner-window>canvas{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important}
body.scanner-active .scanner-placeholder{display:none!important}
body.scanner-active .scanner-frame{width:min(82vw,760px);height:min(24vh,210px);border:4px solid rgba(255,255,255,.96);border-radius:20px;box-shadow:0 0 0 9999px rgba(1,18,17,.42),0 0 30px rgba(255,255,255,.4)}
body.scanner-active .scanner-live-status{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;z-index:10045;display:block;width:min(650px,calc(100vw - 80px));margin:0;transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:rgba(4,35,33,.82);color:#fff;font-size:12px;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.scanner-active .scanner-controls{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:10046;display:flex;width:min(620px,calc(100vw - 20px));margin:0;transform:translateX(-50%);justify-content:center;gap:8px;padding:8px;border-radius:15px;background:rgba(3,28,26,.72)}
body.scanner-active .scanner-controls #start-scan{display:none!important}
body.scanner-active .scanner-controls button{min-width:0!important;width:auto!important;margin:0!important;padding:9px 13px!important;background:rgba(255,255,255,.95)!important;color:#0d4d49!important;box-shadow:none!important}
body.scanner-active .scanner-help{position:absolute;left:50%;bottom:72px;z-index:10045;width:min(620px,calc(100vw - 24px));margin:0;transform:translateX(-50%);padding:8px 11px;border-radius:10px;background:rgba(3,28,26,.68);color:#fff!important;font-size:12px;text-align:center}
@media(max-width:850px){
 .scanner-shell{grid-template-columns:1fr}
 .scanner-camera-card .scanner-window{min-height:55vh}
 body.scanner-active .scanner-frame{width:86vw;height:145px}
}


/* ===== Version visible et persistante ===== */
.nss-version-badge{
 position:fixed;
 left:12px;
 bottom:12px;
 z-index:54;
 display:inline-flex;
 align-items:center;
 min-height:30px;
 max-width:calc(100vw - 90px);
 padding:6px 10px;
 border:1px solid #b9d7d2;
 border-radius:999px;
 background:rgba(250,253,252,.94);
 color:#385b57;
 box-shadow:0 6px 18px rgba(13,63,60,.12);
 backdrop-filter:blur(8px);
 font-size:11px;
 font-weight:800;
 line-height:1.1;
 white-space:nowrap;
}
.nss-footer-version{
 display:inline-block;
 font-weight:800;
 color:#fff;
}
.install-version-line{
 margin:0 0 14px;
 padding:8px 12px;
 border:1px solid #c9dfdb;
 border-radius:12px;
 background:#f6fbfa;
 color:#41625e;
 font-size:13px;
}
@media(max-width:850px){
 .nss-version-badge{
  left:8px;
  bottom:calc(78px + env(safe-area-inset-bottom));
  max-width:calc(100vw - 75px);
  padding:5px 8px;
  font-size:10px;
 }
}
@media(max-width:380px){
 .nss-version-badge{
  max-width:calc(100vw - 68px);
  font-size:9px;
 }
}
@media print{
 .nss-version-badge{display:none!important}
}


/* ===== Harmonisation finale des cartes du tableau de bord ===== */
.dashboard-visual-grid-simple .dashboard-visual-card{
 overflow:hidden!important;
 background:#fff!important;
}
.dashboard-visual-grid-simple .dashboard-visual-card>img{
 display:block!important;
 width:100%!important;
 height:auto!important;
 max-height:none!important;
 aspect-ratio:16/9!important;
 object-fit:cover!important;
 object-position:center!important;
 padding:0!important;
 margin:0!important;
 background:#eff9f7!important;
 border:0!important;
 border-bottom:1px solid #d9e9e6!important;
}
@media(max-width:900px){
 .dashboard-visual-grid-simple .dashboard-visual-card>img{
  height:auto!important;
  max-height:none!important;
  aspect-ratio:16/9!important;
 }
}
@media(max-width:560px){
 .dashboard-visual-grid-simple .dashboard-visual-card>img{
  height:auto!important;
  max-height:none!important;
  aspect-ratio:16/9!important;
  padding:0!important;
 }
}

/* Pied de page : copyright et liens dans la même gamme de couleur. */


.nss-footer-version{
 display:none!important;
}

/* Bandeau de mise à jour : contraste homogène et bouton aux couleurs du site. */
.app-update.app-update-strip{
 background:linear-gradient(90deg,#0b5651,#126b65)!important;
 color:#fff!important;
}
.app-update-marquee span,
.app-update-live{
 color:#fff!important;
 text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.app-update.app-update-strip button{
 background:#f3dfb8!important;
 border-color:#e5c17f!important;
 color:#174844!important;
}
.app-update.app-update-strip button:hover{
 background:#f8e9cc!important;
}


/* ===== Correctifs 2026-10-04 ===== */
/* Le logo du header reste toujours visible, même si un ancien script ajoute is-compact. */
.app-header .app-banner,
.app-header.is-compact .app-banner{
 max-height:132px!important;
 padding:4px 20px!important;
 opacity:1!important;
 overflow:hidden!important;
 border-bottom:1px solid #b6d5d0!important;
}
.app-header .app-banner img{display:block!important;width:min(100%,920px)!important;max-height:122px!important;object-fit:contain!important;margin:auto!important}
@media(max-width:850px){.app-header .app-banner,.app-header.is-compact .app-banner{max-height:64px!important;padding:2px 8px!important}.app-header .app-banner img{max-height:58px!important}}

/* Sous-dossiers réellement navigables. */
.subfolder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0}
.subfolder-card{display:flex;align-items:center;gap:10px;min-height:72px;padding:12px 14px;border:1px solid #bfd9d4;border-radius:14px;background:#f7fbfa;color:#173f3c!important;text-decoration:none!important;box-shadow:0 6px 16px rgba(13,63,60,.06)}
.subfolder-card:hover,.subfolder-card:focus{border-color:#6fa8a1;background:#e9f6f3;transform:translateY(-1px)}
.subfolder-card>span{font-size:28px}.subfolder-card b,.subfolder-card small{display:block}.subfolder-card small{margin-top:3px;color:#60716e}.subfolder-empty{grid-column:1/-1}
.subfolder-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0 14px;padding:9px 11px;border-radius:12px;background:#eef7f5}.subfolder-breadcrumb a{font-weight:800}
.secure-preview-dialog{width:min(1100px,96vw);height:min(900px,92dvh);padding:0;border:1px solid #b9d7d2;border-radius:18px;background:#f7fbfa;box-shadow:0 24px 80px rgba(3,42,39,.3)}
.secure-preview-dialog::backdrop{background:rgba(3,32,30,.6)}
.secure-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #c9dfdb;background:#fff}.secure-preview-head .actions{margin:0}.secure-preview-dialog iframe{display:block;width:100%;height:calc(100% - 68px);border:0;background:#fff}
@media(max-width:700px){.secure-preview-dialog{width:98vw;height:94dvh}.secure-preview-head{align-items:flex-start;flex-direction:column}.secure-preview-head .actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.secure-preview-head .button,.secure-preview-head button{padding:9px 6px;font-size:12px}.secure-preview-dialog iframe{height:calc(100% - 112px)}}


/* ===== Version 2026.10.04.4 : installation visible et sources nutritionnelles ===== */
#main-nav .nav-install{
 border:1px solid #8dbdb7!important;
 border-radius:9px!important;
 background:linear-gradient(145deg,#eef9f7,#d7eee9)!important;
 color:#075f58!important;
 padding-left:10px!important;
 padding-right:10px!important;
 box-shadow:0 5px 14px rgba(13,77,73,.08)!important;
}


.app-dialog-actions{
 display:flex;
 justify-content:center;
 gap:9px;
 flex-wrap:wrap;
 margin-top:12px;
}
.app-dialog-actions button{
 max-width:100%;
 white-space:normal;
}
.app-install-dialog #install-native-action{
 min-width:min(260px,100%);
}
@media(max-width:700px){
 #main-nav .nav-install{
  width:100%;
  text-align:center;
 }
 .app-dialog-actions{
  display:grid;
  grid-template-columns:1fr;
 }
 .app-dialog-actions button{
  width:100%;
 }
 
}



/* ===== Version 2026.10.04.6 ===== */






.admin-trash-list{display:grid;gap:12px}
.admin-trash-card{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:15px;border:1px solid #c4dcd8;border-radius:14px;background:#f5faf9
}
.admin-trash-card strong,.admin-trash-card small{display:block}
.admin-trash-card small{margin-top:4px;color:var(--muted)}
@media(max-width:700px){
  .admin-trash-card{align-items:stretch}
  .admin-trash-card .admin-quick-actions{width:100%}
  .admin-trash-card .admin-quick-actions form,
  .admin-trash-card .admin-quick-actions button{width:100%}
}


/* ===== Version 2026.10.04.9 : affichage mobile ===== */
.development-notice{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
  width:100%;
  padding:7px 14px;
  border-top:1px solid #b8d6d1;
  border-bottom:1px solid #b8d6d1;
  background:linear-gradient(90deg,#dceeea,#edf7f5,#dceeea);
  color:#0d5c56;
  text-align:center;
  font-size:12px;
  line-height:1.25;
}
.development-notice strong{
  color:#9a651b;
  letter-spacing:.06em;
}
.development-notice span{
  color:#466763;
}
@media(max-width:850px){
  body{
    padding-bottom:calc(118px + env(safe-area-inset-bottom))!important;
  }
  main{
    margin-bottom:28px!important;
  }
  .mobile-dock{
    min-height:82px;
  }
  .development-notice{
    position:relative;
    z-index:20;
    padding:7px 10px;
    font-size:11px;
  }
}
@media(max-width:560px){
  body{
    padding-bottom:calc(126px + env(safe-area-inset-bottom))!important;
  }
  .mobile-dock{
    min-height:88px;
  }
}
@media print{
  .development-notice{display:none!important}
}


/* ===== Version 2026.10.04.10 : menu hamburger sur la même barre que le logo ===== */
@media(max-width:1050px){
  .app-header{
    position:sticky!important;
    top:0!important;
    z-index:90!important;
  }

  /* Sur mobile/tablette, le logo reste visible : le menu ne crée plus une ligne dessous. */
  .app-banner,
  .app-header.is-compact .app-banner{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    min-height:72px!important;
    max-height:72px!important;
    padding:5px 64px 5px 10px!important;
    opacity:1!important;
    overflow:hidden!important;
  }

  .app-banner img,
  .app-header.is-compact .app-banner img{
    width:auto!important;
    max-width:min(72vw,520px)!important;
    max-height:60px!important;
    object-fit:contain!important;
  }

  /* La nav-row ne prend plus une deuxième ligne sous le logo. */
  .nav-row,
  .app-header.is-compact .nav-row{
    position:absolute!important;
    top:0!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    height:72px!important;
    min-height:72px!important;
    margin:0!important;
    padding:0 12px!important;
    pointer-events:none!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  .nav-row .site-return{
    display:none!important;
  }

  .menu-toggle{
    position:absolute!important;
    top:50%!important;
    right:12px!important;
    transform:translateY(-50%)!important;
    display:grid!important;
    place-items:center!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    margin:0!important;
    padding:0!important;
    pointer-events:auto!important;
    z-index:94!important;
  }

  /* Le panneau du menu s'ouvre sous la barre logo + hamburger, sans repousser la page. */
  .nav-row nav,
  .nav-row nav.open{
    position:fixed!important;
    top:74px!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - 92px)!important;
    margin:0!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    pointer-events:auto!important;
    z-index:93!important;
  }

  .nav-row nav:not(.open){
    display:none!important;
  }

  .nav-row nav.open{
    display:grid!important;
  }

  /* Le bandeau développement reste juste sous le header. */
  .development-notice{
    position:relative!important;
    z-index:40!important;
  }
}

@media(max-width:560px){
  .app-banner,
  .app-header.is-compact .app-banner{
    min-height:68px!important;
    max-height:68px!important;
    padding-right:60px!important;
  }

  .app-banner img,
  .app-header.is-compact .app-banner img{
    max-width:70vw!important;
    max-height:56px!important;
  }

  .nav-row,
  .app-header.is-compact .nav-row{
    height:68px!important;
    min-height:68px!important;
  }

  .menu-toggle{
    right:10px!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
  }

  .nav-row nav,
  .nav-row nav.open{
    top:70px!important;
  }
}


/* ===== Version 2026.10.04.11 : centrage propre du footer APP ===== */






/* ===== Version 2026.10.04.12 : footer APP centré partout ===== */















/* ===== Version 2026.10.04.13 : footer APP compact + contrôle Ciqual ===== */







.ciqual-remote-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:15px 0;
}
.ciqual-check-dialog{
  width:min(560px,calc(100% - 24px));
  border:1px solid #bad4cf;
  border-radius:18px;
  padding:26px;
  color:#173f3c;
  background:linear-gradient(145deg,#ffffff,#e5f3f0);
  box-shadow:0 24px 70px rgba(13,63,60,.28);
}
.ciqual-check-dialog::backdrop{background:rgba(10,35,33,.48)}
.ciqual-check-dialog .app-dialog-close{
  position:absolute;
  top:10px;
  right:10px;
  width:38px;
  height:38px;
  padding:0;
  border-radius:50%;
}
.ciqual-check-dialog .app-maintenance-progress{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#d9e9e6;
  margin:14px 0 7px;
}
.ciqual-check-dialog .app-maintenance-progress span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,#146b66,#a56b1f);
  transition:width .25s ease;
}



/* Menus famille et liste de courses — V.2026.10.04.18 */
.menu-generation-controls,.custom-menu-head-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shopping-panel{margin:22px 0;scroll-margin-top:90px;border-top:4px solid var(--gold)}.household-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:18px 0}.household-form label{min-width:220px}.household-form select{min-width:180px}.shopping-toolbar{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 18px}.shopping-toolbar form{margin:0}.shopping-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shopping-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.shopping-row>div{display:grid;gap:2px}.shopping-row strong{color:var(--green2)}.shopping-row small{font-weight:800;color:var(--gold)}.shopping-row form{margin:0}.shopping-row button{white-space:nowrap}.shopping-row.is-home{opacity:.68;background:#eef6f4}.shopping-row.is-home strong{text-decoration:line-through}.shopping-note{margin:16px 0 0}.household-meal-hint{display:block;margin-top:5px;color:var(--gold);font-weight:800}
@media(max-width:760px){.menu-generation-controls,.custom-menu-head-controls,.shopping-list-grid{grid-template-columns:1fr}.household-form{display:grid}.household-form label,.household-form select,.household-form button{width:100%}.shopping-row{align-items:flex-start;flex-direction:column}.shopping-row form,.shopping-row button{width:100%}}
@media print{body *{visibility:hidden!important}.shopping-panel,.shopping-panel *{visibility:visible!important}.shopping-panel{position:absolute!important;left:0;top:0;width:100%;margin:0!important;border:0!important;box-shadow:none!important}.shopping-panel form,.shopping-toolbar,.shopping-note{display:none!important}.shopping-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-row{break-inside:avoid;opacity:1!important}.shopping-row.is-home{display:none!important}}

/* Menus V.2026.10.04.19 : parcours guidé, recettes et listes compactes */
.glass-panel{background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(235,247,244,.82));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(168,204,198,.72)}
.menu-command-center{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 22px}
.menu-step{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;min-width:0;padding:15px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.82);box-shadow:0 8px 22px rgba(13,63,60,.07)}
.menu-step>div{min-width:0}.menu-step strong,.menu-step small{display:block}.menu-step small{margin-top:2px;color:var(--muted);line-height:1.35}.menu-step .button{grid-column:1/-1;text-align:center;margin-top:3px}
.step-state{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:950;background:#eef5f3;color:#42635f;border:1px solid #cfe0dd}
.menu-step.status-ok{border-color:#9ccdb7;background:linear-gradient(145deg,rgba(248,255,251,.96),rgba(226,245,235,.86))}.menu-step.status-ok .step-state{background:#dff4e8;color:#17623f;border-color:#9ccdb7}
.menu-step.status-warn{border-color:#dfbd7c;background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(255,244,219,.82))}.menu-step.status-warn .step-state{background:#fff0cf;color:#7b5116;border-color:#dfbd7c}
.menu-short-copy{max-width:820px;margin-bottom:14px}.menu-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.menu-choice-card{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center;padding:20px;border:1px solid #bddbd6;border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 12px 28px rgba(13,63,60,.08)}.menu-choice-card strong{font-size:22px;color:var(--green2)}.menu-choice-card small{grid-column:2;color:var(--muted)}.menu-choice-card label{grid-column:1/-1;display:grid;grid-template-columns:1fr 120px;gap:12px;align-items:center}.menu-choice-card button{grid-column:1/-1}.menu-choice-icon{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#eaf6f3,#d4ebe6);color:var(--green2);font-size:24px;font-weight:950;border:1px solid #bedbd6}.compact-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}
@keyframes nssActionPulse{0%,100%{box-shadow:0 8px 20px rgba(20,107,102,.16),0 0 0 0 rgba(20,107,102,.18)}50%{box-shadow:0 10px 26px rgba(20,107,102,.22),0 0 0 7px rgba(20,107,102,0)}}
.action-pulse{animation:nssActionPulse 2.3s ease-in-out infinite}.action-soft-pulse{animation:nssActionPulse 3.2s ease-in-out infinite}.status-warn-button{border-color:#d7b779!important;color:#805611!important;background:rgba(255,249,236,.9)!important}
.shopping-scope-switch{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.shopping-scope-switch .button{min-width:130px;text-align:center}.shopping-day-picker{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 16px}.shopping-day-picker a{display:grid;place-items:center;min-width:62px;padding:8px 10px;border:1px solid #c9dfdb;border-radius:12px;background:rgba(255,255,255,.82);color:var(--green2);font-weight:850;text-decoration:none}.shopping-day-picker a small{display:block;color:var(--muted);font-weight:700}.shopping-day-picker a.is-current{border-color:#75aaa4;background:#dff1ed;box-shadow:0 5px 15px rgba(13,77,73,.1)}
.shopping-groups{display:grid;gap:11px}.shopping-group{border:1px solid #cbdeda;border-radius:16px;background:rgba(255,255,255,.72);overflow:hidden}.shopping-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;font-weight:900;color:var(--green2);background:linear-gradient(145deg,rgba(247,252,251,.95),rgba(231,243,240,.88));list-style:none}.shopping-group>summary::-webkit-details-marker{display:none}.shopping-group>summary b{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#fff;color:var(--gold);border:1px solid #e6d2ae}.shopping-group>.shopping-list-grid{padding:12px}.shopping-extra{display:none}.shopping-group.show-all .shopping-extra{display:flex}.shopping-more{margin:0 12px 12px;width:calc(100% - 24px)}
.day-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.day-head>div:first-child{min-width:0}.day-head-actions{display:flex;align-items:center;gap:10px}.day-regenerate-button{white-space:nowrap;background:rgba(255,255,255,.18)!important;color:#fff!important;border-color:rgba(255,255,255,.36)!important;box-shadow:none!important}.meal-main{min-width:0}.meal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.recipe-button{border-color:#9ccdb7!important;background:linear-gradient(145deg,#f5fbf8,#dff2e8)!important;color:#145c43!important}.meal-check.checked{background:#e1f3e8!important;color:#17623f!important;border-color:#96c7ae!important}
.glass-dialog{width:min(760px,92vw);max-height:88vh;overflow:auto;border:1px solid rgba(171,207,201,.78);border-radius:22px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(235,247,244,.92));box-shadow:0 28px 80px rgba(3,45,42,.32);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.glass-dialog::backdrop{background:rgba(6,39,37,.52);backdrop-filter:blur(5px)}.dialog-x{position:sticky;float:right;top:0;width:42px;height:42px;padding:0;border-radius:50%;font-size:25px;z-index:2}.dialog-actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}.recipe-servings{display:inline-block;margin:0 0 12px;padding:6px 11px;border-radius:999px;background:#e7f3f0;color:var(--green2);font-weight:850}.recipe-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}.recipe-tabs button.is-active{background:linear-gradient(145deg,#dff2e8,#cae8df)!important;border-color:#78aa93!important;color:#12563f!important}.recipe-content{padding:17px;border:1px solid #cfe2de;border-radius:16px;background:rgba(255,255,255,.75)}.recipe-content h3{margin:0 0 10px}.recipe-content h3+*{margin-bottom:18px}.recipe-ingredients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.recipe-ingredients span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #d6e6e2;border-radius:12px;background:#fff}.recipe-ingredients b{white-space:nowrap;color:var(--gold)}.recipe-steps{padding-left:22px}.recipe-steps li{margin:9px 0}.recipe-time{margin:12px 0 0;font-weight:850;color:var(--green2)}
@media(max-width:1050px){.menu-command-center{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-choice-grid{grid-template-columns:1fr}.day-head{align-items:flex-start}.day-head-actions{align-items:flex-end;flex-direction:column}.meal-actions{justify-content:flex-start}}
@media(max-width:760px){.menu-command-center{grid-template-columns:1fr}.menu-step{grid-template-columns:auto 1fr}.menu-choice-card{grid-template-columns:auto 1fr;padding:17px}.compact-actions{display:grid;grid-template-columns:1fr}.compact-actions .button,.compact-actions button{width:100%}.shopping-scope-switch{display:grid;grid-template-columns:repeat(2,1fr)}.shopping-day-picker{display:grid;grid-template-columns:repeat(4,1fr)}.shopping-day-picker a{min-width:0}.shopping-group>.shopping-list-grid{grid-template-columns:1fr;padding:9px}.shopping-row{width:100%;min-width:0}.day-head{display:grid}.day-head-actions{align-items:stretch}.day-regenerate-button{width:100%}.meal-actions{display:grid;grid-template-columns:1fr}.meal-actions form,.meal-actions button{width:100%}.recipe-ingredients{grid-template-columns:1fr}.glass-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:20px 16px 92px}.dialog-actions{position:sticky;bottom:0;padding-top:12px;background:linear-gradient(180deg,rgba(239,248,246,0),rgba(239,248,246,.98) 28%)}.dialog-actions .button,.dialog-actions button{flex:1;min-width:150px}.shopping-toolbar{display:grid;grid-template-columns:1fr}.shopping-toolbar form,.shopping-toolbar button{width:100%}}
@media(max-width:460px){.menu-choice-card{grid-template-columns:1fr}.menu-choice-icon{grid-row:auto}.menu-choice-card small,.menu-choice-card label,.menu-choice-card button{grid-column:1}.menu-choice-card label{grid-template-columns:1fr 90px}.shopping-day-picker{grid-template-columns:repeat(3,1fr)}.recipe-tabs{display:grid;grid-template-columns:1fr}.dialog-actions{display:grid;grid-template-columns:1fr}.dialog-actions .button,.dialog-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.action-pulse,.action-soft-pulse{animation:none!important}}
@media print{.shopping-group{break-inside:avoid}.shopping-group>.shopping-list-grid{display:grid!important}.shopping-extra{display:flex!important}.shopping-more,.shopping-scope-switch,.shopping-day-picker,.status-warn-button{display:none!important}}
.menu-extra-day{display:none}.show-all-menu-days .menu-extra-day{display:block}.menu-more-days{display:block;margin:14px auto 24px;min-width:min(320px,100%)}
@media(max-width:760px){.menu-more-days{width:100%}}

/* V.2026.10.04.21 — navigation guidée, soutien en dialogue et estimation locale */
.home-hero-compact{padding:clamp(22px,4vw,38px);margin-bottom:18px}.home-hero-compact h1,.home-hero-compact h2{max-width:850px;margin:.2em 0 .35em;font-size:clamp(28px,5vw,46px)}.home-primary-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.action-hub{margin:20px 0}.action-hub-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}.action-hub-heading h2{margin:0}.compact-link{padding:9px 13px!important}.action-button-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.action-button-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:86px;padding:14px 16px;border:1px solid rgba(159,199,193,.78);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(232,245,242,.72));box-shadow:0 9px 22px rgba(13,63,60,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink)!important;text-decoration:none!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.action-button-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(13,63,60,.13)}.action-button-card .action-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(226,241,238,.95);font-size:23px;color:var(--green2)}.action-button-card span:nth-child(2){min-width:0}.action-button-card strong{display:block;font-size:17px;color:var(--green2)}.action-button-card small{display:block;margin-top:2px;color:var(--muted);font-weight:650}.action-button-card>b{font-size:20px;color:var(--green2)}.action-button-card.is-ready{border-color:#8bc5a6;background:linear-gradient(145deg,rgba(245,255,249,.94),rgba(221,243,231,.86))}.action-button-card.is-ready .action-icon,.dashboard-state-pill.is-ready{background:#dcf1e4;color:#155d3e}.action-button-card.is-warning{border-color:#d7b779;background:linear-gradient(145deg,rgba(255,252,245,.95),rgba(255,241,211,.82))}.action-button-card.is-warning .action-icon,.dashboard-state-pill.is-warning{background:#fff0cf;color:#825812}.action-button-card.is-danger{border-color:#d5a1a1;background:linear-gradient(145deg,#fffafa,#fde7e7)}.action-button-card.is-danger .action-icon{background:#fde4e4;color:#8b2d2d}.next-step-strip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;margin:18px 0 26px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.73);backdrop-filter:blur(10px)}.next-step-strip.state-ready{border-color:#a9d3b9}.next-step-strip.state-warning{border-color:#ddc08c}.next-step-dot{width:11px;height:11px;border-radius:50%;background:#d19532;box-shadow:0 0 0 6px rgba(209,149,50,.12)}.state-ready .next-step-dot{background:#2f9162;box-shadow:0 0 0 6px rgba(47,145,98,.12)}.next-step-strip strong,.next-step-strip small{display:block}.next-step-strip small{color:var(--muted)}
.dashboard-launcher-compact{margin:18px 0 26px}.dashboard-state-pill{padding:7px 11px;border-radius:999px;font-size:12px;font-weight:900}.dashboard-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-welcome-simple{padding:2px 0 8px}.dashboard-welcome-simple h2{margin:.1em 0}.dashboard-welcome-simple p:last-child{margin-bottom:0;color:var(--muted)}
.support-project-dialog{width:min(620px,92vw);text-align:left}.support-project-dialog h2{margin-right:44px}.support-dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 10px}.support-page-card{max-width:720px;margin:0 auto;padding:clamp(22px,5vw,42px);border-radius:22px}.support-page-card h2{font-size:clamp(27px,4vw,40px)}
.price-estimate-dialog{width:min(820px,94vw)}.price-estimate-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.price-estimate-summary article{padding:14px;border:1px solid #cfe1dd;border-radius:14px;background:rgba(255,255,255,.8)}.price-estimate-summary span,.price-estimate-summary small{display:block;color:var(--muted)}.price-estimate-summary strong{display:block;margin:4px 0;color:var(--green2);font-size:24px}.price-estimate-list{display:grid;gap:8px;max-height:330px;overflow:auto;padding-right:4px}.price-estimate-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #d5e5e1;border-radius:12px;background:rgba(255,255,255,.76)}.price-estimate-row span strong,.price-estimate-row span small{display:block}.price-estimate-row span small{color:var(--muted)}.price-estimate-row>b{color:var(--green2);font-size:17px}.price-estimate-row>small{color:var(--muted)}.price-estimate-row>em{grid-column:2/4;color:#8a641e;font-style:normal;font-size:13px;font-weight:800}.price-source-note{margin-top:12px;font-size:12px}
@media(max-width:900px){.action-button-grid,.dashboard-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-estimate-summary{grid-template-columns:1fr 1fr}.price-estimate-summary article:first-child{grid-column:1/-1}}
@media(max-width:620px){.home-primary-actions{display:grid}.home-primary-actions .button{width:100%;text-align:center}.action-hub-heading{align-items:flex-start;flex-direction:column}.action-button-grid,.dashboard-action-grid{grid-template-columns:1fr}.action-button-card{min-height:76px;padding:12px 13px}.action-button-card .action-icon{width:42px;height:42px}.next-step-strip{grid-template-columns:auto 1fr}.next-step-strip .button{grid-column:1/-1;width:100%;text-align:center}.support-dialog-actions{display:grid}.support-dialog-actions .button,.support-dialog-actions button{width:100%;text-align:center}.price-estimate-summary{grid-template-columns:1fr}.price-estimate-summary article:first-child{grid-column:auto}.price-estimate-row{grid-template-columns:minmax(0,1fr) auto}.price-estimate-row>small{grid-column:1/-1}.price-estimate-row>em{grid-column:2}.price-estimate-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding-bottom:96px}}

/* V.2026.10.04.22 — recettes détaillées + actions LED visibles */
@keyframes nssLedSweep{0%{transform:translateX(-180%) skewX(-18deg);opacity:0}12%{opacity:.15}35%{opacity:.82}58%{opacity:.18}72%,100%{transform:translateX(420%) skewX(-18deg);opacity:0}}
@keyframes nssLedGlow{0%,100%{box-shadow:0 8px 20px rgba(20,107,102,.16),0 0 0 0 rgba(209,149,50,.08)}50%{box-shadow:0 11px 28px rgba(20,107,102,.26),0 0 0 5px rgba(209,149,50,.13)}}
.action-pulse,.action-soft-pulse{position:relative!important;overflow:hidden!important;isolation:isolate}.action-pulse{animation:nssLedGlow 2.1s ease-in-out infinite!important}.action-soft-pulse{animation:nssLedGlow 3s ease-in-out infinite!important}.action-pulse::after,.action-soft-pulse::after{content:"";position:absolute;z-index:0;top:-35%;bottom:-35%;left:-34%;width:22%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),rgba(255,246,190,.92),rgba(255,255,255,.22),transparent);filter:blur(.2px);pointer-events:none;animation:nssLedSweep 2.45s linear infinite}.action-soft-pulse::after{animation-duration:3.35s;opacity:.82}.action-pulse>*,.action-soft-pulse>*{position:relative;z-index:1}.action-button-card.action-pulse::after,.action-button-card.action-soft-pulse::after{width:16%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),rgba(255,224,125,.82),rgba(255,255,255,.2),transparent)}
.recipe-button{font-weight:900!important;border-width:1px!important;box-shadow:0 8px 20px rgba(20,92,67,.14)!important}.recipe-button::before{content:"🍳 ";font-size:15px}.recipe-content{display:grid;gap:14px}.recipe-section{padding:14px;border:1px solid #d8e7e3;border-radius:15px;background:rgba(255,255,255,.7)}.recipe-section h3{display:flex;align-items:center;gap:8px;margin:0 0 10px}.recipe-section h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(20,107,102,.1)}.recipe-pantry-section{background:rgba(250,247,237,.78);border-color:#e7d7b8}.recipe-pantry-section h3::before{background:var(--gold);box-shadow:0 0 0 4px rgba(165,107,31,.1)}.recipe-extra-section{background:rgba(239,248,246,.82)}#recipe-sauce-block{background:rgba(255,250,241,.86);border-color:#ead7b1}.recipe-shopping-note{margin:0!important;font-size:13px;line-height:1.45}.recipe-empty-option{grid-column:1/-1;color:var(--muted);font-style:italic}.recipe-ingredients span{min-height:48px}.recipe-ingredients span b:empty{display:none}.recipe-steps{margin:0;padding-left:25px;counter-reset:recipe-step}.recipe-steps li{margin:0 0 10px;padding-left:3px;line-height:1.5}.recipe-steps li::marker{font-weight:900;color:var(--green)}.recipe-time{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:#e4f2ee;margin:4px 0 0}.price-estimate-row>small{max-width:260px;text-align:right;line-height:1.25}.menu-step .action-soft-pulse{border-color:#b79042!important}
@media(max-width:760px){.recipe-section{padding:12px}.price-estimate-row>small{text-align:left;max-width:none}.recipe-button{min-height:48px}.action-pulse::after,.action-soft-pulse::after{width:26%}}
@media(prefers-reduced-motion:reduce){.action-pulse,.action-soft-pulse{animation:none!important}.action-pulse::after,.action-soft-pulse::after{display:none!important}}

/* V.2026.10.04.23 — navigation regroupée, tableau de bord compact et profondeur visuelle */
:root{--display-font:"Aptos Display","Trebuchet MS",Inter,Arial,sans-serif;--glass-border:rgba(145,193,186,.58);--glass-shadow:0 18px 45px rgba(10,72,68,.12)}
.app-banner{padding:8px 20px;background:linear-gradient(180deg,#f9fdfc,#eef8f6)}
.app-banner img{width:auto!important;height:104px!important;max-width:min(760px,84vw)!important;max-height:none!important;object-fit:contain!important;filter:drop-shadow(0 10px 14px rgba(6,64,60,.18))}
.mobile-menu-brand{width:auto!important;height:58px!important;max-width:86%!important;object-fit:contain!important;margin:4px auto 12px!important}

/* Navigation desktop : quelques familles, pas une liste de 20 liens. */
#main-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#main-nav>a,#main-nav>.nav-menu-group>summary{display:flex;align-items:center;min-height:38px;padding:8px 10px;border:1px solid transparent;border-radius:11px;color:var(--ink);font-weight:800;text-decoration:none;line-height:1.1;cursor:pointer;list-style:none;transition:background .18s,border-color .18s,color .18s,transform .18s}
#main-nav>.nav-menu-group>summary::-webkit-details-marker{display:none}
#main-nav>.nav-menu-group>summary::after{content:"⌄";margin-left:6px;color:var(--green);font-size:13px;transition:transform .18s}
#main-nav>.nav-menu-group[open]>summary::after{transform:rotate(180deg)}
#main-nav>a:hover,#main-nav>.nav-menu-group>summary:hover,#main-nav>.nav-menu-group.is-current-parent>summary{background:rgba(225,242,238,.72);border-color:#b8d7d1;color:var(--green2);transform:translateY(-1px)}
#main-nav>a.is-current,#main-nav .nav-main-space.is-current{background:linear-gradient(145deg,#e7f6f2,#d8eee9);border-color:#83bbb3;box-shadow:0 5px 14px rgba(13,77,73,.11);color:var(--green2)}
.nav-menu-group{position:relative;margin:0}
.nav-dropdown{position:absolute;z-index:80;top:calc(100% + 7px);left:50%;transform:translateX(-50%);display:grid;min-width:230px;padding:8px;border:1px solid rgba(159,199,193,.82);border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 22px 50px rgba(8,57,54,.18);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.nav-account-group .nav-dropdown{left:auto;right:0;transform:none;min-width:250px}
.nav-dropdown a{display:block!important;padding:10px 12px!important;border:0!important;border-radius:10px!important;color:var(--ink)!important;font-size:14px!important;font-weight:760!important;text-decoration:none!important}
.nav-dropdown a:hover,.nav-dropdown a.is-current{background:#e8f4f1!important;color:var(--green2)!important}
.nav-dropdown .nav-signout{margin-top:5px;border-top:1px solid #dbe8e5!important;border-radius:0 0 10px 10px!important;color:#8b3131!important}
.nav-dropdown-label{padding:9px 12px 4px;color:var(--gold);font-size:11px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;border-top:1px solid #e4eeec;margin-top:5px}

/* Titres plus structurés. */
.home-hero-pro h2,.dashboard-hero-shell h2,.dashboard-section-heading h2,.dashboard-today h2{font-family:var(--display-font);letter-spacing:-.025em;color:#102f2c}
.home-hero-pro{position:relative;overflow:hidden;padding:clamp(28px,5vw,54px);border-radius:26px;background:radial-gradient(circle at 88% 18%,rgba(181,228,219,.8),transparent 31%),linear-gradient(135deg,rgba(255,255,255,.98),rgba(227,244,240,.9));box-shadow:var(--glass-shadow)}
.home-hero-pro::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-100px;bottom:-180px;background:radial-gradient(circle,rgba(165,107,31,.16),transparent 67%);pointer-events:none}
.home-hero-pro .home-hero-copy{position:relative;z-index:1;max-width:930px}
.home-hero-pro h2{margin:.12em 0 .32em;font-size:clamp(35px,5.1vw,62px);line-height:1.02;font-weight:900}
.home-hero-pro h2 span{color:var(--green)}.home-hero-pro h2 em{font-style:normal;color:#8a5a18}
.home-hero-pro p:not(.eyebrow){max-width:780px;font-size:clamp(16px,1.7vw,20px);color:#536562}
.home-primary-actions{position:relative;z-index:1;margin-top:24px}

/* Boutons : verre, profondeur, LED douce et vraie réaction au clic. */
.button,.action-button-card{will-change:transform,box-shadow}
.button{border:1px solid rgba(255,255,255,.24);box-shadow:0 9px 20px rgba(8,75,70,.18),inset 0 1px 0 rgba(255,255,255,.24),inset 0 -2px 5px rgba(2,52,49,.12)}
.button:active,.action-button-card:active{transform:translateY(1px) scale(.992)!important}
.action-pulse,.action-soft-pulse{border:1px solid rgba(220,184,91,.58)!important;box-shadow:0 12px 28px rgba(13,77,73,.23),0 0 0 1px rgba(240,205,113,.18),inset 0 1px 0 rgba(255,255,255,.42)!important}
.action-pulse::before,.action-soft-pulse::before{content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(110deg,rgba(255,255,255,.14),transparent 26%,transparent 72%,rgba(255,228,145,.15));opacity:.9}
.action-pulse::after,.action-soft-pulse::after{top:-55%!important;bottom:-55%!important;width:18%!important;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),rgba(255,235,151,.98),rgba(255,255,255,.28),transparent)!important;filter:blur(.35px) drop-shadow(0 0 7px rgba(255,222,119,.48))!important}
@keyframes nssLedGlow23{0%,100%{box-shadow:0 10px 24px rgba(13,77,73,.18),0 0 0 0 rgba(209,149,50,.08),inset 0 1px 0 rgba(255,255,255,.35)}50%{box-shadow:0 16px 34px rgba(13,77,73,.28),0 0 0 5px rgba(209,149,50,.09),0 0 22px rgba(81,178,161,.14),inset 0 1px 0 rgba(255,255,255,.48)}}
.action-pulse{animation:nssLedGlow23 2.65s ease-in-out infinite!important}.action-soft-pulse{animation:nssLedGlow23 4s ease-in-out infinite!important}

/* Cartes d'action plus profondes et moins plates. */
.action-button-card{position:relative;overflow:hidden;min-height:92px;border-radius:19px;border-color:rgba(143,191,184,.72);background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(229,244,240,.78));box-shadow:0 13px 28px rgba(13,63,60,.10),inset 0 1px 0 rgba(255,255,255,.86)}
.action-button-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.48),transparent 32%,transparent 74%,rgba(20,107,102,.05));opacity:.65}
.action-button-card:hover{transform:translateY(-3px);border-color:#75aaa4;box-shadow:0 20px 38px rgba(13,63,60,.16),0 0 0 1px rgba(20,107,102,.05)}
.action-button-card .action-icon{position:relative;z-index:1;width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,rgba(238,250,247,.98),rgba(209,235,229,.92));box-shadow:inset 0 1px 0 #fff,0 6px 14px rgba(20,107,102,.09)}
.action-button-card>span,.action-button-card>b{position:relative;z-index:1}
.action-button-card strong{font-family:var(--display-font);font-size:18px;letter-spacing:-.01em}
.action-button-card.is-ready{background:linear-gradient(145deg,rgba(247,255,250,.98),rgba(216,242,227,.88))}.action-button-card.is-warning{background:linear-gradient(145deg,rgba(255,253,247,.98),rgba(255,239,202,.86))}
.home-essential-grid{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Mon espace : essentiel visible, secondaire replié. */
.dashboard-hero-shell{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:4px 0 22px;padding:clamp(22px,4vw,36px);border-radius:24px;box-shadow:var(--glass-shadow)}
.dashboard-hero-shell>div:first-child{max-width:760px}.dashboard-hero-shell h2{margin:.08em 0 .25em;font-size:clamp(30px,4.5vw,48px)}.dashboard-hero-shell p:last-child{margin:0;color:var(--muted)}
.dashboard-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.dashboard-primary-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-more-panel{margin-top:12px;border:1px solid #c9ded9;border-radius:17px;background:rgba(255,255,255,.68);overflow:hidden;box-shadow:0 8px 20px rgba(13,63,60,.06)}
.dashboard-more-panel>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:14px 16px;cursor:pointer;list-style:none;color:var(--green2)}
.dashboard-more-panel>summary::-webkit-details-marker{display:none}.dashboard-more-panel>summary .more-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#e3f2ef;font-size:22px;font-weight:400}.dashboard-more-panel>summary strong,.dashboard-more-panel>summary small{display:block}.dashboard-more-panel>summary small{margin-top:2px;color:var(--muted);font-weight:650}.dashboard-more-panel>summary>b{font-size:13px;color:var(--gold)}
.dashboard-more-panel[open]>summary{background:#f3f9f7;border-bottom:1px solid #d9e7e4}.dashboard-more-panel[open]>summary>b{font-size:0}.dashboard-more-panel[open]>summary>b::after{content:"Réduire";font-size:13px}
.dashboard-secondary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px}
.dashboard-secondary-grid a{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;padding:11px 12px;border:1px solid #d5e5e1;border-radius:13px;background:rgba(255,255,255,.82);color:var(--ink);text-decoration:none;transition:.18s transform,.18s border-color,.18s box-shadow}.dashboard-secondary-grid a:hover{transform:translateY(-2px);border-color:#8ebdb6;box-shadow:0 8px 18px rgba(13,63,60,.09)}.dashboard-secondary-grid a>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e7f4f1;color:var(--green2);font-weight:900}.dashboard-secondary-grid strong{color:var(--green2);font-size:14px}.dashboard-secondary-grid small{font-size:12px;color:var(--muted)}

.dashboard-today{scroll-margin-top:100px;margin:22px 0;padding:clamp(20px,3vw,30px);border-radius:24px;box-shadow:var(--glass-shadow)}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:14px 0}.dashboard-kpi-grid article{padding:13px 14px;border:1px solid #d4e5e1;border-radius:15px;background:rgba(255,255,255,.82)}.dashboard-kpi-grid span{display:block;color:var(--muted);font-size:12px;font-weight:800}.dashboard-kpi-grid strong{display:block;margin-top:3px;color:var(--green2);font-size:clamp(20px,2vw,27px)}
.dashboard-guidance-grid{margin-top:10px}.dashboard-today-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}

/* Données longues : accordéons au lieu de quatre grands pavés successifs. */
.dashboard-data-stack{display:grid;gap:10px;margin:22px 0}.dashboard-data-panel{border:1px solid #cbdeda;border-radius:17px;background:rgba(255,255,255,.76);overflow:hidden;box-shadow:0 8px 22px rgba(13,63,60,.055);scroll-margin-top:100px}.dashboard-data-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;cursor:pointer;list-style:none;background:linear-gradient(145deg,rgba(251,254,253,.98),rgba(235,246,243,.84))}.dashboard-data-panel>summary::-webkit-details-marker{display:none}.dashboard-data-panel>summary strong,.dashboard-data-panel>summary small{display:block}.dashboard-data-panel>summary strong{font-family:var(--display-font);font-size:18px;color:var(--green2)}.dashboard-data-panel>summary small{margin-top:2px;color:var(--muted)}.dashboard-data-panel>summary>b{font-size:12px;color:var(--gold)}.dashboard-data-panel[open]>summary>b{font-size:0}.dashboard-data-panel[open]>summary>b::after{content:"Réduire";font-size:12px}.dashboard-data-body{padding:14px;border-top:1px solid #dce9e6}.dashboard-update-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:14px}.compact-form-card{margin:0!important;padding:20px!important;box-shadow:none!important}.dashboard-data-panel .table-wrap{background:#fff}

.public-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.public-benefits article{display:flex;align-items:flex-start;gap:12px;padding:17px;border:1px solid var(--glass-border);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(231,245,242,.77));box-shadow:0 10px 24px rgba(13,63,60,.07)}.public-benefits article>span{display:grid;place-items:center;min-width:39px;height:39px;border-radius:13px;background:#e0f1ed;color:var(--green2);font-weight:950}.public-benefits strong,.public-benefits small{display:block}.public-benefits strong{font-family:var(--display-font);color:var(--green2);font-size:17px}.public-benefits small{margin-top:3px;color:var(--muted)}

@media(max-width:1100px){
 #main-nav{gap:0!important}
 #main-nav>.nav-menu-group{width:100%}
 #main-nav>.nav-menu-group>summary{display:flex!important;width:100%;justify-content:space-between;padding:11px 12px!important;border-bottom:1px solid #e4efec;border-radius:9px}
 .nav-dropdown,.nav-account-group .nav-dropdown{position:static;transform:none;display:grid;min-width:0;width:100%;padding:5px 0 7px 14px;border:0;border-radius:0;background:#f2f8f6;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
 .nav-menu-group:not([open]) .nav-dropdown{display:none}
 .nav-dropdown a{padding:10px 12px!important;background:transparent!important}
 .dashboard-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-essential-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .public-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .app-banner img{height:62px!important;max-width:86vw!important}.mobile-menu-brand{height:50px!important}
 .dashboard-hero-shell{display:grid}.dashboard-hero-actions{justify-content:stretch;display:grid}.dashboard-hero-actions .button{width:100%;text-align:center}
 .dashboard-primary-actions{grid-template-columns:1fr}.dashboard-secondary-grid{grid-template-columns:1fr 1fr}.dashboard-kpi-grid{grid-template-columns:1fr 1fr}.dashboard-kpi-grid article:last-child{grid-column:1/-1}.dashboard-update-grid{grid-template-columns:1fr}
 .dashboard-today-actions{display:grid}.dashboard-today-actions .button{width:100%;text-align:center}
 .home-essential-grid,.public-benefits{grid-template-columns:1fr}.home-hero-pro h2{font-size:clamp(34px,10vw,48px)}
}
@media(max-width:480px){.dashboard-secondary-grid{grid-template-columns:1fr}.dashboard-kpi-grid{grid-template-columns:1fr 1fr}.dashboard-data-panel>summary{padding:13px}.dashboard-data-panel>summary small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.action-pulse,.action-soft-pulse{animation:none!important}.action-pulse::after,.action-soft-pulse::after{display:none!important}.button,.action-button-card{transition:none!important}}

/* ======================================================================
   V.2026.10.04.24 — Accueil & Mon espace : version visuelle enrichie
   Même code pour PC, tablette, mobile et PWA.
   ====================================================================== */
:root{
  --nss-deep:#0b4f4b;
  --nss-teal:#0d756e;
  --nss-mint:#e8f7f2;
  --nss-mint-2:#d7efe8;
  --nss-gold:#d39a32;
  --nss-cream:#fff9ec;
  --nss-border:rgba(122,177,169,.34);
  --nss-soft-shadow:0 18px 48px rgba(13,77,73,.12);
  --nss-card-shadow:0 12px 28px rgba(13,77,73,.095),inset 0 1px 0 rgba(255,255,255,.88);
}

/* Fond vivant : pas une image plate collée, mais un décor réel derrière les blocs. */
.nss-botanical-stage{
  position:relative;
  isolation:isolate;
  width:min(1520px,96vw);
  margin-left:50%;
  transform:translateX(-50%);
  padding:18px 0 34px;
}
.nss-botanical-stage::before,
.nss-botanical-stage::after{
  content:"";
  position:absolute;
  z-index:-2;
  pointer-events:none;
  opacity:.34;
  filter:blur(.15px);
}
/* Décor végétal 100 % CSS : aucune image de bouton ou interface cachée dans le fond. */
.nss-botanical-stage::before{
  width:min(650px,48vw);
  height:min(480px,38vw);
  top:-120px;
  right:-120px;
  transform:rotate(-12deg);
  background:
    radial-gradient(ellipse at 18% 42%,rgba(47,149,105,.22) 0 16%,transparent 17%),
    radial-gradient(ellipse at 39% 20%,rgba(74,176,122,.18) 0 14%,transparent 15%),
    radial-gradient(ellipse at 54% 48%,rgba(35,128,92,.16) 0 17%,transparent 18%),
    radial-gradient(ellipse at 72% 27%,rgba(78,177,118,.14) 0 15%,transparent 16%),
    radial-gradient(ellipse at 83% 60%,rgba(41,133,95,.12) 0 18%,transparent 19%);
}
.nss-botanical-stage::after{
  width:min(610px,46vw);
  height:min(440px,34vw);
  left:-160px;
  bottom:4%;
  transform:rotate(18deg);
  opacity:.24;
  background:
    radial-gradient(ellipse at 19% 38%,rgba(47,149,105,.2) 0 16%,transparent 17%),
    radial-gradient(ellipse at 42% 62%,rgba(86,181,126,.16) 0 15%,transparent 16%),
    radial-gradient(ellipse at 61% 33%,rgba(32,122,88,.15) 0 17%,transparent 18%),
    radial-gradient(ellipse at 79% 58%,rgba(68,164,112,.13) 0 16%,transparent 17%);
}
.nss-botanical-stage>*{position:relative;z-index:1}

/* --------------------------- Accueil riche ---------------------------- */
.home-showcase{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(460px,.97fr);
  min-height:470px;
  margin:0 0 18px;
  border:1px solid var(--nss-border);
  border-radius:30px;
  background:
    radial-gradient(circle at 18% 10%,rgba(255,255,255,.98),rgba(255,255,255,.78) 42%,transparent 64%),
    linear-gradient(125deg,rgba(250,255,253,.98),rgba(225,245,239,.91));
  box-shadow:0 28px 70px rgba(13,77,73,.14),inset 0 1px 0 rgba(255,255,255,.9);
}
.home-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
   radial-gradient(circle at 8% 82%,rgba(71,167,132,.11),transparent 21%),
   radial-gradient(circle at 72% 12%,rgba(217,165,69,.13),transparent 22%),
   linear-gradient(90deg,rgba(255,255,255,.26),transparent 52%);
}
.home-showcase-copy{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(34px,5vw,72px);
  padding-right:clamp(24px,4vw,52px);
}
.home-showcase-copy .eyebrow{font-size:12px;letter-spacing:.17em;color:#4eaa93;margin-bottom:10px}
.home-showcase-copy h1{
  margin:0 0 17px;
  max-width:820px;
  color:#132c2a;
  font-family:var(--display-font,"Segoe UI",Arial,sans-serif);
  font-size:clamp(40px,4.8vw,72px);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:900;
}
.home-showcase-copy h1 span{
  display:inline-block;
  color:var(--nss-deep);
  background:linear-gradient(95deg,#0b5d56,#168e7b 58%,#4b9f61);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.home-showcase-lead{max-width:680px;margin:0 0 22px;color:#5d6f6c;font-size:clamp(16px,1.3vw,20px);line-height:1.52}
.home-showcase-actions{display:flex;gap:12px;flex-wrap:wrap;margin:4px 0 20px}
.premium-cta{
  position:relative!important;
  overflow:hidden!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  min-height:52px;
  padding:13px 22px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#117b70,#0b5b57 62%,#083f3c)!important;
  box-shadow:0 14px 30px rgba(9,84,79,.22),inset 0 1px 0 rgba(255,255,255,.38)!important;
  letter-spacing:.01em;
}
.premium-cta.secondary{background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(232,247,243,.92))!important;color:var(--nss-deep)!important;border:1px solid rgba(122,177,169,.5)!important;box-shadow:0 10px 24px rgba(13,77,73,.1),inset 0 1px 0 #fff!important}
.premium-cta>b{font-size:20px;line-height:1;transition:transform .2s ease}
.premium-cta:hover>b{transform:translateX(4px)}
.premium-cta::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 0 33%,rgba(255,255,255,.7) 48%,rgba(255,224,137,.78) 52%,transparent 67%);
  transform:translateX(-145%);
  animation:nssPremiumSweep 3.4s ease-in-out infinite;
  opacity:.72;
  mix-blend-mode:screen;
}
@keyframes nssPremiumSweep{0%,52%{transform:translateX(-145%)}76%,100%{transform:translateX(145%)}}
.home-showcase-benefits{display:flex;gap:20px;flex-wrap:wrap;color:#385b57;font-size:13px;font-weight:760}
.home-showcase-benefits span{display:flex;align-items:center;gap:7px;max-width:180px}
.home-showcase-benefits b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(235,249,245,.9);color:#0e756b;font-size:18px;border:1px solid rgba(117,185,174,.45)}
.home-showcase-visual{position:relative;min-height:470px;overflow:hidden;background:
 radial-gradient(circle at 74% 25%,rgba(255,222,151,.38),transparent 24%),
 radial-gradient(circle at 35% 76%,rgba(94,188,139,.24),transparent 28%),
 linear-gradient(145deg,#eef9f5,#dff2ea)}
.home-showcase-visual::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(90deg,#eef8f5 0%,rgba(238,248,245,.28) 16%,transparent 44%),linear-gradient(180deg,rgba(255,255,255,.02),rgba(9,92,81,.05));
  pointer-events:none;
}
.home-showcase-visual img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(1.04) contrast(1.02);pointer-events:none;user-select:none}
.home-showcase-note{
  position:absolute;
  z-index:4;
  top:15%;left:8%;
  padding:12px 16px;
  transform:rotate(-5deg);
  color:#0e6058;
  font-size:clamp(18px,1.7vw,28px);
  line-height:1.05;
  font-style:italic;
  font-weight:760;
  text-shadow:0 1px 0 #fff;
}
.home-showcase-note strong{color:#166e61}
.home-showcase-chip{position:absolute;z-index:4;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid rgba(215,172,76,.42);box-shadow:0 12px 25px rgba(13,77,73,.13);font-size:24px;backdrop-filter:blur(7px)}
.home-showcase-chip.chip-one{right:7%;top:23%}.home-showcase-chip.chip-two{right:4%;top:42%}.home-showcase-chip.chip-three{right:9%;top:61%}
.home-feature-section{margin:18px 0 20px}
.home-feature-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 4px 14px}.home-feature-heading h2{margin:1px 0 0;font-size:clamp(26px,2.6vw,38px);letter-spacing:-.025em;color:#173f3b}
.home-feature-grid-rich{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.home-feature-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(115px,42%) 1fr;
  min-height:176px;
  color:var(--ink);
  text-decoration:none;
  border:1px solid rgba(122,177,169,.32);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(245,251,249,.91));
  box-shadow:var(--nss-card-shadow);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.home-feature-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.55),transparent 34%,transparent 76%,rgba(44,147,126,.055))}
.home-feature-card:hover{transform:translateY(-4px);border-color:rgba(63,151,137,.52);box-shadow:0 20px 42px rgba(13,77,73,.15),inset 0 1px 0 #fff}
.home-feature-card img{width:100%;height:100%;min-height:176px;object-fit:cover;object-position:center;display:block}
.home-feature-card>div{position:relative;z-index:2;padding:18px 16px 15px;display:flex;flex-direction:column}
.home-feature-card h3{margin:0 0 7px;font-size:18px;color:#153f3b;line-height:1.18}
.home-feature-card p{margin:0 0 11px;color:#657471;font-size:13px;line-height:1.42}
.home-feature-card span{margin-top:auto;color:#087067;font-size:13px;font-weight:900}
.home-final-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 0;padding:16px 22px;border-radius:22px;box-shadow:var(--nss-card-shadow)}
.home-final-cta>div{display:flex;align-items:center;gap:12px}.home-final-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff2ce;color:#a66a11;font-size:20px}.home-final-cta strong,.home-final-cta small{display:block}.home-final-cta strong{font-size:18px;color:#173f3b}.home-final-cta small{color:var(--muted);margin-top:2px}

/* -------------------------- Mon espace riche -------------------------- */
.dashboard-stage{padding-top:0}
.dashboard-welcome-rich{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  min-height:270px;
  margin:0 0 14px;
  border:1px solid var(--nss-border);
  border-radius:28px;
  background:linear-gradient(125deg,rgba(250,255,253,.98),rgba(224,244,238,.9));
  box-shadow:var(--nss-soft-shadow);
}
.dashboard-welcome-copy{position:relative;z-index:3;padding:30px 34px;display:flex;flex-direction:column;justify-content:center}
.dashboard-welcome-copy h1{margin:0;font-size:clamp(42px,4.3vw,66px);line-height:.96;letter-spacing:-.045em;color:#15302e}.dashboard-welcome-copy h1 span{color:#0b7469}
.dashboard-welcome-copy h2{margin:8px 0 5px;font-size:clamp(22px,2vw,30px);color:#183f3c}
.dashboard-welcome-copy>p:last-of-type{max-width:720px;margin:0;color:#5d706c;font-size:16px}
.dashboard-welcome-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.dashboard-welcome-visual{position:relative;min-height:270px;overflow:hidden;background:
 radial-gradient(circle at 76% 22%,rgba(255,221,146,.34),transparent 22%),
 radial-gradient(circle at 30% 80%,rgba(81,176,132,.22),transparent 27%),
 linear-gradient(145deg,#edf9f5,#dff2ea)}
.dashboard-welcome-visual::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#e8f5f1 0,rgba(232,245,241,.1) 38%,transparent 65%)}
.dashboard-welcome-visual img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(1.03);pointer-events:none;user-select:none}
.dashboard-handwrite{position:absolute;z-index:4;top:21%;left:8%;transform:rotate(-5deg);color:#0e635b;font-style:italic;font-size:clamp(17px,1.45vw,25px);line-height:1.07;font-weight:760;text-shadow:0 1px 0 #fff}
.dashboard-summary-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 18px}
.dashboard-summary-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;min-height:110px;padding:15px 14px;color:var(--ink);text-decoration:none;border:1px solid rgba(122,177,169,.33);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:var(--nss-card-shadow);transition:.2s transform,.2s box-shadow}
.dashboard-summary-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(13,77,73,.14),inset 0 1px 0 #fff}
.dashboard-summary-card .summary-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#edf9f5,#d6eee7);color:#0d776c;font-size:21px;font-weight:900}
.dashboard-summary-card small,.dashboard-summary-card strong,.dashboard-summary-card em{display:block}.dashboard-summary-card small{color:#556b67;font-weight:800;font-size:12px}.dashboard-summary-card strong{margin:2px 0;color:#0e5f58;font-size:clamp(22px,2vw,31px)}.dashboard-summary-card em{color:#7a8885;font-size:11px;font-style:normal}.dashboard-summary-card>b{color:#0d776c;font-size:18px}
.dashboard-summary-card>i{--p:0;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:conic-gradient(#31b77c calc(var(--p)*1%),#e5f1ed 0);font-style:normal;font-weight:900;font-size:11px;color:#0d5a54;position:relative}.dashboard-summary-card>i::before{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}.dashboard-summary-card>i{isolation:isolate}.dashboard-summary-card>i::after{content:attr(style);display:none}.dashboard-summary-card>i{z-index:0}.dashboard-summary-card>i{line-height:1}.dashboard-summary-card>i{box-shadow:inset 0 0 0 1px rgba(122,177,169,.22)}.dashboard-summary-card>i{color:transparent}.dashboard-summary-card>i::after{display:grid;place-items:center;content:"";position:absolute;inset:6px;border-radius:50%;background:#fff;z-index:-1}.dashboard-summary-card>i{font-size:0}.dashboard-summary-card>i::before{content:counter(nssPercent);display:none}
/* pourcentage visible via un petit label superposé */
.dashboard-summary-card:nth-child(3) i::marker{display:none}
.dashboard-quick-rich{margin:18px 0}.dashboard-section-heading-rich{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 4px 11px}.dashboard-section-heading-rich h2{margin:1px 0 0;font-size:clamp(24px,2.35vw,34px);letter-spacing:-.025em;color:#173f3b}
.dashboard-visual-grid-rich{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:9px}
.dashboard-visual-card-rich{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:180px;color:var(--ink);text-decoration:none;border:1px solid rgba(122,177,169,.34);border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 9px 22px rgba(13,77,73,.08),inset 0 1px 0 #fff;transition:.2s transform,.2s box-shadow,.2s border-color}
.dashboard-visual-card-rich:hover{transform:translateY(-4px);border-color:rgba(49,149,133,.58);box-shadow:0 18px 34px rgba(13,77,73,.14),inset 0 1px 0 #fff}
.dashboard-visual-card-rich img{width:100%;height:98px;object-fit:cover;display:block;background:#e8f7f2}.dashboard-visual-card-rich>div{padding:11px 11px 12px}.dashboard-visual-card-rich strong,.dashboard-visual-card-rich small{display:block}.dashboard-visual-card-rich strong{color:#153f3b;font-size:14px;line-height:1.15}.dashboard-visual-card-rich small{margin-top:4px;color:#647470;font-size:11px;line-height:1.2}.dashboard-visual-card-rich>b{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e3f4ef;color:#0c7168;font-size:15px}.dashboard-visual-card-rich.is-warning{border-color:rgba(220,176,86,.65);background:linear-gradient(180deg,#fff,#fffaf0)}.dashboard-visual-card-rich.is-ready{border-color:rgba(71,177,124,.42)}
.dashboard-focus-grid{display:grid;grid-template-columns:1.15fr .92fr .83fr;gap:11px;margin:18px 0 20px;scroll-margin-top:105px}.dashboard-focus-card{min-width:0;padding:19px;border:1px solid rgba(122,177,169,.32);border-radius:21px;background:rgba(255,255,255,.9);box-shadow:var(--nss-card-shadow)}.guidance-focus-card{background:linear-gradient(145deg,rgba(255,254,249,.96),rgba(255,247,225,.9));border-color:rgba(218,176,87,.45)}.focus-card-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.focus-card-head>span{display:grid;place-items:center;min-width:38px;height:38px;border-radius:13px;background:#e8f6f2;color:#0c7067;font-size:19px}.guidance-focus-card .focus-card-head>span{background:#fff0ca;color:#a46a12}.focus-card-head h2{margin:0;font-size:clamp(19px,1.6vw,25px);line-height:1.16}.focus-card-head .eyebrow{margin:0 0 2px}.focus-card-head .guidance-count{margin-left:auto;white-space:nowrap}.dashboard-focus-card>p{color:#5e716d;margin:7px 0 13px}.report-periods{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 14px}.report-periods a{padding:8px 14px;border-radius:999px;border:1px solid rgba(122,177,169,.4);background:#f5fbf9;color:#0c6b63;text-decoration:none;font-size:12px;font-weight:850}.report-periods a:first-child{background:#0c7469;color:#fff}.focus-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.focus-actions .button{flex:1;min-width:150px}.rich-macros{grid-template-columns:repeat(3,1fr);gap:7px}.rich-macros span{padding:13px 8px;background:linear-gradient(145deg,#f2faf7,#e9f5f1)}.rich-macros b{font-size:20px}
.dashboard-focus-card .guidance-grid{display:grid;gap:7px}.dashboard-focus-card .guidance-item{grid-template-columns:auto 1fr auto;padding:10px 11px;border-radius:13px}.dashboard-focus-card .guidance-item>b{color:#0f6f66}

/* Tables/accordéons : plus propres sans masquer les fonctions. */
.dashboard-data-stack{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:11px}.dashboard-data-panel{margin:0}.dashboard-data-panel:first-child{grid-column:1/-1}.dashboard-data-panel>summary{min-height:70px}.dashboard-data-panel[open]{grid-column:1/-1}.dashboard-data-panel .table-wrap{border-radius:14px}.dashboard-data-panel table th{background:#f3f9f7;color:#285b56}

/* En-tête : boutons plus profonds, mais navigation regroupée conservée. */
.app-header{background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(235,248,244,.94));backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.app-banner{background:linear-gradient(180deg,#fbfffd,#eef9f5)}
#main-nav>a,#main-nav>details>summary{border-radius:11px;padding:9px 10px!important;transition:.18s background,.18s color,.18s transform}
#main-nav>a:hover,#main-nav>details>summary:hover{background:#e3f4ef;color:#0b6b63!important;transform:translateY(-1px)}
#main-nav .nav-main-space{background:#dff2ed;border:1px solid #9bccc4;color:#0c6a62!important;box-shadow:0 5px 12px rgba(13,77,73,.08)}
.nav-dropdown{border-radius:16px!important;box-shadow:0 20px 50px rgba(13,77,73,.18)!important}

/* Mobile / tablette : même langage visuel, pas de page différente. */
@media(max-width:1250px){
 .home-showcase{grid-template-columns:1fr 46%}.home-feature-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-visual-grid-rich{grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-summary-card:nth-child(4),.dashboard-summary-card:nth-child(5){grid-column:auto}.dashboard-focus-grid{grid-template-columns:1fr 1fr}.dashboard-focus-grid .macros-focus-card{grid-column:1/-1}.dashboard-data-stack{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
 .nss-botanical-stage{width:min(100%,94vw)}.nss-botanical-stage::before{width:70vw;height:50vw;opacity:.12}.home-showcase,.dashboard-welcome-rich{grid-template-columns:1fr}.home-showcase-visual{min-height:330px;order:-1}.home-showcase-copy{padding:30px 26px 34px}.home-showcase-copy h1{font-size:clamp(38px,8vw,58px)}.home-showcase-note{left:5%;top:9%}.dashboard-welcome-visual{min-height:220px;order:-1}.dashboard-welcome-copy{padding:24px}.dashboard-summary-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-card:last-child{grid-column:1/-1}.dashboard-visual-grid-rich{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-focus-grid{grid-template-columns:1fr}.dashboard-focus-grid .macros-focus-card{grid-column:auto}.dashboard-data-stack{grid-template-columns:1fr}.home-final-cta{align-items:stretch;flex-direction:column}.home-final-cta .button{width:100%}
}
@media(max-width:620px){
 .nss-botanical-stage{width:100%;padding-left:10px;padding-right:10px}.nss-botanical-stage::before{display:block;width:125vw;height:82vw;top:12%;right:-58vw;opacity:.075}.nss-botanical-stage::after{display:block;width:110vw;height:74vw;left:-66vw;bottom:18%;opacity:.055}.home-showcase,.dashboard-welcome-rich{border-radius:22px}.home-showcase-visual{min-height:235px}.home-showcase-copy{padding:24px 18px 26px}.home-showcase-copy h1{font-size:clamp(34px,10.5vw,48px)}.home-showcase-lead{font-size:15px}.home-showcase-actions{display:grid}.home-showcase-actions .button{width:100%}.home-showcase-benefits{display:grid;gap:8px}.home-showcase-benefits span{max-width:none}.home-showcase-chip{width:44px;height:44px;font-size:18px}.home-feature-grid-rich{grid-template-columns:1fr}.home-feature-card{grid-template-columns:130px 1fr;min-height:150px}.home-feature-card img{min-height:150px}.home-feature-heading{align-items:flex-start;flex-direction:column}.dashboard-welcome-visual{min-height:180px}.dashboard-welcome-copy h1{font-size:clamp(38px,12vw,52px)}.dashboard-welcome-actions{display:grid}.dashboard-welcome-actions .button{width:100%}.dashboard-summary-row{grid-template-columns:1fr}.dashboard-summary-card:last-child{grid-column:auto}.dashboard-visual-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-visual-card-rich{min-height:166px}.dashboard-visual-card-rich img{height:88px}.dashboard-section-heading-rich{align-items:flex-start;flex-direction:column}.dashboard-focus-card{padding:16px}.dashboard-data-stack{display:block}.dashboard-data-panel{margin-bottom:9px}.rich-macros{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:400px){.dashboard-visual-grid-rich{grid-template-columns:1fr 1fr}.home-feature-card{grid-template-columns:112px 1fr}.home-feature-card>div{padding:14px 12px}.home-feature-card h3{font-size:16px}.dashboard-summary-card strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.premium-cta::before{animation:none!important;display:none!important}.home-feature-card,.dashboard-visual-card-rich,.dashboard-summary-card{transition:none!important}}
/* Ajustement anneau kcal */
.dashboard-summary-card>i{display:grid!important;place-items:center!important;width:52px!important;height:52px!important;border-radius:50%!important;background:conic-gradient(#31b77c calc(var(--p)*1%),#e5f1ed 0)!important;box-shadow:inset 0 0 0 7px #fff,0 0 0 1px rgba(122,177,169,.22)!important;color:#0d5a54!important;font-size:11px!important;font-style:normal!important;font-weight:950!important;position:relative!important;z-index:1!important}
.dashboard-summary-card>i::before,.dashboard-summary-card>i::after{display:none!important}

/* V25 - Les animations lumineuses ne s'appliquent qu'aux vrais contrôles cliquables. */
a.button.premium-cta,button.premium-cta,.home-feature-card,.dashboard-visual-card-rich,.dashboard-summary-card{cursor:pointer}
.home-feature-card span,.dashboard-visual-card-rich b{position:relative}
.home-feature-card span::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:2px;background:linear-gradient(90deg,#0b756d,#8bd1bd,transparent);transform:scaleX(.42);transform-origin:left;transition:transform .22s ease}
.home-feature-card:hover span::after,.home-feature-card:focus-visible span::after{transform:scaleX(1)}
.home-feature-card:focus-visible,.dashboard-visual-card-rich:focus-visible,.dashboard-summary-card:focus-visible,a.button.premium-cta:focus-visible,button.premium-cta:focus-visible{outline:3px solid rgba(38,162,139,.32);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.home-feature-card span::after{transition:none!important}}

/* ======================================================================
   V.2026.10.04.26 — Correctif responsive global
   Empêche tout débordement horizontal sur mobile/tablette/PWA.
   ====================================================================== */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  html,body{overflow-x:hidden}
}
body{position:relative}
main,#contenu,
.home-stage,.dashboard-stage,.nss-botanical-stage,
.home-showcase,.dashboard-welcome-rich,
.home-feature-section,.home-feature-grid-rich,
.dashboard-summary-row,.dashboard-quick-rich,.dashboard-visual-grid-rich,
.dashboard-focus-grid,.dashboard-data-stack,
.home-final-cta{
  min-width:0!important;
  max-width:100%!important;
}

/* Le décor V25 dépassait volontairement du cadre avec des pseudo-éléments
   en vw ; sur mobile cela créait une vraie largeur de page supplémentaire. */
.nss-botanical-stage{
  width:100%!important;
  max-width:1520px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  transform:none!important;
  overflow-x:clip!important;
}
@supports not (overflow:clip){
  .nss-botanical-stage{overflow-x:hidden!important}
}
.nss-botanical-stage::before,
.nss-botanical-stage::after{
  max-width:100%!important;
}

/* Les contenus internes ne peuvent jamais forcer la largeur du viewport. */
.home-showcase>* ,
.dashboard-welcome-rich>* ,
.home-feature-card>* ,
.dashboard-summary-card>* ,
.dashboard-visual-card-rich>* ,
.dashboard-focus-card>*{
  min-width:0;
}
.home-showcase-copy,
.dashboard-welcome-copy,
.home-feature-card>div,
.dashboard-visual-card-rich>div{
  overflow-wrap:anywhere;
}
.home-showcase-visual img,
.dashboard-welcome-visual img,
.home-feature-card img,
.dashboard-visual-card-rich img{
  max-width:100%!important;
}

/* Bandeau de mise à jour : toujours dans la largeur réellement visible. */
.app-update.app-update-strip{
  left:0!important;
  right:0!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
.app-update-message,
.app-update-marquee,
.app-update-live{min-width:0!important;max-width:100%!important}
.app-update.app-update-strip button{
  justify-self:end!important;
  flex:0 0 auto!important;
}

/* Boutons premium un peu moins sombres et plus lisibles. */
.premium-cta:not(.secondary){
  background:linear-gradient(135deg,#159486,#0f756d 58%,#0a625c)!important;
  box-shadow:0 12px 28px rgba(12,112,103,.22),inset 0 1px 0 rgba(255,255,255,.42)!important;
}

@media(max-width:900px){
  main#contenu{
    width:100%!important;
    max-width:100%!important;
    padding-left:10px!important;
    padding-right:10px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .nss-botanical-stage{
    width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .nss-botanical-stage::before,
  .nss-botanical-stage::after{
    width:70vw!important;
    height:58vw!important;
    opacity:.07!important;
  }
  .nss-botanical-stage::before{right:-18vw!important;top:3%!important}
  .nss-botanical-stage::after{left:-18vw!important;bottom:12%!important}
  .home-showcase,
  .dashboard-welcome-rich{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .home-feature-grid-rich,
  .dashboard-summary-row,
  .dashboard-visual-grid-rich,
  .dashboard-focus-grid,
  .dashboard-data-stack{
    width:100%!important;
  }
}

@media(max-width:620px){
  main#contenu{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .nss-botanical-stage::before,
  .nss-botanical-stage::after{
    width:64vw!important;
    height:64vw!important;
  }
  .nss-botanical-stage::before{right:-22vw!important}
  .nss-botanical-stage::after{left:-22vw!important}
  .home-showcase-copy,
  .dashboard-welcome-copy{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .home-showcase-actions,
  .dashboard-welcome-actions,
  .focus-actions{
    width:100%!important;
    min-width:0!important;
  }
  .home-showcase-actions .button,
  .dashboard-welcome-actions .button,
  .focus-actions .button{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
  }
  .home-feature-card{
    grid-template-columns:minmax(96px,34%) minmax(0,1fr)!important;
    width:100%!important;
  }
  .dashboard-visual-grid-rich{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .dashboard-visual-card-rich{
    width:100%!important;
    min-width:0!important;
  }
}

@media(max-width:390px){
  .dashboard-visual-grid-rich{grid-template-columns:1fr!important}
  .home-feature-card{grid-template-columns:96px minmax(0,1fr)!important}
  .home-feature-card h3{font-size:15px!important}
  .home-feature-card p{font-size:12px!important}
}

/* ======================================================================
   V.2026.10.04.27 — Design global verre + arrière-plan fixe
   Refonte uniquement visuelle : aucune fonction ni destination de lien.
   ====================================================================== */
:root{
  --nss-glass-bg:rgba(255,255,255,.72);
  --nss-glass-bg-strong:rgba(249,255,253,.84);
  --nss-glass-line:rgba(72,154,142,.28);
  --nss-glass-line-strong:rgba(69,160,145,.42);
  --nss-glass-shadow:0 18px 44px rgba(17,83,76,.10),inset 0 1px 0 rgba(255,255,255,.92);
  --nss-glass-shadow-hover:0 22px 52px rgba(17,93,84,.15),0 0 0 4px rgba(101,197,179,.06),inset 0 1px 0 rgba(255,255,255,.96);
  --nss-glass-green:rgba(173,226,214,.34);
  --nss-glass-green-2:rgba(121,205,188,.22);
  --nss-glass-text:#0a5c54;
}

/* Fond fixe commun à TOUTES les pages. L'image est uniquement décorative. */
html{background:#edf7f4}
body{
  background:transparent!important;
  isolation:isolate;
  min-height:100dvh;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-3;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(249,253,252,.91) 0%,rgba(241,250,247,.88) 42%,rgba(232,247,242,.92) 100%),
    url("background-app-v27.webp?v=27") center 92px/min(1320px,88vw) auto no-repeat;
  transform:translateZ(0);
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 8% 18%,rgba(114,201,154,.14),transparent 25%),
    radial-gradient(circle at 92% 28%,rgba(42,156,137,.12),transparent 27%),
    radial-gradient(circle at 68% 86%,rgba(209,169,76,.07),transparent 24%);
}

/* Header et bandes : verre léger plutôt qu'aplats. */
.app-header{
  background:rgba(244,252,249,.86)!important;
  border-bottom:1px solid rgba(92,163,152,.25)!important;
  box-shadow:0 10px 30px rgba(24,86,79,.08)!important;
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
}
.app-banner{
  background:rgba(249,254,252,.62)!important;
  border-bottom-color:rgba(92,163,152,.18)!important;
}
.nav-row{gap:24px}
.development-notice{
  background:rgba(222,244,238,.68)!important;
  border-color:rgba(77,159,146,.24)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Plus d'air sur toutes les pages. */
main{
  width:min(1260px,calc(100% - 48px))!important;
  margin:34px auto 76px!important;
}
.page-heading{margin-bottom:28px!important}
.grid,.action-grid{gap:22px!important}
.stack{gap:18px!important}
.form-grid{gap:18px 20px!important}

/* Verre commun pour les blocs de toutes les rubriques. */
main .hero,
main .card,
main .food-card,
main .result-tile,
main .category-card,
main .summary-card,
main .exercise-card,
main .exercise-detail,
main .delavier-card,
main .delavier-hero,
main .program-card,
main .client-card,
main .professional-summary,
main .professional-review,
main .support-page-card,
main .auth-card,
main .install-hero,
main .account-summary,
main .account-status,
main .barcode-product,
main .barcode-result,
main .scanner-camera-card,
main .report-cover,
main .report-section,
main .report-access-banner,
main .secure-folder,
main .secure-files-panel,
main .secure-lock-panel,
main .daily-guidance,
main .nutrient-priority-panel,
main .activity-tracker,
main .activity-burn,
main .choice-tile,
main .custom-food-row,
main .custom-grand-total,
main .menu-command-center,
main .menu-step,
main .menu-choice-card,
main .day-card,
main .shopping-group,
main .shopping-row,
main .dashboard-summary-card,
main .dashboard-visual-card-rich,
main .dashboard-focus-card,
main .dashboard-data-panel,
main .home-feature-card,
main .home-showcase,
main .dashboard-welcome-rich,
.glass-dialog,
.menu-editor-dialog{
  background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(235,249,245,.67))!important;
  border:1px solid var(--nss-glass-line)!important;
  box-shadow:var(--nss-glass-shadow)!important;
  backdrop-filter:blur(16px) saturate(125%);
  -webkit-backdrop-filter:blur(16px) saturate(125%);
}

main .card:hover,
main .food-card:hover,
main .exercise-card:hover,
main .dashboard-summary-card:hover,
main .dashboard-visual-card-rich:hover,
main .home-feature-card:hover{
  border-color:var(--nss-glass-line-strong)!important;
  box-shadow:var(--nss-glass-shadow-hover)!important;
}

/* Champs et tableaux assortis au verre. */
input,select,textarea{
  background:rgba(255,255,255,.76)!important;
  border-color:rgba(84,155,145,.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(39,143,129,.68)!important;
  box-shadow:0 0 0 4px rgba(56,164,148,.10),inset 0 1px 0 rgba(255,255,255,.92)!important;
}
.table-wrap{
  background:rgba(255,255,255,.55)!important;
  border-color:rgba(89,157,147,.26)!important;
  box-shadow:0 12px 30px rgba(18,83,76,.07)!important;
  backdrop-filter:blur(12px);
}
table{background:transparent!important}
th{background:rgba(220,243,237,.68)!important;color:#174f49!important}
td{background:rgba(255,255,255,.46)}

/* Boutons = verre vert très translucide, bombé mais léger. */
.button:not(.danger),
button:not(.danger):not(.dialog-x):not(.app-dialog-close){
  color:var(--nss-glass-text)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.78),rgba(161,220,207,.30) 54%,rgba(120,202,185,.22))!important;
  border:1px solid rgba(75,163,149,.42)!important;
  border-radius:16px!important;
  box-shadow:
    0 11px 28px rgba(19,105,95,.11),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -10px 18px rgba(44,164,143,.035)!important;
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  text-shadow:0 1px 0 rgba(255,255,255,.72);
}
.button:not(.danger):hover,
button:not(.danger):not(.dialog-x):not(.app-dialog-close):hover{
  color:#064e48!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.88),rgba(174,232,219,.40) 56%,rgba(120,207,189,.28))!important;
  border-color:rgba(55,154,139,.58)!important;
  box-shadow:
    0 15px 34px rgba(19,105,95,.16),
    0 0 0 4px rgba(90,194,175,.07),
    inset 0 1px 0 #fff!important;
}
.secondary{
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(226,246,241,.58))!important;
  color:#155e57!important;
}

/* Les CTA gardent une lumière vivante, mais sans aplat vert foncé. */
.premium-cta:not(.danger),
.action-pulse:not(.danger),
.action-soft-pulse:not(.danger){
  background:
    linear-gradient(145deg,rgba(255,255,255,.80),rgba(146,218,202,.38) 52%,rgba(99,192,173,.26))!important;
  color:#07584f!important;
}
.premium-cta::before{
  opacity:.72!important;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.78) 45%,rgba(255,255,255,.95) 50%,rgba(255,255,255,.30) 58%,transparent 78%)!important;
}
@keyframes nssGlassBreath{
  0%,100%{box-shadow:0 10px 26px rgba(22,112,101,.10),inset 0 1px 0 rgba(255,255,255,.95)}
  50%{box-shadow:0 14px 34px rgba(22,128,114,.17),0 0 0 4px rgba(108,210,191,.06),inset 0 1px 0 #fff}
}
.action-pulse,.action-soft-pulse,.premium-cta{animation:nssGlassBreath 4.8s ease-in-out infinite}

/* Cartes d'accès rapides : moins serrées, plus lisibles. */
.dashboard-visual-grid-rich{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
}
.dashboard-visual-card-rich{
  min-height:210px!important;
  border-radius:22px!important;
  overflow:hidden!important;
}
.dashboard-visual-card-rich img{height:118px!important;object-fit:cover!important}
.dashboard-visual-card-rich>div{padding:14px 14px 16px!important}
.dashboard-summary-row{gap:16px!important;margin:18px 0 28px!important}
.dashboard-summary-card{padding:20px!important;border-radius:20px!important}

/* Dashboard : le bloc journalier n'est plus écrasé au centre. */
.dashboard-focus-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;
  gap:20px!important;
  margin:26px 0 30px!important;
}
.report-focus-card{grid-column:1!important;grid-row:1!important}
.macros-focus-card{grid-column:2!important;grid-row:1!important}
.guidance-focus-card{grid-column:1/-1!important;grid-row:2!important;padding:24px!important}
.dashboard-focus-card{padding:24px!important;border-radius:24px!important}
.dashboard-focus-card .guidance-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.dashboard-focus-card .guidance-item{padding:16px 18px!important;min-height:96px!important}
.focus-card-head{gap:14px!important;margin-bottom:14px!important}
.focus-card-head h2{font-size:clamp(22px,2vw,29px)!important}
.dashboard-data-stack{gap:16px!important;margin-top:28px!important}
.dashboard-data-panel{border-radius:22px!important}
.dashboard-data-panel>summary{padding:18px 20px!important;min-height:78px!important}
.dashboard-data-body{padding:18px!important}

/* Menus, recettes, scanner, exercices, dossiers : respirations communes. */
.menu-choice-grid,.exercise-grid,.food-cards,.client-cards,.progress-grid,.report-grid,.subfolder-grid{
  gap:20px!important;
}
.day-card,.shopping-group,.exercise-card,.food-card,.report-section{border-radius:22px!important}
.glass-dialog,.menu-editor-dialog{border-radius:26px!important}
.recipe-content{background:rgba(255,255,255,.62)!important;border-color:rgba(91,160,149,.28)!important}
.recipe-ingredients span{background:rgba(255,255,255,.68)!important}

/* Pieds de page et sources : transparence cohérente. */




@media(max-width:1100px){
  main{width:min(100% - 28px,1100px)!important}
  .dashboard-visual-grid-rich{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:850px){
  body::before{
    background:
      linear-gradient(180deg,rgba(249,253,252,.94),rgba(239,249,246,.93)),
      url("background-app-v27.webp?v=27") center 120px/115vw auto no-repeat;
  }
  main{width:calc(100% - 18px)!important;margin:18px auto 92px!important}
  .dashboard-visual-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  .dashboard-focus-grid{grid-template-columns:1fr!important;gap:14px!important}
  .report-focus-card,.macros-focus-card,.guidance-focus-card{grid-column:auto!important;grid-row:auto!important}
  .dashboard-focus-card .guidance-grid{grid-template-columns:1fr!important}
  .dashboard-summary-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:560px){
  body::before{
    background:
      linear-gradient(180deg,rgba(250,254,252,.955),rgba(239,249,246,.945)),
      url("background-app-v27.webp?v=27") center 105px/145vw auto no-repeat;
  }
  main{width:calc(100% - 14px)!important;margin-top:14px!important}
  .dashboard-visual-grid-rich{grid-template-columns:1fr!important}
  .dashboard-visual-card-rich{min-height:0!important;display:grid!important;grid-template-columns:120px minmax(0,1fr)!important}
  .dashboard-visual-card-rich img{height:100%!important;min-height:132px!important}
  .dashboard-summary-row{grid-template-columns:1fr!important}
  .dashboard-focus-card{padding:18px!important}
  .grid,.action-grid,.form-grid{gap:14px!important}
  .button,button{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  .action-pulse,.action-soft-pulse,.premium-cta{animation:none!important}
}

/* ======================================================================
   V.2026.10.04.28 — Fond plein écran + verre clair + images non coupées
   Correctif uniquement visuel / cache : aucune logique métier modifiée.
   ====================================================================== */
:root{
  --nss-v28-ink:#123f3a;
  --nss-v28-muted:#5f7470;
  --nss-v28-line:rgba(63,151,137,.25);
  --nss-v28-glass:rgba(255,255,255,.62);
  --nss-v28-glass-strong:rgba(255,255,255,.74);
  --nss-v28-mint:rgba(184,232,222,.28);
  --nss-v28-mint-strong:rgba(143,216,201,.34);
  --nss-v28-shadow:0 14px 34px rgba(24,92,82,.09),inset 0 1px 0 rgba(255,255,255,.96);
  --nss-v28-shadow-hover:0 20px 46px rgba(24,102,91,.13),0 0 0 4px rgba(124,208,192,.06),inset 0 1px 0 #fff;
}

/* Le fond couvre réellement TOUT l'écran et reste fixe au défilement. */
html,body{
  background:#edf8f4!important;
  overflow-x:clip!important;
}
@supports not (overflow:clip){html,body{overflow-x:hidden!important}}
body{
  position:relative;
  min-height:100dvh;
  color:var(--nss-v28-ink);
}
body::before{
  content:"";
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  z-index:-4!important;
  pointer-events:none!important;
  background-image:
    linear-gradient(180deg,rgba(250,254,253,.66),rgba(240,250,247,.60) 48%,rgba(235,248,244,.66)),
    url("background-app-v27.webp?v=28")!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center center,center center!important;
  background-size:cover,cover!important;
  transform:none!important;
}
body::after{
  content:"";
  position:fixed!important;
  inset:0!important;
  z-index:-3!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,255,255,.34),transparent 31%),
    radial-gradient(circle at 86% 22%,rgba(116,205,188,.08),transparent 34%),
    radial-gradient(circle at 55% 88%,rgba(213,178,94,.045),transparent 30%)!important;
}

/* Les conteneurs ne masquent plus le fond par de grands aplats opaques. */
.home-stage,.dashboard-stage,.nss-botanical-stage,
main,.page-wrap,.app-main{
  background:transparent!important;
}
main{
  width:min(1380px,calc(100% - 44px))!important;
  margin:32px auto 78px!important;
}
.nss-botanical-stage{width:100%!important;max-width:none!important}

/* Header clair et transparent. */
.app-header{
  background:rgba(247,253,251,.76)!important;
  border-bottom:1px solid rgba(73,153,141,.22)!important;
  box-shadow:0 8px 28px rgba(30,91,83,.07)!important;
  backdrop-filter:blur(18px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(125%)!important;
}
.app-banner,.nav-shell,.nav-row{
  background:transparent!important;
}
.development-notice{
  background:rgba(224,246,240,.58)!important;
  color:#315f59!important;
  border-color:rgba(75,157,145,.20)!important;
}

/* Verre plus transparent sur l'ensemble des pages. */
main .hero,main .card,main .food-card,main .result-tile,main .category-card,
main .summary-card,main .exercise-card,main .exercise-detail,main .delavier-card,
main .delavier-hero,main .program-card,main .client-card,main .professional-summary,
main .professional-review,main .support-page-card,main .auth-card,main .install-hero,
main .account-summary,main .account-status,main .barcode-product,main .barcode-result,
main .scanner-camera-card,main .report-cover,main .report-section,main .report-access-banner,
main .secure-folder,main .secure-files-panel,main .secure-lock-panel,main .daily-guidance,
main .nutrient-priority-panel,main .activity-tracker,main .activity-burn,main .choice-tile,
main .custom-food-row,main .custom-grand-total,main .menu-command-center,main .menu-step,
main .menu-choice-card,main .day-card,main .shopping-group,main .shopping-row,
main .dashboard-summary-card,main .dashboard-visual-card-rich,main .dashboard-focus-card,
main .dashboard-data-panel,main .home-feature-card,main .home-showcase,
main .dashboard-welcome-rich,.glass-dialog,.menu-editor-dialog,.glass-panel{
  background:linear-gradient(145deg,rgba(255,255,255,.69),rgba(239,250,247,.55))!important;
  border:1px solid var(--nss-v28-line)!important;
  box-shadow:var(--nss-v28-shadow)!important;
  backdrop-filter:blur(15px) saturate(118%)!important;
  -webkit-backdrop-filter:blur(15px) saturate(118%)!important;
}

/* Boutons : vrai verre clair, léger vert à l'intérieur, pas d'aplat foncé. */
a.button:not(.danger),.button:not(.danger),
button:not(.danger):not(.dialog-x):not(.app-dialog-close),
.report-periods a,.shopping-day-picker a,.week-selector a{
  color:#115d55!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.68) 0%,rgba(215,244,237,.46) 52%,rgba(166,225,212,.30) 100%)!important;
  border:1px solid rgba(67,160,146,.34)!important;
  border-radius:16px!important;
  box-shadow:
    0 9px 22px rgba(33,118,105,.08),
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 -8px 16px rgba(72,181,160,.025)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.85)!important;
  backdrop-filter:blur(14px) saturate(135%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(135%)!important;
}
a.button:not(.danger):hover,.button:not(.danger):hover,
button:not(.danger):not(.dialog-x):not(.app-dialog-close):hover,
.report-periods a:hover,.shopping-day-picker a:hover,.week-selector a:hover{
  color:#084c46!important;
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(203,242,233,.55),rgba(152,220,205,.36))!important;
  border-color:rgba(51,153,138,.48)!important;
  box-shadow:var(--nss-v28-shadow-hover)!important;
  transform:translateY(-1px);
}
.report-periods a:first-child,.report-periods a.is-current,
.shopping-day-picker a.is-current,.recipe-tabs button.is-active{
  color:#0b5a52!important;
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(183,231,220,.52))!important;
  border-color:rgba(65,158,144,.42)!important;
}
.premium-cta:not(.danger),.action-pulse:not(.danger),.action-soft-pulse:not(.danger){
  color:#0b5b53!important;
  background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(193,238,228,.50) 55%,rgba(149,219,204,.34))!important;
  box-shadow:0 11px 27px rgba(30,119,105,.10),inset 0 1px 0 #fff!important;
}
.premium-cta::before{
  opacity:.82!important;
  background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.20) 36%,rgba(255,255,255,.96) 50%,rgba(255,255,255,.18) 63%,transparent 82%)!important;
}
@keyframes nssGlassBreathV28{
  0%,100%{box-shadow:0 9px 24px rgba(30,119,105,.08),inset 0 1px 0 #fff}
  50%{box-shadow:0 14px 32px rgba(30,134,117,.14),0 0 0 4px rgba(128,211,195,.055),inset 0 1px 0 #fff}
}
.action-pulse,.action-soft-pulse,.premium-cta{animation:nssGlassBreathV28 5.2s ease-in-out infinite!important}

/* Toutes les images de cartes sont centrées et montrées en entier. */
.home-feature-card img,.dashboard-visual-card-rich img{
  width:100%!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:rgba(229,248,243,.46)!important;
  padding:8px!important;
  box-sizing:border-box!important;
}
.home-feature-card img{height:190px!important;min-height:190px!important}
.dashboard-visual-card-rich img{height:154px!important;min-height:154px!important}
.home-showcase-visual img,.dashboard-welcome-visual img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* Moins de cartes tassées sur une même ligne. */
.home-feature-grid-rich{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
}
.home-feature-card{
  grid-template-columns:minmax(150px,43%) minmax(0,1fr)!important;
  min-height:190px!important;
}
.dashboard-summary-row{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  margin:20px 0 30px!important;
}
.dashboard-visual-grid-rich{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
}
.dashboard-visual-card-rich{min-height:235px!important}
.dashboard-visual-card-rich>div{padding:16px 16px 18px!important}

/* Bloc journalier : deux grands blocs, puis le fil conducteur sur toute la largeur. */
.dashboard-focus-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:22px!important;
  margin:30px 0 34px!important;
}
.report-focus-card{grid-column:1!important;grid-row:1!important}
.macros-focus-card{grid-column:2!important;grid-row:1!important}
.guidance-focus-card{grid-column:1/-1!important;grid-row:2!important;padding:26px!important}
.dashboard-focus-card{padding:26px!important}
.dashboard-focus-card .guidance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.dashboard-focus-card .guidance-item{min-height:105px!important;padding:18px 20px!important}

/* Tables / formulaires plus aérés. */
.grid,.action-grid,.form-grid{gap:20px!important}
.stack{gap:19px!important}
.table-wrap{background:rgba(255,255,255,.48)!important}
th{background:rgba(218,243,236,.58)!important}
td{background:rgba(255,255,255,.38)!important}
input,select,textarea{background:rgba(255,255,255,.68)!important}

/* Bandeau de mise à jour clair : plus de grande barre vert foncé. */
.app-update.app-update-strip{
  background:rgba(225,247,241,.96)!important;
  color:#174e49!important;
  border-bottom:1px solid rgba(67,155,142,.26)!important;
  box-shadow:0 6px 18px rgba(28,92,83,.09)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
.app-update-marquee span,.app-update-live{
  color:#174e49!important;
  text-shadow:none!important;
}
.app-update.app-update-strip button{
  color:#15534d!important;
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(199,239,230,.66))!important;
  border:1px solid rgba(68,155,143,.34)!important;
  box-shadow:0 5px 15px rgba(31,109,98,.08),inset 0 1px 0 #fff!important;
}
.app-update.app-update-strip .app-update-progress{background:rgba(53,148,134,.12)!important}
.app-update.app-update-strip .app-update-progress span{background:linear-gradient(90deg,#65bfae,#d7b35c)!important}

/* Footer clair et lisible. */






/* Tablette */
@media(max-width:1100px){
  main{width:calc(100% - 28px)!important}
  .home-feature-grid-rich,.dashboard-visual-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-summary-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Mobile / tablette étroite */
@media(max-width:760px){
  body::before{
    width:100vw!important;height:100dvh!important;
    background-size:cover,cover!important;
    background-position:center center,center center!important;
  }
  main{width:calc(100% - 18px)!important;margin:18px auto 92px!important}
  .home-feature-grid-rich,.dashboard-visual-grid-rich,.dashboard-summary-row,.dashboard-focus-grid{grid-template-columns:1fr!important}
  .report-focus-card,.macros-focus-card,.guidance-focus-card{grid-column:auto!important;grid-row:auto!important}
  .dashboard-focus-card .guidance-grid{grid-template-columns:1fr!important}
  .home-feature-card{
    grid-template-columns:128px minmax(0,1fr)!important;
    min-height:150px!important;
  }
  .home-feature-card img{height:150px!important;min-height:150px!important;padding:6px!important}
  .dashboard-visual-card-rich{
    min-height:0!important;
    display:grid!important;
    grid-template-columns:130px minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .dashboard-visual-card-rich img{height:100%!important;min-height:145px!important;padding:6px!important}
  .dashboard-focus-card{padding:19px!important}
}
@media(max-width:430px){
  .home-feature-card,.dashboard-visual-card-rich{grid-template-columns:112px minmax(0,1fr)!important}
  .home-feature-card img,.dashboard-visual-card-rich img{min-height:132px!important;height:132px!important}
  .home-feature-card>div,.dashboard-visual-card-rich>div{padding:13px 12px!important}
}
@media(prefers-reduced-motion:reduce){
  .action-pulse,.action-soft-pulse,.premium-cta{animation:none!important}
}

/* ======================================================================
   V.2026.10.04.29 — Responsive final : cartes empilées, images centrées,
   en-tête menthe, fond fixe plein écran et mise à jour cohérente.
   Aucun changement fonctionnel.
   ====================================================================== */
:root{
  --nss29-ink:#123f3a;
  --nss29-muted:#60736f;
  --nss29-mint:#dff3ed;
  --nss29-mint-2:#edf9f5;
  --nss29-line:rgba(63,151,137,.27);
  --nss29-glass:rgba(255,255,255,.68);
  --nss29-glass-strong:rgba(255,255,255,.79);
  --nss29-shadow:0 14px 34px rgba(24,92,82,.09),inset 0 1px 0 rgba(255,255,255,.96);
}

html,body{max-width:100%;overflow-x:clip!important;background:#eaf7f2!important}
@supports not (overflow:clip){html,body{overflow-x:hidden!important}}
body{position:relative;min-height:100dvh;color:var(--nss29-ink)!important}
body::before{
  content:"";position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
  z-index:-5!important;pointer-events:none!important;
  background:
    linear-gradient(180deg,rgba(246,253,250,.42),rgba(237,249,245,.46)),
    url("background-app-v27.webp?v=31") center center / cover no-repeat!important;
  transform:none!important;
}
body::after{
  content:"";position:fixed!important;inset:0!important;z-index:-4!important;pointer-events:none!important;
  background:radial-gradient(circle at 50% 0,rgba(255,255,255,.30),transparent 38%)!important;
}

/* En-tête : même famille de vert clair que le reste, jamais blanc pur. */
.app-header{
  background:rgba(221,244,238,.91)!important;
  border-bottom:1px solid rgba(58,145,132,.24)!important;
  box-shadow:0 8px 24px rgba(28,91,82,.07)!important;
  backdrop-filter:blur(18px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(125%)!important;
}
.app-banner{
  background:linear-gradient(180deg,rgba(232,248,244,.96),rgba(219,243,237,.88))!important;
  border-bottom:1px solid rgba(58,145,132,.20)!important;
}
.nav-row{background:rgba(226,246,241,.82)!important;border-radius:0!important}
.development-notice{background:rgba(217,243,236,.84)!important;color:#315f59!important}
#main-nav .nav-menu-group>summary,#main-nav>a{color:#143f3b!important}
#main-nav .nav-menu-group>summary:hover,#main-nav>a:hover{color:#087269!important}

/* Fond visible sur toutes les pages, sans bandes blanches opaques. */
main,.home-stage,.dashboard-stage,.nss-botanical-stage,.page-wrap,.app-main{background:transparent!important}
main{width:min(1380px,calc(100% - 40px))!important;margin:28px auto 78px!important}

/* Boutons : verre clair légèrement vert, contraste net sans aplat sombre. */
a.button:not(.danger),.button:not(.danger),button:not(.danger):not(.dialog-x):not(.app-dialog-close),
.report-periods a,.shopping-day-picker a,.week-selector a{
  color:#0d5a52!important;
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(218,244,238,.57) 58%,rgba(176,226,215,.36))!important;
  border:1px solid rgba(61,157,142,.32)!important;
  box-shadow:0 8px 20px rgba(30,113,101,.07),inset 0 1px 0 #fff,inset 0 -7px 14px rgba(76,181,162,.025)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.9)!important;
  backdrop-filter:blur(13px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(13px) saturate(125%)!important;
}
a.button:not(.danger):hover,.button:not(.danger):hover,button:not(.danger):not(.dialog-x):not(.app-dialog-close):hover{
  color:#064c45!important;background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(205,241,233,.68))!important;
}

/* ACCUEIL + MON ESPACE : une image au-dessus, le texte dessous, tout centré. */
.home-feature-grid-rich,.dashboard-visual-grid-rich{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important;align-items:stretch!important;
}
.home-feature-card,.dashboard-visual-card-rich{
  position:relative!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;
  min-width:0!important;min-height:0!important;height:100%!important;overflow:hidden!important;
  text-align:center!important;border-radius:22px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.73),rgba(238,250,247,.61))!important;
  border:1px solid var(--nss29-line)!important;box-shadow:var(--nss29-shadow)!important;
}
.home-feature-card img,.dashboard-visual-card-rich img{
  display:block!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;
  aspect-ratio:16/9!important;object-fit:contain!important;object-position:center center!important;
  margin:0!important;padding:10px!important;background:rgba(226,247,241,.62)!important;box-sizing:border-box!important;
}
.home-feature-card>div,.dashboard-visual-card-rich>div{
  display:flex!important;flex:1!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;
  width:100%!important;padding:17px 18px 14px!important;text-align:center!important;
}
.home-feature-card h3,.dashboard-visual-card-rich strong{
  margin:0 0 6px!important;color:#153f3b!important;text-align:center!important;line-height:1.22!important;
}
.home-feature-card h3{font-size:19px!important}.dashboard-visual-card-rich strong{font-size:17px!important}
.home-feature-card p,.dashboard-visual-card-rich small{
  display:block!important;margin:0 auto 10px!important;max-width:34rem!important;color:var(--nss29-muted)!important;
  text-align:center!important;line-height:1.45!important;
}
.home-feature-card p{font-size:14px!important}.dashboard-visual-card-rich small{font-size:13px!important}
.home-feature-card span{margin-top:auto!important;text-align:center!important;color:#087067!important;font-weight:850!important}
.dashboard-visual-card-rich>b{
  position:static!important;display:grid!important;place-items:center!important;width:36px!important;height:36px!important;
  margin:0 auto 15px!important;border-radius:50%!important;background:rgba(218,244,238,.74)!important;color:#0b7168!important;
}
.dashboard-card-alert{
  position:absolute!important;top:12px!important;right:12px!important;z-index:3!important;
  padding:6px 10px!important;border-radius:999px!important;background:rgba(255,244,214,.94)!important;
  color:#81530d!important;border:1px solid rgba(201,150,55,.25)!important;font-size:12px!important;font-weight:900!important;
  box-shadow:0 6px 16px rgba(119,82,22,.09)!important;
}
.dashboard-state-pill,.guidance-count{display:none!important}
.dashboard-section-heading-rich{margin-bottom:16px!important}.dashboard-section-heading-rich>div{width:100%!important}
.dashboard-section-heading-rich h2,.home-feature-heading h2{text-align:left!important}

/* Résumé et fil conducteur : pas de colonne étroite ni de texte cassé. */
.dashboard-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;margin:22px 0 32px!important}
.dashboard-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;margin:30px 0 34px!important}
.report-focus-card{grid-column:1!important;grid-row:1!important}.macros-focus-card{grid-column:2!important;grid-row:1!important}
.guidance-focus-card{grid-column:1/-1!important;grid-row:2!important;padding:26px!important}
.dashboard-focus-card{min-width:0!important;padding:26px!important}
.focus-card-head{display:flex!important;align-items:flex-start!important;gap:12px!important;flex-wrap:wrap!important}
.focus-card-head>div{min-width:0!important;flex:1 1 240px!important}.focus-card-head h2{overflow-wrap:normal!important;word-break:normal!important}
.dashboard-focus-card .guidance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.guidance-item{min-width:0!important}

/* Footer clair, lisible et cohérent avec l'en-tête. */





/* Mise à jour : visible au-dessus de tout, dans navigateur comme PWA. */
.app-update.app-update-strip{position:fixed!important;left:0!important;right:0!important;top:0!important;width:100vw!important;z-index:99999!important}
body.nss-update-visible .app-header{margin-top:52px!important}

/* Tablette : 2 cartes, jamais de texte à côté d'une image. */
@media(max-width:1100px){
  main{width:calc(100% - 28px)!important}
  .home-feature-grid-rich,.dashboard-visual-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-summary-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Mobile : 1 carte pleine largeur, image en haut, texte dessous centré. */
@media(max-width:760px){
  body::before{background-position:center center!important;background-size:cover!important}
  main{width:calc(100% - 16px)!important;margin:14px auto 96px!important}
  .app-header{background:rgba(220,244,238,.96)!important}
  .app-banner{background:linear-gradient(180deg,rgba(232,248,244,.98),rgba(218,243,237,.95))!important}
  .home-feature-grid-rich,.dashboard-visual-grid-rich,.dashboard-summary-row,.dashboard-focus-grid{grid-template-columns:1fr!important;gap:16px!important}
  .home-feature-card,.dashboard-visual-card-rich{width:100%!important;display:flex!important;flex-direction:column!important;min-height:0!important}
  .home-feature-card img,.dashboard-visual-card-rich img{
    width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:16/9!important;
    object-fit:contain!important;object-position:center!important;padding:8px!important;
  }
  .home-feature-card>div,.dashboard-visual-card-rich>div{padding:16px 16px 12px!important;text-align:center!important;align-items:center!important}
  .home-feature-card h3,.dashboard-visual-card-rich strong{font-size:20px!important;text-align:center!important}
  .home-feature-card p,.dashboard-visual-card-rich small{font-size:14px!important;text-align:center!important}
  .dashboard-visual-card-rich>b{margin:0 auto 14px!important}
  .dashboard-card-alert{top:10px!important;right:10px!important}
  .report-focus-card,.macros-focus-card,.guidance-focus-card{grid-column:auto!important;grid-row:auto!important}
  .dashboard-focus-card{padding:19px!important}
  .dashboard-focus-card .guidance-grid{grid-template-columns:1fr!important;gap:14px!important}
  .guidance-item{grid-template-columns:auto minmax(0,1fr) auto!important;padding:16px!important}
  .guidance-item strong,.guidance-item small{text-align:left!important}
  .focus-card-head h2{font-size:clamp(24px,7vw,32px)!important;line-height:1.15!important}
  .dashboard-section-heading-rich h2,.home-feature-heading h2{text-align:center!important}
  .dashboard-section-heading-rich .eyebrow,.home-feature-heading .eyebrow{text-align:center!important}
  body.nss-update-visible .app-header{margin-top:64px!important}
}

@media(max-width:430px){
  main{width:calc(100% - 12px)!important}
  .home-feature-card img,.dashboard-visual-card-rich img{aspect-ratio:4/3!important}
  .home-feature-card h3,.dashboard-visual-card-rich strong{font-size:19px!important}
  .home-feature-card p,.dashboard-visual-card-rich small{font-size:13.5px!important}
  .dashboard-focus-card{padding:16px!important}
  .guidance-item{grid-template-columns:40px minmax(0,1fr) 26px!important;gap:10px!important}
  .guidance-item>span{width:40px!important;height:40px!important}
}

@media(prefers-reduced-motion:reduce){.action-pulse,.action-soft-pulse,.premium-cta{animation:none!important}}

/* ========================================================================== */
/* NSS V.2026.10.04.30 — harmonisation globale, responsive et progression     */
/* ========================================================================== */
:root{--nss-update-h:0px;--nss-glass:rgba(255,255,255,.72);--nss-glass-strong:rgba(255,255,255,.84);--nss-mint:rgba(218,244,238,.88);--nss-line:rgba(63,151,139,.25);--nss-ink:#153f3b}
html{background:#eaf7f2!important;overflow-x:hidden!important}
body{background:transparent!important;isolation:isolate!important;overflow-x:hidden!important;color:var(--nss-ink)!important}
body::before{
  content:""!important;position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
  background-image:linear-gradient(rgba(245,252,249,.28),rgba(235,249,244,.34)),url("background-app-v27.webp?v=31")!important;
  background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;
  z-index:-2!important;pointer-events:none!important;opacity:1!important;
}
body::after{
  content:""!important;position:fixed!important;inset:0!important;z-index:-1!important;pointer-events:none!important;
  background:linear-gradient(180deg,rgba(235,249,245,.12),rgba(255,255,255,.08) 45%,rgba(225,246,239,.18))!important;
}

/* Le fond reste visible derrière toutes les pages et tous les modules. */
main,.home-stage,.dashboard-stage,.nss-botanical-stage,.page-wrap,.app-main,.content-wrap{background:transparent!important}
.hero,.card,.result-card,.summary-card,.day-card,.category-card,.client-card,.food-card,.dashboard-data-panel,.dashboard-focus-card,.dashboard-summary-card,.home-feature-card,.dashboard-visual-card-rich,.glass-panel,.menu-command-center,.shopping-group,.week-plan article{
  background:linear-gradient(145deg,rgba(255,255,255,.83),rgba(236,249,245,.68))!important;
  border-color:var(--nss-line)!important;
  backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;
}
.table-wrap,table{background:rgba(255,255,255,.66)!important}th{background:rgba(218,243,236,.72)!important}td{background:rgba(255,255,255,.42)!important}

/* En-tête vert très clair, logo parfaitement visible. */
.app-header{background:rgba(221,245,239,.94)!important;border-bottom:1px solid rgba(56,145,132,.26)!important;box-shadow:0 7px 24px rgba(24,92,84,.08)!important;top:0!important}
.app-banner{background:linear-gradient(180deg,rgba(229,248,243,.98),rgba(217,244,237,.94))!important;border-bottom:1px solid rgba(60,149,136,.20)!important}
.app-banner img,.mobile-menu-brand,.brand-signature{opacity:1!important;filter:saturate(1.14) contrast(1.06) drop-shadow(0 7px 13px rgba(7,70,64,.13))!important}
.nav-row{background:rgba(225,247,241,.82)!important}
.development-notice{background:rgba(215,243,235,.88)!important}

/* Le bandeau de mise à jour ne peut plus être recouvert par l'en-tête sticky. */
.app-update.app-update-strip{top:0!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;border-radius:0!important;z-index:100000!important}
body.nss-update-visible .app-header{margin-top:var(--nss-update-h)!important;top:var(--nss-update-h)!important}

/* Cartes illustrées : image au-dessus, texte dessous, tout centré sur TOUS supports. */
.home-feature-grid-rich,.dashboard-visual-grid-rich{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
.home-feature-card,.dashboard-visual-card-rich{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;overflow:hidden!important;
  min-width:0!important;min-height:0!important;text-align:center!important;border-radius:24px!important;
}
.home-feature-card img,.dashboard-visual-card-rich img{
  display:block!important;width:100%!important;height:auto!important;aspect-ratio:16/9!important;object-fit:contain!important;object-position:center!important;
  margin:0!important;padding:12px!important;background:rgba(224,247,241,.54)!important;border-radius:22px 22px 0 0!important;
}
.home-feature-card>div,.dashboard-visual-card-rich>div{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;padding:18px 18px 12px!important;text-align:center!important}
.home-feature-card h3,.dashboard-visual-card-rich strong,.home-feature-card p,.dashboard-visual-card-rich small{text-align:center!important;max-width:100%!important}
.home-feature-card span{display:block!important;margin:8px auto 0!important;text-align:center!important}
.dashboard-visual-card-rich>b{position:static!important;display:grid!important;place-items:center!important;margin:0 auto 16px!important}
.dashboard-card-alert{position:static!important;display:inline-flex!important;align-self:center!important;margin:0 auto 10px!important;max-width:calc(100% - 24px)!important;white-space:normal!important;text-align:center!important}
.dashboard-section-heading-rich>div,.home-feature-heading>div{width:100%!important}
.dashboard-section-heading-rich h2,.dashboard-section-heading-rich p,.home-feature-heading h2,.home-feature-heading p{text-align:center!important}

/* Hero : équilibré en mobile/tablette, jamais une image de plusieurs écrans de haut. */
@media(max-width:760px){
  .home-showcase,.dashboard-welcome-rich{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  .home-showcase-copy,.dashboard-welcome-copy{padding:24px 18px!important;text-align:center!important}
  .home-showcase-copy h1,.home-showcase-copy p,.dashboard-welcome-copy h1,.dashboard-welcome-copy h2,.dashboard-welcome-copy p{text-align:center!important}
  .home-showcase-actions,.dashboard-welcome-actions{justify-content:center!important}
  .home-showcase-visual,.dashboard-welcome-visual{width:100%!important;max-height:330px!important;overflow:hidden!important}
  .home-showcase-visual img,.dashboard-welcome-visual img{display:block!important;width:100%!important;height:300px!important;max-height:300px!important;object-fit:contain!important;object-position:center!important;margin:auto!important}
  .page-heading{justify-content:center!important;text-align:center!important}.page-heading h1{width:100%!important;text-align:center!important}.back-home{margin-inline:auto!important}
}

/* Cercles segmentés, reliés aux données réelles du tableau de bord. */
.dashboard-live-progress{margin:18px 0 34px!important}
.segmented-progress-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}
.segmented-progress{
  display:flex!important;align-items:center!important;justify-content:center!important;gap:16px!important;min-width:0!important;
  padding:18px!important;border:1px solid rgba(62,151,138,.24)!important;border-radius:22px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(229,247,242,.64))!important;box-shadow:0 10px 28px rgba(18,88,80,.08)!important;
  backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;
}
.segmented-progress>div:last-child{min-width:0!important}.segmented-progress>div:last-child b,.segmented-progress>div:last-child small{display:block!important}.segmented-progress>div:last-child b{font-size:17px!important;color:#124d47!important}.segmented-progress>div:last-child small{margin-top:3px!important;color:#64736f!important}
.segmented-ring{position:relative!important;flex:0 0 88px!important;width:88px!important;height:88px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:rgba(255,255,255,.46)!important}
.segmented-ring span{position:absolute!important;top:4px!important;left:50%!important;width:5px!important;height:12px!important;margin-left:-2.5px!important;border-radius:99px!important;background:rgba(79,129,121,.14)!important;transform-origin:50% 40px!important;transform:rotate(calc(var(--i) * 15deg))!important;transition:background .25s ease,box-shadow .25s ease,opacity .25s ease!important}
.segmented-ring strong{font-size:18px!important;color:#174b46!important;letter-spacing:-.02em!important}
.segmented-progress.ring-green .segmented-ring span.is-on{background:#1fa477!important;box-shadow:0 0 8px rgba(31,164,119,.42)!important}
.segmented-progress.ring-orange .segmented-ring span.is-on{background:#e1a62d!important;box-shadow:0 0 8px rgba(225,166,45,.38)!important}
.segmented-progress.ring-red .segmented-ring span.is-on{background:#d75d55!important;box-shadow:0 0 8px rgba(215,93,85,.34)!important}
.segmented-progress.ring-neutral .segmented-ring span.is-on{background:#79a8a0!important}
.segmented-progress .segmented-ring span.is-on{animation:nssSegmentIn .42s both;animation-delay:calc(var(--i) * 18ms)}
@keyframes nssSegmentIn{from{opacity:.15;transform:rotate(calc(var(--i) * 15deg)) scaleY(.45)}to{opacity:1;transform:rotate(calc(var(--i) * 15deg)) scaleY(1)}}
.compact-rings{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.compact-rings .segmented-progress{display:grid!important;justify-items:center!important;text-align:center!important;padding:12px!important;gap:6px!important}.compact-rings .segmented-ring{width:76px!important;height:76px!important;flex-basis:76px!important}.compact-rings .segmented-ring span{top:4px!important;height:10px!important;transform-origin:50% 34px!important}.compact-rings .segmented-progress>div:last-child b,.compact-rings .segmented-progress>div:last-child small{text-align:center!important}

/* Le fil conducteur reste large et lisible ; aucun badge ne flotte hors de sa carte. */
.guidance-focus-card{grid-column:1/-1!important}.focus-card-head{align-items:center!important}.focus-card-head>div{min-width:0!important}.guidance-item{min-width:0!important}

/* Footer clair et lisible. */



@media(max-width:1100px){
  .home-feature-grid-rich,.dashboard-visual-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}
  .segmented-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  body::before{background-size:cover!important;background-position:center center!important}
  main{width:calc(100% - 18px)!important;margin:16px auto 104px!important}
  .home-feature-grid-rich,.dashboard-visual-grid-rich,.dashboard-summary-row,.dashboard-focus-grid{grid-template-columns:1fr!important;gap:18px!important}
  .home-feature-card,.dashboard-visual-card-rich{width:100%!important}
  .home-feature-card img,.dashboard-visual-card-rich img{aspect-ratio:16/9!important;max-height:250px!important;padding:10px!important}
  .home-feature-card>div,.dashboard-visual-card-rich>div{padding:18px 16px 12px!important}
  .dashboard-visual-card-rich>b{margin-bottom:16px!important}
  .segmented-progress-grid{grid-template-columns:1fr!important;gap:14px!important}
  .segmented-progress{justify-content:flex-start!important;padding:16px 18px!important}
  .compact-rings{grid-template-columns:1fr!important}
  .guidance-focus-card,.dashboard-focus-card{padding:18px!important}
  .guidance-grid.dashboard-guidance-grid{grid-template-columns:1fr!important}
  .guidance-item{grid-template-columns:42px minmax(0,1fr) 28px!important;gap:11px!important;padding:16px!important}
  .guidance-item strong,.guidance-item small{text-align:left!important;overflow-wrap:break-word!important}
  .focus-card-head{justify-content:center!important;text-align:center!important}.focus-card-head>span{margin-inline:auto!important}.focus-card-head>div{flex-basis:100%!important;text-align:center!important}.focus-card-head h2,.focus-card-head .eyebrow{text-align:center!important}
  body.nss-update-visible .app-header{margin-top:var(--nss-update-h)!important;top:var(--nss-update-h)!important}
}
@media(max-width:430px){
  main{width:calc(100% - 14px)!important}
  .home-feature-card img,.dashboard-visual-card-rich img{max-height:220px!important}
  .segmented-progress{gap:13px!important}.segmented-ring{width:80px!important;height:80px!important;flex-basis:80px!important}.segmented-ring span{transform-origin:50% 36px!important}
}
@media(prefers-reduced-motion:reduce){.segmented-progress .segmented-ring span.is-on{animation:none!important}}

/* ========================================================================== */
/* NSS V.2026.10.04.31 — finitions mobile, mise à jour visible, fond global   */
/* ========================================================================== */

/* La mention de développement ne bloque plus le haut des pages. */
.development-notice{display:none!important}



/* Le fond reste visible sur toutes les pages de /app/, y compris Nutrition / Activité / Suivi. */
html,body{min-height:100%!important;background:#edf8f4!important}
body::before{
  inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;
  background-image:linear-gradient(180deg,rgba(250,254,253,.42),rgba(240,250,247,.38) 48%,rgba(235,248,244,.46)),url("background-app-v27.webp?v=31")!important;
  background-size:cover,cover!important;background-position:center center,center center!important;background-attachment:fixed,fixed!important
}
main,.page-wrap,.app-main,.content-wrap,.home-stage,.dashboard-stage,.nss-botanical-stage{background:transparent!important}
.page-heading{background:rgba(255,255,255,.30)!important;border:1px solid rgba(75,157,145,.12)!important;border-radius:22px!important;padding:12px 16px!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.page-index .page-heading,.page-dashboard .page-heading{display:none!important}

/* En-tête vert très clair / verre, sans gros bandeau blanc. */
.app-header,.app-banner,.nav-row{
  background:linear-gradient(180deg,rgba(226,248,242,.90),rgba(219,244,238,.78))!important
}
.app-header{border-bottom:1px solid rgba(57,142,131,.25)!important}
.app-banner{border-bottom:1px solid rgba(57,142,131,.16)!important}

/* Bouton de vérification toujours visible : plus besoin d'ouvrir Mon compte. */
.update-check-button{
  appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  min-height:38px!important;padding:8px 13px!important;border:1px solid rgba(67,160,146,.30)!important;border-radius:14px!important;
  color:#0f655d!important;background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(208,242,234,.52))!important;
  box-shadow:0 7px 18px rgba(33,118,105,.07),inset 0 1px 0 rgba(255,255,255,.96)!important;font-weight:850!important;cursor:pointer!important
}
.update-check-button:hover{transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(33,118,105,.11),inset 0 1px 0 #fff!important}
.update-check-button:disabled{opacity:.68!important;cursor:wait!important}

/* Le bandeau de vraie nouvelle version reste au-dessus et décale l'en-tête. */
.app-update.app-update-strip{z-index:100000!important}
body.nss-update-visible .app-header{top:var(--nss-update-h)!important;margin-top:var(--nss-update-h)!important}

/* Tableau de bord : les vrais indicateurs sont visibles dès le premier écran. */
.dashboard-hero-rings{margin-top:18px!important;width:100%!important}
.dashboard-hero-rings .segmented-progress{min-height:108px!important}
.dashboard-live-progress{scroll-margin-top:150px!important}
#aujourdhui,#acces-rapides,#progression-du-jour{scroll-margin-top:150px!important}

/* La photo du hero se fond dans la carte au lieu d'être coupée net. */
.home-showcase-visual,.dashboard-welcome-visual{position:relative!important;isolation:isolate!important}
.home-showcase-visual::after,.dashboard-welcome-visual::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:-1px!important;height:64px!important;z-index:3!important;pointer-events:none!important;
  background:linear-gradient(to bottom,rgba(239,250,247,0),rgba(239,250,247,.86) 72%,rgba(239,250,247,1))!important
}

/* Cartes : image au-dessus, textes et flèches centrés sur tous les supports. */
.home-feature-card,.dashboard-visual-card-rich{display:flex!important;flex-direction:column!important;align-items:stretch!important;text-align:center!important}
.home-feature-card>div,.dashboard-visual-card-rich>div{align-items:center!important;text-align:center!important}
.home-feature-card h3,.home-feature-card p,.home-feature-card span,.dashboard-visual-card-rich strong,.dashboard-visual-card-rich small{text-align:center!important}
.dashboard-visual-card-rich>b{margin-inline:auto!important}

@media(max-width:1100px){
  .nav-row{gap:8px!important}
  .update-check-button{margin-left:auto!important}
}

@media(max-width:760px){
  main{width:calc(100% - 16px)!important;margin-top:14px!important}
  .app-banner{padding:12px 62px 10px 14px!important;min-height:112px!important}
  .app-banner img{max-width:min(86vw,520px)!important;max-height:92px!important;opacity:1!important}
  .nav-row{min-height:56px!important;padding:6px 10px!important;justify-content:flex-end!important}
  .site-return{display:none!important}
  .update-check-button{position:absolute!important;left:10px!important;top:50%!important;transform:translateY(-50%)!important;min-height:40px!important;padding:7px 10px!important;border-radius:13px!important}
  .update-check-button:hover{transform:translateY(-50%)!important}
  .update-check-button span{font-size:0!important}
  .update-check-button span::after{content:"MAJ";font-size:12px!important}
  .menu-toggle{margin-left:auto!important}

  .home-showcase,.dashboard-welcome-rich{display:flex!important;flex-direction:column!important;gap:0!important;overflow:hidden!important}
  .home-showcase-copy,.dashboard-welcome-copy{order:1!important;padding:22px 16px 18px!important;text-align:center!important}
  .home-showcase-visual,.dashboard-welcome-visual{order:2!important;width:100%!important;height:260px!important;min-height:260px!important;max-height:260px!important;overflow:hidden!important;background:rgba(232,248,243,.40)!important}
  .home-showcase-visual img,.dashboard-welcome-visual img{
    width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important;object-position:center 38%!important;padding:0!important;margin:0!important;border-radius:0!important
  }
  .home-showcase-visual::after,.dashboard-welcome-visual::after{height:72px!important}
  .dashboard-welcome-copy h1{font-size:clamp(34px,10vw,46px)!important}
  .dashboard-welcome-copy h2{font-size:22px!important}
  .dashboard-welcome-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%!important}
  .dashboard-welcome-actions .button{width:100%!important}

  .dashboard-hero-rings{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin-top:16px!important}
  .dashboard-hero-rings .segmented-progress{display:grid!important;justify-items:center!important;min-height:0!important;padding:9px 5px!important;gap:4px!important;border-radius:17px!important}
  .dashboard-hero-rings .segmented-ring{width:62px!important;height:62px!important;flex-basis:62px!important}
  .dashboard-hero-rings .segmented-ring span{top:3px!important;width:4px!important;height:8px!important;margin-left:-2px!important;transform-origin:50% 28px!important}
  .dashboard-hero-rings .segmented-ring strong{font-size:14px!important}
  .dashboard-hero-rings .segmented-progress>div:last-child b{font-size:12px!important;text-align:center!important}
  .dashboard-hero-rings .segmented-progress>div:last-child small{font-size:10px!important;line-height:1.15!important;text-align:center!important}

  .dashboard-live-progress .segmented-progress-grid{grid-template-columns:1fr!important}
  .dashboard-live-progress .segmented-progress{justify-content:center!important;text-align:center!important}
  .dashboard-live-progress .segmented-progress>div:last-child b,.dashboard-live-progress .segmented-progress>div:last-child small{text-align:center!important}

  .home-feature-grid-rich,.dashboard-visual-grid-rich{grid-template-columns:1fr!important;gap:18px!important}
  .home-feature-card,.dashboard-visual-card-rich{width:100%!important;max-width:none!important}
  .home-feature-card img,.dashboard-visual-card-rich img{width:100%!important;height:auto!important;max-height:260px!important;aspect-ratio:16/9!important;object-fit:contain!important;object-position:center!important;padding:10px!important}
  .home-feature-card>div,.dashboard-visual-card-rich>div{width:100%!important;padding:16px 14px 10px!important;align-items:center!important}
  .home-feature-card h3,.dashboard-visual-card-rich strong{font-size:20px!important;text-align:center!important}
  .home-feature-card p,.dashboard-visual-card-rich small{font-size:14px!important;text-align:center!important}
  .dashboard-card-alert{max-width:calc(100% - 28px)!important;margin:0 auto 10px!important;justify-content:center!important}

  .focus-card-head{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;gap:8px!important}
  .focus-card-head>span{margin:0 auto!important}
  .focus-card-head>div,.focus-card-head h2,.focus-card-head .eyebrow{text-align:center!important;width:100%!important}
  .guidance-grid.dashboard-guidance-grid{grid-template-columns:1fr!important}
  .guidance-item{grid-template-columns:42px minmax(0,1fr) 30px!important;align-items:center!important}
  .guidance-item strong,.guidance-item small{text-align:left!important}
}

@media(max-width:430px){
  .home-showcase-visual,.dashboard-welcome-visual{height:230px!important;min-height:230px!important;max-height:230px!important}
  .dashboard-hero-rings{gap:6px!important}
  .dashboard-hero-rings .segmented-ring{width:56px!important;height:56px!important;flex-basis:56px!important}
  .dashboard-hero-rings .segmented-ring span{transform-origin:50% 25px!important;height:7px!important}
}


/* ========================================================================== */
/* NSS V.2026.10.04.32 — ergonomie globale, recherche, géolocalisation       */
/* ========================================================================== */

:root{--nss-glass:rgba(248,255,252,.58);--nss-glass-strong:rgba(248,255,252,.76);--nss-line:rgba(39,142,127,.24);--nss-electric:#0a6f61;--nss-electric-dark:#07564c}
html{background:#edf8f4 url("background-app-v27.webp?v=32") center/cover fixed no-repeat!important}
body{background:transparent!important;overflow-x:hidden!important}
body::before{background-image:linear-gradient(180deg,rgba(247,253,251,.28),rgba(235,249,245,.24)),url("background-app-v27.webp?v=32")!important;background-size:cover,cover!important;background-position:center!important;background-attachment:fixed,fixed!important;opacity:1!important}
main{background:transparent!important}

/* Les grands conteneurs ne masquent plus le fond fixe. */
.card,.hero,.glass-panel,.food-search,.manual-food,.results-section,.meal-shortcuts,.category-card,.food-card,.day-card,.shopping-panel,.menu-intro,.menu-step,.dashboard-focus-card,.dashboard-data-panel,.dashboard-summary-card,.home-feature-card,.dashboard-visual-card-rich,.nss-interactive-chart-card{
 background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(224,247,241,.48))!important;
 border-color:var(--nss-line)!important;backdrop-filter:blur(13px) saturate(120%)!important;-webkit-backdrop-filter:blur(13px) saturate(120%)!important;
}

/* Header net, logo lisible, outils visibles. */
.app-banner img,.mobile-menu-brand,.brand-signature{opacity:1!important;filter:saturate(1.08) contrast(1.06)!important}
.header-utility-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 12px;border:1px solid rgba(45,143,129,.28);border-radius:14px;color:#0b6259;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(204,241,232,.48));box-shadow:0 7px 18px rgba(25,105,93,.07),inset 0 1px 0 #fff;font-weight:850;cursor:pointer}
.header-utility-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(25,105,93,.12),inset 0 1px 0 #fff}
.location-utility-button.has-location{border-color:rgba(18,143,111,.52);box-shadow:0 0 0 3px rgba(30,174,137,.08),inset 0 1px 0 #fff}

/* Reflet électrique vert foncé sur le verre : plus de jaune/orange. */
.action-pulse::after,.action-soft-pulse::after,.premium-cta::before{
 background:linear-gradient(96deg,transparent 0%,rgba(6,86,75,0) 24%,rgba(5,91,79,.18) 38%,rgba(8,113,96,.78) 49%,rgba(172,255,232,.46) 53%,rgba(5,91,79,.18) 62%,transparent 78%)!important;
 filter:blur(.25px) drop-shadow(0 0 7px rgba(5,110,91,.32))!important;
}
.action-pulse::after,.action-soft-pulse::after{transform:skewX(-16deg)!important}
.action-pulse,.action-soft-pulse,.premium-cta{border-color:rgba(35,145,128,.32)!important}

/* Les flèches décoratives ne prennent plus de place. */
.premium-cta>b[hidden],.dashboard-visual-card-rich>b[hidden],.guidance-item>b[hidden]{display:none!important}
.home-feature-card span{padding-right:0!important}

/* Recherche intelligente. */
.nss-global-search-dialog{width:min(760px,calc(100vw - 24px))!important;max-height:min(82dvh,760px)!important}
.nss-search-field{display:grid;gap:7px}.nss-search-field span{font-weight:800}.nss-search-field input{width:100%;font-size:18px;padding:14px 16px;border-radius:16px;border:1px solid rgba(49,143,130,.28);background:rgba(255,255,255,.78)}
.nss-search-results{display:grid;gap:8px;margin-top:14px;max-height:52dvh;overflow:auto;padding-right:3px}.nss-search-result{display:flex;align-items:center;min-height:64px;padding:11px 14px;border-radius:15px;text-decoration:none;color:#134d47;background:rgba(255,255,255,.66);border:1px solid rgba(54,146,133,.20)}.nss-search-result:hover{background:rgba(220,248,241,.80);transform:translateY(-1px)}.nss-search-result span{display:grid;gap:3px}.nss-search-result strong{font-size:16px}.nss-search-result small{color:#55736f}.nss-food-result::before{content:"◉";margin-right:10px;color:#0a7665}

/* Géolocalisation. */
.nss-location-dialog{width:min(760px,calc(100vw - 24px))!important}.nss-location-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.nss-location-map-wrap{display:grid;gap:10px;margin-top:14px}.nss-location-map-wrap iframe{width:100%;height:300px;border:1px solid rgba(45,143,129,.24);border-radius:18px;background:#e9f7f3}.nss-location-map-wrap a{justify-self:start}

/* Accueil/Mon espace mobile : l’image vient d’abord, puis le texte. */
@media(max-width:760px){
 .home-showcase,.dashboard-welcome-rich{display:flex!important;flex-direction:column!important}
 .home-showcase-visual,.dashboard-welcome-visual{order:1!important;height:300px!important;min-height:300px!important;max-height:300px!important}
 .home-showcase-copy,.dashboard-welcome-copy{order:2!important;padding:20px 16px 22px!important}
 .home-showcase-visual img,.dashboard-welcome-visual img{object-position:center 32%!important}
 .home-showcase-visual::after,.dashboard-welcome-visual::after{height:54px!important}
 .page-heading{margin:8px 0 12px!important;padding:9px 12px!important}.page-heading h1{font-size:clamp(26px,8vw,36px)!important;text-align:center!important}
 .header-utility-button{position:static!important;min-width:42px!important;padding:7px 9px!important}.header-utility-button span{display:none!important}
 .nav-row{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important}.update-check-button{position:static!important;transform:none!important;margin:0!important}.update-check-button:hover{transform:none!important}
 .app-banner{min-height:96px!important;padding:10px 14px!important}.app-banner img{max-height:76px!important}
}

/* Footer réellement centré et sans débordement mobile. */





/* Cartes aliments plus compactes. */
.category-grid{gap:16px!important}.category-card{display:grid!important;grid-template-columns:120px minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-items:center!important;column-gap:18px!important;min-height:150px!important;padding:14px!important}.category-card img{grid-row:1/3;width:116px!important;height:116px!important;object-fit:contain!important;margin:0!important}.category-card strong{align-self:end;font-size:22px!important}.category-card small{align-self:start;font-size:14px!important}
@media(max-width:760px){.category-grid{grid-template-columns:1fr!important}.category-card{grid-template-columns:92px minmax(0,1fr)!important;min-height:118px!important;padding:12px!important}.category-card img{width:88px!important;height:88px!important}.category-card strong{font-size:20px!important}.category-card small{font-size:14px!important}}

/* Menus : une journée à la fois + actions d’un repas en popup. */
.week-plan{scroll-margin-top:120px!important}.menu-day-tabs{position:sticky;top:calc(var(--nss-update-h,0px) + 104px);z-index:20;display:flex;gap:8px;overflow:auto;padding:9px 4px 12px;margin:0 0 14px;background:linear-gradient(180deg,rgba(236,250,246,.96),rgba(236,250,246,.82),transparent);scrollbar-width:thin}.menu-day-tabs button{flex:0 0 auto;min-width:92px}.menu-day-tabs button.is-active{background:rgba(174,231,217,.70)!important;border-color:rgba(25,135,118,.46)!important;box-shadow:inset 0 -3px 0 #0b7b69!important}.meal-line{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:16px!important}.meal-main{text-align:center!important}.meal-main>strong,.meal-main>p,.meal-main>small{display:block;text-align:center!important}.meal-actions[hidden]{display:none!important}.meal-open-actions{margin:10px auto 0!important;min-width:min(100%,260px)!important}.meal-actions-dialog #meal-actions-host .meal-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.meal-actions-dialog #meal-actions-host form,.meal-actions-dialog #meal-actions-host button{width:100%!important}.meal-day-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px}.js-segmented-ring{display:grid;justify-items:center;text-align:center;gap:6px;padding:10px 5px;border-radius:16px;background:rgba(255,255,255,.50);border:1px solid rgba(41,140,126,.18)}
@media(max-width:760px){.menu-command-center{grid-template-columns:1fr!important}.menu-step{grid-template-columns:42px minmax(0,1fr)!important}.menu-step>a,.menu-step>button{grid-column:1/-1!important;width:100%!important}.meal-day-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.day-head{display:grid!important;grid-template-columns:1fr!important;text-align:center!important}.day-head-actions{display:grid!important;justify-items:center!important}.day-remaining{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;text-align:center!important}.day-remaining>a,.day-remaining>small{grid-column:1/-1!important}}

/* Generic segmented ring généré côté navigateur. */
.nss-js-ring{position:relative;width:92px;height:92px}.nss-js-ring span{position:absolute;left:50%;top:4px;width:5px;height:11px;margin-left:-2.5px;border-radius:99px;background:rgba(82,132,123,.15);transform-origin:50% 42px;transition:background .25s ease,box-shadow .25s ease}.nss-js-ring span.is-on{background:#0c8a73;box-shadow:0 0 7px rgba(12,138,115,.35)}.nss-js-ring.is-low span.is-on{background:#d66158}.nss-js-ring.is-mid span.is-on{background:#d89b2b}.nss-js-ring strong{position:absolute;inset:0;display:grid;place-items:center;color:#0b5b53;font-size:17px}.js-segmented-ring>strong{font-size:13px;color:#174f49}.js-segmented-ring>small{font-size:11px;color:#617b77}

/* Résultats/popups. */
.nss-result-dialog{width:min(720px,calc(100vw - 24px))!important}.nss-result-macros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.nss-result-macros span{display:grid;text-align:center;padding:12px;border-radius:14px;background:rgba(228,247,242,.72)}.nss-result-macros b{font-size:20px;color:#0b665b}@media(max-width:620px){.nss-result-macros{grid-template-columns:1fr 1fr}}

/* Courbe interactive de poids. */
.nss-interactive-chart-card{padding:20px!important}.nss-chart-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.nss-chart-controls button.is-active{background:rgba(181,234,222,.75)!important;border-color:rgba(19,133,114,.42)!important}.nss-line-chart{position:relative;min-height:250px;padding:8px;border-radius:18px;background:rgba(255,255,255,.42);overflow:hidden}.nss-line-chart svg{width:100%;height:auto;min-height:230px}.nss-chart-grid{fill:none;stroke:rgba(36,115,104,.12);stroke-width:1}.nss-chart-line{fill:none;stroke:#0b806c;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 5px rgba(11,128,108,.15))}.nss-chart-point circle{fill:#eefbf7;stroke:#0b806c;stroke-width:4;cursor:pointer}.nss-chart-point text{font-size:12px;fill:#58756f}.nss-chart-tooltip{position:absolute;left:14px;top:14px;padding:8px 11px;border-radius:12px;background:rgba(7,76,68,.90);color:white;font-weight:800;pointer-events:none}

@media(prefers-reduced-motion:reduce){.action-pulse::after,.action-soft-pulse::after,.premium-cta::before{animation:none!important}}

/* === V.2026.10.05.01 · progression réelle + lancement PWA === */

/* Reflet des boutons : vert profond, sans jaune/orange. */
.action-pulse::after,.action-soft-pulse::after,.premium-cta::before{
  background:linear-gradient(98deg,transparent 0%,rgba(4,67,57,0) 20%,rgba(4,78,65,.26) 34%,rgba(4,96,79,.94) 48%,rgba(147,246,215,.52) 53%,rgba(4,88,73,.32) 62%,transparent 78%)!important;
  filter:blur(.15px) drop-shadow(0 0 9px rgba(3,105,86,.46))!important;
}
.action-pulse,.action-soft-pulse,.premium-cta{
  border-color:rgba(21,133,113,.42)!important;
  box-shadow:0 10px 26px rgba(9,88,75,.14),inset 0 1px 0 rgba(255,255,255,.58)!important;
}

/* Progression : données visibles, centrées, compactes et tactiles. */
.progress-live-overview,.progress-nutrition-live{margin-bottom:20px!important;background:rgba(255,255,255,.62)!important;backdrop-filter:blur(14px)!important}
.progress-top-rings{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.progress-top-rings .segmented-progress,.progress-nutrition-live .segmented-progress{min-height:124px!important}
.progress-nutrition-live .segmented-progress-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.chart-toolbar{display:grid;gap:8px;margin-bottom:8px}
.chart-range-controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.chart-range-controls button{min-height:36px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.70);border:1px solid rgba(34,132,118,.22);box-shadow:none;color:#174f49;font-size:13px;font-weight:850}
.chart-range-controls button.is-active{background:rgba(180,233,220,.78);border-color:rgba(18,128,109,.46);color:#07564d;box-shadow:inset 0 -3px 0 #0d806e}
.chart-no-data{gap:6px;text-align:center}.chart-no-data strong{color:#124f48;font-size:18px}.chart-no-data span{color:#617773;font-weight:650}
.progress-empty-real{border:1px dashed rgba(37,126,113,.25);border-radius:18px;background:rgba(255,255,255,.48)}
.progress-saved-dialog{width:min(760px,calc(100vw - 22px))!important}
.progress-popup-rings{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin:16px 0!important}
.progress-popup-rings .segmented-progress{min-height:116px!important}

/* Le grand bloc progression reste lisible sur desktop sans étirer inutilement. */
.page-progress .progress-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr)!important;align-items:start!important}
.page-progress .chart-card{min-width:0!important}

@media(max-width:1000px){
  .progress-nutrition-live .segmented-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-progress .progress-grid{grid-template-columns:1fr!important}
}
@media(max-width:720px){
  .progress-top-rings{grid-template-columns:1fr!important}
  .progress-nutrition-live .segmented-progress-grid{grid-template-columns:1fr 1fr!important}
  .progress-live-overview .section-title,.progress-nutrition-live .section-title{display:grid!important;grid-template-columns:1fr!important;text-align:center!important;justify-items:center!important;gap:8px!important}
  .chart-toolbar{gap:10px}.chart-range-controls{overflow-x:auto;flex-wrap:nowrap;padding:0 7px 5px;scrollbar-width:thin}.chart-range-controls button{flex:0 0 auto}
  .progress-popup-rings{grid-template-columns:1fr 1fr!important}
}
@media(max-width:460px){
  .progress-nutrition-live .segmented-progress-grid,.progress-popup-rings{grid-template-columns:1fr!important}
  .progress-summary{grid-template-columns:1fr!important}
}

/* === V.2026.10.05.02 · panneaux progressifs, progression reliée, header/footer === */
:root{--nss-header-sticky-offset:var(--nss-update-h,0px)}
.app-header{position:sticky!important;top:var(--nss-header-sticky-offset)!important;z-index:900!important;background:rgba(221,245,239,.90)!important;backdrop-filter:blur(16px) saturate(125%)!important;-webkit-backdrop-filter:blur(16px) saturate(125%)!important}
.app-banner{background:transparent!important}.nav-row{background:transparent!important}
main{scroll-margin-top:150px!important}.week-plan,.shopping-panel,.nss-active-menu-panel{scroll-margin-top:170px!important}

.button,button{position:relative;overflow:hidden}
.action-pulse::after,.action-soft-pulse::after,.premium-cta::before,.nss-section-reveal::after,.nss-day-balance-bar::after{
 content:""!important;position:absolute!important;top:-35%!important;bottom:-35%!important;left:-42%!important;width:32%!important;pointer-events:none!important;
 background:linear-gradient(96deg,transparent,rgba(3,72,61,.08),rgba(2,92,76,.92),rgba(123,246,207,.64),rgba(3,83,69,.28),transparent)!important;
 transform:skewX(-18deg)!important;filter:drop-shadow(0 0 10px rgba(3,99,82,.58))!important;animation:nssDeepGreenSweep 3.6s ease-in-out infinite!important;
}
@keyframes nssDeepGreenSweep{0%,58%{left:-42%;opacity:0}64%{opacity:1}86%{left:116%;opacity:1}100%{left:116%;opacity:0}}

.nss-section-reveal{display:flex!important;width:min(100%,900px)!important;min-height:54px!important;margin:16px auto 10px!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(23,126,110,.34)!important;border-radius:18px!important;background:linear-gradient(145deg,rgba(232,250,245,.82),rgba(190,235,224,.66))!important;color:#0a5f54!important;box-shadow:0 9px 24px rgba(12,91,78,.10),inset 0 1px 0 rgba(255,255,255,.74)!important;font-size:16px!important;font-weight:900!important;letter-spacing:.01em!important}
.nss-section-reveal[aria-expanded="true"]{background:linear-gradient(145deg,rgba(199,239,229,.82),rgba(159,222,207,.68))!important;box-shadow:inset 0 -3px 0 rgba(7,106,90,.55),0 9px 24px rgba(12,91,78,.10)!important}
.nss-section-reveal+*[hidden],.nss-active-menu-panel[hidden],.menu-command-center[hidden],.menu-intro[hidden],.shopping-panel[hidden]{display:none!important}
.nss-active-menu-panel{display:block;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}

.menu-day-tabs{position:sticky!important;top:calc(var(--nss-update-h,0px) + 116px)!important;z-index:120!important;width:100%!important;max-width:100%!important;margin:0 auto 12px!important;padding:8px!important;border:1px solid rgba(30,134,118,.18)!important;border-radius:16px!important;background:rgba(229,248,243,.94)!important;backdrop-filter:blur(12px)!important}
.week-plan{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.day-card{width:100%!important;max-width:100%!important;margin:0 auto 16px!important}.week-heading{display:none!important}

.segmented-progress,.js-segmented-ring{cursor:pointer!important;transition:transform .18s ease,box-shadow .18s ease!important}.segmented-progress:hover,.js-segmented-ring:hover{transform:translateY(-2px)!important;box-shadow:0 12px 28px rgba(8,90,77,.13)!important}
.segmented-ring{width:82px!important;height:82px!important;flex-basis:82px!important;background:rgba(255,255,255,.38)!important}
.segmented-ring span{width:3px!important;height:9px!important;margin-left:-1.5px!important;top:4px!important;transform-origin:50% 37px!important;background:rgba(75,125,117,.11)!important}
.nss-js-ring{width:82px!important;height:82px!important}.nss-js-ring span{width:3px!important;height:9px!important;margin-left:-1.5px!important;top:4px!important;transform-origin:50% 37px!important;background:rgba(75,125,117,.11)!important}.nss-js-ring strong{font-size:16px!important}
.nss-js-ring.is-good span.is-on,.segmented-progress.ring-green .segmented-ring span.is-on{background:#079a73!important;box-shadow:0 0 5px rgba(7,154,115,.32)!important}.nss-js-ring.is-mid span.is-on{background:#d09a2e!important}.nss-js-ring.is-low span.is-on{background:#c95d55!important}.nss-js-ring.is-over span.is-on{background:#d8942b!important}.nss-js-ring.is-over-high span.is-on{background:#c95750!important}
.meal-day-progress{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.js-segmented-ring{padding:12px 7px!important;background:rgba(255,255,255,.58)!important}

.nss-day-balance-bar{display:flex!important;width:min(100%,680px)!important;min-height:48px!important;margin:14px auto 8px!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(28,133,117,.28)!important;border-radius:16px!important;background:rgba(214,243,236,.72)!important;color:#0b6257!important;box-shadow:0 8px 20px rgba(12,88,76,.08)!important}
.nss-inline-action{display:block!important;width:max-content!important;max-width:100%!important;margin:8px auto 4px!important;color:#0c6b5e!important;font-weight:850!important;text-decoration:none!important}
.nss-day-balance-dialog{width:min(680px,calc(100vw - 24px))!important}.nss-day-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.nss-day-balance-grid span{display:grid;gap:4px;padding:14px;border-radius:16px;background:rgba(228,248,242,.76);border:1px solid rgba(30,132,116,.16);text-align:center}.nss-day-balance-grid b{font-size:20px;color:#0b6257}

.nss-global-progress-dialog{width:min(860px,calc(100vw - 24px))!important;max-height:86dvh!important}.global-progress-content{display:grid;gap:16px}.global-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.global-progress-metric{display:grid;justify-items:center;text-align:center;gap:5px;padding:12px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid rgba(38,139,123,.17)}.global-progress-metric b{color:#114f48}.global-progress-metric small{color:#5a716d}.hostinger-ring{--p:0;position:relative;width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#079a73 calc(var(--p)*1%),rgba(77,128,120,.12) 0);box-shadow:inset 0 0 0 1px rgba(20,115,101,.08)}.hostinger-ring::after{content:"";position:absolute;inset:8px;border-radius:50%;background:rgba(246,253,251,.96)}.hostinger-ring strong{position:relative;z-index:1;color:#0b5d53;font-size:15px}.global-progress-metric.is-mid .hostinger-ring{background:conic-gradient(#d09a2e calc(var(--p)*1%),rgba(77,128,120,.12) 0)}.global-progress-metric.is-low .hostinger-ring,.global-progress-metric.is-over-high .hostinger-ring{background:conic-gradient(#c95d55 calc(var(--p)*1%),rgba(77,128,120,.12) 0)}.global-progress-metric.is-over .hostinger-ring{background:conic-gradient(#d8942b calc(var(--p)*1%),rgba(77,128,120,.12) 0)}
.global-progress-weight{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center;padding:14px;border-radius:18px;background:rgba(232,249,244,.62);border:1px solid rgba(39,138,122,.16)}.global-progress-weight>div:first-child{display:grid;gap:4px}.global-progress-weight strong{font-size:26px;color:#0b6257}.global-mini-chart svg{width:100%;height:130px;overflow:visible}.global-mini-chart polyline{stroke:#087c69;stroke-width:2.2;filter:drop-shadow(0 3px 4px rgba(8,124,105,.15))}.global-mini-chart>div{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:#59736e}.global-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.global-check-grid span{display:grid;text-align:center;padding:10px;border-radius:14px;background:rgba(255,255,255,.55)}.global-check-grid b{font-size:19px;color:#0b6257}



@media(max-width:760px){.app-header{top:var(--nss-update-h,0px)!important}.app-banner{min-height:74px!important;padding:7px 10px!important}.app-banner img{max-height:60px!important}.nav-row{min-height:54px!important;padding:6px 10px!important}.menu-day-tabs{top:calc(var(--nss-update-h,0px) + 128px)!important}.meal-day-progress{grid-template-columns:repeat(2,minmax(0,1fr))!important}.global-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.global-progress-weight{grid-template-columns:1fr}.global-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nss-day-balance-grid{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.global-progress-grid{grid-template-columns:1fr 1fr}.meal-day-progress{grid-template-columns:1fr 1fr}}


/* ========================================================================== */
/* NSS V.2026.10.05.03 — header mobile/tablette réellement fixe               */
/* ========================================================================== */

.app-banner-row{position:relative;display:block;width:100%;isolation:isolate}
.header-tools{display:flex;align-items:center;gap:10px;flex:0 0 auto;position:relative;z-index:4}
.app-banner{position:relative;z-index:1}
.menu-toggle{position:relative;z-index:6}

/* Un bandeau de mise à jour ne doit jamais ajouter deux fois sa hauteur. */
body.nss-update-visible .app-header{margin-top:0!important;top:var(--nss-update-h,0px)!important}

@media (max-width:980px){
  :root{--nss-mobile-header-h:148px}
  html{scroll-padding-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px) + 12px)!important}
  body{padding-top:var(--nss-mobile-header-h)!important}
  body.nss-update-visible{padding-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px))!important}

  .app-header{
    position:fixed!important;
    left:0!important;right:0!important;
    top:var(--nss-update-h,0px)!important;
    width:100%!important;
    z-index:90000!important;
    margin:0!important;
    overflow:visible!important;
    transform:none!important;
    background:linear-gradient(180deg,rgba(226,248,242,.97),rgba(218,244,237,.95))!important;
    box-shadow:0 10px 30px rgba(9,78,69,.11)!important;
  }
  .app-banner-row{height:88px!important;min-height:88px!important;border-bottom:1px solid rgba(50,141,128,.16)!important}
  .app-banner{
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;height:88px!important;min-height:88px!important;
    padding:8px 70px 8px 14px!important;border:0!important;background:transparent!important;
    pointer-events:auto!important
  }
  .app-banner img{width:auto!important;max-width:min(72vw,430px)!important;max-height:66px!important;height:auto!important;margin:auto!important}
  .menu-toggle{
    display:grid!important;place-items:center!important;
    position:absolute!important;right:12px!important;top:18px!important;
    width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;
    margin:0!important;padding:0!important;border-radius:17px!important;
    border:1px solid rgba(40,139,124,.28)!important;
    background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(204,239,231,.66))!important;
    color:#0a6258!important;box-shadow:0 8px 20px rgba(14,93,80,.09),inset 0 1px 0 rgba(255,255,255,.94)!important;
    font-size:25px!important;line-height:1!important;z-index:9!important;overflow:hidden!important
  }
  .menu-toggle span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}

  .nav-row{
    position:relative!important;z-index:5!important;
    display:grid!important;grid-template-columns:1fr!important;
    width:100%!important;min-height:60px!important;margin:0!important;padding:7px 10px 8px!important;
    gap:0!important;background:rgba(219,245,238,.96)!important;border:0!important
  }
  .header-tools{
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;gap:7px!important;margin:0!important;padding:0!important;
    position:relative!important;z-index:8!important;order:1!important
  }
  .header-tools>button{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;margin:0!important;width:100%!important;min-width:0!important;min-height:44px!important;
    padding:8px 7px!important;border-radius:14px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
    pointer-events:auto!important;touch-action:manipulation!important;
    color:#0b6258!important;background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(205,240,232,.60))!important;
    border:1px solid rgba(42,141,126,.26)!important;box-shadow:0 6px 16px rgba(11,83,72,.07),inset 0 1px 0 rgba(255,255,255,.95)!important;
    font-size:13px!important;font-weight:900!important;white-space:nowrap!important;overflow:hidden!important
  }
  .header-tools>button:hover,.header-tools>button:active{transform:none!important}
  .header-tools>button span{display:inline!important;font-size:13px!important;line-height:1!important}
  .update-check-button span::after{content:none!important}
  .location-utility-button{display:flex!important;visibility:visible!important;opacity:1!important}

  #main-nav{
    order:2!important;width:calc(100% - 20px)!important;margin:8px 10px 0!important;
    position:absolute!important;left:0!important;right:0!important;top:100%!important;
    z-index:12!important;border-radius:0 0 20px 20px!important;
    background:rgba(239,251,247,.98)!important;box-shadow:0 18px 36px rgba(8,67,59,.16)!important;
    border:1px solid rgba(41,135,121,.18)!important;border-top:0!important
  }
  #main-nav.open{max-height:calc(100dvh - var(--nss-mobile-header-h) - var(--nss-update-h,0px) - 18px)!important;overflow-y:auto!important}

  main{scroll-margin-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px) + 12px)!important}
  .week-plan,.shopping-panel,.nss-active-menu-panel,#aujourdhui,#acces-rapides,#progression-du-jour{scroll-margin-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px) + 18px)!important}
  .menu-day-tabs{top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px) + 6px)!important}
}

@media (max-width:520px){
  :root{--nss-mobile-header-h:144px}
  .app-banner-row,.app-banner{height:84px!important;min-height:84px!important}
  .app-banner img{max-width:68vw!important;max-height:61px!important}
  .menu-toggle{top:16px!important;right:10px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important}
  .nav-row{min-height:60px!important;padding:7px 8px 8px!important}
  .header-tools{gap:6px!important}
  .header-tools>button{min-height:43px!important;padding:7px 5px!important;font-size:12px!important;gap:4px!important}
  .header-tools>button span{font-size:12px!important}
}

/* ========================================================================== */
/* NSS V.2026.10.05.04 — mobile/tablette, footer compact, panneaux progressifs */
/* ========================================================================== */
html,body{max-width:100%!important;overflow-x:hidden!important}
html{background:#edf8f4 url("background-app-v27.webp?v=34") center/cover fixed no-repeat!important}
body{background:transparent!important}
body::before{content:""!important;position:fixed!important;inset:0!important;z-index:-2!important;pointer-events:none!important;background:linear-gradient(180deg,rgba(248,253,251,.24),rgba(233,248,243,.22)),url("background-app-v27.webp?v=34") center/cover no-repeat!important;opacity:1!important}
main,.page-wrap,.app-main,.content-wrap,.home-stage,.dashboard-stage,.nss-botanical-stage{background:transparent!important}
.hero,.card,.summary-card,.plan-summary article,.dashboard-summary-card,.dashboard-data-panel,.food-card,.category-card,.day-card,.menu-command-center,.shopping-panel,.home-feature-card{background:rgba(250,255,253,.72)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important}

/* Un seul vrai pictogramme hamburger : l'ancien glyphe + le pseudo-élément se superposaient. */
@media(max-width:980px){
 :root{--nss-mobile-header-h:146px;--nss-mobile-dock-h:82px}
 body{padding-top:var(--nss-mobile-header-h)!important;padding-bottom:0!important}
 body.nss-update-visible{padding-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px))!important}
 .app-header{border-bottom:1px solid rgba(42,132,119,.22)!important;box-shadow:0 8px 24px rgba(8,76,66,.09)!important}
 .app-banner-row{height:84px!important;min-height:84px!important;border:0!important;background:transparent!important}
 .app-banner{height:84px!important;min-height:84px!important;border:0!important;padding:7px 68px 5px 12px!important;background:transparent!important}
 .app-banner img{max-height:60px!important;max-width:min(70vw,420px)!important}
 .nav-row{min-height:62px!important;padding:5px 9px 8px!important;background:transparent!important;border:0!important;box-shadow:none!important}
 .header-tools{gap:7px!important}
 .header-tools>button{min-height:45px!important;border-radius:15px!important;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(197,235,226,.68))!important;border-color:rgba(25,121,106,.30)!important;color:#075e54!important}
 .menu-toggle{font-size:0!important;line-height:0!important;top:16px!important;right:10px!important;width:52px!important;height:52px!important}
 .menu-toggle::after{content:"☰"!important;display:block!important;font-size:29px!important;line-height:1!important;color:#075e54!important}
 .menu-toggle span{display:none!important}
 #main-nav{top:100%!important}
 main{width:100%!important;max-width:100%!important;margin:14px auto 24px!important;padding-inline:10px!important;box-sizing:border-box!important}
 .page-heading{width:100%!important;max-width:100%!important;margin:8px auto 14px!important}
 .page-heading h1{max-width:100%!important;overflow-wrap:anywhere!important}
 .grid,.grid.compact,.dashboard-visual-grid-simple,.dashboard-quick-grid,.category-grid,.progress-summary,.plan-summary,.journey ol{grid-template-columns:1fr!important}
 .dashboard-summary-row{grid-template-columns:1fr!important}
 .dashboard-summary-card,.dashboard-data-panel,.hero,.card,.home-feature-card,.category-card,.food-card{width:100%!important;max-width:100%!important;min-width:0!important}
 .form-grid,.result-grid,.dashboard-update-grid{grid-template-columns:1fr!important}
 .span-2{grid-column:auto!important}
 .table-wrap{max-width:100%!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important}
 .mobile-dock{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;min-height:var(--nss-mobile-dock-h)!important;padding:7px 4px max(7px,env(safe-area-inset-bottom))!important;overflow:hidden!important;z-index:95000!important}
 .mobile-dock a{min-width:0!important;padding:3px 1px!important;font-size:11px!important;text-align:center!important}
 .mobile-dock span{font-size:22px!important}
 .mobile-dock-spacer{display:block!important;height:calc(var(--nss-mobile-dock-h) + env(safe-area-inset-bottom))!important;background:transparent!important}
 .nss-version-badge{display:none!important}
 
 .to-top{bottom:calc(var(--nss-mobile-dock-h) + 12px + env(safe-area-inset-bottom))!important;right:10px!important}
 .cookie-banner{bottom:calc(var(--nss-mobile-dock-h) + 8px + env(safe-area-inset-bottom))!important}
}


/* Footer : compact, centré et sans grand panneau vide. */












/* Barres de développement / panneaux progressifs : pleine largeur, sans flèche. */
.nss-section-reveal,.nss-auto-reveal{display:flex!important;position:relative!important;isolation:isolate!important;width:100%!important;max-width:100%!important;min-height:50px!important;margin:12px 0 8px!important;padding:11px 18px!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(15,111,96,.34)!important;border-radius:13px!important;background:linear-gradient(145deg,rgba(224,247,241,.84),rgba(176,226,214,.74))!important;color:#075e54!important;box-shadow:0 7px 18px rgba(8,80,68,.09),inset 0 -2px 0 rgba(6,103,88,.28),inset 0 1px 0 rgba(255,255,255,.85)!important;font-size:15px!important;font-weight:900!important;text-align:center!important;overflow:hidden!important}
.nss-section-reveal[aria-expanded="true"],.nss-auto-reveal[aria-expanded="true"]{background:linear-gradient(145deg,rgba(196,238,228,.92),rgba(143,211,195,.78))!important;box-shadow:inset 0 -3px 0 rgba(5,89,76,.58),0 8px 20px rgba(8,80,68,.11)!important}
.nss-auto-reveal+*[hidden],.nss-section-reveal+*[hidden]{display:none!important}

/* Reflet vert foncé lisible sur les boutons, jamais jaune/orange. */
.button,button{isolation:isolate!important}
.button::after,button::after{content:"";position:absolute;z-index:0;top:-45%;bottom:-45%;left:-34%;width:25%;pointer-events:none;background:linear-gradient(96deg,transparent,rgba(2,74,62,.16),rgba(1,72,59,.90),rgba(48,196,160,.68),rgba(0,66,55,.44),transparent);transform:skewX(-17deg);filter:drop-shadow(0 0 8px rgba(0,83,69,.50));animation:nssGreenSweep04 4.2s ease-in-out infinite}
.button>*,button>*{position:relative;z-index:2}
.menu-toggle::after,.header-tools>button::after,.dialog-x::after,.mobile-dock a::after{animation:none!important;background:none!important;content:none!important}
@keyframes nssGreenSweep04{0%,58%{left:-34%;opacity:0}64%{opacity:1}86%{left:112%;opacity:1}100%{left:112%;opacity:0}}
@media(prefers-reduced-motion:reduce){.button::after,button::after{animation:none!important}}

/* Cercles plus fins et plus sobres, façon jauge Hostinger. */
.nss-js-ring,.segmented-ring{width:78px!important;height:78px!important;flex-basis:78px!important;background:rgba(255,255,255,.36)!important}
.nss-js-ring span,.segmented-ring span{width:2px!important;height:8px!important;margin-left:-1px!important;top:5px!important;transform-origin:50% 34px!important;border-radius:999px!important;background:rgba(45,113,103,.10)!important;box-shadow:none!important}
.nss-js-ring strong{font-size:15px!important;color:#075e54!important}
.js-segmented-ring{border-radius:16px!important;padding:10px 6px!important;background:rgba(255,255,255,.52)!important}

/* Les pages très compactes restent lisibles sans débordement. */
@media(max-width:980px){
 .meal-day-progress,.global-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .day-head,.day-head-actions{max-width:100%!important;min-width:0!important;flex-wrap:wrap!important}
 .day-target{max-width:100%!important}
 .home-showcase,.home-feature-grid-rich{max-width:100%!important;overflow:hidden!important}
 .home-showcase-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
 .home-showcase-actions .button{width:100%!important;text-align:center!important}
}

/* ========================================================================== */
/* NSS V.2026.10.05.05 — passe globale responsive, panneaux et progression    */
/* ========================================================================== */
:root{
  --nss05-mint:#dff3ed;
  --nss05-mint-2:#c9e9df;
  --nss05-green:#0b7666;
  --nss05-green-dark:#064f45;
  --nss05-line:rgba(20,118,100,.26);
  --nss05-glass:rgba(249,255,253,.66);
  --nss05-shadow:0 14px 34px rgba(9,78,68,.10);
}
html{background:#e9f7f2!important;min-height:100%;overflow-x:hidden!important}
body{position:relative!important;isolation:isolate!important;min-height:100dvh!important;background:transparent!important;overflow-x:hidden!important}
.nss-global-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(180deg,rgba(248,253,251,.30),rgba(226,246,240,.24)),
  url("background-app-v27.webp?v=35") center center/cover no-repeat;}
main{background:transparent!important;max-width:100%!important}
main>section,main>article,main>form,main>.grid,main>.card{max-width:100%!important;min-width:0!important}
.card,.hero,.glass-panel,.summary-card,.plan-summary article,.food-search,.manual-food,.results-section,.meal-shortcuts,.category-card,.food-card,.day-card,.shopping-panel,.menu-intro,.menu-step,.dashboard-focus-card,.dashboard-data-panel,.dashboard-summary-card,.home-feature-card,.dashboard-visual-card-rich,.nss-interactive-chart-card,.progress-summary,.progress-live-overview,.progress-nutrition-live{
  background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(219,244,237,.52))!important;
  border-color:var(--nss05-line)!important;
  box-shadow:var(--nss05-shadow)!important;
  backdrop-filter:blur(12px) saturate(118%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(118%)!important;
}

/* Header : un seul bloc visuel, fixe aussi sur tablette/mobile. */
.app-header{position:sticky!important;top:var(--nss-update-h,0px)!important;z-index:90000!important;background:linear-gradient(180deg,rgba(234,248,243,.96),rgba(216,241,234,.92))!important;border:0!important;border-bottom:1px solid rgba(17,113,96,.22)!important;box-shadow:0 9px 26px rgba(7,72,62,.10)!important;backdrop-filter:blur(14px) saturate(118%)!important;-webkit-backdrop-filter:blur(14px) saturate(118%)!important}
.app-banner-row,.nav-row{background:transparent!important;border:0!important;box-shadow:none!important}
.header-tools>button{overflow:hidden!important}
@media(max-width:980px){
  :root{--nss-mobile-header-h:132px;--nss-mobile-dock-h:78px}
  .app-header{position:fixed!important;top:var(--nss-update-h,0px)!important;left:0!important;right:0!important;width:100%!important}
  body{padding-top:var(--nss-mobile-header-h)!important}
  body.nss-update-visible{padding-top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px))!important}
  .app-banner-row{height:76px!important;min-height:76px!important}
  .app-banner{height:76px!important;min-height:76px!important;padding:6px 66px 4px 10px!important}
  .app-banner img{max-height:56px!important;max-width:min(72vw,390px)!important}
  .menu-toggle{top:12px!important;right:10px!important;width:50px!important;height:50px!important;border-radius:15px!important}
  .nav-row{min-height:56px!important;padding:4px 8px 7px!important}
  .header-tools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important;gap:7px!important}
  .header-tools>button{position:relative!important;left:auto!important;top:auto!important;transform:none!important;width:100%!important;min-width:0!important;min-height:43px!important;margin:0!important;padding:7px 5px!important;border-radius:13px!important;font-size:12px!important}
  .header-tools>button:hover{transform:none!important}
  .update-check-button span{font-size:12px!important}.update-check-button span::after{content:none!important}
  #main-nav{position:fixed!important;top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px))!important;left:8px!important;right:8px!important;width:auto!important;max-height:calc(100dvh - var(--nss-mobile-header-h) - var(--nss-update-h,0px) - 12px)!important;border-radius:0 0 20px 20px!important}
  main{margin:12px auto 20px!important;padding:0 9px!important}
  .mobile-dock{min-height:var(--nss-mobile-dock-h)!important}
  .mobile-dock-spacer{height:calc(var(--nss-mobile-dock-h) + env(safe-area-inset-bottom) + 8px)!important}
}

/* Hero : jamais de personne coupée sur tablette/mobile. */
@media(max-width:1024px){
  .home-showcase,.dashboard-welcome-rich{display:flex!important;flex-direction:column!important;overflow:hidden!important}
  .home-showcase-visual,.dashboard-welcome-visual{order:1!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:16/10!important;display:grid!important;place-items:center!important;background:linear-gradient(180deg,rgba(230,247,241,.70),rgba(247,252,250,.40))!important}
  .home-showcase-copy,.dashboard-welcome-copy{order:2!important}
  .home-showcase-visual img,.dashboard-welcome-visual img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center bottom!important;padding:0!important;margin:0!important}
  .home-showcase-visual::before,.dashboard-welcome-visual::before{display:none!important}
  .home-showcase-visual::after,.dashboard-welcome-visual::after{height:46px!important;background:linear-gradient(180deg,transparent,rgba(237,248,244,.82))!important}
}
@media(max-width:520px){.home-showcase-visual,.dashboard-welcome-visual{aspect-ratio:4/3!important}}

/* Barres de développement : visibles, pleines largeur, sans flèche. */
.nss-section-reveal,.nss-auto-reveal{width:100%!important;min-height:52px!important;margin:13px 0 9px!important;padding:12px 18px!important;border-radius:12px!important;border:1px solid rgba(7,101,87,.36)!important;background:linear-gradient(145deg,rgba(224,248,241,.90),rgba(162,222,207,.78))!important;color:#064f45!important;box-shadow:inset 0 -3px 0 rgba(5,89,76,.42),0 8px 20px rgba(6,73,63,.10)!important;font-size:15px!important;font-weight:900!important;letter-spacing:.01em!important;text-align:center!important}
.nss-section-reveal[aria-expanded="true"],.nss-auto-reveal[aria-expanded="true"]{background:linear-gradient(145deg,rgba(200,239,229,.94),rgba(130,203,185,.82))!important;box-shadow:inset 0 -4px 0 rgba(3,75,64,.62),0 8px 20px rgba(6,73,63,.12)!important}
.nss-section-reveal::before,.nss-auto-reveal::before{content:none!important}

/* Reflet vert foncé clairement visible, sans jaune/orange. */
.button,button{position:relative;overflow:hidden}
.button::after,button::after{background:linear-gradient(100deg,transparent 0%,rgba(1,54,46,0) 20%,rgba(3,72,61,.28) 36%,rgba(2,82,68,.95) 48%,rgba(44,208,167,.74) 54%,rgba(2,73,61,.42) 64%,transparent 80%)!important;filter:drop-shadow(0 0 9px rgba(0,91,75,.48))!important;animation:nssGreenSweep05 3.8s ease-in-out infinite!important}
.menu-toggle::after,.header-tools>button::after,.dialog-x::after,.mobile-dock a::after,.nss-confirm-dialog button::after{animation:none!important;background:none!important;content:none!important}
@keyframes nssGreenSweep05{0%,54%{left:-36%;opacity:0}61%{opacity:1}86%{left:114%;opacity:1}100%{left:114%;opacity:0}}

/* Jauges segmentées : plage réelle 0–150 %, cible marquée à 100 %. */
.segmented-ring,.nss-js-ring{position:relative!important;width:84px!important;height:84px!important;flex-basis:84px!important;border-radius:50%!important;background:rgba(255,255,255,.42)!important;box-shadow:inset 0 0 0 1px rgba(22,114,99,.08)!important}
.segmented-ring span,.nss-js-ring span{position:absolute!important;left:50%!important;top:5px!important;width:2px!important;height:9px!important;margin-left:-1px!important;border-radius:999px!important;transform-origin:50% 37px!important;background:rgba(45,113,103,.10)!important;box-shadow:none!important}
.segmented-ring span{transform:rotate(calc(var(--i) * 10deg))!important}
.segmented-ring span.is-on.seg-yellow,.nss-js-ring span.is-on{background:var(--seg-color,#d1ad3d)!important}
.segmented-ring span.is-on.seg-orange{background:#dc8c32!important}.segmented-ring span.is-on.seg-green{background:#188a68!important}.segmented-ring span.is-on.seg-red{background:#c44d4d!important}
.segmented-ring span.is-on,.nss-js-ring span.is-on{animation:nssSegmentRise05 .42s both;animation-delay:calc(var(--i,0) * 14ms)!important}
@keyframes nssSegmentRise05{from{opacity:.12;transform:rotate(calc(var(--i,0) * 10deg)) scaleY(.35)}to{opacity:1;transform:rotate(calc(var(--i,0) * 10deg)) scaleY(1)}}
.segmented-ring strong,.nss-js-ring strong{position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;font-size:15px!important;color:#075a50!important;z-index:3!important}
.ring-target-mark,.nss-js-ring .ring-target-mark{position:absolute!important;left:50%!important;top:1px!important;width:6px!important;height:6px!important;margin-left:-3px!important;border-radius:50%!important;background:#075e54!important;box-shadow:0 0 0 2px rgba(255,255,255,.88),0 0 7px rgba(7,94,84,.45)!important;transform-origin:50% 41px!important;transform:rotate(240deg)!important;z-index:4!important}
.global-progress-content.is-refreshing .hostinger-ring,.global-progress-content.is-refreshing .nss-range-ring{animation:nssProgressPulse05 .55s ease}
@keyframes nssProgressPulse05{0%{transform:scale(.90);opacity:.45}100%{transform:scale(1);opacity:1}}
.hostinger-ring.nss-range-ring{--ring-color:#188a68;background:conic-gradient(var(--ring-color) calc(var(--scale,0)*1%),rgba(48,111,101,.10) 0)!important;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 0),repeating-conic-gradient(#000 0 6deg,transparent 6deg 10deg)!important;-webkit-mask-composite:source-in!important;mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 0) intersect,repeating-conic-gradient(#000 0 6deg,transparent 6deg 10deg)!important}
.global-progress-metric.is-low .hostinger-ring{--ring-color:#d1ad3d}.global-progress-metric.is-mid .hostinger-ring{--ring-color:#dc8c32}.global-progress-metric.is-good .hostinger-ring{--ring-color:#188a68}.global-progress-metric.is-over .hostinger-ring{--ring-color:#d46d3a}.global-progress-metric.is-over-high .hostinger-ring{--ring-color:#c44d4d}
.hostinger-ring.nss-range-ring i{position:absolute;left:50%;top:2px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#075e54;transform-origin:50% 36px;transform:rotate(240deg);box-shadow:0 0 0 2px #fff}

/* Sélecteur multi-jours pour régénération. */





/* Centre de mise à jour / sécurité et confirmations. */
.nss-update-center-dialog,.nss-confirm-dialog{width:min(680px,calc(100vw - 24px))!important}
.update-center-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.update-center-status span{display:grid;gap:4px;padding:12px;border-radius:14px;background:rgba(255,255,255,.58);border:1px solid rgba(23,120,104,.16)}.update-center-status small{color:#5c7671}.update-center-status strong{color:#075e54}
@media(max-width:650px){.update-center-status{grid-template-columns:1fr}}

/* Footer : zéro chevauchement, logo indépendant, soutien visible mais compact. */









/* Sécurité contre les décalages horizontaux récurrents. */

img,svg,video,canvas,iframe{max-width:100%}
@media(max-width:980px){.grid,.progress-summary,.plan-summary,.meal-day-progress,.global-progress-grid{min-width:0!important}.menu-day-tabs{max-width:100%!important;left:auto!important;right:auto!important;top:calc(var(--nss-mobile-header-h) + var(--nss-update-h,0px))!important}}
/* Correctif de rendu des petites jauges du popup : le masque ne doit jamais cacher le texte. */
.hostinger-ring.nss-range-ring{background:rgba(60,123,112,.10)!important;overflow:visible!important}
.hostinger-ring.nss-range-ring::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--ring-color) calc(var(--scale,0)*1%),rgba(48,111,101,.10) 0);-webkit-mask:repeating-conic-gradient(#000 0 6deg,transparent 6deg 10deg),radial-gradient(farthest-side,transparent calc(100% - 8px),#000 0);-webkit-mask-composite:source-in;mask:repeating-conic-gradient(#000 0 6deg,transparent 6deg 10deg) intersect radial-gradient(farthest-side,transparent calc(100% - 8px),#000 0)}
.hostinger-ring.nss-range-ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:rgba(246,253,251,.96)!important;z-index:1}
.hostinger-ring.nss-range-ring strong,.hostinger-ring.nss-range-ring i{z-index:2}

/* V.2026.10.05.05 — finitions mise à jour/sécurité + popup progression */
.app-update.app-update-strip .app-update-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:7px!important;min-width:0!important}
.app-update.app-update-strip .app-update-actions button{width:auto!important;min-width:108px!important;max-width:150px!important}
.app-update.app-update-strip #postpone-app-update{background:rgba(255,255,255,.68)!important;color:#075e54!important;border-color:rgba(7,94,84,.24)!important}
.update-security-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0 14px}
.update-security-status span{padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.50);border:1px solid rgba(21,120,102,.14);font-size:12px;color:#456d67}
.update-security-status span.ok b{color:#08705f}.update-security-status span.warn b{color:#a24f39}.update-security-status span.neutral b{color:#6a766f}
.nss-popup-ring span{--seg-color:#188a68}.nss-popup-ring span.is-on{background:var(--seg-color)!important}
.global-progress-content.is-refreshing .nss-popup-ring{animation:nssProgressPulse05 .55s ease}
@media(max-width:700px){
 .app-update.app-update-strip .app-update-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
 .app-update.app-update-strip .app-update-actions button{width:100%!important;min-width:0!important;max-width:none!important}
 .update-security-status{grid-template-columns:1fr}
}
@media(max-width:390px){.app-update.app-update-strip .app-update-actions{grid-template-columns:1fr!important}}

/* === V.2026.10.05.06 — Produits, prix locaux & enseignes === */
.price-local-dialog{width:min(980px,94vw);max-height:min(88vh,980px);overflow:auto}
.price-local-controls{display:grid;gap:14px;margin:14px 0 18px}.price-local-controls>label{display:flex;align-items:center;gap:10px;font-weight:800;color:#174f46}.price-local-controls select{min-width:120px}
.price-local-results{display:grid;gap:14px}.price-summary-grid,.retail-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.price-summary-grid>span,.retail-kpi-grid>span{display:grid;gap:4px;padding:13px 14px;border:1px solid rgba(27,122,103,.18);border-radius:16px;background:rgba(255,255,255,.52);box-shadow:0 8px 22px rgba(17,88,75,.07)}.price-summary-grid small,.retail-kpi-grid small{color:#55716b;font-weight:700}.price-summary-grid strong,.retail-kpi-grid strong{font-size:1.2rem;color:#0e6657}
.price-total{display:grid;gap:4px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,rgba(211,244,232,.82),rgba(255,255,255,.67));border:1px solid rgba(10,117,95,.2)}.price-total>span{font-weight:800}.price-total>strong{font-size:clamp(1.5rem,4vw,2.25rem);color:#0b6d5b}.price-total small{color:#55716b}
.price-result-list{display:grid;gap:10px}.price-result-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:14px;align-items:center;padding:14px;border:1px solid rgba(25,113,96,.16);border-radius:18px;background:rgba(255,255,255,.58)}.price-result-product,.price-result-offer{display:grid;gap:4px;min-width:0}.price-result-product strong{color:#173f39}.price-result-product small,.price-result-offer small{color:#607873}.price-result-offer{grid-template-columns:auto 1fr;column-gap:9px}.price-result-offer>strong{font-size:1.25rem;color:#0c6657}.price-result-offer>span,.price-result-offer>small{grid-column:2}.price-result-missing{padding:9px 12px;border-radius:12px;background:rgba(240,244,242,.72);color:#6c7e79;font-weight:700}.price-source-line{text-align:center}
.nutriscore-mini{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;font-weight:900;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 4px 10px rgba(0,0,0,.08)}.nutriscore-mini.grade-a{background:#16864a}.nutriscore-mini.grade-b{background:#7cae37}.nutriscore-mini.grade-c{background:#e3b629;color:#473800}.nutriscore-mini.grade-d{background:#e5862b}.nutriscore-mini.grade-e{background:#ce3e3e}
.retail-admin-hero{display:grid;gap:16px}.retail-source-list,.retail-mapping-list,.retail-mapping-history{display:grid;gap:10px}.retail-source-row,.retail-mapping-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid rgba(24,112,94,.16);border-radius:16px;background:rgba(255,255,255,.54)}.retail-source-row>div,.retail-mapping-row>div{display:grid;gap:3px;min-width:0}.retail-source-row small,.retail-mapping-row small{color:#617a75}.status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:90px;padding:7px 10px;border-radius:999px;font-weight:900}.status-chip.is-on{background:rgba(33,155,112,.15);color:#0b6b52}.status-chip.is-off{background:rgba(124,139,134,.13);color:#63726e}.retail-mapping-row label{margin:0;min-width:210px}.retail-mapping-history>div{display:grid;grid-template-columns:auto minmax(150px,.8fr) minmax(0,1.2fr);gap:8px 12px;align-items:center;padding:12px 14px;border-radius:15px;background:rgba(255,255,255,.5);border:1px solid rgba(27,115,97,.13)}.retail-mapping-history small{grid-column:2/-1;color:#607873}.retail-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:820px){.price-summary-grid,.retail-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-result-row{grid-template-columns:1fr}.price-result-offer{grid-template-columns:auto 1fr}.retail-source-row,.retail-mapping-row{grid-template-columns:1fr}.retail-mapping-row label{min-width:0}.retail-mapping-history>div{grid-template-columns:auto 1fr}.retail-mapping-history>div>span:nth-of-type(2){grid-column:1/-1}.retail-mapping-history small{grid-column:1/-1}.retail-health-grid{grid-template-columns:1fr}}
@media(max-width:480px){.price-summary-grid,.retail-kpi-grid{grid-template-columns:1fr 1fr}.price-local-dialog{width:96vw;padding:18px 14px}.price-local-controls .dialog-actions{display:grid;grid-template-columns:1fr}.price-local-controls .dialog-actions>*{width:100%}.price-result-row{padding:12px}}


/* === V.2026.10.05.07 — cadrage, panneaux contrôlés, jauges cible 100 %, footer === */
/* Le repli global automatique est supprimé : uniquement .nss-section-reveal / [data-nss-collapse] explicites. */
.nss-auto-reveal{display:flex!important}
.dashboard-section-toggle{margin:18px auto 10px!important;width:min(100%,1180px)!important}
.dashboard-stage>[hidden],main>[data-nss-collapse="1"][hidden]{display:none!important}

/* Jauge : départ bas-gauche -> objectif au sommet -> dépassement à droite, sens horaire. */
.segmented-ring,.nss-js-ring{width:92px!important;height:92px!important;flex-basis:92px!important;overflow:visible!important;background:radial-gradient(circle,rgba(250,255,253,.94) 0 57%,rgba(255,255,255,.28) 58% 100%)!important}
.segmented-ring span,.nss-js-ring span{left:50%!important;top:4px!important;width:3px!important;height:11px!important;margin-left:-1.5px!important;transform-origin:50% 42px!important;transform:rotate(var(--angle,0deg))!important;background:rgba(37,106,96,.10)!important}
.segmented-ring span.is-on.seg-orange,.nss-js-ring span.is-on{background:var(--seg-color,#dc8c32)!important}
.segmented-ring span.is-on.seg-green{background:#168a68!important}.segmented-ring span.is-on.seg-red{background:#c54848!important}
@keyframes nssSegmentRise07{from{opacity:.15;transform:rotate(var(--angle,0deg)) scaleY(.28)}to{opacity:1;transform:rotate(var(--angle,0deg)) scaleY(1)}}
.segmented-ring span.is-on,.nss-js-ring span.is-on{animation:nssSegmentRise07 .36s both!important;animation-delay:calc(var(--i,0) * 12ms)!important}
.ring-target-mark,.nss-js-ring .ring-target-mark{left:50%!important;top:-2px!important;width:8px!important;height:8px!important;margin-left:-4px!important;transform:none!important;background:#168a68!important;box-shadow:0 0 0 3px rgba(255,255,255,.92),0 0 10px rgba(18,132,101,.45)!important}
.segmented-ring strong,.nss-js-ring strong{font-size:16px!important}
.segmented-progress>div:last-child{display:grid;gap:3px;min-width:0}.segmented-progress small{font-weight:800!important;color:#526f69!important}.segmented-progress b{color:#0a5b51!important}
.summary-segmented-ring{width:66px!important;height:66px!important;flex-basis:66px!important}.summary-segmented-ring span{top:3px!important;height:8px!important;transform-origin:50% 30px!important}.summary-segmented-ring strong{font-size:12px!important}.summary-segmented-ring .ring-target-mark{top:-2px!important;width:6px!important;height:6px!important;margin-left:-3px!important}
.global-progress-metric{display:grid!important;justify-items:center!important;gap:5px!important}.global-progress-metric em{font-style:normal;font-size:11px;color:#667c78}.global-progress-metric small{font-weight:850;color:#315f58}

/* Mon espace : sections nettes, aucune superposition, première zone toujours visible. */
.dashboard-stage{display:grid!important;gap:18px!important}.dashboard-welcome-rich{margin-bottom:0!important}.dashboard-summary-row,.dashboard-live-progress,.dashboard-quick-rich,.dashboard-focus-grid,.dashboard-data-stack,.collaboration-space,.nss-interactive-chart-card{margin-top:0!important;margin-bottom:0!important}
.dashboard-summary-card{min-width:0!important;overflow:hidden!important}.dashboard-summary-card .summary-segmented-ring{margin-left:auto!important}
.dashboard-welcome-actions{display:flex!important;flex-wrap:wrap!important;gap:10px!important}.dashboard-welcome-actions .button{min-width:170px!important}
.dashboard-shopping-card{border-color:rgba(13,118,96,.38)!important}

/* Menus/courses : actions visibles et sans petites flèches parasites. */
.menu-primary-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 12px}.menu-primary-actions .button{min-width:190px}
.day-exercise-link.button{display:flex!important;width:min(100%,560px)!important;margin:12px auto!important;justify-content:center!important;text-decoration:none!important}
.nss-inline-action::after,.day-exercise-link::after{content:none!important}
.price-setup-dialog{width:min(680px,94vw)!important}.price-results-dialog{width:min(980px,96vw)!important;max-height:88vh!important;overflow:auto!important}
.price-results-dialog .dialog-actions{position:sticky;bottom:0;padding-top:10px;background:linear-gradient(180deg,transparent,rgba(244,252,249,.97) 28%)}

/* Multi-jours : les 7 jours restent visibles, sans barre horizontale. */




/* Mise à jour : tout résultat reste au premier plan. */
.nss-update-center-dialog{z-index:2147482400!important}.nss-update-center-dialog::backdrop,.nss-integrations-help-dialog::backdrop{background:rgba(5,37,34,.48)!important;backdrop-filter:blur(4px)}
.nss-integrations-help-dialog{width:min(720px,94vw)!important;z-index:2147482450!important}.nss-private-path{display:block;padding:12px 14px;margin:10px 0;border-radius:12px;background:rgba(10,92,78,.08);color:#084f46;font-weight:900;overflow-wrap:anywhere}.nss-config-example{white-space:pre-wrap;overflow:auto;max-height:260px;padding:14px;border-radius:14px;background:#f4faf8;color:#244b45;border:1px solid rgba(15,111,96,.15)}
.update-security-status span{display:grid!important;gap:2px!important}.update-security-status small{font-size:10px;text-transform:uppercase;letter-spacing:.05em}.update-security-status span.ok{background:rgba(31,154,112,.11)!important;border-color:rgba(31,154,112,.22)!important}.update-security-status span.warn{background:rgba(199,111,54,.10)!important;border-color:rgba(199,111,54,.23)!important}

/* Footer : un peu plus haut, respirant, aucune position absolue. */







/* Hero femme : image entière, centrée, sans coupe nette sur tablette/mobile. */
@media(max-width:1024px){.home-showcase-visual,.dashboard-welcome-visual{aspect-ratio:auto!important;min-height:clamp(300px,66vw,620px)!important;padding:0!important}.home-showcase-visual img,.dashboard-welcome-visual img{width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;object-position:center top!important}.home-showcase-visual::after,.dashboard-welcome-visual::after{bottom:0!important;height:68px!important;background:linear-gradient(180deg,transparent,rgba(235,248,243,.92))!important}}

/* === V.2026.10.05.08 — footer unique + navigation/menu responsive consolidés === */
.official-data-footer{position:relative;clear:both;margin:0;padding:12px 16px;background:rgba(224,246,240,.82);border-top:1px solid rgba(20,118,100,.14)}
.official-data-source{width:min(100%,1120px);margin:0 auto;padding:0;line-height:1.35;text-align:center}
.source-badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}
.source-badge{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 12px;border:1px solid rgba(20,118,100,.18);border-radius:14px;background:rgba(255,255,255,.62);color:#15574f;text-decoration:none;text-align:left;box-shadow:0 6px 18px rgba(15,86,75,.04);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.source-badge:hover{transform:translateY(-1px);border-color:rgba(12,118,98,.42);background:rgba(255,255,255,.82)}
.source-badge-static{cursor:default}.source-badge-static:hover{transform:none}
.source-badge-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:rgba(18,126,106,.10);border:1px solid rgba(18,126,106,.16);font-size:12px;font-weight:950;letter-spacing:-.02em;color:#0c6f5f}
.source-badge>span:last-child{display:grid;gap:1px;min-width:0}
.source-badge strong{font-size:12px;line-height:1.2;color:#15574f}
.source-badge small{font-size:11px;line-height:1.2;color:#5b7772;white-space:normal}
.source-disclaimer{max-width:980px;margin:8px auto 0;font-size:10.5px;line-height:1.4;color:#58736f;opacity:.92}
.source-disclaimer a{color:#176d60}
footer{position:relative;clear:both;margin:0;padding:16px 18px calc(16px + env(safe-area-inset-bottom));min-height:0;overflow:visible;background:linear-gradient(180deg,rgba(211,240,232,.96),rgba(197,233,224,.96));color:#15574f;border-top:1px solid rgba(20,118,100,.20)}
footer a{color:#11584f}
.app-footer-inner{width:min(calc(100% - 24px),1040px);margin:0 auto;display:grid;grid-template-columns:185px minmax(0,1fr) 205px;grid-template-areas:"brand center action";align-items:center;justify-content:center;gap:14px 24px;min-width:0}
.footer-brand-block{grid-area:brand;display:grid;place-items:center end;min-width:0;padding-right:6px}
.footer-brand-block .brand-signature{display:block;position:static;width:165px;max-width:100%;height:auto;margin:0;transform:none}
.footer-center-block{grid-area:center;display:grid;gap:8px;min-width:0;text-align:center;justify-items:center}
.footer-copy{margin:0;text-align:center;font-size:12.5px;line-height:1.3;color:#15574f}
.footer-development-note{display:flex;align-items:center;justify-content:center;gap:6px;justify-self:center;max-width:100%;margin:0;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.44);font-size:10.5px;line-height:1.2;text-align:center}
.footer-development-note strong{color:#9a6317;text-transform:uppercase;letter-spacing:.045em}
.footer-development-note span{font-weight:600;color:#426a64}
.footer-legal-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:min(100%,620px);margin:2px auto 0;padding:8px;border:1px solid rgba(20,118,100,.14);border-radius:15px;background:rgba(255,255,255,.28)}
.footer-legal-links a{display:grid;place-items:center;min-height:31px;padding:5px 7px;border:1px solid rgba(20,118,100,.12);border-radius:9px;background:rgba(255,255,255,.48);font-size:10.5px;line-height:1.2;text-align:center;text-decoration:none;white-space:normal}.footer-legal-links a:hover{background:rgba(255,255,255,.75);border-color:rgba(20,118,100,.28)}.footer-legal-title{grid-column:1/-1;font-size:9.5px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#55736e}
.footer-action-block{grid-area:action;display:grid;gap:7px;min-width:0;width:205px;justify-self:start}
.footer-support-cta,.footer-update-link{width:100%;min-height:38px;padding:7px 10px;font-size:11.5px;line-height:1.2;text-align:center}
.footer-update-link{background:rgba(255,255,255,.48)}
.nss-footer-version-mobile{white-space:normal}

.journey-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}
.journey-steps a{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:0;padding:11px 12px;border:1px solid #b9d4d0;border-radius:15px;background:rgba(240,249,247,.82);color:var(--green2);text-decoration:none;box-shadow:0 7px 18px rgba(13,63,60,.05)}
.journey-steps a span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(20,111,104,.1);font-weight:900}
.journey-steps a strong{min-width:0;font-size:14px;line-height:1.15}
.journey-steps a small{min-width:0;color:var(--muted);font-size:10.5px;line-height:1.2}
.journey-steps a.is-active{border-color:#6aa69f;background:linear-gradient(145deg,rgba(221,243,239,.94),rgba(255,255,255,.96));box-shadow:inset 0 -3px 0 #2c8b82,0 9px 20px rgba(13,63,60,.07)}
.journey-steps a.is-active span{background:#2c8b82;color:#fff}

.regenerate-days-dialog{overflow-x:hidden}
.regenerate-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.regenerate-quick-actions button{width:100%;min-width:0}
.regenerate-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:12px 0;padding:0;overflow:visible}
.regenerate-day-grid label{cursor:pointer;min-width:0}
.regenerate-day-grid input{position:absolute;opacity:0;pointer-events:none}
.regenerate-day-grid span{display:grid;gap:2px;place-items:center;min-width:0;min-height:64px;padding:8px 5px;border:1px solid rgba(23,120,104,.24);border-radius:13px;background:rgba(255,255,255,.58);font-size:12px;font-weight:850;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal}
.regenerate-day-grid small{font-size:10px;color:#5d7772}
.regenerate-day-grid input:checked+span{background:linear-gradient(145deg,rgba(192,238,227,.94),rgba(122,205,185,.84));border-color:#0c7666;box-shadow:inset 0 -3px 0 #076052,0 0 0 2px rgba(16,127,108,.08)}


.price-coverage-line{margin:0;text-align:center;color:#155f53}.price-result-missing{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.price-map-link{min-height:32px;padding:6px 10px;font-size:11px}.drive-dialog{width:min(94vw,760px)}.drive-fallback-actions,.drive-retailer-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.drive-retailer-links .button{flex:1 1 125px;text-align:center}.drive-fallback-actions>*{flex:1 1 180px}
@media(max-width:900px){
 .source-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.source-badge:last-child{grid-column:auto}
 .app-footer-inner{width:min(calc(100% - 20px),760px);grid-template-columns:150px minmax(0,1fr);grid-template-areas:"brand center" "action action";gap:10px 18px}.footer-brand-block{place-items:center}.footer-brand-block .brand-signature{width:145px}.footer-action-block{width:min(100%,480px);justify-self:center;grid-template-columns:1fr 1fr}.footer-legal-links{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.footer-legal-title{grid-column:1/-1}
 .journey-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .regenerate-day-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:620px){
 .official-data-footer{padding:10px 12px}.source-badges{grid-template-columns:1fr}.source-badge:last-child{grid-column:auto}.source-badge{padding:8px 10px}.source-disclaimer{font-size:9.5px}
 footer{padding:14px 12px calc(14px + env(safe-area-inset-bottom))}.app-footer-inner{width:min(100%,520px);grid-template-columns:1fr;grid-template-areas:"brand" "center" "action";gap:10px}.footer-brand-block{place-items:center;padding-right:0}.footer-brand-block .brand-signature{width:min(170px,48vw)}.footer-action-block{grid-template-columns:1fr;width:100%;justify-self:stretch}.footer-development-note{border-radius:11px;flex-wrap:wrap}.footer-development-note span{width:100%}.footer-legal-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;padding:7px}.footer-legal-title{grid-column:1/-1}.footer-legal-links a{min-height:36px;font-size:11px}.footer-legal-links a:last-child{grid-column:1/-1}
 .journey-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.journey-steps a{grid-template-columns:30px minmax(0,1fr);padding:8px 9px;min-height:60px}.journey-steps a span{width:29px;height:29px;font-size:12px}.journey-steps a strong{font-size:12px}.journey-steps a small{display:none}
 .regenerate-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.regenerate-quick-actions{grid-template-columns:1fr}.regenerate-days-dialog .dialog-actions{display:grid;grid-template-columns:1fr}.regenerate-days-dialog .dialog-actions>*{width:100%}
}
@media(max-width:390px){
 .footer-action-block{grid-template-columns:1fr}.footer-legal-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.footer-legal-links a:last-child{grid-column:1/-1}
 .journey-steps{grid-template-columns:1fr 1fr}.journey-steps a{padding:7px 8px}
}


/* === V.2026.10.05.10 — intégration PNNS / Manger Bouger dans le générateur === */
.pnns-balance-panel{width:min(100%,1180px);margin:16px auto 20px;padding:18px;border:1px solid rgba(20,118,100,.18);border-radius:20px;background:linear-gradient(145deg,rgba(239,250,247,.94),rgba(255,255,255,.92));box-shadow:0 12px 30px rgba(18,80,70,.06)}
.pnns-balance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.pnns-balance-head>div{min-width:0}.pnns-balance-head h2{margin:2px 0 5px}.pnns-balance-head p:not(.eyebrow){margin:0;max-width:780px;color:#55736e}.pnns-balance-head .badge{flex:0 0 auto}
.pnns-rule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pnns-rule{display:grid;gap:4px;min-width:0;padding:12px 13px;border:1px solid rgba(22,112,96,.16);border-radius:15px;background:rgba(255,255,255,.72)}.pnns-rule span{font-size:11px;font-weight:850;color:#54716c}.pnns-rule strong{font-size:18px;line-height:1.15;color:#145e53}.pnns-rule small{font-size:10.5px;line-height:1.3;color:#6a7f7b}.pnns-rule.is-ok{box-shadow:inset 0 -3px 0 rgba(24,137,104,.55)}.pnns-rule.is-warn{box-shadow:inset 0 -3px 0 rgba(206,139,50,.62)}.pnns-rule.is-info{box-shadow:inset 0 -3px 0 rgba(75,124,151,.45)}.pnns-balance-note{margin:12px 0 0;font-size:10.5px;line-height:1.45;color:#647b76}
@media(max-width:1000px){.pnns-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.pnns-balance-panel{padding:14px 12px;border-radius:16px}.pnns-balance-head{display:grid;gap:9px}.pnns-balance-head .badge{justify-self:start}.pnns-rule-grid{grid-template-columns:1fr}.pnns-rule{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px}.pnns-rule small{grid-column:1/-1}.pnns-rule strong{text-align:right;font-size:16px}}

/* V.2026.10.05.10 — retours d’action explicites */
button[data-submit-busy="1"]{opacity:.72;cursor:wait}

/* === V.2026.10.05.11 — continuité Menus > Courses > Prix / Drive === */
.menu-command-center{display:block!important}
.menu-primary-actions{position:relative;z-index:2}
.shopping-continuation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:18px;padding:16px 18px;border:1px solid rgba(20,118,100,.2);border-radius:18px;background:linear-gradient(145deg,rgba(234,248,244,.9),rgba(255,255,255,.9));box-shadow:0 9px 24px rgba(17,88,75,.06)}
.shopping-continuation>div:first-child{display:grid;gap:4px;min-width:0}.shopping-continuation>div:first-child strong{font-size:1.05rem;color:#155f53}.shopping-continuation>div:first-child small{color:#5b7772;line-height:1.35}
.shopping-continuation-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.shopping-continuation-actions .button{min-width:150px}
.shopping-next-dialog{width:min(760px,94vw)}
.shopping-next-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.shopping-next-card{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:4px;align-items:center;width:100%;min-height:118px;padding:15px;text-align:left;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(20,118,100,.18);color:#174f46;box-shadow:0 8px 22px rgba(17,88,75,.05)}
.shopping-next-card:hover{transform:translateY(-1px);border-color:rgba(12,118,98,.42)}
.shopping-next-card .shopping-next-icon{grid-row:1/3;display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:rgba(18,126,106,.11);border:1px solid rgba(18,126,106,.16);font-weight:950;font-size:15px;color:#0c6f5f}
.shopping-next-card strong{font-size:1rem}.shopping-next-card small{font-size:.78rem;line-height:1.35;color:#5b7772;font-weight:650}
.drive-transfer-status{display:grid;gap:4px;margin:14px 0;padding:13px 15px;border-radius:15px;background:rgba(231,245,241,.72);border:1px solid rgba(20,118,100,.16)}.drive-transfer-status span{font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#5f7772}.drive-transfer-status strong{color:#145e53}.drive-transfer-status small{line-height:1.4;color:#5b7772}
@media(max-width:820px){.shopping-continuation{grid-template-columns:1fr}.shopping-continuation-actions{justify-content:stretch}.shopping-continuation-actions .button{flex:1 1 180px}.shopping-next-grid{grid-template-columns:1fr}}
@media(max-width:520px){.shopping-continuation{padding:13px 12px}.shopping-continuation-actions{display:grid;grid-template-columns:1fr}.shopping-continuation-actions .button{width:100%;min-width:0}.shopping-next-card{grid-template-columns:46px minmax(0,1fr);padding:12px}.shopping-next-card .shopping-next-icon{width:44px;height:44px;border-radius:12px;font-size:12px}}


/* ========================================================================== */
/* NSS V.2026.10.05.12 — mobile, accueil public, dock et installation PWA      */
/* ========================================================================== */
@media(max-width:980px){
  /* Le symbole réel ☰ reste visible : les anciennes règles annulaient le pseudo-élément
     tout en mettant le texte du bouton à 0px. */
  .app-banner-row{position:relative!important}
  .menu-toggle{
    display:grid!important;place-items:center!important;
    top:50%!important;right:10px!important;transform:translateY(-50%)!important;
    width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;
    font-size:28px!important;line-height:1!important;text-indent:0!important;
    color:#075e54!important;visibility:visible!important;opacity:1!important;
    z-index:20!important;overflow:hidden!important
  }
  .menu-toggle span{display:none!important}
  .menu-toggle::after{content:none!important}

  .mobile-dock.is-auth,.mobile-dock.is-guest{display:flex!important;grid-template-columns:none!important}
  .mobile-dock a{flex:1 1 0!important;min-width:0!important;font-size:10.5px!important;line-height:1.05!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .mobile-dock a.mobile-dock-signout{color:#7b2f2f!important}
  .mobile-dock a.mobile-dock-signout span{color:#7b2f2f!important}
}
@media(max-width:390px){
  .mobile-dock.is-auth a{font-size:9.2px!important}
  .mobile-dock.is-auth span{font-size:19px!important}
}

/* Le footer présente les mêmes informations publiques avant et après connexion. */
.footer-development-note{display:flex!important}
.footer-action-block{min-width:0!important}

/* Invitation d’installation disponible sur téléphone, tablette et ordinateur. */
.nss-install-invite{
  width:min(560px,calc(100vw - 28px));max-width:560px;padding:26px 24px 22px;
  border:1px solid rgba(25,121,106,.28);border-radius:24px;
  background:linear-gradient(145deg,rgba(250,255,253,.98),rgba(224,246,239,.97));
  color:#103f39;box-shadow:0 28px 70px rgba(5,58,51,.26);backdrop-filter:blur(18px);
}
.nss-install-invite::backdrop{background:rgba(6,42,38,.46);backdrop-filter:blur(5px)}
.nss-install-invite .dialog-x{position:absolute!important;top:12px!important;right:12px!important}
.nss-install-invite-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 10px;border-radius:18px;background:rgba(190,233,222,.72);font-size:29px;color:#075e54}
.nss-install-invite h2{text-align:center;margin:.2em 0 .45em;color:#075e54}
.nss-install-invite>p:not(.eyebrow){text-align:center;margin:0 auto 18px;max-width:470px;color:#526f69;line-height:1.5}
.nss-install-invite .eyebrow{text-align:center;margin:0}
.nss-install-invite-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.nss-install-invite-actions button{width:100%;min-height:48px}
.nss-install-invite small{display:block;margin-top:12px;text-align:center;color:#667d79;line-height:1.4}
@media(max-width:560px){
 .nss-install-invite{width:calc(100vw - 18px);padding:22px 15px 18px;border-radius:20px}
 .nss-install-invite-actions{grid-template-columns:1fr}
}

/* === V.2026.10.05.14 — Fabrique de menus PNNS/Manger Bouger + accordéons + accès PWA === */
.menu-factory-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:16px 0;padding:15px 16px;border:1px solid rgba(18,126,108,.24);border-radius:18px;background:linear-gradient(145deg,rgba(247,253,251,.88),rgba(218,242,235,.78));box-shadow:0 9px 24px rgba(8,80,68,.08)}
.menu-factory-entry strong,.menu-factory-entry small{display:block}.menu-factory-entry strong{color:#075e54;font-size:16px}.menu-factory-entry small{margin-top:4px;color:#5d7772;line-height:1.45}.menu-factory-entry button{min-width:190px}
.menu-factory-dialog{width:min(920px,calc(100vw - 28px));max-height:min(92dvh,960px);overflow:auto;padding:24px}.menu-factory-dialog::backdrop{background:rgba(7,44,39,.48);backdrop-filter:blur(5px)}
.menu-factory-intro{max-width:760px;margin:0 auto 16px;text-align:center;color:#536f6a;line-height:1.5}.menu-factory-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin:14px 0}.menu-factory-controls label{margin:0}.menu-factory-controls button{min-height:46px}
.menu-factory-source{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin:12px 0 15px;padding:10px 12px;border-radius:15px;border:1px solid rgba(16,120,103,.18);background:rgba(255,255,255,.58)}.menu-factory-source strong,.menu-factory-source small{display:block}.menu-factory-source small{color:#607a75}.menu-factory-source a{font-weight:800;color:#075e54;text-decoration:underline;text-underline-offset:2px}
.menu-factory-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.menu-factory-tabs button{width:100%}.menu-factory-tabs button.is-active{background:linear-gradient(145deg,rgba(193,238,227,.96),rgba(133,207,190,.84))!important;border-color:rgba(4,102,86,.52)!important;box-shadow:inset 0 -3px 0 rgba(5,91,77,.52)!important}
.menu-factory-days{display:grid;gap:9px}.menu-factory-day{border:1px solid rgba(16,119,102,.22);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.64)}.menu-factory-day>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;font-weight:900;color:#075e54;background:linear-gradient(145deg,rgba(239,250,247,.94),rgba(214,239,232,.85))}.menu-factory-day>summary::-webkit-details-marker{display:none}.menu-factory-day>summary::after{content:'＋';font-size:18px;font-weight:900}.menu-factory-day[open]>summary::after{content:'−'}.menu-factory-day>summary b{margin-left:auto;margin-right:8px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.74);border:1px solid rgba(14,112,95,.18);font-size:12px;color:#55746e}.menu-factory-meals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.menu-factory-meals article{padding:11px 12px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid rgba(22,123,106,.14)}.menu-factory-meals small,.menu-factory-meals strong{display:block}.menu-factory-meals small{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6b817d}.menu-factory-meals strong{margin-top:3px;color:#164f47;line-height:1.35}
.nss-section-reveal{justify-content:space-between!important;text-align:left!important}.nss-section-reveal::after{content:'＋'!important;position:static!important;width:auto!important;height:auto!important;margin-left:12px!important;border:0!important;background:none!important;box-shadow:none!important;animation:none!important;font-size:20px!important;opacity:1!important}.nss-section-reveal[aria-expanded="true"]::after{content:'−'!important}
.footer-install-link{min-height:40px}.footer-install-link[hidden]{display:none!important}
@media(max-width:760px){.menu-factory-entry{grid-template-columns:1fr;text-align:center}.menu-factory-entry button{width:100%;min-width:0}.menu-factory-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:20px 14px 92px}.menu-factory-controls{grid-template-columns:1fr}.menu-factory-source{grid-template-columns:auto 1fr;text-align:left}.menu-factory-source a{grid-column:1/-1;text-align:center;padding-top:4px}.menu-factory-tabs{grid-template-columns:1fr}.menu-factory-meals{grid-template-columns:1fr}.menu-factory-dialog .dialog-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(239,248,246,0),rgba(239,248,246,.98) 28%);padding-top:12px}}
@media(min-width:761px) and (max-width:1180px){.footer-action-block .footer-install-link{grid-column:1/-1}}

/* ========================================================================== */
/* NSS V.2026.10.05.15 — header fixe tous supports + scanner plein écran      */
/* ========================================================================== */
:root{--nss-fixed-header-h:176px}
html{scroll-padding-top:calc(var(--nss-fixed-header-h) + var(--nss-update-h,0px) + 12px)!important}
.app-header{
  position:fixed!important;
  top:var(--nss-update-h,0px)!important;
  left:0!important;right:0!important;width:100%!important;
  z-index:90000!important;
  margin:0!important;
  transform:none!important;
}
body.nss-fixed-header{padding-top:var(--nss-fixed-header-h)!important}
body.nss-update-visible.nss-fixed-header{padding-top:calc(var(--nss-fixed-header-h) + var(--nss-update-h,0px))!important}

/* Tablettes : même logique de menu compact que sur mobile, sans recouvrir le contenu. */
@media(min-width:851px) and (max-width:1100px){
  .app-banner-row{position:relative!important}
  .app-banner{padding-right:82px!important}
  .menu-toggle{
    display:grid!important;place-items:center!important;
    position:absolute!important;right:16px!important;top:50%!important;
    transform:translateY(-50%)!important;
    width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;
    margin:0!important;padding:0!important;border-radius:16px!important;
    font-size:28px!important;line-height:1!important;text-indent:0!important;
    color:#075e54!important;z-index:30!important;visibility:visible!important;opacity:1!important
  }
  .menu-toggle span{display:none!important}
  .menu-toggle::after{content:none!important}
  .nav-row{position:relative!important;z-index:10!important;width:100%!important;padding-inline:14px!important}
  #main-nav{
    display:none!important;position:fixed!important;
    top:calc(var(--nss-fixed-header-h) + var(--nss-update-h,0px))!important;
    left:12px!important;right:12px!important;width:auto!important;
    max-height:calc(100dvh - var(--nss-fixed-header-h) - var(--nss-update-h,0px) - 18px)!important;
    overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;
    margin:0!important;padding:12px!important;border:1px solid rgba(41,135,121,.20)!important;
    border-radius:0 0 20px 20px!important;background:rgba(239,251,247,.985)!important;
    box-shadow:0 18px 40px rgba(8,67,59,.20)!important;z-index:120000!important
  }
  #main-nav.open{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:3px!important}
}

/* Scanner : vraie couche plein écran, au-dessus du header, du dock et de la PWA. */
.scanner-close-floating{display:none}
body.scanner-active{overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}
body.scanner-active .app-header,
body.scanner-active .mobile-dock,
body.scanner-active .to-top,
body.scanner-active .cookie-banner,
body.scanner-active .app-update,
body.scanner-active .nss-version-badge{visibility:hidden!important;pointer-events:none!important}
body.scanner-active .scanner-camera-card{
  position:fixed!important;inset:0!important;z-index:2147482000!important;
  width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
  overflow:hidden!important;background:#031817!important;box-shadow:none!important;isolation:isolate!important
}
body.scanner-active .scanner-camera-card .scanner-window{
  position:absolute!important;inset:0!important;z-index:1!important;
  width:100%!important;height:100%!important;min-height:100dvh!important;
  margin:0!important;border:0!important;border-radius:0!important;background:#031817!important
}
body.scanner-active .scanner-camera-card .scanner-window>video,
body.scanner-active .scanner-camera-card .scanner-window>canvas{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  max-width:none!important;max-height:none!important;object-fit:cover!important
}
body.scanner-active .scanner-frame{z-index:6!important;width:min(84vw,760px)!important;height:min(24dvh,210px)!important}
body.scanner-active .scanner-live-status{
  position:fixed!important;top:max(18px,env(safe-area-inset-top))!important;left:50%!important;
  z-index:2147482020!important;width:min(620px,calc(100vw - 126px))!important;
  transform:translateX(-50%)!important;margin:0!important
}
body.scanner-active .scanner-close-floating{
  display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  position:fixed!important;top:max(12px,env(safe-area-inset-top))!important;right:max(12px,env(safe-area-inset-right))!important;
  z-index:2147482030!important;min-width:48px!important;min-height:48px!important;padding:10px 13px!important;
  border-radius:15px!important;background:rgba(255,255,255,.96)!important;color:#0d4d49!important;
  border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 8px 24px rgba(0,0,0,.20)!important;
  font-size:15px!important;font-weight:900!important
}
body.scanner-active .scanner-controls{
  position:fixed!important;left:50%!important;
  bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px))!important;
  z-index:2147482030!important;display:flex!important;flex-wrap:wrap!important;
  width:min(620px,calc(100vw - 24px))!important;margin:0!important;transform:translateX(-50%)!important;
  justify-content:center!important;gap:9px!important;padding:9px!important;border-radius:16px!important;
  background:rgba(3,28,26,.78)!important;backdrop-filter:blur(12px)!important
}
body.scanner-active .scanner-controls #stop-scan{display:inline-flex!important;visibility:visible!important;opacity:1!important}
body.scanner-active .scanner-controls button{min-height:46px!important;max-width:calc(50% - 6px)!important}
body.scanner-active .scanner-help{
  position:fixed!important;left:50%!important;
  bottom:max(84px,calc(env(safe-area-inset-bottom) + 78px))!important;
  z-index:2147482025!important;width:min(620px,calc(100vw - 24px))!important;
  transform:translateX(-50%)!important;margin:0!important
}
@media(max-width:600px){
  body.scanner-active .scanner-frame{width:88vw!important;height:145px!important}
  body.scanner-active .scanner-live-status{top:max(72px,calc(env(safe-area-inset-top) + 58px))!important;width:calc(100vw - 24px)!important}
  body.scanner-active .scanner-close-floating{top:max(10px,env(safe-area-inset-top))!important;right:10px!important}
  body.scanner-active .scanner-controls{display:grid!important;grid-template-columns:1fr 1fr!important}
  body.scanner-active .scanner-controls button{width:100%!important;max-width:none!important}
  body.scanner-active .scanner-help{bottom:max(92px,calc(env(safe-area-inset-bottom) + 88px))!important;font-size:11px!important}
}


/* ========================================================================== */
/* NSS V.2026.10.05.16 — menus compacts : objectifs + repas en accordéons    */
/* ========================================================================== */
.menu-objectives-accordion,
.pnns-balance-accordion{
  width:min(100%,1180px);margin:0 auto 14px;border:1px solid rgba(20,118,100,.18);
  border-radius:18px;background:linear-gradient(145deg,rgba(245,253,250,.94),rgba(255,255,255,.92));
  box-shadow:0 10px 26px rgba(18,80,70,.055);overflow:hidden
}
.menu-objectives-accordion>summary,
.pnns-balance-accordion>summary{
  cursor:pointer;list-style:none;position:relative;padding:14px 48px 14px 16px
}
.menu-objectives-accordion>summary::-webkit-details-marker,
.pnns-balance-accordion>summary::-webkit-details-marker{display:none}
.menu-objectives-accordion>summary::after,
.pnns-balance-accordion>summary::after{
  content:'＋';position:absolute;right:16px;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:rgba(20,118,100,.09);color:#075e54;font-weight:900;font-size:18px
}
.menu-objectives-accordion[open]>summary::after,
.pnns-balance-accordion[open]>summary::after{content:'−'}
.menu-objectives-accordion>summary>span{display:flex;flex-direction:column;gap:3px}
.menu-objectives-accordion>summary strong{font-size:17px;color:#075e54}
.menu-objectives-accordion>summary small{color:#627b76;line-height:1.4}
.menu-objectives-accordion .plan-summary{margin:0;padding:0 14px 14px;gap:9px}
.menu-objectives-accordion .plan-summary article{padding:12px 14px!important;box-shadow:none!important}
.menu-objectives-accordion .plan-summary strong{font-size:20px!important}
.pnns-balance-accordion{padding:0!important}
.pnns-balance-accordion>.pnns-balance-head{margin:0!important;border:0!important;background:transparent!important}
.pnns-balance-accordion>.pnns-balance-head h2{margin:.12em 0 .2em}
.pnns-balance-accordion>.pnns-balance-head p:not(.eyebrow){margin:0;color:#607873}
.pnns-balance-content{padding:0 16px 16px}

/* Une ligne de repas = composition visible ; détails seulement si l'utilisateur en a besoin. */
.meal-line.meal-accordion{
  display:block!important;padding:0!important;margin:10px 14px!important;border:1px solid rgba(21,119,101,.17)!important;
  border-radius:15px!important;background:rgba(250,255,253,.82)!important;overflow:hidden!important
}
.meal-line.meal-accordion:last-of-type{border-bottom:1px solid rgba(21,119,101,.17)!important}
.meal-line.meal-accordion.is-consumed{background:rgba(225,246,237,.88)!important}
.meal-summary{
  cursor:pointer;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
  position:relative;padding:13px 48px 13px 15px;background:linear-gradient(145deg,rgba(248,253,251,.96),rgba(235,248,244,.90))
}
.meal-summary::-webkit-details-marker{display:none}
.meal-summary::after{
  content:'＋';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#075e54;font-weight:900;font-size:18px
}
.meal-accordion[open]>.meal-summary::after{content:'−'}
.meal-summary>span{min-width:0;display:flex;flex-direction:column;gap:3px}
.meal-summary strong{color:#a97b2d!important;font-size:12px!important;text-transform:uppercase;letter-spacing:.055em}
.meal-summary b{min-width:0;color:#164f47;font-size:15px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.meal-summary>small{white-space:nowrap;color:#4f706a;font-weight:800}
.meal-accordion-body{padding:0 14px 14px}
.meal-accordion-body .meal-main{padding:11px 2px 7px;text-align:left!important}
.meal-accordion-body .meal-main>p,
.meal-accordion-body .meal-main>small{text-align:left!important}
.meal-accordion-body .meal-main>p{margin:0 0 5px;color:#435f5a;line-height:1.45}
.meal-accordion-body .meal-actions{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.8fr);gap:8px;align-items:stretch}
.meal-accordion-body .meal-actions form{margin:0}
.meal-accordion-body .meal-actions button{width:100%;height:100%;min-height:44px;margin:0}
.meal-accordion-body .recipe-button{font-weight:900}

/* Le bloc nutrition du jour reste disponible sans allonger les repas. */
.day-card .meal-day-progress{margin:10px 14px 12px!important}
.day-card .nss-day-balance-bar,.day-card .day-exercise-link,.day-card .day-extra{margin-left:14px!important;margin-right:14px!important}
.day-card .day-extra{margin-bottom:14px!important;border:1px solid rgba(21,119,101,.15)!important;border-radius:14px!important}

@media(max-width:760px){
  .menu-objectives-accordion,.pnns-balance-accordion{border-radius:15px;margin-bottom:10px}
  .menu-objectives-accordion>summary,.pnns-balance-accordion>summary{padding:12px 44px 12px 13px}
  .menu-objectives-accordion .plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:0 10px 10px}
  .menu-objectives-accordion .plan-summary article{padding:10px!important}
  .menu-objectives-accordion .plan-summary strong{font-size:17px!important}
  .pnns-balance-content{padding:0 10px 10px}
  .meal-line.meal-accordion{margin:8px 10px!important}
  .meal-summary{grid-template-columns:1fr;padding:12px 42px 12px 13px;gap:5px}
  .meal-summary>small{justify-self:start;font-size:12px}
  .meal-accordion-body{padding:0 10px 10px}
  .meal-accordion-body .meal-actions{grid-template-columns:1fr!important}
  .day-card .meal-day-progress{margin:8px 10px 10px!important}
  .day-card .nss-day-balance-bar,.day-card .day-exercise-link,.day-card .day-extra{margin-left:10px!important;margin-right:10px!important}
}

/* ======================================================================
   V.2026.10.05.17 — Prix local : choix guidé du produit / EAN
   ====================================================================== */
.price-mapping-callout{display:grid;gap:9px;align-items:start}
.price-mapping-callout .button{justify-self:start}
.price-result-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.price-result-actions .button{margin:0}
.price-map-link.tertiary{font-size:12px;opacity:.82}
.product-choice-dialog{width:min(860px,calc(100vw - 24px));max-height:min(88vh,900px);overflow:auto}
.product-choice-help{margin:0 0 12px;line-height:1.55;color:#45625d}
.product-choice-dialog .search-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin:10px 0 12px}
.product-choice-dialog .search-bar input{width:100%;min-height:44px}
.product-choice-results{display:grid;gap:10px;margin:12px 0}
.product-choice-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid rgba(20,112,96,.18);border-radius:16px;background:rgba(255,255,255,.72)}
.product-choice-card img,.product-choice-placeholder{width:72px;height:72px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid rgba(20,112,96,.12)}
.product-choice-placeholder{display:grid;place-items:center;font-weight:900;color:#47716a;font-size:12px}
.product-choice-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.product-choice-main strong{color:#174f47;line-height:1.3;overflow-wrap:anywhere}
.product-choice-main small{color:#5a746f;line-height:1.4;overflow-wrap:anywhere}
.product-choice-main .nutriscore-mini{align-self:flex-start;margin-top:3px}
.product-choice-card>button{min-width:150px;margin:0}
@media(max-width:680px){
  .product-choice-dialog{width:calc(100vw - 12px);max-height:94vh;padding:16px 12px}
  .product-choice-dialog .search-bar{grid-template-columns:1fr}
  .product-choice-card{grid-template-columns:58px minmax(0,1fr);gap:9px;padding:9px}
  .product-choice-card img,.product-choice-placeholder{width:58px;height:58px}
  .product-choice-card>button{grid-column:1/-1;width:100%;min-width:0}
  .price-result-actions{display:grid;grid-template-columns:1fr;width:100%}
  .price-result-actions .button{width:100%}
}


/* ======================================================================
   V.2026.10.05.18 — recettes, prix automatiques, fenêtres PC
   ====================================================================== */
.menu-journey-accordion{width:min(100%,1180px);margin:0 auto 14px;border:1px solid rgba(20,118,100,.18);border-radius:18px;background:rgba(249,255,253,.92);overflow:hidden;box-shadow:0 10px 28px rgba(18,80,70,.05)}
.menu-journey-accordion>summary{list-style:none;cursor:pointer;padding:14px 48px 14px 16px;position:relative}.menu-journey-accordion>summary::-webkit-details-marker{display:none}.menu-journey-accordion>summary::after{content:'＋';position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:20px;color:#075e54}.menu-journey-accordion[open]>summary::after{content:'−'}.menu-journey-accordion>summary span{display:grid;gap:2px}.menu-journey-accordion>summary strong{color:#075e54}.menu-journey-accordion>summary small{color:#617873}.menu-journey-body{padding:0 14px 14px}.menu-journey-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.menu-journey-status span{padding:9px 10px;border-radius:12px;background:rgba(233,245,241,.7);color:#47615c;font-size:12px}.menu-journey-status span.is-ok{background:rgba(218,244,234,.88);color:#126553}.menu-journey-status b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(11,103,88,.12);margin-right:4px}
.recipe-hub-dialog{width:min(940px,calc(100vw - 24px));max-height:88dvh;overflow:auto}.recipe-hub-filters{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;gap:10px;align-items:end;margin:12px 0}.recipe-hub-filters label{margin:0}.recipe-hub-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.recipe-hub-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid rgba(20,118,100,.16);border-radius:16px;background:rgba(255,255,255,.72)}.recipe-hub-card div{min-width:0;display:grid;gap:3px}.recipe-hub-card small{color:#a4782c;font-weight:800}.recipe-hub-card strong{color:#174f47;line-height:1.35}.recipe-hub-card button{margin:0}
.nss-day-balance-rings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.nss-day-balance-rings .js-segmented-ring{min-width:0}.price-total-v18{border:2px solid rgba(17,129,105,.24)!important;background:linear-gradient(145deg,#f4fffb,#e3f5ef)!important}.price-total-v18 strong{font-size:clamp(28px,5vw,44px)!important}.price-total-v18 small{display:block;max-width:680px;margin:4px auto 0;line-height:1.4;color:#4d6b65}.drive-dialog .drive-retailer-links{margin-top:16px}
@media(min-width:901px){dialog.nss-desktop-window{resize:both;min-width:420px;min-height:260px;max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important;overflow:auto!important}.nss-desktop-window.is-dragging{cursor:grabbing;user-select:none}.nss-desktop-window>h2,.nss-desktop-window>.eyebrow,.nss-desktop-window>.dialog-heading{cursor:grab}}
@media(max-width:760px){.menu-journey-status{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-hub-dialog{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:18px 12px 90px}.recipe-hub-filters{grid-template-columns:1fr}.recipe-hub-results{grid-template-columns:1fr}.recipe-hub-card{grid-template-columns:1fr}.recipe-hub-card button{width:100%}.nss-day-balance-rings{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ================================================================
   V.2026.10.05.19 — accès recettes + prix local automatique
   ================================================================ */
.meal-actions .recipe-button{font-weight:850;box-shadow:0 8px 20px rgba(20,110,93,.10)}
.recipe-dialog #recipe-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.recipe-dialog #recipe-tabs button{min-height:48px;white-space:normal;line-height:1.2}
.price-total-v18 strong{font-size:clamp(1.65rem,3vw,2.35rem)}
@media(max-width:720px){.recipe-dialog #recipe-tabs{grid-template-columns:1fr}.meal-actions .recipe-button{width:100%}}


/* ============================================================
   V.2026.10.05.20 — Recettes compactes + prix lisibles
   ============================================================ */
.recipe-hub-dialog .recipe-hub-filters{grid-template-columns:minmax(220px,1fr) auto;align-items:end}
.recipe-hub-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.recipe-hub-choice{grid-template-columns:1fr;align-content:space-between;min-height:150px}
.recipe-hub-choice div{gap:7px}.recipe-hub-choice span{font-size:12px;color:var(--muted)}
.recipe-hub-choice button{width:100%}.recipe-back{margin:0 0 12px}
#recipe-hub-detail-view .recipe-content{margin-top:12px}
#recipe-hub-detail-view .dialog-actions{justify-content:flex-start}
#recipe-dialog{display:none!important}
.price-summary-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.price-detail-accordion{margin-top:12px;border:1px solid rgba(20,118,100,.18);border-radius:16px;background:rgba(255,255,255,.46);overflow:hidden}
.price-detail-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;font-weight:900;color:#155f53;list-style:none}
.price-detail-accordion>summary::-webkit-details-marker{display:none}.price-detail-accordion>summary::after{content:'+';font-size:22px}.price-detail-accordion[open]>summary::after{content:'−'}
.price-detail-accordion>summary span{margin-left:auto;padding:4px 9px;border-radius:999px;background:rgba(224,244,238,.9);font-size:12px}
.price-detail-accordion .price-result-list{padding:0 12px 12px}
.price-debug{margin-top:10px;padding:10px;border:1px dashed rgba(149,97,29,.4);border-radius:12px;background:rgba(255,248,234,.8)}.price-debug code{display:block;white-space:pre-wrap;margin-top:8px;font-size:12px}
@media(max-width:900px){.recipe-hub-three{grid-template-columns:1fr}.recipe-hub-dialog .recipe-hub-filters{grid-template-columns:1fr}.price-summary-compact{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.price-summary-compact{grid-template-columns:1fr 1fr}.price-summary-compact>span:last-child{grid-column:1/-1}.recipe-hub-choice{min-height:0}}


/* ============================================================
   V.2026.10.05.21 — Administration : Fonctions & services
   ============================================================ */
.admin-service-tab{font-weight:900!important;background:rgba(218,244,234,.85)!important;border-color:rgba(18,123,103,.22)!important}
.admin-service-alerts{display:grid;gap:10px;margin:12px 0 16px}
.admin-service-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-radius:16px;border:1px solid rgba(20,118,100,.18);background:#fff}
.admin-service-alert>div{display:grid;gap:3px}.admin-service-alert strong{color:#174f47}.admin-service-alert span{color:#536f69;font-size:13px}
.admin-service-alert-danger{border-color:rgba(185,54,54,.32);background:#fff4f4}.admin-service-alert-danger strong{color:#a32d2d}
.admin-service-alert-warning{border-color:rgba(181,125,31,.32);background:#fff9ec}.admin-service-alert-warning strong{color:#8a5f13}
.admin-service-alert-ok{background:#f1fbf7}.admin-service-alert-ok strong{color:#136a57}
.admin-services-hero{display:grid;gap:12px}.admin-services-critical,.admin-services-ok{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:13px 15px;border-radius:16px}
.admin-services-critical{background:#fff1f1;border:1px solid rgba(185,54,54,.3)}.admin-services-critical strong{color:#a32d2d}.admin-services-critical span{color:#6d4b4b}.admin-services-critical form{grid-row:1/3;grid-column:2;margin:0}
.admin-services-ok{background:#edf9f4;border:1px solid rgba(20,118,100,.2)}.admin-services-ok strong{color:#126553}.admin-services-ok span{color:#4d6d66}
.admin-service-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.admin-service-control{display:grid;gap:12px}.admin-service-control header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.admin-service-control h2{margin:2px 0 0}.admin-service-control.is-disabled{border-color:rgba(185,54,54,.28);background:linear-gradient(145deg,#fff,#fff6f6)}
.admin-service-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.admin-service-meta div{padding:9px 10px;border-radius:12px;background:rgba(237,247,244,.72)}.admin-service-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6a817c}.admin-service-meta dd{margin:3px 0 0;color:#244f48;font-weight:750;overflow-wrap:anywhere}
.admin-service-toggle-form{margin:0}.admin-service-toggle-form button{width:100%;min-height:44px}.admin-service-secondary{margin:14px 0}.admin-service-secondary>summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;list-style:none;padding:4px 0}.admin-service-secondary>summary::-webkit-details-marker{display:none}.admin-service-secondary>summary small{color:#627b75}.admin-service-secondary[open]>summary{margin-bottom:12px}.admin-service-stats{margin-top:14px}
@media(max-width:760px){.admin-service-control-grid{grid-template-columns:1fr}.admin-service-alert{display:grid}.admin-service-alert .button{width:100%}.admin-services-critical,.admin-services-ok{grid-template-columns:1fr}.admin-services-critical form{grid-row:auto;grid-column:auto}.admin-services-critical button{width:100%}.admin-service-meta{grid-template-columns:1fr}}

/* ========================================================================== */
/* NSS V.2026.10.05.22 — finition ergonomique, pop-ups et espace professionnel */
/* ========================================================================== */

/* Fenêtres : verre translucide cohérent avec le reste du site. */
dialog.glass-dialog,
dialog.menu-editor-dialog{
  color:#173f3a!important;
  border:1px solid rgba(108,177,160,.34)!important;
  background:
    radial-gradient(circle at 15% 0%,rgba(255,255,255,.96),rgba(255,255,255,0) 38%),
    linear-gradient(145deg,rgba(244,255,251,.92),rgba(232,247,242,.84))!important;
  box-shadow:0 26px 70px rgba(5,56,49,.23),inset 0 1px 0 rgba(255,255,255,.86)!important;
  backdrop-filter:blur(22px) saturate(1.12)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.12)!important;
}
dialog.glass-dialog::backdrop,
dialog.menu-editor-dialog::backdrop{background:rgba(7,46,42,.38)!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}
dialog.glass-dialog .notice,
dialog.menu-editor-dialog .notice{background:rgba(255,255,255,.62)!important;border-color:rgba(69,145,129,.2)!important}
dialog.glass-dialog h2,dialog.menu-editor-dialog h2{color:#124f48!important}
dialog.nss-desktop-window{resize:both!important;overflow:auto!important;min-width:420px;min-height:260px;max-width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px)!important}
dialog.nss-desktop-window.is-dragging{user-select:none;cursor:grabbing}

/* Recettes : choix du moment visible, sans formulaire caché dans une longue page. */
.recipe-meal-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}
.recipe-meal-tabs button{min-height:46px;margin:0}
.recipe-meal-tabs button.is-active{background:linear-gradient(145deg,#d4efe6,#bfe6d9)!important;border-color:#5ba58f!important;color:#0c5b4d!important;box-shadow:inset 0 -3px 0 rgba(14,105,88,.23)}
.recipe-hub-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px}.recipe-hub-toolbar .notice{margin:0;flex:1}.recipe-hub-toolbar button{white-space:nowrap}
.recipe-steps{counter-reset:none}.recipe-steps li{padding:9px 11px;margin:7px 0;border-radius:12px;background:rgba(255,255,255,.55);border:1px solid rgba(58,135,119,.12);line-height:1.55}.recipe-steps li b{color:#a16d16}
.menu-primary-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.menu-primary-actions>*{width:100%;margin:0!important;min-height:46px}

/* Espace professionnel : interface de travail, sans image décorative. */
.professional-workspace-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;margin:8px 0 16px;padding:20px 22px;border:1px solid rgba(31,133,112,.18);border-radius:22px;background:linear-gradient(145deg,rgba(247,255,252,.91),rgba(228,246,240,.78));box-shadow:0 12px 30px rgba(15,82,70,.07)}
.professional-workspace-head h1{margin:.08em 0 .2em;color:#11584e}.professional-workspace-head p{margin:.2em 0;color:#56716b;max-width:760px}
.professional-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.professional-summary .card{padding:17px}.professional-summary span{display:block;color:#637a75;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.professional-summary strong{display:block;margin:5px 0;font-size:30px;color:#145e53}.professional-summary small{color:#677e79}
.professional-test-path{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:14px}.professional-test-path h2{margin:.1em 0}.professional-test-path p{margin:.25em 0;color:#55706a}
.professional-invite-dialog{width:min(650px,calc(100vw - 24px))!important}.professional-invite-dialog form{margin-top:16px}
.client-cards{display:grid;gap:10px}.client-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(180px,.8fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(30,127,108,.16);border-radius:17px;background:rgba(255,255,255,.58)}.client-card h3{margin:0;color:#154f47}.client-card small{color:#657c77}.client-card .actions{justify-content:flex-end}.pro-client-status-invited{background:rgba(255,249,232,.64);border-color:rgba(184,132,36,.22)}
.professional-review-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.professional-review-actions form{display:flex;gap:7px;align-items:center;margin:0}.admin-create-presets{margin:0 0 12px}
.professional-consent-notice{border-color:rgba(25,128,108,.25)!important;background:linear-gradient(145deg,rgba(235,251,245,.95),rgba(255,255,255,.88))!important}

@media(max-width:900px){
 .menu-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .recipe-meal-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .recipe-hub-toolbar{display:grid}.recipe-hub-toolbar button{width:100%}
 .professional-workspace-head,.professional-test-path{grid-template-columns:1fr}.professional-workspace-head .button,.professional-test-path .button{width:100%}
 .professional-summary{grid-template-columns:1fr 1fr}.client-card{grid-template-columns:1fr}.client-card .actions{justify-content:flex-start}
 dialog.nss-desktop-window{resize:none!important;min-width:0;min-height:0}
}
@media(max-width:560px){.menu-primary-actions,.professional-summary{grid-template-columns:1fr!important}.recipe-meal-tabs{grid-template-columns:1fr 1fr}.professional-workspace-head{padding:16px}.professional-summary .card{padding:14px}}

/* V.22 — Administration : interrupteurs des modules de l'application */
.admin-feature-flags{margin-top:18px}
.admin-feature-flag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.admin-feature-flag{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(20,118,100,.15);border-radius:16px;background:rgba(250,255,253,.78)}
.admin-feature-flag>div{display:flex;min-width:0;flex-direction:column;gap:5px}
.admin-feature-flag strong{color:#075e54;font-size:1rem}
.admin-feature-flag small{color:#607873;line-height:1.4}
.admin-feature-flag .status-chip{align-self:flex-start;margin-top:3px}
.admin-feature-flag.is-disabled{border-color:rgba(176,84,55,.25);background:rgba(255,248,244,.82)}
.admin-feature-flag form{flex:0 0 auto;margin:0}
@media(max-width:760px){.admin-feature-flag-grid{grid-template-columns:1fr}.admin-feature-flag{align-items:flex-end}.admin-feature-flag form button{min-width:110px}}

/* V26 — dossier client professionnel dans la même famille visuelle PRO */
.page-professional-client{background:linear-gradient(155deg,#eef7f5 0%,#e5f1ee 44%,#f7fbfa 100%)!important}
.page-professional-client main{width:min(1450px,97vw)}
.page-professional-client .card,.page-professional-client .case-tabs{border:1px solid rgba(10,97,89,.13)!important;background:rgba(255,255,255,.72)!important;box-shadow:0 12px 34px rgba(8,69,63,.07)!important}

/* NSS V.2026.10.06.26 — rattachement professionnel QR / lien */
.finder-access-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.finder-qr-dialog{width:min(620px,calc(100vw - 24px))!important}.finder-qr-camera{overflow:hidden;border-radius:18px;background:#0b1715;margin:12px 0;aspect-ratio:4/3}.finder-qr-camera video{display:block;width:100%;height:100%;object-fit:cover}.finder-qr-dialog label{display:grid;gap:7px;margin-top:12px}.finder-qr-dialog .actions{margin-top:12px}@media(max-width:620px){.finder-access-tools{display:grid;grid-template-columns:1fr}.finder-access-tools>*{width:100%}.finder-qr-dialog{width:calc(100vw - 14px)!important;max-height:94dvh!important}.finder-qr-camera{aspect-ratio:3/4;max-height:54dvh}.finder-qr-dialog .actions{display:grid;grid-template-columns:1fr}.finder-qr-dialog .actions>*{width:100%}}
