/*
 * Yoga n Ride - Area Riservata
 *
 * - Ogni sezione spiega quale parte dell’interfaccia viene modificata.
 * - Le classi derivate dagli ex style inline ora hanno nomi descrittivi e contestuali.
 * - Le classi .is-... indicano stati temporanei: attivo, visto, completato, aperto, ecc.
 */

/* ============================================================
   VARIABILI GLOBALI
   ============================================================ */

:root {
    /* Font */
    --ynr-font-main: "Montserrat", sans-serif;

    /* Colori principali del brand — fucsia */
    --ynr-color-pink: #ff43a1;
    --ynr-color-pink-start: #ff61bf;

    /* Colori principali del brand — teal */
    --ynr-color-teal: #178393;
    --ynr-color-teal-hover-start: #35a1b1;
    --ynr-color-teal-hover-border: #1db4ba;
    --ynr-color-teal-dark: #116d78;

    /* Testi */
    --ynr-text-main: #333;
    --ynr-text-medium: #444;
    --ynr-text-muted: #555;
    --ynr-text-soft: #666;
    --ynr-text-light: #888;
    --ynr-text-faint: #999;
    --ynr-text-disabled: #aaa;
    --ynr-text-placeholder: #bbb;
    --ynr-text-border-muted: #ccc;

    /* Fondi e bordi neutri */
    --ynr-white: #fff;
    --ynr-bg-page-soft: #fafafa;
    --ynr-bg-panel: #f9f9f9;
    --ynr-bg-muted: #f5f5f5;
    --ynr-bg-line: #f0f0f0;
    --ynr-border-main: #ddd;
    --ynr-border-soft: #e8e8e8;
    --ynr-border-muted: #e5e5e5;
    --ynr-border-section: #eee;
    --ynr-border-strong: #e0e0e0;

    /*
     * Scheda "come i commenti": ricalca il container #wpdcom di wpDiscuz,
     * che e il riferimento visivo della pagina corso. Sta qui perche lo
     * usano piu blocchi (CTA abbonamento, blocco iscrizione originale).
     */
    --ynr-card-bg: #fafafa;
    --ynr-card-border: #e9e8eb;
    --ynr-card-radius: 20px;
    --ynr-card-padding: 30px;

    /* Card lezione: vale sia per le nostre sia per la griglia del tema. */
    --ynr-card-lezione-radius: 10px;

    /* Sfondo teal chiarissimo — usato per banner, badge, stati attivi */
    --ynr-bg-teal-soft: #edf6f7;

    /* Stati */
    --ynr-color-danger: #a00;
    --ynr-color-success-bg: #e0f5f6;
    --ynr-color-success-text: #0d6b73;
    --ynr-color-success-border: #9adce0;

    /* Overlay e ombre */
    --ynr-overlay-dark: rgba(0,0,0,.5);
    --ynr-overlay-teal: rgba(23,131,147,.18);
    --ynr-shadow-soft: 0 2px 8px rgba(0,0,0,.1);
    --ynr-shadow-card-hover: 0 4px 18px rgba(0,0,0,.1);
    --ynr-shadow-toast: 0 4px 16px rgba(0,0,0,.3);
    --ynr-shadow-dropdown: 0 8px 24px rgba(0,0,0,.13);
    --ynr-shadow-modal: 0 20px 60px rgba(0,0,0,.2);
    --ynr-shadow-modal-strong: 0 20px 60px rgba(0,0,0,.3);
    --ynr-shadow-check: 0 2px 12px rgba(0,0,0,.25);
    --ynr-shadow-sticky: 0 2px 8px rgba(0,0,0,.07);
    --ynr-shadow-admin-popover: 0 2px 8px rgba(0,0,0,.08);

    /* Raggi */
    --ynr-radius-card: 12px;

    /* Gradienti */
    --ynr-gradient-pink: linear-gradient(to bottom, var(--ynr-color-pink-start) 0%, var(--ynr-color-pink) 100%);
    --ynr-gradient-teal: linear-gradient(to bottom, var(--ynr-color-teal-hover-start) 0%, var(--ynr-color-teal) 100%);
    --ynr-gradient-progress: linear-gradient(to right, var(--ynr-color-pink-start), var(--ynr-color-teal));
}

/* ============================================================
   BANNER CONTESTO CORSO
   Barra fissa in alto nelle pagine lezione quando si arriva da un corso.
   ============================================================ */

#ynr-corso-context-bar {
    background: var(--ynr-bg-teal-soft);
    border: 1px solid var(--ynr-color-success-border);
    border-radius: var(--ynr-radius-card);
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: var(--ynr-font-main);
    font-size: 13px;
    margin-bottom: 16px;
}

/* ============================================================
   ADMIN - BUILDER CORSI
   Interfaccia nel backend per costruire corsi, programmi, raccolte e ordinare lezioni.
   ============================================================ */

.ynr-lesson-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    margin-bottom: 3px;
    font-size: 12px;
}

.ynr-drag {
    color: var(--ynr-text-placeholder);
    cursor: grab;
    font-size: 14px;
    flex-shrink: 0;
}

.ynr-lesson-title {
    flex: 1;
}

.ynr-remove-lesson {
    background: none;
    border: none;
    color: var(--ynr-color-danger);
    font-size: 16px;
    cursor: pointer;
    padding: 0 2px;
    line-height: 1;
    flex-shrink: 0;
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-add:hover {
    background: var(--ynr-color-teal-dark) !important;
}

/* ============================================================
   ADMIN - LEZIONI DELLA SETTIMANA
   Pagina admin “Lezioni della settimana”: blocchi settimana, gruppi, drag & drop e risultati ricerca.
   ============================================================ */

.ynr-sett-section-title {
    font-size: 17px;
    font-weight: 600;
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ynr-border-soft);
}

.ynr-sett-empty {
    padding: 16px;
    background: var(--ynr-bg-panel);
    border: 1px dashed var(--ynr-border-main);
    border-radius: 6px;
    color: var(--ynr-text-disabled);
    font-size: 14px;
    text-align: center;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block {
    border: 1.5px solid var(--ynr-border-strong);
    border-radius: 8px;
    margin-bottom: 16px;
    overflow: hidden;
    background: var(--ynr-white);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block.is-current {
    border-color: var(--ynr-color-pink);
    box-shadow: 0 0 0 2px var(--ynr-bg-teal-soft);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block.is-past {
    opacity: .75;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-header {
    background: var(--ynr-bg-muted);
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block.is-current .ynr-week-header {
    background: var(--ynr-bg-teal-soft);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-label {
    font-weight: 600;
    font-size: 14px;
    flex: 1;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-badge {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-badge.current {
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-pink);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-badge.future {
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-teal);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-badge.past {
    background: var(--ynr-bg-line);
    color: var(--ynr-text-light);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-toggle {
    font-size: 12px;
    color: var(--ynr-text-disabled);
    transition: transform .2s;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block.open .ynr-week-toggle {
    transform: rotate(180deg);
}

/* Blocco settimana nella pagina admin. */
.ynr-week-body {
    display: none;
    padding: 14px;
}

/* Blocco settimana nella pagina admin. */
.ynr-week-block.open .ynr-week-body {
    display: block;
}

.ynr-gruppo-sett-block {
    border: 1px solid var(--ynr-border-strong);
    border-radius: 6px;
    margin-bottom: 10px;
    overflow: hidden;
}

.ynr-gruppo-sett-header {
    background: var(--ynr-bg-page-soft);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ynr-gruppo-sett-list {
    min-height: 36px;
    padding: 6px;
    background: var(--ynr-white);
    list-style: none;
    margin: 0;
    border-top: 1px solid var(--ynr-bg-line);
}

.ynr-sett-lesson-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 4px;
    margin-bottom: 3px;
    font-size: 12px;
    cursor: default;
}

.ynr-sett-drag {
    color: var(--ynr-text-placeholder);
    cursor: grab;
    font-size: 14px;
    flex-shrink: 0;
}

.ynr-sett-lesson-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ynr-sett-remove-lesson {
    background: none;
    border: none;
    color: var(--ynr-text-border-muted);
    font-size: 16px;
    cursor: pointer;
    padding: 0 2px;
    line-height: 1;
    flex-shrink: 0;
    transition: color .15s;
}

.ynr-sett-remove-lesson:hover {
    color: var(--ynr-color-danger);
}

/* ============================================================
   FRONTEND - LAYOUT AREA RISERVATA
   Contenitore principale, tab, sottotab, card generiche e titoli di sezione.
   ============================================================ */

#ynr-area-wrap * {
    box-sizing: border-box;
}

#ynr-area-wrap {
    font-family: var(--ynr-font-main);
    color: var(--ynr-text-main);
    margin: 0 auto;
    padding: 20px 0;
}

/* Tab principali in alto nell’area riservata. */
#ynr-tabs {
    display: flex;
    justify-content: center;
    margin-bottom: 32px;
    overflow-x: auto;
    border-bottom: none;
}

/* Segmented control wrapper */
#ynr-tabs-inner {
    display: inline-flex;
    background: var(--ynr-bg-muted);
    border-radius: 50px;
    padding: 4px;
    gap: 2px;
}

/* Tab principali in alto nell'area riservata. */
#ynr-area-wrap .ynr-tab,
#ynr-area-wrap a.ynr-tab,
.ynr-tab {
    display: flex;
    align-items: center;
    padding: 10px 24px;
    text-decoration: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-weight: 600;
    font-size: 15px;
    border-radius: 50px;
    white-space: nowrap;
    transition: background .2s, color .2s, box-shadow .2s;
    border: none;
    background: transparent;
    margin-bottom: 0;
}

/* Tab principali in alto nell'area riservata. */
.ynr-tab:hover {
    color: var(--ynr-text-main) !important;
    opacity: 1;
}

/* Tab principali in alto nell'area riservata. */
#ynr-area-wrap .ynr-tab.active,
#ynr-area-wrap a.ynr-tab.active,
.ynr-tab.active {
    background: var(--ynr-white) !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    border-bottom-color: transparent !important;
}

/* Sottomenù interni delle tab “Mondo yoga” e “Profilo”. */
.ynr-subnav {
    display: flex;
    margin-bottom: 28px;
    background: var(--ynr-bg-muted);
    border-radius: 50px;
    padding: 4px;
    gap: 2px;
    border-bottom: none;
}

/* Sottomenù interni delle tab "Mondo yoga" e "Profilo". */
#ynr-area-wrap .ynr-subnav-item,
.ynr-subnav-item {
    flex: 1;
    text-align: center;
    padding: 9px 16px;
    text-decoration: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-size: 14px;
    font-weight: 600;
    border-radius: 50px;
    cursor: pointer;
    transition: background .2s, color .2s, box-shadow .2s;
    user-select: none;
    white-space: nowrap;
    border-bottom: none;
    margin-bottom: 0;
}

/* Sottomenù interni delle tab "Mondo yoga" e "Profilo". */
.ynr-subnav-item:hover {
    color: var(--ynr-text-main) !important;
    opacity: 1;
}

/* Sottomenù interni delle tab "Mondo yoga" e "Profilo". */
#ynr-area-wrap .ynr-subnav-item.active,
.ynr-subnav-item.active {
    background: var(--ynr-white) !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    border-bottom-color: transparent !important;
}

.ynr-card {
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 12px;
    overflow: hidden;
}

.ynr-card-featured {
    background: var(--ynr-bg-page-soft);
    border-color: var(--ynr-border-section);
}

.ynr-card-body {
    padding: 28px;
}

.ynr-section-title {
    font-size: 22px;
    font-weight: 600;
    color: var(--ynr-color-teal);
    margin: 0 0 8px;
}

/* ============================================================
   FRONTEND - CARD VIDEO
   Griglia e card delle lezioni: immagine, tag durata/livello/stile, titolo, preferita e vista.
   ============================================================ */

.ynr-gruppo-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-text-main);
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ynr-bg-line);
}

/* ============================================================
   FRONTEND - MAIL DEL SABATO
   Tipografia e contenuti della sezione “La mail del sabato”.
   ============================================================ */

.ynr-mail-sabato-accordion {
    background: var(--ynr-bg-page-soft);
    border: 1px solid var(--ynr-border-section);
    border-radius: var(--ynr-radius-card);
    margin-bottom: 28px;
    overflow: hidden;
}

.ynr-mail-sabato-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 24px;
    cursor: pointer;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    font-family: var(--ynr-font-main);
    transition: background .15s;
}

.ynr-mail-sabato-summary:hover {
    background: var(--ynr-bg-muted);
}

.ynr-mail-sabato-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--ynr-color-teal);
}

.ynr-mail-sabato-toggle {
    color: var(--ynr-text-light);
    font-size: 16px;
    transition: transform .3s;
    flex-shrink: 0;
}

.ynr-mail-sabato-summary.is-open .ynr-mail-sabato-toggle {
    transform: rotate(180deg);
}

.ynr-mail-sabato-body {
    overflow: hidden;
    transition: height .3s ease, opacity .3s ease;
}

.ynr-mail-sabato-accordion .ynr-mail-sabato-content {
    padding: 20px 24px 24px;
    border-top: 1px solid var(--ynr-border-section);
}

.ynr-mail-sabato-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--ynr-text-medium);
}

.ynr-mail-sabato-content h1,.ynr-mail-sabato-content h2,.ynr-mail-sabato-content h3 {
    color: var(--ynr-color-teal);
    font-family: var(--ynr-font-main);
    margin-top: 1.4em;
    margin-bottom: .5em;
}

/* Evita lo spazio superiore eccessivo quando la mail inizia con un titolo. */
.ynr-mail-sabato-content > h1:first-child,
.ynr-mail-sabato-content > h2:first-child,
.ynr-mail-sabato-content > h3:first-child,
.ynr-mail-sabato-content > h4:first-child,
.ynr-mail-sabato-content > h5:first-child,
.ynr-mail-sabato-content > h6:first-child {
    margin-top: 0 !important;
}

.ynr-mail-sabato-content p {
    margin: 0 0 1em;
}

.ynr-mail-sabato-content a {
    color: var(--ynr-color-pink);
    text-decoration: none;
}

.ynr-mail-sabato-content a:hover {
    text-decoration: underline;
}

.ynr-mail-sabato-content ul,.ynr-mail-sabato-content ol {
    padding-left: 1.5em;
    margin-bottom: 1em;
}

.ynr-mail-sabato-content li {
    margin-bottom: .4em;
}

.ynr-mail-sabato-content blockquote {
    border-left: 3px solid var(--ynr-color-pink);
    margin: 1em 0;
    padding: .5em 1em;
    color: var(--ynr-text-soft);
    font-style: italic;
}

.ynr-mail-sabato-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

/* ============================================================
   ADMIN - LEZIONI DELLA SETTIMANA
   Pagina admin “Lezioni della settimana”: blocchi settimana, gruppi, drag & drop e risultati ricerca.
   ============================================================ */

.ynr-settimana-gruppo:not(:first-child) {
    margin-top: 36px;
}

/* ============================================================
   FRONTEND - LAYOUT AREA RISERVATA
   Contenitore principale, tab, sottotab, card generiche e titoli di sezione.
   ============================================================ */

.ynr-muted {
    color: var(--ynr-text-light);
    font-size: 14px;
    margin: 0 0 20px;
}

/* ============================================================
   FRONTEND - BOTTONI E BADGE
   Bottoni rosa/outline, badge e piccole varianti riutilizzabili.
   ============================================================ */

.ynr-badge {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    background: var(--ynr-gradient-teal);
    color: var(--ynr-white);
}

/* Stile dei bottoni riutilizzabili. */
/* Override regola tema che forza font-size sui button */
button.ynr-btn,
button.ynr-btn-green,
button.ynr-btn-outline,
button.ynr-sett-tab,
button.ynr-mail-sabato-summary,
#ynr-open-routine-modal,
#ynr-download-routine-ics,
#ynr-close-routine-modal,
#ynr-close-routine-modal-2 {
    font-size: 16px !important;
}

button.ynr-remove-fav-btn,
button.ynr-mark-watched-btn {
    font-size: 12px !important;
}

button.ynr-calendar-modal-close {
    font-size: 24px !important;
}

.ynr-btn {
    display: inline-block;
    padding: 11px 22px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all .2s;
    line-height: 1.3;
    font-family: var(--ynr-font-main);
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-green,
.ynr-btn-green:visited {
    background: var(--ynr-gradient-pink) !important;
    color: var(--ynr-white) !important;
    border: 1px solid var(--ynr-border-soft) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
}

a.ynr-btn-green,
a.ynr-btn-green:visited,
a.ynr-btn-green:hover,
a.ynr-btn-green:focus {
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    text-decoration: none !important;
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-green:hover,
.ynr-btn-green:focus {
    background: var(--ynr-gradient-teal) !important;
    color: var(--ynr-white) !important;
    border: 1px solid var(--ynr-color-teal-hover-border) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-outline {
    background: transparent !important;
    background-image: none !important;
    color: var(--ynr-text-muted) !important;
    border: 2px solid var(--ynr-text-border-muted) !important;
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-outline:hover {
    background: transparent !important;
    background-image: none !important;
    border: 2px solid var(--ynr-color-teal) !important;
    color: var(--ynr-color-teal) !important;
}

/* Stile dei bottoni riutilizzabili. */
.ynr-btn-sm {
    padding: 7px 14px;
    font-size: 13px;
}

/* ============================================================
   FRONTEND - CARD VIDEO
   Griglia e card delle lezioni: immagine, tag durata/livello/stile, titolo, preferita e vista.
   ============================================================ */

/* Aspetto delle card video e della miniatura. */
.ynr-video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 16px;
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-card {
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 0;
    overflow: hidden;
    transition: box-shadow .2s;
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-card:hover {
    box-shadow: var(--ynr-shadow-card-hover);
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-card.is-watched {
    opacity: .75;
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-thumb {
    display: block;
    position: relative;
    aspect-ratio: 300/124;
    overflow: hidden;
    background: var(--ynr-bg-line);
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: transform .3s;
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-card:hover .ynr-video-thumb img {
    transform: scale(1.04);
}

/* Aspetto delle card video e della miniatura. */
.ynr-thumb-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 32px;
    color: var(--ynr-text-border-muted);
}

.ynr-badge-watched {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ynr-overlay-teal);
}

.ynr-badge-watched-check {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--ynr-color-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--ynr-shadow-check);
}

/* ============================================================
   FRONTEND - BOTTONI E BADGE
   Bottoni rosa/outline, badge e piccole varianti riutilizzabili.
   ============================================================ */

.ynr-badge-fav {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
}

/* ============================================================
   FRONTEND - CARD VIDEO
   Griglia e card delle lezioni: immagine, tag durata/livello/stile, titolo, preferita e vista.
   ============================================================ */

/* Aspetto delle card video e della miniatura. */
.ynr-video-meta {
    padding: 10px 14px 4px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--ynr-text-muted);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-tag-val {
    font-size: 13px;
    color: var(--ynr-text-muted);
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-title {
    padding: 12px 14px 8px;
    font-size: 18px;
    font-weight: 500;
    margin: 0;
    line-height: 1.4;
    border-top: 1px solid var(--ynr-bg-line);
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-title a,
#ynr-area-wrap .ynr-video-title a {
    text-decoration: none !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

/* Aspetto delle card video e della miniatura. */
.ynr-video-title a:hover,
#ynr-area-wrap .ynr-video-title a:hover {
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
}

.ynr-video-excerpt {
    padding: 0 14px 16px;
    font-size: 15px;
    color: var(--ynr-text-main);
    margin: 0;
    line-height: 1.6;
}

/* ============================================================
   FRONTEND - CORSI E PROGRESSO
   Card dei corsi seguiti/completati e barra di avanzamento.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 8px;
}

.ynr-corso-card {
    display: flex;
    flex-direction: column;
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 0;
    overflow: hidden;
    transition: box-shadow .2s;
}

.ynr-corso-card:hover {
    box-shadow: var(--ynr-shadow-card-hover);
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-thumb {
    display: block;
    aspect-ratio: 300 / 175;
    overflow: hidden;
    background: var(--ynr-bg-line);
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    transition: transform .3s;
}

.ynr-corso-card:hover .ynr-corso-thumb img {
    transform: scale(1.03);
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.ynr-corso-body-top {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-title {
    font-size: 18px;
    font-weight: 500;
    margin: 0;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-title a,
#ynr-area-wrap .ynr-corso-title a {
    text-decoration: none !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-title a:hover,
#ynr-area-wrap .ynr-corso-title a:hover {
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-excerpt {
    font-size: 14px;
    color: var(--ynr-text-soft);
    margin: 0;
    line-height: 1.6;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-progress-wrap {
    margin-top: 4px;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-progress-track {
    background: var(--ynr-border-soft);
    border-radius: 6px;
    height: 8px;
    overflow: hidden;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-progress-fill {
    height: 100%;
    background: var(--ynr-gradient-progress);
    border-radius: 6px;
    transition: width .6s ease;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-progress-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--ynr-text-soft);
    margin-top: 6px;
}

/* Corsi completati — sfondo grigio neutro, in palette */
.ynr-corso-card.is-completed {
    background: var(--ynr-bg-page-soft);
    border-color: var(--ynr-border-section);
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-progress-label strong {
    color: var(--ynr-color-pink);
}

/* ============================================================
   FRONTEND - FORM PROFILO
   Campi profilo, nickname, dati aziendali, feedback successo/errore.
   ============================================================ */

/* Layout e stile dei campi form. */
.ynr-form {
    width: 100%;
    max-width: 100%;
}

/* Layout e stile dei campi form. */
.ynr-nickname-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
    margin-bottom: 18px;
}

.ynr-nickname-row .ynr-profile-nickname-help {
    font-size: 12px;
    color: var(--ynr-text-muted);
    margin: 28px 0 0;
    line-height: 1.6;
}

.ynr-row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ynr-row3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
}

/* Layout e stile dei campi form. */
.ynr-fg {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 18px;
}

/* Layout e stile dei campi form. */
.ynr-fg label {
    font-weight: 600;
    font-size: 13px;
    color: var(--ynr-text-medium);
}

/* Layout e stile dei campi form. */
.ynr-fg input,.ynr-fg select {
    padding: 10px 14px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 8px;
    font-size: 15px;
    font-family: var(--ynr-font-main);
    transition: border-color .2s;
}

/* Layout e stile dei campi form. */
.ynr-fg input:focus,.ynr-fg select:focus {
    outline: none;
    border-color: var(--ynr-color-pink);
}

.ynr-req {
    color: var(--ynr-color-pink);
}

.ynr-opt {
    font-weight: 400;
    color: var(--ynr-text-disabled);
    font-size: 12px;
}

.ynr-company-block {
    border: 1.5px solid var(--ynr-border-soft);
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 18px;
}

.ynr-company-help {
    font-size: 13px;
    color: var(--ynr-text-muted);
    margin: 0 0 16px;
    line-height: 1.6;
}

.ynr-field-hint {
    display: block;
    font-size: 11px;
    color: var(--ynr-text-disabled);
    margin-top: 4px;
}

.ynr-field-error {
    font-size: 12px;
    color: #e53e3e;
    margin-top: 6px;
}

.ynr-privacy-acceptance {
    margin: 24px 0 8px;
}

.ynr-privacy-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--ynr-text-medium);
    cursor: pointer;
    line-height: 1.5;
}

.ynr-privacy-label input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--ynr-color-pink);
    width: 16px;
    height: 16px;
}

.ynr-privacy-label a {
    color: var(--ynr-color-teal);
    text-decoration: underline;
}

.ynr-company-block summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
    color: var(--ynr-text-medium);
    list-style: none;
    user-select: none;
}

.ynr-company-block summary::-webkit-details-marker {
    display: none;
}

.ynr-company-fields {
    margin-top: 16px;
}

.ynr-feedback {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 14px;
}

.ynr-feedback.success {
    background: var(--ynr-color-success-bg);
    color: var(--ynr-color-success-text);
    border: 1px solid var(--ynr-color-success-border);
}

.ynr-feedback.error {
    background: var(--ynr-bg-muted);
    color: var(--ynr-color-danger);
    border: 1px solid var(--ynr-border-main);
}

/* ============================================================
   FRONTEND - CALENDARIO
   Guida import .ics e modale di configurazione calendario yoga.
   ============================================================ */

.ynr-cal-guide {
    margin-top: 24px;
}

.ynr-cal-guide h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 12px;
}

.ynr-cal-guide details {
    border: 1px solid var(--ynr-border-soft);
    border-radius: 8px;
    margin-bottom: 8px;
}

.ynr-cal-guide summary {
    padding: 12px 16px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    list-style: none;
    background: var(--ynr-bg-page-soft);
    border-radius: 8px;
}

.ynr-cal-guide summary::-webkit-details-marker {
    display: none;
}

.ynr-cal-guide details[open] summary {
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-pink);
    border-radius: 8px 8px 0 0;
}

.ynr-cal-guide details ol {
    margin: 0;
    padding: 16px 20px;
    font-size: 14px;
    line-height: 1.8;
    background: var(--ynr-white);
    border-radius: 0 0 8px 8px;
}

.ynr-cal-guide a {
    color: var(--ynr-color-pink);
}

/* ============================================================
   FRONTEND - AZIONI PREFERITI / DA GUARDARE
   Pulsanti per rimuovere preferiti, segnare come fatta, modal e toast.
   ============================================================ */

.ynr-remove-fav-btn,.ynr-mark-watched-btn {
    display: block;
    width: 100%;
    padding: 8px 12px;
    background: none;
    border: none;
    border-top: 1px solid var(--ynr-bg-line);
    color: var(--ynr-text-disabled);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    font-family: var(--ynr-font-main);
    transition: background .15s,color .15s;
}

.ynr-remove-fav-btn:hover {
    background: var(--ynr-bg-page-soft);
    color: var(--ynr-color-danger);
}

.ynr-mark-watched-btn:hover {
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-teal);
}

/* ============================================================
   FRONTEND - CARD VIDEO
   Griglia e card delle lezioni: immagine, tag durata/livello/stile, titolo, preferita e vista.
   ============================================================ */

/* Aspetto delle card video e della miniatura. */
.ynr-video-card.is-removing {
    opacity: 0;
    transform: scale(.95);
    transition: opacity .25s,transform .25s;
}

/* ============================================================
   FRONTEND - AZIONI PREFERITI / DA GUARDARE
   Pulsanti per rimuovere preferiti, segnare come fatta, modal e toast.
   ============================================================ */

.ynr-watched-modal-overlay {
    position: fixed;
    inset: 0;
    background: var(--ynr-overlay-dark);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ynr-watched-modal {
    background: var(--ynr-white);
    border-radius: 12px;
    padding: 28px 32px;
    max-width: 400px;
    width: 90%;
    box-shadow: var(--ynr-shadow-modal);
    font-family: var(--ynr-font-main);
    text-align: center;
}

.ynr-watched-modal h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-text-main);
    margin: 0 0 10px;
}

.ynr-watched-modal p {
    font-size: 14px;
    color: var(--ynr-text-soft);
    margin: 0 0 24px;
    line-height: 1.6;
}

.ynr-watched-modal-btns {
    display: flex;
    gap: 12px;
    justify-content: center;
}

/* ============================================================
   FRONTEND - FORM PROFILO
   Campi profilo, nickname, dati aziendali, feedback successo/errore.
   ============================================================ */

.ynr-nickname-wrap input:focus {
    border-color: var(--ynr-color-teal);
}

/* ============================================================
   FRONTEND - LAYOUT AREA RISERVATA
   Contenitore principale, tab, sottotab, card generiche e titoli di sezione.
   ============================================================ */

.ynr-panel,
.ynr-mondo-sec,
.ynr-profilo-sec {
    width: 100%;
}

.ynr-empty-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--ynr-text-light);
    background: var(--ynr-bg-page-soft);
    border-radius: 10px;
    border: 1px dashed var(--ynr-border-main);
    margin-top: 16px;
}

.ynr-empty-state p {
    margin: 0;
    font-size: 15px;
}


/* ============================================================
   BOX NEWS
   Banner news in cima all'area riservata.
   ============================================================ */

.ynr-news-box {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    background: var(--ynr-bg-teal-soft);
    border: 1px solid var(--ynr-color-success-border);
    border-radius: var(--ynr-radius-card);
    overflow: hidden;
    margin-bottom: 28px;
}

.ynr-news-img {
    flex-shrink: 0;
    width: 260px;
}

.ynr-news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ynr-news-content {
    flex: 1;
    min-width: 0;
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
}

.ynr-news-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--ynr-color-teal);
    margin: 0;
    line-height: 1.3;
}

.ynr-news-text {
    font-size: 15px;
    color: var(--ynr-text-medium);
    line-height: 1.7;
    margin: 0;
}

.ynr-news-text p {
    margin: 0 0 8px;
}

.ynr-news-text p:last-child {
    margin-bottom: 0;
}

.ynr-news-btn {
    align-self: flex-start;
}

@media (max-width: 680px) {
    .ynr-news-box {
        flex-direction: column;
    }
    .ynr-news-img {
        width: 100%;
        max-height: 200px;
    }
}

/* ============================================================
   RESPONSIVE
   Adattamenti per mobile/tablet.
   ============================================================ */

@media (max-width:640px) {
    /* FRONTEND - LAYOUT AREA RISERVATA: Contenitore principale, tab, sottotab, card generiche e titoli di sezione. */

    #ynr-tabs {
        justify-content: stretch;
    }

    #ynr-tabs-inner {
        width: 100%;
        border-radius: 12px;
    }

    .ynr-tab {
        flex: 1;
        justify-content: center;
        padding: 10px 12px;
        font-size: 13px;
        border-radius: 10px;
    }


    /* FRONTEND - FORM PROFILO: Campi profilo, nickname, dati aziendali, feedback successo/errore. */

    .ynr-nickname-row {
        grid-template-columns: 1fr;
    }

    .ynr-row2 {
        grid-template-columns: 1fr;
    }

    .ynr-row3 {
        grid-template-columns: 1fr;
    }


    /* FRONTEND - CORSI E PROGRESSO: Card dei corsi seguiti/completati e barra di avanzamento. */

    .ynr-corso-grid {
        grid-template-columns: 1fr;
    }

    .ynr-video-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   MENU UTENTE - DROPDOWN AREA RISERVATA
   Menu compatto, leggibile e isolato dagli stili del tema.
   ============================================================ */

li.membri {
    position: relative !important;
    overflow: visible !important;
}

/* Pannello dropdown desktop. Rimane nel DOM per consentire
   una transizione più fluida e viene attivato con hover/focus. */
li.membri > ul.ynr-nav-dropdown,
li.membri:hover > ul.ynr-nav-dropdown,
li.membri:focus-within > ul.ynr-nav-dropdown {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;

    position: absolute !important;
    top: calc(100% + 10px) !important;
    right: 0 !important;
    left: auto !important;

    width: 340px !important;
    min-width: 340px !important;
    max-width: min(340px, calc(100vw - 24px)) !important;

    margin: 0 !important;
    padding: 8px !important;
    list-style: none !important;

    background: var(--ynr-white) !important;
    background-image: none !important;
    border: 1px solid var(--ynr-border-soft) !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 48px rgba(0,0,0,.16) !important;

    float: none !important;
    z-index: 99999 !important;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px) !important;
    transform-origin: top right !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}

li.membri:hover > ul.ynr-nav-dropdown,
li.membri:focus-within > ul.ynr-nav-dropdown {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

/* Ponte invisibile tra voce principale e dropdown: evita che il
   menu si chiuda mentre il puntatore attraversa lo spazio. */
li.membri > ul.ynr-nav-dropdown::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: -12px !important;
    right: 0 !important;
    left: 0 !important;
    height: 12px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: auto !important;
}

/* Piccolo indicatore verso il pulsante Area Riservata. */
li.membri > ul.ynr-nav-dropdown::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: -6px !important;
    right: 42px !important;
    width: 12px !important;
    height: 12px !important;
    background: var(--ynr-white) !important;
    border-top: 1px solid var(--ynr-border-soft) !important;
    border-left: 1px solid var(--ynr-border-soft) !important;
    transform: rotate(45deg) !important;
    box-shadow: none !important;
}

/* Reset completo degli elementi interni: Avada non deve trasformare
   ogni link in un grosso bottone con bordo rosa. */
li.membri > ul.ynr-nav-dropdown > li,
.fusion-main-menu li.membri > ul.ynr-nav-dropdown > li {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

li.membri > ul.ynr-nav-dropdown > li::before,
li.membri > ul.ynr-nav-dropdown > li::after,
li.membri > ul.ynr-nav-dropdown > li > a::before,
li.membri > ul.ynr-nav-dropdown > li > a::after {
    content: none !important;
    display: none !important;
}

li.membri > ul.ynr-nav-dropdown > li > a,
li.membri > ul.ynr-nav-dropdown > li > a:visited,
.fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a,
.fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a:visited {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
    gap: 3px !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;

    margin: 0 !important;
    padding: 13px 15px 12px !important;

    text-align: left !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.3 !important;
    white-space: normal !important;

    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    background: transparent !important;
    background-image: none !important;

    border: 0 !important;
    border-radius: 11px !important;
    outline: 0 !important;
    box-shadow: none !important;
    transform: none !important;

    transition: background .16s ease, box-shadow .16s ease !important;
}

li.membri > ul.ynr-nav-dropdown > li > a:hover,
li.membri > ul.ynr-nav-dropdown > li > a:focus,
.fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a:hover,
.fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a:focus {
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    background: var(--ynr-bg-teal-soft) !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: inset 3px 0 0 var(--ynr-color-teal) !important;
    transform: none !important;
}

li.membri > ul.ynr-nav-dropdown > li > a:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: -2px !important;
}

li.membri ul.ynr-nav-dropdown .ynr-nav-text {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: normal !important;
}

li.membri ul.ynr-nav-dropdown .ynr-nav-sub {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 2 !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: left !important;

    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

/* ============================================================
   RESPONSIVE - DROPDOWN AREA RISERVATA
   Nel menu mobile il sottomenu torna nel flusso della navigazione.
   ============================================================ */

@media (max-width:768px) {
    li.membri > ul.ynr-nav-dropdown,
    li.membri:hover > ul.ynr-nav-dropdown,
    li.membri:focus-within > ul.ynr-nav-dropdown {
        position: static !important;
        display: flex !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;

        margin: 6px 0 0 !important;
        padding: 6px !important;

        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;

        background: var(--ynr-bg-page-soft) !important;
        border: 1px solid var(--ynr-border-soft) !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    li.membri > ul.ynr-nav-dropdown::before,
    li.membri > ul.ynr-nav-dropdown::after {
        content: none !important;
        display: none !important;
    }

    li.membri > ul.ynr-nav-dropdown > li > a,
    .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a {
        padding: 11px 12px !important;
        border-radius: 9px !important;
    }
}

/* ============================================================
   SHORTCODE CORSO LEZIONI
   Card e griglia dello shortcode [ynr_corso_lezioni], con settimane, giorni e raccolte.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-lezioni {
    font-family: var(--ynr-font-main);
    color: var(--ynr-text-main);
    max-width: 1080px;
    margin: 0 auto;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-settimana {
    margin-bottom: 48px;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-sett-title {
    font-size: 28px;
    font-weight: 400;
    color: var(--ynr-text-main);
    margin: 0 0 20px;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-giorni-tabs {
    display: flex;
    flex-wrap: wrap;
    background: var(--ynr-bg-muted);
    border-radius: 50px;
    padding: 4px;
    gap: 2px;
    margin-bottom: 24px;
    border-bottom: none;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-giorno-tab {
    flex: 1;
    text-align: center;
    background: transparent;
    border: none;
    border-bottom: none;
    margin-bottom: 0;
    padding: 9px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    cursor: pointer;
    font-family: var(--ynr-font-main);
    border-radius: 50px;
    transition: background .2s, color .2s, box-shadow .2s;
    white-space: nowrap;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-giorno-tab.active {
    background: var(--ynr-white) !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    border-bottom-color: transparent;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-giorno-tab:hover {
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-gruppo-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-text-main);
    margin: 32px 0 16px;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(280px,1fr));
    gap: 24px;
    margin-bottom: 24px;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-card {
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: var(--ynr-card-lezione-radius);
    overflow: hidden;
    transition: box-shadow .2s;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-card:hover {
    box-shadow: var(--ynr-shadow-card-hover);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-card.is-watched {
    opacity: .5;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-thumb {
    display: block;
    position: relative;
    aspect-ratio: 300/124;
    overflow: hidden;
    background: var(--ynr-bg-line);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform .3s;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-card:hover .ynr-cl-thumb img {
    transform: scale(1.04);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-thumb-ph {
    width: 100%;
    height: 100%;
    background: var(--ynr-border-soft);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-watched {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ynr-overlay-teal);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-watched-check {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--ynr-color-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--ynr-shadow-check);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-watched-check svg {
    display: block;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-meta {
    padding: 10px 14px 4px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

/* ============================================================
   FRONTEND - CARD VIDEO
   Griglia e card delle lezioni: immagine, tag durata/livello/stile, titolo, preferita e vista.
   ============================================================ */

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--ynr-text-muted);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-tag:not(:last-child)::after {
    content: "·";
    margin-left: 4px;
    color: var(--ynr-text-border-muted);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-tag-val {
    font-size: 13px;
    color: var(--ynr-text-muted);
}

/* ============================================================
   SHORTCODE CORSO LEZIONI
   Card e griglia dello shortcode [ynr_corso_lezioni], con settimane, giorni e raccolte.
   ============================================================ */

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-body {
    padding: 12px 14px 16px;
    border-top: 1px solid var(--ynr-bg-line);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-title {
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 8px;
    line-height: 1.4;
}

/*
 * Il CSS aggiuntivo del sito colora ogni link dentro .inside-article con
 * "color:#fe44a1 !important", escludendo solo i titoli della griglia del tema
 * (:not(.fl-post-grid-title a)). Il nostro blocco vive li dentro, quindi il
 * fucsia fisso si toglie soltanto con un !important a specificita maggiore.
 *
 * Servono tre classi: la :not() porta con se la specificita del suo argomento,
 * quindi quella regola vale (0,2,2) e due classi non basterebbero.
 * In alternativa si puo aggiungere ".ynr-cl-title a" a quella :not() e
 * togliere gli !important da qui.
 */
.ynr-cl-title a {
    text-decoration: none;
    transition: color .2s;
}

.ynr-corso-lezioni .ynr-cl-card .ynr-cl-title a {
    color: var(--ynr-text-main) !important;
}

/* Elementi dello shortcode corso lezioni. */
.ynr-corso-lezioni .ynr-cl-card .ynr-cl-title a:hover {
    color: var(--ynr-color-pink) !important;
}

/* ============================================================
   GRIGLIA LEZIONI DEL TEMA (.fl-post-grid-post)
   Non e un nostro modulo: la allineiamo alle card dell'area
   riservata dove resta visibile accanto al nostro blocco.
   ============================================================ */

/*
 * Tre classi di specificita: le regole del tema per la griglia arrivano sia
 * generiche (.fl-post-grid-post) sia per singolo nodo (.fl-node-... .fl-post-
 * grid-post), quindi con meno non passeremmo. La card ha gia overflow:hidden,
 * percio il raggio ritaglia anche l'immagine.
 */
.fl-post-grid .fl-post-column .fl-post-grid-post {
    border-radius: var(--ynr-card-lezione-radius);
}

/*
 * Titolo scuro e fucsia solo al passaggio, come .ynr-cl-title. Il tema lo
 * dichiara su "body .fl-post-grid-text a": tre classi bastano a superarlo.
 */
.fl-post-grid-post .fl-post-grid-title a {
    color: var(--ynr-text-main);
    transition: color .2s;
}

.fl-post-grid-post .fl-post-grid-title a:hover {
    color: var(--ynr-color-pink);
}

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-excerpt {
    font-size: 15px;
    color: var(--ynr-text-main);
    margin: 0;
    line-height: 1.6;
}

/* ============================================================
   RESPONSIVE
   Adattamenti per mobile/tablet.
   ============================================================ */

@media (max-width:600px) {
    /* SHORTCODE CORSO LEZIONI: Card e griglia dello shortcode [ynr_corso_lezioni], con settimane, giorni e raccolte. */

    .ynr-cl-grid {
        grid-template-columns: 1fr;
    }

    .ynr-cl-sett-title {
        font-size: 22px;
    }

    .ynr-cl-giorni-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .ynr-cl-giorno-tab {
        white-space: nowrap;
    }
}

/* ============================================================
   FRONTEND - CORSI E PROGRESSO
   Card dei corsi seguiti/completati e barra di avanzamento.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap {
    box-sizing: border-box;
    max-width: 100%;
    background: var(--ynr-card-bg);
    border: 1px solid var(--ynr-card-border);
    border-radius: var(--ynr-card-radius);
    padding: var(--ynr-card-padding);
    margin: 32px 0;
    font-family: var(--ynr-font-main);
}

.ynr-corso-cta-wrap > :last-child {
    margin-bottom: 0;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap .ynr-cta-badge {
    display: inline-block;
    padding: 4px 14px;
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-pink);
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 14px;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap h2 {
    font-size: 24px;
    font-weight: 600;
    color: var(--ynr-color-teal);
    margin: 0 0 20px;
    line-height: 1.4;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap p {
    font-size: 15px;
    color: var(--ynr-text-medium);
    margin: 0 0 14px;
    line-height: 1.7;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap a.ynr-cta-link {
    color: var(--ynr-color-teal);
    text-decoration: none;
    font-weight: 600;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap a.ynr-cta-link:hover {
    text-decoration: underline;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap a.ynr-cta-btn {
    display: inline-block;
    padding: 11px 24px;
    background: var(--ynr-gradient-pink);
    color: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 50px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    font-family: var(--ynr-font-main);
    transition: background .2s,border-color .2s;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-cta-wrap a.ynr-cta-btn:hover {
    background: var(--ynr-gradient-teal);
    border-color: var(--ynr-color-teal-hover-border);
    color: var(--ynr-white);
}

/* ============================================================
   RESPONSIVE
   Adattamenti per mobile/tablet.
   ============================================================ */

@media (max-width:640px) {
    /* FRONTEND - CORSI E PROGRESSO: Card dei corsi seguiti/completati e barra di avanzamento. */

    .ynr-corso-cta-wrap {
        padding: 20px;
        border-radius: 14px;
    }

    .ynr-corso-cta-wrap h2 {
        font-size: 20px;
    }
}

/* ============================================================
   ALTRO / UTILITY
   Regole di supporto non classificate in una sezione specifica.
   ============================================================ */

#ynr-sticky-banner {
    position: relative;
    width: 100%;
    z-index: 99999;
    background: var(--ynr-bg-page-soft);
    border-bottom: 1px solid var(--ynr-border-section);
    padding: 10px 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    font-family: var(--ynr-font-main);
    font-size: 13px;
    color: var(--ynr-text-medium);
    box-shadow: var(--ynr-shadow-admin-popover);
    box-sizing: border-box;
}

#ynr-sticky-banner .ynr-sb-text {
    font-size: 13px;
    color: var(--ynr-text-muted);
}

#ynr-sticky-banner .ynr-sb-links {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

#ynr-sticky-banner .ynr-sb-sep {
    color: var(--ynr-border-main);
}

#ynr-sticky-banner a.ynr-sb-link {
    color: var(--ynr-color-teal);
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    white-space: nowrap;
}

#ynr-sticky-banner a.ynr-sb-link:hover {
    text-decoration: underline;
}

#ynr-sticky-banner a.ynr-sb-btn {
    display: inline-block;
    padding: 7px 18px;
    background: var(--ynr-gradient-pink);
    color: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 50px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    font-family: var(--ynr-font-main);
    transition: background .2s,border-color .2s;
}

#ynr-sticky-banner a.ynr-sb-btn:hover {
    background: var(--ynr-gradient-teal);
    border-color: var(--ynr-color-teal-hover-border);
    color: var(--ynr-white);
}

/* ============================================================
   RESPONSIVE
   Adattamenti per mobile/tablet.
   ============================================================ */

@media (max-width:640px) {
    /* ALTRO / UTILITY: Regole di supporto non classificate in una sezione specifica. */

    #ynr-sticky-banner {
        padding: 8px 16px;
        gap: 10px;
        justify-content: flex-start;
    }

    #ynr-sticky-banner .ynr-sb-text {
        display: none;
    }
}

/* ============================================================
   CLASSI DI SUPPORTO CONTESTUALI
   Regole nate dalla conversione degli ex style inline del PHP.
   Ora ogni classe descrive il componente o il blocco che modifica.
   ============================================================ */

.ynr-context-label {
    color: var(--ynr-text-muted);
}

.ynr-lesson-modal-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-text-main);
    margin: 0 0 10px;
}

.ynr-lesson-modal-text {
    font-size: 14px;
    color: var(--ynr-text-soft);
    margin: 0 0 24px;
    line-height: 1.6;
}

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

.ynr-lesson-modal-btn-secondary {
    padding: 11px 22px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    cursor: pointer;
    background: transparent;
    border: 2px solid var(--ynr-text-border-muted);
    color: var(--ynr-text-muted);
    font-family: var(--ynr-font-main);
}

.ynr-lesson-modal-btn-primary {
    padding: 11px 22px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    cursor: pointer;
    background: linear-gradient(to bottom,var(--ynr-color-pink-start),var(--ynr-color-pink));
    color: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    font-family: var(--ynr-font-main);
}

.ynr-admin-course-builder {
    font-family: -apple-system,sans-serif;
}

/* ---------- Meta box: converti struttura ---------- */

.ynr-admin-convert-box {
    margin: 0 0 18px;
    padding: 14px 16px;
    background: var(--ynr-bg-teal-soft);
    border: 1px solid var(--ynr-color-success-border);
    border-radius: 8px;
    font-family: -apple-system,sans-serif;
}

.ynr-admin-convert-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.ynr-admin-convert-label {
    font-size: 13px;
}

.ynr-admin-convert-current {
    color: var(--ynr-text-soft);
    font-size: 12px;
}

.ynr-admin-convert-group[hidden] {
    display: none;
}

.ynr-admin-convert-group {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--ynr-text-soft);
}

.ynr-admin-convert-feedback {
    font-size: 12px;
    color: var(--ynr-color-teal);
}

.ynr-admin-convert-feedback.is-error {
    color: var(--ynr-color-danger);
}

.ynr-admin-convert-note {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.6;
}

/* Tipo bloccato: i radio restano leggibili ma chiaramente inattivi. */
.ynr-admin-course-type-options.is-locked .ynr-corso-tipo-radio {
    cursor: default;
    opacity: .62;
}

.ynr-admin-course-type-options.is-locked .ynr-corso-tipo-radio.is-active {
    opacity: 1;
}

.ynr-admin-course-type-locked {
    margin: 8px 0 0;
    color: var(--ynr-text-soft);
    font-size: 11px;
    line-height: 1.55;
}

.ynr-admin-builder-layout {
    display: flex;
    gap: 0;
    align-items: flex-start;
}

.ynr-admin-builder-sidebar {
    width: 260px;
    flex-shrink: 0;
    position: sticky;
    top: 32px;
    padding-right: 16px;
    border-right: 1px solid var(--ynr-border-muted);
}

.ynr-admin-builder-intro {
    margin-bottom: 14px;
    font-size: 13px;
    color: var(--ynr-text-soft);
}

.ynr-admin-course-type-group {
    margin-bottom: 20px;
}

.ynr-admin-field-label {
    font-weight: 600;
    font-size: 13px;
    display: block;
    margin-bottom: 8px;
}

.ynr-admin-course-type-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ynr-admin-lesson-search-block {
    margin-bottom: 12px;
}

.ynr-admin-search-label {
    font-weight: 600;
    font-size: 13px;
    display: block;
    margin-bottom: 6px;
}

.ynr-admin-search-row {
    display: flex;
    gap: 8px;
}

.ynr-admin-search-input {
    flex: 1;
    padding: 7px 10px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 13px;
}

.ynr-admin-search-spinner {
    display: none;
    padding: 7px 4px;
}

.ynr-admin-spinner-reset {
    float: none;
    margin: 0;
}

.ynr-admin-search-results {
    display: none;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    max-height: 200px;
    overflow-y: auto;
    margin-top: 4px;
    background: var(--ynr-white);
    position: relative;
    z-index: 100;
}

.ynr-admin-builder-main {
    flex: 1;
    min-width: 0;
    padding-left: 16px;
}

/* ---------- Blocchi di testo dentro gli elenchi lezioni ---------- */

.ynr-testo-item {
    background: var(--ynr-bg-teal-soft) !important;
    border-color: var(--ynr-color-success-border) !important;
}

.ynr-testo-badge {
    flex-shrink: 0;
    padding: 1px 7px;
    border-radius: 10px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ynr-testo-preview {
    color: var(--ynr-text-soft);
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ynr-edit-testo {
    flex-shrink: 0;
    padding: 2px 8px;
    border: 1px solid var(--ynr-color-teal);
    border-radius: 4px;
    background: var(--ynr-white);
    color: var(--ynr-color-teal);
    font-size: 11px;
    cursor: pointer;
}

.ynr-admin-add-testo-btn {
    margin-top: 6px;
    margin-left: 6px;
    padding: 3px 8px;
    border: 1px solid var(--ynr-color-teal);
    border-radius: 4px;
    background: var(--ynr-white);
    color: var(--ynr-color-teal);
    font-size: 11px;
    cursor: pointer;
}

.ynr-testo-modal[hidden] {
    display: none;
}

.ynr-testo-modal {
    position: fixed;
    inset: 0;
    z-index: 160000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0, 0, 0, .5);
}

/* I menu di TinyMCE (formato, link) vivono in fondo al <body>, non dentro il
   modale: senza questo finiscono sotto l'overlay e l'editor sembra bloccato. */
.mce-floatpanel,
.mce-tooltip,
.mce-menu,
.ui-autocomplete,
#wp-link-backdrop,
#wp-link-wrap {
    z-index: 160100 !important;
}

.ynr-testo-modal-dialog {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 780px;
    max-height: 90vh;
    padding: 18px 20px 20px;
    border-radius: 8px;
    background: var(--ynr-white);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}

.ynr-testo-modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

/* Lo scroll sta qui e non sul dialogo, cosi la barra strumenti dell'editor
   non viene tagliata dal contenitore. */
.ynr-testo-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.ynr-testo-modal-body .wp-editor-container textarea.wp-editor-area {
    border: 0;
}

.ynr-testo-modal-footer {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

/* ============================================================
   BLOCCO ISCRIZIONE AL CORSO (originale)
   ============================================================ */

/*
 * Stessa veste del container dei commenti, presa dalle variabili --ynr-card-*.
 * Vale solo per il blocco originale nel contenuto: il clone nella colonna
 * delle informazioni resta senza cornice.
 */
.ynr-course-signup-original {
    box-sizing: border-box;
    max-width: 100%;
    margin: 7px 0 15px;
    padding: var(--ynr-card-padding);
    border: 1px solid var(--ynr-card-border);
    border-radius: var(--ynr-card-radius);
    background: var(--ynr-card-bg);
}

/*
 * Le righe e colonne di Beaver Builder portano sfondo e spaziatura propri:
 * dentro la scheda darebbero un doppio riquadro, quindi li annulliamo.
 */
.ynr-course-signup-original > .fl-row-content-wrap,
.ynr-course-signup-original > .fl-col-content {
    padding-top: 0;
    padding-bottom: 0;
    background-color: transparent;
    background-image: none;
}

.ynr-course-signup-original > :last-child {
    margin-bottom: 0;
}

/* Moduli Beaver senza contenuto: altezza zero ma margine, quindi vanno
   tolti dal flusso o lasciano uno stacco in cima alla scheda. */
.ynr-course-signup-original .ynr-signup-empty-module {
    display: none;
}

/* Primo e ultimo modulo utile: il padding della scheda basta gia. */
.ynr-course-signup-original .ynr-signup-first-module {
    margin-top: 0;
    padding-top: 0;
}

.ynr-course-signup-original .ynr-signup-last-module {
    margin-bottom: 0;
    padding-bottom: 0;
}

@media (max-width: 600px) {
    .ynr-course-signup-original {
        padding: 20px;
        border-radius: 14px;
    }
}

/*
 * Blocco "serve un abbonamento" mostrato ai non autorizzati: non e il nostro
 * shortcode ma la riga globale di Beaver (template 16572).
 *
 * La scheda sta sul wrapper del template, non sulla riga: il wrapper ha
 * margini laterali propri che rientravano il blocco rispetto al resto del
 * contenuto, e da qui possiamo azzerarli e allineare il bordo.
 */
.fl-builder-content-16572 {
    box-sizing: border-box;
    max-width: 100%;
    margin: 32px 0;
    padding: var(--ynr-card-padding);
    border: 1px solid var(--ynr-card-border);
    border-radius: var(--ynr-card-radius);
    background-color: var(--ynr-card-bg);
}

/*
 * Sfondo e spaziatura li portavano riga, colonna e modulo: dentro la scheda
 * darebbero un doppio riquadro e un rientro in piu. I selettori sono a tre
 * livelli per battere il CSS che Beaver stampa per singolo nodo
 * (.fl-node-... > .fl-row-content-wrap, che ne vale due).
 */
.fl-builder-content-16572 > .fl-row > .fl-row-content-wrap,
.fl-builder-content-16572 .fl-col > .fl-col-content,
.fl-builder-content-16572 .fl-module > .fl-module-content {
    margin: 0;
    padding: 0;
    background-color: transparent;
    background-image: none;
}

.fl-builder-content-16572 .fl-rich-text > :first-child {
    margin-top: 0;
}

.fl-builder-content-16572 .fl-rich-text > :last-child {
    margin-bottom: 0;
}

@media (max-width: 600px) {
    .fl-builder-content-16572 {
        padding: 20px;
        border-radius: 14px;
    }
}

/* Frontend: il blocco occupa tutta la riga della griglia. */
.ynr-cl-testo {
    grid-column: 1 / -1;
    font-family: var(--ynr-font-main);
    color: var(--ynr-text-main);
    font-size: 16px;
    line-height: 1.7;
}

.ynr-cl-testo > :first-child {
    margin-top: 0;
}

.ynr-cl-testo > :last-child {
    margin-bottom: 0;
}

.ynr-cl-testo a {
    color: var(--ynr-color-pink);
}

.ynr-admin-sort-help {
    font-size: 12px;
    color: var(--ynr-text-light);
    margin-bottom: 8px;
}

/* Liste vuote: restano un bersaglio visibile per il trascinamento. */
.ynr-admin-program-day-lessons:empty,
.ynr-admin-collection-lesson-list:empty,
.ynr-admin-sortable-small:empty,
.ynr-admin-sortable-group:empty {
    border-style: dashed;
    min-height: 34px;
}

.ynr-admin-course-lesson-list {
    min-height: 40px;
    border: 1px solid var(--ynr-border-muted);
    border-radius: 4px;
    padding: 6px;
    background: var(--ynr-bg-panel);
    list-style: none;
    margin: 0;
}

.ynr-admin-program-week-header {
    background: var(--ynr-bg-muted);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ynr-admin-remove-week-btn {
    background: var(--ynr-color-danger);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    font-size: 12px;
}

.ynr-admin-program-week-body {
    padding: 10px 12px;
}

.ynr-admin-program-day-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.ynr-admin-remove-day-btn {
    background: none;
    border: none;
    color: var(--ynr-color-danger);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 4px;
}

.ynr-admin-program-day-lessons {
    min-height: 30px;
    border: 1px solid var(--ynr-border-muted);
    border-radius: 4px;
    padding: 4px;
    background: var(--ynr-white);
    list-style: none;
    margin: 0;
}

.ynr-admin-program-add-lesson-btn {
    margin-top: 6px;
    font-size: 11px;
    padding: 3px 8px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.ynr-admin-add-day-btn {
    font-size: 12px;
    padding: 5px 10px;
    background: var(--ynr-text-muted);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 4px;
}

.ynr-admin-add-program-week-btn {
    padding: 7px 14px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    margin-top: 4px;
}

.ynr-admin-collection-group-header {
    background: var(--ynr-bg-muted);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ynr-admin-remove-collection-group-btn {
    background: var(--ynr-color-danger);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    font-size: 12px;
}

.ynr-admin-collection-group-body {
    padding: 10px 12px;
}

.ynr-admin-collection-lesson-list {
    min-height: 30px;
    border: 1px solid var(--ynr-border-muted);
    border-radius: 4px;
    padding: 4px;
    background: var(--ynr-white);
    list-style: none;
    margin: 0 0 6px;
}

.ynr-admin-collection-add-lesson-btn {
    font-size: 11px;
    padding: 3px 8px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.ynr-admin-add-collection-group-btn {
    padding: 7px 14px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    margin-top: 4px;
}


/* ============================================================
   ADMIN - RACCOLTA A TAB OPZIONALE
   Scelta del layout frontend per le raccolte per argomento.
   ============================================================ */

/* Maniglie per riordinare i contenitori: una per livello. */
.ynr-admin-ancora-input {
    flex: 0 0 110px;
    padding: 5px 8px;
    border: 1px dashed var(--ynr-border-main);
    border-radius: 4px;
    color: var(--ynr-text-soft);
    font-family: monospace;
    font-size: 11px;
}

.ynr-admin-ancora-input:focus {
    border-style: solid;
}

.ynr-blocco-drag {
    flex-shrink: 0;
    padding: 0 6px 0 2px;
    color: var(--ynr-text-placeholder);
    font-size: 15px;
    line-height: 1;
    cursor: grab;
    user-select: none;
}

.ynr-blocco-drag:active {
    cursor: grabbing;
}

.ynr-admin-block-header,
.ynr-admin-program-week-header,
.ynr-admin-program-day-header,
.ynr-admin-collection-group-header,
.ynr-admin-row-flex {
    align-items: center;
}

.ynr-admin-titoli-option {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--ynr-bg-muted);
    border: 1px solid var(--ynr-border-muted);
    border-radius: 6px;
}

.ynr-admin-titoli-option label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.ynr-admin-titoli-option small {
    display: block;
    margin-top: 2px;
    color: var(--ynr-text-soft);
    font-size: 11px;
    line-height: 1.4;
}

.ynr-admin-collection-display-options {
    margin-bottom: 14px;
    padding: 12px 14px;
    background: var(--ynr-bg-teal-soft);
    border: 1px solid var(--ynr-color-success-border);
    border-radius: 6px;
}

.ynr-admin-collection-tabs-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.ynr-admin-collection-tabs-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    accent-color: var(--ynr-color-pink);
    flex-shrink: 0;
}

.ynr-admin-collection-tabs-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: var(--ynr-text-main);
    line-height: 1.35;
}

.ynr-admin-collection-tabs-copy strong {
    font-size: 13px;
}

.ynr-admin-collection-tabs-copy small {
    color: var(--ynr-text-soft);
    font-size: 11px;
    font-weight: 400;
}

.ynr-newsletter-wrap {
    max-width: 900px;
}

.ynr-newsletter-description {
    color: var(--ynr-text-soft);
    margin-bottom: 20px;
}

.ynr-newsletter-selector-form {
    margin-bottom: 28px;
    display: flex;
    gap: 12px;
    align-items: center;
}

.ynr-newsletter-course-select {
    padding: 8px 12px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 6px;
    font-size: 14px;
    min-width: 300px;
}

.ynr-newsletter-actions-row {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.ynr-newsletter-course-title {
    font-size: 15px;
}

.ynr-newsletter-lesson-count {
    color: var(--ynr-text-light);
    font-size: 13px;
}

.ynr-newsletter-copy-all-btn {
    margin-left: auto;
    padding: 7px 16px;
    background: linear-gradient(to bottom,var(--ynr-color-pink-start),var(--ynr-color-pink));
    color: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}

.ynr-newsletter-links-table {
    border-radius: 8px;
    overflow: hidden;
}

.ynr-newsletter-col-index {
    width: 40px;
}

.ynr-newsletter-col-context {
    color: var(--ynr-text-light);
    font-weight: 400;
}

.ynr-newsletter-col-link {
    width: 360px;
}

.ynr-newsletter-col-actions {
    width: 80px;
}

.ynr-newsletter-row-index {
    color: var(--ynr-text-disabled);
}

.ynr-newsletter-row-context {
    color: var(--ynr-text-light);
    font-size: 13px;
}

.ynr-mail-saturday-wrap {
    max-width: 900px;
}

.ynr-mail-saturday-description {
    color: var(--ynr-text-soft);
    margin-bottom: 20px;
}

.ynr-mail-saturday-submit-row {
    margin-top: 16px;
}

.ynr-week-admin-wrap {
    max-width: 900px;
}

.ynr-week-admin-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ynr-week-admin-add-week-btn {
    margin-left: auto;
    padding: 8px 18px;
    background: linear-gradient(to bottom,var(--ynr-color-pink-start),var(--ynr-color-pink));
    color: var(--ynr-white);
    border: 1px solid var(--ynr-border-soft);
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}

.ynr-week-search-panel {
    position: sticky;
    top: 32px;
    z-index: 200;
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-strong);
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 20px;
    box-shadow: var(--ynr-shadow-sticky);
}

.ynr-week-search-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ynr-week-search-label {
    font-size: 13px;
    white-space: nowrap;
}

.ynr-week-search-input {
    flex: 1;
    padding: 7px 12px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 13px;
}

.ynr-week-search-spinner {
    display: none;
}

.ynr-week-spinner-reset {
    float: none;
    margin: 0;
}

.ynr-week-search-results {
    display: none;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    max-height: 220px;
    overflow-y: auto;
    margin-top: 8px;
    background: var(--ynr-white);
}

.ynr-week-search-hint {
    font-size: 11px;
    color: var(--ynr-text-faint);
    margin-top: 6px;
    display: none;
}

.ynr-week-current-title {
    color: var(--ynr-color-teal);
}

.ynr-week-future-section {
    margin-top: 32px;
}

.ynr-week-future-title {
    color: var(--ynr-text-muted);
}

.ynr-week-past-section {
    margin-top: 32px;
}

.ynr-week-past-summary {
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    color: var(--ynr-text-light);
    padding: 8px 0;
    user-select: none;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ynr-week-past-count {
    font-size: 13px;
    font-weight: 400;
    color: var(--ynr-text-disabled);
}

.ynr-week-past-toggle {
    margin-left: auto;
    font-size: 12px;
    color: var(--ynr-text-placeholder);
}

.ynr-week-past-container {
    margin-top: 12px;
}

.ynr-week-submit-row {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--ynr-border-soft);
}

.ynr-week-search-empty {
    padding: 8px 12px;
    color: var(--ynr-text-faint);
    font-size: 13px;
    margin: 0;
}

.ynr-week-remove-btn {
    background: none;
    border: none;
    color: var(--ynr-text-border-muted);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 4px;
    transition: color .15s;
    margin-left: 4px;
}

.ynr-week-group-drag {
    color: var(--ynr-text-placeholder);
    cursor: grab;
    font-size: 16px;
    flex-shrink: 0;
    padding: 0 4px;
}

.ynr-week-group-add-lesson-btn {
    padding: 4px 10px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    white-space: nowrap;
}

.ynr-week-group-remove-btn {
    background: none;
    border: none;
    color: var(--ynr-text-border-muted);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 4px;
    transition: color .15s;
}

.ynr-week-group-add-btn {
    font-size: 12px;
    padding: 6px 12px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    margin-top: 10px;
    font-weight: 600;
}

.ynr-login-required {
    text-align: center;
    padding: 60px 20px;
}

.ynr-login-required-text {
    margin-bottom: 24px;
}

.ynr-mail-content-spacer {
    margin-top: 16px;
}

.ynr-week-suggestions-block {
    margin-top: 36px;
}

.ynr-week-suggestion-group {
    margin-bottom: 32px;
}

.ynr-panel-world-hidden {
    display: none;
}

.ynr-world-watchlater-hidden {
    display: none;
}

.ynr-world-courses-hidden {
    display: none;
}

.ynr-world-completed-hidden {
    display: none;
}

.ynr-world-calendar-hidden {
    display: none;
}

.ynr-panel-profile-hidden {
    display: none;
}

.ynr-profile-subscription-hidden {
    display: none;
}

.ynr-profile-password-hidden {
    display: none;
}

.ynr-course-card-heading-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
}

.ynr-course-completed-badge {
    display: inline-block;
    padding: 2px 10px;
    background: var(--ynr-bg-teal-soft);
    color: var(--ynr-color-teal);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 6px;
}

.ynr-calendar-intro {
    margin-bottom: 20px;
    color: var(--ynr-text-muted);
}

.ynr-calendar-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: var(--ynr-overlay-dark);
    z-index: 99999;
    overflow-y: auto;
}

.ynr-calendar-modal-dialog {
    background: var(--ynr-white);
    max-width: 680px;
    margin: 40px auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--ynr-shadow-modal);
}

.ynr-calendar-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid var(--ynr-border-section);
}

.ynr-calendar-modal-title {
    font-family: var(--ynr-font-main);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

.ynr-calendar-modal-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--ynr-text-faint);
    line-height: 1;
    padding: 0 4px;
}

.ynr-calendar-modal-body {
    padding: 24px;
}

.ynr-calendar-course-header {
    background: var(--ynr-bg-panel);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.ynr-calendar-course-type-badge {
    margin-left: auto;
    font-size: 11px;
    color: var(--ynr-text-light);
    background: var(--ynr-border-section);
    padding: 2px 8px;
    border-radius: 10px;
}

.ynr-calendar-course-body {
    padding: 16px;
}

.ynr-calendar-program-note {
    font-size: 13px;
    color: var(--ynr-text-soft);
    margin: 0 0 12px;
}

.ynr-calendar-program-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.ynr-calendar-date-label {
    font-size: 12px;
    font-weight: 600;
    display: block;
    margin-bottom: 4px;
}

.ynr-calendar-time-label {
    font-size: 12px;
    font-weight: 600;
    display: block;
    margin-bottom: 4px;
}

.ynr-calendar-time-input {
    width: 100%;
    padding: 8px 10px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 6px;
    font-size: 14px;
}

.ynr-calendar-course-note {
    font-size: 13px;
    color: var(--ynr-text-soft);
    margin: 0 0 12px;
}

.ynr-calendar-lessons-scroll {
    max-height: 280px;
    overflow-y: auto;
}

.ynr-calendar-lesson-row {
    display: grid;
    grid-template-columns: 1fr 130px 110px;
    gap: 8px;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid var(--ynr-bg-line);
}

.ynr-calendar-lesson-title {
    font-size: 13px;
    color: var(--ynr-text-main);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ynr-calendar-lesson-time-input {
    padding: 6px 8px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 6px;
    font-size: 13px;
}

.ynr-calendar-modal-footer {
    padding: 16px 24px;
    border-top: 1px solid var(--ynr-border-section);
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.ynr-calendar-guide-spacer {
    margin-top: 28px;
}

.ynr-profile-feedback-hidden {
    display: none;
}

.ynr-profile-nickname-field {
    position: relative;
    width: 100%;
}

.ynr-profile-nickname-field input {
    width: 100%;
}

.ynr-profile-nickname-counter {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    color: var(--ynr-text-placeholder);
    pointer-events: none;
}

.ynr-profile-nickname-preview {
    margin-top: 6px;
    font-size: 13px;
    color: var(--ynr-text-muted);
}

.ynr-profile-nickname-preview-value {
    color: var(--ynr-color-teal);
}

.ynr-profile-nickname-error {
    display: none;
    margin-top: 4px;
    font-size: 12px;
    color: var(--ynr-color-danger);
}

.ynr-profile-nickname-help {
    font-size: 12px;
    color: var(--ynr-text-disabled);
    margin: 4px 0 0;
}

.ynr-profile-submit-spacer {
    margin-top: 24px;
}

.ynr-subscription-empty-body {
    text-align: center;
    padding: 40px 20px;
}

.ynr-subscription-empty-text {
    margin-bottom: 20px;
    color: var(--ynr-text-soft);
}

.ynr-subscription-active-card {
    border-color: var(--ynr-border-section);
}

.ynr-subscription-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px;
}

.ynr-subscription-plan-title {
    font-size: 20px;
    font-weight: 600;
    margin: 8px 0 0;
}

.ynr-subscription-expiry {
    text-align: right;
}

.ynr-subscription-expiry-label {
    display: block;
    font-size: 12px;
}

.ynr-subscription-divider {
    border: none;
    border-top: 1px solid var(--ynr-border-soft);
    margin: 20px 0;
}

.ynr-subscription-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ynr-subscription-support {
    margin-top: 16px;
}

.ynr-video-meta-duration-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-video-meta-level-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-video-meta-style-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-course-lesson-duration-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-course-lesson-level-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-course-lesson-style-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.ynr-week-reminder-notice {
    border-left-color: var(--ynr-color-pink);
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
}

.ynr-week-reminder-icon {
    font-size: 22px;
    line-height: 1;
}

.ynr-week-reminder-content {
    flex: 1;
}

.ynr-week-reminder-title {
    font-size: 14px;
}

.ynr-week-reminder-date {
    color: var(--ynr-text-soft);
    font-size: 13px;
    margin-left: 8px;
}

.ynr-week-reminder-message {
    font-size: 13px;
    color: var(--ynr-text-medium);
}

.ynr-first-time-cta-row {
    font-size: 14px;
    color: var(--ynr-text-soft);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 4px;
}

/* ============================================================
   FRONTEND - AZIONI PREFERITI / DA GUARDARE
   Pulsanti per rimuovere preferiti, segnare come fatta, modal e toast.
   ============================================================ */

.ynr-lp-modal-overlay {
    position: fixed;
    inset: 0;
    background: var(--ynr-overlay-dark);
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ynr-lp-modal-box {
    background: var(--ynr-white);
    border-radius: 12px;
    padding: 28px 32px;
    max-width: 400px;
    width: 90%;
    box-shadow: var(--ynr-shadow-modal-strong);
    font-family: var(--ynr-font-main);
    text-align: center;
}

.ynr-toast-message {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--ynr-text-main);
    color: var(--ynr-white);
    padding: 12px 24px;
    border-radius: 8px;
    font-family: var(--ynr-font-main);
    font-size: 14px;
    z-index: 99999;
    box-shadow: var(--ynr-shadow-toast);
}

/* ============================================================
   ADMIN - LEZIONI DELLA SETTIMANA
   Pagina admin “Lezioni della settimana”: blocchi settimana, gruppi, drag & drop e risultati ricerca.
   ============================================================ */

.ynr-remove-week:hover,.ynr-remove-gruppo-sett:hover {
    color: var(--ynr-color-danger) !important;
}

/* ============================================================
   FRONTEND - FORM PROFILO
   Campi profilo, nickname, dati aziendali, feedback successo/errore.
   ============================================================ */

#ynr-display-name {
    padding-right: 48px;
}

/* ============================================================
   BANNER CONTESTO CORSO
   Barra fissa in alto nelle pagine lezione quando si arriva da un corso.
   ============================================================ */

/* Il bottone sostituto del watched in contesto corso eredita lo stile
   dalle classi .yoganride-interaction.yoganride-watch del plugin */
#ynr-btn-segna-corso {
    margin-top: 0 !important;
}

.ynr-context-course-link {
    font-weight: 600;
    color: var(--ynr-color-pink);
    text-decoration: none;
}

.ynr-context-back-btn {
    margin-left: auto;
    padding: 6px 14px;
    background: linear-gradient(to bottom,var(--ynr-color-pink-start),var(--ynr-color-pink));
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    border: 1px solid var(--ynr-border-soft);
}

/* ============================================================
   ADMIN - BUILDER CORSI
   Interfaccia nel backend per costruire corsi, programmi, raccolte e ordinare lezioni.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-tipo-radio {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 400;
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-tipo-radio.is-active {
    border-color: var(--ynr-color-pink);
    font-weight: 600;
}

.ynr-radio-reset {
    margin: 0;
}

.ynr-hidden {
    display: none;
}

.ynr-admin-structure-block {
    border: 1px solid var(--ynr-border-main);
    border-radius: 6px;
    margin-bottom: 12px;
    overflow: hidden;
}

.ynr-admin-title-input {
    flex: 1;
    padding: 5px 8px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}

.ynr-admin-day-block {
    margin-bottom: 10px;
    padding: 8px;
    background: var(--ynr-bg-page-soft);
    border: 1px solid var(--ynr-border-section);
    border-radius: 4px;
}

.ynr-admin-day-input {
    flex: 1;
    padding: 4px 8px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 12px;
}

/* ============================================================
   ALTRO / UTILITY
   Regole di supporto non classificate in una sezione specifica.
   ============================================================ */

.ynr-newsletter-link-input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 12px;
    font-family: monospace;
    background: var(--ynr-bg-panel);
}

.ynr-copy-single-btn {
    font-size: 12px;
}

/* ============================================================
   BANNER NESSUN ABBONAMENTO
   Mostrato agli utenti loggati senza abbonamento attivo.
   ============================================================ */

#ynr-area-output .ynr-no-sub-banner,
.ynr-no-sub-banner {
    font-family: var(--ynr-font-main);
    background: var(--ynr-bg-teal-soft) !important;
    border: 1px solid var(--ynr-color-success-border);
    border-radius: var(--ynr-radius-card);
    padding: 28px 32px;
    margin-bottom: 28px;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    width: 100%;
    box-sizing: border-box;
}

#ynr-area-output .ynr-no-sub-banner .ynr-no-sub-inner,
.ynr-no-sub-inner {
    flex: 1;
    min-width: 0;
}

.ynr-no-sub-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-color-teal);
    margin: 0 0 6px;
}

.ynr-no-sub-text {
    font-size: 14px;
    color: var(--ynr-text-soft);
    line-height: 1.6;
    margin: 0;
}

.ynr-no-sub-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

/* ============================================================
   LOGIN / ACCESSO
   Messaggio e bottone mostrati agli utenti non autenticati.
   ============================================================ */

.ynr-login-title {
    color: var(--ynr-color-pink);
    margin-bottom: 16px;
}

.ynr-login-btn {
    display: inline-block;
    padding: 12px 24px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

/* ============================================================
   FRONTEND - CORSI E PROGRESSO
   Card dei corsi seguiti/completati e barra di avanzamento.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.ynr-corso-cta-btn {
    margin-top: 0;
}

/* ============================================================
   FRONTEND - CALENDARIO
   Guida import .ics e modale di configurazione calendario yoga.
   ============================================================ */

.ynr-cal-corso-box {
    margin-bottom: 28px;
    border: 1px solid var(--ynr-border-soft);
    border-radius: 8px;
    overflow: hidden;
}

.ynr-cal-checkbox {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.ynr-cal-course-label {
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    font-family: var(--ynr-font-main);
}

.ynr-cal-input-lg {
    width: 100%;
    padding: 8px 10px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 6px;
    font-size: 14px;
}

.ynr-cal-input-sm {
    padding: 6px 8px;
    border: 1.5px solid var(--ynr-border-main);
    border-radius: 6px;
    font-size: 13px;
}

.ynr-reminder-cta {
    display: inline-block;
    padding: 8px 16px;
    background: linear-gradient(to bottom,var(--ynr-color-pink-start),var(--ynr-color-pink));
    color: var(--ynr-white);
    border-radius: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

/* ============================================================
   ADMIN - LEZIONI DELLA SETTIMANA
   Pagina admin “Lezioni della settimana”: blocchi settimana, gruppi, drag & drop e risultati ricerca.
   ============================================================ */

.ynr-sett-result-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--ynr-bg-line);
    cursor: pointer;
    font-size: 13px;
}

.ynr-sett-result-row:hover {
    background: var(--ynr-bg-muted);
}

.ynr-sett-result-thumb {
    width: 40px;
    height: 30px;
    object-fit: cover;
    border-radius: 3px;
    flex-shrink: 0;
}

.ynr-remove-week {
    background: none;
    border: none;
    color: var(--ynr-text-border-muted);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 4px;
    transition: color .15s;
    margin-left: 4px;
}

/* ============================================================
   ALTRO / UTILITY
   Regole di supporto non classificate in una sezione specifica.
   ============================================================ */

.ynr-remove-gruppo-sett {
    background: none;
    border: none;
    color: var(--ynr-text-border-muted);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 4px;
    transition: color .15s;
}

/* ============================================================
   ADMIN - LEZIONI DELLA SETTIMANA
   Pagina admin “Lezioni della settimana”: blocchi settimana, gruppi, drag & drop e risultati ricerca.
   ============================================================ */

.ynr-add-gruppo-sett {
    font-size: 12px;
    padding: 6px 12px;
    background: var(--ynr-color-pink);
    color: var(--ynr-white);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    margin-top: 10px;
    font-weight: 600;
}

.ynr-gruppo-sett-drag {
    color: var(--ynr-text-placeholder);
    cursor: grab;
    font-size: 16px;
    flex-shrink: 0;
    padding: 0 4px;
}

.ynr-gruppo-sett-titolo {
    flex: 1;
    padding: 5px 8px;
    border: 1px solid var(--ynr-border-main);
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}

.ynr-set-search-target {
    padding: 4px 10px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    white-space: nowrap;
}

/* ============================================================
   FRONTEND - FORM PROFILO
   Campi profilo, nickname, dati aziendali, feedback successo/errore.
   ============================================================ */

#ynr-nick-counter.is-over-limit {
    color: var(--ynr-color-danger);
}

/* ============================================================
   ADMIN - BUILDER CORSI
   Interfaccia nel backend per costruire corsi, programmi, raccolte e ordinare lezioni.
   ============================================================ */

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-result-row {
    padding: 7px 12px;
    cursor: pointer;
    font-size: 12px;
    border-bottom: 1px solid var(--ynr-bg-line);
}

/* Aspetto dei corsi seguiti e della barra progresso. */
.ynr-corso-result-row:hover {
    background: var(--ynr-bg-muted);
}

.ynr-admin-block-header {
    background: var(--ynr-bg-muted);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ynr-admin-block-body {
    padding: 10px 12px;
}

.ynr-admin-remove-btn {
    background: var(--ynr-color-danger);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    font-size: 12px;
}

.ynr-admin-add-day-btn {
    font-size: 12px;
    padding: 5px 10px;
    background: var(--ynr-text-muted);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 4px;
}

.ynr-admin-row-flex {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.ynr-admin-remove-icon {
    background: none;
    border: none;
    color: var(--ynr-color-danger);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 4px;
}

.ynr-admin-sortable-small {
    min-height: 30px;
    border: 1px solid var(--ynr-border-muted);
    border-radius: 4px;
    padding: 4px;
    background: var(--ynr-white);
    list-style: none;
    margin: 0;
}

.ynr-admin-sortable-group {
    min-height: 30px;
    border: 1px solid var(--ynr-border-muted);
    border-radius: 4px;
    padding: 4px;
    background: var(--ynr-white);
    list-style: none;
    margin: 0 0 6px;
}

.ynr-admin-add-lesson-btn {
    font-size: 11px;
    padding: 3px 8px;
    background: var(--ynr-color-teal);
    color: var(--ynr-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.ynr-admin-add-lesson-btn.ynr-btn-add {
    margin-top: 6px;
}

/* ============================================================
   SHORTCODE CORSO LEZIONI
   Card e griglia dello shortcode [ynr_corso_lezioni], con settimane, giorni e raccolte.
   ============================================================ */

/* Elementi dello shortcode corso lezioni. */
.ynr-cl-hidden {
    display: none;
}

/* ============================================================
   FRONTEND - ROUTINE SETTIMANALE
   Bottone "Organizza la tua routine" e righe lezione nel modale .ics.
   Da aggiungere allo snippet CSS separato dell'Area Riservata.
   ============================================================ */

.ynr-week-suggestions-heading-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.ynr-week-suggestions-container {
    background: var(--ynr-bg-page-soft);
    border: 1px solid var(--ynr-border-section);
    border-radius: var(--ynr-radius-card);
    padding: 22px 24px;
    margin-bottom: 28px;
}

.ynr-week-suggestions-container .ynr-section-title {
    margin-bottom: 20px;
}

/* ============================================================
   TAB GRUPPI SETTIMANA
   Barra orizzontale navigabile con frecce su desktop e swipe su mobile.
   ============================================================ */

#ynr-area-wrap .ynr-sett-tabs-shell {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-bottom: 20px;
}

#ynr-area-wrap .ynr-sett-tabs {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 2px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 4px;
    background: var(--ynr-bg-muted);
    border: none;
    border-radius: 50px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

#ynr-area-wrap .ynr-sett-tabs::-webkit-scrollbar {
    display: none;
}

#ynr-area-wrap button.ynr-sett-tab {
    flex: 0 0 auto;
    min-width: max-content;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 22px;
    margin: 0;
    background: transparent;
    background-image: none;
    border: none;
    border-radius: 50px;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main);
    font-size: 14px !important;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    white-space: nowrap !important;
    cursor: pointer;
    scroll-snap-align: center;
    transition: background .2s, color .2s, box-shadow .2s;
}

#ynr-area-wrap button.ynr-sett-tab:hover {
    background: rgba(255,255,255,.55);
    background-image: none;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

#ynr-area-wrap button.ynr-sett-tab.is-active,
#ynr-area-wrap button.ynr-sett-tab.is-active:hover,
#ynr-area-wrap button.ynr-sett-tab.is-active:focus,
#ynr-area-wrap button.ynr-sett-tab.is-active:active {
    background: var(--ynr-white) !important;
    background-image: none !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    border: none !important;
    transform: none !important;
}

#ynr-area-wrap button.ynr-sett-tab:focus {
    outline: none;
}

#ynr-area-wrap button.ynr-sett-tab:focus-visible {
    outline: 2px solid var(--ynr-color-pink);
    outline-offset: -2px;
}

#ynr-area-wrap button.ynr-sett-tabs-arrow {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    background: var(--ynr-color-teal) !important;
    background-image: none !important;
    border: 1px solid var(--ynr-color-teal) !important;
    border-radius: 50%;
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    box-shadow: 0 3px 10px rgba(23,131,147,.25);
    cursor: pointer;
    transition: background .2s, color .2s, border-color .2s, opacity .2s, box-shadow .2s, transform .2s;
}

#ynr-area-wrap button.ynr-sett-tabs-arrow:hover:not(:disabled) {
    background: var(--ynr-color-pink) !important;
    border-color: var(--ynr-color-pink) !important;
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    box-shadow: 0 4px 12px rgba(255,67,161,.28);
    transform: translateY(-1px);
}

#ynr-area-wrap button.ynr-sett-tabs-arrow:active:not(:disabled) {
    transform: translateY(0);
}

#ynr-area-wrap button.ynr-sett-tabs-arrow:focus {
    outline: none;
}

#ynr-area-wrap button.ynr-sett-tabs-arrow:focus-visible {
    outline: 2px solid var(--ynr-color-pink);
    outline-offset: 3px;
}

#ynr-area-wrap button.ynr-sett-tabs-arrow:disabled {
    background: var(--ynr-bg-teal-soft) !important;
    border-color: var(--ynr-color-success-border) !important;
    color: var(--ynr-color-teal) !important;
    -webkit-text-fill-color: var(--ynr-color-teal) !important;
    opacity: .6;
    cursor: default;
    box-shadow: none;
    transform: none;
}

#ynr-area-wrap button.ynr-sett-tabs-arrow.is-unneeded {
    visibility: hidden;
    pointer-events: none;
}

#ynr-area-wrap .ynr-sett-tabs-arrow svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#ynr-area-wrap .ynr-sett-tab-panel--hidden {
    display: none;
}

/* Su tablet e smartphone si usa lo scorrimento touch, senza frecce laterali. */
@media (max-width:768px) {
    #ynr-area-wrap .ynr-sett-tabs-shell {
        display: block;
    }

    #ynr-area-wrap button.ynr-sett-tabs-arrow {
        display: none !important;
    }

    #ynr-area-wrap .ynr-sett-tabs {
        border-radius: 18px;
        padding: 5px;
        gap: 4px;
        scroll-padding-inline: 10px;
    }

    #ynr-area-wrap button.ynr-sett-tab {
        min-height: 44px;
        padding: 9px 16px;
        border-radius: 14px;
    }
}

.ynr-routine-planner {
    margin-top: 28px;
}

.ynr-routine-cta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    background: var(--ynr-white);
    border: 1px solid var(--ynr-border-section);
    border-radius: 0 0 var(--ynr-radius-card) var(--ynr-radius-card);
}

.ynr-routine-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ynr-color-teal);
    margin: 0 0 6px;
}

.ynr-routine-text {
    font-size: 14px;
    color: var(--ynr-text-soft);
    margin: 0;
    line-height: 1.6;
}

.ynr-routine-lessons-list {
    margin-top: 16px;
    max-height: 360px;
    overflow-y: auto;
    border-top: 1px solid var(--ynr-bg-line);
}

.ynr-routine-lesson-row {
    display: grid;
    grid-template-columns: 28px 1fr 140px 110px;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--ynr-bg-line);
}

.ynr-routine-lesson-title {
    font-size: 13px;
    color: var(--ynr-text-main);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ynr-routine-include {
    justify-self: center;
}

@media (max-width:640px) {
    .ynr-routine-cta-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .ynr-routine-lesson-row {
        grid-template-columns: 28px 1fr;
    }

    .ynr-routine-lesson-date,
    .ynr-routine-lesson-time {
        grid-column: 2;
        width: 100%;
    }
}

/* ============================================================
   FIX ACCORDION AREA RISERVATA
   Impedisce al tema di applicare lo sfondo del bottone dopo il clic.
   Mantiene il feedback hover e un focus visibile per la tastiera.
   ============================================================ */

#ynr-area-wrap button.ynr-mail-sabato-summary,
#ynr-area-wrap button.ynr-mail-sabato-summary:focus,
#ynr-area-wrap button.ynr-mail-sabato-summary:active {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transform: none !important;
    color: inherit !important;
    outline: none;
}

#ynr-area-wrap button.ynr-mail-sabato-summary:hover {
    background: var(--ynr-bg-muted) !important;
    background-image: none !important;
}

#ynr-area-wrap button.ynr-mail-sabato-summary:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: -2px;
}

/* ============================================================
   SHORTCODE CORSO LEZIONI - RACCOLTA A TAB OPZIONALE
   Attivo solo quando la relativa opzione è selezionata nel corso.
   ============================================================ */

.ynr-cl-raccolta-tabbed {
    width: 100%;
    min-width: 0;
}

.ynr-cl-raccolta-tabs-shell {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
    margin-bottom: 24px;
}

.ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tabs {
    min-width: 0;
    width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    margin-bottom: 0;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
}

.ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tabs::-webkit-scrollbar {
    display: none;
}

.ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tab {
    flex: 0 0 auto;
    min-width: max-content;
    scroll-snap-align: center;
}

.ynr-cl-raccolta-arrow {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    background: var(--ynr-color-teal) !important;
    background-image: none !important;
    border: 1px solid var(--ynr-color-teal) !important;
    border-radius: 50%;
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    box-shadow: 0 3px 10px rgba(23,131,147,.25);
    cursor: pointer;
    transition: background .2s, border-color .2s, opacity .2s, box-shadow .2s, transform .2s;
}

.ynr-cl-raccolta-arrow:hover:not(:disabled) {
    background: var(--ynr-color-pink) !important;
    border-color: var(--ynr-color-pink) !important;
    box-shadow: 0 4px 12px rgba(255,67,161,.28);
    transform: translateY(-1px);
}

.ynr-cl-raccolta-arrow:active:not(:disabled) {
    transform: translateY(0);
}

.ynr-cl-raccolta-arrow:focus {
    outline: none;
}

.ynr-cl-raccolta-arrow:focus-visible {
    outline: 2px solid var(--ynr-color-pink);
    outline-offset: 3px;
}

.ynr-cl-raccolta-arrow:disabled {
    background: var(--ynr-bg-teal-soft) !important;
    border-color: var(--ynr-color-success-border) !important;
    color: var(--ynr-color-teal) !important;
    -webkit-text-fill-color: var(--ynr-color-teal) !important;
    opacity: .6;
    cursor: default;
    box-shadow: none;
    transform: none;
}

.ynr-cl-raccolta-arrow.is-unneeded {
    visibility: hidden;
    pointer-events: none;
}

.ynr-cl-raccolta-arrow svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ynr-cl-raccolta-panel.ynr-cl-hidden {
    display: none;
}

@media (max-width: 768px) {
    .ynr-cl-raccolta-tabs-shell {
        display: block;
    }

    .ynr-cl-raccolta-arrow {
        display: none !important;
    }

    .ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tabs {
        border-radius: 18px;
        padding: 5px;
        gap: 4px;
        scroll-padding-inline: 10px;
    }

    .ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tab {
        padding: 9px 16px;
        border-radius: 14px;
    }
}

/* ============================================================
   ADMIN - FILTRI PAGINE CORSO
   Tool per scegliere in quali corsi rimuovere il modulo filtri.
   ============================================================ */

.ynr-course-filters-admin {
    max-width: 1240px;
}

/* Legenda: spiega cosa fa ogni colonna di caselle. */
.ynr-course-filters-legend {
    margin: 0 0 20px;
    padding: 14px 18px;
    max-width: 820px;
    background: var(--ynr-bg-page-soft);
    border: 1px solid var(--ynr-border-section);
    border-radius: 8px;
    color: var(--ynr-text-soft);
    font-size: 13px;
    line-height: 1.7;
    list-style: none;
}

.ynr-course-filters-legend strong {
    color: var(--ynr-text-main);
}

/* Con molte colonne la tabella scorre invece di comprimersi. */
.ynr-course-filters-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ynr-course-filters-col {
    text-align: center;
    white-space: nowrap;
    width: 1%;
}

.ynr-course-filters-table td.ynr-course-filters-col input[type="checkbox"] {
    margin: 0;
}

.ynr-course-filters-toggle-col {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 400;
    color: var(--ynr-text-light);
}

.ynr-course-filters-description {
    max-width: 820px;
    color: var(--ynr-text-soft);
    font-size: 14px;
    line-height: 1.6;
    margin: 12px 0 20px;
}

.ynr-course-filters-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0 12px;
}

.ynr-course-filters-search {
    min-width: 280px;
    margin-right: 4px;
}

.ynr-course-filters-count {
    color: var(--ynr-text-soft);
    font-size: 13px;
    margin-left: auto;
}

.ynr-course-filters-table td,
.ynr-course-filters-table th {
    vertical-align: middle;
}

.ynr-course-filter-id {
    color: var(--ynr-text-faint);
    font-size: 11px;
    margin-top: 3px;
}

/* Scorciatoie per riga: accendono o spengono le pulizie del singolo corso. */
.ynr-course-filter-extra {
    display: block;
    margin-top: 6px;
}

.ynr-course-filter-extra span {
    display: block;
    color: var(--ynr-text-faint);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ynr-course-filter-extra input {
    width: 100%;
    max-width: 320px;
    padding: 3px 6px;
    font-family: monospace;
    font-size: 11px;
}

.ynr-course-filter-rowtools {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 11px;
}

.ynr-course-filter-rowsep {
    color: var(--ynr-text-border-muted);
}

.ynr-course-filter-actions {
    white-space: nowrap;
}

.ynr-course-filter-actions a + a {
    margin-left: 12px;
}

.ynr-course-filters-note {
    color: var(--ynr-text-light);
    font-size: 12px;
    margin: 12px 0 0;
}

.ynr-rebuild-avviso {
    margin-top: 6px;
    padding: 6px 8px;
    border-left: 3px solid var(--ynr-color-pink);
    background: #fff5fa;
    color: var(--ynr-text-muted);
    font-size: 11px;
    line-height: 1.5;
}

.ynr-cleanup-scan-sep {
    margin: 36px 0 24px;
    border: 0;
    border-top: 1px solid var(--ynr-border-muted);
}

.ynr-scan-uguale {
    color: var(--ynr-text-light);
    font-style: italic;
}

.ynr-remove-confirm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

@media (max-width: 782px) {
    .ynr-course-filters-search {
        width: 100%;
        min-width: 0;
    }

    .ynr-course-filters-count {
        width: 100%;
        margin-left: 0;
    }

    /* Nessuna colonna nascosta: sono tutte opzioni, la tabella scorre. */
    .ynr-course-filters-table {
        min-width: 840px;
    }
}

/* ============================================================
   SHORTCODE CORSO LEZIONI - TAB UNIFORMATE ALL'AREA RISERVATA
   Applica a Programma e Raccolta lo stesso aspetto delle tab
   "Lezioni suggerite questa settimana".
   ============================================================ */

.ynr-corso-lezioni .ynr-cl-giorni-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 2px !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 24px !important;
    padding: 4px !important;
    background: var(--ynr-bg-muted) !important;
    background-image: none !important;
    border: none !important;
    border-radius: 50px !important;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ynr-corso-lezioni .ynr-cl-giorni-tabs::-webkit-scrollbar {
    display: none;
}

.ynr-corso-lezioni button.ynr-cl-giorno-tab,
.ynr-corso-lezioni button.ynr-cl-giorno-tab:hover,
.ynr-corso-lezioni button.ynr-cl-giorno-tab:focus,
.ynr-corso-lezioni button.ynr-cl-giorno-tab:active {
    -webkit-appearance: none !important;
    appearance: none !important;
    flex: 0 0 auto !important;
    min-width: max-content;
    min-height: 48px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 10px 22px !important;
    margin: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 50px !important;
    box-shadow: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: center;
    text-decoration: none !important;
    text-shadow: none !important;
    white-space: nowrap !important;
    cursor: pointer;
    scroll-snap-align: center;
    transform: none !important;
    transition: background .2s, color .2s, box-shadow .2s !important;
}

.ynr-corso-lezioni button.ynr-cl-giorno-tab:hover {
    background: rgba(255,255,255,.55) !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

.ynr-corso-lezioni button.ynr-cl-giorno-tab.active,
.ynr-corso-lezioni button.ynr-cl-giorno-tab.active:hover,
.ynr-corso-lezioni button.ynr-cl-giorno-tab.active:focus,
.ynr-corso-lezioni button.ynr-cl-giorno-tab.active:active,
.ynr-corso-lezioni button.ynr-cl-giorno-tab[aria-selected="true"],
.ynr-corso-lezioni button.ynr-cl-giorno-tab[aria-selected="true"]:hover,
.ynr-corso-lezioni button.ynr-cl-giorno-tab[aria-selected="true"]:focus,
.ynr-corso-lezioni button.ynr-cl-giorno-tab[aria-selected="true"]:active {
    background: var(--ynr-white) !important;
    background-image: none !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    border: none !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.12) !important;
    text-shadow: none !important;
    transform: none !important;
}

.ynr-corso-lezioni button.ynr-cl-giorno-tab:focus {
    outline: none !important;
}

.ynr-corso-lezioni button.ynr-cl-giorno-tab:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: -2px;
}

/* La Raccolta a tab usa lo stesso telaio e le stesse frecce dell'area riservata. */
.ynr-corso-lezioni .ynr-cl-raccolta-tabs-shell {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-bottom: 24px;
}

.ynr-corso-lezioni .ynr-cl-raccolta-tabs-shell .ynr-cl-raccolta-tabs {
    margin-bottom: 0 !important;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--ynr-color-teal) !important;
    background-image: none !important;
    border: 1px solid var(--ynr-color-teal) !important;
    border-radius: 50% !important;
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    box-shadow: 0 3px 10px rgba(23,131,147,.25) !important;
    text-shadow: none !important;
    cursor: pointer;
    transform: none !important;
    transition: background .2s, color .2s, border-color .2s, opacity .2s, box-shadow .2s, transform .2s !important;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow:hover:not(:disabled) {
    background: var(--ynr-color-pink) !important;
    border-color: var(--ynr-color-pink) !important;
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    box-shadow: 0 4px 12px rgba(255,67,161,.28) !important;
    transform: translateY(-1px) !important;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow:active:not(:disabled) {
    transform: translateY(0) !important;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow:focus {
    outline: none !important;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: 3px;
}

.ynr-corso-lezioni button.ynr-cl-raccolta-arrow:disabled {
    background: var(--ynr-bg-teal-soft) !important;
    border-color: var(--ynr-color-success-border) !important;
    color: var(--ynr-color-teal) !important;
    -webkit-text-fill-color: var(--ynr-color-teal) !important;
    opacity: .6;
    cursor: default;
    box-shadow: none !important;
    transform: none !important;
}

.ynr-corso-lezioni .ynr-cl-raccolta-arrow svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 768px) {
    .ynr-corso-lezioni .ynr-cl-raccolta-tabs-shell {
        display: block;
    }

    .ynr-corso-lezioni button.ynr-cl-raccolta-arrow {
        display: none !important;
    }

    .ynr-corso-lezioni .ynr-cl-giorni-tabs {
        border-radius: 18px !important;
        padding: 5px !important;
        gap: 4px !important;
        scroll-padding-inline: 10px;
    }

    .ynr-corso-lezioni button.ynr-cl-giorno-tab,
    .ynr-corso-lezioni button.ynr-cl-giorno-tab:hover,
    .ynr-corso-lezioni button.ynr-cl-giorno-tab:focus,
    .ynr-corso-lezioni button.ynr-cl-giorno-tab:active {
        min-height: 44px;
        padding: 9px 16px !important;
        border-radius: 14px !important;
    }
}

/* ============================================================
   PAGINE CORSO - CLONE AUTOMATICO DEL SOLO FORM ISCRIZIONE
   Duplica esclusivamente campo e-mail + pulsante sotto la lista
   delle informazioni, lasciando i testi nella posizione originale.
   ============================================================ */

.ynr-course-signup-clone {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 10px 0 0;
    padding: 0;
    clear: both;
    box-sizing: border-box;
}

.ynr-course-signup-clone,
.ynr-course-signup-clone * {
    box-sizing: border-box;
}

.ynr-course-signup-clone .ynr-course-signup-cloned-block,
.ynr-course-signup-clone .fl-row,
.ynr-course-signup-clone .fl-row-content-wrap,
.ynr-course-signup-clone .fl-row-content,
.ynr-course-signup-clone .fl-col,
.ynr-course-signup-clone .fl-col-content,
.ynr-course-signup-clone .fusion-builder-row,
.ynr-course-signup-clone .fusion-row,
.ynr-course-signup-clone .fusion-layout-column,
.ynr-course-signup-clone .fusion-column-wrapper {
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.ynr-course-signup-clone .fl-row,
.ynr-course-signup-clone .fl-row-content-wrap,
.ynr-course-signup-clone .fl-row-content,
.ynr-course-signup-clone .fusion-builder-row,
.ynr-course-signup-clone .fusion-row {
    width: 100% !important;
}

.ynr-course-signup-clone .fl-row-content-wrap,
.ynr-course-signup-clone .fusion-column-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.ynr-course-signup-clone form,
.ynr-course-signup-clone input[type="email"],
.ynr-course-signup-clone input[type="text"],
.ynr-course-signup-clone select,
.ynr-course-signup-clone textarea {
    max-width: 100%;
}

.ynr-course-signup-clone form {
    width: 100%;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

#ynr-course-signup-clone-top .fl-module-content.fl-node-content,
#ynr-course-signup-clone-top .fl-module-content {
    margin-top: 0 !important;
}

.ynr-course-signup-clone [data-ynr-signup-hidden="1"] {
    display: none !important;
}

.ynr-course-facts-target {
    margin-top: 10px !important;
}

.ynr-course-facts-target > .fl-module .fl-module-content.fl-node-content,
.ynr-course-facts-target .fl-module-icon .fl-module-content.fl-node-content {
    margin-top: 0 !important;
}

.ynr-course-facts-target .fl-module-icon .fl-icon-wrap {
    display: table !important;
    width: 100%;
    margin-top: 0 !important;
}

.ynr-course-facts-target .fl-module-icon .fl-icon {
    display: table-cell !important;
    vertical-align: top !important;
    padding-top: 3px !important;
}

.ynr-course-facts-target .fl-module-icon .fl-icon-text {
    display: table-cell !important;
    vertical-align: top !important;
    font-size: .8em !important;
}

.ynr-course-facts-target .fl-module-icon .fl-icon-text p {
    margin: 0;
    line-height: 1.45;
}

@media (max-width: 768px) {
    .ynr-course-signup-clone {
        margin-top: 24px;
    }
}

/* ============================================================
   PAGINE CORSO - SPAZIO DOPO ISCRIZIONE NASCOSTA
   Mantiene il distacco dal blocco successivo quando il form e
   i testi di iscrizione vengono nascosti per un corso gia seguito.
   ============================================================ */

.ynr-course-signup-spacer {
    display: block !important;
    width: 100%;
    height: 50px;
    min-height: 50px;
    flex: 0 0 50px;
    clear: both;
    margin: 0;
    padding: 0;
    border: 0;
    pointer-events: none;
}

/* ============================================================
   MENU AREA RISERVATA - HARD RESET FINALE
   Neutralizza le regole globali del tema che trasformano i link
   del dropdown in grandi pulsanti con bordo rosa.
   ============================================================ */

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:link,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:visited,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:link,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:visited {
    all: unset !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
    gap: 3px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-family: var(--ynr-font-main) !important;
    line-height: 1.3 !important;
    text-align: left !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    cursor: pointer !important;
    transform: none !important;
    transition: background-color .16s ease, box-shadow .16s ease !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus {
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    background: var(--ynr-bg-teal-soft) !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: inset 3px 0 0 var(--ynr-color-teal) !important;
    transform: none !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: -2px !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link::before,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link::after {
    content: none !important;
    display: none !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link .ynr-nav-text {
    all: unset !important;
    display: block !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: normal !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link .ynr-nav-sub {
    all: unset !important;
    display: block !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: left !important;
    white-space: normal !important;
}

/* ============================================================
   MENU AREA RISERVATA - CORREZIONE HOVER FINALE
   Elimina il bordo/indicatore sinistro ereditato e rende leggibili
   titolo e sottotitolo sul fondo teal dello stato hover/focus.
   ============================================================ */

html body li.membri > ul.ynr-nav-dropdown > li,
html body li.membri > ul.ynr-nav-dropdown > li:hover,
html body li.membri > ul.ynr-nav-dropdown > li:focus-within,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li:hover,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li:focus-within {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-left: 0 !important;
    border-inline-start: 0 !important;
    box-shadow: none !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:link,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:visited,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:link,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:visited {
    border-left: 0 !important;
    border-inline-start: 0 !important;
    box-shadow: none !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus {
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
    background: var(--ynr-gradient-teal) !important;
    background-image: var(--ynr-gradient-teal) !important;
    border: 0 !important;
    border-left: 0 !important;
    border-inline-start: 0 !important;
    box-shadow: none !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover .ynr-nav-text,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus .ynr-nav-text,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover .ynr-nav-text,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus .ynr-nav-text {
    color: var(--ynr-white) !important;
    -webkit-text-fill-color: var(--ynr-white) !important;
}

html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover .ynr-nav-sub,
html body li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus .ynr-nav-sub,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:hover .ynr-nav-sub,
html body .fusion-main-menu li.membri > ul.ynr-nav-dropdown > li > a.ynr-nav-link:focus .ynr-nav-sub {
    color: rgba(255,255,255,.82) !important;
    -webkit-text-fill-color: rgba(255,255,255,.82) !important;
}

/* ============================================================
   MEMBERPRESS NATIVO NELL'AREA RISERVATA
   Abbonamento, pagamenti e dati di fatturazione.
   ============================================================ */

#ynr-area-wrap .ynr-billing-fields-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    margin: 0 0 20px;
    padding: 14px 16px;
    background: #fff5fa;
    border: 1px solid rgba(255, 67, 161, .35);
    border-radius: 12px;
    color: var(--ynr-text-main);
    font-size: 14px;
    line-height: 1.45;
}

#ynr-area-wrap .ynr-billing-fields-notice strong {
    color: var(--ynr-color-pink);
    font-size: 15px;
}

#ynr-area-wrap .ynr-memberpress-account {
    width: 100%;
    min-width: 0;
}

/* Sottotab MemberPress: identiche alle altre sottotab dell'area riservata. */
#ynr-area-wrap .ynr-memberpress-tabs {
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 28px !important;
    padding: 4px !important;
    gap: 2px !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 50px !important;
    background: var(--ynr-bg-muted) !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* Hard reset dei bottoni: impedisce al tema di applicare il teal dei pulsanti. */
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:hover,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:focus,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:active,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:visited {
    all: unset !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 50% !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 16px !important;
    border: 0 !important;
    border-radius: 50px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transform: none !important;
    cursor: pointer !important;
    transition: background .2s, color .2s, box-shadow .2s !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:hover,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:focus {
    background: rgba(255, 255, 255, .45) !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab.active,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab.active:hover,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab.active:focus,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab.active:active,
#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab[aria-selected="true"] {
    background: var(--ynr-white) !important;
    background-color: var(--ynr-white) !important;
    background-image: none !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .12) !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: 2px !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > button.ynr-memberpress-tab:disabled {
    cursor: wait !important;
    opacity: .7 !important;
}

#ynr-area-wrap .ynr-memberpress-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    padding: 28px;
    color: var(--ynr-text-light);
    font-size: 15px;
    font-weight: 600;
}

#ynr-area-wrap .ynr-memberpress-loading[hidden] {
    display: none !important;
}

#ynr-area-wrap .ynr-memberpress-native,
#ynr-area-wrap .ynr-memberpress-native .mp_wrapper,
#ynr-area-wrap .ynr-memberpress-native .mepr-account-container,
#ynr-area-wrap .ynr-memberpress-native #mepr-account-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* La navigazione nativa è sostituita dalle nostre sottotab. */
#ynr-area-wrap .ynr-memberpress-native #mepr-account-nav,
#ynr-area-wrap .ynr-memberpress-native [id^="ynr-mepr-account-nav-"],
#ynr-area-wrap .ynr-memberpress-native .mepr-account-nav,
#ynr-area-wrap .ynr-memberpress-native .mepr-account-navs,
#ynr-area-wrap .ynr-memberpress-native nav[aria-label*="account" i],
#ynr-area-wrap .ynr-memberpress-native .mp_wrapper > nav:first-child,
#ynr-area-wrap .ynr-memberpress-native .mp_wrapper > ul:first-child {
    display: none !important;
}

/* Rimuove eventuali intestazioni duplicate del template account. */
#ynr-area-wrap .ynr-memberpress-native > .mp_wrapper > h1:first-child,
#ynr-area-wrap .ynr-memberpress-native > .mp_wrapper > h2:first-child {
    margin-top: 0;
}

/* Lo stato senza abbonamento riutilizza .ynr-no-sub-banner. */

#ynr-area-wrap .ynr-memberpress-native table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto;
    background: var(--ynr-white);
    font-family: var(--ynr-font-main);
}

#ynr-area-wrap .ynr-memberpress-native table th,
#ynr-area-wrap .ynr-memberpress-native table td {
    padding: 14px 12px !important;
    border: 1px solid var(--ynr-border-light) !important;
    color: var(--ynr-text-main);
    font-size: 14px;
    line-height: 1.4;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

#ynr-area-wrap .ynr-memberpress-native table th {
    background: var(--ynr-bg-muted);
    color: var(--ynr-text-main);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

#ynr-area-wrap .ynr-memberpress-native a {
    color: var(--ynr-color-pink);
}

#ynr-area-wrap .ynr-memberpress-native a:hover,
#ynr-area-wrap .ynr-memberpress-native a:focus {
    color: var(--ynr-color-teal);
}

/* Azioni native MemberPress e del plugin Yoga n' Ride. */
#ynr-area-wrap .ynr-memberpress-native .mepr-account-row-action,
#ynr-area-wrap .ynr-memberpress-native .mepr-account-upgrade,
#ynr-area-wrap .ynr-memberpress-native a.mepr-account-update,
#ynr-area-wrap .ynr-memberpress-native a[href*="action=update"],
#ynr-area-wrap .ynr-memberpress-native a[href*="action=cancel"] {
    display: inline-block;
    margin: 4px 6px 4px 0;
    padding: 8px 12px;
    border: 1px solid var(--ynr-color-pink);
    border-radius: 8px;
    background: var(--ynr-white);
    color: var(--ynr-color-pink) !important;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none !important;
}

#ynr-area-wrap .ynr-memberpress-native .mepr-account-row-action:hover,
#ynr-area-wrap .ynr-memberpress-native .mepr-account-upgrade:hover,
#ynr-area-wrap .ynr-memberpress-native a.mepr-account-update:hover,
#ynr-area-wrap .ynr-memberpress-native a[href*="action=update"]:hover,
#ynr-area-wrap .ynr-memberpress-native a[href*="action=cancel"]:hover {
    background: var(--ynr-color-pink);
    color: var(--ynr-white) !important;
}

#ynr-area-wrap .ynr-memberpress-native .mepr-white-popup {
    margin-top: 12px;
    padding: 18px;
    background: var(--ynr-bg-muted);
    border: 1px solid var(--ynr-border-light);
    border-radius: 12px;
}

#ynr-area-wrap .ynr-memberpress-native .mepr-submit,
#ynr-area-wrap .ynr-memberpress-native .mp_wrapper .submit,
#ynr-area-wrap .ynr-memberpress-native button {
    max-width: 100%;
}

#ynr-area-wrap .ynr-subscription-support {
    margin-top: 18px;
}

@media (max-width: 820px) {
    #ynr-area-wrap .ynr-memberpress-native {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #ynr-area-wrap .ynr-memberpress-native table {
        min-width: 680px;
    }
}

@media (max-width: 520px) {
    #ynr-area-wrap .ynr-memberpress-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #ynr-area-wrap button.ynr-memberpress-tab {
        min-width: 150px;
    }

    #ynr-area-wrap .ynr-memberpress-empty {
        flex-direction: column;
        padding: 22px;
    }

    #ynr-area-wrap .ynr-billing-fields-notice {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ============================================================
   FIX DEFINITIVO SOTTOTAB MEMBERPRESS
   Usiamo link con role=tab per evitare gli stili globali del tema
   applicati ai button. Inattiva: trasparente/grigia. Attiva: bianca/rosa.
   ============================================================ */
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:link,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:visited,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:hover,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:focus,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:active {
    all: unset !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 50% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 16px !important;
    border: 0 !important;
    border-radius: 50px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transform: none !important;
    opacity: 1 !important;
    transition: background .2s, color .2s, box-shadow .2s !important;
}

/* Hover della tab NON attiva: neutro, mai verde e mai fucsia. */
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:not(.active):hover,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:not(.active):focus {
    background: rgba(255, 255, 255, .5) !important;
    background-color: rgba(255, 255, 255, .5) !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
    box-shadow: none !important;
}

/* Tab attiva: coerente con tutte le altre tab dell'area riservata. */
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab.active,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab.active:hover,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab.active:focus,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab.active:active,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab[aria-selected="true"] {
    background: var(--ynr-white) !important;
    background-color: var(--ynr-white) !important;
    background-image: none !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .12) !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: 2px !important;
}

#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab.is-disabled,
#ynr-area-wrap .ynr-memberpress-tabs > a.ynr-memberpress-tab[aria-disabled="true"] {
    cursor: wait !important;
    opacity: .7 !important;
    pointer-events: none !important;
}

/* ============================================================
   FIX STABILITA SOTTOTAB MEMBERPRESS
   I tab sono button reali: nessun hash viene modificato e quindi
   i pannelli principali dell'area riservata non possono chiudersi.
   ============================================================ */
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:hover,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:focus,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:active {
    all: unset !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 50% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 16px !important;
    border: 0 !important;
    border-radius: 50px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    font-family: var(--ynr-font-main) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transform: none !important;
    opacity: 1 !important;
    transition: background .2s, color .2s, box-shadow .2s !important;
}

#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:not(.active):hover,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:not(.active):focus {
    background: rgba(255, 255, 255, .5) !important;
    color: var(--ynr-text-main) !important;
    -webkit-text-fill-color: var(--ynr-text-main) !important;
}

#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab.active,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab.active:hover,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab.active:focus,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab[aria-selected="true"] {
    background: var(--ynr-white) !important;
    background-color: var(--ynr-white) !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .12) !important;
}

#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab:focus-visible {
    outline: 2px solid var(--ynr-color-pink) !important;
    outline-offset: 2px !important;
}

#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab.is-disabled,
#ynr-area-wrap #profilo-abbonamento .ynr-memberpress-tabs > button.ynr-memberpress-tab[aria-disabled="true"] {
    cursor: wait !important;
    opacity: .7 !important;
    pointer-events: none !important;
}

/* ============================================================
   OVERRIDE FINALE SOTTOTAB MEMBERPRESS
   Neutralizza definitivamente gli sfondi globali del tema sui button.
   ============================================================ */
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active),
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active):hover,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active):focus,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active):active,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active).is-disabled,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab:not(.active)[aria-disabled="true"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--ynr-text-light) !important;
    -webkit-text-fill-color: var(--ynr-text-light) !important;
    filter: none !important;
    transform: none !important;
}

body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab.active,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab.active:hover,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab.active:focus,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab.active:active,
body #ynr-area-wrap #tab-profilo #profilo-abbonamento
.ynr-memberpress-account .ynr-memberpress-tabs
> button.ynr-memberpress-tab[aria-selected="true"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: var(--ynr-white) !important;
    background-color: var(--ynr-white) !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .12) !important;
    color: var(--ynr-color-pink) !important;
    -webkit-text-fill-color: var(--ynr-color-pink) !important;
    filter: none !important;
    transform: none !important;
}
/* post-vimeo-fix */

div[style="padding:56.25% 0 0 0;position:relative;"], div[style="padding: 56.25% 0 0 0; position: relative;"] {

    padding: 0 !important;

}

.fl-node-895qz1ahodec.fl-module-video {

    margin: 0;

}



/* area-riservata */

.hero-area-riservata {

    background: url(/wp-content/plugins/yoganride-memberpress/assets/img/yoga-ride-area-riservata-hero.jpg);

    background-position: center 75%;

    background-repeat: no-repeat;

    background-size: cover;

    padding: 60px 0;

}

.hero-area-riservata .wp-block-paragraph {

    background-color: rgba(255,255,255,0.65);

    padding: 16px 20px;

    border-radius: 12px;

    border: 1px solid white;

}

.hero-area-riservata, .area-riservata-shortcode-container {

    margin-bottom: 0 !important;

}

@media (max-width: 768px) {

    .hero-area-riservata {

        background-position: 85% center;

        padding-top: 0;

        padding-bottom: 180px;

    }

    .hero-area-riservata .wp-block-paragraph {

        font-size: .85em !important;

    }

}



/* corso */

.single-post #content {

    max-width: initial;

    margin: 20px 0 !important;

}

article.type-post .fl-module-photo {

    margin: 0;

}

article.type-post .fl-col-content .fl-module-rich-text {

    margin: 10px 0;

}

article.type-post .fl-row .fl-row-content-wrap {

    padding: 0;

}

article.type-post h1 {

    font-size: 2em;

    margin-bottom: 0;

}

article.type-post h2 {

    font-size: 1.5em

}



/* btn-corso */

.yoganride-lezione-actions-main-wrapper {

    gap: 15px;

    padding: 10px 0;

}

.yoganride-lezione-actions-main-wrapper, .yoganride-lezione-actions-main-wrapper .lezione-actions-wrapper {

    margin: 0 !important;

}
