/* ═══════════════════════════════════════════════════════════════════════════════════════════════════════════
   CHARTE DU CABINET (2026-10-08) : fenêtre « Présentations PowerPoint », composant Shared/CharteCabinet.razor (style maison
   des présentations réglé par un Admin, aperçu en direct). Préfixe ccab- ; champs, boutons et messages : règles de la fenêtre
   (memo-). Couleurs : jetons de l'application (clair et sombre) ; l'aperçu, lui, dessine des diapositives (fond blanc, couleurs
   de la palette active passées en --ccab-a1/a2/a6, polices choisies en --ccab-titres/--ccab-texte).
   ═══════════════════════════════════════════════════════════════════════════════════════════════════════════ */
.ccab-corps { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; padding: 4px 14px 14px; align-items: start; }
.ccab-reglages { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ccab-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ccab-champs:disabled { opacity: 1; }
.ccab-champs:disabled select, .ccab-champs:disabled input, .ccab-champs:disabled textarea { opacity: .78; cursor: default; }
.ccab-champs .memo-champ.pleine, .ccab-bloc-t, .ccab-aide { grid-column: 1 / -1; }
.ccab-bloc-t { margin-top: 6px; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mut1, #9fb3ba);
               padding-bottom: 4px; border-bottom: 1px solid var(--o8, rgba(255,255,255,.12)); }
.ccab-bloc-t:first-child { margin-top: 0; }
.ccab-aide, .ccab-champs small { font-size: .72rem; line-height: 1.45; color: var(--mut1, #9fb3ba); }
.ccab-champs small code { font-size: .7rem; padding: 0 3px; border-radius: 4px; background: var(--o6, rgba(255,255,255,.08)); color: var(--tx1, #e9f1f2); }

/* Photos de couverture : vignettes au choix (radio). */
.ccab-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.ccab-photo { display: flex; flex-direction: column; gap: 4px; padding: 4px; border-radius: 10px; cursor: pointer; text-align: left; min-width: 0;
              border: 1px solid var(--o8, rgba(255,255,255,.14)); background: color-mix(in oklab, var(--surf-2, #13202b) 45%, transparent);
              color: var(--tx2, #c9d6da); transition: border-color .15s, transform .15s, box-shadow .15s; }
.ccab-photo:hover:not(:disabled) { transform: translateY(-2px); border-color: color-mix(in srgb, var(--brand, #00b1cf) 55%, transparent); }
.ccab-photo.on { border-color: var(--brand, #00b1cf); box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand, #00b1cf) 30%, transparent); }
.ccab-photo:disabled { opacity: .5; cursor: default; }
.ccab-photo-vis { display: grid; place-items: center; aspect-ratio: 16 / 10; border-radius: 7px; background-size: cover; background-position: center;
                  background-color: var(--o6, rgba(255,255,255,.08)); color: var(--mut1, #9fb3ba); font-size: .7rem; }
.ccab-photo-vis.libre { background: repeating-linear-gradient(135deg, var(--o6, rgba(255,255,255,.08)) 0 6px, transparent 6px 12px); }
.ccab-photo-nom { font-size: .68rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ccab-import { position: relative; display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; align-self: flex-start; cursor: pointer; }
.ccab-import input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.ccab-champs:disabled .ccab-import { display: none; }

/* Portrait du contact. */
.ccab-portrait { flex-direction: row !important; align-items: center; gap: 12px !important; }
.ccab-portrait-vis { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background-size: cover; background-position: center;
                     border: 2px solid var(--brand, #00b1cf); background-color: var(--o6, rgba(255,255,255,.08)); color: var(--mut1, #9fb3ba); }
.ccab-portrait-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ccab-portrait-a { display: flex; gap: 14px; align-items: center; }
.ccab-portrait-a .ccab-import { margin-top: 0; }
.ccab-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }

/* Aperçu : trois diapositives 16:9. */
.ccab-apercu { position: sticky; top: 0; display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 12px; min-width: 0;
               border: 1px solid var(--o8, rgba(255,255,255,.12));
               background: radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--brand, #00b1cf) 12%, transparent), transparent 60%),
                           color-mix(in oklab, var(--surf-1, #0e1620) 60%, transparent); }
.ccab-apercu-t { font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mut1, #9fb3ba); }
.ccab-diapo { position: relative; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #fff; color: #1b252c;
              box-shadow: 0 6px 18px rgba(var(--shadow-col, 0,0,0), calc(.28 * var(--shadow-mul, 1))); font-family: var(--ccab-texte); container-type: inline-size; }
.ccab-diapo > span { position: absolute; }
/* Couverture Bandeau : bandeau oblique en dégradé, photo voilée. */
.ccab-diapo.bandeau { background: #fff; }
.ccab-bande { inset: 0 0 0 38%; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
              background: linear-gradient(160deg, color-mix(in srgb, var(--ccab-a1) 70%, #000), var(--ccab-a6) 55%, #0f2340); }
.ccab-bande-photo { inset: 0 0 0 38%; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); background-size: cover; background-position: center; opacity: .62; mix-blend-mode: luminosity; }
.ccab-diapo.classique { background: #0a2433; color: #fff; }
.ccab-diapo.classique.claire { background: #fff; color: #0a2433; }
/* Style intégré autre que Bandeau et Classique (2026-10-09) : sa couverture en image (aperçu du banc), sinon son nom. */
.ccab-diapo.image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ccab-oblique { right: 0; bottom: 0; width: 45%; height: 72%; clip-path: polygon(100% 0, 100% 100%, 0 100%);
                background: color-mix(in srgb, currentColor 14%, transparent); border-left: 0; }
.ccab-c-titre { left: 6%; top: 30%; width: 40%; font-family: var(--ccab-titres); font-size: 6cqw; line-height: 1.05; font-weight: 700; }
.ccab-c-soc { left: 6%; top: 60%; width: 40%; font-family: var(--ccab-titres); font-size: 4.6cqw; font-weight: 700; color: var(--ccab-a1); }
.ccab-c-mention { left: 6%; bottom: 7%; font-size: 2.4cqw; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ccab-a1); }
.ccab-diapo.classique .ccab-c-soc, .ccab-diapo.classique .ccab-c-mention { color: color-mix(in srgb, var(--ccab-a1) 75%, #fff); }
.ccab-diapo.classique.claire .ccab-c-soc, .ccab-diapo.classique.claire .ccab-c-mention { color: var(--ccab-a1); }
/* Contenu et contact. */
.ccab-bande-v { left: 0; top: 0; bottom: 0; width: 5%; background: linear-gradient(180deg, var(--ccab-a1), var(--ccab-a6) 70%, #0f2340); }
.ccab-t { left: 9%; right: 6%; top: 8%; font-family: var(--ccab-titres); font-size: 4.4cqw; line-height: 1.12; font-weight: 700; color: #0a2433; }
.ccab-barres { left: 9%; bottom: 22%; width: 42%; height: 46%; display: flex; align-items: flex-end; gap: 6%; }
.ccab-barres i { flex: 1; border-radius: 2px 2px 0 0; background: var(--ccab-a1); }
.ccab-barres i.b2 { background: var(--ccab-a2); }
.ccab-texte { left: 57%; right: 6%; top: 34%; font-size: 2.9cqw; line-height: 1.35; color: #3a4a55; }
.ccab-pied { left: 9%; right: 4%; bottom: 4%; display: flex; justify-content: space-between; gap: 8px; font-size: 2.1cqw; color: #6b7a85;
             white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ccab-pied b { font-weight: 600; }
.ccab-carte { left: 9%; right: 8%; top: 34%; display: flex; align-items: flex-start; gap: 5%; border-left: 2px solid var(--ccab-a1); padding-left: 4%; }
.ccab-medaillon { flex: 0 0 auto; width: 17cqw; height: 17cqw; border-radius: 50%; background-size: cover; background-position: center; border: 1px solid var(--ccab-a1); }
.ccab-lignes { display: flex; flex-direction: column; gap: .6cqw; font-size: 3cqw; line-height: 1.25; color: #3a4a55; min-width: 0; }
.ccab-lignes .nom { font-family: var(--ccab-titres); font-weight: 700; font-size: 3.6cqw; color: #0a2433; }
.ccab-lignes .libre { font-style: italic; color: #8a98a2; }

@media (max-width: 760px) {
    .ccab-corps { grid-template-columns: 1fr; }
    .ccab-apercu { position: static; }
}
@media (max-width: 520px) {
    .ccab-corps { padding: 4px 10px 12px; }
    .ccab-champs { grid-template-columns: 1fr; }
}

/* ── Portée de l'apparence (panneau Apparence, Shared/PorteeApparence.razor) : moi, ce dossier, le cabinet. ── */
.appx-portee { display: flex; flex-direction: column; gap: 8px; margin: 0 0 12px; padding: 10px 12px; border-radius: 12px;
               border: 1px solid color-mix(in srgb, var(--brand, #00b1cf) 32%, transparent);
               background: color-mix(in srgb, var(--brand, #00b1cf) 7%, transparent); }
.appx-portee-seg { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.appx-portee-l { font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mut1, #9fb3ba); }
.appx-portee-note { margin: 0; font-size: .76rem; line-height: 1.45; color: var(--tx2, #c9d6da); }
.appx-portee-msg { margin: 0; font-size: .74rem; line-height: 1.4; color: var(--brand-strong, var(--brand, #00b1cf)); }
.appx-portee .appx-pal-act { align-self: flex-start; }
/* Téléphone (2026-10-09) : « Moi · Ce dossier · Le cabinet » faisaient 22 px de haut, au doigt. */
@media (max-width: 520px) { .appx-portee-seg .appx-density-seg button { min-height: 40px; padding-inline: 14px; } }
