/* ============ Espace coach / admin ============ */
body.coach-body { background: var(--bg); }
.layout { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--bg-2); border-right: 1px solid var(--border-soft); padding: 18px 12px; display: flex; flex-direction: column; gap: 4px; }
.sidebar .logo { padding: 6px 10px 18px; }
.snav { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: var(--r-sm); color: var(--text-2); font-size: 14px; font-weight: 500; text-decoration: none !important; transition: background .15s, color .15s; }
.snav svg { width: 19px; height: 19px; flex: none; }
.snav:hover { background: var(--surface); color: var(--text); }
.snav.active { background: var(--surface); color: var(--text); font-weight: 600; }
.snav .cnt { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--red); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.snav .cnt.soft { background: var(--surface-3); color: var(--text); }
.sgroup { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text-3); padding: 16px 12px 6px; }
.side-foot { margin-top: auto; padding-top: 16px; display: flex; flex-direction: column; gap: 4px; }
.coach-card { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: var(--r-sm); background: var(--surface); }

.main { min-width: 0; display: flex; flex-direction: column; }
.ctop { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 12px; padding: 12px 28px; background: var(--nav-bg); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--border-soft); min-height: 60px; }
.ctop .search { position: relative; width: min(360px, 40vw); }
.ctop .search .input { min-height: 38px; padding-left: 36px; border-radius: var(--r-pill); background: var(--surface); border-color: transparent; font-size: 14px; }
.ctop .search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--text-3); }
.search-results { position: absolute; top: 44px; left: 0; right: 0; background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-sm); padding: 6px; z-index: 50; max-height: 360px; overflow-y: auto; }
[data-theme="dark"] .search-results { background: var(--surface); }
.search-results a { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 8px; color: var(--text); text-decoration: none; font-size: 14px; }
.search-results a:hover { background: var(--surface-2); }
.page { padding: 28px; max-width: 1360px; width: 100%; animation: rise .3s var(--ease); }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.page-head h1 { font-size: 34px; letter-spacing: -0.02em; line-height: 1.1; }
.page-head p { color: var(--text-2); margin-top: 4px; }
.burger { display: none; }

@media (max-width: 960px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; top: 0; bottom: 0; width: 272px; z-index: 300; transform: translateX(-100%); transition: transform .3s var(--ease); }
  .sidebar.open { transform: none; }
  .scrim { position: fixed; inset: 0; z-index: 250; background: var(--overlay); }
  .burger { display: inline-grid; }
  .ctop { padding: 10px 16px; }
  .page { padding: 20px 16px; }
  .page-head h1 { font-size: 28px; }
  .ctop .search { width: auto; flex: 1; }
}

/* KPI */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .kpis { gap: 10px; } .kpi { padding: 16px !important; } .kpi .v { font-size: 26px !important; } }
.kpi { background: var(--surface); border-radius: 22px; padding: 20px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kpi .k { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-2); font-weight: 500; }
.kpi .k svg { width: 16px; height: 16px; }
.kpi .v { font-family: var(--font-display); font-size: 32px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1.1; }
.kpi .d { font-size: 13px; font-weight: 600; }

.dash { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; }
@media (max-width: 1100px) { .dash { grid-template-columns: minmax(0, 1fr); } }
.c2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 760px) { .c2 { grid-template-columns: minmax(0, 1fr); } }

.todo { display: flex; align-items: center; gap: 12px; padding: 10px 0; text-decoration: none !important; color: var(--text); }
.todo + .todo { border-top: 1px solid var(--border-soft); }
.todo .ti { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.todo .ti svg { width: 17px; height: 17px; }
.todo:hover .go { color: var(--link); }

.feed-item { display: flex; gap: 12px; padding: 10px 0; font-size: 14px; }
.feed-item + .feed-item { border-top: 1px solid var(--border-soft); }

/* Client header */
.c-head { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.c-head .meta { flex: 1; min-width: 240px; }
.c-head h1 { font-size: 30px; letter-spacing: -0.02em; }
.c-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
@media (max-width: 1000px) { .c-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .c-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.c-stat { background: var(--surface); border-radius: 18px; padding: 14px 16px; min-width: 0; }
.c-stat .k { font-size: 12px; color: var(--text-2); font-weight: 500; }
.c-stat .v { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; margin-top: 2px; }
.pending-banner { margin-top: 20px; border-radius: 22px; padding: 18px 20px; background: var(--tint-violet); display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }

/* Program editor */
.pday { background: var(--surface); border-radius: 22px; padding: 18px; }
.pday + .pday { margin-top: 14px; }
.pday-head { display: grid; grid-template-columns: minmax(0, 1.2fr) 150px minmax(0, 1.6fr) auto; gap: 10px; align-items: center; }
@media (max-width: 760px) { .pday-head { grid-template-columns: 1fr 1fr; } .pday-head .act { grid-column: 1 / -1; justify-content: flex-end; } }
.pday-head .input.title { font-weight: 700; font-size: 17px; }
.ex-table { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 14px; }
.ex-table th { font-size: 11px; font-weight: 600; color: var(--text-3); text-transform: uppercase; letter-spacing: .04em; text-align: left; padding: 6px 6px; white-space: nowrap; }
.ex-table td { padding: 5px 4px; vertical-align: middle; border-top: 1px solid var(--border-soft); }
.ex-table .input { min-height: 34px; padding: 5px 8px; font-size: 14px; border-radius: 8px; }
.ex-table .w-xs { width: 58px; } .ex-table .w-sm { width: 76px; } .ex-table .w-md { width: 86px; }
.ex-table .ename { font-weight: 600; cursor: pointer; }
.ex-table .ename:hover { color: var(--link); }
.ex-wrap { overflow-x: auto; margin: 0 -6px; padding: 0 6px; }
.ex-table tr.is-new td { background: var(--tint-blue); }
.mini-btns { display: flex; gap: 2px; justify-content: flex-end; }
.mini-btns .icon-btn { width: 30px; height: 30px; }
.mini-btns .icon-btn svg { width: 16px; height: 16px; }

/* Picker */
.picker-list { max-height: 50vh; overflow-y: auto; margin-top: 12px; border-top: 1px solid var(--border-soft); }
.pick { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-bottom: 1px solid var(--border-soft); cursor: pointer; }
.pick:hover { background: var(--surface-2); }
.pick input { width: 18px; height: 18px; accent-color: var(--blue); }

/* Meals editor */
.mcard { background: var(--surface); border-radius: 22px; padding: 18px; }
.mcard + .mcard { margin-top: 14px; }
.mtargets { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 760px) { .mtargets { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.macro-diff { font-size: 12px; font-weight: 600; }

/* Logs */
.log { background: var(--surface); border-radius: 22px; padding: 18px; }
.log + .log { margin-top: 12px; }
.log.unrev { box-shadow: inset 3px 0 0 var(--teal); }
.log details summary { list-style: none; cursor: pointer; }
.log details summary::-webkit-details-marker { display: none; }
.lex { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; border-top: 1px solid var(--border-soft); font-size: 14px; }

/* Chat (coach) */
.inbox { display: grid; grid-template-columns: 320px minmax(0, 1fr); height: calc(100vh - 60px - 56px - 72px); min-height: 480px; background: var(--surface); border-radius: 22px; overflow: hidden; }
.inbox.embed { height: 560px; }
.inbox-list { border-right: 1px solid var(--border-soft); overflow-y: auto; }
.thread { display: flex; gap: 10px; padding: 12px 14px; align-items: center; text-decoration: none !important; color: var(--text); border-bottom: 1px solid var(--border-soft); }
.thread:hover { background: var(--surface-2); }
.thread.active { background: var(--surface-2); }
.thread .prev { font-size: 13px; color: var(--text-2); }
.thread .un { width: 9px; height: 9px; border-radius: 50%; background: var(--blue); flex: none; }
.convo { display: flex; flex-direction: column; min-width: 0; background: var(--bg); }
[data-theme="light"] .convo { background: #fff; }
.convo-head { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border-soft); }
.convo-body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.convo-body .day { align-self: center; font-size: 12px; color: var(--text-3); font-weight: 600; margin: 10px 0 4px; }
.bubble { max-width: 72%; padding: 9px 13px; border-radius: 20px; font-size: 15px; line-height: 1.38; word-wrap: break-word; white-space: pre-wrap; }
.bubble.me { align-self: flex-end; background: var(--blue); color: #fff; border-bottom-right-radius: 6px; }
.bubble.them { align-self: flex-start; background: var(--surface); border-bottom-left-radius: 6px; }
.bubble img { border-radius: 14px; margin: -3px -7px 4px; max-width: min(320px, calc(100% + 14px)); }
.bubble .tm { display: block; font-size: 10px; opacity: .65; margin-top: 3px; text-align: right; }
.convo-foot { padding: 10px 12px; border-top: 1px solid var(--border-soft); }
.convo-foot textarea { flex: 1; resize: none; min-height: 40px; max-height: 140px; padding: 9px 14px; border-radius: 20px; border: 1px solid var(--border); background: var(--input-bg); font-size: 15px; }
.convo-foot textarea:focus { outline: none; border-color: var(--link); }
.templates { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin-bottom: 8px; }
.templates::-webkit-scrollbar { display: none; }
.templates button { flex: none; padding: 5px 11px; border-radius: 99px; border: 1px solid var(--border); font-size: 12px; color: var(--text-2); }
.templates button:hover { color: var(--text); border-color: var(--text-3); }
@media (max-width: 860px) {
  .inbox { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .inbox.has-active .inbox-list { display: none; }
  .inbox:not(.has-active) .convo { display: none; }
  .convo { height: calc(100vh - 160px); }
  .inbox.embed .convo { height: 560px; }
}

/* Calendar week */
.wk { display: grid; grid-template-columns: 54px repeat(7, minmax(110px, 1fr)); background: var(--surface); border-radius: 22px; overflow: hidden; }
.wk-wrap { overflow-x: auto; border-radius: 22px; }
.wk .hd { padding: 10px 8px; text-align: center; border-bottom: 1px solid var(--border-soft); font-size: 13px; color: var(--text-2); position: sticky; top: 0; }
.wk .hd b { display: block; font-size: 20px; color: var(--text); }
.wk .hd.today b { color: var(--link); }
.wk .hours { position: relative; }
.wk .hours div { height: 48px; font-size: 11px; color: var(--text-3); text-align: right; padding-right: 8px; transform: translateY(-7px); }
.wk .colday { position: relative; border-left: 1px solid var(--border-soft); }
.wk .colday .slotline { height: 48px; border-top: 1px solid var(--border-soft); cursor: pointer; }
.wk .colday .slotline:hover { background: var(--surface-2); }
.wk .colday.today { background: color-mix(in srgb, var(--blue) 5%, transparent); }
.wev { position: absolute; left: 3px; right: 3px; border-radius: 8px; padding: 4px 7px; font-size: 12px; line-height: 1.25; overflow: hidden; cursor: pointer; border-left: 3px solid; }
.wev b { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wev.session { background: var(--tint-orange); border-color: var(--orange); }
.wev.call { background: var(--tint-violet); border-color: var(--violet); }
.wev.block { background: var(--surface-3); border-color: var(--text-3); }
.wev.pending { border-style: dashed; opacity: .85; }

/* Template cards */
.tcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.tcard { background: var(--surface); border-radius: 22px; padding: 20px; display: flex; flex-direction: column; gap: 8px; text-decoration: none !important; color: var(--text); transition: transform .15s; }
.tcard:hover { transform: translateY(-2px); }

/* Availability */
.avail { display: grid; grid-template-columns: 110px 1fr; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border-soft); }
.hour-chip { padding: 5px 9px; border-radius: 8px; font-size: 12px; font-weight: 600; border: 1px solid var(--border); color: var(--text-3); }
.hour-chip.on { background: var(--blue); border-color: var(--blue); color: #fff; }

.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.ck-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.ck-grid .tile .k { font-size: 12px; color: var(--text-2); }
.ck-grid .tile .v { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
.saved-hint { font-size: 12px; color: var(--text-3); display: inline-flex; align-items: center; gap: 4px; }
.saved-hint svg { width: 14px; height: 14px; color: var(--green); }

/* Bibliothèque d'exercices avec images */
.ex-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.ex-lib { background: var(--surface); border-radius: 22px; padding: 12px; cursor: pointer; transition: transform .15s var(--ease); min-width: 0; }
.ex-lib:hover { transform: translateY(-2px); }
.ex-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ex-slot { border-radius: 14px; overflow: hidden; }
.ex-thumb { flex: none; width: 56px; border-radius: 10px; overflow: hidden; display: block; }
.ex-thumb svg.fig, .ex-thumb img { border-radius: 10px; }
.week-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.pick .ex-thumb { width: 64px; }

/* Parcours nouveau client */
.flow-card { border: 1px solid var(--line, rgba(127,127,127,.18)); }
.flow-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.flow-steps .fs { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; color: var(--text-3); position: relative; }
.flow-steps .fs .c { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--bg-3, rgba(127,127,127,.12)); }
.flow-steps .fs .c svg { width: 17px; height: 17px; }
.flow-steps .fs.ok { color: var(--green); }
.flow-steps .fs.ok .c { background: var(--tint-green); color: var(--green); }
.flow-steps .fs.now { color: var(--text); font-weight: 600; }
.flow-steps .fs.now .c { background: var(--red); color: #fff; }

/* Champ recalculé automatiquement (calories ↔ macros) */
@keyframes autoUpd { 0% { background: var(--tint-blue); box-shadow: 0 0 0 2px var(--blue); } 100% { background: var(--input-bg); box-shadow: 0 0 0 0 transparent; } }
.input.auto-upd { animation: autoUpd 1.4s var(--ease); }

/* ============ Accueil : clients + notifications ============ */
.home-btn { margin-left: 4px; }
.home-btn.is-home { display: none; }
@media (max-width: 560px) { .home-btn span { display: none; } .home-btn { padding: 0 10px; } }
.kmini { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 24px; }
.kmini > * { background: var(--surface); border-radius: 18px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; color: var(--text); text-decoration: none !important; min-width: 0; }
.kmini a:hover { background: var(--surface-2); }
.kmini .k { font-size: 12px; color: var(--text-2); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kmini b { font-family: var(--font-display); font-size: 24px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.kmini b small { font-size: 12px; color: var(--text-2); font-weight: 500; }
@media (max-width: 760px) { .kmini { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kmini b { font-size: 20px; } }
.dash2 { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.dash2 > aside { position: sticky; top: 84px; }
@media (max-width: 1100px) { .dash2 { grid-template-columns: minmax(0, 1fr); } .dash2 > aside { position: static; } }
.dchips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.dchips::-webkit-scrollbar { display: none; }
.dchips .chip { flex: none; }
.cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
@media (max-width: 420px) { .cgrid { grid-template-columns: minmax(0, 1fr); } }
.ccard { background: var(--surface); border-radius: 22px; padding: 6px; display: flex; flex-direction: column; border: 1px solid transparent; transition: border-color .2s var(--ease); }
.ccard.has-todo { border-color: color-mix(in srgb, var(--blue) 45%, transparent); }
.cc-head { display: flex; align-items: center; gap: 12px; padding: 12px 12px 10px; border-radius: 16px; color: var(--text); text-decoration: none !important; }
.cc-head:hover { background: var(--surface-2); }
.cc-name { font-weight: 600; font-size: 16px; letter-spacing: -0.01em; }
.cc-count { font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 99px; background: var(--blue); color: #fff; white-space: nowrap; }
.cc-count.soft { background: var(--tint-blue); color: var(--link); }
.cc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 0 6px; }
.cc-stats > div { background: var(--bg); border-radius: 12px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cc-stats .k { font-size: 10.5px; color: var(--text-3); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-stats b { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-notifs { display: flex; flex-direction: column; margin: 8px 6px 4px; border-top: 1px solid var(--border-soft); padding-top: 6px; }
.cc-n { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 10px; font-size: 13px; color: var(--text-2); text-decoration: none !important; min-width: 0; position: relative; }
.cc-n:hover { background: var(--surface-2); color: var(--text); }
.cc-n.todo-n, .cc-n.unseen { color: var(--text); font-weight: 500; }
.cc-n.unseen::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); flex: none; }
.cc-i { width: 26px; height: 26px; padding: 0 !important; border-radius: 50%; display: grid !important; place-items: center; flex: none; }
.cc-i svg { width: 14px; height: 14px; }
.cc-more { padding: 6px; color: var(--link); }
.cc-empty { padding: 12px 12px 10px; display: flex; align-items: center; gap: 6px; }
@media (min-width: 761px) { .only-mobile { display: none !important; } }

/* ============ Multi-coach ============ */
.cdot { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; display: inline-grid; place-items: center; background: var(--surface-3); color: var(--text); font-size: 11px; font-weight: 700; margin-right: 6px; flex: none; vertical-align: middle; }
.team-k { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.team-k > div { background: var(--bg); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.team-k b { font-family: var(--font-display); font-size: 26px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.team-k span { font-size: 12px; color: var(--text-2); }
.team-rows { display: flex; flex-direction: column; gap: 4px; }
.team-row { display: grid; grid-template-columns: auto minmax(110px, 180px) minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 8px; border-radius: 12px; background: none; border: 0; color: var(--text); text-align: left; cursor: pointer; font: inherit; }
.team-row:hover { background: var(--surface-2); }
.team-row .cdot { width: 34px; height: 34px; font-size: 14px; margin: 0; }
.team-name { display: flex; flex-direction: column; min-width: 0; }
.team-name b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.team-bar { height: 12px; background: var(--bg); border-radius: 6px; overflow: hidden; }
.tb-all { display: block; height: 100%; background: var(--surface-3); border-radius: 6px; overflow: hidden; min-width: 2px; }
.tb-act { display: block; height: 100%; background: var(--green); }
.team-num { font-size: 12.5px; color: var(--text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.team-num b { color: var(--text); }
.team-legend { display: flex; gap: 16px; margin-top: 10px; }
.team-legend .lg { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.lg.act { background: var(--green); } .lg.all { background: var(--surface-3); }
@media (max-width: 700px) { .team-row { grid-template-columns: auto minmax(0, 1fr) auto; } .team-row .team-bar { grid-column: 2 / -1; grid-row: 2; } .team-num { grid-column: 3; grid-row: 1; } .team-k b { font-size: 20px; } }
.coach-pick select { background: none; border: 0; color: inherit; font: inherit; font-weight: 600; padding: 0 2px; cursor: pointer; }
.coach-pick svg { width: 13px; height: 13px; }
.notice-card { display: flex; gap: 12px; align-items: flex-start; background: var(--surface); border-radius: 16px; padding: 14px 16px; }
.notice-card svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--text-2); }
.notice-card p { margin: 0; }
.coach-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.coach-fiche { display: flex; flex-direction: column; gap: 12px; }
.coach-fiche.off { opacity: .6; }
.cf-photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: var(--surface-3); font-size: 24px; font-weight: 700; flex: none; }
.cf-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.cf-stats > div { background: var(--bg); border-radius: 12px; padding: 8px 10px; display: flex; flex-direction: column; }
.cf-stats b { font-size: 18px; font-variant-numeric: tabular-nums; } .cf-stats span { font-size: 11px; color: var(--text-2); }
.cf-bio { margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.coach-photo { width: 72px; height: 72px; border-radius: 50%; background: var(--surface-2); display: grid; place-items: center; overflow: hidden; cursor: pointer; flex: none; border: 1px dashed var(--border); }
.coach-photo img { width: 100%; height: 100%; object-fit: cover; }
.coach-photo svg { width: 22px; height: 22px; color: var(--text-2); }
.req-box { background: var(--tint-blue); border-radius: 16px; padding: 14px; margin-bottom: 14px; }
.req-card { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; }
.req-card + .req-card { border-top: 1px solid var(--border-soft); }
.req-card .cf-photo { width: 52px; height: 52px; font-size: 20px; }
.inl { width: 15px; height: 15px; vertical-align: -2px; }
.access-card .list-item { padding: 10px 0; }

/* Comptes & accès */
.acc-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 16px; }
.acc-tools .input { flex: 1 1 260px; max-width: 420px; }
.acc-list { display: flex; flex-direction: column; gap: 8px; }
.acc-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) auto; gap: 16px; align-items: center; background: var(--surface); border-radius: 18px; padding: 12px 16px; }
.acc-row[hidden] { display: none; }
.acc-who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.acc-cred { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.acc-line { display: flex; align-items: center; gap: 10px; min-width: 0; }
.acc-line > span:first-child { width: 92px; flex: none; }
.acc-line b { word-break: break-all; }
.acc-act { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) { .acc-row { grid-template-columns: minmax(0, 1fr); gap: 10px; } .acc-act { justify-content: flex-start; } .acc-line > span:first-child { width: 86px; } }
/* Mot de passe & sécurité */
.sec-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.sec-link .grow{display:flex;flex-direction:column;gap:2px}
.sec-group{padding:0;margin-bottom:12px;overflow:hidden}
.sec-head{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:0;color:inherit;font:inherit;cursor:pointer}
.sec-head .cdot{width:36px;height:36px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--surface-2,#222);flex:none}
.sec-group.open .sec-head{border-bottom:1px solid var(--line,rgba(255,255,255,.08))}
.sec-body{padding:8px 16px 14px}
.sec-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#999);margin:12px 0 6px}
.sec-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line,rgba(255,255,255,.06))}
.sec-label+.sec-row,.sec-body>.sec-row:first-child{border-top:0}
@media (max-width:700px){.sec-row{grid-template-columns:1fr auto}.sec-row .acc-cred{grid-column:1/-1;grid-row:2}}
/* Accueil simplifié */
.kp3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:26px}
.kp3 a{background:var(--surface-2);border-radius:18px;padding:14px 16px;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:2px}
.kp3 b{font-size:26px;font-weight:700;letter-spacing:-.5px;line-height:1.1}.kp3 span{font-size:13px;color:var(--text-2)}
.sec-t{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3,var(--text-2));font-weight:650;margin-bottom:10px}
.todo-card{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 14px;border-radius:18px;background:color-mix(in srgb,var(--blue) 6%,var(--bg));border:1px solid color-mix(in srgb,var(--blue) 20%,transparent);margin-bottom:8px;flex-wrap:wrap}
.todo-card>.row{flex:1 1 200px;text-decoration:none;color:inherit}
.todo-empty{padding:14px 16px;border-radius:16px;background:var(--surface-2)}
.clist{margin-top:6px}
.crow{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}
.crow:last-child{border-bottom:0}
.crow .grow{display:flex;flex-direction:column;gap:2px}
.crow-n{display:flex;align-items:center;gap:8px;font-size:16px;min-width:0}
.crow-l{font-size:13px;color:var(--text-2)}.crow-l b{color:var(--text);font-weight:650}
.crow-l .sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5;vertical-align:middle;margin:0 6px}
.ndot{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none}
/* Accueil hiérarchique */
.tree-head{margin:4px 0 24px}.tree-head h1{font-size:30px;letter-spacing:-.6px;margin:10px 0 4px}
.role-pill{display:inline-flex;align-items:center;gap:6px;background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:20px}
.role-pill svg{width:14px;height:14px}.role-pill.soft{background:var(--surface-2);color:var(--text)}
.tbox{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);margin-bottom:10px;text-decoration:none;color:inherit;position:relative}
.tbox.dashed{border-style:dashed;background:transparent}
.tb-ph{width:50px;height:50px;border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;background:var(--surface-3,#ddd);font-weight:700;font-size:18px}
.tb-ph.q{background:color-mix(in srgb,orange 15%,transparent);color:#b25b00}.tb-ph.q svg{width:22px;height:22px}
.tbox .grow,.tcoach .grow{display:flex;flex-direction:column;gap:3px}
.tb-n{font-size:17px;font-weight:700}.tb-s{font-size:13px;color:var(--text-2)}.tb-s b{color:var(--text)}
.tb-red{background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
.tree{position:relative;padding-left:22px}
.tree:before{content:"";position:absolute;left:8px;top:0;bottom:34px;width:2px;background:var(--border)}
.tree>.tbox:before{content:"";position:absolute;left:-14px;top:50%;width:12px;height:2px;background:var(--border)}
.tcoach{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:20px;background:var(--surface-2);margin-top:6px}
.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--blue);font-weight:600;font-size:15px;text-decoration:none;margin-bottom:12px}
.back-link svg{width:18px;height:18px}
.crow,.crow:hover,.crow *,.tbox:hover,.tbox *{text-decoration:none!important}
.tcoach .btn{background:var(--bg);border:1px solid var(--border)}
/* En-tête fiche client */
.ch2{display:flex;flex-direction:column;gap:16px;margin-top:4px}
.ch2-top{display:flex;align-items:center;gap:16px}
.ch2-n{font-size:26px;letter-spacing:-.5px;line-height:1.15;margin:0}
.ch2-sub{color:var(--text-2);font-size:14px;margin-top:3px}
.coach-pick2{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;color:var(--text-2);background:var(--surface-2);border-radius:20px;padding:4px 10px}
.coach-pick2 svg{width:14px;height:14px}.coach-pick2 select{border:0;background:none;font:inherit;font-weight:650;color:var(--text)}
.subc{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:20px;background:var(--surface-2);text-decoration:none;color:inherit}
.subc .grow{display:flex;flex-direction:column;gap:3px}
.ring{position:relative;width:64px;height:64px;flex:none}.ring svg{width:64px;height:64px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}.ring .rb{stroke:var(--border)}.ring .rf{stroke-linecap:round;stroke:var(--tone)}
.rv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:750;font-size:19px;line-height:1}
.rv small{font-size:9px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.subc.green{--tone:#22a559}.subc.orange{--tone:#e8870e}.subc.red{--tone:var(--blue)}.subc.gray{--tone:var(--text-3)}
.subc-p{font-weight:700;font-size:16px}
.subc-s{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:650;color:var(--tone)}
.sdot{width:8px;height:8px;border-radius:50%;background:var(--tone)}
.ch2-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ch2-acts>a,.ch2-acts>button{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--blue);text-decoration:none;background:var(--surface-2);border:0;border-radius:16px;padding:12px 4px;font-family:inherit;cursor:pointer}
.ch2-acts span{position:relative;display:grid;place-items:center}.ch2-acts svg{width:22px;height:22px}
.ch2-acts i{position:absolute;top:-6px;right:-10px;background:var(--blue);color:#fff;font-style:normal;font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px}
.tr-opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;cursor:pointer}
.tr-opt:has(input:checked){border-color:var(--blue);background:color-mix(in srgb,var(--blue) 6%,transparent)}
.tr-opt .cdot{width:34px;height:34px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--surface-2);font-weight:700}

/* Onglets de la fiche client : restent visibles en haut pendant le défilement */
.tabs.ctabs { position: sticky; top: var(--ctop-h, 60px); z-index: 30; background: var(--nav-bg); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); margin-left: -4px; margin-right: -4px; padding: 0 4px; }
/* Programme : brouillon + accès aux semaines */
.draft-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,#e8870e 10%,var(--bg));border:1px solid color-mix(in srgb,#e8870e 35%,transparent);margin-bottom:12px}
.draft-bar .grow{display:flex;flex-direction:column;gap:2px;min-width:180px}
.sdot2{width:9px;height:9px;border-radius:50%;background:#e8870e;flex:none}
.acc-box{padding:14px 16px;border-radius:18px;background:var(--surface-2);margin-bottom:16px}
.acc-box .seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.acc-box .seg svg{width:15px;height:15px}

.sp-opt{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border-radius:14px;border:1.5px solid var(--border);background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.sp-opt .r{width:18px;height:18px;border-radius:50%;border:2px solid var(--text-3);flex:none}
.sp-opt.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 6%,transparent)}.sp-opt.active .r{border:5px solid var(--blue)}
