.csa-app-body { min-height:100vh; background:var(--csa-bg); }
.csa-app-shell { min-height:100vh; display:grid; grid-template-columns:250px 1fr; }
.csa-sidebar { background:linear-gradient(180deg,#122c4d 0,#0d1f36 100%); color:#fff; padding:24px 18px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.csa-sidebar-brand { display:flex; align-items:center; gap:12px; font-weight:800; font-size:18px; margin-bottom:34px; padding:0 8px; }
.csa-brand-mark { width:36px; height:36px; border-radius:12px; display:grid; place-items:center; background:linear-gradient(135deg,var(--csa-accent),#4bb5a6); }
.csa-nav { display:grid; gap:8px; }
.csa-nav a { text-decoration:none; color:#dce8f5; padding:12px 14px; border-radius:12px; font-weight:700; }
.csa-nav a:hover, .csa-nav a.active { background:rgba(255,255,255,.12); color:#fff; }
.csa-sidebar-user { margin-top:auto; display:flex; gap:10px; align-items:center; padding:14px 8px; border-top:1px solid rgba(255,255,255,.1); }
.csa-sidebar-user small { display:block; color:#a9bbce; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.csa-avatar { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#fff; color:var(--csa-primary); font-weight:900; }
.csa-logout { color:#f8c6c6; text-decoration:none; padding:10px 8px; font-weight:700; }
.csa-main { padding:30px; min-width:0; }
.csa-topbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }
.csa-topbar h1 { margin:4px 0 0; font-size:30px; }
.csa-eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:12px; color:var(--csa-muted); font-weight:800; }
.csa-btn { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--csa-border); background:#fff; color:var(--csa-text); padding:11px 15px; border-radius:11px; font-weight:800; text-decoration:none; cursor:pointer; }
.csa-btn-primary { border-color:transparent; background:linear-gradient(135deg,var(--csa-primary),var(--csa-primary-2)); color:#fff; }
.csa-btn-small { padding:8px 11px; font-size:13px; }
.csa-panel, .csa-tree-card, .csa-empty-card { background:var(--csa-panel); border:1px solid var(--csa-border); border-radius:var(--csa-radius); box-shadow:var(--csa-shadow); padding:24px; }
.csa-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:16px; margin-bottom:18px; }
.csa-stats-row article { background:#fff; border:1px solid var(--csa-border); border-radius:16px; padding:18px; box-shadow:0 8px 26px rgba(22,36,58,.06); }
.csa-stats-row strong { display:block; font-size:24px; }
.csa-stats-row span { color:var(--csa-muted); font-size:13px; }
.csa-form-grid { display:grid; gap:16px; }
.csa-form-two-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
.csa-form-grid label { display:grid; gap:7px; font-weight:700; color:#31445a; }
.csa-form-grid input, .csa-form-grid select, .csa-form-grid textarea { width:100%; border:1px solid var(--csa-border); background:#fbfdff; padding:12px 13px; border-radius:10px; }
.csa-form-grid input:focus, .csa-form-grid select:focus, .csa-form-grid textarea:focus { outline:none; border-color:var(--csa-primary-2); box-shadow:0 0 0 4px rgba(36,95,141,.10); }
.csa-span-2 { grid-column:1 / -1; }
.csa-form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:4px; }
.csa-member-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.csa-member-card { background:#fff; border:1px solid var(--csa-border); border-radius:16px; padding:18px; box-shadow:0 8px 26px rgba(22,36,58,.06); display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:14px; }
.csa-member-photo { width:58px; height:58px; border-radius:16px; overflow:hidden; background:#eaf1f8; display:grid; place-items:center; color:var(--csa-primary); font-weight:900; }
.csa-member-photo img { width:100%; height:100%; object-fit:cover; }
.csa-member-info h3 { margin:0 0 4px; }.csa-member-info p { margin:0 0 7px; color:var(--csa-muted); font-size:13px; }
.csa-badge { display:inline-block; font-size:11px; padding:4px 8px; border-radius:999px; font-weight:800; }.csa-badge.editable{background:#e7f8f4;color:#147766}.csa-badge.readonly{background:#eef2f6;color:#66778a}
.csa-profile-card { display:flex; gap:20px; align-items:center; }.csa-avatar-large { width:86px; height:86px; border-radius:24px; display:grid; place-items:center; background:linear-gradient(135deg,var(--csa-primary),var(--csa-primary-2)); color:#fff; font-size:30px; font-weight:900; }
.csa-notice { background:#e8f7ef; color:#156b45; border:1px solid #bde6ce; padding:12px 14px; border-radius:10px; margin-bottom:16px; }
@media(max-width:900px){.csa-app-shell{grid-template-columns:1fr}.csa-sidebar{position:relative;height:auto}.csa-main{padding:18px}.csa-form-two-cols{grid-template-columns:1fr}.csa-span-2{grid-column:auto}.csa-stats-row{grid-template-columns:1fr}.csa-topbar{align-items:flex-start;flex-direction:column}}
.csa-family-users{display:grid;gap:10px}.csa-family-user{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--csa-border);border-radius:12px;background:#fbfdff}.csa-family-user small{display:block;color:var(--csa-muted);margin-top:3px}

.csa-photo-picker{display:grid;gap:8px}.csa-photo-picker>label{font-weight:700;color:#31445a}.csa-photo-picker-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.csa-photo-preview{margin-top:10px;min-height:12px}.csa-photo-preview img{display:block;width:120px;height:120px;object-fit:cover;border-radius:16px;border:1px solid var(--csa-border);box-shadow:0 8px 24px rgba(22,36,58,.08)}@media(max-width:700px){.csa-photo-picker-row{grid-template-columns:1fr}.csa-photo-picker-row .csa-btn{width:100%}}


/* Rapports PV */
.csa-report-list{display:grid;gap:14px}.csa-report-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;border:1px solid #e6eaf0;border-radius:16px;background:#fff}.csa-report-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#17345c;color:#fff;font-weight:800;letter-spacing:.04em}.csa-report-content h2{margin:3px 0 6px;font-size:18px}.csa-report-meta{font-size:12px;font-weight:700;color:#718096}.csa-report-description{color:#5d6878;font-size:14px}.csa-report-description p{margin:0}.csa-report-action{white-space:nowrap}.csa-empty-state{text-align:center;padding:42px 20px}.csa-muted{color:#718096}@media(max-width:760px){.csa-report-card{grid-template-columns:48px 1fr}.csa-report-action{grid-column:1/-1}.csa-report-action .csa-btn{width:100%;text-align:center}.csa-report-icon{width:44px;height:44px;border-radius:12px}}

.csa-brand-mark{font-size:11px;letter-spacing:.4px}
.csa-nav-group{display:grid;gap:5px}.csa-nav-submenu{display:grid;gap:4px;margin-left:14px;padding-left:10px;border-left:1px solid rgba(255,255,255,.18)}.csa-nav-submenu a{font-size:14px;padding:9px 12px}.csa-meeting-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.csa-meeting-card{border:1px solid var(--csa-border);border-radius:16px;padding:18px;background:#fff}.csa-meeting-card h3{margin:6px 0 8px}.csa-meeting-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.csa-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.csa-photo-gallery figure{margin:0;border:1px solid var(--csa-border);border-radius:16px;overflow:hidden;background:#fff}.csa-photo-gallery img{display:block;width:100%;height:260px;object-fit:cover;object-position:center 15%}.csa-photo-gallery figcaption{display:grid;gap:3px;padding:10px 12px}.csa-photo-gallery figcaption span{font-size:13px;color:var(--csa-muted)}


/* v3.4.1 - Aperçu des photos de réunion */
.csa-reunion-photo-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.csa-reunion-photo-preview img {
    width: 88px;
    height: 88px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid #e3e8ef;
}
.csa-notice-success {
    margin-bottom: 16px;
    padding: 12px 16px;
    border-radius: 12px;
    background: #eefaf2;
    border: 1px solid #bfe5ca;
}


/* v3.4.3 - Navigation permanente dans une réunion */
.csa-reunion-actions-bar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:16px 18px;
    margin:0 0 18px;
    border:1px solid var(--csa-border);
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 26px rgba(22,36,58,.06);
}
.csa-reunion-actions-title {
    display:grid;
    gap:4px;
    min-width:180px;
}
.csa-reunion-actions-buttons {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:10px;
}
@media(max-width:900px) {
    .csa-reunion-actions-bar {
        align-items:flex-start;
        flex-direction:column;
    }
    .csa-reunion-actions-buttons {
        width:100%;
        justify-content:flex-start;
    }
}


/* v3.4.5 - Bouton actif dans la navigation d'une réunion */
.csa-reunion-actions-buttons .csa-reunion-action-active {
    border-color: transparent;
    background: linear-gradient(
        135deg,
        var(--csa-primary),
        var(--csa-primary-2)
    );
    color: #fff;
    box-shadow: 0 8px 20px rgba(23, 52, 92, .18);
}
.csa-reunion-actions-buttons .csa-reunion-action-active:hover {
    color: #fff;
    filter: brightness(.98);
}

.csa-photo-edit-form{display:grid;gap:8px;margin-top:8px}.csa-photo-edit-form input{width:100%;padding:8px 10px;border:1px solid var(--csa-border);border-radius:9px}.csa-panel+.csa-panel{margin-top:18px}


/* v3.4.8 - Réunion imposée lors de la création d'un PV */
.csa-linked-meeting {
    display:grid;
    gap:5px;
    padding:14px 16px;
    border:1px solid var(--csa-border);
    border-radius:12px;
    background:#f8fbff;
}
.csa-linked-meeting strong {
    font-size:16px;
}
.csa-linked-meeting small {
    color:var(--csa-muted);
}

/* Vue réunion : photos en lecture seule, sans légende ni boutons */
.csa-reunion-view-photo {
    margin:0;
    border:1px solid var(--csa-border);
    border-radius:16px;
    overflow:hidden;
    background:#fff;
}
.csa-reunion-view-photo img {
    display:block;
    width:100%;
    height:240px;
    object-fit:cover;
    object-position:center top;
}


/* v3.4.9 - Photos enregistrées : suppression uniquement */
.csa-photo-delete-only {
    display:flex;
    justify-content:center;
    align-items:center;
    padding:10px;
}
.csa-photo-delete-only form {
    margin:0;
}


/* v3.5.0 - Cadrage portraits dans la galerie */
.csa-photo-gallery img {
    height: 260px;
    object-fit: cover;
    object-position: center 15%;
}
.csa-reunion-photo-preview img {
    object-position: center 15%;
}


/* v3.5.1 - Texte saisi dans les champs sans gras */
.csa-main input[type="text"],
.csa-main input[type="email"],
.csa-main input[type="password"],
.csa-main input[type="date"],
.csa-main input[type="number"],
.csa-main input[type="tel"],
.csa-main input[type="url"],
.csa-main input[type="search"],
.csa-main textarea,
.csa-main select {
    font-weight: 400 !important;
}

.csa-main input::placeholder,
.csa-main textarea::placeholder {
    font-weight: 400 !important;
}


/* v3.5.23 - suppression membre et modification des relations */
.csa-btn-danger {
    background: #fff3f3;
    border-color: #e6a8a8;
    color: #a92828;
}

.csa-btn-danger:hover {
    background: #a92828;
    border-color: #a92828;
    color: #fff;
}

.csa-inline-form {
    display: inline-flex;
    margin: 0;
}

.csa-member-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.csa-delete-member-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--csa-border);
}

.csa-existing-relations-panel {
    margin-top: 18px;
}

.csa-relations-edit-list {
    display: grid;
    gap: 12px;
}

.csa-relation-edit-row {
    display: grid;
    grid-template-columns: minmax(180px,1fr) minmax(170px,.8fr) minmax(180px,1fr) auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--csa-border);
    border-radius: 12px;
    background: #fbfdff;
}

.csa-relation-edit-row label {
    display: grid;
    gap: 6px;
}

.csa-relation-edit-row select {
    width: 100%;
}

@media (max-width: 1000px) {
    .csa-relation-edit-row {
        grid-template-columns: 1fr;
    }
}


/* v3.5.24 - modification d'une relation sur une seule ligne */
.csa-relation-single-row {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.4fr)
        minmax(180px, 1fr)
        minmax(170px, .8fr)
        minmax(180px, 1fr)
        auto;
    gap: 12px;
    align-items: end;
}

.csa-relation-single-row label {
    display: grid;
    gap: 6px;
}

.csa-relation-single-row select {
    width: 100%;
}

.csa-relation-edit-action {
    display: flex;
    align-items: end;
}

@media (max-width: 1200px) {
    .csa-relation-single-row {
        grid-template-columns: 1fr 1fr;
    }

    .csa-relation-edit-action {
        grid-column: span 2;
    }
}

@media (max-width: 700px) {
    .csa-relation-single-row {
        grid-template-columns: 1fr;
    }

    .csa-relation-edit-action {
        grid-column: auto;
    }
}


/* v3.5.25 - suppression d'une relation */
.csa-relation-single-row select:disabled {
    background: #f4f7fa;
    color: #526579;
    opacity: 1;
    cursor: default;
}


/* v3.5.31 - Combos Personne 1 / Personne 2 filtrables */
.csa-search-combo {
    position: relative;
    width: 100%;
}

.csa-search-combo-input {
    width: 100%;
}

.csa-search-combo-list {
    position: absolute;
    z-index: 500;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    max-height: 260px;
    overflow-y: auto;
    padding: 5px;
    background: #fff;
    border: 1px solid var(--csa-border);
    border-radius: 11px;
    box-shadow: 0 14px 34px rgba(23, 52, 92, .16);
}

.csa-search-combo-list[hidden] {
    display: none !important;
}

.csa-search-combo-option {
    display: block;
    width: 100%;
    padding: 9px 11px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #26384a;
    text-align: left;
    font-weight: 400;
    cursor: pointer;
}

.csa-search-combo-option:hover,
.csa-search-combo-option.is-active {
    background: #eef5fb;
    color: #17345c;
}

.csa-search-combo-empty {
    padding: 10px 11px;
    color: #708397;
    font-size: 13px;
}


/* v3.5.33 - Afficher / masquer le mot de passe */
.csa-password-field {
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
}

.csa-password-field input {
    flex:1;
    min-width:0;
}

.csa-password-toggle {
    flex:0 0 auto;
    width:44px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid var(--csa-border);
    border-radius:9px;
    background:#fff;
    color:#42566b;
    cursor:pointer;
}

.csa-password-toggle:hover,
.csa-password-toggle:focus-visible {
    background:#f1f6fa;
    color:#17345c;
}

.csa-eye-shape,
.csa-eye-pupil,
.csa-eye-slash {
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.csa-eye-pupil {
    fill:none;
}

.csa-eye-slash {
    display:none;
}

/* Mot de passe masqué : afficher l'œil barré. */
.csa-password-toggle.is-hidden .csa-eye-slash {
    display:block;
}
