.dash-top{
    display:grid !important;
    grid-template-columns:minmax(360px,1.75fr) repeat(4,minmax(130px,1fr)) !important;
    gap:12px !important;
    margin-top:24px !important;
}

.dash-hero-card,
.dash-stat,
.dash-card{
    background:#fff;
    border:1px solid #dcecf4;
    border-radius:20px;
    box-shadow:0 10px 28px rgba(7,29,99,.055);
}
.dash-border {
    border:1px solid #0297b6;
}

.dash-hero-card{
    min-height:178px;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    overflow:hidden;
}

.dash-hero-text{
    display:flex;
    align-items:center;
    padding:28px 30px;
}

.dash-hero-text p{
    margin:0;
    font-family:'Segoe Script','Brush Script MT',cursive;
    font-size:31px;
    line-height:1.12;
    color:#0099a8;
}



.dash-stat{
    min-height:170px;
    padding:14px 10px;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.dash-stat-icon{
    width:58px;
    height:58px;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:25px;
    margin-bottom:8px;
}

.dash-stat-icon.teal{background:#def8fb}
.dash-stat-icon.yellow{background:#fff2cd}
.dash-stat-icon.purple{background:#f0e9ff}

.dash-stat strong{
    display:block;
    color:#0087a1;
    font-size:42px;
    line-height:1;
    margin-bottom:8px;
}

.dash-stat em{
    color:#061f66;
    font-style:normal;
    font-size:15px;
    line-height:1.15;
    font-weight:900;
}

.dash-stat small{
    color:#0057a8;
    font-size:13px;
    margin-top:12px;
    font-weight:900;
}

.dash-middle{
    display:grid;
    grid-template-columns:1.28fr 1fr;
    gap:18px;
    margin-top:18px;
}

.dash-card{
    padding:22px;
}

.dash-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:16px;
}

.dash-card-head h2,
.dash-card h2{
    margin:0;
    color:#061f66;
    font-size:20px;
    line-height:1.15;
}

.dash-event{
    display:grid;
    grid-template-columns:86px 1fr 76px;
    gap:18px;
    align-items:center;
    min-height:106px;
    padding:15px 16px;
    border:1px solid #deedf4;
    border-radius:18px;
    margin-bottom:12px;
}

.dash-date{
    text-align:center;
    border-right:1px solid #e3eef5;
    padding-right:14px;
    color:#0087a1;
    font-weight:900;
}

.dash-date span,
.dash-date small{
    display:block;
    color:#007fbd;
    font-size:13px;
    text-transform:uppercase;
}

.dash-date strong{
    display:block;
    color:#0087a1;
    font-size:34px;
    line-height:1;
}

.dash-event-main h3{
    margin:0 0 5px;
    color:#061f66;
    font-size:16px;
}

.dash-event-main p{
    margin:0 0 8px;
    color:#092e7b;
    font-weight:700;
    font-size:14px;
}

.dash-meta{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    color:#587092;
    font-size:13px;
    font-weight:700;
}

.dash-badge,
.dash-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#dff7f7;
    color:#008a96;
    font-weight:900;
    padding:7px 12px;
    font-size:12px;
}

.dash-button{
    display:inline-flex;
    text-decoration:none;
    color:#061f66;
    border:1px solid #dcecf4;
    border-radius:14px;
    padding:12px 18px;
    font-weight:900;
}

.dash-calendar-box{
    border:1px solid #e2eef5;
    border-radius:18px;
    padding:18px;
}

.dash-calendar-title{
    text-align:center;
    color:#0099a8;
    font-weight:900;
    margin-bottom:18px;
}

.dash-week,
.dash-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:6px;
    text-align:center;
}

.dash-week span{
    color:#587092;
    font-weight:900;
    font-size:12px;
}

.dash-days span{
    padding:9px 0;
    border-radius:50%;
    font-weight:800;
    color:#061f66;
    font-size:14px;
}

.dash-days span.active{
    color:white;
    background:#0099a8;
    box-shadow:0 8px 16px rgba(0,153,168,.25);
}

.dash-link{
    display:inline-flex;
    margin-top:16px;
    color:#0057a8;
    font-weight:900;
    text-decoration:none;
}

.dash-bottom{
    display:grid;
    grid-template-columns:1fr 1fr 1.25fr;
    gap:18px;
    margin-top:18px;    
}

.dash-small-card{
    min-height:176px;
    border:1px solid #053572;
}

.dash-simple{
    border:1px solid #cccccc;
    border-radius:16px;
    padding:14px;
    margin-top:14px;
}

.dash-simple strong{
    color:#061f66;
}

.dash-simple p,
.dash-help p{
    color:#587092;
    margin:8px 0 0;
}

.dash-advisor{
    display:flex;
    align-items:center;
    gap:14px;
    margin:18px 0;
}

.dash-avatar{
    width:58px;
    height:58px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#0099a8,#20b5bf);
    color:white;
    font-weight:900;
    font-size:24px;
}

.dash-advisor strong{
    color:#061f66;
    display:block;
}

.dash-advisor span{
    color:#587092;
    display:block;
    margin-top:4px;
}

.dash-contact{
    width:260px;
    max-width:100%;
    display:inline-flex;
    justify-content:center;
    background:#0099a8;
    color:white;
    text-decoration:none;
    border-radius:10px;
    padding:12px 16px;
    font-weight:900;
}

@media(max-width:1200px){
    .dash-top,
    .dash-middle,
    .dash-bottom{
        grid-template-columns:1fr;
    }

    .dash-event{
        grid-template-columns:1fr;
    }

    .dash-date{
        border-right:0;
        border-bottom:1px solid #e3eef5;
        padding:0 0 12px;
    }
}



.dash-top{
    grid-template-columns:minmax(330px,1.55fr) repeat(4,minmax(112px,.85fr)) !important;
    gap:10px !important;
}

.dash-hero-card{
    min-height:150px !important;
}

.dash-hero-text{
    padding:20px 22px !important;
}

.dash-hero-text p{
    font-size:22px !important;
}

.dash-stat{
    min-height:150px !important;
    padding:12px 8px !important;
}

.dash-stat-icon{
    width:46px !important;
    height:46px !important;
    font-size:20px !important;
    margin-bottom:6px !important;
}

.dash-stat strong{
    font-size:32px !important;
    margin-bottom:5px !important;
}

.dash-stat em{
    font-size:12px !important;
    line-height:1.1 !important;
}

.dash-stat small{
    font-size:11px !important;
    margin-top:9px !important;
}
.dash-stat-icon svg{
    width:24px;
    height:24px;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.dash-stat-icon.teal{
    color:#0099a8;
}

.dash-stat-icon.yellow{
    color:#f2a900;
}

.dash-stat-icon.purple{
    color:#7654a9;
}

.section-icon{
    width:32px;
    height:32px;
    border-radius:10px;
    background:#e7fafd;
    color:#0099a8;
    display:inline-grid;
    place-items:center;
    margin-right:8px;
    vertical-align:middle;
}

.section-icon svg{
    width:18px;
    height:18px;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.dash-card-head h2{
    display:flex;
    align-items:center;
}
.section-icon.yellow{
    background:#fff6d9;
    color:#f2a900;
}

.section-icon.purple{
    background:#f2edff;
    color:#7654a9;
}

.section-icon.teal{
    background:#e7fafd;
    color:#0099a8;
}

.dash-bottom h2{
    display:flex;
    align-items:center;
}
.dash-meta span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.dash-meta svg{
    width:15px;
    height:15px;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}



@media(max-width:520px){

    .dash-top{
        grid-template-columns:1fr !important;
    }

    .dash-stat{
        min-height:auto !important;
        flex-direction:row;
        justify-content:flex-start;
        text-align:left;
        gap:14px;
        padding:14px !important;
    }

    .dash-stat-icon{
        margin-bottom:0 !important;
    }

    .dash-stat strong{
        margin:0 !important;
        min-width:34px;
    }

    .dash-event{
        grid-template-columns:1fr !important;
    }

    .dash-date{
        border-right:0;
        border-bottom:1px solid #e3eef5;
        padding:0 0 12px;
    }

    .dash-badge{
        grid-column:auto;
    }
}

.dash-help{
    padding:20px !important;
}

.dash-help-title{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:16px;
}

.dash-help-title h2{
    margin:0;
    color:#061f66;
    font-size:20px;
}

.dash-help-title p{
    margin:6px 0 0;
    color:#587092;
    font-weight:700;
    font-size:14px;
}

.dash-help-panel{
    display:grid;
    grid-template-columns:72px 1fr auto;
    gap:16px;
    align-items:center;
    padding:16px;
    border:1px solid #deedf4;
    border:1px solid #cccccc;
    border-radius:18px;
    background:#fff;
}

.dash-help-photo{
    width:72px;
    height:72px;
    border-radius:50%;
    object-fit:cover;
    box-shadow:0 8px 18px rgba(7,29,99,.12);
}

.dash-help-person strong{
    display:block;
    color:#061f66;
    font-size:16px;
    font-weight:900;
}

.dash-help-person span{
    display:block;
    margin-top:5px;
    color:#587092;
    font-size:14px;
    font-weight:700;
}

.dash-help-contact{
    display:grid;
    gap:10px;
    color:#0057a8;
    font-weight:900;
    font-size:14px;
}

.dash-help-contact span{
    display:flex;
    align-items:center;
    gap:9px;
    white-space:nowrap;
}

.dash-help-contact svg{
    width:20px;
    height:20px;
    stroke:#0099a8;
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.dash-help-button{
    margin-top:14px;
    width:260px;
    max-width:100%;
    height:44px;
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    background:#0099a8;
    color:white;
    text-decoration:none;
    font-weight:900;
    box-shadow:0 12px 22px rgba(0,153,168,.22);
}

.dash-help-button span{
    font-size:20px;
    line-height:1;
}

@media(max-width:800px){
    .dash-help-panel{
        grid-template-columns:72px 1fr;
    }

    .dash-help-contact{
        grid-column:1 / -1;
    }
}

.dash{
    margin:0;
    padding:24px 44px 28px;
    min-height:calc(100vh - 92px);
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(180deg,rgba(246,249,252,.72),rgba(246,249,252,.88)),
        url('/assets/img/bg-mobilite.webp') left top/cover no-repeat;
}

.dash::before{
    display:none;
}

.dash > *{
    position:relative;
    z-index:1;
}


.dash{
    margin:0 !important;
    padding:0 !important;
    min-height:calc(100vh - 92px);
    background:
        
        url('/assets/img/bg-mobilite.webp') left top/cover no-repeat !important;
}


.dash-top,
.dash-middle,
.dash-bottom{
    margin-left:44px !important;
    margin-right:44px !important;
}

.dash-top{
    padding-top:24px !important;
}

.dash-bottom{
    padding-bottom:28px !important;
}
@media(max-width:900px){
    .dash{
        padding:0 !important;
        background:
            linear-gradient(180deg,rgba(246,249,252,.78),rgba(246,249,252,.92)),
            url('/assets/img/bg-mobilite.webp') left top/cover no-repeat !important;
    }

    .dash-top,
    .dash-middle,
    .dash-bottom{
        margin-left:16px !important;
        margin-right:16px !important;
    }

    .dash-top{
        padding-top:16px !important;
    }
}

.dash-help{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(180deg,
            rgba(255,255,255,.96) 0%,
            rgba(255,255,255,.86) 38%,
            rgba(255,255,255,.45) 68%,
            rgba(255,255,255,.12) 100%
        ),
        url('/assets/img/bg-contact.webp') center bottom/100% auto no-repeat !important;
}

.dash-help > *{
    position:relative;
    z-index:1;
}
.dash-days span.rdv{
    color:white;
    background:#0099a8;
    box-shadow:0 8px 16px rgba(0,153,168,.25);
}

.dash-days span.atelier{
    color:#d48100;
    background:#fff0d2;
}

.dash-days span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    margin:auto;
    border-radius:50%;
    font-weight:800;
    color:#061f66;
    font-size:14px;
}

.dash-days span.rdv{
    color:#fff;
    background:#0099a8;
    box-shadow:0 8px 16px rgba(0,153,168,.25);
}

.dash-days span.atelier{
    color:#d28a00;
    background:#fff1d8;
}

.dash-days span.rdv.atelier{
    color:#fff;
    background:
        conic-gradient(
            #0099a8 0deg 180deg,
            #f2a900 180deg 360deg
        );
    box-shadow:0 8px 16px rgba(0,153,168,.18);
}
.dash-calendar-legend{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:12px;
    color:#061f66;
    font-size:12px;
    font-weight:800;
}

.dash-calendar-legend span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.dash-calendar-legend i{
    width:12px;
    height:12px;
    border-radius:50%;
    display:block;
}

.legend-rdv{
    background:#0099a8;
}

.legend-atelier{
    background:#f2a900;
}
.dash-calendar-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:14px;
}

.dash-calendar-footer .dash-calendar-legend{
    margin-top:0;
}

.dash-calendar-footer .dash-link{
    margin-top:0;
}

.dash-hero-image{
    position:relative;
    overflow:hidden;
    min-height:150px;
}

.dash-hero-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.dash-hero-image::before{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(0,153,168,.08));
    z-index:1;
    pointer-events:none;
}
.dash-stat{
    transition:.18s ease;
}

.dash-stat:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 28px rgba(7,29,99,.10);
    border-color:#0099a8;
}
.sidebar-nav a{
    opacity:.88;
    transition:.15s ease;
}

.sidebar-nav a:hover{
    opacity:1;
    background:rgba(255,255,255,.06);
}



/* Contrastes plus premium */
.dash-appointments{
    background:#f3f9ff !important;
    background: linear-gradient(135deg,#eaeaea,#ffffff);
}

.dash-card,
.dash-stat,
.dash-hero-card{
    border-color:#cfe5ee !important;
}

.dash-event,
.dash-calendar-box,
.dash-simple,
.dash-help-panel{
    background:rgba(255,255,255,.92) !important;
}

/* Micro-interactions */
.dash-stat,
.dash-card,
.dash-event,
.dash-button,
.dash-help-button,
.dash-link{
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}

.dash-stat:hover,
.dash-card:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 38px rgba(7,29,99,.10);
}

.dash-stat:hover{
    border-color:#0099a8 !important;
}

.dash-event:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 24px rgba(7,29,99,.08);
    border-color:#0099a8 !important;
}

.dash-button:hover,
.dash-help-button:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 26px rgba(0,153,168,.24);
}

.dash-link:hover{
    transform:translateX(3px);
    color:#0099a8;
}

/* Animation d’arrivée */
.dash-hero-card,
.dash-stat,
.dash-card{
    animation:dashFadeUp .42s ease both;
}

.dash-stat:nth-of-type(2){animation-delay:.04s;}
.dash-stat:nth-of-type(3){animation-delay:.08s;}
.dash-stat:nth-of-type(4){animation-delay:.12s;}
.dash-stat:nth-of-type(5){animation-delay:.16s;}

.dash-middle .dash-card:nth-child(1){animation-delay:.12s;}
.dash-middle .dash-card:nth-child(2){animation-delay:.18s;}
.dash-bottom .dash-card:nth-child(1){animation-delay:.20s;}
.dash-bottom .dash-card:nth-child(2){animation-delay:.24s;}
.dash-bottom .dash-card:nth-child(3){animation-delay:.28s;}

@keyframes dashFadeUp{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* Accessibilité : réduire les animations si demandé par le navigateur */
@media (prefers-reduced-motion: reduce){
    .dash-hero-card,
    .dash-stat,
    .dash-card,
    .dash-event,
    .dash-button,
    .dash-help-button,
    .dash-link{
        animation:none !important;
        transition:none !important;
    }
}

.dash-help-contact {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.dash-help-contact span {
    display: flex;
    align-items: center;
    gap: 10px;

    min-width: 0;
    max-width: 100%;

    color: var(--navy);
    font-weight: 900;
    font-size: 14px;
    line-height: 1.2;

    overflow-wrap: anywhere;
    word-break: break-word;
}

.dash-help-contact svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;

    stroke: var(--teal);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   Optimisation mobile tableau de bord
   ========================================================= */
@media (max-width: 900px) {
    .dash {
        min-height: auto !important;
        padding-bottom: 86px !important;
        overflow: visible !important;
    }

    .dash-top,
    .dash-middle,
    .dash-bottom {
        margin-left: 12px !important;
        margin-right: 12px !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .dash-top {
        padding-top: 14px !important;
    }

    .dash-hero-card {
        grid-template-columns: 1fr !important;
        min-height: auto !important;
    }

    .dash-hero-text {
        padding: 20px !important;
    }

    .dash-hero-text::after {
        display: none !important;
    }

    .dash-hero-text p {
        font-size: 24px !important;
        line-height: 1.18 !important;
    }

    .dash-hero-image {
        min-height: 150px !important;
    }

    .dash-stat {
        min-height: auto !important;
        display: grid !important;
        grid-template-columns: 48px 1fr auto;
        gap: 12px;
        text-align: left !important;
        align-items: center !important;
        justify-content: stretch !important;
        padding: 14px !important;
    }

    .dash-stat-icon {
        width: 48px !important;
        height: 48px !important;
        margin: 0 !important;
    }

    .dash-stat strong {
        font-size: 30px !important;
        margin: 0 !important;
        min-width: 34px;
        text-align: right;
    }

    .dash-stat em,
    .dash-stat small {
        grid-column: 2 / 3;
        margin: 0 !important;
    }

    .dash-stat small {
        font-size: 11px !important;
    }

    .dash-card {
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .dash-card-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .dash-event {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        min-height: auto !important;
        padding: 14px !important;
        border-radius: 16px !important;
    }

    .dash-date {
        border-right: 0 !important;
        border-bottom: 1px solid #e3eef5;
        padding: 0 0 10px !important;
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .dash-date strong {
        font-size: 28px !important;
    }

    .dash-meta {
        flex-direction: column;
        gap: 7px;
    }

    .dash-badge,
    .dash-pill {
        width: fit-content;
    }

    .dash-calendar-box {
        padding: 14px !important;
    }

    .dash-days span {
        width: 34px !important;
        height: 34px !important;
        font-size: 12px !important;
    }

    .dash-calendar-footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .dash-calendar-legend {
        flex-wrap: wrap;
        gap: 10px !important;
    }

    .dash-help-panel {
        grid-template-columns: 58px 1fr !important;
        padding: 14px !important;
    }

    .dash-help-photo {
        width: 58px !important;
        height: 58px !important;
    }

    .dash-help-contact {
        grid-column: 1 / -1;
    }

    .dash-help-button,
    .dash-contact {
        width: 100% !important;
    }
}
