/* Espace client et praticien — reprend les couleurs du thème cm-somatic (theme.json). */
.cm-espace { --cm-r: 16px; max-width: 960px; margin-inline: auto; display: grid; gap: 1.5rem; }
.cm-espace h2 { margin: 0; }
.cm-espace h3 { margin: 0 0 .5rem; font-size: 1.15rem; }
.cm-eyebrow { margin: 0 0 .25rem; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent-deep); font-weight: 600; }
.cm-muted { color: var(--wp--preset--color--contrast-2); font-size: .9em; }

.cm-tile, .cm-espace form, .cm-contrat {
  background: var(--wp--preset--color--base-2); border: 1px solid var(--wp--preset--color--contrast-3);
  border-radius: var(--cm-r); padding: 1.25rem 1.5rem;
}


.cm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.cm-tile { display: grid; gap: .25rem; align-content: start; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.cm-tile p { margin: 0 0 .5rem; color: var(--wp--preset--color--contrast-2); font-size: .95rem; }
a.cm-tile:hover, a.cm-tile:focus-visible { border-color: var(--wp--preset--color--teal); transform: translateY(-1px); }
.cm-tile-off { opacity: .75; }

.cm-pill { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap; justify-self: start; }
.cm-pill-teal { background: var(--wp--preset--color--teal-mist); color: var(--wp--preset--color--teal); }
.cm-pill-accent { background: var(--wp--preset--color--accent-mist); color: var(--wp--preset--color--accent-deep); }
.cm-pill-muted { background: var(--wp--preset--color--muted); color: var(--wp--preset--color--contrast-2); }


.cm-espace label { font-weight: 600; }
.cm-espace input[type=email], .cm-espace input[name=cm_code] {
  width: 100%; max-width: 360px; padding: .75rem 1rem; border: 1px solid var(--wp--preset--color--contrast-3);
  border-radius: 12px; font: inherit; background: var(--wp--preset--color--base);
}
.cm-espace input:focus-visible { outline: 2px solid var(--wp--preset--color--teal); outline-offset: 2px; }
.cm-espace-error, .cm-espace-ok { margin: 0; padding: .75rem 1rem; border-radius: 12px; }
.cm-espace-error { background: #F8E6E0; color: var(--wp--preset--color--sienna); }
.cm-espace-ok { background: var(--wp--preset--color--teal-mist); color: var(--wp--preset--color--teal); }
.cm-logout { background: none !important; border: 0 !important; padding: 0 !important; }
.cm-head p { margin: .25rem 0 0; }
.cm-btn-small { padding: .55rem 1rem !important; font-size: .875rem !important; }

@media print {
  header, footer, .wp-site-blocks > header, .wp-site-blocks > footer, .cm-noprint { display: none !important; }
  .cm-contrat { border: 0; padding: 0; }
}
.cm-note form { background: none !important; border: 0 !important; padding: 0 !important; margin-top: 1rem; }
.cm-espace textarea { width: 100%; padding: .75rem 1rem; border: 1px solid var(--wp--preset--color--contrast-3); border-radius: 12px; font: inherit; background: var(--wp--preset--color--base); }
.cm-espace textarea:focus-visible { outline: 2px solid var(--wp--preset--color--teal); outline-offset: 2px; }
.cm-note h3 { margin-bottom: .75rem; }
.cm-exercice .cm-espace-ok { margin: .5rem 0 1rem; }
.cm-souffle { display: grid; justify-items: center; gap: .5rem; padding: 1.5rem 0 .5rem; text-align: center; }
.cm-souffle-orb { width: 140px; height: 140px; border-radius: 50%; margin: 2.75rem 0 3rem; transform: scale(1); transition-property: transform; transition-timing-function: ease-in-out;
  background: radial-gradient(circle at 35% 30%, var(--wp--preset--color--teal-mist), var(--wp--preset--color--teal) 75%); box-shadow: 0 0 0 12px var(--wp--preset--color--teal-mist); }
.cm-souffle-label { font-size: 1.25rem; font-weight: 600; margin: 0; color: var(--wp--preset--color--contrast); }
.cm-souffle-hint { margin: 0; min-height: 1.5em; color: var(--wp--preset--color--contrast-2); max-width: 36ch; }
.cm-souffle-meta { margin: 0; font-size: .85rem; color: var(--wp--preset--color--contrast-2); }
.cm-souffle-controls { display: flex; gap: .75rem; align-items: center; justify-content: center; flex-wrap: wrap; }
.cm-souffle-sound { font-weight: 400 !important; font-size: .9rem; }
.cm-btn-ghost { background: transparent !important; color: var(--wp--preset--color--accent-deep) !important; box-shadow: none !important; }
.cm-ex-why { margin-top: 1rem; }
.cm-ex-why summary { cursor: pointer; color: var(--wp--preset--color--teal); font-weight: 600; }
.cm-respiration { gap: 1.25rem; }
.cm-gate-list { margin: 0; padding-left: 1.2rem; display: grid; gap: .35rem; }
.cm-check { font-weight: 400 !important; display: inline-flex; gap: .5rem; align-items: flex-start; }
.cm-check input { margin-top: .3rem; }
.cm-compte input[type=text], .cm-compte input[type=tel] { width: 100%; max-width: 420px; padding: .65rem 1rem; border: 1px solid var(--wp--preset--color--contrast-3); border-radius: 12px; font: inherit; background: var(--wp--preset--color--base); }
.cm-inline-form { background: none !important; border: 0 !important; padding: 0 !important; }
/* Carte des parts */
.cm-parts { display: grid; grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr); gap: 1.25rem; align-items: start; }
@media (max-width: 860px) { .cm-parts { grid-template-columns: 1fr; } }
.cm-parts-board { background: #FFFFFF; border: 1px solid #E5DFD2; border-radius: 16px; padding: .5rem; touch-action: none; }
.cm-parts-board svg { width: 100%; height: auto; display: block; font-family: inherit; }
.cm-part-node { cursor: grab; }
.cm-part-node:focus { outline: none; }
.cm-part-node:focus circle { stroke: #161510; stroke-width: .8; }
.cm-parts-side { display: grid; gap: .75rem; }
.cm-parts-actions { margin: 0; }
.cm-parts-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.cm-part-chip { border: 1px solid #E5DFD2; background: #FBF7EE; border-radius: 999px; padding: .3rem .75rem; font: inherit; font-size: .9rem; cursor: pointer; }
.cm-part-chip.is-on { border-color: #1F6660; background: #E3EFEB; }
.cm-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; vertical-align: middle; }
.cm-parts-form { background: #FFFFFF; border: 1px solid #E5DFD2; border-radius: 16px; padding: 1rem 1.25rem; }
.cm-parts-form h3 { margin: .25rem 0 .5rem; font-size: 1rem; }
.cm-parts-form input[type=text], .cm-parts-form textarea, .cm-parts-form select { width: 100%; padding: .5rem .75rem; border: 1px solid #E5DFD2; border-radius: 10px; font: inherit; background: #FBF7EE; }
.cm-parts-form label { font-weight: 600; font-size: .9rem; }
.cm-role-desc { display: block; margin-top: .3rem; font-size: .85rem; }
.cm-part-links { margin: 0 0 .5rem; padding-left: 1rem; font-size: .9rem; }
.cm-link-add select { width: auto; max-width: 45%; }
.cm-link-del, .cm-part-del { background: none; border: 0; color: #A0533A; cursor: pointer; text-decoration: underline; font: inherit; font-size: .85rem; padding: 0; }
.cm-parts-save { grid-column: 1 / -1; background: none !important; border: 0 !important; padding: 0 !important; display: flex; gap: .75rem; align-items: center; }
.cm-parts-dirty { color: #8C7308; font-size: .9rem; }
/* Page publique */
.cm-arch { position: relative; padding-left: 2.25rem !important; }
.cm-arch-dot { position: absolute; left: 1rem; top: 1.45rem; width: .8rem; height: .8rem; border-radius: 50%; }
/* Respirer : onglets */
.cm-breathe-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; border-bottom: 1px solid var(--wp--preset--color--contrast-3); padding-bottom: 1rem; }
.cm-breathe-tab { display: grid; gap: .1rem; text-align: left; border: 1px solid var(--wp--preset--color--contrast-3); background: var(--wp--preset--color--base); border-radius: 14px; padding: .6rem 1rem; font: inherit; cursor: pointer; color: var(--wp--preset--color--contrast); }
.cm-breathe-tab small { color: var(--wp--preset--color--contrast-2); font-size: .8rem; }
.cm-breathe-tab[aria-selected=true] { border-color: var(--wp--preset--color--teal); background: var(--wp--preset--color--teal-mist); }
.cm-breathe-tab:focus-visible { outline: 2px solid var(--wp--preset--color--teal); outline-offset: 2px; }
.cm-breathe-body h3 { margin-top: 0; }
@media (max-width: 600px) { .cm-breathe-tabs { flex-wrap: nowrap; overflow-x: auto; } .cm-breathe-tab { flex: 0 0 auto; } }
