@import url("utils/variables-4dd521195dcf6fe4d67ad51c2aafb3cd.css");

@import url("base/base-8776a0b14927ef82d6717c24edb4cd18.css");
@import url("base/typography-3b6e7738efdc6634890ce99ac973d6a8.css");

@import url("pages/homepage-ffde8d311cada8089a3b65cab9411b32.css");
@import url("pages/login-ec36cf1b806ba169efe0d9dd3e0a0ebe.css");
@import url("pages/dashboard-501bb828d3874ce1009789ccd3769600.css");
@import url("pages/rdvCollectifs-1518174fa2213d29d87fab8347bce0f3.css");
@import url("pages/rdvIndividuels-56fe447a5cca2ce1aa947166c3505d5d.css");
@import url("pages/statistiques-a8fcd8ac1c72e472e6ecae4762fd8088.css");
@import url("pages/admin/admin_forms-f7741387c48626d8f72364d6a381c95f.css");
@import url("pages/changelog-35ee7268533da8c624743718c0a4e5b3.css");
@import url("pages/alerts-8052f79323e59dd0f282489c7286f979.css");
@import url("pages/resetPassword-ce05af03d7b059cbc217ea7027213fe3.css");

@import url("layouts/main-container-437213589b03c15b59b1a72f7d2d5fae.css");

@import url("components/participants-form-7d5f87fb3a8082c3ebc0dc2aedba6cda.css");
@import url("components/participants-table-de5926c915619566a6c1d57154352d68.css");
@import url("components/participants-profile-69adf54388e0cbebe9dda972b635a653.css");
@import url("components/buttons-20f2ab76355c03edc75d1b8a9eac45dc.css");
@import url("components/form-1fdbccd95c4c7858dbb0ae949b00bdb2.css");
@import url("components/header-0fc0791c287a674734fcf24408d7b193.css");
@import url("components/footer-0c9a0dda2dc4546574073dff13e4079e.css");
@import url("components/creneaux-container-7a2c9096e8273800f869e958baeeaad7.css");
@import url("components/filter-form-7a676762de546e756c0b1bbdf7c23d37.css");
@import url("components/choices-f58781011f2ea77d5446967b8685febb.css");
@import url("components/bilans-table-f4250c9863b5e5fa09df4c3301ea1b0a.css");

@import url("modern-v4-737e0c3892cf1e55f71246bd46d898a0.css");


/* ===== V6 · Statistiques fiabilisées et lecture modernisée ===== */
.stats-container .tabs {
    position: sticky;
    top: 72px;
    z-index: 20;
    padding: .45rem;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(17, 42, 134, .08);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(21, 46, 112, .08);
}
.stats-container .tab {
    border-radius: 12px;
    transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.stats-container .tab:hover { transform: translateY(-1px); }
.stats-container .tab.active {
    box-shadow: 0 8px 20px rgba(31, 63, 196, .18);
}
.stats-card {
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.stats-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(24, 48, 112, .10);
}
.recap-info-container .stats-card .card-body-info {
    font-variant-numeric: tabular-nums;
}
.data-table tbody tr {
    transition: background-color .18s ease;
}
.data-table tbody tr:hover {
    background: rgba(36, 75, 210, .045);
}
@media (prefers-reduced-motion: reduce) {
    .stats-container .tab,
    .stats-card,
    .data-table tbody tr { transition: none !important; }
    .stats-container .tab:hover,
    .stats-card:hover { transform: none !important; }
}


/* ===== V6 · Infogérance & planning intégré ===== */
.dashboard-managed-card {
    min-width: 0;
}
.dashboard-managed-card .card {
    position: relative;
    height: 100%;
    background:
        radial-gradient(circle at 100% 0, rgba(239, 68, 68, .10), transparent 42%),
        linear-gradient(145deg, #ffffff, #f8faff);
    border: 1px solid rgba(220, 38, 38, .14);
    color: #172033;
}
.dashboard-managed-card .card > i {
    color: #64748b;
}
.dashboard-managed-card .card h3 {
    color: #172033;
    margin-bottom: .35rem;
}
.dashboard-managed-card .card p {
    margin: 0 0 1rem;
    font-size: .85rem;
    line-height: 1.45;
    color: #64748b;
}
.dashboard-managed-card__status {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: fit-content;
    margin: 0 auto .75rem;
    padding: .38rem .65rem;
    border-radius: 999px;
    background: rgba(220, 38, 38, .08);
    color: #b42318;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .01em;
}
.dashboard-managed-card__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 0 5px rgba(239, 68, 68, .10);
}
.dashboard-managed-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .55rem .8rem;
    border-radius: 10px;
    background: #eef2ff;
    color: #1837a7;
    font-weight: 800;
    font-size: .8rem;
    text-decoration: none;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.dashboard-managed-card__cta:hover {
    transform: translateY(-1px);
    background: #e0e7ff;
    box-shadow: 0 8px 20px rgba(31, 63, 196, .12);
}

.dashboard-planning-shell {
    margin-top: 2rem;
    border: 1px solid rgba(30, 64, 175, .10);
    border-radius: 22px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 18px 48px rgba(26, 48, 105, .08);
    overflow: hidden;
}
.dashboard-planning-summary {
    width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    border: 0;
    background:
        radial-gradient(circle at 95% -20%, rgba(74, 105, 255, .16), transparent 38%),
        linear-gradient(135deg, #ffffff, #f7f9ff);
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.dashboard-planning-summary__icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: linear-gradient(145deg, #183fc5, #3157df);
    color: #fff;
    box-shadow: 0 10px 26px rgba(29, 67, 199, .22);
    font-size: 1.25rem;
}
.dashboard-planning-summary__eyebrow {
    display: block;
    margin-bottom: .18rem;
    color: #4561c6;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dashboard-planning-summary__text h2 {
    margin: 0;
    font-size: clamp(1.1rem, 2vw, 1.45rem);
    color: #172033;
}
.dashboard-planning-summary__text p {
    margin: .28rem 0 0;
    color: #64748b;
    font-size: .88rem;
}
.dashboard-planning-summary__meta {
    display: flex;
    align-items: center;
    gap: .6rem;
}
.dashboard-planning-count {
    padding: .42rem .72rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #2947b7;
    font-size: .75rem;
    font-weight: 800;
}
.dashboard-planning-toggle-label {
    color: #344054;
    font-size: .8rem;
    font-weight: 800;
}
.dashboard-planning-chevron {
    font-size: 1.2rem;
    transition: transform .22s ease;
}
.dashboard-planning-shell.is-expanded .dashboard-planning-chevron {
    transform: rotate(180deg);
}
.dashboard-planning-content {
    padding: 1.2rem 1.35rem 1.35rem;
    border-top: 1px solid rgba(30, 64, 175, .08);
    animation: lccPlanningReveal .24s ease both;
}
.dashboard-planning-toolbar h3 {
    margin: 0;
    color: #172033;
}
.dashboard-planning-toolbar p {
    margin: .25rem 0 1rem;
    color: #667085;
    font-size: .85rem;
}
.dashboard-planning-filters {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(145px, 1fr)) auto auto;
    gap: .6rem !important;
    margin-bottom: 1rem !important;
}
.dashboard-planning-table-wrap {
    overflow-x: auto;
    border-radius: 14px;
    border: 1px solid #edf0f7;
}
.dashboard-planning-table {
    margin: 0;
}
.dashboard-time-pill {
    white-space: nowrap;
    display: inline-flex;
    padding: .34rem .55rem;
    border-radius: 999px;
    background: #f4f6fb;
    color: #344054;
    font-weight: 700;
    font-size: .78rem;
}
@keyframes lccPlanningReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== V6 · Infogérance ===== */
.managed-page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1rem 1rem 3rem;
}
.managed-hero {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.25rem;
    align-items: center;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    border-radius: 26px;
    color: #fff;
    background:
        radial-gradient(circle at 95% 10%, rgba(93, 123, 255, .45), transparent 34%),
        linear-gradient(135deg, #10236e, #173ec4 58%, #244fcf);
    box-shadow: 0 24px 55px rgba(24, 52, 156, .20);
}
.managed-eyebrow,
.managed-section-kicker {
    display: inline-block;
    margin-bottom: .5rem;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.managed-eyebrow {
    color: #d9e2ff;
}
.managed-hero h2 {
    margin: 0 0 .65rem;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.45rem);
}
.managed-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.82);
    line-height: 1.65;
}
.managed-state {
    min-width: 215px;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(10px);
}
.managed-state__dot {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    border-radius: 50%;
}
.managed-state.is-disabled .managed-state__dot {
    background: #f97066;
    box-shadow: 0 0 0 6px rgba(249,112,102,.13);
}
.managed-state.is-active .managed-state__dot {
    background: #32d583;
    box-shadow: 0 0 0 6px rgba(50,213,131,.13);
}
.managed-state small,
.managed-state strong {
    display: block;
}
.managed-state small {
    color: rgba(255,255,255,.66);
    margin-bottom: .12rem;
}
.managed-benefits {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 1.2rem 0 2rem;
}
.managed-benefits span {
    padding: .48rem .72rem;
    border: 1px solid #e8ecf5;
    border-radius: 999px;
    background: #fff;
    color: #465064;
    font-size: .78rem;
    font-weight: 700;
    box-shadow: 0 6px 18px rgba(31, 50, 100, .04);
}
.managed-pricing-intro {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1rem;
}
.managed-section-kicker {
    margin: 0 0 .2rem;
    color: #3754bc;
}
.managed-pricing-intro h3 {
    margin: 0;
    color: #172033;
    font-size: 1.4rem;
}
.managed-pricing-intro p {
    max-width: 470px;
    margin: 0;
    color: #667085;
    font-size: .85rem;
    text-align: right;
}
.managed-pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.managed-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.35rem;
    border: 1px solid #e9edf6;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(29, 49, 103, .07);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.managed-plan:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(29, 49, 103, .12);
}
.managed-plan.is-featured {
    border-color: rgba(38, 75, 210, .42);
    box-shadow: 0 20px 48px rgba(31, 63, 196, .14);
}
.managed-plan__popular {
    position: absolute;
    top: -12px;
    right: 18px;
    padding: .38rem .65rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #2449cf, #4665e5);
    color: #fff;
    font-size: .7rem;
    font-weight: 900;
}
.managed-plan__badge {
    color: #3d57b8;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.managed-plan__head h3 {
    margin: .25rem 0 .35rem;
    color: #172033;
}
.managed-plan__head p {
    min-height: 3.8em;
    margin: 0;
    color: #667085;
    font-size: .84rem;
    line-height: 1.5;
}
.managed-plan__price {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    margin: 1.15rem 0;
}
.managed-plan__price strong {
    color: #172033;
    font-size: 2rem;
    line-height: 1;
}
.managed-plan__price span {
    color: #667085;
    font-size: .76rem;
    font-weight: 700;
}
.managed-plan ul {
    flex: 1;
    list-style: none;
    padding: 0;
    margin: 0 0 1.2rem;
}
.managed-plan li {
    display: flex;
    gap: .5rem;
    padding: .42rem 0;
    color: #465064;
    font-size: .82rem;
    border-bottom: 1px solid #f0f2f7;
}
.managed-plan li span {
    color: #2f62d6;
    font-weight: 900;
}
.managed-plan__cta {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #173cbd, #3158dd);
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(31, 63, 196, .18);
    transition: transform .18s ease, box-shadow .18s ease;
}
.managed-plan__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(31, 63, 196, .24);
}
.managed-note {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin-top: 1.15rem;
    padding: 1rem 1.15rem;
    border: 1px solid #e8ecf6;
    border-radius: 16px;
    background: #f8faff;
}
.managed-note__icon {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #e3eaff;
    color: #2141ae;
    font-weight: 900;
}
.managed-note strong {
    color: #172033;
}
.managed-note p {
    margin: .25rem 0 0;
    color: #667085;
    font-size: .84rem;
    line-height: 1.5;
}

@media (max-width: 980px) {
    .dashboard-planning-filters {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
    }
    .managed-pricing-grid {
        grid-template-columns: 1fr;
    }
    .managed-hero {
        grid-template-columns: 1fr;
    }
    .managed-state {
        width: fit-content;
    }
}
@media (max-width: 680px) {
    .dashboard-planning-summary {
        grid-template-columns: auto 1fr;
    }
    .dashboard-planning-summary__meta {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
    .dashboard-planning-filters {
        grid-template-columns: 1fr;
    }
    .managed-pricing-intro {
        align-items: flex-start;
        flex-direction: column;
    }
    .managed-pricing-intro p {
        text-align: left;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dashboard-planning-content,
    .dashboard-planning-chevron,
    .dashboard-managed-card__cta,
    .managed-plan,
    .managed-plan__cta {
        animation: none !important;
        transition: none !important;
    }
}


/* ===== V7 · Onglet Planning intégré au tableau de bord ===== */
.dashboard-tabs {
    display: inline-flex;
    gap: .45rem;
    padding: .35rem;
    margin: 0 0 1.35rem;
    border: 1px solid #e6eaf2;
    border-radius: 16px;
    background: #f7f9fd;
}
.dashboard-tab {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 42px;
    padding: .65rem .9rem;
    border-radius: 12px;
    color: #667085;
    text-decoration: none;
    font-size: .86rem;
    font-weight: 800;
    transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.dashboard-tab:hover {
    color: #2448c9;
    background: #fff;
}
.dashboard-tab.is-active {
    color: #173cbd;
    background: #fff;
    box-shadow: 0 6px 18px rgba(31, 63, 196, .10);
}
.dashboard-tab__count {
    min-width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    padding: 0 .4rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3154c9;
    font-size: .72rem;
}
.dashboard-tab-panel {
    animation: lccDashboardTabIn .28s ease both;
}
.dashboard-planning-preview {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .9rem;
    margin-top: 1.35rem;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(42, 77, 196, .12);
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #f7f9ff);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(25, 50, 120, .06);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dashboard-planning-preview:hover {
    transform: translateY(-2px);
    border-color: rgba(42, 77, 196, .24);
    box-shadow: 0 16px 36px rgba(25, 50, 120, .10);
}
.dashboard-planning-preview__icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(145deg, #1b43c5, #4665e2);
}
.dashboard-planning-preview span,
.dashboard-planning-preview strong,
.dashboard-planning-preview small {
    display: block;
}
.dashboard-planning-preview span {
    color: #4561c6;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dashboard-planning-preview strong {
    margin: .14rem 0;
    color: #172033;
}
.dashboard-planning-preview small {
    color: #667085;
}

.dashboard-planner-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.dashboard-planner-eyebrow {
    display: block;
    margin-bottom: .25rem;
    color: #4561c6;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dashboard-planner-head h2 {
    margin: 0;
    color: #172033;
}
.dashboard-planner-head p {
    margin: .35rem 0 0;
    color: #667085;
}
.dashboard-planner-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem;
}
.dashboard-secondary-button {
    background: #eef2ff !important;
    color: #2142b5 !important;
    box-shadow: none !important;
}
.dashboard-week-navigation {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .65rem;
    margin: 1rem 0;
    padding: .65rem;
    border: 1px solid #e8ecf5;
    border-radius: 16px;
    background: #fff;
}
.dashboard-week-nav-button,
.dashboard-week-current {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 38px;
    padding: .5rem .7rem;
    border-radius: 10px;
    color: #344054;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 800;
}
.dashboard-week-nav-button:last-child {
    justify-content: flex-end;
}
.dashboard-week-nav-button:hover,
.dashboard-week-current:hover {
    background: #f4f6fb;
    color: #2344b8;
}
.dashboard-week-current {
    justify-content: center;
    background: #eef2ff;
    color: #2344b8;
}
.dashboard-planning-filters--full {
    margin: 0 0 1rem !important;
}
.dashboard-planner-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-bottom: 1rem;
}
.dashboard-planner-summary > div {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    padding: .55rem .75rem;
    border-radius: 12px;
    background: #f7f9fd;
    border: 1px solid #edf0f6;
}
.dashboard-planner-summary strong {
    color: #172033;
    font-size: 1.05rem;
}
.dashboard-planner-summary span {
    color: #667085;
    font-size: .75rem;
    font-weight: 700;
}
.dashboard-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .65rem;
    align-items: start;
}
.dashboard-day-column {
    min-width: 0;
    border: 1px solid #e8ecf4;
    border-radius: 17px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(26, 48, 105, .045);
}
.dashboard-day-column.is-today {
    border-color: rgba(44, 80, 203, .35);
    box-shadow: 0 10px 28px rgba(44, 80, 203, .09);
}
.dashboard-day-header {
    padding: .75rem;
    border-bottom: 1px solid #eef1f6;
    background: #f8faff;
}
.dashboard-day-column.is-today .dashboard-day-header {
    background: #eef2ff;
}
.dashboard-day-header span,
.dashboard-day-header strong,
.dashboard-day-header small {
    display: block;
}
.dashboard-day-header span {
    color: #667085;
    font-size: .7rem;
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: .04em;
}
.dashboard-day-header strong {
    margin: .1rem 0;
    color: #172033;
    font-size: 1rem;
}
.dashboard-day-header small {
    color: #7b8498;
    font-size: .68rem;
}
.dashboard-day-events {
    display: grid;
    gap: .55rem;
    padding: .55rem;
}
.dashboard-event-card {
    position: relative;
    padding: .7rem;
    border-radius: 13px;
    border: 1px solid #e9edf4;
    background: #fff;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.dashboard-event-card:hover {
    transform: translateY(-1px);
    border-color: #d8def0;
    box-shadow: 0 8px 20px rgba(25, 50, 120, .07);
}
.dashboard-event-card.is-individual {
    border-left: 3px solid #4263d8;
}
.dashboard-event-card.is-collective {
    border-left: 3px solid #8159c7;
}
.dashboard-event-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .3rem;
}
.dashboard-event-card h3 {
    margin: .55rem 0;
    color: #172033;
    font-size: .84rem;
    line-height: 1.25;
}
.dashboard-event-meta {
    display: grid;
    gap: .36rem;
    margin: 0;
}
.dashboard-event-meta > div {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: .3rem;
    align-items: start;
}
.dashboard-event-meta dt {
    color: #8090b2;
    font-size: .75rem;
}
.dashboard-event-meta dd {
    margin: 0;
    color: #566074;
    font-size: .72rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.dashboard-event-meta dd small {
    display: block;
    margin-top: .08rem;
    color: #8a93a5;
}
.dashboard-event-note {
    margin-top: .55rem;
    padding: .45rem .5rem;
    border-radius: 9px;
    background: #fff8e6;
    color: #7a5a12;
    font-size: .7rem;
    line-height: 1.35;
}
.dashboard-event-actions {
    display: flex;
    gap: .35rem;
    margin-top: .6rem;
}
.dashboard-event-actions a {
    flex: 1;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 30px;
    padding: .35rem;
    border-radius: 8px;
    background: #f3f5fa;
    color: #344054;
    text-decoration: none;
    font-size: .68rem;
    font-weight: 800;
}
.dashboard-event-actions a:last-child {
    color: #2142b5;
    background: #eef2ff;
}
.dashboard-day-empty {
    min-height: 84px;
    display: grid;
    place-items: center;
    gap: .25rem;
    padding: .75rem;
    color: #a1a8b8;
    text-align: center;
    font-size: .72rem;
}
.dashboard-day-empty i {
    font-size: 1rem;
}

@keyframes lccDashboardTabIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1180px) {
    .dashboard-week-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
@media (max-width: 860px) {
    .dashboard-week-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dashboard-planner-head {
        flex-direction: column;
    }
    .dashboard-planner-actions {
        justify-content: flex-start;
    }
}
@media (max-width: 620px) {
    .dashboard-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }
    .dashboard-tab {
        justify-content: center;
    }
    .dashboard-week-grid {
        grid-template-columns: 1fr;
    }
    .dashboard-week-navigation {
        grid-template-columns: 1fr;
    }
    .dashboard-week-nav-button,
    .dashboard-week-nav-button:last-child,
    .dashboard-week-current {
        justify-content: center;
    }
    .dashboard-planning-preview {
        grid-template-columns: auto 1fr;
    }
    .dashboard-planning-preview > i:last-child {
        display: none;
    }
}


/* ===== V7.1 corrective : lisibilité formulaires / filtres / infogérance ===== */
.filter-button,
.submit-button,
.new-button {
    color: #fff !important;
}
.search-form input,
.search-form select,
.dashboard-planning-filters input,
.dashboard-planning-filters select {
    min-height: 42px;
    border: 1px solid #d8deea;
    border-radius: 10px;
    background: #fff;
    color: #263044;
}
.search-form {
    align-items: center;
}
.login-form .form-group.login {
    position: relative;
}
.login-form .form-group.login > i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    pointer-events: none;
}
.login-form .form-group.login input.form-control {
    padding-left: 44px !important;
}
.remark-badge {
    display: inline-block;
    max-width: 260px;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: #fff3cd;
    color: #7a5b00;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.infogerance-floating {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 80;
    display: grid;
    grid-template-columns: auto auto;
    column-gap: .55rem;
    align-items: center;
    padding: .72rem .9rem;
    border: 1px solid rgba(36, 72, 190, .18);
    border-radius: 16px;
    background: rgba(255,255,255,.96);
    color: #173cbd;
    text-decoration: none;
    box-shadow: 0 12px 32px rgba(20, 42, 105, .16);
    backdrop-filter: blur(10px);
    transition: transform .18s ease, box-shadow .18s ease;
}
.infogerance-floating:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(20, 42, 105, .22);
}
.infogerance-floating > i {
    grid-row: 1 / 3;
    font-size: 1.2rem;
}
.infogerance-floating span {
    font-size: .78rem;
    font-weight: 900;
}
.infogerance-floating small {
    color: #9a3412;
    font-size: .63rem;
    font-weight: 800;
}
@media (max-width: 700px) {
    .infogerance-floating {
        right: 12px;
        bottom: 12px;
        padding: .65rem;
    }
    .infogerance-floating span,
    .infogerance-floating small { display:none; }
    .search-form { width:100%; }
    .search-form input,
    .search-form select,
    .search-form .filter-button,
    .search-form .reset-filter-button { width:100%; }
}


/* ===== V7.2 · Documents, QR et notes de suivi ===== */
.file-actions {
    display: flex;
    align-items: center;
    gap: .35rem;
}
.followup-note-card {
    border: 1px solid #e7ebf3;
    border-radius: 14px;
    padding: .9rem !important;
    background: #fff;
}
.followup-note-edit {
    margin-top: .55rem;
}
.followup-note-edit summary {
    cursor: pointer;
    color: #3154c9;
    font-size: .8rem;
    font-weight: 800;
}
.followup-note-edit textarea {
    min-height: 92px;
    resize: vertical;
}


/* ===== V7.3 · Rapport de santé Infogérance ===== */
.managed-health {
    margin: 1.6rem 0 2rem;
    padding: 1.25rem;
    border: 1px solid #e4e9f3;
    border-radius: 22px;
    background: linear-gradient(145deg, #ffffff, #f8faff);
    box-shadow: 0 14px 36px rgba(29, 49, 103, .07);
}
.managed-health__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.managed-health__head h3 {
    margin: .1rem 0 .3rem;
    color: #172033;
}
.managed-health__head p {
    max-width: 650px;
    margin: 0;
    color: #667085;
    font-size: .86rem;
    line-height: 1.5;
}
.managed-health__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}
.managed-health__refresh,
.managed-health__report {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .55rem .75rem;
    border: 0;
    border-radius: 11px;
    font: inherit;
    font-size: .78rem;
    font-weight: 850;
    cursor: pointer;
    text-decoration: none;
}
.managed-health__refresh {
    background: #eef2ff;
    color: #2445b8;
}
.managed-health__report {
    background: linear-gradient(135deg, #183fc2, #3358d7);
    color: #fff;
    box-shadow: 0 8px 18px rgba(31, 63, 196, .16);
}
.managed-health__refresh.is-loading i {
    animation: lccHealthSpin .8s linear infinite;
}
.managed-health__status {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-top: 1rem;
    padding: .8rem .9rem;
    border-radius: 14px;
    border: 1px solid transparent;
}
.managed-health__status.is-healthy {
    background: #ecfdf3;
    border-color: #d1fadf;
    color: #087443;
}
.managed-health__status.is-warning {
    background: #fffaeb;
    border-color: #feefc7;
    color: #8a6100;
}
.managed-health__status.is-critical {
    background: #fff1f0;
    border-color: #fee4e2;
    color: #b42318;
}
.managed-health__pulse {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 12%, transparent);
}
.managed-health__status small,
.managed-health__status strong {
    display: block;
}
.managed-health__status small {
    opacity: .7;
    font-size: .66rem;
}
.managed-health__time {
    margin-left: auto;
    font-size: .72rem;
    font-weight: 700;
    opacity: .8;
}
.managed-health__metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .65rem;
    margin-top: .75rem;
}
.managed-health-metric {
    padding: .8rem;
    border: 1px solid #e8ecf4;
    border-radius: 13px;
    background: #fff;
}
.managed-health-metric span,
.managed-health-metric strong,
.managed-health-metric small {
    display: block;
}
.managed-health-metric span {
    color: #7b8498;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.managed-health-metric strong {
    margin-top: .22rem;
    color: #172033;
    font-size: 1.05rem;
}
.managed-health-metric small {
    margin-top: .16rem;
    color: #8a93a5;
    font-size: .68rem;
}
.managed-health__checks {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .55rem;
    margin-top: .75rem;
}
.managed-health-check {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    align-items: start;
    padding: .75rem;
    border: 1px solid #e8ecf4;
    border-radius: 13px;
    background: #fff;
}
.managed-health-check__icon {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 900;
}
.managed-health-check.is-healthy .managed-health-check__icon {
    background: #dcfae6;
    color: #087443;
}
.managed-health-check.is-warning .managed-health-check__icon {
    background: #fff2cc;
    color: #8a6100;
}
.managed-health-check.is-critical .managed-health-check__icon {
    background: #fee4e2;
    color: #b42318;
}
.managed-health-check strong,
.managed-health-check span,
.managed-health-check small {
    display: block;
}
.managed-health-check strong {
    color: #172033;
    font-size: .8rem;
}
.managed-health-check span {
    margin-top: .12rem;
    color: #4f596d;
    font-size: .74rem;
    font-weight: 700;
}
.managed-health-check small {
    margin-top: .18rem;
    color: #8a93a5;
    font-size: .68rem;
}
.managed-health__notice {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    margin-top: .75rem;
    padding: .7rem .8rem;
    border-radius: 12px;
    background: #f3f5fa;
    color: #667085;
    font-size: .73rem;
    line-height: 1.45;
}
@keyframes lccHealthSpin {
    to { transform: rotate(360deg); }
}
@media (max-width: 820px) {
    .managed-health__head {
        flex-direction: column;
    }
    .managed-health__actions {
        justify-content: flex-start;
    }
    .managed-health__metrics,
    .managed-health__checks {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 560px) {
    .managed-health__metrics,
    .managed-health__checks {
        grid-template-columns: 1fr;
    }
    .managed-health__status {
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .managed-health__time {
        width: 100%;
        margin-left: 1.7rem;
    }
}


/* ===== V7.4 · Alerte disque globale & sécurité ===== */
.global-infogerance-floating {
    bottom: 22px;
}
.global-disk-alert {
    position: fixed;
    right: 22px;
    bottom: 105px;
    z-index: 95;
    width: min(370px, calc(100vw - 30px));
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    padding: .9rem 2.3rem .9rem .9rem;
    border: 1px solid #f4c7a1;
    border-radius: 16px;
    background: rgba(255, 249, 237, .98);
    color: #7a3e00;
    box-shadow: 0 16px 38px rgba(91, 47, 0, .16);
    backdrop-filter: blur(10px);
    animation: lccDiskAlertIn .25s ease both;
}
.global-disk-alert[hidden] { display: none !important; }
.global-disk-alert__icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #ffead5;
    color: #c65d00;
}
.global-disk-alert strong,
.global-disk-alert span {
    display: block;
}
.global-disk-alert strong {
    color: #713b00;
    font-size: .86rem;
}
.global-disk-alert span {
    margin-top: .15rem;
    color: #925a22;
    font-size: .75rem;
}
.global-disk-alert button:not(.global-disk-alert__close) {
    margin-top: .55rem;
    min-height: 32px;
    padding: .35rem .6rem;
    border: 0;
    border-radius: 9px;
    background: #b54708;
    color: #fff;
    font-weight: 800;
    font-size: .72rem;
    cursor: pointer;
}
.global-disk-alert__close {
    position: absolute;
    top: .35rem;
    right: .45rem;
    border: 0;
    background: transparent;
    color: #9c6b3b;
    font-size: 1.15rem;
    cursor: pointer;
}
.managed-health__cleanup {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem .75rem;
    border: 1px solid #f0d3b5;
    border-radius: 11px;
    background: #fff8ef;
    color: #9a4d08;
    font: inherit;
    font-size: .78rem;
    font-weight: 850;
    cursor: pointer;
}
.managed-health__cleanup:disabled {
    opacity: .45;
    cursor: not-allowed;
}
.managed-security {
    margin-top: .85rem;
    padding: .9rem;
    border: 1px solid #e4e9f3;
    border-radius: 14px;
    background: #fff;
}
.managed-security__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}
.managed-security__head h4 {
    margin: .1rem 0 .2rem;
    color: #172033;
}
.managed-security__head p {
    margin: 0;
    color: #667085;
    font-size: .78rem;
}
.managed-security__button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem .7rem;
    border: 0;
    border-radius: 10px;
    background: #edfdf3;
    color: #087443;
    font-weight: 850;
    cursor: pointer;
}
.managed-security__button.is-loading i {
    animation: lccHealthSpin .8s linear infinite;
}
.managed-security__result {
    margin-top: .7rem;
    padding: .7rem .8rem;
    border-radius: 11px;
    background: #f6f8fc;
    color: #475467;
}
.managed-security__result strong,
.managed-security__result span,
.managed-security__result small {
    display: block;
}
.managed-security__result strong { color: #172033; }
.managed-security__result span {
    margin-top: .15rem;
    font-size: .76rem;
}
.managed-security__result small {
    margin-top: .25rem;
    color: #8992a5;
}
.managed-security__result.is-healthy { background:#ecfdf3; color:#087443; }
.managed-security__result.is-warning { background:#fffaeb; color:#8a6100; }
.managed-security__result.is-critical { background:#fff1f0; color:#b42318; }
.managed-security__result ul {
    margin: .55rem 0 0;
    padding-left: 1.15rem;
    font-size: .72rem;
}
@keyframes lccDiskAlertIn {
    from { opacity: 0; transform: translateY(6px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 700px) {
    .global-disk-alert {
        right: 12px;
        bottom: 82px;
    }
    .managed-security__head {
        flex-direction: column;
    }
}


/* ===== V7.5 · Planning modernisé ===== */
.dashboard-tab-panel--planning {
    position: relative;
}
.dashboard-week-navigation {
    position: sticky;
    top: 8px;
    z-index: 12;
    margin-bottom: .9rem;
    padding: .45rem;
    border: 1px solid rgba(220, 226, 239, .9);
    border-radius: 16px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 10px 26px rgba(25, 48, 103, .07);
    backdrop-filter: blur(10px);
}
.dashboard-week-current {
    border-radius: 11px;
    box-shadow: inset 0 0 0 1px rgba(41, 76, 191, .08);
}
.dashboard-planning-filters--full {
    padding: .8rem;
    border: 1px solid #e7ebf3;
    border-radius: 16px;
    background: linear-gradient(145deg, #fbfcff, #f6f8fd);
    box-shadow: 0 8px 20px rgba(28, 48, 94, .045);
}
.dashboard-planning-filters--full input,
.dashboard-planning-filters--full select {
    background: #fff;
    box-shadow: 0 2px 7px rgba(27, 50, 103, .035);
}
.dashboard-planner-summary {
    gap: .5rem;
}
.dashboard-planner-summary > div {
    position: relative;
    overflow: hidden;
    min-width: 120px;
    background: #fff;
    box-shadow: 0 6px 16px rgba(27, 50, 103, .045);
}
.dashboard-planner-summary > div::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(#3154cf, #6d83df);
}
.dashboard-week-grid {
    gap: .8rem;
}
.dashboard-day-column {
    border-color: #e3e8f1;
    border-radius: 19px;
    box-shadow: 0 10px 26px rgba(24, 46, 99, .055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.dashboard-day-column:hover {
    transform: translateY(-2px);
    border-color: #d4dcef;
    box-shadow: 0 16px 34px rgba(24, 46, 99, .09);
}
.dashboard-day-column.is-today {
    position: relative;
    border-color: rgba(49, 84, 207, .5);
    box-shadow: 0 15px 34px rgba(49, 84, 207, .12);
}
.dashboard-day-column.is-today::before {
    content: "Aujourd’hui";
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 3;
    padding: .2rem .42rem;
    border-radius: 999px;
    background: #3154cf;
    color: #fff;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .02em;
}
.dashboard-day-header {
    min-height: 76px;
    padding: .82rem;
    background: linear-gradient(145deg, #fbfcff, #f6f8fd);
}
.dashboard-day-column.is-today .dashboard-day-header {
    background: linear-gradient(145deg, #eef2ff, #f8f9ff);
}
.dashboard-day-events {
    gap: .65rem;
    padding: .65rem;
    background: #fbfcfe;
}
.dashboard-event-card {
    border-radius: 14px;
    box-shadow: 0 4px 12px rgba(25, 48, 103, .035);
}
.dashboard-event-card:hover {
    transform: translateY(-2px) scale(1.008);
    box-shadow: 0 10px 22px rgba(25, 48, 103, .09);
}
.dashboard-event-card.is-individual {
    border-left-width: 4px;
}
.dashboard-event-card.is-collective {
    border-left-width: 4px;
}
.dashboard-event-card__top {
    min-height: 25px;
}
.dashboard-event-card h3 {
    margin: .48rem 0;
    font-size: .86rem;
}
.dashboard-event-actions a {
    min-height: 34px;
    transition: transform .16s ease, background .16s ease;
}
.dashboard-event-actions a:hover {
    transform: translateY(-1px);
    background: #e9edf7;
}
.dashboard-event-actions a:last-child:hover {
    background: #e2e9ff;
}
.dashboard-day-empty {
    min-height: 120px;
    background: repeating-linear-gradient(
        -45deg,
        #fbfcfe,
        #fbfcfe 8px,
        #f8fafe 8px,
        #f8fafe 16px
    );
}
@media (max-width: 1180px) {
    .dashboard-week-navigation {
        position: static;
    }
}
@media (max-width: 700px) {
    .dashboard-planning-filters--full {
        padding: .65rem;
    }
    .dashboard-day-column:hover {
        transform: none;
    }
}

/* ===== V7.5 · Scan rapide global & alertes ===== */
.quick-scan-floating {
    position: fixed;
    right: 22px;
    bottom: 92px;
    z-index: 82;
    display: grid;
    grid-template-columns: auto auto;
    column-gap: .55rem;
    align-items: center;
    padding: .7rem .88rem;
    border: 1px solid rgba(20, 145, 94, .2);
    border-radius: 16px;
    background: rgba(255,255,255,.97);
    color: #087443;
    box-shadow: 0 12px 30px rgba(20, 74, 52, .13);
    backdrop-filter: blur(10px);
    cursor: pointer;
}
.quick-scan-floating > i {
    grid-row: 1 / 3;
    font-size: 1.15rem;
}
.quick-scan-floating span {
    font-size: .77rem;
    font-weight: 900;
}
.quick-scan-floating small {
    font-size: .62rem;
    font-weight: 800;
    color: #667085;
}
.quick-scan-floating.is-healthy { border-color: rgba(8,116,67,.28); }
.quick-scan-floating.is-warning { color: #9a6700; border-color: rgba(154,103,0,.3); }
.quick-scan-floating.is-critical { color: #b42318; border-color: rgba(180,35,24,.35); }
.quick-scan-floating.is-loading i { animation: lccHealthSpin .8s linear infinite; }

.quick-scan-panel {
    position: fixed;
    right: 22px;
    bottom: 162px;
    z-index: 101;
    width: min(390px, calc(100vw - 28px));
    padding: .9rem;
    border: 1px solid #e3e8f1;
    border-radius: 18px;
    background: rgba(255,255,255,.985);
    box-shadow: 0 20px 50px rgba(20, 39, 85, .18);
    backdrop-filter: blur(12px);
    animation: lccDiskAlertIn .2s ease both;
}
.quick-scan-panel[hidden] { display: none !important; }
.quick-scan-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .6rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid #edf0f5;
}
.quick-scan-panel__head small,
.quick-scan-panel__head strong {
    display: block;
}
.quick-scan-panel__head small {
    color: #8891a4;
    font-size: .65rem;
    text-transform: uppercase;
    font-weight: 800;
}
.quick-scan-panel__head strong {
    margin-top: .1rem;
    color: #172033;
}
.quick-scan-panel__head button {
    border: 0;
    background: transparent;
    color: #8490a5;
    font-size: 1.15rem;
    cursor: pointer;
}
.quick-scan-panel__body {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    margin-top: .7rem;
    padding: .75rem;
    border-radius: 13px;
    background: #f6f8fc;
}
.quick-scan-panel__indicator {
    width: 11px;
    height: 11px;
    margin-top: .23rem;
    border-radius: 50%;
    background: #98a2b3;
    box-shadow: 0 0 0 5px rgba(152,162,179,.12);
}
.quick-scan-panel__body.is-healthy .quick-scan-panel__indicator {
    background: #12b76a;
    box-shadow: 0 0 0 5px rgba(18,183,106,.12);
}
.quick-scan-panel__body.is-warning .quick-scan-panel__indicator {
    background: #f79009;
    box-shadow: 0 0 0 5px rgba(247,144,9,.12);
}
.quick-scan-panel__body.is-critical .quick-scan-panel__indicator {
    background: #f04438;
    box-shadow: 0 0 0 5px rgba(240,68,56,.12);
}
.quick-scan-panel__body.is-loading .quick-scan-panel__indicator {
    animation: lccSecurityPulse .8s ease-in-out infinite alternate;
}
.quick-scan-panel__body strong,
.quick-scan-panel__body p,
.quick-scan-panel__body small {
    display: block;
}
.quick-scan-panel__body strong { color: #172033; font-size: .82rem; }
.quick-scan-panel__body p { margin: .15rem 0; color: #667085; font-size: .74rem; line-height: 1.4; }
.quick-scan-panel__body small { color: #8a93a5; font-size: .65rem; }
.quick-scan-panel__action {
    width: 100%;
    min-height: 38px;
    margin-top: .65rem;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(135deg, #087443, #0c9b5a);
    color: #fff;
    font-weight: 850;
    cursor: pointer;
}
.quick-scan-panel__auto {
    display: block;
    margin-top: .45rem;
    color: #8a93a5;
    font-size: .62rem;
    line-height: 1.35;
    text-align: center;
}
.security-status-toast {
    position: fixed;
    right: 22px;
    bottom: 238px;
    z-index: 105;
    width: min(360px, calc(100vw - 28px));
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    padding: .8rem 2.2rem .8rem .8rem;
    border: 1px solid #d6eadf;
    border-radius: 15px;
    background: rgba(244, 253, 248, .985);
    box-shadow: 0 16px 40px rgba(24, 83, 55, .16);
}
.security-status-toast[hidden] { display:none !important; }
.security-status-toast.is-warning { background:#fffaf0; border-color:#f5ddb4; }
.security-status-toast.is-critical { background:#fff4f3; border-color:#f2c6c2; }
.security-status-toast__icon {
    width: 32px;
    height: 32px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#dcfae6;
    color:#087443;
    font-weight:900;
}
.security-status-toast.is-warning .security-status-toast__icon { background:#fff0c7; color:#9a6700; }
.security-status-toast.is-critical .security-status-toast__icon { background:#fee4e2; color:#b42318; }
.security-status-toast strong,
.security-status-toast span { display:block; }
.security-status-toast strong { color:#172033; font-size:.78rem; }
.security-status-toast span { margin-top:.12rem; color:#667085; font-size:.7rem; line-height:1.35; }
.security-status-toast > button {
    position:absolute;
    top:.3rem;
    right:.4rem;
    border:0;
    background:transparent;
    color:#8992a5;
    font-size:1rem;
    cursor:pointer;
}

/* The disk warning now sits above Quick Scan + Infogérance */
.global-disk-alert {
    bottom: 170px;
}

@keyframes lccSecurityPulse {
    from { transform: scale(.8); opacity:.45; }
    to { transform: scale(1.18); opacity:1; }
}
@media (max-width: 700px) {
    .quick-scan-floating { right:12px; bottom:78px; padding:.62rem; }
    .quick-scan-panel { right:12px; bottom:145px; }
    .global-disk-alert { right:12px; bottom:218px; }
    .security-status-toast { right:12px; bottom:292px; }
}


/* ===== V7.6 · Planning compact + détails flottants ===== */
.dashboard-event-card--compact {
    min-height: 138px;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    outline: none;
}
.dashboard-event-card--compact:focus-visible,
.dashboard-event-card--compact.is-popover-open {
    border-color: #3154cf;
    box-shadow: 0 0 0 3px rgba(49, 84, 207, .12), 0 12px 28px rgba(25, 48, 103, .09);
}
.dashboard-event-card--compact h3 {
    display: -webkit-box;
    margin: .48rem 0 .45rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}
.dashboard-event-card__compact-meta {
    display: grid;
    gap: .3rem;
}
.dashboard-event-card__compact-meta span {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: .28rem;
    align-items: center;
    min-width: 0;
    color: #667085;
    font-size: .7rem;
    line-height: 1.25;
}
.dashboard-event-card__compact-meta span i {
    color: #8290b4;
}
.dashboard-event-card__compact-meta span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-event-card__hint {
    display: flex;
    align-items: center;
    gap: .28rem;
    margin-top: auto;
    padding-top: .55rem;
    color: #3154cf;
    font-size: .62rem;
    font-weight: 800;
    opacity: .72;
}
.dashboard-event-card__hint i {
    font-size: .68rem;
}
.dashboard-event-card--compact:hover .dashboard-event-card__hint,
.dashboard-event-card--compact.is-popover-open .dashboard-event-card__hint {
    opacity: 1;
}

.planning-event-popover {
    position: fixed;
    z-index: 220;
    width: min(390px, calc(100vw - 24px));
    max-height: min(590px, calc(100vh - 24px));
    overflow: auto;
    padding: 1rem;
    border: 1px solid rgba(49, 84, 207, .16);
    border-radius: 19px;
    background: rgba(255, 255, 255, .985);
    box-shadow: 0 24px 60px rgba(19, 38, 86, .22);
    backdrop-filter: blur(14px);
    animation: lccPlanningPopoverIn .16s ease both;
}
.planning-event-popover[hidden] {
    display: none !important;
}
.planning-event-popover__close {
    position: absolute;
    top: .45rem;
    right: .5rem;
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #f2f4f8;
    color: #677186;
    font-size: 1.05rem;
    cursor: pointer;
}
.planning-event-popover__content {
    padding-right: 1.4rem;
}
.planning-popover__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
.planning-event-popover h3 {
    margin: .75rem 0;
    color: #172033;
    font-size: 1.02rem;
    line-height: 1.3;
}
.planning-popover__meta {
    display: grid;
    gap: .5rem;
    margin: 0;
}
.planning-popover__meta > div {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: .65rem;
    padding: .52rem .58rem;
    border: 1px solid #edf0f5;
    border-radius: 11px;
    background: #fafbfe;
}
.planning-popover__meta dt {
    color: #7c879b;
    font-size: .7rem;
    font-weight: 800;
}
.planning-popover__meta dt i {
    margin-right: .22rem;
    color: #3154cf;
}
.planning-popover__meta dd {
    margin: 0;
    min-width: 0;
    color: #344054;
    font-size: .74rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.planning-popover__meta dd small {
    display: block;
    margin-top: .13rem;
    color: #8b94a6;
    font-size: .66rem;
    font-weight: 600;
}
.planning-popover__note {
    display: grid;
    gap: .2rem;
    margin-top: .65rem;
    padding: .65rem;
    border: 1px solid #f4e2a7;
    border-radius: 11px;
    background: #fffaf0;
    color: #755614;
}
.planning-popover__note strong {
    font-size: .7rem;
}
.planning-popover__note span {
    font-size: .72rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.planning-popover__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    margin-top: .75rem;
}
.planning-popover__actions a {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border-radius: 10px;
    background: #f1f4f9;
    color: #344054;
    text-decoration: none;
    font-size: .72rem;
    font-weight: 850;
    transition: transform .16s ease, background .16s ease, color .16s ease;
}
.planning-popover__actions a:last-child {
    background: linear-gradient(135deg, #3154cf, #4969dc);
    color: #fff;
}
.planning-popover__actions a:hover {
    transform: translateY(-1px);
}
.planning-popover__actions a:first-child:hover {
    background: #e9edf6;
    color: #213da5;
}
@keyframes lccPlanningPopoverIn {
    from { opacity: 0; transform: translateY(4px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 700px) {
    .dashboard-event-card__hint span {
        font-size: 0;
    }
    .dashboard-event-card__hint span::after {
        content: "Touchez pour les détails";
        font-size: .62rem;
    }
    .planning-event-popover {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        top: auto !important;
        width: auto !important;
        max-height: min(72vh, 620px);
        border-radius: 20px;
    }
}

/* ===== V7.6 · Curseur bleu moderne =====
   Le SVG reste local dans la feuille CSS : aucun fichier distant n'est chargé. */
html,
body,
input,
textarea,
select {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M5 3.5v18.2l4.8-4.5 3.1 7.3 3.1-1.35-3.08-7.2h6.55L5 3.5Z' fill='%233154cf' stroke='white' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") 5 4, auto;
}
a,
button,
[role="button"],
summary,
.dashboard-event-card--compact,
input[type="submit"],
input[type="button"],
input[type="checkbox"],
input[type="radio"],
select {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M8.1 4.8c0-1.25.95-2.3 2.2-2.3s2.25 1.05 2.25 2.3v5.05h.55V6.9c0-1.2.9-2.15 2.08-2.15 1.18 0 2.1.95 2.1 2.15v3.02h.54V8.2c0-1.15.88-2.05 2.02-2.05 1.13 0 2.02.9 2.02 2.05v7.35c0 5.15-3.15 9.05-8.02 9.05h-.55c-2.7 0-4.62-1.1-6.05-3.05L3.8 16.9c-.75-1.05-.55-2.45.45-3.15.9-.65 2.18-.48 2.92.38l.93 1.08V4.8Z' fill='%233154cf' stroke='white' stroke-width='1.65' stroke-linejoin='round'/%3E%3C/svg%3E") 10 3, pointer;
}
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
[contenteditable="true"] {
    cursor: text;
}


/* ===== V7.6.4 · Bulle Planning réellement proche du curseur ===== */
.planning-event-popover {
    pointer-events: auto;
    transform-origin: top left;
}
.dashboard-event-card--compact {
    position: relative;
}
/* Les cartes ne coupent jamais la bulle car celle-ci reste rendue au niveau global/fixed. */
.dashboard-week-grid,
.dashboard-day-column,
.dashboard-day-events {
    isolation: auto;
}
@media (hover: hover) and (pointer: fine) {
    .planning-event-popover {
        animation-duration: .11s;
    }
}


/* ===== V7.6.5 · Planning : popover compact et stable ===== */
.planning-event-popover {
    width: min(318px, calc(100vw - 20px));
    max-height: min(470px, calc(100vh - 20px));
    padding: .78rem;
    border-radius: 15px;
    box-shadow: 0 18px 42px rgba(19, 38, 86, .18);
}
.planning-event-popover__content {
    padding-right: 1.15rem;
}
.planning-event-popover__close {
    top: .36rem;
    right: .4rem;
    width: 25px;
    height: 25px;
    font-size: .95rem;
}
.planning-popover__top {
    gap: .35rem;
}
.planning-event-popover h3 {
    margin: .52rem 0;
    font-size: .9rem;
}
.planning-popover__meta {
    gap: .32rem;
}
.planning-popover__meta > div {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: .42rem;
    padding: .4rem .46rem;
    border-radius: 9px;
}
.planning-popover__meta dt {
    font-size: .64rem;
}
.planning-popover__meta dd {
    font-size: .68rem;
    line-height: 1.3;
}
.planning-popover__meta dd small {
    font-size: .61rem;
}
.planning-popover__note {
    margin-top: .45rem;
    padding: .48rem;
    border-radius: 9px;
}
.planning-popover__note strong,
.planning-popover__note span {
    font-size: .65rem;
}
.planning-popover__actions {
    gap: .38rem;
    margin-top: .55rem;
}
.planning-popover__actions a {
    min-height: 34px;
    border-radius: 9px;
    font-size: .68rem;
}
@media (hover: hover) and (pointer: fine) {
    .planning-event-popover {
        transition: opacity .1s ease, transform .1s ease;
    }
}
@media (max-width: 700px) {
    .planning-event-popover {
        max-height: min(68vh, 520px);
        padding: .8rem;
    }
}


/* ===== V7.6.6 · Popover Planning ancré à la carte ===== */
.dashboard-week-grid,
.dashboard-day-column,
.dashboard-day-events,
.dashboard-event-card--compact {
    overflow: visible !important;
}

.dashboard-event-card--compact {
    position: relative;
    z-index: 1;
}

.dashboard-event-card--compact.is-popover-open {
    z-index: 80;
}

.planning-event-popover {
    position: absolute !important;
    z-index: 500 !important;
    width: min(318px, calc(100vw - 20px));
    max-height: min(470px, calc(100vh - 20px));
    margin: 0;
    pointer-events: auto;
}

/* Petit pont invisible entre la carte et la fiche :
   le curseur peut traverser les 8 px sans provoquer la fermeture. */
.planning-event-popover::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 12px;
}

.planning-event-popover.is-right::before {
    right: 100%;
}

.planning-event-popover.is-left::before {
    left: 100%;
}

@media (hover: hover) and (pointer: fine) {
    .planning-event-popover {
        animation: lccPlanningPopoverIn .10s ease both;
    }
}

/* Sur tactile on conserve le panneau inférieur, indépendant de la carte. */
@media (max-width: 700px) {
    .planning-event-popover {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        top: auto !important;
        width: auto !important;
        max-height: min(68vh, 520px);
    }

    .planning-event-popover::before {
        display: none;
    }
}


/* ===== V7.6.7 · Popover Planning global sans clipping ===== */
.planning-event-popover {
    position: fixed !important;
    z-index: 10000 !important;
    width: min(318px, calc(100vw - 20px));
    max-height: min(470px, calc(100vh - 20px));
    pointer-events: auto;
    overflow: auto;
    isolation: isolate;
}

/* Annule les pseudo-ponts hérités de V7.6.6 qui n'ont plus lieu d'être. */
.planning-event-popover::before {
    display: none !important;
    content: none !important;
}

/* Les colonnes redeviennent normales : le popover n'est plus leur enfant. */
.dashboard-week-grid,
.dashboard-day-column,
.dashboard-day-events {
    overflow: visible;
}

/* Sur mobile : panneau inférieur. */
@media (max-width: 700px) {
    .planning-event-popover {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        top: auto !important;
        width: auto !important;
        max-height: min(68vh, 520px);
    }
}


/* ===== V7.6.8 · Traversée fiable carte -> fiche ===== */
.planning-event-popover {
    width: min(310px, calc(100vw - 20px));
    z-index: 12000 !important;
}

.planning-event-popover.is-pointer-inside {
    box-shadow: 0 22px 50px rgba(19, 38, 86, .24);
}

/* La carte active reste visuellement identifiable pendant la traversée. */
.dashboard-event-card--compact.is-popover-open {
    box-shadow: 0 0 0 3px rgba(49, 84, 207, .14), 0 12px 28px rgba(25, 48, 103, .10);
}


/* ===== V7.6.9 · Planning compact + inspecteur statique ===== */

/* Grille plus propre : chaque jour garde une largeur minimale cohérente. */
.dashboard-week-grid {
    align-items: start;
    column-gap: .55rem;
}

.dashboard-day-column {
    min-width: 0;
}

.dashboard-day-events {
    display: grid;
    gap: .48rem;
    align-content: start;
}

/* Cartes compactes et de hauteur cohérente. */
.dashboard-event-card--compact {
    min-height: 116px !important;
    max-height: 116px;
    padding: .72rem .72rem .62rem !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
    border-radius: 14px;
}

.dashboard-event-card--compact .dashboard-event-card__top {
    gap: .35rem;
    min-width: 0;
}

.dashboard-event-card--compact .dashboard-type-badge,
.dashboard-event-card--compact .dashboard-time-pill {
    flex: 0 0 auto;
    white-space: nowrap;
}

.dashboard-event-card--compact h3 {
    margin: .42rem 0 .34rem !important;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block !important;
    font-size: .82rem;
    line-height: 1.2;
}

.dashboard-event-card__compact-meta {
    gap: .22rem !important;
}

.dashboard-event-card__compact-meta span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .66rem !important;
}

.dashboard-event-card__hint {
    margin-top: auto;
    padding-top: .35rem !important;
    font-size: .6rem !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* La fiche n'est plus une bulle mobile : c'est un inspecteur fixe. */
.planning-event-popover {
    position: fixed !important;
    z-index: 12000 !important;
    width: 330px;
    max-height: calc(100vh - 136px);
    overflow: auto;
    border-radius: 16px;
    box-shadow: 0 22px 58px rgba(19, 38, 86, .22);
    backdrop-filter: blur(14px);
}

.planning-event-popover.is-pinned {
    box-shadow: 0 24px 64px rgba(19, 38, 86, .28);
    border-color: rgba(49, 84, 207, .32);
}

.planning-event-popover.is-pinned::after {
    content: "Épinglé";
    position: absolute;
    top: .48rem;
    right: 2.45rem;
    padding: .18rem .42rem;
    border-radius: 999px;
    background: rgba(49, 84, 207, .10);
    color: #3154cf;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .02em;
}

/* Les informations détaillées restent dans l'inspecteur, pas dans les cartes. */
.planning-popover__meta > div {
    grid-template-columns: 92px minmax(0, 1fr) !important;
}

@media (max-width: 1100px) {
    .dashboard-event-card--compact {
        min-height: 108px !important;
        max-height: 108px;
    }
}

@media (max-width: 900px) {
    .planning-event-popover {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        top: auto !important;
        width: auto !important;
        max-height: min(64vh, 560px);
    }
}


/* ===== V7.7.0 · Planning plein écran stable ===== */

.dashboard-fullscreen-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .65rem .9rem;
    border: 1px solid rgba(49, 84, 207, .2);
    border-radius: 12px;
    background: #eef2ff;
    color: #2947b4;
    font: inherit;
    font-size: .76rem;
    font-weight: 850;
    cursor: pointer;
    transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}

.dashboard-fullscreen-button:hover {
    transform: translateY(-1px);
    background: #e5ebff;
    box-shadow: 0 8px 20px rgba(49, 84, 207, .12);
}

.dashboard-planner-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    padding: .15rem .1rem .8rem;
    scrollbar-gutter: stable;
}

.dashboard-week-grid {
    min-width: 1420px;
    grid-template-columns: repeat(7, minmax(190px, 1fr)) !important;
    gap: .55rem !important;
    align-items: start;
}

.dashboard-day-column {
    min-width: 190px !important;
}

.dashboard-day-events {
    display: grid !important;
    grid-auto-rows: 108px;
    gap: .48rem !important;
    align-content: start;
}

.dashboard-event-card--compact {
    width: 100%;
    min-width: 0;
    height: 108px !important;
    min-height: 108px !important;
    max-height: 108px !important;
    box-sizing: border-box;
    overflow: hidden !important;
    padding: .62rem .66rem .52rem !important;
}

.dashboard-event-card--compact .dashboard-event-card__top {
    min-width: 0;
}

.dashboard-event-card--compact .dashboard-type-badge {
    max-width: 54%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-event-card--compact .dashboard-time-pill {
    margin-left: auto;
    font-size: .64rem;
    white-space: nowrap;
}

.dashboard-event-card--compact h3 {
    margin: .34rem 0 .28rem !important;
    display: block !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .77rem;
    line-height: 1.2;
}

.dashboard-event-card__compact-meta span {
    font-size: .62rem !important;
    line-height: 1.2 !important;
}

.dashboard-event-card__hint {
    padding-top: .25rem !important;
    font-size: .56rem !important;
}

/* Plein écran : on sort le planning du flux sans modifier l'architecture métier. */
.dashboard-tab-panel--planning.is-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 11000 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 18px 378px 20px 20px !important;
    overflow-y: auto !important;
    background: #f7f8fc;
    box-sizing: border-box;
}

body.planning-fullscreen-open {
    overflow: hidden !important;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-head {
    position: sticky;
    top: -18px;
    z-index: 25;
    margin: -18px -8px 10px;
    padding: 18px 8px 12px;
    background: rgba(247, 248, 252, .96);
    backdrop-filter: blur(14px);
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-week-navigation,
.dashboard-tab-panel--planning.is-fullscreen .dashboard-planning-filters,
.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-summary {
    position: relative;
    z-index: 10;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-scroll {
    width: 100%;
    max-width: none;
    overflow: auto;
    padding-bottom: 1rem;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-week-grid {
    min-width: 1540px;
    grid-template-columns: repeat(7, minmax(205px, 1fr)) !important;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-day-column {
    min-width: 205px !important;
}

/* Inspecteur statique : aucune fenêtre ne se balade au-dessus de la grille. */
.dashboard-tab-panel--planning.is-fullscreen ~ .planning-event-popover,
.planning-event-popover {
    max-height: calc(100vh - 104px);
}

.planning-event-popover.is-pinned::after {
    content: "Sélection";
}

/* En plein écran l'inspecteur occupe sa zone droite réservée. */
body.planning-fullscreen-open .planning-event-popover {
    top: 86px !important;
    right: 18px !important;
    bottom: 18px !important;
    left: auto !important;
    width: 340px !important;
    max-height: none !important;
}

/* Tablette/mobile : pas de plein écran rigide, le panneau d'info reste inférieur. */
@media (max-width: 900px) {
    .dashboard-fullscreen-button {
        display: none;
    }

    .dashboard-week-grid {
        min-width: 1120px;
        grid-template-columns: repeat(7, minmax(150px, 1fr)) !important;
    }

    .dashboard-day-column {
        min-width: 150px !important;
    }

    .dashboard-event-card--compact {
        height: 102px !important;
        min-height: 102px !important;
        max-height: 102px !important;
    }
}


/* ===== V7.7.1 · Planning plein écran + panneau latéral stable ===== */

/* Mode normal : le panneau appartient au planning et ne flotte plus en haut à droite de la page. */
.dashboard-tab-panel--planning {
    position: relative;
}

.dashboard-tab-panel--planning .planning-event-popover {
    position: sticky !important;
    top: 16px !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 1rem 0 0 !important;
    overflow: visible !important;
    z-index: 15 !important;
    box-shadow: 0 16px 36px rgba(19, 38, 86, .12);
    border-radius: 16px;
}

/* Sur desktop normal, la fiche devient un bandeau de détails sous le planning.
   Elle ne masque donc plus les filtres ou les cartes. */
.dashboard-tab-panel--planning:not(.is-fullscreen) .planning-event-popover {
    position: relative !important;
    top: auto !important;
    margin-top: .85rem !important;
}

/* En plein écran le planning occupe vraiment tout le viewport. */
.dashboard-tab-panel--planning.is-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 11000 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 18px !important;
    box-sizing: border-box;
    overflow: hidden !important;
    background: #f7f8fc;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 340px;
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    column-gap: 18px;
    row-gap: 10px;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-head,
.dashboard-tab-panel--planning.is-fullscreen .dashboard-week-navigation,
.dashboard-tab-panel--planning.is-fullscreen .dashboard-planning-filters,
.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-summary {
    grid-column: 1 / 2;
    margin: 0 !important;
    position: static !important;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-head {
    grid-row: 1;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-week-navigation {
    grid-row: 2;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planning-filters {
    grid-row: 3;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-summary {
    grid-row: 4;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-scroll {
    grid-column: 1 / 2;
    grid-row: 5;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: auto !important;
    padding: .15rem .1rem .8rem;
}

.dashboard-tab-panel--planning.is-fullscreen .dashboard-week-grid {
    min-width: 1440px !important;
    grid-template-columns: repeat(7, minmax(190px, 1fr)) !important;
    gap: .55rem !important;
}

/* Panneau latéral : superposé à rien, il possède sa propre colonne dédiée. */
.dashboard-tab-panel--planning.is-fullscreen .planning-event-popover {
    grid-column: 2 / 3;
    grid-row: 1 / 6;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    align-self: stretch;
    width: 340px !important;
    max-width: 340px !important;
    height: 100%;
    max-height: 100% !important;
    margin: 0 !important;
    overflow-y: auto !important;
    z-index: 20 !important;
    box-shadow: 0 18px 44px rgba(19, 38, 86, .16);
}

/* Si aucun détail n'est ouvert, le planning récupère toute la largeur. */
.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) {
    grid-template-columns: minmax(0, 1fr);
}

.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) .dashboard-planner-head,
.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) .dashboard-week-navigation,
.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) .dashboard-planning-filters,
.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) .dashboard-planner-summary,
.dashboard-tab-panel--planning.is-fullscreen:not(.has-inspector-open) .dashboard-planner-scroll {
    grid-column: 1 / 2;
}

/* Cartes plus compactes et lisibles. */
.dashboard-event-card--compact {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
    padding: .58rem .62rem .48rem !important;
}

.dashboard-day-events {
    grid-auto-rows: 104px !important;
}

.dashboard-event-card--compact h3 {
    font-size: .75rem !important;
    margin: .3rem 0 .24rem !important;
}

.dashboard-event-card__compact-meta span {
    font-size: .6rem !important;
}

.dashboard-event-card__hint {
    font-size: .54rem !important;
    padding-top: .18rem !important;
}

/* Le panneau reste simple et entièrement cliquable. */
.planning-event-popover[hidden] {
    display: none !important;
}

.planning-event-popover__content {
    min-width: 0;
}

body.planning-fullscreen-open {
    overflow: hidden !important;
}

/* Mobile / tablette : panneau inférieur, plein écran désactivé par le bouton caché. */
@media (max-width: 900px) {
    .dashboard-tab-panel--planning .planning-event-popover,
    .dashboard-tab-panel--planning.is-fullscreen .planning-event-popover {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        max-height: min(64vh, 560px) !important;
        overflow-y: auto !important;
        z-index: 12000 !important;
    }
}


/* ===== V7.7.2 · Popover curseur en mode normal + inspecteur fullscreen ===== */

/* En mode normal, la fiche repasse au-dessus du planning, près du curseur. */
.planning-event-popover.is-normal-popover {
    position: fixed !important;
    z-index: 12000 !important;
    width: min(320px, calc(100vw - 20px)) !important;
    max-width: 320px !important;
    max-height: min(470px, calc(100vh - 20px)) !important;
    overflow-y: auto !important;
    margin: 0 !important;
    border-radius: 16px;
    box-shadow: 0 20px 48px rgba(19, 38, 86, .22);
    pointer-events: auto;
}

/* En plein écran, on conserve un inspecteur fixe à droite. */
.planning-event-popover.is-fullscreen-inspector {
    position: fixed !important;
    z-index: 12000 !important;
    width: 340px !important;
    max-width: 340px !important;
    max-height: none !important;
    overflow-y: auto !important;
    margin: 0 !important;
    border-radius: 16px;
    box-shadow: 0 20px 48px rgba(19, 38, 86, .22);
    pointer-events: auto;
}

/* Neutralise les règles antérieures qui forçaient le panneau dans la zone du planning. */
.dashboard-tab-panel--planning:not(.is-fullscreen) .planning-event-popover,
.dashboard-tab-panel--planning .planning-event-popover {
    position: fixed !important;
}

.planning-event-popover[hidden] {
    display: none !important;
}

.dashboard-event-card--compact.is-popover-open {
    box-shadow: 0 0 0 2px rgba(49, 84, 207, .16), 0 10px 24px rgba(25, 48, 103, .08);
}

/* Petit délai visuel de fermeture plus doux */
.planning-event-popover {
    transition: opacity .1s ease, box-shadow .1s ease;
}

/* Mobile/tablette : panneau inférieur, inchangé. */
@media (max-width: 900px) {
    .planning-event-popover.is-normal-popover,
    .planning-event-popover.is-fullscreen-inspector {
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(64vh, 560px) !important;
    }
}


/* ===== V7.7.3 · Vrai plein écran centré ===== */

/* Le planning porté directement dans body doit ignorer toutes les contraintes
   du conteneur principal de l'application. */
body > .dashboard-tab-panel--planning.is-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding: 18px !important;
    transform: none !important;
    translate: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    z-index: 11000 !important;
    background: #f7f8fc !important;
}

/* Annule le layout 2 colonnes hérité des versions précédentes :
   l'inspecteur est désormais un overlay séparé, donc le planning utilise
   réellement toute la largeur de l'écran. */
body > .dashboard-tab-panel--planning.is-fullscreen {
    display: block !important;
}

body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-head,
body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-week-navigation,
body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planning-filters,
body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-summary {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative !important;
    grid-column: auto !important;
    grid-row: auto !important;
}

body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-head {
    padding: 0 0 10px !important;
    margin-top: 0 !important;
    background: transparent !important;
}

body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-scroll {
    width: 100% !important;
    max-width: none !important;
    height: calc(100vh - 285px) !important;
    min-height: 360px !important;
    overflow: auto !important;
    margin: .7rem auto 0 !important;
    padding: 0 0 1rem !important;
    grid-column: auto !important;
    grid-row: auto !important;
}

/* La semaine est centrée dans la zone disponible.
   Si l'écran est trop étroit, le scroll horizontal prend le relais. */
body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-week-grid {
    width: max(100%, 1460px) !important;
    min-width: 1460px !important;
    max-width: none !important;
    margin: 0 auto !important;
    grid-template-columns: repeat(7, minmax(195px, 1fr)) !important;
}

/* L'inspecteur fullscreen reste indépendant et n'influence jamais le centrage. */
body.planning-fullscreen-open > .planning-event-popover.is-fullscreen-inspector {
    position: fixed !important;
    top: 82px !important;
    right: 18px !important;
    bottom: 18px !important;
    left: auto !important;
    width: 340px !important;
    max-width: 340px !important;
    z-index: 12000 !important;
}

/* Le bouton reste visible et aligné normalement. */
body > .dashboard-tab-panel--planning.is-fullscreen .dashboard-planner-actions {
    position: relative !important;
    right: auto !important;
    left: auto !important;
    transform: none !important;
}

body.planning-fullscreen-open {
    overflow: hidden !important;
}


/* ===== V7.8.0 · Correctifs fonctionnels retours utilisateurs ===== */

.cards-container > a,
.cards-container .card {
    min-height: 148px !important;
    height: 148px !important;
}
.dashboard-card-label {
    font-size: .82rem !important;
    line-height: 1 !important;
    margin-top: .25rem !important;
}

.filter-multiselect {
    position: relative;
    min-width: 170px;
}
.filter-multiselect > summary {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .55rem .75rem;
    border: 1px solid #c8cfdf;
    border-radius: 10px;
    background: #fff;
    color: #172033;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 650;
    list-style: none;
    user-select: none;
}
.filter-multiselect > summary::-webkit-details-marker {
    display: none;
}
.filter-multiselect > summary::after {
    content: "⌄";
    margin-left: .6rem;
    color: #3154cf;
    font-weight: 900;
}
.filter-multiselect[open] > summary {
    border-color: #3154cf;
    box-shadow: 0 0 0 3px rgba(49,84,207,.10);
}
.filter-multiselect__menu {
    position: absolute;
    z-index: 500;
    top: calc(100% + 5px);
    left: 0;
    width: max(100%, 230px);
    max-height: 280px;
    overflow: auto;
    padding: .45rem;
    border: 1px solid #d8deec;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(24,42,88,.16);
}
.filter-multiselect__menu label {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .45rem .5rem;
    border-radius: 8px;
    font-size: .74rem;
    cursor: pointer;
}
.filter-multiselect__menu label:hover {
    background: #f3f6ff;
}
.filter-multiselect__menu input[type="checkbox"] {
    margin-top: .12rem;
    accent-color: #3154cf;
}

.lcc-list-filter-form {
    display: flex !important;
    gap: .5rem !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}
.date-filter-label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 42px;
    padding: 0 .55rem;
    border: 1px solid #c8cfdf;
    border-radius: 10px;
    background: #fff;
    font-size: .7rem;
    font-weight: 700;
}
.date-filter-label input {
    border: 0 !important;
    min-height: 34px !important;
    padding: .2rem !important;
}
.export-list-button {
    min-height: 42px;
    display: inline-flex !important;
    align-items: center;
    gap: .4rem;
    white-space: nowrap;
}

.rdv-detail-table tbody tr:nth-child(odd) th,
.rdv-detail-table tbody tr:nth-child(odd) td {
    background: #eef4ff !important;
}
.rdv-detail-table tbody tr:nth-child(even) th,
.rdv-detail-table tbody tr:nth-child(even) td {
    background: #ffffff !important;
}

.profile-history-table-wrap {
    overflow-x: auto;
}
.profile-history-table th,
.profile-history-table td {
    white-space: nowrap;
}
.profile-history-table tbody tr:nth-child(odd) td {
    background: #f5f8ff;
}

.oncogite-date-display {
    display: block;
    margin-top: .35rem;
    color: #ffffff !important;
    font-weight: 800;
    text-shadow: 0 1px 2px rgba(0,0,0,.28);
}

.followup-note-edit {
    margin-top: .55rem;
    border-top: 1px solid rgba(49,84,207,.12);
    padding-top: .45rem;
}
.followup-note-edit summary {
    cursor: pointer;
    color: #3154cf;
    font-weight: 800;
}

@media (max-width: 900px) {
    .filter-multiselect {
        min-width: min(100%, 220px);
    }
    .filter-multiselect__menu {
        position: fixed;
        left: 12px;
        right: 12px;
        top: auto;
        width: auto;
        max-height: 45vh;
    }
}
