:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-none:0;--radius-sm:2px;--radius-md:3px;--radius-lg:4px;--radius-full:9999px;--border-width:1px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--surface);color:var(--text-primary);font-family:var(--font-body);line-height:var(--leading-body,1.6);overscroll-behavior-y:none}::selection{background:var(--selection)}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.screen-fill{max-width:40rem;height:100dvh;padding:env(safe-area-inset-top) var(--space-4) 0;flex-direction:column;margin:0 auto;display:flex}.screen-fill>.scroll-area{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.font-heading{font-family:var(--font-heading)}.font-body{font-family:var(--font-body)}.font-mono{font-family:var(--font-mono)}.label-mono{font-family:var(--font-mono);font-size:var(--text-micro);text-transform:uppercase;letter-spacing:var(--tracking-label,.08em);color:var(--text-tertiary)}.meta{font-family:var(--font-mono);font-size:var(--text-meta);color:var(--text-tertiary)}.meta-sep{color:var(--border);margin:0 var(--space-2)}.no-decoration{box-shadow:none;background-image:none}:root{--font-heading:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--text-display:2.25rem;--text-h1:1.75rem;--text-h2:1.375rem;--text-h3:1.125rem;--text-h4:1rem;--text-body:1rem;--text-small:.9375rem;--text-meta:.8125rem;--text-micro:.6875rem;--leading-display:1.15;--leading-heading:1.25;--leading-body:1.6;--tracking-label:.08em;--measure-body:65ch;--surface:#f6f4ef;--surface-elevated:#fbfaf7;--surface-recessed:#f0ede4;--text-primary:#26241f;--text-secondary:#5c5647;--text-tertiary:#6d6757;--border:#e7e2d6;--border-subtle:#efece3;--selection:#dfe9e2;--accent:#3d6b52;--accent-contrast:#fff;--accent-soft:#eef3ef;--accent-line:#b8ccbf;--warn:#b5722a;--warn-soft:#faf3e6;--warn-line:#e3c9a3;--danger:#a33227;--danger-soft:#f9ecea;--code-bg:#f0ede4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--surface:#12140f;--surface-elevated:#1b1e17;--surface-recessed:#0d0f0b;--text-primary:#eceadf;--text-secondary:#b8b3a3;--text-tertiary:#9a9585;--border:#ffffff17;--border-subtle:#ffffff0d;--selection:#8fb98a40;--accent:#8fb98a;--accent-contrast:#12140f;--accent-soft:#8fb98a24;--accent-line:#8fb98a66;--warn:#d99a55;--warn-soft:#d99a5521;--warn-line:#d99a5559;--danger:#e0827a;--danger-soft:#e0827a21;--code-bg:#0d0f0b}}:root[data-theme=dark]{--surface:#12140f;--surface-elevated:#1b1e17;--surface-recessed:#0d0f0b;--text-primary:#eceadf;--text-secondary:#b8b3a3;--text-tertiary:#9a9585;--border:#ffffff17;--border-subtle:#ffffff0d;--selection:#8fb98a40;--accent:#8fb98a;--accent-contrast:#12140f;--accent-soft:#8fb98a24;--accent-line:#8fb98a66;--warn:#d99a55;--warn-soft:#d99a5521;--warn-line:#d99a5559;--danger:#e0827a;--danger-soft:#e0827a21;--code-bg:#0d0f0b}h1{font-size:var(--text-h1);line-height:var(--leading-heading);text-wrap:balance}h2{font-size:var(--text-h2);line-height:var(--leading-heading);text-wrap:balance}h3{font-size:var(--text-h3);line-height:var(--leading-heading)}p{max-width:var(--measure-body)}code{font-family:var(--font-mono);background:var(--code-bg);border-radius:var(--radius-sm);overflow-wrap:anywhere;padding:.1em .35em;font-size:.875em}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}hr{border:0;border-top:var(--border-width) solid var(--border-subtle);margin:var(--space-2) 0}.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-md);padding:var(--space-3)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.field{gap:var(--space-2);flex-direction:column;max-width:30rem;display:flex}label{font-size:var(--text-meta);color:var(--text-secondary)}input[type=url],input[type=text]{padding:var(--space-3);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);background:var(--surface-elevated);color:var(--text-primary)}button{padding:var(--space-3) var(--space-5);border:var(--border-width) solid var(--accent);border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-contrast);cursor:pointer}.topbar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-meta);color:var(--text-tertiary);display:flex}:root{--fg:var(--text-primary);--bg:var(--surface);--muted:var(--text-tertiary)}body{background:var(--bg);color:var(--fg);overscroll-behavior-y:none;margin:0}.screen{max-width:640px;padding:calc(2rem + env(safe-area-inset-top)) 1rem calc(2rem + env(safe-area-inset-bottom));margin:0 auto}.session{max-width:640px;height:100dvh;padding:env(safe-area-inset-top) 1rem 0;box-sizing:border-box;flex-direction:column;margin:0 auto;display:flex}.session-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.session h1{margin:.5rem 0;font-size:1.4rem}.lead{color:var(--text-secondary);max-width:var(--measure-body)}.cadence{border-top:1px solid var(--border-subtle);font-size:var(--text-meta);color:var(--text-tertiary);margin-top:.75rem;padding-top:.75rem}.cadence .label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:var(--text-micro);margin-right:.4rem}.meta{color:var(--muted);font-size:.9rem}.error{color:var(--danger)}form#login-form{flex-direction:column;gap:.5rem;max-width:480px;display:flex}input[type=url],input[type=text]{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:4px;padding:.5rem}.form-actions{gap:.5rem;display:flex}.tech-details{font-size:var(--text-meta);margin-top:.5rem}.tech-details summary{cursor:pointer;color:var(--text-tertiary)}.tech-details p.meta{margin-top:.4rem}button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);cursor:pointer;border-radius:4px;padding:.5rem 1rem}button:disabled{opacity:.5;cursor:default}button.ghost{color:var(--fg);border-color:var(--border);background:0 0}.topbar{color:var(--muted);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.85rem;display:flex}.topbar .webid{text-overflow:ellipsis;white-space:nowrap;text-align:right;direction:rtl;unicode-bidi:plaintext;overflow:hidden}.pick-lang{border-top:1px solid var(--border-subtle);margin-top:1.5rem;padding-top:1rem}.carnet-list{flex-direction:column;gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:flex}.carnet-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:.25rem .75rem}.carnet-card.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.carnet-row{align-items:center;gap:.5rem;display:flex}.carnet-open{text-align:left;color:var(--text-primary);background:0 0;border:none;flex:1;padding:.6rem 0;font-size:1rem;display:block}.carnet-open:disabled{opacity:1;cursor:default}.carnet-title{font-weight:500}.carnet-badge{font-size:var(--text-micro);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--accent);border:1px solid var(--accent-line);border-radius:var(--radius-full);flex:none;padding:.15rem .55rem}.icon-btn{color:var(--text-tertiary);background:0 0;border:1px solid #0000;flex:none;padding:.3rem .5rem}.icon-btn:hover{border-color:var(--border)}.carnet-meta{font-size:var(--text-micro);color:var(--text-tertiary);padding:0 0 .5rem}.carnet-rename-form{flex:1;align-items:center;gap:.4rem;padding:.4rem 0;display:flex}.carnet-rename-form input{flex:1;min-width:0}.carnet-rename-form button{flex:none;padding:.4rem .6rem;font-size:.85rem}.topbar button{flex:none;padding:.3rem .6rem;font-size:.8rem}ol.blocs{margin:1rem 0;padding-left:0;list-style:none}li.bloc{border-left:3px solid #0000;padding:.5rem .75rem;transition:font-size .25s,opacity .25s,background .25s}.bloc-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.bloc-titre{flex:1}.bloc-objectif{font-family:var(--font-mono);color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:.9em}.bloc-note{font-size:var(--text-meta);color:var(--text-tertiary);margin-top:.15rem}li.bloc.is-current{border-radius:var(--radius-lg);background:var(--surface-elevated);border-left-color:#0000;padding:.9rem .75rem;font-size:1.35rem;font-weight:600;position:relative}li.bloc.is-current:before{content:"";border-radius:var(--radius-full);background:linear-gradient(to bottom, var(--accent-line) var(--bloc-fill,0%), var(--accent) var(--bloc-fill,0%));width:3px;position:absolute;top:0;bottom:0;left:-3px}li.bloc.is-current .bloc-note{color:var(--text-secondary);font-size:.9rem}li.bloc.is-last-done{opacity:.55}li.bloc.is-last-done .bloc-titre{text-decoration:line-through}li.bloc.is-last-done .bloc-titre:before{content:"✓ ";color:var(--accent);text-decoration:none}li.bloc.is-last-done .bloc-note{display:none}li.bloc.is-past{opacity:.4}.timer{padding:1rem .75rem calc(1rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface-elevated);text-align:center;flex:none;margin:0 -.75rem}.timer-progress{background:var(--border-subtle);border-radius:var(--radius-full);height:3px;margin-bottom:.75rem;overflow:hidden}#timer-progress-fill{background:var(--accent);width:0;height:100%;transition:width .3s}#timer-count{font-variant-numeric:tabular-nums}.timer.is-awaiting #timer-remaining{opacity:.5}.timer-display{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}#timer-label{color:var(--muted);font-size:1rem}#timer-remaining{font-variant-numeric:tabular-nums;font-size:3rem;line-height:1.1}.timer-controls{justify-content:center;gap:.5rem;display:flex}.timer-controls.secondary{margin-top:.5rem;font-size:.85rem}.timer-controls.secondary button{padding:.4rem .7rem;font-size:.85rem}.timer-capture{margin:.75rem 0}.capture-scale{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.capture-scale button{min-width:2.75rem;min-height:2.75rem}.capture-number,.capture-text{justify-content:center;align-items:center;gap:.5rem;display:flex}.capture-text{flex-direction:column;align-items:stretch}.capture-number input,.capture-text textarea{flex:1}.recap-value{font-weight:600}.timer-toggles{justify-content:center;gap:.4rem;margin-top:.5rem;display:flex}button.chip{color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:999px;padding:.25rem .6rem;font-size:.75rem}button.chip[aria-pressed=true]{color:var(--fg);border-color:var(--fg);opacity:1}button.chip[aria-pressed=false]{opacity:.55;text-decoration:line-through}.tabs{flex:none;gap:.25rem;padding-bottom:.5rem;display:flex}button.tab{color:var(--muted);border:1px solid var(--border);background:0 0;flex:1}button.tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.streak{padding:.75rem 0;font-size:1.05rem}.streak strong{color:var(--accent);font-size:1.6rem}.cal-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cal-head button{flex:none;padding:.25rem .7rem}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.cal-grid .dow{color:var(--muted);padding-bottom:.25rem;font-size:.75rem}.day{aspect-ratio:1;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:flex}.day.is-empty{visibility:hidden}button.day.is-done{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);cursor:pointer}.day sup{opacity:.85;margin-left:.1rem;font-size:.6rem}button.day.is-selected{outline:2px solid var(--fg);outline-offset:1px}.detail{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.detail h3{margin:0 0 .25rem;font-size:1.05rem}ul.detail-blocs{margin:.75rem 0;padding:0;list-style:none}ul.detail-blocs li{align-items:center;gap:.5rem;padding:.35rem 0;display:flex}ul.detail-blocs li span:nth-child(2){flex:1}ul.detail-blocs li.is-skipped{color:var(--muted);text-decoration:line-through}.ressenti{border-left:3px solid var(--border);color:var(--muted);padding:.6rem .75rem;font-style:italic}.banner{border:1px solid var(--accent);border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;margin:.5rem 0;padding:.6rem .75rem;font-size:.9rem;display:flex}.banner button{flex:none;padding:.35rem .7rem;font-size:.85rem}#recap-form{flex-direction:column;gap:.5rem;display:flex}.recap-blocs{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.25rem;display:flex}.recap-bloc{cursor:pointer;align-items:center;gap:.5rem;padding:.6rem .25rem;display:flex}.recap-bloc span:first-of-type{flex:1}.recap-bloc input{flex:none;width:1.15rem;height:1.15rem}#recap-form textarea,#recap-form input[type=number],.timer-capture textarea,.timer-capture input[type=number]{border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit;border-radius:4px;padding:.5rem}@media (width<=540px){.timer-controls button{flex:1;padding:.9rem .5rem;font-size:1rem}#timer-toggle{flex:2}li.bloc.is-past,li.bloc.is-far{display:none}}
