:root{--noir:#0d0d0d;--gris-clair:#e9eaec;--bleu-canard:#0f7c80;--blanc:#fff;--bleu-canard-texte:#0d7074;--gris-texte:#4a4d52;--gris-bord:#b9bcc2;--rouge-erreur:#a4161a;--vert-succes:#1e6b34;color:var(--noir);background:var(--gris-clair);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{overflow-wrap:anywhere;min-width:360px;margin:0}img{max-width:100%}h1{margin:0 0 12px;font-size:1.625rem;line-height:1.25}h2{margin:0 0 12px;font-size:1.25rem}h3{margin:16px 0 4px;font-size:1rem}p{margin:0 0 12px}a{color:var(--bleu-canard-texte);text-underline-offset:3px;text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--noir);outline-offset:2px}.app-header{background:var(--noir);color:var(--gris-clair);padding:8px 16px}.app-header a:focus-visible{outline-color:var(--gris-clair)}.app-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;max-width:960px;margin:0 auto;display:flex}.brand{min-height:44px;color:var(--gris-clair);letter-spacing:.04em;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:inline-flex}.main-nav{flex-wrap:wrap;gap:4px;max-width:960px;margin:4px auto 0;display:flex}.main-nav a{min-height:44px;color:var(--gris-clair);border-bottom:3px solid #0000;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.main-nav a[aria-current=page]{border-bottom-color:var(--gris-clair);font-weight:700}.mode-switch{border:2px solid var(--gris-clair);border-radius:8px;display:inline-flex;overflow:hidden}.mode-switch a{min-height:44px;color:var(--gris-clair);align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.mode-switch a[aria-current=true]{background:var(--gris-clair);color:var(--noir);font-weight:700}.mode-banner{background:var(--bleu-canard);color:var(--blanc);text-align:center;margin:0;padding:8px 16px}.shell{max-width:960px;margin:0 auto;padding:16px}.card{background:var(--blanc);border-radius:12px;margin:0 0 16px;padding:16px}.narrow{max-width:480px;margin-left:auto;margin-right:auto}.hero-mark{border-radius:20px;margin:0 auto 12px;display:block}.actions{flex-wrap:wrap;gap:12px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.stepper input{text-align:center;flex:1;min-width:0}.stepper button{min-width:44px;font-size:1.25rem}.state-line{font-weight:700}.value{margin-bottom:4px}.back-link{align-items:center;min-height:44px;display:inline-flex}.loading{padding:16px}button,.button{border:2px solid var(--bleu-canard);background:var(--bleu-canard);min-height:44px;color:var(--blanc);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.6;cursor:progress}.button-secondary,button.button-secondary{background:var(--blanc);color:var(--noir);border-color:var(--noir)}form{gap:4px;display:grid}form>button{justify-self:start;margin-top:8px}.field{gap:4px;min-width:0;margin-bottom:12px;display:grid}.field label{font-weight:600}.field textarea{resize:vertical}.field input,.field select,.field textarea{width:100%;min-height:44px;font:inherit;color:var(--noir);background:var(--blanc);border:2px solid var(--gris-bord);border-radius:8px;padding:8px 12px;font-size:1rem}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--rouge-erreur);border-width:3px}.field-hint{color:var(--gris-texte);margin:0}.field-error{color:var(--rouge-erreur);margin:0;font-weight:600}.date-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px;display:grid}.filters{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px;display:grid}.notice{border-left:6px solid;border-radius:8px;margin:8px 0;padding:12px}.notice p{margin:0 0 8px}.notice p:last-child{margin:0}.notice-error{border-color:var(--rouge-erreur);color:var(--rouge-erreur);background:#fbeaea}.notice-error button{margin-top:4px}.notice-success{border-color:var(--vert-succes);color:var(--vert-succes);background:#e7f3ea}.client-list{margin:0;padding:0;list-style:none}.client-list li{gap:4px;display:grid}.client-name{align-items:center;min-height:44px;font-size:1.125rem;font-weight:700;display:inline-flex}.client-email{color:var(--gris-texte)}.badge{border:2px solid var(--noir);background:var(--blanc);color:var(--noir);border-radius:999px;justify-self:start;padding:2px 10px;font-weight:600;display:inline-block}.badge-Active{background:var(--bleu-canard);border-color:var(--bleu-canard);color:var(--blanc)}.badge-Suspended,.badge-Refused,.badge-Deleted{border-style:dashed}.periods{margin:0;padding-left:20px}.periods li{margin-bottom:4px}.facts{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0 0 12px;display:grid}.facts dt{font-weight:600}.facts dd{min-width:0;margin:0}@media (width<=480px){.facts{grid-template-columns:1fr}.facts dd{margin-bottom:8px}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.unread-badge{background:var(--gris-clair);min-width:24px;color:var(--noir);border-radius:999px;justify-content:center;align-items:center;margin-left:6px;padding:0 6px;font-weight:700;display:inline-flex}.badge-unread{border-color:var(--bleu-canard);color:var(--bleu-canard)}.messages{gap:12px;margin:0;padding:0;list-style:none;display:grid}.message{border:2px solid var(--gris-bord);border-radius:8px;max-width:100%;padding:12px}.message-client{border-color:var(--bleu-canard)}.message-event{background:var(--gris-clair);border-style:dashed}.message-meta{color:var(--gris-texte);margin:0 0 4px}.message-kind{color:var(--noir)}.message-body{white-space:pre-wrap;margin:0}.composer{gap:4px;display:grid}.send-status{min-height:24px;font-weight:600}.choices{border:0;min-width:0;margin:0 0 12px;padding:0}.choices legend{margin-bottom:4px;padding:0;font-weight:600}.choice{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.choice input{width:22px;height:22px;accent-color:var(--bleu-canard);flex:none;margin:0}.choice input:disabled+span{color:var(--gris-texte)}.choice input:focus-visible{outline:3px solid var(--noir);outline-offset:2px}.list-row{border-bottom:1px solid var(--gris-bord);padding:8px 0}.badge-program-Assigned{background:var(--bleu-canard);border-color:var(--bleu-canard);color:var(--blanc)}.badge-program-Replaced,.badge-program-Archived{border-style:dashed}.session-preview{border-top:1px solid var(--gris-bord);margin-top:12px;padding:12px 0 0}.session-preview ul{margin:0;padding-left:20px}details summary{cursor:pointer;align-items:center;min-height:44px;display:flex}details summary:before{content:"▸";margin-right:8px}details[open] summary:before{content:"▾"}details summary::-webkit-details-marker{display:none}details summary:focus-visible{outline:3px solid var(--noir);outline-offset:2px}.inner-card{border:2px solid var(--gris-bord);border-radius:8px;margin:0 0 12px;padding:12px}.plain-list{margin:0 0 12px;padding:0;list-style:none}.plain-list li{margin-bottom:4px}.badge-session-done{background:var(--bleu-canard);border-color:var(--bleu-canard);color:var(--blanc)}.badge-session-inProgress{border-style:dashed}.badge-exercise-Published{background:var(--bleu-canard);border-color:var(--bleu-canard);color:var(--blanc)}.badge-exercise-Draft,.badge-exercise-Archived{border-style:dashed}.exercise-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.exercise-grid li{margin:0}.exercise-image-file{aspect-ratio:16/9;object-fit:cover;background:var(--gris-clair);border-radius:8px;width:100%;max-width:480px;margin:0 0 12px;display:block}.exercise-image-small{width:100%;max-width:none}.workout-head h1{margin-bottom:4px}.sync-status{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.sync-offline,.sync-error{color:var(--rouge-erreur)}.inline-button{min-height:44px}.exercise-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exercise-item{text-align:left;background:var(--blanc);width:100%;color:var(--noir);border-color:var(--gris-bord);justify-content:flex-start}.exercise-item[aria-current=step]{border-color:var(--bleu-canard);border-width:3px;font-weight:700}.exercise-done span,.exercise-skipped span{text-decoration:underline}.exercise-preview{border-top:1px solid var(--gris-bord);margin-top:12px;padding-top:12px}.exercise-preview .exercise-image,.exercise-preview .exercise-image-file{max-width:320px}.exercise-image{aspect-ratio:16/9;border:2px dashed var(--gris-bord);background:var(--gris-clair);max-width:480px;color:var(--gris-texte);border-radius:8px;justify-content:center;align-items:center;margin:0 0 12px;display:flex}.set-row{border:2px solid var(--gris-bord);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0 12px;min-width:0;margin:0 0 12px;padding:8px 12px;display:grid}.set-row legend{padding:0 4px;font-weight:700}.field select{width:100%;min-height:44px;font:inherit;border:2px solid var(--gris-bord);background:var(--blanc);border-radius:8px;padding:8px 12px}.timer{border:2px solid var(--noir);border-radius:8px;margin:12px 0;padding:12px}.timer-status{font-weight:700}.timer-phase{margin-bottom:0;font-size:1.25rem;font-weight:700}.timer-remaining{font-variant-numeric:tabular-nums;margin:0;font-size:2.5rem;font-weight:700}.timer-final{border-width:6px}.timer-countdown{background:var(--noir);color:var(--blanc);border-radius:6px;padding:4px 8px;font-size:1.25rem;font-weight:700;display:inline-block}.timer-controls button{min-width:44px}.sound-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.sound-row .field{min-width:160px;margin-bottom:0}.declaration,.block-rating{margin-top:12px}.xp-gain{font-size:2rem;font-weight:700}.level-bar{border:1px solid var(--noir);border-radius:6px;height:12px;margin:8px 0 4px;overflow:hidden}.level-bar>span{background:var(--bleu-canard);height:100%;display:block}.trial-card{border-top:1px solid var(--noir);margin-top:12px;padding-top:12px}.public-footer{max-width:960px;margin:0 auto;padding:8px 16px 24px}.public-footer nav{flex-wrap:wrap;gap:4px 20px;display:flex}.public-footer a{align-items:center;min-height:44px;display:inline-flex}.legal-list>div{margin-bottom:12px}.legal-list dt{font-weight:700}.legal-list dd{margin:0}.to-complete{border:2px solid var(--rouge-erreur);color:var(--rouge-erreur);border-radius:6px;padding:2px 8px;display:inline-block}
