/* Popup condivisi: intestazione e azioni ferme, contenuto scorrevole. */
:is(#app .modal-backdrop, body > .modal-backdrop, #utility-focus-layer .modal-backdrop).registro-popup-backdrop {
  position: fixed !important; inset: auto 0 auto !important; top: var(--popup-viewport-top, 0px) !important;
  width: 100% !important; height: var(--popup-viewport-height, 100dvh) !important;
  display: grid !important; place-items: center !important; padding: 20px !important;
  background: rgba(19, 38, 54, .42) !important; overscroll-behavior: contain;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup {
  --popup-line: color-mix(in srgb, var(--theme-line, #a7bbcd) 42%, white);
  --popup-soft-line: color-mix(in srgb, var(--theme-line, #a7bbcd) 18%, white);
  display: flex !important; flex-direction: column !important; position: relative !important;
  width: min(680px, calc(100vw - 40px)) !important; min-width: 0 !important;
  max-width: calc(100vw - 40px) !important; max-height: calc(var(--popup-viewport-height, 100dvh) - 40px) !important;
  padding: 0 !important; margin: 0 !important; overflow: hidden !important;
  border: 1px solid var(--popup-line) !important; border-radius: 24px !important;
  background: var(--panel, #fff) !important; color: var(--ink, #091d30) !important;
  box-shadow: 0 28px 80px rgba(15, 35, 53, .22) !important;
  font-family: var(--registro-body, system-ui, sans-serif) !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup.finance-detail-modal { width: min(980px, calc(100vw - 40px)) !important; }
#app #survey-dialog.registro-popup {
  position: fixed !important; inset: auto !important; left: 50% !important;
  top: calc(var(--popup-viewport-top, 0px) + var(--popup-viewport-height, 100dvh) / 2) !important;
  transform: translate(-50%, -50%); width: min(580px, calc(100vw - 40px)) !important;
}
#app #survey-dialog.registro-popup:not([open]) { display: none !important; }
#app #survey-dialog.registro-popup::backdrop { background: rgba(19, 38, 54, .42); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup :is(h1, h2, h3) { font-family: var(--registro-heading, system-ui, sans-serif) !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header {
  display: flex !important; align-items: center !important; flex: 0 0 auto !important;
  gap: 16px !important; padding: 24px 24px 20px !important; margin: 0 !important;
  border: 0 !important; background: var(--panel, #fff) !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header > div { flex: 1 1 auto; min-width: 0; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header .eyebrow { display: none !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header h2 {
  padding: 0 !important; margin: 0 !important; font-size: 24px !important; line-height: 1.25 !important;
  font-weight: 750 !important; letter-spacing: -.6px; color: var(--ink, #091d30) !important;
  overflow-wrap: anywhere; text-transform: none !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header p:not(.eyebrow) { margin: 5px 0 0 !important; font-size: 12px !important; line-height: 1.45; color: var(--muted); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 48px; height: 48px; flex: 0 0 48px; padding: 12px;
  border: 0; border-radius: 16px; background: #e7f0ff; color: #247aed;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon svg { display: block; width: 100%; height: 100%; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon.tone-green { background: #e1f5e9; color: #079550; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon.tone-violet { background: #f1e7ff; color: #8734e8; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon.tone-rose { background: #ffedf1; color: #d84264; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header .modal-close {
  position: relative !important; inset: auto !important; display: inline-flex !important;
  align-items: center !important; justify-content: center !important; flex: 0 0 40px !important;
  width: 40px !important; height: 40px !important; min-height: 40px !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 50% !important;
  background: var(--paper, #f2f5f8) !important; color: var(--muted, #45607b) !important;
  font-size: 0 !important; cursor: pointer;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .modal-close::before, :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .modal-close::after { content: ''; position: absolute; width: 17px; height: 2px; border-radius: 2px; background: currentColor; transform: rotate(45deg); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .modal-close::after { transform: rotate(-45deg); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .modal-close:hover { background: var(--theme-soft, #e7f0ff) !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-form, :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-form-fields {
  display: flex !important; flex-direction: column !important; flex: 1 1 auto !important;
  min-height: 0 !important; min-width: 0 !important; width: 100% !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; overflow: hidden !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll {
  flex: 1 1 auto; min-height: 0; min-width: 0; overflow: auto;
  padding: 0 24px 22px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  scrollbar-width: thin; scrollbar-color: var(--popup-line) transparent; scroll-padding: 16px;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll > :is(.confirm-body, .finance-detail-body) { padding: 0 !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll > .form-grid { padding: 0 !important; margin: 0 !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .form-grid { gap: 18px !important; align-items: start !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll label:not(.pagination-size):not(.subject-checkbox):not(.profile-email-option):not(.survey-choice):not(.notification-confirm):not(.diary-remove-attachment):not([hidden]) {
  display: grid !important; gap: 7px !important; margin-top: 0; align-content: start;
  font-size: 13px !important; line-height: 1.4 !important; font-weight: 650 !important; color: var(--muted, #526b87) !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select:not(.pagination-page-size), textarea) {
  display: block; width: 100% !important; max-width: 100% !important; min-width: 0 !important;
  border: 1px solid var(--popup-line) !important; border-radius: 11px !important;
  background-color: var(--panel, white) !important; color: var(--ink, #091d30) !important;
  padding: 11px 13px !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.4 !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select:not(.pagination-page-size)) { height: 46px !important; min-height: 46px !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll textarea { min-height: 112px !important; resize: vertical; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll select:not(.pagination-page-size) { appearance: none; -webkit-appearance: none; padding-right: 38px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234b6782' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 13px center !important; background-size: 16px 16px !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll select[multiple] { height: auto !important; min-height: 100px !important; background-image: none !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll input[type="file"] { height: auto !important; padding: 8px !important; font-size: 12px !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll input::file-selector-button { padding: 5px 9px; border: 0; border-radius: 7px; background: var(--theme-soft, #e7f0ff); color: var(--theme-link, #073b68); margin-right: 8px; font: inherit; cursor: pointer; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll :is(input, select:not(.pagination-page-size), textarea):disabled { background-color: var(--paper, #f3f6f9) !important; color: var(--muted) !important; -webkit-text-fill-color: var(--muted) !important; opacity: 1 !important; cursor: default; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup :is(input, select:not(.pagination-page-size), textarea):focus-visible { outline: 2px solid var(--theme-link, #073b68) !important; outline-offset: 2px; box-shadow: none !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup :is(button, a):focus-visible { outline: 2px solid var(--theme-link, #073b68) !important; outline-offset: 2px; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup :is(input[type="checkbox"], input[type="radio"]) { width: 18px !important; height: 18px !important; min-height: 18px !important; flex: 0 0 18px; padding: 0 !important; accent-color: var(--forest); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .notification-email-option input[type="checkbox"] { min-width: 18px !important; flex: 0 0 18px !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .subject-checkbox { display: flex !important; align-items: center !important; gap: 8px !important; border-color: var(--popup-line) !important; border-radius: 10px !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll small { font-size: 12px !important; line-height: 1.45; font-weight: 400; color: var(--muted); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll p { line-height: 1.55; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer {
  flex: 0 0 auto !important; display: flex !important; align-items: stretch !important;
  justify-content: flex-end !important; flex-wrap: wrap !important; gap: 12px !important;
  padding: 18px 24px !important; margin: 0 !important; border: 0 !important; border-top: 1px solid var(--popup-soft-line) !important;
  border-radius: 0 !important; background: var(--panel, white) !important;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > button {
  min-height: 46px !important; min-width: 140px; max-width: 100%; padding: 11px 18px !important;
  margin: 0 !important; border-radius: 11px !important; font-size: 14px !important;
  font-weight: 700 !important; line-height: 1.3; white-space: normal !important; cursor: pointer;
}
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > :is(.outline, .secondary) { order: 0; border: 1px solid var(--theme-line, #9eb4c8) !important; background: var(--panel, white) !important; color: var(--theme-link, #073b68) !important; box-shadow: none !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > .primary { order: 1; border: 1px solid var(--forest, #003b64) !important; background: var(--forest, #003b64) !important; color: white !important; box-shadow: 0 3px 8px color-mix(in srgb, var(--forest, #003b64) 12%, transparent); }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > .primary:hover { background: var(--forest-hover, #002e50) !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > :is(.outline, .secondary):hover { background: var(--paper, #f3f6f9) !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > :is(.danger, .danger-button) { order: 1; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup button:disabled { opacity: .5 !important; cursor: default !important; }
:is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup [hidden] { display: none !important; }

@media (max-width: 900px) {
  :is(#app .modal-backdrop, body > .modal-backdrop, #utility-focus-layer .modal-backdrop).registro-popup-backdrop { padding: 12px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup,
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup.finance-detail-modal { width: calc(100vw - 24px) !important; max-width: calc(100vw - 24px) !important; max-height: calc(var(--popup-viewport-height, 100dvh) - 24px) !important; border-radius: 22px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup::before { content: ''; display: block; width: 40px; height: 4px; flex: 0 0 4px; margin: 9px auto 0; border-radius: 4px; background: #cbd1d8; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header { padding: 15px 18px 18px !important; gap: 12px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header h2 { font-size: 22px !important; letter-spacing: -.6px; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon { width: 42px; height: 42px; flex-basis: 42px; padding: 10px; border-radius: 14px; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header .modal-close { width: 38px !important; height: 38px !important; min-height: 38px !important; flex-basis: 38px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll { padding: 0 18px 18px; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .form-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll label:not(.pagination-size):not(.subject-checkbox):not(.profile-email-option):not(.survey-choice):not(.notification-confirm):not(.diary-remove-attachment):not([hidden]) { font-size: 13px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select:not(.pagination-page-size), textarea) { font-size: 16px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select:not(.pagination-page-size)) { min-height: 44px !important; height: 44px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll input[type="file"] { height: auto !important; font-size: 12px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer { padding: 14px 18px max(14px, env(safe-area-inset-bottom)) !important; gap: 10px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > button { flex: 1 1 0; min-width: 0 !important; min-height: 46px !important; padding: 11px 10px !important; font-size: 14px !important; }
  #app #survey-dialog.registro-popup { width: calc(100vw - 24px) !important; }
}
@media (max-width: 360px) {
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header { padding-inline: 14px !important; gap: 9px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header h2 { font-size: 20px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-title-icon { width: 38px; height: 38px; flex-basis: 38px; padding: 9px; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-scroll { padding-inline: 14px; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer { padding-inline: 14px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer > button { font-size: 13px !important; }
}
@media (max-height: 480px) {
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup::before { display: none; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-header { padding-block: 10px !important; }
  :is(#app #survey-dialog, #app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup .popup-footer { padding-block: 10px !important; }
}

/* Quote e pagamenti: la stessa griglia e gli stessi colori dentro e fuori dai popup. */
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap > .payment-table {
  width: 100% !important; min-width: 0 !important; max-width: 100% !important;
  table-layout: fixed !important; border-collapse: collapse !important; margin: 0 !important;
  color: var(--ink, #091d30) !important; background: var(--panel, #fff) !important;
  font-family: var(--registro-body, system-ui, sans-serif) !important;
}
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table :is(th, td) {
  box-sizing: border-box; padding: 15px 14px !important; vertical-align: middle !important;
  text-align: left !important; white-space: normal !important; overflow-wrap: anywhere !important;
  word-break: normal !important; line-height: 1.45 !important;
  border: 0 !important; border-bottom: 1px solid var(--ui-border, #e5ebf0) !important;
  background: var(--panel, #fff) !important; color: var(--ink, #091d30) !important;
}
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table th {
  padding-block: 12px !important; color: var(--muted, #526b87) !important;
  background: var(--paper, #f6f8fa) !important; font-size: 11px !important;
  font-weight: 700 !important; letter-spacing: .5px !important; text-transform: uppercase;
}
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table td { display: table-cell !important; font-size: 14px !important; }
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table :is(.payment-number, .payment-actions-heading) { text-align: right !important; }
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
:is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-type-name { display: block; font-size: 15px; font-weight: 650; }
#app.registro-wordpress-app .payment-table .payment-pending-summary { margin-top: 6px; font-size: 12px; line-height: 1.45; }
:is(#student-payment-detail, #student-quote-modal) .payment-state {
  display: inline-block; width: fit-content; max-width: 100%; padding: 3px 8px; border-radius: 6px;
  font-size: 11px !important; line-height: 1.4; font-weight: 650 !important; white-space: nowrap;
}
:is(#student-payment-detail, #student-quote-modal) .payment-state.is-pending { background: #fff3da; color: #805600 !important; }
:is(#student-payment-detail, #student-quote-modal) .payment-state.is-paid { background: #e5f5ec; color: #176641 !important; }
#student-payment-detail .payment-number .payment-state { display: block; margin: 5px 0 0 auto; }
#student-payment-detail .payment-plan-summary { margin: 0 0 22px !important; padding: 14px 16px; border-radius: 12px; background: var(--paper, #f6f8fa); color: var(--muted, #526b87); }
#student-payment-detail .payment-instructions {
  margin: 0 0 22px; padding: 0; min-width: 0; border: 1px solid #dce9f8;
  border-radius: 16px; background: linear-gradient(135deg, #eaf3ff, #f3f8ff); color: var(--navy, #06365d);
}
#student-payment-detail .payment-instructions > summary {
  display: grid; grid-template-columns: 36px minmax(0, 1fr) 30px; align-items: center; gap: 12px;
  min-height: 68px; padding: 14px 16px; list-style: none; cursor: pointer;
  font-size: 16px; font-weight: 700; line-height: 1.35; border-radius: 15px;
}
#student-payment-detail .payment-instructions > summary::-webkit-details-marker { display: none; }
#student-payment-detail .payment-instructions > summary:focus-visible { outline: 3px solid #247aed; outline-offset: 3px; }
#student-payment-detail .payment-instructions-icon { display: flex; align-items: center; justify-content: center; color: #1f65bf; }
#student-payment-detail .payment-instructions-icon svg { width: 30px; height: 30px; }
#student-payment-detail .payment-instructions-chevron { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #dbeaff; color: #1f65bf; }
#student-payment-detail .payment-instructions-chevron svg { width: 18px; height: 18px; }
#student-payment-detail .payment-instructions[open] .payment-instructions-chevron svg { transform: rotate(180deg); }
#student-payment-detail .payment-instructions-content {
  margin: 0 12px 12px; padding: 16px; border: 1px solid #fff; border-radius: 12px;
  background: rgba(255,255,255,.75); color: var(--ink, #091d30); font-size: 14px; line-height: 1.6;
  overflow-wrap: anywhere; white-space: pre-line;
}
#student-payment-detail .payment-instructions-content :is(p, ul, ol) { margin: 0 0 .8em; }
#student-payment-detail .payment-instructions-content :is(strong, b) { color: var(--ink, #091d30); }
#student-payment-detail .payment-instructions-content :is(ul, ol) { padding-left: 1.5em; }
#student-payment-detail .payment-instructions-content li + li { margin-top: .6em; }
#student-payment-detail .payment-instructions-content :last-child { margin-bottom: 0; }
#student-payment-detail .payment-instructions-content :is(img, table) { max-width: 100%; }
@media (max-width: 600px) {
  #student-payment-detail .payment-instructions > summary { grid-template-columns: 28px minmax(0, 1fr) 28px; gap: 8px; padding: 12px; font-size: 15px; }
  #student-payment-detail .payment-instructions-icon svg { width: 26px; height: 26px; }
  #student-payment-detail .payment-instructions-content { padding: 12px; margin-inline: 8px; }
}
#student-payment-detail .payment-detail-body h3,
#student-quote-modal .finance-detail-body h3 { margin: 22px 0 12px !important; font-size: 16px; color: var(--ink, #091d30); }
#student-quote-modal .finance-detail-body h3:first-child { margin-top: 0 !important; }
#student-quote-modal .payment-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
#student-quote-modal .table-wrap .payment-table .payment-row-actions { white-space: normal !important; }
#student-quote-modal .payment-actions .table-action { margin: 0 !important; min-height: 32px !important; white-space: normal; }
#app.registro-wordpress-app .payment-summary-table th:nth-child(1) { width: 27%; }
#app.registro-wordpress-app .payment-summary-table th:nth-child(2),
#app.registro-wordpress-app .payment-summary-table th:nth-child(5) { width: 14%; }
#app.registro-wordpress-app .payment-summary-table th:nth-child(3) { width: 15%; }
#app.registro-wordpress-app .payment-summary-table th:nth-child(4) { width: 11%; }
#app.registro-wordpress-app .payment-summary-table th:nth-child(6) { width: 19%; }
#student-payment-detail .payment-history-table th:nth-child(1) { width: 32%; }
#student-payment-detail .payment-history-table th:nth-child(2) { width: 24%; }
#student-payment-detail .payment-history-table th:nth-child(3) { width: 24%; }
#student-payment-detail .payment-history-table th:nth-child(4) { width: 20%; }
#student-quote-modal .payment-plans-table th:first-child { width: 31%; }
#student-quote-modal .payment-plans-table th:last-child { width: 27%; }
#student-quote-modal .payment-admin-history th:last-child { width: 27%; }
#payment-entry-editor .registro-popup .popup-scroll label > span > small { display: inline; white-space: nowrap; }

@media (max-width: 900px) {
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap > .payment-table,
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table tbody { display: block !important; width: 100% !important; }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table thead {
    position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table tbody tr {
    display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px;
    padding: 18px 16px; border-bottom: 1px solid var(--ui-border, #e5ebf0) !important;
  }
  :is(#student-payment-detail.modal-backdrop, #student-quote-modal.modal-backdrop) .payment-table tbody tr { padding-inline: 0; }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table tbody tr:last-child { border-bottom: 0 !important; }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table td {
    display: block !important; width: auto !important; min-width: 0 !important; padding: 0 !important;
    border: 0 !important; background: transparent !important; text-align: left !important;
  }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .table-wrap .payment-table td.payment-number { text-align: left !important; }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table td[data-label]::before {
    content: attr(data-label); display: block; margin-bottom: 4px; color: var(--muted, #526b87);
    font-size: 11px; line-height: 1.4; font-weight: 650; letter-spacing: .2px;
  }
  :is(#app.registro-wordpress-app, #student-payment-detail, #student-quote-modal) .payment-table :is(.payment-type-cell, .payment-row-actions, td[colspan]) { grid-column: 1 / -1; }
  :is(#app.registro-wordpress-app, #student-quote-modal) .payment-table td.payment-type-cell::before { display: none; }
  #app.registro-wordpress-app .payment-summary-table td:nth-child(5) { grid-column: 2; grid-row: 2; }
  #app.registro-wordpress-app .payment-summary-table td:nth-child(3) { grid-column: 1; grid-row: 3; }
  #app.registro-wordpress-app .payment-summary-table td:nth-child(4) { grid-column: 2; grid-row: 3; }
  #app.registro-wordpress-app .payment-summary-table td:last-child { grid-column: 1 / -1; }
  #student-quote-modal .payment-actions { justify-content: flex-start; }
  #student-payment-detail .payment-number .payment-state { margin-left: 0; }
  #student-payment-detail .payment-plan-summary { padding: 12px 14px; margin-bottom: 18px !important; font-size: 14px; }
}

/* Calendario rate condiviso, leggibile anche nelle finestre su telefono. */
.installment-schedule-editor{min-width:0;border:1px solid var(--theme-line,var(--line));border-radius:12px;margin:16px 0;padding:14px}
.installment-schedule-editor legend{padding:0 6px;font-weight:700}
.installment-schedule-row{display:grid!important;grid-template-columns:minmax(110px,1fr) minmax(140px,1fr);align-items:center;gap:12px;margin:0 0 10px!important}
.installment-schedule-row:last-child{margin-bottom:0!important}
.installment-schedule-row span small,.installment-table td small{display:block;margin-top:4px;color:var(--muted)}
.installment-schedule-editor .muted,.installment-assignment-note{font-size:13px;line-height:1.5;color:var(--muted)}
.installment-assignment-note{margin:12px 0;padding:12px;border-radius:10px;background:var(--theme-soft,var(--soft))}
.installment-table{width:100%;border-collapse:collapse}
.installment-table th,.installment-table td{vertical-align:middle;text-align:left;padding:12px}
.installment-table td.payment-number{font-variant-numeric:tabular-nums;white-space:nowrap}
.installment-table .is-overdue{color:#a32b28;background:#fff0ed}
.installment-table .payment-actions{display:flex;flex-wrap:wrap;gap:6px}
.installment-error{color:#a32b28;line-height:1.5;margin:12px 0}
@media(max-width:650px){
 .installment-table-wrap{overflow:visible!important}
 .installment-table,.installment-table tbody{display:block;width:100%;min-width:0!important}
 .installment-table thead{display:none}
 .installment-table tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:1px solid var(--theme-line,var(--line));border-radius:12px;margin:10px 0;padding:14px}
 .installment-table td{display:block;border:0!important;padding:0!important;min-width:0;text-align:left!important;overflow-wrap:anywhere}
 .installment-table td:before{content:attr(data-label);display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
 .installment-table td[data-label="Azioni"]{grid-column:1/-1}
 .installment-schedule-editor{padding:10px}.installment-schedule-row{gap:8px;grid-template-columns:1fr minmax(140px,1fr)}
}

/* Etichette rate e coordinate bancarie, anche nelle schede mobile. */
#app.registro-wordpress-app .payment-summary-table td[data-label="Rate"],
:is(#student-payment-detail, #student-quote-modal) .payment-installment-label { white-space: nowrap !important; }
#student-payment-detail .payment-iban-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 16px; padding: 12px; border: 1px solid #dce9f8; border-radius: 10px; background: #fff; white-space: normal; }
#student-payment-detail .payment-iban-row > div { flex: 1 1 200px; min-width: 0; }
#student-payment-detail .payment-iban-row small { display: block; color: var(--muted); }
#student-payment-detail .payment-iban-row strong { display: block; overflow-wrap: anywhere; font-size: 13px; }
#student-payment-detail .payment-copy-iban { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 8px 10px; border: 0; border-radius: 8px; background: #e5efff; color: #1457af; font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer; }
#student-payment-detail .payment-copy-iban svg { width: 16px; height: 16px; }
#student-payment-detail .payment-copy-iban:focus-visible { outline: 3px solid #247aed; outline-offset: 2px; }
#student-payment-detail .payment-copy-status { flex-basis: 100%; font-size: 12px; color: var(--muted); }
#student-payment-detail .payment-copy-status:empty { display: none; }

/* Tabelle brevi: occupano lo spazio disponibile, senza larghezze minime desktop. */
#student-attendance-history .table-wrap { overflow: visible !important; margin: 0 !important; }
#student-attendance-history .table-wrap > table { width: 100% !important; min-width: 0 !important; table-layout: fixed !important; }
#student-attendance-history :is(th, td) { padding: 12px 10px !important; white-space: normal !important; overflow-wrap: anywhere; vertical-align: middle; }
#student-attendance-history th:first-child { width: 55%; }
.registro-popup .popup-scroll { overflow: auto; }
.registro-popup .popup-scroll > .table-wrap { margin: 0; }
#app .lesson-inclusion-toggle { align-self: center; }
:is(#app, #installment-editor) [data-lesson-limit-field][hidden] { display: none !important; }
#app.registro-wordpress-app .recent-registrations tbody tr + tr { border-top: 1px solid #dce5ed !important; }
#app.registro-wordpress-app .recent-registrations tbody td { vertical-align: middle; }
@media (max-width: 900px) {
  #app.registro-wordpress-app.registro-mobile-ui .recent-registrations .mobile-overview-table tr { padding: 14px 16px !important; gap: 8px 12px; }
  #app.registro-wordpress-app.registro-mobile-ui .recent-registrations .mobile-overview-table tr + tr { border-top: 1px solid #dce5ed !important; }
  :is(#student-payment-detail, #student-quote-modal) .table-wrap { overflow: visible !important; margin: 0 !important; }
  :is(#student-payment-detail, #student-quote-modal) .payment-table tbody tr { padding: 14px !important; gap: 10px 14px !important; }
  :is(#student-payment-detail, #student-quote-modal) .payment-table td { padding: 0 !important; }
  :is(#student-payment-detail, #student-quote-modal) .payment-table td::before { margin-bottom: 3px !important; }
  :is(#student-payment-detail, #student-quote-modal) .payment-table td[data-label="Pagamento"]:last-child { grid-column: 1 / -1; }
  #student-payment-detail .payment-plan-summary { margin-bottom: 16px !important; padding: 12px; }
  #student-payment-detail .payment-instructions { margin-bottom: 16px; }
  #student-quote-modal .lesson-allowance-cards { margin: 0 0 16px; gap: 12px; }
  #student-quote-modal .lesson-allowance-card { padding: 14px !important; }
  #student-payment-detail .payment-detail-body h3, #student-quote-modal .finance-detail-body h3 { margin: 16px 0 10px !important; }
  .registro-popup .popup-scroll { padding-bottom: 16px !important; }
}

:is(#app .registro-popup, body > .modal-backdrop .registro-popup) .popup-compact-table-wrap { overflow: visible !important; }
:is(#app .registro-popup, body > .modal-backdrop .registro-popup) .popup-compact-table { width: 100% !important; min-width: 0 !important; table-layout: auto !important; }
:is(#app .registro-popup, body > .modal-backdrop .registro-popup) .popup-compact-table :is(th, td) { white-space: normal !important; overflow-wrap: anywhere; padding: 10px 12px !important; vertical-align: middle; }

/* Contorni uniformi: nessun bordo attenuato sulle schede delle rate. */
#app.registro-wordpress-app.registro-ui :is(.section, .card, .course-card, .lesson-allowance-card) { border: 1px solid #cdd9e4 !important; }
#app.registro-wordpress-app.registro-mobile-ui { --mobile-border: #cdd9e4; }
:is(#app .modal-backdrop .modal, body > .modal-backdrop .modal, #utility-focus-layer .modal-backdrop .modal).registro-popup { --popup-line: #c5d3df; }
#student-payment-detail .payment-instructions { border-color: #c7d9ef; }
#student-payment-detail .payment-plan-summary { border: 1px solid #d8e1e9; }
@media (max-width: 900px) {
  :is(#student-payment-detail, #student-quote-modal) .installment-table { border-collapse: separate !important; border-spacing: 0 !important; }
  :is(#student-payment-detail.modal-backdrop, #student-quote-modal.modal-backdrop) .payment-table.installment-table tbody > tr,
  :is(#student-payment-detail.modal-backdrop, #student-quote-modal.modal-backdrop) .payment-table.installment-table tbody > tr:last-child { border: 1px solid #bdcddb !important; border-radius: 12px; margin: 10px 0; }
}

/* Un solo aspetto per entrambe le barre, in tutte le tabelle. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .list-pagination.unified-pagination {
 display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-end!important;gap:10px 14px!important;
 width:auto!important;min-width:0!important;margin:14px 22px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--muted,#526b87);font-size:13px!important;font-weight:650!important;
}
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination > label { display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;margin:0!important;white-space:nowrap;font-size:inherit!important;color:inherit!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination select { width:72px!important;min-width:72px!important;height:40px!important;min-height:40px!important;padding:6px 26px 6px 10px!important;margin:0!important;border:1px solid #b9cbdc!important;border-radius:9px!important;background-color:#fff!important;font-size:14px!important;font-weight:650!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination .list-pagination-status { white-space:nowrap!important;font-size:inherit!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination > div { display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination button { display:inline-flex!important;align-items:center!important;justify-content:center!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:0!important;border:1px solid #b9cbdc!important;border-radius:10px!important;background:#fff!important;color:var(--navy,#06365d)!important;font-size:19px!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination button:disabled { opacity:.4!important;cursor:default; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination :is(button,select):focus-visible { outline:2px solid #247aed;outline-offset:2px; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination [data-pagination-position="top"] { margin-top:0; }
body > .modal-backdrop table tr[hidden], #app.registro-wordpress-app table tr[hidden] { display:none!important; }
:is(#app #survey-dialog, body > .modal-backdrop) .registro-popup .unified-pagination { margin-inline:0!important; }
@media(max-width:600px){
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .list-pagination.unified-pagination { gap:8px!important;margin:12px 14px!important;font-size:11px!important; }
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination > label { gap:6px!important; }
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination select { width:72px!important;min-width:72px!important;height:40px!important;min-height:40px!important;padding:6px 28px 6px 10px!important;font-size:14px!important; }
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination > div { gap:5px!important; }
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination button { width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important; }
}

:is(#app #survey-dialog, body > .modal-backdrop) .registro-popup .popup-scroll .unified-pagination { margin-inline:0!important; }
@media(max-width:600px){
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination button { width:32px!important;min-width:32px!important; }
}

/* Le colonne mantengono le proporzioni iniziali quando cambiano le righe visibili. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table { table-layout:fixed!important;width:100%!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-card-table > colgroup[data-registro-columns] { display:none!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table :is(th,td) { overflow-wrap:anywhere; }

/* Scadenze: etichetta sopra la data e campo esteso alla riga. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .installment-schedule-row { grid-template-columns:minmax(0,1fr)!important;gap:8px!important;margin-bottom:16px!important;padding:0!important; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .installment-rate-summary { display:flex;align-items:center;justify-content:space-between;gap:12px; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .installment-rate-summary small { margin:0;color:var(--muted);font-size:12px; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .installment-schedule-date { width:100%!important;min-width:0; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .installment-schedule-date input { width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important; }
/* Chat: contenuti distanziati dal contorno della conversazione. */
#app.registro-wordpress-app.registro-ui .chat-section { padding:12px!important;border-radius:18px!important;background:var(--panel,#fff)!important; }
#app.registro-wordpress-app.registro-ui .chat-header { padding:0 0 10px!important; }
#app.registro-wordpress-app.registro-ui .chat-messages { padding:14px!important; }
#app.registro-wordpress-app.registro-ui .chat-form { padding:10px 0 0!important; }
@media(max-width:900px){
 #app.registro-wordpress-app.registro-ui .chat-section { padding:8px!important; }
 #app.registro-wordpress-app.registro-ui .chat-messages { padding:10px!important; }
}


/* I controlli moderni non ereditano l'ordine delle vecchie barre mobile. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination .list-pagination-status { order:0!important;width:auto!important;flex:0 0 auto!important;text-align:right!important; }
@media(max-width:900px){
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table :is(th,td):not(.payment-number) { white-space:normal!important;overflow-wrap:anywhere; }
 /* Keep columns on one row; scroll the table when the screen is narrower. */
 :is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table:not(.registro-card-table) { min-width:var(--registro-table-min-width,540px)!important;max-width:none!important; }
}
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table:not(.registro-card-table) :is(th,td) { white-space:normal!important;overflow-wrap:anywhere; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table .person { min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere; }
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table .person .small-avatar { flex-shrink:0; }

:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.registro-stable-table :is(.payment-number,.payment-installment-label,td[data-label="Rate"]) { white-space:nowrap!important; }

/* Reserve separate space for the value and arrow, including native mobile selects. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) .unified-pagination select {
 box-sizing:border-box!important;appearance:none!important;-webkit-appearance:none!important;line-height:normal!important;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234b6782' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
 background-repeat:no-repeat!important;background-position:right 9px center!important;background-size:14px 14px!important;
}
#app.registro-wordpress-app .calendar-agenda .lesson-students-inline { display:inline;margin:0;font-size:inherit;line-height:inherit; }
@media(max-width:900px){
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda { padding:14px!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .section-head { padding:0 0 10px!important; }
 :is(#app.registro-wordpress-app, #app #survey-dialog) .calendar-agenda .unified-pagination { margin:12px 0!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .table-wrap { overflow:visible!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda tbody { gap:12px!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda tr { grid-template-columns:42px minmax(0,1fr)!important;gap:8px 12px!important;padding:14px!important;box-sizing:border-box; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td { white-space:normal!important;overflow-wrap:anywhere;line-height:1.45!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td:nth-child(6) { grid-column:1 / -1!important;grid-row:5!important;display:flex!important;flex-wrap:wrap;justify-content:flex-end;gap:8px!important;padding-top:6px!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda td.empty { grid-column:1 / -1!important; }
 #app.registro-wordpress-app.registro-mobile-ui .calendar-agenda .table-action { margin:0!important;padding:8px 12px!important; }
}

/* Shared circular profile photo; initials remain underneath as a fallback. */
#app.registro-wordpress-app .small-avatar.person-avatar { position:relative;overflow:hidden;border-radius:50%!important;flex-shrink:0; }
#app.registro-wordpress-app .small-avatar.person-avatar > img { position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit; }

/* Keep long bank details inside their own column at every viewport size. */
#app.registro-wordpress-app .teacher-iban > span { display:block;max-width:100%;min-width:0;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal; }

#app.registro-wordpress-app.registro-ui[data-registro-view="teachers"] table.registro-stable-table td { white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important; }

/* Refund details use real table cells and a wider financial dialog. */
:is(#teacher-refund-modal, #app #teacher-refund-modal) .table-wrap { margin:0!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .table-wrap > table.refund-detail-table.registro-stable-table { width:100%!important;min-width:760px!important;max-width:none!important;table-layout:fixed!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-detail-table :is(th,td) { display:table-cell!important;padding:12px!important;vertical-align:middle!important;white-space:normal!important;overflow-wrap:anywhere!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-detail-table th { font-size:11px!important;white-space:nowrap!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-detail-table td { color:var(--ink,#091d30)!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-detail-table .refund-amount { white-space:nowrap!important;text-align:right!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-row-actions { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-row-actions .table-action { margin:0!important;padding:7px 9px!important;white-space:nowrap!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-actions-heading { text-align:right!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .table-wrap > table.refund-detail-table.registro-stable-table:has(td.empty) { min-width:0!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .confirm-body h3 { margin:22px 0 12px!important;color:var(--ink,#091d30)!important; }
:is(#teacher-refund-modal, #app #teacher-refund-modal) .confirm-body h3:first-child { margin-top:0!important; }
@media(max-width:600px){
 :is(#teacher-refund-modal, #app #teacher-refund-modal) .refund-detail-table:has(td.empty) thead { display:none!important; }
}

/* The shared popup also opens over a native fullscreen instrument. */
:is(#tuner-settings-modal,#metronome-settings-modal).registro-popup-backdrop { z-index:2147483100!important; }
:is(#tuner-settings-modal,#metronome-settings-modal), :is(#tuner-settings-modal,#metronome-settings-modal) * { box-sizing:border-box; }
:is(#tuner-settings-modal,#metronome-settings-modal) .form-grid { grid-template-columns:minmax(0,1fr); }

/* Same compact settings sheet; only the metronome's screen switch needs a control style. */
#metronome-settings-modal .registro-popup .utility-wake-toggle { min-height:52px;padding:8px 12px; }
#metronome-settings-modal .registro-popup .utility-wake-toggle > span { flex:1; }
#metronome-settings-modal .registro-popup .utility-wake-toggle #utility-keep-awake[role="switch"] { appearance:none!important;-webkit-appearance:none!important;width:44px!important;height:26px!important;min-width:44px!important;min-height:26px!important;flex:0 0 44px!important;position:relative;border:1px solid var(--popup-line)!important;border-radius:20px!important;background:var(--line,#c8d3df)!important;cursor:pointer; }
#metronome-settings-modal .registro-popup .utility-wake-toggle #utility-keep-awake[role="switch"]::before { content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002; }
#metronome-settings-modal .registro-popup .utility-wake-toggle #utility-keep-awake[role="switch"]:checked { background:var(--forest)!important; }
#metronome-settings-modal .registro-popup .utility-wake-toggle #utility-keep-awake[role="switch"]:checked::before { left:21px; }
#metronome-settings-modal [data-wake-label] { min-width:30px;font-size:12px; }
#metronome-settings-modal [data-wake-status] { margin:0;font-size:13px;line-height:1.5;color:var(--muted); }

/* The bell inbox reuses communication cards, including when mounted at body. */
#lesson-reminder-inbox .registro-popup .popup-header > h2 { flex:1;min-width:0;text-align:left; }
#lesson-reminder-inbox .registro-popup .popup-scroll { overflow-x:hidden; }
#lesson-reminder-inbox .registro-popup .communication-list { padding:0;gap:16px; }
#lesson-reminder-inbox .registro-popup .communication-card { margin:0;align-items:stretch;text-align:left;line-height:1.6;cursor:pointer; }
#lesson-reminder-inbox .registro-popup .communication-heading { display:block; }
#lesson-reminder-inbox .registro-popup .communication-heading strong { display:block;font-weight:750;line-height:1.4; }
#lesson-reminder-inbox .registro-popup .communication-preview { display:block;white-space:pre-wrap;-webkit-line-clamp:unset;overflow:visible; }
#lesson-reminder-inbox .registro-popup .communication-status { gap:8px;margin-top:4px; }
#lesson-reminder-inbox .registro-popup .communication-action { font-weight:700;color:var(--theme-link,var(--forest)); }
#lesson-reminder-inbox .registro-popup .communication-status .badge { flex:none; }
#lesson-reminder-inbox .registro-popup .popup-footer { flex:none; }

/* Keep monetary values intact after the shared stable-table wrapping rules. */
:is(#app.registro-wordpress-app, #app #survey-dialog, body > .modal-backdrop) table.teacher-refund-table.registro-stable-table :is(th,td):not(.empty):is(:first-child,:nth-child(2),:last-child) { white-space:nowrap!important; }

/* Progressive settings occupy their own row in the shared metronome sheet. */
#metronome-settings-modal .utility-progressive-toggle { min-height:52px;padding:8px 12px; }
#metronome-settings-modal .utility-progressive-fields { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;min-width:0; }
#metronome-settings-modal .utility-progressive-fields[hidden] { display:none; }
@media(max-width:600px) {
 #metronome-settings-modal .utility-progressive-fields { grid-template-columns:minmax(0,1fr);gap:16px; }
}
