/* LE RESET — direction artistique : papier, trame, noir, rouge. */
@font-face{font-family:ResetBody;src:url('fonts/body.woff') format('woff');font-display:swap}
@font-face{font-family:ResetDisplay;src:url('fonts/display.woff') format('woff');font-display:swap}
:root{--bg:#0E0E10;--paper:#ECECEE;--red:#E04444;--muted:#b7b7bd;--panel:#19191c;--line:#414146;--edge:polygon(0 0,25% .35%,48% 0,73% .25%,100% 0,99.8% 38%,100% 70%,99.65% 100%,68% 99.7%,37% 100%,0 99.8%,.25% 63%,0 28%);color-scheme:dark;background:var(--bg);color:var(--paper);font-family:ResetBody,Arial,sans-serif;font-size:18px;line-height:1.65}
*{box-sizing:border-box}body{margin:0;min-width:280px}body:before{content:'';position:fixed;inset:0;background:url('images/texture_grain.webp') repeat;background-size:480px;opacity:.24;pointer-events:none;z-index:0}#reset-app{position:relative;isolation:isolate}a{color:inherit;text-underline-offset:4px;overflow-wrap:anywhere}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 20px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--bg);font-weight:700;text-decoration:none;cursor:pointer;line-height:1.4;text-align:center;transition:transform .15s,background-color .15s,border-color .15s}button:active,.button:active{transform:translateY(2px)}button:disabled{opacity:.45;cursor:default}.primary{background:var(--red);color:var(--bg);border-color:var(--red)}.secondary{background:var(--panel);color:var(--paper)}:focus-visible{outline:3px solid var(--paper);outline-offset:4px}#main:focus,#reader-title:focus,#onb-title:focus{outline:none}[hidden]{display:none!important}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:fixed;top:-100px;left:16px;z-index:80;padding:12px;background:var(--paper);color:var(--bg)}.skip:focus{top:12px}
h1,h2,h3,.display{font-family:ResetDisplay,Impact,'Arial Narrow',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.045em;line-height:1.02;text-wrap:balance}h1{font-size:clamp(3.4rem,11vw,5.7rem);margin:12px 0 28px;overflow-wrap:normal}h2{font-size:clamp(2.2rem,7vw,3.3rem);margin:10px 0 24px}h3{font-size:1.7rem;margin:16px 0}p{margin:0 0 22px}p:last-child{margin-bottom:0}.red{color:var(--red)}.muted{color:var(--muted)}.eyebrow{font-size:16px;line-height:1.4;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.module-layout>.eyebrow{display:inline-block;background:var(--paper);color:var(--bg);padding:5px 10px;transform:rotate(-1deg);margin:0 0 4px}.module-layout>.eyebrow:empty{display:none}
.topbar{min-height:76px;padding:12px max(20px,calc((100vw - 1080px)/2));padding-top:max(12px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#0e0e10e8}.wordmark{font-family:ResetDisplay;font-size:32px;font-weight:900;letter-spacing:-1.4px;line-height:1;text-decoration:none;display:flex;align-items:center;min-height:48px}.help-btn{padding:0;width:48px;height:48px;min-height:48px;flex:0 0 48px;border-radius:50%;background:transparent;color:var(--paper);font-size:23px;margin-left:auto}.edition,.save-state{display:none}#storage-warning{padding:16px 20px;border-bottom:3px solid var(--red);background:var(--paper);color:var(--bg);font-size:17px}.offline-status{display:none!important}#main{max-width:1140px;padding:0 28px calc(118px + env(safe-area-inset-bottom));margin:auto;position:relative}#main>section{animation:enter .28s ease-out}.module-layout{max-width:840px;margin:auto;padding-top:8px}.back{display:inline-flex;align-items:center;gap:10px;min-height:48px;text-decoration:none;font-size:17px;color:var(--muted);margin:12px 0 20px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;background:#0e0e10f5;border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(16px)}.bottom-nav a{position:relative;min-width:0;min-height:76px;flex:1;max-width:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);font-size:16px;line-height:1.4;gap:3px}.bottom-nav a span{font-size:25px;line-height:1.05}.bottom-nav a[aria-current]{color:var(--paper)}.bottom-nav a[aria-current]:before{content:'';position:absolute;top:-1px;left:22%;right:22%;height:3px;background:var(--red)}.bottom-nav a[aria-current] span{color:var(--red)}.bottom-nav a:active{background:var(--panel)}.floating-sos{display:none!important}
/* Une carte du jour dense, entourée de grandes affiches. */
.home{max-width:780px;margin:auto;padding-top:24px}.today-card{position:relative;background:var(--panel);border:1px solid var(--line);padding:20px 20px 16px;clip-path:var(--edge)}.today-card:before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;background:var(--paper);clip-path:polygon(0 0,100% 0,100% 55%,83% 75%,68% 40%,45% 100%,21% 60%,0 100%)}.today-head{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}.today-card .eyebrow{font-size:15px;letter-spacing:.13em;margin:4px 0 5px;color:var(--muted)}.today-card h2{font-size:clamp(1.8rem,6.9vw,2.8rem);margin:0 0 14px;white-space:nowrap;text-wrap:nowrap;letter-spacing:-.04em}.today-count{font-family:ResetDisplay;font-size:30px;line-height:1.1;padding-bottom:14px;color:var(--muted)}.today-card .progress{margin:0 0 14px}.progress{display:block;width:100%;height:5px;appearance:none;border:0;background:var(--line);margin:10px 0 24px;accent-color:var(--red)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--red)}progress::-moz-progress-bar{background:var(--red)}.progress-head{display:flex;justify-content:space-between;gap:12px;font-size:17px;line-height:1.45}.day-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.day-steps li{margin:0;min-width:0}.day-step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:78px;padding:12px 10px;background:var(--bg);border:1px solid var(--line);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.day-step.next{border-color:var(--red);box-shadow:inset 3px 0 var(--red)}.day-step.done{color:var(--muted);background:#141416}.step-n{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--muted);font-family:ResetDisplay;font-size:18px;line-height:1;border-radius:50%}.day-step.next .step-n{background:var(--red);color:var(--bg);border-color:var(--red)}.day-step.done .step-n{background:var(--line);border-color:var(--line);color:var(--paper)}.step-body{min-width:0}.step-body strong{display:block;font-size:18px;line-height:1.35}.step-body small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;line-height:1.4;color:var(--muted);margin-top:3px}.step-state{font-size:15px;line-height:1.4;white-space:nowrap;color:var(--muted)}.day-step.next .step-state{color:var(--paper)}.today-done{padding:10px 0 0;font-size:17px;margin:0;color:var(--paper)}.sos-quiet{display:flex;align-items:center;gap:8px;min-height:48px;padding-top:12px;margin-top:10px;border-top:1px solid var(--line);font-size:16px;line-height:1.5;color:var(--muted);text-decoration:none}.sos-quiet u{color:var(--paper);text-decoration-color:var(--muted)}.sos-quiet .dot{width:5px;height:5px;flex:0 0 5px;background:var(--muted);border-radius:50%}.today-card>.link-row{margin:18px 0}.today-card>h2{white-space:normal;font-size:3rem}.idea-link{position:relative;display:block;padding:20px 24px;border:1px solid var(--line);text-decoration:none;margin:16px 0 0;background:var(--panel);border-left:4px solid var(--paper)}.idea-link strong{display:block;font-family:ResetDisplay;font-size:32px;text-transform:uppercase;line-height:1.08;letter-spacing:-.025em;margin-bottom:6px}.idea-link span{display:block;font-size:17px;color:var(--muted);line-height:1.5}.home-hero{position:relative;margin:32px 0 0}.home-hero-img{display:block;width:100%;height:auto;max-width:none}.home-hero:after{content:'';position:absolute;bottom:1%;right:2%;width:88px;height:88px;background:url('images/stickers_sheet.webp');background-size:300% 400%;background-position:50% 0;mix-blend-mode:screen;pointer-events:none;transform:rotate(-12deg)}.divider{display:block;width:100%;height:65px;object-fit:cover;mix-blend-mode:screen;opacity:.85;margin:16px 0}.intro-block{margin:24px 0;padding:28px 24px;border:1px solid var(--line);background:var(--panel);border-top:4px solid var(--paper)}.intro-block h3{margin-top:0}.intro-block p:last-child{font-size:17px;color:var(--muted)}
/* Les modules restent des affiches, sans légende répétée. */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.situation{position:relative;display:block;overflow:hidden;background:var(--bg);border:1px solid var(--line);text-decoration:none;clip-path:var(--edge);transition:transform .2s,border-color .2s}.situation img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.situation .mod-done{position:absolute;top:12px;right:12px;padding:6px 10px;background:var(--paper);color:var(--bg);font-weight:700;font-size:16px;line-height:1.4;transform:rotate(2deg)}.module-banner{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;clip-path:var(--edge);border:1px solid var(--line);margin-bottom:28px}.essential{position:relative;background:var(--panel);padding:24px;border-left:4px solid var(--red);margin:24px 0}.essential .eyebrow{color:var(--muted);margin-bottom:12px}.essential p{margin:6px 0;line-height:1.55}.reader-card{position:relative;padding:32px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--paper);margin:20px 0;min-width:0}.reader-card h2,.reader-card h1{font-size:clamp(2.2rem,8vw,3.3rem);margin:10px 0 24px}.reader-card ul,.reader-card ol{padding-left:25px}.reader-card li{margin:0 0 18px;padding-left:3px}.step-kicker{font-size:16px;letter-spacing:.07em;line-height:1.4;color:var(--muted);margin-bottom:24px}.reader-controls{display:flex;justify-content:space-between;gap:12px;margin:20px 0}.reader-controls>*{flex:1;min-width:0}.reader-controls button{padding:13px 10px;font-size:17px}.module-index{margin-top:24px}.index-row{display:block;text-align:left;width:100%;margin:8px 0}.done-image{display:block;width:100%;height:auto;margin:24px 0;clip-path:var(--edge)}.link-row{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.link-row>.button,.link-row>button{max-width:100%}.callout{background:var(--bg);padding:22px;border-left:3px solid var(--paper);margin:24px 0}.callout p:last-child{margin:0}details{border-bottom:1px solid var(--line);margin:12px 0}summary{cursor:pointer;font-weight:700;line-height:1.5;min-height:52px;padding:16px 0}summary::marker{color:var(--red)}details[open]{padding-bottom:16px}details>p{margin-top:16px}
/* Tous les champs ont la même surface et un retour lisible. */
.field{display:block;margin:24px 0;font-size:18px;line-height:1.55;min-width:0}.field input:not([type=range]),.field textarea,.field select{display:block;width:100%;min-width:0;min-height:52px;padding:12px;margin-top:10px;border:1px solid #77777e;border-radius:2px;background:var(--bg);color:var(--paper)}.field textarea{min-height:150px;resize:vertical}.field input[type=range]{display:block;width:100%;min-height:48px;accent-color:var(--red);margin:8px 0 0}.field output{float:right;font-family:ResetDisplay;font-size:25px;line-height:1.2;margin-left:12px}.range-ends{display:flex;justify-content:space-between;gap:16px;font-size:16px;color:var(--muted);line-height:1.45}.check{display:flex;align-items:flex-start;gap:14px;min-height:52px;padding:14px 0;line-height:1.55;cursor:pointer}.check input,.pick-opt input{width:24px;height:24px;flex:0 0 24px;margin:3px 0 0;accent-color:var(--red)}.field-error{display:block;border-left:3px solid var(--red);padding:8px 12px;font-size:16px;margin-top:10px}.budget-error{font-size:17px}.pick{border:0;padding:0;margin:24px 0}.pick legend{padding:0;margin-bottom:16px;font-weight:700;font-size:17px;line-height:1.4;text-transform:uppercase;letter-spacing:.04em}.pick-opt{display:flex;gap:14px;align-items:flex-start;padding:18px 16px;margin-bottom:12px;background:var(--bg);border:1px solid var(--line);min-height:56px;line-height:1.6;cursor:pointer}.pick-opt:has(input:checked){border-color:var(--red);box-shadow:inset 3px 0 var(--red)}.budget-fields,.custody-grid,.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.budget-summary{display:grid;gap:14px;background:var(--paper);color:var(--bg);padding:24px;margin-top:24px;clip-path:var(--edge)}.budget-summary span{display:flex;justify-content:space-between;gap:20px}.score-grid .reader-card{padding:24px}.score-grid h2{color:var(--red)}.score-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;padding:18px 0;border-bottom:1px solid var(--line)}.score-line>span:last-child{grid-column:1/-1;font-size:16px;color:var(--muted)}.message-card{padding:8px 0 24px}.message-card blockquote{margin:20px 0;padding:22px;background:var(--bg);border-left:3px solid var(--red)}.story-body{position:relative;padding:24px 0 0;border-top:1px solid var(--line);margin:12px 0 28px}.story-body:before{content:'';position:absolute;top:-2px;left:0;width:64px;height:3px;background:var(--red)}.story-body p,.plan-invite{font-size:18px;line-height:1.7;max-width:62ch}.story-body p:first-letter{float:left;font-family:ResetDisplay;font-size:68px;line-height:.9;padding:8px 8px 0 0;color:var(--paper)}
/* Progression : les emblèmes restent immédiatement au-dessus du calendrier. */
.emblems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:-12px 0 18px}.emblem{min-width:0;text-align:center}.emblem img{display:block;width:min(100%,155px);margin:auto;mix-blend-mode:screen}.emblem p{font-size:16px;line-height:1.4;margin:2px 0}.emblem.locked img{opacity:.5;filter:grayscale(1)}.emblem.unlocked img{opacity:1}.day-picker{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:8px;margin:20px 0}.day-picker button{position:relative;min-width:48px;min-height:52px;padding:8px;font-family:ResetDisplay;font-size:22px;font-weight:900}.day-picker button[aria-pressed=true]{background:var(--paper);border-color:var(--paper);color:var(--bg)}.day-check{position:absolute;top:2px;right:4px;color:var(--red);font-size:15px;line-height:1}.daily-card{padding:20px}.daily-card .eyebrow{margin-bottom:16px;color:var(--muted)}.daily-card .day-steps{margin:0}
/* Minuteurs, respiration et cartes à garder sous la main. */
.timer-panel{background:var(--panel);border:1px solid var(--line);padding:28px 24px;text-align:center;margin:24px 0;border-top:4px solid var(--red)}.timer-art{display:block;width:280px;height:280px;max-width:100%;object-fit:contain;margin:0 auto;mix-blend-mode:screen}.timer-value{font-family:ResetDisplay;font-size:clamp(96px,26vw,170px);letter-spacing:-.05em;line-height:1.05;font-variant-numeric:tabular-nums;margin:10px 0 12px}.timer-status{font-size:17px;color:var(--muted);min-height:28px;margin:0 0 20px}.timer-panel .actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.ranges{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left;margin-top:14px}.sos-steps{border-top:1px solid var(--line);padding:24px 0;margin:30px 0}.sos-steps ol{padding-left:25px}.sos-steps li{margin-bottom:18px}.help-line{font-size:16px;line-height:1.6;margin-top:24px}.breath-panel{border:1px solid var(--line);padding:24px;background:var(--panel);text-align:center}.breath-visual{position:relative;max-width:420px;aspect-ratio:1;margin:0 auto 24px}.breath-art{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:screen}.breath-circle{position:absolute;inset:35%;border:2px solid var(--red);border-radius:50%;background:var(--red);opacity:.9;transform:scale(.65)}.breath-panel .link-row{justify-content:center}.breath-panel h2{font-size:2.4rem}.compact-card{position:relative;background:var(--paper);color:var(--bg);padding:28px;max-width:520px;margin:28px auto;clip-path:var(--edge)}.compact-card:before{content:'';display:block;width:80px;height:5px;background:var(--red);margin-bottom:20px}.compact-card .anti-row{border-color:#b7b7bd}.anti-row{padding:18px 0;border-bottom:1px solid var(--line);line-height:1.6}.anti-row strong{display:block}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tool-card-image{aspect-ratio:1!important;mix-blend-mode:screen}.card-foot{padding:20px;display:flex;align-items:center;gap:16px;line-height:1.5}.card-foot small{display:block;font-size:16px;color:var(--muted)}.card-foot .arrow{margin-left:auto;font-size:28px}
.tool-list{margin:24px 0}.tool-link{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:20px 4px;border:0;border-bottom:1px solid var(--line);text-decoration:none;line-height:1.5;background:transparent;color:var(--paper)}.tool-link>span:last-child{font-size:25px;color:var(--red);flex:0 0 auto}.tool-btn{width:100%;text-align:left;font-weight:400;font-size:18px;border-radius:0}.backup{position:relative;padding:28px 24px;margin:32px 0 20px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--paper);clip-path:var(--edge)}.backup h2{font-size:2.5rem;margin-top:0}.backup .link-row{margin:20px 0 0}.fineprint{font-size:16px;color:var(--muted);margin-top:16px}.idea-levels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}.idea-levels button{text-align:left;align-items:flex-start;flex-direction:column;min-height:100px;padding:18px 16px;font-weight:400}.idea-levels strong{font-family:ResetDisplay;font-size:27px;line-height:1.1;text-transform:uppercase;letter-spacing:-.02em}.idea-levels small{color:var(--muted);font-size:16px;margin-top:8px}.idea-card{position:relative;padding:28px 24px;background:var(--paper);color:var(--bg);clip-path:var(--edge)}.idea-card .eyebrow{margin-bottom:18px}.idea-card .secondary{background:var(--bg);color:var(--paper)}.idea-text{font-size:22px;line-height:1.6;margin-bottom:24px}#idea-box{min-height:120px;margin-bottom:28px}.move-list{padding-left:25px}.move-list li{margin-bottom:22px}.resource{background:var(--panel);padding:28px 24px;margin:24px 0;border-left:4px solid var(--paper)}.resource:first-of-type{border-left-color:var(--red)}.resource a{display:flex;align-items:center;min-height:52px;font-family:ResetDisplay;font-size:clamp(30px,8vw,48px);font-weight:900;line-height:1.15;text-decoration:none;margin:12px 0}.source-block{padding:24px;margin:20px 0;border:1px solid var(--line);background:var(--panel);overflow-wrap:anywhere}.print-only{display:none}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}
/* Le guide occupe l'écran ; les commandes restent au pied de l'écran. */
#onboarding{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:max(12px,env(safe-area-inset-top)) 20px max(12px,env(safe-area-inset-bottom))}#onboarding:before{content:'';position:fixed;inset:0;background:url('images/texture_grain.webp') repeat;background-size:480px;opacity:.2;pointer-events:none;z-index:-1}.onb-inner{width:100%;max-width:560px;margin:auto;flex:1;display:flex;flex-direction:column}.onb-top{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px}.onb-dots{display:flex;gap:6px;flex:1}.onb-dots i{width:22px;height:4px;background:var(--line)}.onb-dots i.on{background:var(--red)}.onb-skip{background:transparent;color:var(--muted);border:0;padding:0 4px;font-size:17px;min-height:48px;font-weight:400;text-decoration:underline}.onb-body{flex:1;padding:12px 0 20px}.onb-img{display:block;width:100%;max-height:42vh;object-fit:contain;margin:0 auto 24px;mix-blend-mode:screen}.onb-img.hero{mix-blend-mode:normal;padding:0;max-height:55vh}.onb-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.onb-grid img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;border:1px solid var(--line)}.onb-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.onb-grid.three img{aspect-ratio:1;mix-blend-mode:screen;border:0}.onb-body h2{font-size:clamp(2.8rem,10vw,4rem);margin:12px 0 24px}.onb-body p{line-height:1.65}.onb-note{font-size:17px;color:var(--muted);padding:14px 0;border-top:1px solid var(--line)}.onb-nav{display:flex;gap:10px;position:sticky;bottom:0;background:var(--bg);padding:12px 0 4px;border-top:1px solid var(--line);z-index:1}.onb-nav button{flex:1;min-width:0;font-size:17px;padding:13px 8px}.onb-nav .onb-next{flex:2}.onb-list{display:grid;gap:16px;margin:22px 0}.onb-list div{padding:16px;background:var(--panel);border-left:3px solid var(--paper);font-size:17px;line-height:1.6}.onb-list strong{display:block;margin-bottom:5px}.onb-start{border:0;padding:0;margin:24px 0}.onb-body:not(:has(img)) h2{font-size:clamp(2.3rem,8.7vw,3.2rem)}.onb-body:not(:has(img)) p{font-size:17px;line-height:1.55;margin-bottom:16px}.onb-body:not(:has(img)) .onb-note{margin-top:16px}
#toast{position:fixed;bottom:calc(94px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:70;background:var(--paper);color:var(--bg);padding:14px 18px;font-size:17px;line-height:1.5;width:max-content;max-width:calc(100% - 32px);box-shadow:0 10px 32px #0008;opacity:0;pointer-events:none;transition:opacity .18s}#toast.show{opacity:1}dialog{max-width:520px;width:calc(100% - 32px);padding:28px;background:var(--panel);color:var(--paper);border:1px solid var(--line)}dialog::backdrop{background:#000c}
@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(hover:hover){button:not(:disabled):hover,.button:hover{filter:brightness(.92)}.situation:hover{transform:translateY(-4px);border-color:var(--paper)}.idea-link:hover,.tool-link:hover{background:#202024}.day-step:hover{border-color:var(--paper)}}
@media(min-width:960px){.home-hero{max-width:640px;margin:40px auto 0}.cards{gap:28px}.module-layout:has(.cards){max-width:1080px}.module-layout:has(.cards)>h1{max-width:720px}.module-layout:has(.cards)>p{max-width:650px}.module-layout:has(.emblems){max-width:740px}.today-card{padding:24px}.day-step{min-height:90px;padding:14px 18px;gap:16px}.step-body small{font-size:17px}.step-state{font-size:17px}.today-card h2{font-size:3rem}.today-count{font-size:38px}.home .idea-link strong{font-size:38px}}
@media(max-width:680px){.topbar{min-height:68px;padding-right:20px;padding-left:20px}.wordmark{font-size:30px}#main{padding-right:20px;padding-left:20px}.home{padding-top:20px}.cards,.tool-grid,.score-grid,.budget-fields,.custody-grid{grid-template-columns:1fr}.cards{gap:24px;margin-top:24px}.module-layout{padding-top:0}.module-banner{width:calc(100% + 40px);max-width:none;margin-left:-20px;border-left:0;border-right:0}.reader-card{padding:26px 20px}.essential{padding:22px 20px}.reader-controls{gap:8px}.ranges{grid-template-columns:1fr;gap:0}.timer-panel{padding:24px 18px}.timer-value{margin-top:0}.timer-panel .actions button{padding:12px 14px;font-size:17px}.timer-panel .actions .primary{flex-basis:100%}.compact-card{padding:24px 20px}.idea-card{padding:24px 20px}.backup{padding:24px 20px}.backup .link-row>*{width:100%}.emblems{margin-top:-12px}.emblem img{width:100%;max-width:110px}.emblem p{font-size:15px}.day-picker{grid-template-columns:repeat(5,minmax(48px,1fr));gap:8px}.daily-card{padding:18px 12px}.daily-card .day-step{gap:8px;padding:12px 8px}.intro-block{padding:24px 20px}.source-block{padding:20px}.field output{float:none;display:block;margin:6px 0 0}.field{margin:24px 0}.home-hero{margin-top:28px}.home-hero:after{width:70px;height:70px}.bottom-nav a{font-size:15px}.resource{padding:24px 20px}.resource a{font-size:clamp(28px,7.5vw,40px)}.budget-summary span{flex-wrap:wrap;gap:6px}.breath-panel{padding:24px 18px}}
@media(max-width:360px){#main{padding-left:16px;padding-right:16px}.today-card{padding:16px 12px}.day-step{gap:7px;padding:10px 8px;grid-template-columns:26px minmax(0,1fr) auto}.step-n{width:25px;height:25px}.step-body strong{font-size:17px}.step-state{font-size:14px}.step-body small{font-size:15px}.today-count{font-size:25px}.daily-card .day-step{grid-template-columns:24px minmax(0,1fr) auto}.module-banner{margin-left:-16px;width:calc(100% + 32px)}.reader-controls button{font-size:16px}.onb-nav button{font-size:16px}.onb-dots{gap:4px}.onb-dots i{width:18px}.idea-levels{gap:8px}.idea-levels button{padding:14px 12px}}
@media(max-height:900px){[data-active-timer=timer] .timer-art{display:none}}
@media(max-height:760px){.module-layout:has([data-active-timer=timer])>.back{margin:8px 0}.module-layout:has([data-active-timer=timer])>h1{font-size:48px;margin:8px 0 14px}.module-layout:has([data-active-timer=timer])>p:first-of-type{font-size:17px;line-height:1.5;margin-bottom:16px}.timer-panel[data-active-timer=timer]{margin:18px 0;padding:18px}.timer-panel[data-active-timer=timer] .timer-value{font-size:80px;margin:0 0 8px}.timer-panel[data-active-timer=timer] .timer-status{font-size:16px;min-height:24px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{@page{size:A4;margin:15mm}body{background:white;color:black;font:12pt Arial;line-height:1.5}body:before,.topbar,.bottom-nav,.floating-sos,.back,.module-index,.reader-controls,#toast,button,.button,.divider,.module-banner,.home-hero,.emblems,.day-picker,.timer-art,.tool-card-image,#onboarding,.skip,.help-btn,.offline-status{display:none!important}#main{max-width:none;padding:0}.red,.muted{color:black}.reader-card,.essential,.callout,.compact-card,.daily-card,.resource,.budget-summary,.source-block{background:white;color:black;border:1px solid #aaa;break-inside:avoid;clip-path:none}.reader-card{min-height:0}.field input,.field textarea,.field select{background:white!important;color:black!important;border:1px solid #888!important}.print-only{display:block}.print-sheet{break-before:auto}.print-sheet+.print-sheet{break-before:page}.table-wrap{overflow:visible}table{width:100%;table-layout:fixed;font-size:10pt}th,td{padding:7pt;border-bottom:1px solid #aaa;white-space:pre-wrap}tr{break-inside:avoid}thead{display:table-header-group}h1{font-size:22pt}h2{font-size:17pt}h3{font-size:14pt}.eyebrow{font-size:10pt}.print-sheet th:first-child{width:30pt}.field-error,.budget-error{display:none!important}}

/* Bandeau : trame et papier déchiré, derrière le logo et l’aide. */
.topbar{position:relative;isolation:isolate;overflow:hidden;background:#0E0E10}
.topbar:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url('images/divider_halftone.webp'),url('images/texture_grain.webp');background-repeat:no-repeat,repeat;background-position:center 52%,center;background-size:cover,360px;mix-blend-mode:screen;opacity:.22}
.topbar:after{content:'';position:absolute;left:0;right:0;bottom:-18px;height:40px;z-index:-1;pointer-events:none;background:url('images/divider_torn.webp') center 50%/100% auto no-repeat;mix-blend-mode:screen;opacity:.65}
.wordmark,.help-btn{position:relative;background:#0E0E10}.wordmark{padding-right:8px}.help-btn{background:#0E0E10}

/* v20 : accueil utile, accès direct aux parties et formulaires regroupés. */
.home-note{margin:24px 0 0;color:var(--muted);font-size:17px;line-height:1.5}
.chapter-shortcuts{margin:16px 0 24px}.chapter-shortcuts>div{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.chapter-shortcuts button{min-height:48px;font-size:16px;padding:10px 12px;text-align:left}.chapter-shortcuts button[aria-current]{background:var(--paper);color:var(--bg)}
.group-item{padding:8px 0 18px;border-bottom:1px solid var(--line);margin-bottom:16px}.group-item:last-child{border-bottom:0;margin-bottom:0}.reader-card details .field{margin:20px 0}.start-settings{margin:24px 0}.start-settings input{max-width:340px}#date-feedback{margin-top:16px;font-size:17px}#message-list>h2{margin-top:36px;font-size:2rem}
@media print{.chapter-shortcuts,.home-note{display:none!important}}

/* v21 : une carte d’action, avec une illustration compacte. */
.idea-feature{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:18px;margin:24px 0 0;padding:24px 20px;background:var(--panel);border:1px solid var(--red);border-left:5px solid var(--red);text-decoration:none;overflow:hidden;isolation:isolate}
.idea-feature:before{content:'';position:absolute;inset:0;background:url('images/texture_grain.webp') center/360px;mix-blend-mode:screen;opacity:.15;z-index:-1;pointer-events:none}
.idea-art{display:block;width:100%;max-width:100px;transform:rotate(-5deg)}.idea-art svg{display:block;width:100%;height:auto}
.idea-feature-copy{display:flex;flex-direction:column;gap:12px;min-width:0}.home .idea-feature strong{font-family:ResetDisplay;font-size:clamp(30px,8vw,40px);line-height:.98;text-transform:uppercase;letter-spacing:-.02em}.idea-feature-copy>span{font-size:16px;line-height:1.5;color:var(--paper)}.idea-feature-copy .idea-feature-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line);font-weight:700}.idea-feature-cta>span{font-size:26px;color:var(--red)}
.idea-feature:active{transform:translateY(2px)}.idea-feature:focus-visible{outline:3px solid var(--paper);outline-offset:4px}
.onb-idea-art{width:110px;margin:12px auto 24px}.onb-idea-art .idea-art{max-width:none}
@media(max-width:360px){.idea-feature{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:20px 14px}}
@media print{.idea-feature{display:none!important}}

.idea-feature strong .red{font-size:inherit;line-height:inherit;color:var(--red)}

/* v22 : retour et repère sur deux lignes ; notification dans son propre espace. */
.module-layout>.back{display:flex;width:max-content;max-width:100%;margin:12px 0 12px}.module-layout>.eyebrow{display:table;max-width:100%;margin:0 0 12px}
html,body{height:100%;overflow:hidden}#reset-app{height:100vh;height:100dvh;display:flex;flex-direction:column}#app-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}#main{padding-bottom:40px}.bottom-nav{position:relative;flex-shrink:0;bottom:auto;left:auto;right:auto}
#toast{position:relative;bottom:auto;left:auto;transform:none;display:none;flex-shrink:0;z-index:21;width:100%;max-width:none;max-height:25dvh;overflow-y:auto;margin:0;padding:14px 20px;background:var(--paper);color:var(--bg);opacity:1;box-shadow:none;pointer-events:auto;border-top:1px solid var(--line);font-size:16px;line-height:1.45}#toast.show{display:block}
/* Défilement horizontal natif ; chaque slide garde son propre défilement vertical. */
#onboarding{padding:0;overflow:hidden;overscroll-behavior:auto}.onb-inner{width:100%;max-width:none;min-height:0;height:100%;margin:0;flex:1;display:flex;flex-direction:column}.onb-top{flex-shrink:0;justify-content:flex-end;padding:max(12px,env(safe-area-inset-top)) 20px 0}.onb-track{display:flex;flex:1;min-height:0;width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:auto}.onb-track::-webkit-scrollbar{display:none}.onb-slide{flex:0 0 100%;width:100%;min-width:0;height:100%;overflow-y:auto;scroll-snap-align:start;scroll-snap-stop:always;overscroll-behavior-y:contain;touch-action:auto}.onb-body{width:100%;max-width:600px;margin:0 auto;padding:12px 20px 28px;overflow-wrap:anywhere}.onb-track.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}.onb-dots{display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:0;padding:4px 12px max(8px,env(safe-area-inset-bottom));background:var(--bg)}.onb-dots button{flex:0 1 44px;width:44px;min-width:0;height:44px;min-height:44px;padding:0;border:0;background:transparent}.onb-dots button span{display:block;width:8px;height:8px;border-radius:50%;background:var(--line)}.onb-dots button[aria-current=step] span{background:var(--red);width:20px;border-radius:8px}.onb-start-btn{width:100%;margin:20px 0 0}.swipe-hint{font-size:16px;color:var(--muted);margin-top:24px}.swipe-hint span{margin-left:8px}.onb-body .onb-img.hero{max-height:55vh;width:100%;object-fit:contain}.onb-body h2:focus{outline:none}
@media print{html,body{height:auto;overflow:visible}#reset-app{height:auto;display:block}#app-content{overflow:visible}#toast{display:none!important}}

.onb-top .onb-skip{display:inline-flex;align-items:center;min-height:48px}

/* v23 : huit affiches fixes, défilement horizontal uniquement. */
.onb-track,.onb-slide{touch-action:pan-x pinch-zoom}.onb-slide{overflow:hidden;overscroll-behavior:none}.onb-body{height:100%;max-width:600px;position:relative;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:12px 24px 20px}.onb-visual{flex:0 1 24%;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.onb-visual:empty{display:none}.onb-visual>.onb-img{height:100%;width:auto;max-width:100%;max-height:100%;margin:0;object-fit:contain}.onb-visual>.onb-grid{height:100%;max-height:100%;width:100%;margin:0;align-items:center}.onb-visual .onb-grid img{max-height:100%;object-fit:contain}.onb-visual .onb-idea-art{height:100%;width:auto;max-width:100px;margin:0}.onb-visual .idea-art,.onb-visual svg{height:100%;width:auto}
.onb-copy{position:relative;flex:0 1 auto;min-height:0}.onb-copy .eyebrow{font-size:14px;margin:0 0 8px}.onb-body .onb-copy h2,.onb-body:not(:has(img)) .onb-copy h2{font-size:clamp(30px,8vw,44px);line-height:1.02;margin:0 0 16px}.onb-body .onb-copy p,.onb-body:not(:has(img)) .onb-copy p{font-size:17px;line-height:1.4;margin:0 0 12px}.onb-copy p:last-child{margin-bottom:0}.onb-copy .onb-note{padding:10px 0 0;margin-top:10px;font-size:16px}.onb-copy .swipe-hint{font-size:16px;margin-top:18px}.onb-copy .onb-list{gap:10px;margin:16px 0}.onb-copy .onb-list div{padding:12px;font-size:16px;line-height:1.4}.onb-copy .onb-list strong{margin-bottom:4px}
.onb-poster .onb-body{max-width:600px;justify-content:flex-end;padding:24px}.onb-poster .onb-visual{position:absolute;inset:0;display:block;max-height:none;overflow:hidden}.onb-poster .onb-visual .onb-img.hero{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center top;opacity:.85}.onb-poster .onb-copy{padding:20px;background:#0E0E10f2;border-left:3px solid var(--paper);clip-path:var(--edge)}
@media(max-height:740px){.onb-body{gap:12px;padding:8px 20px 12px}.onb-visual{flex-basis:17%}.onb-body .onb-copy h2,.onb-body:not(:has(img)) .onb-copy h2{font-size:30px;margin-bottom:12px}.onb-body .onb-copy p,.onb-body:not(:has(img)) .onb-copy p{font-size:16px;line-height:1.3;margin-bottom:10px}.onb-copy .onb-list{margin:12px 0}.onb-copy .onb-list div{padding:8px;line-height:1.3}.onb-poster .onb-body{padding:16px}.onb-poster .onb-copy{padding:16px}}

@media(max-height:650px){.onb-visual{flex-basis:12%}.onb-body .onb-copy h2,.onb-body:not(:has(img)) .onb-copy h2{font-size:27px;margin-bottom:10px}.onb-body .onb-copy p,.onb-body:not(:has(img)) .onb-copy p{line-height:1.25;margin-bottom:8px}.onb-copy .onb-note{padding-top:6px;margin-top:6px}.onb-copy .onb-list{gap:6px;margin:8px 0}}
@media(orientation:landscape) and (max-height:600px){.onb-body{max-width:1000px;flex-direction:row;align-items:center;gap:24px}.onb-visual{flex:0 0 24%;height:80%}.onb-copy{flex:1}.onb-copy p{break-inside:avoid}.onb-slide:not(.onb-poster) .onb-copy{column-count:2;column-gap:24px}.onb-copy h2,.onb-copy .eyebrow{column-span:all}.onb-poster .onb-copy{max-width:65%;margin-left:auto}.onb-poster .onb-visual{height:100%}}

/* v24 : Plus organisé en cartes carrées par catégorie. */
.more-category{margin:30px 0}.more-category h2{font-size:clamp(25px,6vw,32px);margin-bottom:16px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.more-tile{aspect-ratio:1;min-width:0;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:8px;padding:16px;background:var(--panel);color:var(--paper);border:1px solid var(--line);text-decoration:none;text-align:left;line-height:1.35;font-weight:400}.more-tile-icon{font-size:28px;line-height:1;color:var(--red)}.more-tile strong{font-family:ResetDisplay;font-size:clamp(22px,5.6vw,30px);line-height:1.02;text-transform:uppercase;letter-spacing:-.02em}.more-tile>span:last-child{font-size:16px;line-height:1.35;color:var(--muted)}.more-tile:active{border-color:var(--red);transform:translateY(2px)}.backup .more-grid{margin-top:20px}.backup{padding:24px 16px}.more-category:last-of-type .more-tile{border-top:3px solid var(--red)}#feedback-status{margin:16px 0;font-size:17px}.more-tile:hover{border-color:var(--paper)}
@media(max-width:360px){.more-grid{gap:8px}.more-tile{padding:12px;min-height:160px}.more-tile strong{font-size:22px}}
@media print{.more-grid{display:none!important}}

.more-grid .more-tile{min-height:0;aspect-ratio:1;padding:16px;gap:12px}.more-tile>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.more-tile strong{font-size:clamp(20px,5.5vw,30px)}
@media(max-width:360px){.more-grid .more-tile{padding:12px;gap:8px}.more-tile-icon{font-size:25px}}

/* v25 : geste tactile géré explicitement, sans déplacement vertical. */
.onb-track,.onb-slide,.onb-body{touch-action:pinch-zoom}.onb-visual,.onb-visual img{pointer-events:none;user-select:none;-webkit-user-drag:none}.onb-track{cursor:grab}.onb-track.dragging{cursor:grabbing}
/* v26 : Plus compact, cartes rectangulaires et espaces resserrés. */
.module-layout:has(.more-category)>h1{font-size:clamp(36px,9vw,52px);margin:12px 0 20px}
.more-category{margin:18px 0}.more-category h2{font-size:24px;margin:0 0 10px}.more-grid{gap:8px}
.more-grid .more-tile{aspect-ratio:auto;min-height:80px;padding:12px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;justify-content:start;gap:10px}.more-tile-icon{font-size:24px}.more-tile strong{font-size:clamp(20px,5vw,26px);line-height:1.05}
.module-layout:has(.more-category) .start-settings{margin:16px 0}.module-layout:has(.more-category) .start-settings summary{padding-top:12px;padding-bottom:12px;min-height:48px}
.module-layout:has(.more-category) .backup{margin:18px 0 12px;padding:16px}.module-layout:has(.more-category) .backup h2{font-size:26px;margin:0 0 10px}.module-layout:has(.more-category) .backup>p{font-size:16px;line-height:1.4;margin-bottom:12px}.backup .more-grid{margin-top:12px}.module-layout:has(.more-category) .fineprint{margin-top:12px}
@media(max-width:360px){.more-grid .more-tile{padding:10px;grid-template-columns:20px minmax(0,1fr);gap:8px;min-height:76px}.more-tile-icon{font-size:22px}.more-tile strong{font-size:20px}}
