.ndd-song-page{
    max-width:1050px;
    margin:40px auto;
    padding:0 18px;
}
.ndd-song-box{
    max-width:900px;
    margin:28px auto;
    padding:28px;
    border-radius:24px;
    background:#111827;
    color:#fff;
    box-shadow:0 20px 50px rgba(0,0,0,.22);
}
.ndd-song-box h1,
.ndd-song-box h2{
    margin-top:0;
    color:#fff;
}
.ndd-song-box p{
    color:#e5e7eb;
}
.ndd-song-form label{
    display:block;
    margin:14px 0 8px;
    font-weight:700;
    color:#fff;
}
.ndd-song-form input,
.ndd-song-form select,
.ndd-song-form textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
    padding:13px 14px;
    background:#1f2937;
    color:#fff;
    outline:none;
    font-size:16px;
}
.ndd-song-form input,
.ndd-song-form select{
    min-height:58px;
    line-height:1.25;
    padding-right:46px;
}
.ndd-song-form select{
    appearance:none;
    -webkit-appearance:none;
    background-image:linear-gradient(45deg,transparent 50%,#d1d5db 50%),linear-gradient(135deg,#d1d5db 50%,transparent 50%);
    background-position:calc(100% - 22px) calc(50% - 3px),calc(100% - 16px) calc(50% - 3px);
    background-size:6px 6px,6px 6px;
    background-repeat:no-repeat;
}
.ndd-song-form input:focus,
.ndd-song-form select:focus,
.ndd-song-form textarea:focus{
    border-color:#f59e0b;
    box-shadow:0 0 0 3px rgba(245,158,11,.25);
}

/* Empêche le navigateur (autofill Chrome/Android notamment) de forcer un fond
   blanc sur les champs proposés en auto-remplissage (nom, email, téléphone...) */
.ndd-song-form input:-webkit-autofill,
.ndd-song-form input:-webkit-autofill:hover,
.ndd-song-form input:-webkit-autofill:focus,
.ndd-song-form input:-webkit-autofill:active,
.ndd-song-form select:-webkit-autofill,
.ndd-song-form select:-webkit-autofill:focus,
.ndd-song-form textarea:-webkit-autofill,
.ndd-song-form textarea:-webkit-autofill:focus{
    -webkit-box-shadow:0 0 0 1000px #1f2937 inset !important;
    box-shadow:0 0 0 1000px #1f2937 inset !important;
    -webkit-text-fill-color:#fff !important;
    caret-color:#fff;
    transition:background-color 9999s ease-in-out 0s;
}
.ndd-song-box,
.ndd-song-form{
    color-scheme:dark;
}

.ndd-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    align-items:start;
}
.ndd-grid>label{
    display:flex;
    flex-direction:column;
    min-width:0;
}

/* Formules */
.ndd-plans{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin:10px 0 22px;
}
.ndd-plan{
    position:relative;
    display:grid!important;
    grid-template-columns:20px 1fr;
    column-gap:12px;
    align-items:center;
    min-height:96px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:18px;
    padding:18px!important;
    margin:0!important;
    background:#1f2937;
    cursor:pointer;
}
.ndd-plan input[type="radio"]{
    grid-row:1 / span 2;
    grid-column:1;
    width:16px!important;
    min-height:16px!important;
    height:16px!important;
    margin:0!important;
    padding:0!important;
    accent-color:#f59e0b;
    position:relative!important;
    left:auto!important;
    top:auto!important;
    opacity:1!important;
    appearance:auto!important;
    -webkit-appearance:auto!important;
}
.ndd-plan strong{
    grid-column:2;
    display:block;
    color:#fff;
    line-height:1.25;
}
.ndd-plan span{
    grid-column:2;
    display:block;
    margin-top:7px;
    color:#fbbf24;
    font-weight:800;
}

/* Case IA */
.ndd-checkbox{
    display:grid!important;
    grid-template-columns:20px 1fr;
    gap:12px;
    align-items:start;
    margin:18px 0!important;
    font-weight:700!important;
}
.ndd-checkbox input[type="checkbox"]{
    width:16px!important;
    min-height:16px!important;
    height:16px!important;
    margin:3px 0 0 0!important;
    padding:0!important;
    accent-color:#f59e0b;
    position:relative!important;
    left:auto!important;
    top:auto!important;
    opacity:1!important;
    appearance:auto!important;
    -webkit-appearance:auto!important;
}
.ndd-checkbox span{
    line-height:1.45;
    color:#fff;
}

.ndd-button{
    display:inline-block;
    border:0;
    border-radius:999px;
    padding:13px 22px;
    background:#f59e0b;
    color:#111827!important;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
    transition:.2s;
}
.ndd-button:hover{
    transform:translateY(-1px);
    filter:brightness(1.05);
}
.ndd-payments{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin:22px 0;
}

.ndd-tariff-grid{
    margin:26px 0 28px;
    padding:18px 16px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:16px;
    background:#1f2937;
}
.ndd-tariff-grid h3{
    margin:0 0 10px;
    color:#fff;
}
.ndd-tariff-grid > p.ndd-small-note{
    margin:0 0 14px;
}
.ndd-tariff-currency-picker{
    display:block;
    font-weight:600;
    color:#e5e7eb;
    font-size:14px;
    margin-bottom:14px;
}
.ndd-tariff-currency-picker select{
    display:block;
    width:100%;
    margin-top:6px;
    padding:10px 12px;
    border-radius:10px;
    border:1px solid rgba(255,255,255,.2);
    background:#111827;
    color:#fff;
    font-size:14px;
}
.ndd-tariff-table{
    width:100%;
    margin-top:6px;
    border-collapse:collapse;
}
.ndd-tariff-table tr{
    border-top:1px solid rgba(255,255,255,.1);
}
.ndd-tariff-table th,
.ndd-tariff-table td{
    text-align:left;
    padding:14px 6px;
    vertical-align:top;
}
.ndd-tariff-table th{
    color:#fff;
    font-weight:700;
    font-size:15px;
    line-height:1.35;
}
.ndd-tariff-table th .ndd-tariff-desc{
    display:block;
    color:#9ca3af;
    font-weight:400;
    font-size:13px;
    line-height:1.45;
    margin-top:6px;
}
.ndd-tariff-table td{
    color:#fbbf24;
    font-weight:700;
    font-size:15px;
    white-space:nowrap;
    text-align:right;
    padding-left:14px;
}

.ndd-paypal{background:#ffc439;color:#111!important}
.ndd-status{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    border:1px solid rgba(255,255,255,.14);
    border-radius:16px;
    padding:14px;
    margin:12px 0;
    background:#1f2937;
}
.ndd-status span{color:#d1d5db}
.ndd-status strong{color:#fbbf24}

.ndd-timeline{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:4px;
    margin:20px 0 8px;
    padding:16px 8px;
    background:#1f2937;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.14);
}
.ndd-timeline-step{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    position:relative;
}
.ndd-timeline-step:not(:last-child)::after{
    content:"";
    position:absolute;
    top:7px;
    left:calc(50% + 14px);
    right:calc(-50% + 14px);
    height:2px;
    background:rgba(255,255,255,.18);
}
.ndd-timeline-step.is-done:not(:last-child)::after{
    background:#22c55e;
}
.ndd-timeline-dot{
    width:16px;
    height:16px;
    border-radius:50%;
    background:rgba(255,255,255,.18);
    margin-bottom:8px;
    z-index:1;
}
.ndd-timeline-step.is-done .ndd-timeline-dot{background:#22c55e}
.ndd-timeline-step.is-current .ndd-timeline-dot{background:#fbbf24;box-shadow:0 0 0 4px rgba(251,191,36,.25)}
.ndd-timeline-label{
    font-size:12px;
    color:#d1d5db;
}
.ndd-timeline-step.is-current .ndd-timeline-label{color:#fbbf24;font-weight:700}
.ndd-timeline-step.is-done .ndd-timeline-label{color:#bbf7d0}

.ndd-cancelled{
    background:#7f1d1d!important;
}

.ndd-recap{
    margin:16px 0;
    border:1px solid rgba(255,255,255,.14);
    border-radius:14px;
    padding:12px 16px;
    background:#1f2937;
}
.ndd-recap summary{
    cursor:pointer;
    color:#fbbf24;
    font-weight:700;
}
.ndd-recap-table{
    width:100%;
    margin-top:10px;
    border-collapse:collapse;
}
.ndd-recap-table th,
.ndd-recap-table td{
    text-align:left;
    padding:6px 8px;
    border-top:1px solid rgba(255,255,255,.1);
    color:#e5e7eb;
    font-size:14px;
}
.ndd-recap-table th{
    color:#d1d5db;
    font-weight:600;
    width:40%;
}

.ndd-client-message{
    border-left:4px solid #f59e0b;
    background:#1f2937;
    border-radius:12px;
    padding:14px;
    margin:18px 0;
    color:#fff;
}
.ndd-free,
.ndd-success p{
    color:#bbf7d0!important;
}
.ndd-alert{
    padding:12px;
    border-radius:12px;
    background:#7c2d12;
    color:#fff!important;
}
.ndd-song-box audio{
    width:100%;
    margin:12px 0;
}
.ndd-error{
    background:#7f1d1d!important;
}
.ndd-small-note{
    font-size:14px;
    opacity:.9;
}
.ndd-button:disabled,
.ndd-loading{
    opacity:.65;
    cursor:wait;
    transform:none!important;
}

@media(max-width:720px){
    .ndd-grid,
    .ndd-plans{
        grid-template-columns:1fr;
    }
    .ndd-timeline{
        flex-direction:column;
        align-items:stretch;
        gap:14px;
    }
    .ndd-timeline-step{
        flex-direction:row;
        text-align:left;
        gap:10px;
    }
    .ndd-timeline-step:not(:last-child)::after{
        display:none;
    }
    .ndd-timeline-dot{margin-bottom:0}
    .ndd-tariff-grid{
        padding:16px 14px;
    }
    .ndd-tariff-table th,
    .ndd-tariff-table td{
        padding:12px 4px;
    }
    .ndd-tariff-table td{
        font-size:14px;
        padding-left:8px;
    }
    .ndd-song-box{
        padding:20px;
        border-radius:18px;
    }
    .ndd-plan{
        min-height:auto;
    }
}


/* v1.0.5 - amélioration visuelle des cartes de formule */
.ndd-plans{
    gap:18px;
    margin:12px 0 24px;
}
.ndd-plan{
    position:relative;
    overflow:hidden;
    grid-template-columns:18px 1fr;
    align-items:start;
    column-gap:14px;
    min-height:118px;
    padding:20px 20px 18px!important;
    border:1px solid rgba(255,255,255,.12);
    border-radius:22px;
    background:linear-gradient(180deg, rgba(255,255,255,.045) 0%, rgba(255,255,255,.025) 100%), #1f2937;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 10px 24px rgba(0,0,0,.18);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.ndd-plan:hover{
    transform:translateY(-2px);
    border-color:rgba(245,158,11,.45);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 14px 30px rgba(0,0,0,.22);
}
.ndd-plan::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at top right, rgba(245,158,11,.14), transparent 34%);
    opacity:.9;
    pointer-events:none;
}
.ndd-plan::after{
    content:"Choisie";
    position:absolute;
    top:14px;
    right:14px;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.02em;
    color:#111827;
    background:#f59e0b;
    box-shadow:0 8px 18px rgba(245,158,11,.28);
    opacity:0;
    transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease;
}
.ndd-plan input[type="radio"]{
    margin-top:4px!important;
    accent-color:#f59e0b;
}
.ndd-plan strong,
.ndd-plan span{
    position:relative;
    z-index:1;
}
.ndd-plan strong{
    font-size:18px;
    font-weight:800;
    line-height:1.35;
    padding-right:86px;
}
.ndd-plan span{
    margin-top:10px;
    width:max-content;
    max-width:100%;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(245,158,11,.14);
    border:1px solid rgba(245,158,11,.2);
    color:#fbbf24;
    font-size:15px;
    font-weight:800;
}
.ndd-plan.is-selected,
.ndd-plan:has(input[type="radio"]:checked){
    border-color:rgba(245,158,11,.9);
    background:linear-gradient(180deg, rgba(245,158,11,.12) 0%, rgba(255,255,255,.03) 100%), #1f2937;
    box-shadow:0 0 0 3px rgba(245,158,11,.13), 0 18px 34px rgba(0,0,0,.26);
}
.ndd-plan.is-selected::after,
.ndd-plan:has(input[type="radio"]:checked)::after{
    opacity:1;
    transform:translateY(0);
}
@media(max-width:720px){
    .ndd-plan{
        min-height:102px;
        padding:18px 16px!important;
        border-radius:18px;
    }
    .ndd-plan strong{
        font-size:16px;
        padding-right:74px;
    }
    .ndd-plan span{
        font-size:14px;
    }
}


/* v1.0.6 - première ligne plus aérée */
.ndd-grid.ndd-grid-contact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    margin-top:24px;
    margin-bottom:18px;
}
.ndd-grid.ndd-grid-contact label{
    min-width:0;
}
.ndd-grid.ndd-grid-contact input,
.ndd-grid.ndd-grid-contact select{
    min-height:62px;
}
@media(max-width:820px){
    .ndd-grid.ndd-grid-contact{
        grid-template-columns:1fr!important;
    }
}


/* v1.0.7 - consentement publication */
.ndd-publish-consent{
    background:rgba(245,158,11,.08);
    border:1px solid rgba(245,158,11,.2);
    border-radius:16px;
    padding:14px!important;
}
.ndd-publish-consent span{
    color:#fef3c7!important;
}


/* v1.0.8 - code de réduction */
.ndd-coupon-box{
    margin:18px 0 22px;
    padding:18px;
    border:1px dashed rgba(245,158,11,.35);
    border-radius:18px;
    background:rgba(245,158,11,.07);
}
.ndd-coupon-box label{
    margin-top:0;
}
.ndd-coupon-box p{
    margin:8px 0 0;
    font-size:14px;
    color:#fef3c7!important;
}


/* v1.1.0 - paiement manuel Mobile Money / Airtel Money */
.ndd-manual-payment{
    margin:22px 0;
    padding:18px;
    border-radius:18px;
    background:rgba(34,197,94,.08);
    border:1px solid rgba(34,197,94,.25);
}
.ndd-manual-payment h2{margin-top:0}
.ndd-manual-method{
    display:grid;
    gap:6px;
    margin:12px 0;
    padding:14px;
    border-radius:14px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.1);
}
.ndd-manual-method strong{color:#bbf7d0}
.ndd-manual-method span{color:#e5e7eb}


/* v1.2.1 - WP Simple Pay */
.ndd-card-payment{
    margin:22px 0;
    padding:18px;
    border-radius:18px;
    background:rgba(59,130,246,.08);
    border:1px solid rgba(59,130,246,.25);
}
.ndd-card-payment h2{margin-top:0}
.ndd-simplepay-wrap{
    margin-top:14px;
    padding:14px;
    border-radius:14px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.1);
}


/* v1.2.4 - sécurité shortcode bouton Stripe */
.ndd-simplepay-wrap .ndd-alert{
    margin:0;
}


/* v1.2.6 - écoute complète sans téléchargement avant paiement */
.ndd-song-box audio{
    border-radius:12px;
}


/* v1.2.7 - preview protégée */
.ndd-alert{
    font-weight:700;
}


/* v1.2.8 - affichage preview plus robuste */
.ndd-audio-box{
    margin:22px 0;
    padding:18px;
    border-radius:18px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.12);
}
.ndd-audio-box h2{
    margin-top:0;
}
.ndd-audio-preview{
    border-color:rgba(245,158,11,.35);
    background:rgba(245,158,11,.08);
}
.ndd-audio-final{
    border-color:rgba(34,197,94,.35);
    background:rgba(34,197,94,.08);
}
.ndd-audio-locked{
    border-color:rgba(239,68,68,.35);
    background:rgba(239,68,68,.08);
}


/* v1.2.9 - preview compatible */
.ndd-audio-empty{
    border-color:rgba(148,163,184,.35);
    background:rgba(148,163,184,.08);
}


/* v1.3.0 - preview visible même si statut gratuit et MP3 final vide */
.ndd-audio-preview audio,
.ndd-audio-final audio{
    margin-top:10px;
}


/* v1.3.1 - notification paiement carte */
.ndd-payment-notify{
    margin:16px 0 22px;
    padding:16px;
    border-radius:16px;
    background:rgba(59,130,246,.08);
    border:1px solid rgba(59,130,246,.25);
}
.ndd-card-confirm{
    background:#3b82f6!important;
    color:#fff!important;
}


/* v2.0.0 - champ piège anti-spam (invisible, ignoré par les visiteurs) */
.ndd-hp-wrap{
    position:absolute!important;
    left:-9999px!important;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
    margin:0!important;
    padding:0!important;
}


/* v2.0.0 - accessibilité : focus visible clavier */
.ndd-song-form input:focus-visible,
.ndd-song-form select:focus-visible,
.ndd-song-form textarea:focus-visible,
.ndd-button:focus-visible{
    outline:2px solid #fbbf24;
    outline-offset:2px;
}
