.devis-page {
    background: #f4f7fb;
    color: #172033;
}

.pc-only { 
    display: block !important; 
}
.mobile-only { 
    display: none !important; 
}

/* ==========================================================================
   HERO SECTION (DESKTOP)
   ========================================================================== */
.devis-hero {
    padding: 90px 120px 30px;
    background: transparent;
}

.devis-hero-label {
    margin: 0 0 18px;
    display: inline-block;
    font-size: .85rem;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: #0f4bb7;
    font-weight: bold;
}

.devis-hero h1 {
    margin: 0;
    font-size: 3.8rem;
    line-height: 1.02;
    color: #101828;
}

.devis-hero h1 span {
    display: block;
    margin-top: 14px;
    color: #0056b3;
}

.devis-hero-text {
    margin: 28px 0 0;
    max-width: 780px;
    font-size: 1.05rem;
    line-height: 1.9;
    color: #475569;
}

/* ==========================================================================
   FORM CONTAINER
   ========================================================================== */
.devis-form-section {
    padding: 60px 120px 120px;
}

.devis-form-card {
    max-width: 1240px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 32px;
    box-shadow: 0 30px 80px rgba(15,38,95,0.12);
    padding: 60px 80px;
}

/* Sur PC, les sections s'empilent */
.form-step {
    display: block;
    margin-bottom: 80px;
    padding-bottom: 60px;
    border-bottom: 1px solid #ebedf4;
}

.form-step:last-of-type {
    border-bottom: none;
    margin-bottom: 0;
}

.form-step h2 {
    margin: 0 0 24px;
    font-size: 2.2rem;
    color: #0f326d;
}

.form-step h2 span {
    color: #0056b3;
}

/* ==========================================================================
   Éléments du formulaire
   ========================================================================== */
.form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    margin-bottom: 30px;
    row-gap:24px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.form-group.full {
    grid-column: 1 / -1;
}

label {
    font-size: .95rem;
    font-weight: 700;
    color: #3c4c67;
}

input, textarea {
    border: 1px solid #d7dce7;
    border-radius: 10px;
    padding: 18px 0px 18px 20px;
    font-size: 1rem;
    color: #172033;
    background: #f8f9fb;
    outline: none;
    transition: all 0.3s ease;
}

input:focus, textarea:focus {
    border-color: #0f4bb7;
    box-shadow: 0 0 0 4px rgba(15,75,183,0.12);
}

textarea {
    min-height: 180px;
    resize: vertical;
}


.upload-box {
    position: relative;
    min-height: 320px;
    border: 2px dashed #d7dce7;
    border-radius: 32px;
    background: #f8f9fb;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 32px 24px;
    gap: 18px;
    overflow: hidden;
}

.upload-icon {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    background: #e8f2ff;
    color: #0f4bb7;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
}


.upload-button {
    border: none;
    border-radius: 999px;
    background: #0f4bb7;
    color: #ffffff;
    padding: 14px 34px;
    cursor: pointer;
    font-weight: 700;
    transition: background 0.3s;
}

.upload-box input[type="file"] {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-box.drag-over {
    border-color: #0f4bb7;
    background: #eef4ff;
}

.upload-restrictions {
    text-align: center;
    font-weight: bold;
    font-style: italic;
    color: #64748b;
    margin: 12px 0;
    font-size: 0.9rem;
}

.upload-files-preview {
    margin-top: 20px;
    text-align: left;
}

.upload-files-preview p {
    margin: 0 0 10px;
    font-weight: 700;
    color: #0f326d;
}

.upload-files-preview ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.upload-files-preview li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f8f9fb;
    border: 1px solid #d7dce7;
    border-radius: 20px;
    color: #172033;
    font-size: 0.95rem;
}

.upload-files-preview .file-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: calc(100% - 120px);
}

.upload-files-preview .file-size {
    color: #64748b;
    white-space: nowrap;
    font-size: 0.85rem;
}

.upload-files-preview .file-remove {
    border: none;
    background: transparent;
    color: #0f4bb7;
    font-weight: 700;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 14px;
    transition: background 0.2s;
}

.upload-files-preview .file-remove:hover {
    background: rgba(15, 75, 183, 0.1);
}

.upload-files-total {
    margin-top: 16px;
    font-weight: 700;
    color: #0f326d;
}

.upload-files-error {
    margin-top: 14px;
    color: #b91c1c;
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 16px;
    padding: 12px 16px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.confirm-modal-overlay {
    position: fixed;
    inset: 0;
    display: none;
    justify-content: center;
    align-items: center;
    background: rgba(15, 23, 42, 0.5);
    z-index: 998;
    padding: 20px;
}

.confirm-modal-overlay.visible {
    display: flex;
}

.confirm-modal {
    width: min(480px, 100%);
    background: #ffffff;
    border-radius: 24px;
    padding: 30px 24px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.18);
    text-align: center;
}

.confirm-modal h3 {
    margin: 0 0 14px;
    font-size: 1.35rem;
    color: #0f326d;
}

.confirm-modal p {
    margin: 0 0 24px;
    color: #475569;
    line-height: 1.6;
}

.confirm-modal-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-modal-cancel,
.btn-modal-confirm {
    min-width: 120px;
    border: none;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 700;
    cursor: pointer;
}

.btn-modal-cancel {
    background: #f1f5f9;
    color: #334155;
}

.btn-modal-confirm {
    background: #0f4bb7;
    color: #ffffff;
}

.btn-modal-cancel:hover {
    background: #e2e8f0;
}

.btn-modal-confirm:hover {
    background: #0b3f96;
}

.error-modal-overlay {
    position: fixed;
    inset: 0;
    display: none;
    justify-content: center;
    align-items: center;
    background: rgba(175, 227, 247, 0.25);
    z-index: 998;
    padding: 20px;
}

.error-modal-overlay.visible {
    display: flex;
}

.error-modal {
    width: min(480px, 100%);
    background: #ffffff;
    border-radius: 24px;
    padding: 30px 24px;
    box-shadow: 0 20px 50px rgba(245, 158, 11, 0.25);
    text-align: center;
    border: 2px solid rgb(96, 209, 254);
}

.error-modal h3 {
    margin: 0 0 14px;
    font-size: 1.35rem;
    color: #d97706;
}

.error-modal p {
    margin: 0 0 24px;
    color: #374151;
    line-height: 1.6;
}

.error-modal-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-modal-ok {
    min-width: 120px;
    border: none;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 700;
    cursor: pointer;
    background: #f59e0b;
    color: #ffffff;
}

.btn-modal-ok:hover {
    background: #d97706;
}

.elegant-calencar {
    width: 100%;
    max-width: 25em;
    border: 1px solid #c9c9c9;
    box-shadow: 0 0 5px #c9c9c9;
    text-align: center;
    margin: 50px auto;
    position: relative;
    background: #fff;
}

#calendar-header-box {
    height: 14em;
    background-color: #0f4bb7;
    margin-bottom: 1em;
    color: #fff;
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 2.5em;
}

.pre-button, .next-button {
    position: absolute;
    top: 1.5em;
    font-size: 3em;
    cursor: pointer;
    width: 1em;
    height: 1em;
    line-height: 1em;
    color: #fff;
    transition: transform 0.5s;
}

.pre-button { 
    left: 0.5em; 
}
.next-button { 
    right: 0.5em; 
}

.head-info { 
    margin: 0; 
    width: auto; 
}
.head-day { 
    margin: 0; 
    font-size: 8em; 
    line-height: 1; 
}
.head-month { 
    margin: 0; 
    margin-top: 0.25em; 
    font-size: 2em; 
    line-height: 1; 
}

#calendar { 
    width: 90%; 
    margin: 0 auto; 
    border-spacing: 2px; 
}
thead tr { 
    color: #0f4bb7; 
    font-weight: 700; 
    text-transform: uppercase; 
}
tbody td {
    width: 14%;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease-in;
    padding: 10px 0;
}

tbody td:hover, .selected { 
    color: #fff; 
    background-color: #0f4bb7; 
}
#today { 
    background-color: #e66b6b; 
    color: #fff; 
    border-radius: 50%; 
}
#disabled { 
    color: #c9c9c9; 
    cursor: default; 
}


.devis-submit, .btn-next {
    width: fit-content;
    border: none;
    border-radius: 999px;
    background: #0f4bb7;
    color: #ffffff;
    padding: 18px 40px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(15, 75, 183, 0.2);
}

.devis-submit:hover, .btn-next:hover {
    background: #0b3f96;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(15, 75, 183, 0.3);
}

.devis-submit:active, .btn-next:active {
    transform: translateY(0);
}

.btn-back {
    background: transparent;
    color: #64748b;
    border: none;
    font-weight: 600;
    cursor: pointer;
    padding: 10px 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
}

.btn-back:hover { color: #0f4bb7; }


.recap-box {
    background: #f8f9fb;
    border: 1px solid #ebedf4;
    border-radius: 24px;
    padding: 32px;
    margin-bottom: 30px;
}

.recap-content p {
    margin: 12px 0;
    padding-bottom: 12px;
    border-bottom: 1px solid #ebedf4;
    color: #263555;
}

.recap-content p:last-child { border-bottom: none; }


@media (max-width: 900px) {
    .pc-only { 
        display: none !important;
    }
    .mobile-only {
        display: block !important; 
    }

    .devis-hero { 
        display: none; 
    }

    .devis-form-section {
        padding: 20px 15px 60px;
    }

    .devis-form-card {
        padding: 20px 20px 20px 0px;
        box-shadow: none;
        background: transparent;
    }


    .form-step {
        display: none;
        border-bottom: none;
        padding-bottom: 0;
        margin-bottom: 0;
    }

    .form-step.active {
        display: flex;
        flex-direction: column;
        animation: fadeIn 0.4s ease forwards;
    }

    .form-step h2 {
        font-size: 1.8rem;
        text-align: center;
        margin-bottom: 32px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 20px;
    }




    .progress-bar {
        height: 6px;
        background: #e2e8f0;
        border-radius: 10px;
        margin-bottom: 10px;
        overflow: hidden;
    }

    .progress-fill {
        height: 100%;
        background: #0f4bb7;
        width: 16.66%;
        transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* --- Barre de progression (pour Mobile) --- */
    .stepper-container {
        padding: 30px 20px 10px; 
    }

    .progress-bar {
        height: 6px;
        background: #e2e8f0;
        border-radius: 10px;
        margin-bottom: 12px; 
        overflow: hidden;
    }

    .step-label {
        text-align: right;
        font-weight: 700;
        color: #0f4bb7;
        font-size: 0.85rem;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin: 0; 
    }

    .nav-btns {
        margin-top: 40px;
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .btn-next, .devis-submit {
        width: 100%;
        padding: 20px;
    }

    .elegant-calencar {
        font-size: 0.7rem; 
    }

    .pre-button, .next-button {
        font-size: 2em;
    }
}

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

/* ==========================================================================
   STYLE DE LA PAGE DE CONFIRMATION
   ========================================================================== */
.confirmation-page {
    background: #f4f7fb;
    color: #172033;
    min-height: 100vh;
}

.confirmation-hero {
    padding: 90px 120px 30px;
    background: transparent;
    text-align: center;
}

.confirmation-hero h1 {
    margin: 0;
    font-size: 3.8rem;
    line-height: 1.02;
    color: #101828;
}

.confirmation-hero h1 span {
    display: block;
    margin-top: 14px;
    color: #0056b3;
}

.confirmation-hero-text {
    margin: 28px 0 0;
    max-width: 780px;
    font-size: 1.05rem;
    line-height: 1.9;
    color: #475569;
}

.confirmation-redirect {
    margin-top: 20px;
    color: #64748b;
    font-style: italic;
}

.confirmation-section {
    padding: 60px 120px 120px;
}

.confirmation-card {
    max-width: 800px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 32px;
    box-shadow: 0 30px 80px rgba(15,38,95,0.12);
    padding: 60px 80px;
    text-align: center;
}

.confirmation-content h2 {
    margin: 20px 0;
    font-size: 2.2rem;
    color: #0f326d;
}

.confirmation-content p {
    margin: 20px 0;
    font-size: 1.1rem;
    line-height: 1.6;
    color: #475569;
}

.success-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #10b981;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 20px;
}

.error-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #ef4444;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 20px;
}

.btn-retry {
    display: inline-block;
    margin-top: 30px;
    padding: 14px 34px;
    background: #0f4bb7;
    color: #ffffff;
    text-decoration: none;
    border-radius: 999px;
    font-weight: 700;
    transition: background 0.3s;
}

.btn-retry:hover {
    background: #0b3f96;
}

@media (max-width: 900px) {
    .confirmation-hero { display: none; }

    .confirmation-section {
        padding: 20px 15px 60px;
    }

    .confirmation-card {
        padding: 30px 20px;
        box-shadow: none;
        background: transparent;
    }

    .confirmation-content h2 {
        font-size: 1.8rem;
    }
}



.input-unit-group {
    display: flex;
    align-items: stretch;
    border: none;
    border-radius: 4px;
    overflow: hidden;
}

.input-unit-group input {
    flex: 1;
    border-radius:10px 0 0 10px;
}

.unit-selector {
    background: #f4f4f4;
    border: 1px solid #D8DCE6;
    border-left:none;
    border-radius:0 20% 20% 0;
    padding: 0 8px;
    cursor: pointer;
    font-size: 0.9em;
}


.sending-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,75,183,0.15);
    backdrop-filter:blur(4px);
    z-index:998;
    align-items:center;
    justify-content:center;
}

.sending-overlay.visible{
    display:flex;
}

.sending-card{
    background:#fff;
    border-radius:18px;
    padding:40px 48px;
    text-align:center;
    box-shadow:0 8px 40px rgba(15,75,183,0.18);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;

}

.sending-spinner{
    width:52px;
    height:52px;
    border: 5px solid #e2e8f0;
    border-top-color:#0f4bb7;
    border-radius:50%;
    animation:spin 0.85s linear infinite;
}

@keyframes spin{
    to{ 
        transform: rotate(360deg);
    }
}

.sending-title{
    font-size:20px;
    font-weight:7000;
    color:#0f4bb7;
    margin:0
}

.sending-subtitle{
    font-size:14px;
    color:#64748b;
    margin:0
}












/* compteur redirect */
.redirect-countdown {
  margin-top: 12px;
  font-size: 14px;
  color: #64748b;
}

.redirect-countdown strong {
  color: #0f4bb7;
}

.captcha-modal-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0, 0, 0, 0.5);
    z-index:998;
    align-items:center;
    justify-content:center;
}

.captcha-modal-overlay.visible{
    display:flex;

}

.captcha-modal{
    background:#ffffff;
    border-radius:16px;
    padding:36px 32px;
    max-width:400px;
    width:90%;
    text-align:center;
    box-shadow:0 8px 40px rgba(0, 0, 0, 0.18);
}

.captcha-modal h3{
    margin:0 0 8px;
    font-size:1.2rem;
    color:#1f2937;
}

.captcha-modal > p{
    color:#64748b;
    margin: 0 0 20px;
    font-size: 0.95rem;
}

.captcha-question{
    display:inline-block;
    background:#f1f5fd;
    border:2px solid #0f4bb7;
    border-radius:12px;
    padding:14px 28px;
    font-size: 1.6rem;
    font-weight:700;
    color:#0f4bb7;
    letter-spacing:2px;
    margin-bottom:20px;
}

.captcha-modal input[type="number"]{
    width:100%;
    padding:12px 16px;
    border:1.5px solid #e2e8f0;
    border-radius:8px;
    font-size:1.1rem;
    text-align:center;
    outline:none;
    box-sizing:border-box;
    transition:border-color 0.2s;
}

.captcha-modal input[type="number"]:focus{
    border-color: #0f4bb7;

}

.captcha-error{
    color:#e53e3e;
    font-size:0.88rem;
    min-height:20px;
    margin:6px 0 0;
}

.captcha-modal-actions{
    display:flex;
    gap:12px;
    justify-content:center;
    margin-top:20px;
}

.captcha-modal-actions button{
    padding:11px 26px;
    border-radius:8px;
    border:none;
    cursor:pointer;
    font-size:0.95rem;
    font-weight:600;
    transition: opacity 0.2s;

}

.usinage-savoir-plus{
    font-size:0.75rem;
    font-weight:700;
    color:rgb(76, 77, 86)
}

#cancel-captcha{    
    background:#e2e8f0;
    color:#1f2937;
}

#cancel-captcha:hover{
    opacity:0.8;

}

.btn-captcha-confirm{
    background:#0f4bb7;
    color:#ffffff;
}

.btn-captcha-confirm:hover{
    opacity:0.88;
}


.matiere-modal-overlay {
  display: none; 
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 1000;
  align-items: center; 
  justify-content: center;
}
.matiere-modal-overlay.visible { display: flex; }
.matiere-modal {
  background: #fff; 
  border-radius: 12px;
  padding: 28px; 
  max-width: 420px; 
  width: 90%;
  text-align: center;
}
.matiere-modal-actions {
  display: flex; gap: 12px; 
  margin-top: 20px; 
  justify-content: center;
}
.matiere-modal-actions button {
  padding: 10px 18px; 
  border-radius: 8px;
  border: 2px solid #0f4bb7; 
  cursor: pointer;
  background: #fff; 
  color: #0f4bb7; 
  font-weight: 600;
}
.btn-matiere-highlight {
  background: #0f4bb7 !important; 
  color: #fff !important;
}



.procece-form {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fdfdfd;
}



#calendar td.weekend {
  color: #7a8ba0;
  cursor: not-allowed;
  pointer-events: none;
}



/* ── INFOBULLES DIMENSIONS ──────────────────────────────── */
.tooltip-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    vertical-align: middle;
}

.tooltip-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #d7dce7;
    color: #3c4c67;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: default;
    line-height: 1;
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s;
}

.tooltip-wrap:hover .tooltip-icon {
    background: #0f4bb7;
    color: #ffffff;
}

.tooltip-bubble {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: #1e293b;
    color: #f8fafc;
    font-size: 0.82rem;
    font-weight: 400;
    line-height: 1.5;
    white-space: nowrap;
    padding: 7px 12px;
    border-radius: 8px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.18s ease;
    z-index: 10;
}


/* petite flèche vers le bas */
.tooltip-bubble::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1e293b;
}

.tooltip-wrap:hover .tooltip-bubble {
    opacity: 1;
}


.tooltip-holder{
    display:flex;
}

































/* ==========================================================================
   CALENDRIER COMPACT ET HARMONISÉ
   ========================================================================== */
.elegant-calencar {
    width: 100%;
    max-width: 20em; /* Réduit de 25em à 20em */
    border: 1px solid #ebedf4;
    border-radius: 24px; /* Harmonisé avec vos modales et cartes */
    box-shadow: 0 10px 30px rgba(15, 38, 95, 0.05); /* Ombre plus douce */
    text-align: center;
    margin: 20px auto;
    position: relative;
    background: #fff;
    overflow: hidden; /* Pour que l'en-tête suive l'arrondi du bloc */
}

#calendar-header-box {
    height: 5.5em; /* Réduit drastiquement de 14em à 5.5em */
    background-color: #0f4bb7;
    color: #fff;
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 1.5em;
}

.pre-button, .next-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); /* Centrage vertical parfait */
    font-size: 1.6em; /* Plus discret que le 3em d'origine */
    cursor: pointer;
    width: 1.2em;
    height: 1.2em;
    line-height: 1.1em;
    color: #fff;
    transition: all 0.2s ease;
    opacity: 0.8;
}

.pre-button:hover, .next-button:hover {
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
}

.pre-button { 
    left: 0.75em; 
}
.next-button { 
    right: 0.75em; 
}

.head-info { 
    margin: 0; 
    width: auto; 
    display: flex;
    flex-direction: row-reverse; /* Aligne le jour après le mois si besoin, ou combiné */
    align-items: center;
    gap: 6px;
}

.head-day { 
    margin: 0; 
    font-size: 1.3rem; /* Réduit de 8em à une taille standard de titre */
    font-weight: 700;
}

.head-month { 
    margin: 0; 
    font-size: 1.1rem; /* Ajusté de 2em à 1.1rem */
    line-height: 1; 
    font-weight: 600;
    text-transform: capitalize;
}

#calendar { 
    width: 92%; 
    margin: 0 auto 15px; 
    border-spacing: 0px; 
}

thead tr { 
    color: #0f4bb7; 
    font-weight: 700; 
    text-transform: uppercase; 
    font-size: 0.8rem;
}

thead th {
    padding: 10px 0;
}

tbody td {
    width: 14%;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 8px 0; /* Un poil plus serré */
    font-size: 0.9rem;
    color: #334155;
}

tbody td:hover, .selected { 
    color: #fff !important; 
    background-color: #0f4bb7 !important; 
}

#today { 
    background-color: #fee2e2; 
    color: #ef4444; 
    font-weight: 700;
    border-radius: 50%; 
}

#disabled { 
    color: #cbd5e1; 
    cursor: default; 
}

/* Ajustement pour la version mobile déjà présente dans vos media queries */
@media (max-width: 900px) {
    .elegant-calencar {
        font-size: 0.85rem; /* Un peu moins minuscule que le 0.7rem qui devenait illisible */
    }
}