/* La palette resta quella della scuola; le superfici riprendono la pagina Altro. */
#app .mobile-only { display: none !important; }
#app .notification-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; max-width: 100%; }

/* Student overview only: let small/empty widgets follow their content on mobile. */
@media (max-width: 900px) {
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .content > .section {
    height: auto !important; min-height: 0 !important; margin-block: 0 14px !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .overview-personal-widgets {
    align-items: start; gap: 14px; margin-bottom: 14px;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .overview-personal-widgets > .section {
    height: auto !important; min-height: 0 !important; align-self: start !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] :is(.birthday-section,.diary-recent,.overview-board-preview) > .section-head {
    padding: 16px 16px 10px !important; gap: 8px !important; align-items: flex-start !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] :is(.birthday-list,.diary-recent-grid,.overview-board-items) {
    height: auto; min-height: 0; align-content: start; padding: 0 16px 16px !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .overview-board-items {
    padding-bottom: 12px !important;
  }
  /* Reuse the existing empty-state class without vertical centering or spacers. */
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] :is(.birthday-list,.diary-recent-grid,.overview-board-items) > .empty {
    height: auto !important; min-height: 0 !important; grid-column: 1 / -1;
    margin: 0 !important; padding: 0 !important; line-height: 1.5; text-align: left; align-self: start;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .next-lesson-card {
    padding: 16px !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .next-lesson-heading {
    margin-bottom: 10px;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .next-lesson-card > .text-btn {
    margin-top: 8px;
  }
  #app.registro-wordpress-app.registro-mobile-ui.registro-ui[data-mobile-role="Allievo"][data-mobile-view="home"] .cards.student-attendance-totals {
    margin-bottom: 14px !important;
  }
}

/* Colore del corso condiviso tra panoramiche e schede, a tutte le larghezze. */
#app.registro-wordpress-app.registro-ui .mobile-card-icon.tone-course {
  background: var(--course-icon-paper, #e7f3ff) !important;
  color: var(--course-icon-ink, #087af1) !important;
}

/* Stesso pulsante secondario per tutti i popup, anche fuori dal contenitore app. */
:is(#app.registro-wordpress-app .modal-backdrop, body > .modal-backdrop) :is(button.outline, button.secondary) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-height: 38px; padding: 9px 14px !important; border-radius: 7px !important;
  border: 1px solid var(--theme-line, #a7bbcd) !important;
  background: var(--panel, #fff) !important; color: var(--theme-link, #073b68) !important;
  font-size: 13px !important; font-weight: 700 !important; line-height: 1.3; cursor: pointer;
}
:is(#app.registro-wordpress-app .modal-backdrop, body > .modal-backdrop) :is(button.outline, button.secondary):hover { background: var(--theme-soft, #edf3f8) !important; }
:is(#app.registro-wordpress-app .modal-backdrop, body > .modal-backdrop) :is(button.outline, button.secondary):focus-visible { outline: 2px solid var(--theme-link, #073b68); outline-offset: 2px; }
#app.registro-wordpress-app .overview-board-preview { margin: 0 0 22px !important; }
#app.registro-wordpress-app .overview-board-items { display: grid; gap: 12px; padding: 0 22px 20px; }
#app.registro-wordpress-app .overview-board-items button { display: grid; gap: 5px; width: 100%; min-width: 0; padding: 14px 16px; border: 1px solid var(--theme-line); border-radius: 12px; background: var(--panel); color: var(--ink); text-align: left; cursor: pointer; }
#app.registro-wordpress-app .overview-board-items button > span { color: var(--theme-link); font-size: 13px; font-weight: 700; }
#app.registro-wordpress-app .overview-board-items button > b { color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.45; overflow-wrap: anywhere; }

@media (max-width: 900px) {
  #app.registro-wordpress-app.registro-mobile-ui {
    --mobile-border: color-mix(in srgb, var(--theme-line) 23%, white);
    --mobile-surface: var(--panel, white);
    --mobile-shadow: 0 3px 16px rgba(19, 49, 77, .025);
  }
  #app.registro-wordpress-app.registro-mobile-ui .content {
    padding: 18px 18px calc(92px + env(safe-area-inset-bottom)) !important;
    background: linear-gradient(150deg, var(--panel) 0%, var(--paper) 55%, color-mix(in srgb, var(--theme-soft) 26%, var(--paper)) 100%) !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-role="Amministratore"] .content { padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .content > .topbar { gap: 8px 14px; margin-bottom: 18px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .topbar h1 { font-size: 25px !important; line-height: 1.18 !important; letter-spacing: -.8px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .topbar .eyebrow { font-size: 13px !important; font-weight: 600 !important; letter-spacing: .1px !important; line-height: 1.45; margin-bottom: 7px !important; overflow-wrap: anywhere; }
  #app.registro-wordpress-app.registro-mobile-ui .topbar .date { padding: 3px 0 0 !important; font-size: 12px !important; line-height: 1.45; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-overview-label { font-size: 12px !important; font-weight: 400 !important; line-height: 1.5; margin-top: 7px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .section {
    border: 1px solid var(--mobile-border) !important; border-radius: 18px !important;
    background: var(--mobile-surface) !important; box-shadow: var(--mobile-shadow) !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui .section-head { padding: 17px 16px 14px !important; gap: 14px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .section-head h2 { font-size: 17px !important; line-height: 1.25 !important; letter-spacing: -.4px; }
  #app.registro-wordpress-app.registro-mobile-ui .section-head p { font-size: 12px !important; line-height: 1.45 !important; margin-top: 4px !important; font-weight: 400; }
  #app.registro-wordpress-app.registro-mobile-ui .primary { min-height: 42px; border-radius: 11px !important; box-shadow: 0 3px 8px color-mix(in srgb, var(--forest) 12%, transparent); }
  #app.registro-wordpress-app.registro-mobile-ui .small-avatar { width: 35px !important; height: 35px !important; min-width: 35px !important; max-width: 35px !important; min-height: 35px !important; max-height: 35px !important; flex: 0 0 35px !important; padding: 0 !important; box-sizing: border-box; border-radius: 50% !important; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .empty { color: var(--muted); padding: 24px 16px !important; font-size: 12px !important; line-height: 1.5; text-align: center; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box table,
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda table,
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section table { width: 100% !important; min-width: 0 !important; table-layout: auto !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td,
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td,
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section td { white-space: normal !important; overflow-wrap: anywhere; }
  #app.registro-wordpress-app.registro-mobile-ui .toast:empty { display: none !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-only { display: inline-flex !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-icon {
    width: 44px !important; height: 44px !important; flex: 0 0 44px !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    border: 0 !important; border-radius: 15px; padding: 11px !important;
    background: #e7f3ff !important; color: #087af1 !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-icon.tone-violet { background: #f1e7ff !important; color: #8734e8 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-icon.tone-green { background: #e1f5e9 !important; color: #079550 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-icon svg,
  #app.registro-wordpress-app.registro-mobile-ui .mobile-chevron svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-chevron { width: 15px; height: 15px; flex: 0 0 15px; color: var(--muted); }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-heading { position: relative; min-height: 44px; padding-left: 56px !important; display: flex; flex-direction: column; justify-content: center; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-card-heading > .mobile-card-icon { position: absolute; left: 0; top: 0; }

  /* Panoramica: dati di oggi e bacheche come schede dello stesso menu. */
  #app.registro-wordpress-app.registro-mobile-ui .mobile-day-summary { display: grid !important; gap: 8px; margin: 0 0 18px; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-day-summary h2 { display: flex; align-items: baseline; gap: 9px; margin: 0 2px 3px; font-size: 15px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-day-summary h2 > span { color: var(--muted); font-size: 11px; font-weight: 400; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-summary-row {
    display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; min-height: 70px;
    padding: 11px 13px; border: 1px solid var(--mobile-border); border-radius: 16px;
    background: var(--panel); color: var(--ink); text-align: left; box-shadow: var(--mobile-shadow);
  }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-summary-copy { display: grid; gap: 4px; flex: 1; min-width: 0; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-summary-copy strong { font-size: 13px; line-height: 1.3; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-summary-copy small { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-preview { margin-bottom: 18px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; padding: 0 14px 9px !important; gap: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button {
    display: grid !important; grid-template-columns: 44px minmax(0, 1fr) 15px !important; column-gap: 12px !important; row-gap: 3px !important;
    padding: 13px 0 !important; border: 0 !important; border-top: 1px solid var(--mobile-border) !important; border-radius: 0 !important; background: transparent !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button > .mobile-card-icon { grid-column: 1; grid-row: 1 / 3; align-self: center; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button > span:not(.mobile-card-icon):not(.mobile-chevron) { grid-column: 2; color: var(--ink) !important; font-size: 12px !important; text-transform: none !important; line-height: 1.4; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button > b { grid-column: 2; grid-row: 2; color: var(--muted); font-size: 12px; font-weight: 400; -webkit-line-clamp: 2 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button > .mobile-chevron { grid-column: 3; grid-row: 1 / 3; align-self: center; }
  #app.registro-wordpress-app.registro-mobile-ui .support-section .form-grid { padding: 0 16px 16px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .support-section .data-form { padding: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .support-section textarea { border-color: var(--mobile-border) !important; border-radius: 12px !important; }

  /* I miei allievi: schede corso e statistiche leggibili senza scorrimento orizzontale. */
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-boxes { grid-template-columns: minmax(0, 1fr); gap: 14px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box { margin: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box .section-head { border-bottom: 1px solid var(--mobile-border); }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box .section-head h2 { font-size: 15px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box table,
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box tbody { display: block; width: 100%; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; padding: 14px; border-bottom: 1px solid var(--mobile-border) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box tr:last-child { border-bottom: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td { padding: 0 !important; border: 0 !important; min-width: 0; font-size: 11px !important; align-self: center; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:first-child { grid-column: 1; grid-row: 1 / 3; font-size: 12px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:nth-child(2) { grid-column: 2; color: var(--theme-link) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:nth-child(3) { grid-column: 2; color: var(--muted) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:nth-child(3)::before { content: 'Assenze: '; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td.empty { grid-column: 1 / -1; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box .person { font-weight: 500; gap: 10px; white-space: normal; }

  /* Presenze: registrazione e storico condividono la stessa gerarchia. */
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="attendance"] .content > .section,
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] .content > .section { margin-bottom: 16px !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="attendance"] .section-head,
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] .section-head { display: flex !important; flex-wrap: wrap; align-items: start !important; }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-date-picker { width: 100% !important; margin: 2px 0 0 !important; min-width: 0; font-size: 11px; color: var(--muted); }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-date-picker input { width: 100%; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid color-mix(in srgb, var(--theme-line) 65%, white); border-radius: 9px; background: var(--panel); color: var(--ink); font-size: 14px; }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-list { padding: 0 14px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-row { display: flex !important; flex-direction: row !important; align-items: center; justify-content: space-between; gap: 10px !important; padding: 14px 0 !important; border-color: var(--mobile-border) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-row .person { flex: 1; min-width: 0; gap: 9px; font-size: 12px; white-space: normal; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set { display: flex; flex: 0 0 auto; gap: 5px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set button { min-width: 0 !important; min-height: 38px; padding: 7px 9px !important; border: 1px solid transparent !important; border-radius: 10px !important; font-size: 10px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set [data-status="present"] { background: #edf9f1 !important; color: #08773f !important; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set [data-status="absent"] { background: #fff0f2 !important; color: #ba2942 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set [data-status="present"].selected { background: #d4f2df !important; border-color: #20a25c !important; box-shadow: inset 0 0 0 1px #20a25c; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set [data-status="absent"].selected { background: #ffe0e5 !important; border-color: #db526b !important; box-shadow: inset 0 0 0 1px #db526b; }
  #app.registro-wordpress-app.registro-mobile-ui .collective-course-picker { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 0 0 56px !important; border: 0 !important; background: transparent !important; font-size: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .collective-course-picker select { height: 44px !important; min-height: 44px !important; padding-left: 0 !important; border: 0 !important; background-color: transparent !important; font-size: 15px !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] .section:has(#collective-date) .section-head > div { width: 100%; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] .section:has(#collective-date) .section-head p { margin-top: 12px !important; padding: 10px 12px; background: #e8f4ff; color: #1473c7 !important; border-radius: 10px; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .collective-row .subject-checkbox { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 8px 0 !important; border: 0 !important; background: transparent !important; font-size: 12px; }
  #app.registro-wordpress-app.registro-mobile-ui .collective-row input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: var(--forest); }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] .save-row { padding: 4px 14px 14px !important; border: 0 !important; background: transparent !important; }
  #app.registro-wordpress-app.registro-mobile-ui #save-collective { width: 100%; }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section table,
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section tbody { display: block; width: 100%; }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; margin: 0 16px; padding: 14px 0; border-top: 1px solid var(--mobile-border) !important; }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section td { padding: 0 !important; border: 0 !important; font-size: 12px !important; min-width: 0; align-self: center; }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section td:first-child { grid-column: 1; font-weight: 700 !important; }
  #app.registro-wordpress-app.registro-mobile-ui:is([data-mobile-view="attendance"],[data-mobile-view="collective_attendance"]) .list-section td:nth-child(2) { grid-column: 1; grid-row: 2; color: var(--muted) !important; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="attendance"] .list-section td:nth-child(3) { grid-column: 2; grid-row: 1; text-align: right; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="attendance"] .list-section td:nth-child(4) { grid-column: 2; grid-row: 2; display: flex; gap: 4px; }
  #app.registro-wordpress-app.registro-mobile-ui .table-action { min-height: 32px; border-radius: 8px !important; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .table-action.danger { background: #e53f66 !important; color: #fff !important; border-color: #e53f66 !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] #collective-history td:nth-child(3) { grid-row: 3; grid-column: 1; color: var(--muted); font-size: 11px; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="collective_attendance"] #collective-history td:nth-child(4) { grid-column: 2; grid-row: 1 / 4; }
  #app.registro-wordpress-app.registro-mobile-ui .status,
  #app.registro-wordpress-app.registro-mobile-ui .badge { border-radius: 10px !important; font-size: 10px !important; padding: 6px 9px !important; }

  /* Calendario e agenda: griglia compatta e appuntamenti su schede. */
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="calendar"] .content > .topbar { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="calendar"] .topbar > div:first-child { grid-column: 1 / -1; }
  #app.registro-wordpress-app.registro-mobile-ui [data-new-calendar-lesson] { padding: 10px 12px !important; font-size: 12px !important; white-space: nowrap; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-toolbar { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 6px; padding: 16px 12px 14px !important; border-color: var(--mobile-border) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-toolbar h2 { grid-column: 1; grid-row: 1; order: 0 !important; width: auto !important; font-size: 17px !important; letter-spacing: -.4px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-toolbar > div:first-child { grid-column: 2; grid-row: 1; gap: 4px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-today { padding: 7px 8px !important; min-height: 34px; font-size: 11px !important; border-radius: 9px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-arrow { width: 30px; height: 34px; border-color: var(--mobile-border); border-radius: 9px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-legend { grid-column: 1 / -1; justify-content: flex-end; margin: 0 !important; font-size: 10px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-weekdays,
  #app.registro-wordpress-app.registro-mobile-ui .calendar-grid { min-width: 0 !important; width: 100% !important; }
  #app.registro-wordpress-app.registro-mobile-ui .google-calendar .calendar-grid { min-height: 0 !important; grid-template-rows: repeat(6, 48px) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-weekdays { background: var(--paper); border-color: var(--mobile-border); }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-weekdays span { padding: 10px 0 !important; font-size: 8px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-day { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 48px !important; min-height: 48px !important; padding: 4px 2px !important; border-color: var(--mobile-border) !important; background: var(--panel); }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-day.outside-month { background: var(--paper); color: #a0aab4; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-day-number { display: grid; place-items: center; width: 28px; height: 28px; font-size: 11px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-day.today .calendar-day-number { width: 28px; height: 28px; background: var(--forest); box-shadow: 0 3px 8px color-mix(in srgb, var(--forest) 18%, transparent); }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-events { display: flex !important; justify-content: center; gap: 3px !important; margin-top: 2px !important; min-height: 6px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-event { width: 5px !important; height: 5px !important; min-height: 0 !important; padding: 0 !important; font-size: 0 !important; background: var(--forest) !important; border-radius: 50%; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-event.collective { background: #aa5aea !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-more { font-size: 8px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda { margin-top: 18px !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .section-head { padding: 0 0 12px !important; display: flex !important; flex-wrap: wrap; gap: 8px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .section-head p { display: none; }
  #app.registro-wordpress-app.registro-mobile-ui .upcoming-lessons-controls { width: 100%; justify-content: space-between; gap: 6px; font-size: 10px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda table,
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda tbody { display: block; width: 100%; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda tbody { display: grid; gap: 10px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda tr { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 4px 12px; padding: 14px; border: 1px solid var(--mobile-border) !important; border-radius: 16px; background: var(--panel) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td { min-width: 0; padding: 0 !important; border: 0 !important; align-self: center; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:first-child { grid-column: 1; grid-row: 1 / 4; align-self: start; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-desktop-date { display: none; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-lesson-date { display: grid !important; gap: 2px; width: 42px; padding: 5px; border: 1px solid var(--mobile-border); border-radius: 10px; background: var(--paper); text-align: center; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-lesson-date small { font-size: 9px; color: #cc4f67; text-transform: uppercase; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-lesson-date strong { font-size: 22px; line-height: 1; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(2) { grid-column: 2; grid-row: 2; color: var(--theme-link) !important; font-size: 12px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-lesson-end { white-space: pre; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(3) { grid-column: 2; grid-row: 1; font-size: 13px !important; font-weight: 700 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(3) > .mobile-card-icon { display: none !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(4) { grid-column: 2; grid-row: 3; font-size: 10px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .status { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px !important; background: #eaf2fb !important; color: var(--theme-link) !important; font-weight: 500; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .status::before { content: ''; width: 6px; height: 6px; border-radius: 2px; background: var(--forest); }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .status.late { background: #f3e8ff !important; color: #813fbc !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .status.late::before { background: #aa5aea; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(5) { grid-column: 2; grid-row: 4; color: var(--muted) !important; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td.lesson-room { color: var(--ink, #071521) !important; font-weight: 700 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(6) { grid-column: 3; grid-row: 1 / 5; display: grid; gap: 6px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td.empty { grid-column: 1 / -1; }

  /* Chat: scelta del corso, avviso e conversazione separati visivamente. */
  #app.registro-wordpress-app.registro-mobile-ui.chat-view .content { padding: 12px 16px calc(var(--chat-nav-height, 68px) + 10px) !important; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-section { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-header { padding: 0 0 10px; border: 0; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-course-picker { flex:1 1 0; min-width:0; padding:5px 8px; border: 1px solid var(--mobile-border); border-radius: 16px; background: var(--panel); box-shadow: var(--mobile-shadow); gap: 11px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-course-picker > span { display: grid; place-items: center; width:28px; height:28px; flex:0 0 28px; border-radius:9px; background:#e7f3ff; font-size: 0; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-course-picker > span::before { content: ''; width:18px; height:18px; background: #087af1; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18V5l12-2v13M9 8l12-2'/%3E%3Cellipse cx='6' cy='18' rx='3' ry='2.5'/%3E%3Cellipse cx='18' cy='16' rx='3' ry='2.5'/%3E%3C/svg%3E") center / contain no-repeat; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-course-picker select { height:32px; min-height:32px; padding: 0 6px 0 0; border: 0; border-radius: 0; background: transparent; font-size: 14px; font-weight: 700; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-retention { display:flex; align-items:center; gap:5px; margin:6px 2px 0; padding:0; background:transparent; color:var(--muted); font-size:11px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-messages { padding:10px 0; gap:9px; border-radius: 18px; background: linear-gradient(145deg, var(--paper), color-mix(in srgb, var(--theme-soft) 65%, white)); }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message { position: relative; border: 0; border-radius: 16px 16px 16px 5px; padding:8px 10px; max-width:calc(100% - 36px); box-shadow: 0 2px 8px rgba(22, 51, 77, .035); }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message-received { margin-left:36px; background: var(--panel); }
  #app.registro-wordpress-app.registro-mobile-ui .chat-author-avatar { position:absolute; top:4px; left:-36px; display:grid; place-items:center; width:28px; height:28px; border-radius: 50%; background: var(--theme-soft-strong); color: var(--theme-link); font-size: 10px; font-weight: 700; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message-own { margin-right: 1px; background: var(--theme-soft-strong); border-radius: 16px 16px 5px 16px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message header { gap: 6px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message header strong { font-size:11px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-sender { gap: 3px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-sender-role,
  #app.registro-wordpress-app.registro-mobile-ui .chat-message time { font-size:10px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-message p { font-size: 13px; line-height: 1.5; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-form { padding: 5px 0 0; border: 0; background: transparent; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-typing { margin-bottom: 3px; font-size: 11px; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-composer { box-sizing:border-box; width:100%; min-width:0; padding:3px; border:3px solid var(--panel); border-radius: 25px; box-shadow: var(--mobile-shadow); background: var(--paper); }
  #app.registro-wordpress-app.registro-mobile-ui .chat-composer input { font-size: 16px !important; padding-left: 8px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .chat-send { flex-basis: 40px !important; width: 40px !important; height: 40px !important; box-shadow: 0 3px 9px color-mix(in srgb, var(--forest) 18%, transparent); }
  #app.registro-wordpress-app.registro-mobile-ui.chat-compact .chat-course-picker { padding: 4px 10px; }
  #app.registro-wordpress-app.registro-mobile-ui.chat-compact .chat-messages { padding-top: 8px; }

  #app.registro-wordpress-app.registro-mobile-ui .mobile-summary-row:focus-visible,
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-items button:focus-visible { outline: 2px solid var(--theme-link); outline-offset: 2px; }

  /* Superfici e controlli comuni ad allievi, docenti e amministrazione. */
  #app.registro-wordpress-app.registro-mobile-ui :is(.card, .course-board, .room-card, .event-card, .survey-card) {
    min-width: 0; border: 1px solid var(--mobile-border) !important; border-radius: 16px !important;
    background: var(--mobile-surface) !important; box-shadow: var(--mobile-shadow) !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui :is(.course-board, .event-card, .room-card) { padding: 16px !important; }
  #app.registro-wordpress-app.registro-mobile-ui :is(.course-board, .event-card, .room-card) h3 { font-size: 16px !important; line-height: 1.35; }
  #app.registro-wordpress-app.registro-mobile-ui :is(.form-grid, .filters, .board-filters) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-color: var(--mobile-border) !important; border-radius: 10px !important; background-color: var(--panel) !important;
  }
  #app.registro-wordpress-app.registro-mobile-ui :is(.form-grid, .filters, .board-filters) :is(input, select, textarea):focus-visible { outline: 2px solid var(--theme-link); outline-offset: 2px; }
  #app.registro-wordpress-app.registro-mobile-ui .save-row { background: var(--paper) !important; border-color: var(--mobile-border) !important; border-radius: 0 0 17px 17px; }
  #app.registro-wordpress-app.registro-mobile-ui .section-head { flex-wrap: wrap; }
  #app.registro-wordpress-app.registro-mobile-ui .section-head > .text-btn { margin-left: auto; font-size: 11px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .overview-board-preview .section-head { align-items: center !important; }
  #app.registro-wordpress-app.registro-mobile-ui :is(.student-overview-label, .admin-overview-label) { font-size: 12px !important; color: var(--muted); margin-top: 7px !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-role="Amministratore"] .topbar { flex-wrap: wrap; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-role="Amministratore"] .topbar > div:first-child { min-width: 0; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] :is(.admin-overview-cards, .finance-cards) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 1fr; align-items: stretch !important; gap: 10px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .admin-overview-cards { margin-bottom: 18px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .finance-cards { padding: 0 14px 14px !important; margin: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui :is(.admin-overview-cards, .finance-cards) .card { padding: 15px 13px !important; align-self: stretch !important; margin: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .stat-top { font-size: 11px !important; line-height: 1.4; color: var(--muted); }
  #app.registro-wordpress-app.registro-mobile-ui .number { font-size: 26px !important; line-height: 1.2; letter-spacing: -.6px; overflow-wrap: anywhere; }
  #app.registro-wordpress-app.registro-mobile-ui .finance-card .number { font-size: 22px !important; white-space: normal; }
  #app.registro-wordpress-app.registro-mobile-ui .trend { font-size: 10px !important; line-height: 1.4; }
  #app.registro-wordpress-app.registro-mobile-ui .admin-overview-grid { gap: 18px !important; margin: 18px 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .quick-actions { padding: 0 16px 16px !important; gap: 9px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .quick-action { min-height: 64px !important; padding: 14px !important; border-color: var(--mobile-border) !important; border-radius: 13px !important; background: var(--paper) !important; }

  /* Presenze allievo: conserva le quattro colonne e l'apertura dello storico. */
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary { width: 100% !important; min-width: 0 !important; table-layout: fixed !important; }
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary col:first-child { width: 37% !important; }
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary col:not(:first-child) { width: 21% !important; }
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary th { padding: 10px 5px !important; font-size: 8px !important; text-align: center; letter-spacing: 0; }
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary td { padding: 15px 5px !important; font-size: 12px !important; white-space: normal !important; overflow-wrap: anywhere; text-align: center; }
  #app.registro-wordpress-app.registro-mobile-ui .student-attendance-summary :is(td, th):first-child { text-align: left; padding-left: 14px !important; }

  /* Ultime registrazioni e lezioni dell'amministratore, senza tagliare dati. */
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] .table-wrap > .mobile-overview-table,
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table tbody { display: block; width: 100% !important; min-width: 0 !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 12px; padding: 16px; border-top: 1px solid var(--mobile-border); }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] .mobile-overview-table td { padding: 0 !important; border: 0 !important; min-width: 0 !important; font-size: 12px !important; white-space: normal !important; overflow-wrap: anywhere !important; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table td:first-child { grid-column: 1 / -1; font-weight: 600; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table td[data-mobile-label]:not(:first-child)::before { content: attr(data-mobile-label); display: block; margin-bottom: 4px; color: var(--muted); font-size: 9px; }
  #app.registro-wordpress-app.registro-mobile-ui .mobile-overview-table td.empty { grid-column: 1 / -1; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-role="Amministratore"].chat-view .content { padding-bottom: 10px !important; }
}
@media (min-width: 650px) and (max-width: 900px) {
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-boxes { grid-template-columns: minmax(0, 1fr); align-items: start; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box .section-head { padding: 14px 12px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box tr { grid-template-columns: minmax(0, 1fr); }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:first-child { grid-row: auto; }
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:nth-child(2),
  #app.registro-wordpress-app.registro-mobile-ui .teacher-course-box td:nth-child(3) { grid-column: 1; padding-left: 45px !important; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] .content { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 0 18px; align-items: start; }
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] .topbar,
  #app.registro-wordpress-app.registro-mobile-ui[data-mobile-view="home"] .support-section { grid-column: 1 / -1; }
}
@media (max-width: 360px) {
  #app.registro-wordpress-app.registro-mobile-ui .content { padding-inline: 12px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .attendance-row { flex-wrap: wrap; }
  #app.registro-wordpress-app.registro-mobile-ui .status-set { margin-left: 44px; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-toolbar h2 { font-size: 15px !important; }
  #app.registro-wordpress-app.registro-mobile-ui .calendar-toolbar { padding-inline: 9px !important; }
}

.lesson-students{display:block;margin-top:5px;font-size:.88em;font-weight:500;color:var(--muted);white-space:normal;overflow-wrap:anywhere}

/* The same navigation vectors are used at every breakpoint. */
#app.registro-wordpress-app.registro-ui .sidebar .nav .icon { display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px; }
#app.registro-wordpress-app.registro-ui .sidebar .nav .original-control-icon { display:none!important; }
#app.registro-wordpress-app.registro-ui .sidebar .nav .desktop-control-icon { display:flex;width:100%;height:100%; }
#app.registro-wordpress-app.registro-ui .sidebar .nav .desktop-control-icon svg { width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }

/* Personal refunds keep the standard page gutter; only the table can pan. */
#app.registro-wordpress-app .teacher-refunds-page { display:grid;gap:24px;min-width:0;max-width:100%; }
#app.registro-wordpress-app.registro-ui .teacher-refunds-page > .topbar { margin-bottom:0!important; }
#app.registro-wordpress-app .teacher-refund-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0!important; }
#app.registro-wordpress-app .teacher-refund-summary .card { min-width:0;padding:20px!important;margin:0!important; }
#app.registro-wordpress-app .teacher-refund-summary .number { margin:12px 0 8px;font-size:clamp(22px,2.5vw,36px)!important;line-height:1.2!important;white-space:nowrap;font-variant-numeric:tabular-nums; }
#app.registro-wordpress-app .teacher-refunds-page > .section { min-width:0;margin:0!important; }
#app.registro-wordpress-app .teacher-refunds-page .table-wrap { max-width:100%;overflow-x:auto;overscroll-behavior-x:contain; }
#app.registro-wordpress-app .teacher-refund-table:has(td.empty) { --registro-table-min-width:0px!important;width:100%!important;min-width:0!important; }
#app.registro-wordpress-app .teacher-refund-table td.empty { white-space:normal!important;overflow-wrap:anywhere;padding:24px 16px!important;text-align:center!important; }
@media(max-width:600px) {
 #app.registro-wordpress-app .teacher-refunds-page { gap:16px; }
 #app.registro-wordpress-app .teacher-refund-summary { grid-template-columns:minmax(0,1fr);gap:8px; }
 #app.registro-wordpress-app .teacher-refund-summary .card { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:14px 16px!important; }
 #app.registro-wordpress-app .teacher-refund-summary .stat-top { grid-column:1; }
 #app.registro-wordpress-app .teacher-refund-summary .number { grid-column:2;grid-row:1 / 3;margin:0;font-size:clamp(20px,5.5vw,26px)!important; }
 #app.registro-wordpress-app .teacher-refund-summary .trend { grid-column:1;font-size:12px!important; }
 #app.registro-wordpress-app .teacher-refund-table:has(td.empty) thead { display:none; }
}
